1. 课程导入与NMEA协议概览
当你在驾驶台查看电子海图上的本船位置、在雷达上读取他船的航向航速、在风速仪上看到实时风向,这些信息往往并非来自同一台设备,而是多台航行设备各自测量后,通过一条共同的“语言”互相通报。NMEA 0183 就是船舶航行设备之间最经典、应用最广的这套通信语言。本课程的目标,是让你从“看到一串以 $ 开头的字符”进阶到“能读懂它、能判断它是否可信、能在排障时定位问题”。
先厘清两个容易混淆的概念
初学者最常遇到的困惑是:教材里一会儿说 NMEA 0183,一会儿又说 IEC 61162,它们是不是两套不同的协议?答案是:它们描述的是同一套通信规则,只是身份不同。
NMEA 0183 由美国国家海洋电子协会(National Marine Electronics Association)制定,是行业事实标准,规定了语句格式、电气接口、传输速率等内容。国际电工委员会(IEC)在此基础上发布了 IEC 61162 系列标准,将其纳入国际标准体系,其中 IEC 61162-1 对应 NMEA 0183 的电气与语句规范,IEC 61162-2 则针对高速传输。可以这样理解:NMEA 0183 是“原始版本与行业习惯叫法”,IEC 61162-1 是“国际标准编号”,在设备手册和船级社审图中两者经常并列出现。实际识读报文时,你面对的语句格式、字段含义完全一致,不必因名称不同而困惑。
需要特别注意的是版本差异。NMEA 0183 早期版本(如 1.5、2.0)与后期版本(2.3、4.0、4.10)在部分语句的字段数量、字段含义上有变化,例如某些语句新增了信号质量、模式指示等字段。识读时必须先确认设备手册声明的版本,否则可能把新增字段误读为旧字段,导致解析错位。
报文在船舶航行设备中的角色
NMEA 报文本质上是设备之间的“数据快递”。它承担三类典型角色:
- 传感器数据上报:GPS 接收机输出位置、对地航速、UTC 时间;计程仪输出对水速度;罗经输出艏向;风速风向仪输出相对风与真风数据。
- 设备间协同:AIS 转发他船动态信息,ECDIS 接收本船位置与他船目标用于叠加显示,自动舵接收航向与航迹数据用于保持航向。
- 状态与告警传递:部分语句携带设备状态、完整性信息或告警指示,供综合导航系统判断数据是否可用。
从数据流角度看,典型链路是:传感器 → 分配器/多路复用器 → 显示终端与综合系统。一条 NMEA 0183 线路通常只能有一个“说话者”(Talker),但可以有多个“听者”(Listener),这也是为什么实际船舶上常需要分配器来把一路数据分发给多台设备。理解这一点,对后续排查“某台设备收不到数据”极为关键。
一条报文长什么样
以最常见的定位语句为例:
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
这条语句可以拆成几个层次来读:$ 是起始符;GP 是说话者标识(GPS);GGA 是语句类型(定位数据);随后是逗号分隔的若干字段,依次为 UTC 时间、纬度、南北半球、经度、东西半球、定位质量、使用卫星数、水平精度因子、天线高度等;*47 是校验和,用于验证整条语句在传输中是否出错。识读的核心能力,就是知道每个字段“在第几位、代表什么、单位是什么、什么取值算正常”。
校验和的计算方法是:对 $ 与 * 之间的所有字符逐字节做异或运算,结果用两位十六进制表示。例如手工核对时,把 GPGGA 到最后一个逗号之间的字符依次异或,若结果与 *47 不符,说明该语句在传输中已损坏,应当丢弃而不是勉强解析。这是实际排障中判断“数据线接触不良还是设备本身故障”的第一道筛子。
本课程的整体学习路径
后续内容将按“先看懂、再读准、后排障”的顺序展开:先掌握语句的通用结构与常见说话者标识,建立整体框架;再逐类精读定位、航向、速度、风、AIS 等高频语句,结合示例参数练习字段定位与单位换算;随后进入电气层与传输层,理解差分信号、波特率、接线与分配器的作用;最后通过典型故障案例,练习从“终端无数据显示”反推到“哪条语句缺失、哪个字段异常、哪段线路可疑”。
需要建立的一个基本判断意识是:报文能收到,不等于数据可信。 一条格式完全正确、校验和也通过的 GGA 语句,其定位质量字段可能为 0(无效定位),卫星数可能只有 3 颗。识读的最终目的,是让你在看到一串字符时,既能读出“它说了什么”,也能判断“它说的能不能用”。