發(fā)布日期:2024-10-03 點擊次數(shù):134
控制器Germanjet德敏哲CANopen 傳感器 更改 baud rate (波特率)范例
假設傳感器的 node-id 是 0x7F ,baud rate 是 500kbps,要把 baud rate 改作 1000 kbps。
控制器須先向傳感器發(fā)出 1 個 SDO 用來改變baud rate ,SDO 的索引為 0x2010,子索引為
0x00,數(shù)據(jù)為新 baud rate ,即是 1000 (0x03 E8)。再發(fā)出另 1 個 SDO 用來把 baud rate 儲存至 eeprom,索引為 0x1010,子索引為 0x01,數(shù)據(jù)為 0x73 61 76 65。
詳細的通訊協(xié)議如下:
序號 | 發(fā)送者 | cob-id | dlc | data | 注 |
1 | 控制器 | 0x67F (=0x600+ node-id) | 8 | 0x2F 10 20 00 E8 03 00 00 | 向節(jié)點 0x7F 發(fā)出 SDO, 數(shù)據(jù)是 E8 03 。(低字節(jié)先 行) |
2 | 傳感器 | 0x5FE (=0x580+ node-id) | 8 | 0x2F 10 20 00 00 00 00 00 | 節(jié)點 0x7F 收到了 SDO, 向傳感器回應。但新 baud rate 是尚未生效的,也未 儲存。 |
3 | 控制器 | 0x67F (=0x600+ node-id) | 8 | 0x2F 10 10 01 73 61 76 65 | 向節(jié)點 0x7F 發(fā)出 SDO 儲 存 baud rate 至 eeprom。 cob-id = 0x600 + 0x7E = 0x67E。 |
4 | 傳感器 | 0x5FF (=0x580+ node-id) | 8 | 0x60 10 10 01 00 00 00 00 | 節(jié)點 0x7E 再向傳感器回應 SDO。 |
完成以上通訊后,傳感器的 baud rate 已改作 1000 kbps 并儲存至 eeprom。關(guān)閉傳感器電源,再 啟動,傳感器會從 eeprom 取出新 baud rate (1000kbps),并以此設定進行通訊??刂破鞯?/span> CAN 通訊設置必須和傳感器的 baud rate一樣,才能跟傳感器通訊。
若要改作其他數(shù)值,請見下表 (# 不要輸入表外的數(shù)值,否則傳感器會出現(xiàn)故障)
baud rate | 十六進制 | SDO 指令 (數(shù)據(jù)是低字節(jié)先行) |
1000 kbps | 0x03 E8 | 2F 10 20 00 E8 03 00 00 |
500 kbps | 0x01 F4 | 2F 10 20 00 F4 01 00 00 |
250 kbps | 0x00 FA | 2F 10 20 00 FA 00 00 00 |
125 kbps | 0x00 7D | 2F 10 20 00 7D 00 00 00 |
若傳感器的 node-id 不是 0x7F,請相應改變第 1 個和第 3 個 SDO 的 cob-id ,cob-id = 0x600 + 傳 感器 node-id。若不確定傳感器 node-id,可把傳感器掉電再啟動,傳感器會發(fā)出 1 個 EMCY 報 文,把 EMCY 報文的 cob-id 減去 0x80,就是傳感器 node-id。
- 下一篇:CANopen磁致伸縮位移傳感器德敏哲Germanjet 更改node-ID范例
- 上一篇:CANopen194系列磁致伸縮位移傳感器 更改 “CAN 事件計時器” 范例Germanjet德敏哲
最新產(chǎn)品