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定义 | 说明 |
|---|---|---|
| 2 | TX A(发送+) | 本设备发送差分对的正端 |
| 3 | RX 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差分线应选用双绞屏蔽电缆,典型规格为2对或3对0.2~0.5mm²(约24~20AWG)的屏蔽双绞线,特性阻抗约100~120Ω。双绞的作用是保证两根差分线所拾取的干扰高度相关,从而在接收端被共模抑制;屏蔽层则进一步阻挡电场耦合。若现场用普通平行线代替双绞线,短距离可能“能通”,但一旦靠近变频器或雷达波导,误码率会明显上升。
屏蔽接地的处理原则是单端接地:屏蔽层只在信号源一端(通常是说话者或主控设备端)与机壳地连接,接收端屏蔽层悬空或通过小电容接地。这样可避免两端地电位不同形成地环流,地环流本身会在屏蔽层上产生噪声电流,反而耦合进信号线。若设备手册明确要求两端接地(例如两端均为同一接地参考的封闭系统),则按手册执行,但应确保两端地电位差足够小。
此外,差分对中的“信号地/参考地”线(DB9的5脚或端子GND)应与屏蔽层分开处理:信号地用于给差分接收器提供共模参考,屏蔽层用于电磁屏蔽,二者不应随意短接。实际布线时,NMEA线缆应与动力电缆、雷达波导、天线馈线保持至少30cm以上间距,不可避免交叉时尽量垂直交叉,减少平行耦合长度。
五、接线后的快速验证
完成接线后,可先用万用表直流档测量接收端差分电压:说话者上电空闲时,RX+对RX−应呈现稳定的正向差值(约+2V以上);若测得接近0V或极性相反,说明A/B接反或线路断开。随后用串口调试工具以4800bit/s、8数据位、无校验、1停止位(NMEA 0183默认参数)监听,应能看到以“$”开头、以回车换行结尾的ASCII语句。若收到乱码,优先检查波特率与差分极性;若完全无数据,优先检查TX/RX是否交叉对接、屏蔽层是否误接成信号线。
把物理层接对、接稳,是后续语句解析与协议调试的前提。差分对的极性、成对绞合、单端屏蔽接地这三件事做到位,绝大多数“时通时不通”的现场问题就能从源头消除。