CANopen學習筆記(三)NMT

小兜兜me發表於2024-08-27

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表示節點已經初始化完成,並且可以接收管理指令。

相關文章