CANopen学习笔记(三)NMT

NMT

NMT主要用来管理和控制各个节点的状态,具体协议可以分为以下四类:

  1. NMT protocol
  2. Node guard protocol
  3. Heartbeat protocol
  4. Bootup protocol

NMT protocol

该协议是CANopen中网络管理的协议,控制和管理节点的状态,通过发送相关报文,可以让目标节点进入特定的工作状态。工作状态有以下几种

  • Initialization(初始化): 节点开始时进入初始化状态。
  • Pre-operational(预操作): 节点处于准备状态,但不参与正常的PDO(Process Data Object)通信。
  • Operational(操作): 节点完全进入操作模式,允许PDO通信。
  • Stopped(停止): 节点停止所有的通信。

NMT命令通常由网络管理器发送,命令包括:

命令 描述 cs值
Start Remote Node 将节点切换到Operational模式 0x01
Stop Remote Node 将节点切换到Stopped模式 0x02
Enter Pre-operational 将节点切换到Pre-operational模式 0x80
Reset Node 重置节点,重新启动节点 0x81
Reset Communication 重置节点的通信部分 0x82

其具体值为cs值(一字节)+nodeid(一字节)

Note : To command all the nodes, use nodeId = 00

Examples

  • To put the node 0x6 in operational mode : 000 01 06
  • To put all the nodes in pre-operational mode : 000 80 00

Node Guard protocol

节点监护协议(Node Guard protocol),用于主设备监控从设备的状态。由主设备定期发送(监护周期),如从节点没在规定时间内回应(节点生存周期),则主节点认为该节点出现了故障。(该报文中有翻转位)

Heartbeat protocol

心跳协议(Heartbeat protocol),是节点监护协议的简化版本,心跳协议不需要主设备定期发送消息来请求从设备回应,而是每个节点自主定时发布心跳报文,如消费者节点每在规定时间内收到心跳报文,则产生心跳事件。(该报文中没有翻转位)

Bootup protocol

Bootup协议是CANopen节点在启动时,通知主设备其状态的协议,在初始化进入预操作状态时,该节点会发送Bootup表示节点已经初始化完成,并且可以接收管理指令。

posted @ 2024-08-27 16:45  小兜兜me  阅读(246)  评论(0编辑  收藏  举报