发布日期:2024-10-03 点击次数:134
控制器Germanjet德敏哲CANopen 传感器 更改 baud rate (波特率)范例
假设传感器的 node-id 是 0x7F ,baud rate 是 500kbps,要把 baud rate 改作 1000 kbps。
控制器须先向传感器发出 1 个 SDO 用来改变baud rate ,SDO 的索引为 0x2010,子索引为
0x00,数据为新 baud rate ,即是 1000 (0x03 E8)。再发出另 1 个 SDO 用来把 baud rate 储存至 eeprom,索引为 0x1010,子索引为 0x01,数据为 0x73 61 76 65。
详细的通讯协议如下:
序号 | 发送者 | cob-id | dlc | data | 注 |
1 | 控制器 | 0x67F (=0x600+ node-id) | 8 | 0x2F 10 20 00 E8 03 00 00 | 向节点 0x7F 发出 SDO, 数据是 E8 03 。(低字节先 行) |
2 | 传感器 | 0x5FE (=0x580+ node-id) | 8 | 0x2F 10 20 00 00 00 00 00 | 节点 0x7F 收到了 SDO, 向传感器回应。但新 baud rate 是尚未生效的,也未 储存。 |
3 | 控制器 | 0x67F (=0x600+ node-id) | 8 | 0x2F 10 10 01 73 61 76 65 | 向节点 0x7F 发出 SDO 储 存 baud rate 至 eeprom。 cob-id = 0x600 + 0x7E = 0x67E。 |
4 | 传感器 | 0x5FF (=0x580+ node-id) | 8 | 0x60 10 10 01 00 00 00 00 | 节点 0x7E 再向传感器回应 SDO。 |
完成以上通讯后,传感器的 baud rate 已改作 1000 kbps 并储存至 eeprom。关闭传感器电源,再 启动,传感器会从 eeprom 取出新 baud rate (1000kbps),并以此设定进行通讯。控制器的 CAN 通讯设置必须和传感器的 baud rate一样,才能跟传感器通讯。
若要改作其他数值,请见下表 (# 不要输入表外的数值,否则传感器会出现故障)
baud rate | 十六进制 | SDO 指令 (数据是低字节先行) |
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,可把传感器掉电再启动,传感器会发出 1 个 EMCY 报 文,把 EMCY 报文的 cob-id 减去 0x80,就是传感器 node-id。
- 下一篇:CANopen磁致伸缩位移传感器德敏哲Germanjet 更改node-ID范例
- 上一篇:CANopen194系列磁致伸缩位移传感器 更改 “CAN 事件计时器” 范例Germanjet德敏哲
最新产品