NMT / SYNC / TIME / EMCY / Heartbeat 报文格式

NMT / SYNC / TIME / EMCY / Heartbeat 报文格式

官方概念来源:


1. NMT(Network Management)报文

1.1 帧头

COB-ID 0x000(全网最高优先级)
DLC 2
发送方 NMT Manager(主站)
接收方 指定从站或全部从站

CiA 说明:NMT 协议为 单帧 2 字节;第 1 字节为命令说明符(CS),第 2 字节为 Node-ID;Node-ID = 0 表示全体节点执行该命令

1.2 数据场

1
2
3
4
5
 Byte0        Byte1
┌───────────┬──────────┐
│ CS │ Node-ID │
│ (命令) │ 0=广播 │
└───────────┴──────────┘

1.3 命令说明符(CS)常用值

CS 含义 目标状态/动作
0x01 Start Remote Node Operational
0x02 Stop Remote Node Stopped
0x80 Enter Pre-Operational Pre-Operational
0x81 Reset Node 复位应用(进 Initialization 流程)
0x82 Reset Communication 复位通信参数

1.4 抓包示例

1
2
3
can0  000   [2]  01 05     # Start 节点 5
can0 000 [2] 80 00 # 全网进入 Pre-Operational
can0 000 [2] 81 03 # Reset 节点 3

1.5 与状态机关系(报文视角)

  • 上电后设备自行完成 Initialization,发 Boot-up,进入 Pre-Operational(见 §5)
  • 主站用 NMT 报文强制迁移;PDO 仅在 Operational 允许
  • Stopped 时设备仍应响应 NMT,并可通过错误控制指示状态

详见概念篇:02-NMT与错误控制.md


2. SYNC(同步)报文

2.1 帧头

默认 COB-ID 0x080(对象 1005h 可改)
DLC 0(无计数器)或 1(带 1 字节计数器,可选)
方向 通常由同步生产者(常为主站)广播

作用:触发 同步传输类型 的 PDO(见 12-PDO)。

2.2 数据场

1
2
3
4
5
6
7
无计数器:DLC=0,无 Data

有计数器:
Byte0
┌─────────┐
│ Counter │ 每次 SYNC 递增(实现/配置相关)
└─────────┘

相关 OD:1005h COB-ID SYNC、1006h Communication cycle period、1007h Synchronous window length(若支持)。

2.3 抓包示例

1
2
can0  080   [0]
can0 080 [1] 2A # 带计数器的 SYNC

3. TIME(时间戳)报文

3.1 帧头

典型值
默认 COB-ID 0x100
DLC 6

3.2 数据场(概念)

1
2
3
4
5
 Byte0 …… Byte3   Byte4 Byte5
┌────────────────┬────────────┐
│ ms of day │ days │
│ (无秒,自当日0点)│ (自1984-01-01)│
└────────────────┴────────────┘

具体编码以 CiA 301 / 设备手册为准;工程上 TIME 为可选功能。


4. EMCY(Emergency)报文

4.1 帧头

默认 COB-ID 0x080 + Node-ID1014h 可改)
DLC 恒为 8
方向 错误生产者 → 网络

4.2 数据场(CiA 301 结构)

1
2
3
4
5
6
 Byte0  Byte1  Byte2     Byte3 …… Byte7
┌──────┬──────┬─────────┬──────────────────┐
│ Error Code │ Error │ Manufacturer │
│ (低) │ (高) │ Register│ Specific Field │
│ │ (1001h) │ (5 bytes) │
└──────┴──────┴─────────┴──────────────────┘
字段 长度 含义
Emergency Error Code 2 B 错误码(小端);0000h 常表示错误清除/无错误
Error Register 1 B 对应 OD 1001h 当前值
Manufacturer Specific 5 B 厂商自定义附加信息

可选:1015h EMCY Inhibit Time(抑制过密 EMCY);1003h 预定义错误场(历史)。

4.3 抓包示例(Node-ID=5)

1
2
can0  085   [8]  00 10 81 00 00 00 00 00
# Error Code = 0x1000,Error Register = 0x81,其余厂商字段

5. Boot-up 与 Heartbeat 报文

二者共用错误控制 CAN-ID 族(CiA:Error control):

COB-ID 0x700 + Node-ID
DLC 1

5.1 Boot-up

  • 在 Initialization 结束、进入 Pre-Operational 之前作为最后动作发送
  • Data[0] 固定为 0x00
  • 运行中意外再收到 Boot-up → 可能节点复位/掉电重启
1
can0  705   [1]  00          # 节点 5 Boot-up

5.2 Heartbeat(Producer)

Data[0] NMT 状态
0x00 Boot-up(仅 boot-up 协议使用该值语义)
0x04 Stopped
0x05 Operational
0x7F Pre-Operational

周期由 1017h Producer Heartbeat Time(ms;0=关闭)配置。
消费者用 1016h 监视超时。

1
2
can0  705   [1]  05          # 节点 5 声明 Operational
can0 705 [1] 7F # 节点 5 声明 Pre-Operational

5.3 Node Guarding(遗留)

  • 同 COB-ID 族,主站以 RTR 轮询,从站数据帧应答并含 toggle 位
  • CiA 不再推荐 基于远程帧的 guarding;新设计用 Heartbeat

6. 主站启动时序(报文级)

1
2
3
4
5
6
7
从站:  ... → Boot-up (700+ID, 00)
主站: SDO 配置 …
主站: NMT Start (000, 01, ID)
从站: Heartbeat (700+ID, 05)
主站: SYNC (080) 循环
双方: PDO …
从站异常: EMCY (080+ID, 8 bytes)

下一篇:11-SDO报文格式详解.md

文章互动

阅读 --

留言

0 条留言

正在加载留言…