首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

NMEA 0183 / IEC 61162-1 標準深度解讀(一):架構、字元集與語句結構

     編輯:關於C語言

標準脈絡:IEC 61162 與 NMEA 0183 的關係

國際標準 IEC 61162 定義航海導航、無線電通訊與系統整合的數位介面,分四部份:

  • IEC 61162-1:單一發送者、多重接收者(傳統 NMEA 0183 核心)
  • IEC 61162-2:單一發送者、多重接收者、高速傳輸
  • IEC 61162-3:多發送者、多接收者、串列儀器網路(審議中)
  • IEC 61162-4:多發送者、多接收者、船舶系統互聯

本文基於 IEC 61162-1 第二版(對應 NMEA 0183 V3.01),整合三份公開可用規範(PAS 61162-100/101/102),涵蓋 UAIS 額外需求、修正條文及航海資料記錄擴充。

關鍵更新重點

  • 引入 「!」分隔符 用於特殊封裝語句,區別傳統 「$」參數語句。
  • 語句清單更新:新增 DDC(顯示調光)、NAVTEX、NRM/NRX、ROR(舵角)、THS(真向)、UID(用戶識別碼)等語句。
  • 依據 PAS 61162-102 修訂航海資料記錄相關語句(ALA, AKD, DOR, ETL, EVE, FIR, GEN, HSS, PRC, TRC, TRD, WAT)。
  • 設備行為規範(如警報處理)移至個別設備標準。

第 7 節:資料格式協定核心規範

7.1 字元集規範

  • 所有傳輸資料解釋為 ASCII 字元,第 8 位固定為 0。
  • 保留字元(Table 1):作為語句/欄位分隔符等特殊用途,不得用於資料欄位。
  • 可用字元(Table 2):可列印 ASCII (HEX 20~7E) 扣除保留字元。
  • 未定義字元:禁止傳輸。
  • 8 位元字元編碼:若必須傳輸 ISO/IEC 8859-1 8 位字元且非保留/可用字元,採用 ^ (HEX 5E) 後接兩碼十六進位表示(如 ^F8、^0D^0A、^5E)。
  • 最低需求以英文為控制/顯示語言,其他語言僅透過 TUT 語句支援。
  • 字元象徵(Table 3):定義測量單位、資料欄位型別、語句型別等代碼。

7.2 欄位結構

欄位包含可用字元串或為空,位於適當分隔符之間。

7.2.1 位址欄位

語句首欄,緊隨 $ 或 ! 分隔符:

  • $:傳統參數化語句,欄位分隔規則見 7.3.2
  • !:特殊封裝語句,非分隔欄位組成規則見 7.3.3

位址欄限定為數字與大寫字母,非空。三種類型:

  1. 通用位址欄:5 碼英數字。前兩碼為發送者識別碼(Table 4,如 GP=GPS、LC=LORAN-C、IN=整合導航)。後三碼定義資料格式與型別(格式清單見 Table 8.3)。多源設備依實際來源切換識別碼;轉發資料時使用原始來源識別碼。

(後續章節將詳細解析語句結構、資料欄位定義、校驗機制及具體語句格式)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved