深圳市易测电气有限公司 - 首页
实用资料 - 深圳市易测电气有限公司

Germanjet德敏哲CANopen 传感器 更改 baud rate (波特率)范例

控制器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