2. NMEA 0183物理层与接线基础

NMEA 0183协议在船舶电子设备之间被广泛使用,但很多现场故障并非出在语句解析上,而是出在物理层:线接反、极性搞错、屏蔽层处理不当、把RS-422当成RS-232接。本节从差分信号原理出发,讲清DB9与端子定义、单工与双工连接方式,以及线缆规格与屏蔽接地的实际做法。

一、为什么用差分信号:RS-422/RS-485的电气本质

NMEA 0183的电气层采用差分传输,标准上对应RS-422(发送端)与RS-485(接收端可兼容)的平衡差分接口。其核心思想是:用两根线(通常记为A、B,或NMEA中的TX+ / TX−、RX+ / RX−)传输同一信号的互补电平,接收端只关心两线之间的电压差,而不关心相对大地的绝对电平。

以常见的NMEA 0183 v2.0及以上版本为例,发送端在A、B之间产生约±2V至±6V的差分摆幅:逻辑“1”(空闲/停止位)时A高于B,逻辑“0”(起始位/数据0)时B高于A。接收端一般以约200mV的差分门限判决,差值大于门限判为一种状态,小于负门限判为另一种状态。这样做的直接好处是共模干扰(如船上电机、雷达、变频器耦合到线缆上的同相噪声)会同时叠加在两根线上,相减后被抵消,因此差分接口的抗干扰能力和传输距离都远优于单端RS-232。

需要特别强调:差分线不是“信号线+地线”。A、B两根线必须成对绞合、成对走线,不能把其中一根当地线使用。RS-422发送端为平衡输出,可驱动较长线缆(NMEA 0183标准建议速率4800bit/s时线缆长度可达数百米量级,实际受线径、屏蔽与现场干扰影响,工程上常控制在几十米内更稳妥)。

二、DB9与端子接线定义

NMEA 0183设备常见的物理接口有两种:DB9(9针D-sub)连接器和接线端子(螺钉端子或插拔端子)。DB9的针脚定义在不同厂商间并不完全统一,但业界较通行的做法是:

DB9针脚常见NMEA 0183定义说明
2TX A(发送+)本设备发送差分对的正端
3RX A(接收+)本设备接收差分对的正端
5信号地 / 屏蔽参考常作为屏蔽层或参考地
4、6等TX B / RX B(部分厂商)差分负端,定义因厂商而异

正因为DB9定义存在厂商差异,接线前必须查阅设备手册的针脚表,不能凭经验直接对接。端子式接口则通常直接标注“TX+ / TX− / RX+ / RX− / GND”,相对直观,但仍需确认“+”端对应的是A还是B。工程上判断极性的实用方法是:用万用表直流档测量发送端空闲状态下的差分电压,A对B为正(约+2V以上)时,A即为“+”。

三、单工与双工连接方式

NMEA 0183的典型拓扑是“一个说话者(Talker)对一个或多个听者(Listener)”,属于单工广播式传输:说话者只发不收,听者只收不发。因此最常见的连接是“TX+接RX+、TX−接RX−”,即交叉对接差分对,而不是像RS-232那样交叉TX/RX单端线。

当两台设备需要双向通信(例如GPS与自动舵之间既接收又发送)时,则构成双工连接:设备1的TX对接到设备2的RX对,设备2的TX对接到设备1的RX对,两对差分线各自独立、互不共用。若一个说话者要驱动多个听者(如GPS同时向雷达、AIS、自动舵广播),可将多个听者的RX+并联接说话者TX+、RX−并联接TX−,但并联听者数量受发送端驱动能力限制,一般不宜超过4个,且总线末端建议加终端匹配电阻(RS-422典型为120Ω,跨接在差分对两端)以抑制反射。

NMEA 0183 单工与双工差分连接示意 单工(广播):1个说话者 → 多个听者 GPS 说话者 TX+ / TX− (仅发送) TX+ → RX+ TX− → RX− 雷达 听者 RX+ / RX− (仅接收) AIS 听者 RX+ / RX− 并联分支 双工:双向独立差分对 设备 A TX+ / TX− / RX+ / RX− 设备 B TX+ / TX− / RX+ / RX− A.TX+ → B.RX+ A.TX− → B.RX− B.TX+ → A.RX+ B.TX− → A.RX− 接线要点 • 差分对必须成对绞合走线 • 不可将A/B任一根当地线 • 多听者并联≤4个 • 总线末端加120Ω终端电阻 • 屏蔽层单端接地,避免地环流 • 接线前核对厂商针脚定义

四、线缆规格与屏蔽接地要求

NMEA 0183差分线应选用双绞屏蔽电缆,典型规格为2对或3对0.2~0.5mm²(约24~20AWG)的屏蔽双绞线,特性阻抗约100~120Ω。双绞的作用是保证两根差分线所拾取的干扰高度相关,从而在接收端被共模抑制;屏蔽层则进一步阻挡电场耦合。若现场用普通平行线代替双绞线,短距离可能“能通”,但一旦靠近变频器或雷达波导,误码率会明显上升。

屏蔽接地的处理原则是单端接地:屏蔽层只在信号源一端(通常是说话者或主控设备端)与机壳地连接,接收端屏蔽层悬空或通过小电容接地。这样可避免两端地电位不同形成地环流,地环流本身会在屏蔽层上产生噪声电流,反而耦合进信号线。若设备手册明确要求两端接地(例如两端均为同一接地参考的封闭系统),则按手册执行,但应确保两端地电位差足够小。

此外,差分对中的“信号地/参考地”线(DB9的5脚或端子GND)应与屏蔽层分开处理:信号地用于给差分接收器提供共模参考,屏蔽层用于电磁屏蔽,二者不应随意短接。实际布线时,NMEA线缆应与动力电缆、雷达波导、天线馈线保持至少30cm以上间距,不可避免交叉时尽量垂直交叉,减少平行耦合长度。

常见错误:把RS-422的A/B当成RS-232的TX/RX直接对接,或把差分负端接到对方地线。这类接法在短线上可能偶尔通信,但一旦线缆加长或干扰增强就会频繁丢句,且极难通过软件排查发现。

五、接线后的快速验证

完成接线后,可先用万用表直流档测量接收端差分电压:说话者上电空闲时,RX+对RX−应呈现稳定的正向差值(约+2V以上);若测得接近0V或极性相反,说明A/B接反或线路断开。随后用串口调试工具以4800bit/s、8数据位、无校验、1停止位(NMEA 0183默认参数)监听,应能看到以“$”开头、以回车换行结尾的ASCII语句。若收到乱码,优先检查波特率与差分极性;若完全无数据,优先检查TX/RX是否交叉对接、屏蔽层是否误接成信号线。

把物理层接对、接稳,是后续语句解析与协议调试的前提。差分对的极性、成对绞合、单端屏蔽接地这三件事做到位,绝大多数“时通时不通”的现场问题就能从源头消除。