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** 。截至 2021 年 5 月 20 日 (2021-05-20) ，最新版本是 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 到 64。其後是一個 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 月發布， 是 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 的數據更新
* NMEA 0183:
  * GPS 接收機之間和終端之間傳輸數據
  * ASCII 文件，用於實時處理

## 參見

* NMEA 0183
* RINEX

## 參考

### 引文

### 參考書目

* Soares, Manuel; Malheiro, Benedita; Restivo, Francisco. A Distributed System for the Dissemination of DGPS Data through the Internet. SSGRR 2003. January 2003.
* CMRx: A New Correction Format From Trimble (PDF) (Technical report). Trimble. June 2009 [2022-06-02]. （原始內容存檔 (PDF) 於 2021-09-21）.
* Januszewski, Jacek. Mikulski, Jerzy , 編. Satellite Navigation Systems, Data Messages, Data Transfer and Formats. Modern Transport Telematics: 11th International Conference on Transport Systems Telematics. Katowice-Ustron, Poland: Springer. October 2011. ISBN 9783642246593. doi:10.1007/978-3-642-24660-9\_39.
* RTCM Version 3.0. Novatel. August 2020 [2022-06-02]. （原始內容存檔於 2021-09-02）.
* An RTCM 3 message cheat sheet. SNIP. 15 March 2016 [2022-06-02]. （原始內容存檔於 2022-01-21）.
* Heo, Yong; Yan, Thomas; Lim, Samsung; Rizos, Chris. International Standard GNSS Real-Time Data Formats and Protocols. International Global Navigation Satellite Systems Society IGNSS Symposium 2009. 1–3 December 2009 [2022-06-02]. CiteSeerX 10.1.1.158.7026 . （原始內容存檔於 2022-06-02）.
* Chan, Eddie; Baciu, George. Introduction to Wireless Localization: With iPhone SDK Examples. John Wiley & Sons. 11 May 2012 [2022-06-02]. ISBN9781118298541. （原始內容存檔於 2022-06-02）.
* Boriskin, Alexey; Kozlov, Dmitry; Zyryanov, Gleb. The RTCM Multiple Signal Messages: A New Step in GNSS Data Standardization. Proceedings of the 25th International Technical Meeting of the Satellite Division of The Institute of Navigation: 2947–2955. 17–21 September 2012 [2022-06-02]. （原始內容存檔於 2021-09-02）.
* DONALD CHOI， INTRODUCTION TO GPS DATA NMEA & RTCM DONALD；