RTCM SC-104

RTCM SC-104是一種通信協議，用於從無線電接收器等輔助源向GPS 接收器發送差分 GPS (D-GPS)。該標準以創建它的海事無線電技術委員會(RTCM) 的特別委員會 SC104 命名。該格式沒有限定D-GPS消息的來源。該通信協議如今已應用於各種系統，如長波海事廣播、通信衛星廣播和網際網路分發。

該協議的第一個廣泛使用的版本於 1990 年發布，它基於 GPS 衛星使用的 30 位長數據包，稱為「幀」。每條消息都以標準化的長度為兩個幀的頭部開始，緊跟著一個或多個數據幀。這些幀的設計類似於 GPS，可以很容易地集成到 GPS 接收器中，但缺點是信道效率低，限制了在給定時間內可以發送的消息數量。2003 年，標準的第 3 版引入了一種全新的消息格式，它使用可變長度格式來提高效率，從而增加可以發送的消息數量——這對於實時 GPS 校正很重要。新標準還大大增加了可能的消息類型的數量。遵照標準流程，標準的命名發生了變化，3.1 版成為RTCM 標準 10403.1。最新版本是 3.3 或 RTSM Standard 10403.3，修正 1 和 2。

RTCM SC-104並不是支持D-GPS 的唯一標準。例如，Trimble公司基於相同的目的引入了緊湊型測量記錄(CMRx) 格式。但是，隨著 10403.1 的推出，其中大部分的協議被RTCM 10403.1所取代。

## 版本 1

最初的 SC-104 於 1985 年作為初始版本發布，但從未被廣泛採用。它被非常相似的第 2 版所取代。

## 版本 2

RTCM 第 2 版於 1990 年 1 月發布，隨後於 2001 年 8 月更新至 2.3 版。

### 版本歷史

- RTCM 2.0：只有D-GPS，沒有RTK數據
- RTCM 2.1：完整繼承RTCM 2.0；為RTK和carrier phase data增加了新的消息
- RTCM 2.2：增加了對GLONASS的支持和消息類型31-36

### 幀結構

RTCM 第 2 版基於一組固定長度的 30 位「字」，這些「字」串在一起形成較長的消息，稱為「幀」。所有字都使用與 GPS 信號相同的演算法——以基於漢明碼的6 位「奇偶校驗」碼結尾，剩下 24 位用於數據傳輸。該格式特意模仿實際 GPS 消息的格式。24 位有效負載中的數據被提取為單獨的數據，然後編碼為本地傳輸的 6 位數據字串，具有前導 1 起始位和尾隨 0 停止位，以形成適合在ASCII上使用的單個8位值。數據以最高有效位格式編碼，而不是類似於ASCII 的最低有效位，因此需要進行一些處理才能在接收後將其恢復為原始格式。所有幀都以標準的兩字頭部開始。第一個字以「神奇數字」開頭，即 8 位「前導碼」，始終包含 01100110。接下來的六位編碼消息類型，從 0 到 63。其後是一個 10 位的站 ID。第二個標頭字以 13 位版本的 z-count（GPS 中的時間單位）開頭，3 位序列號以確保幀無序到達時可以進行排序，5 位長度它計算幀中的總字數，包括標題和三位「站健康」代碼，其中 111 表示站工作不正常。

### 消息類型

總共允許 64 種消息類型，儘管其中一些被故意保留為將來擴展或很少使用後來放棄的格式。原始標準包括六種消息格式，消息類型1 用於校正數據，消息類型2 用於更新以前的校正，消息類型3 提供測量站的位置，消息類型6 作為空消息以填充未使用的插槽，消息類型16 包括用於發送測試的任意 90 個 ASCII 字符消息，消息類型59用於設備供應商使用的專有消息。

1992 年的2.1版本該小組開會考慮使用相位比較 GPS (RTK) 的使用者的意見，該 GPS 產生的精度約為1厘米。1994 年，新的消息類型被添加進來，標準版本更新為為版本 2.1，包括用於原始偽距測量的消息類型18 和消息類型19，和作為校正的消息類型20和消息類型21。新的消息類型9提供了消息類型1和消息類型2 的替代，並成為最廣泛使用的格式之一。1997 年的 2.2 版增加了 消息類型31 到 消息類型37以支持GLONASS，消息類型31和 消息類型32 相當於 GPS 的 1 型和 2 型。該協議最後的更新是 2001 年的 2.3版本，添加了更多資訊，例如 消息類型23 中的天線 ID 和描述、消息類型24中天線的高度，以及與Loran-C和無線電信標一起使用的其他幾個欄位。

