一、SYNC
同步幀,由同步生產者定期廣播同步幀,為網路提供基本的同步機制。
- CAN-ID:0x80(功能碼)
- 幀型別:標準資料幀
- DLC:0
- 資料域:無
二、Error Control
1. 節點守護(node guard)
NMT主機定期向NMT從機傳送節點守護請求報文,NMT從機返回自己當前的NMT狀態。
NMT主機:
- CAN-ID:0x700(功能碼) + Node-ID
- 幀型別:標準遠端幀
- DLC:0
- 資料域:無
NMT從機:
- CAN-ID:0x700(功能碼) + Node-ID
- 幀型別:標準資料幀
- DLC:1
- 資料域:
- 最高位(bit 7):翻轉位,首次是0
- 低7位 [6, 0]:心跳生產者的狀態
2. 心跳(heartbeat)
心跳生產者週期性的傳送心跳報文到CAN匯流排上,由對應的心跳消費者接收,心跳生產者在字典0x1017配置,心跳消費者在字典0x1016配置(低16位週期,高16位節點ID)
- CAN-ID:0x700(功能碼) + Node-ID
- 幀型別:標準資料幀
- DLC:1
- 資料域:
- 最高位(bit 7):保留
- 低7位 [6, 0]:心跳生產者的狀態
三、PDO
報文分析的話就按觸發方式來區分吧。大概可以分為以下幾種:
- 無外部報文觸發
- 定時觸發(設定事件定時器)
- 發生改變觸發
- 同步幀觸發
- 遠端幀觸發
1.無外部報文觸發
- CAN-ID:功能碼(見下表) + Node-ID
- 幀型別:標準資料幀
- DLC:資料大小
- 資料域:dlc個8bit資料
2.同步幀觸發
請求方:傳送同步幀,詳見同步幀
響應方:
- CAN-ID:功能碼(見下表) + Node-ID
- 幀型別:標準資料幀
- DLC:資料大小
- 資料域:dlc個8bit資料
3.遠端幀觸發
請求方:
- CAN-ID:功能碼(見下表)+ Node-ID
- 幀型別:標準遠端幀
- DLC: 0
- 資料域:無
響應方:
- CAN-ID:功能碼(見下表) + Node-ID
- 幀型別:標準資料幀
- DLC:資料大小
- 資料域:dlc個8bit資料
功能碼錶
COB | 功能碼值 |
---|---|
NMT | 0x0 |
SYNC | 0x80 |
TPDO1 | 0x180 |
TPDO2 | 0x280 |
TPDO3 | 0x380 |
TPDO4 | 0x480 |
SDO(tx) | 0x580 |
RPDO1 | 0x200 |
RPDO2 | 0x300 |
RPDO3 | 0x400 |
RPDO4 | 0x500 |
SDO(rx) | 0x600 |
HeartBeat | 0x700 |
四、SDO
SDO的download和upload是相對於物件字典(OD)作為參照物的。
SDO啟動報文資料域格式:
- 第一位元組:CS
- 第二位元組:OD索引低8位
- 第三位元組:OD索引高8位
- 第四位元組:OD子索引
1. Fast SDO
Fast SDO旨在用一次報文來完成資料的傳輸,SDO的第一個報文為啟動報文,Fast SDO就是利用啟動報文只用了4個位元組的資料域來與其他裝置建立SDO連線,利用剩下的四個空餘位元組來傳輸資料,從而達到一幀完成建立SDO連線 + 資料傳輸的目的。
client cs 快速取值
取值的不同是因為cs中第三位和第二位表示的是不帶資料的位元組數,改變第三位和第二位的值就可以指定要傳輸多少位元組的資料。
資料規模 | download | upload |
---|---|---|
不指定位元組 | 必須指定位元組數 | 0x40 |
1位元組 | 0x2F | 0x4F |
2位元組 | 0x2B | 0x4B |
3位元組 | 0x27 | 0x47 |
4位元組 | 0x23 | 0x43 |
應答 | 0x60 | 位元組數對應的upload值 |
download
用於修改OD的配置資訊
客戶端:
- CAN-ID:0x600+ Node-ID
- 幀型別:標準資料幀
- DLC: 8
- 資料域:
- 第一位元組:cs(見SDO initiate)
- 第二位元組:OD索引低8位
- 第三位元組:OD索引高8位
- 第四位元組:OD子索引
- 第5~8位元組:傳輸的資料
伺服器:
- CAN-ID:0x580 + Node-ID
- 幀型別:標準資料幀
- DLC:8
- 資料域:
- 第一位元組:cs(見SDO initiate)
- 第二位元組:OD索引低8位
- 第三位元組:OD索引高8位
- 第四位元組:OD子索引
- 第5~8位元組:全為0(不使用但要有)
upload
用於讀取OD的配置資訊
客戶端:
- CAN-ID:0x600+ Node-ID
- 幀型別:標準資料幀
- DLC: 8 (不能是4)
- 資料域:
- 第一位元組:cs(見SDO initiate)
- 第二位元組:OD索引低8位
- 第三位元組:OD索引高8位
- 第四位元組:OD子索引
- 第5~8位元組:全為0(不使用但要有)
伺服器:
- CAN-ID:0x580 + Node-ID
- 幀型別:標準資料幀
- DLC:8
- 資料域:
- 第一位元組:cs(見SDO initiate)
- 第二位元組:OD索引低8位
- 第三位元組:OD索引高8位
- 第四位元組:OD子索引
- 第5~8位元組:傳輸的資料