IEC 61162-450(船舶驾驶台 / 组播)
IEC 61162-450 是规定驾驶台(bridge)设备之间通过以太网 UDP 组播共享 NMEA 0183 语句的标准,通常称为 "Lightweight Ethernet"(LWE)。
关键在于它不是新的数据格式,而是一种传输方式。语句本身与 NMEA 0183 完全相同,只是改用组播组代替串口/TCP 进行分发。因此多台设备(talker)可以向同一组发送,多个接收方(listener)可同时接收。
网关驱动加入指定的组播组接收数据报,剥离规范前缀和 TAG 块后,使用与 NMEA 0183 驱动相同的解析器解析语句。为只读。
注册表单输入项
| 输入框 | 填写内容 | 示例 |
|---|---|---|
| IP 地址 | (不使用)组在下方选项中指定 | — |
| 端口 | (不使用) | — |
务必在选项中填写组地址
IP 地址栏的默认值为 127.0.0.1。驱动仅将处于**组播地址段(224~239)**的值识别为组,因此若保持 IP 栏不变,将使用选项值或规范默认值。此设计可避免误连到单播地址。
高级选项
| 选项键 | 默认值 | 说明 |
|---|---|---|
mcast-group | 239.192.0.4 | 要接收的组播组 |
mcast-port | 60004 | 端口 |
mcast-nic | (自动) | 接收所用的网络接口名称(例如 eth0) |
strict-prefix | false | 是否丢弃不含规范前缀(UdPbC)的数据报 |
指定 NIC 实际上是必需的
船舶网络通常有多个 NIC(航行网 / 办公网分离)。若不指定 mcast-nic,将按操作系统默认路由加入组播,可能在错误的接口上等待而收不到任何数据。
传输组
规范定义的 8 个组。请每个组注册一个连接(若需同时接收多个组,请分别创建连接)。
| 组 | 用途 | 地址 | 端口 |
|---|---|---|---|
| MISC | 其他 | 239.192.0.1 | 60001 |
| TGTD | 目标数据(雷达/ARPA) | 239.192.0.2 | 60002 |
| SATD | 卫星 | 239.192.0.3 | 60003 |
| NAVD | 航行数据(默认值) | 239.192.0.4 | 60004 |
| VDRD | 航行数据记录仪(VDR) | 239.192.0.5 | 60005 |
| RCOM | 远程通信 | 239.192.0.6 | 60006 |
| TIME | 时间 | 239.192.0.7 | 60007 |
| PROP | 厂商专用 | 239.192.0.8 | 60008 |
大多数航行传感器(GPS/陀螺仪/计程仪)通过 NAVD 输出。
标签的 PLC 地址表示
**与 NMEA 0183 完全相同。**由于共用同一解析器,支持的语句范围和 alias 也一致。
| 表示 | 含义 |
|---|---|
RMC.7 | RMC 的第 7 个字段(对地速度 kn) |
GGA.lat | alias — 纬度 |
RMC.speed | alias — 速度 |
RMC | (省略字段)最后接收到的完整 raw 语句 |
支持的 sentence 与 alias 完整列表,请直接参考 NMEA 0183 文档的 alias 表。
数据报结构(参考)
UdPbC\0 ← 6바이트 규격 프리픽스
\s:GP0001,n:0042*5A\ ← 선택적 TAG 블록 (송신자 식별)
$GPRMC,123519,A,...,W*6A ← NMEA 0183 문장
- 部分现场设备的实现不带前缀、只发送语句,因此默认宽松接受。
- 如需强制遵循规范,请将
strict-prefix设为true。
限制
不支持写入
仅支持接收。网关不会向驾驶台设备发送语句(talker)。
- 不支持 AIS 封装语句(
!AIVDM等) —— 虽然能从数据报中取出,但语句解析器仅处理以$开头的语句。 - 不支持 IEC 61162-460(安全增强版)。
- 不支持 IPv6 组播。
故障排查
| 现象 | 可能原因 | 确认方法 |
|---|---|---|
| 完全收不到值 | 未指定 NIC,在错误的接口上等待 | 将 mcast-nic 指定为航行网 NIC |
| 完全收不到值 | 组/端口不匹配 | 查阅设备手册确认传输组(见上表) |
| 只收到部分语句 | 该语句通过其他组发送 | 按组分别追加注册连接 |
| 连接正常但值为空 | 标签地址中的语句类型与实际接收的语句不符 | 仅注册类型(RMC)先确认 raw 语句 |