### 協議缺點

由於其固定寬度的數據包和顯著的糾錯開銷，版本 2 從傳輸方面並不是很有效，雖然這對於大多數 D-GPS 應用場景來說不是問題，但對於消息負載相對較高的RTK來說這是一個糟糕的問題。出於這個原因，Trimble公司於 1996 年推出了自己的緊湊型測量記錄(CMR) 格式，並於次年更新了成CMR+。此外，數據包格式的一些特性，特別是奇偶校驗系統依賴於按順序到達的數據包的限制，使其不適合例如網際網路的分發系統。除此以外，由於已用完可能的消息格式，該協議無法支持伽利略和北斗等新系統。

## 版本 3

RTCM版本3最初於2004年2月發布， Chan是 RTCM標準當前版本，該協議也還在處於不斷更新中。與 RTCM版本2.3 相比，RTCM版本3使用可變長度消息格式和單個24 位循環冗餘校驗(CRC)，而不是固定長度30 位字使用 6 位奇偶校驗。與早期版本一樣，消息格式以擴展為8 位的前導碼開始，然後是6位保留區域，然後是10位消息長度，最多允許1024位元組的數據。每條消息都可以攜帶私有定義的標頭和數據，緊跟在標頭之後，然後用 CRC 收尾。數據傳輸的有效性的提升是顯著的，特別是在 RTK 的情況下：RTCM版本3的RTK的校正集通常是版本2長度的一半。此外，RTCM3 將消息與相關數據組合在一起發送，而不是發送單獨的消息來完成相同的任務。例如，在版本2中，發送完整的 RTK 消息需要同時發送消息類型18進行校正和消息類型19 用於偽距測量，而在版本3中，此資訊組合在可以通過發送單個消息類型1003來實現。為同一類型的資訊定義多種消息類型，進一步提高效率；例如，消息類型1001僅在 L1 頻率上具有 GPS 數據，而 消息類型1002 增加了各種附加資訊，而 消息類型1003 和 消息類型1004 對可以利用第二個載波的那些站的L1和L2數據執行相同的操作。

最初的 RTCM版本3.0定義了 13 種消息類型，從 消息類型1001到消息類型1013。消息類型1002包含L1 GPS 測量的詳細資訊，而消息類型1004 既是L1又是L2。消息類型1010和消息類型1012是GLONASS的等價物。消息類型1013包含各種系統詳細資訊，包括 GPS 周數。消息類型1005、消息類型1006和消息類型1007包含有關電台的詳細資訊，其中消息類型1007添加了天線高度。位置消息，消息類型1002或消息類型1004和消息類型1010或消息類型1012，大約每秒一次從任何特定站發送。站點詳細資訊大約為20到30秒。

在接下來的協議版本裡，消息類型很快擴展到包含GPS 星曆表的消息類型1019，它提供軌道更新並可用於更快地鎖定 GPS 信號；消息類型1020 是等效的 GLONASS 星曆，該消息很少被使用，因為衛星本身也會定期發送相同的資訊；之後的協議的更新添加了伽利略 F (消息類型1045) 和 I (消息類型1046)、QZSS (消息類型1044) 和北斗 (消息類型1042) 的星曆表。該協議的另外一個重要補充是添加了用於定期更新衛星資訊的狀態空間表示 State Space Representation (SSR)，以及允許使用單個衛星組合來自不同衛星集的數據的多信號消息 Multiple Signal Message (MSM)數據格式。MSM 還允許基本接收器添加都卜勒校正，這主要用於在移動接收器使用 L1 信號來消除歧義。

## 與其他GPS數據格式的關係

除了RTCM SC-104的協議之外，描述GPS數據的協議還有RINEX和NMEA 0183，他們之間的主要區別如下：

- RINEX
- 從不同的生產上的GPS終端接收數據
- 用於靜態處理
- RTCM
- 在GPS接收機之間傳輸數據
- 二進位文件，用於實時D-GPS和RTK的數據更新
- GPS接收機之間和終端之間傳輸數據
- ASCII文件，用於實時處理

## 參考

### 參考書目

- DONALD CHOI， INTRODUCTION TO GPS DATA NMEA & RTCM DONALD。