你好我是一名学习canopen的学生。Canopen中的COB-ID和CAN标识符有什么关系?我在 CIA 主页上看到 COB-ID 不是 CAN ID,但我不明白。
例如,如果 PDO 通过 CAN 总线传输,它将从 CANopen 帧转换为 CAN 帧。CAN标识符不会使用COB-ID的节点ID进行转换吗?此时,COB-ID根据功能码不同而不同,但比较混乱的是CAN标识符每个设备只有一个。
总结一下我的问题,我想知道 CANopen 在通过 CAN 总线发送消息时如何转换标识符。
节点 ID 和 COB ID 是不同的东西。
节点 ID 是 CANopen 设备(在连接器中)的硬编码 ID。
COB ID 是 CAN 标识符(11 位或 29 位)和 RTR
位 1:用于请求,0:用于数据
CAN 标识符本身包含优先级。
在某些(?)CANopen 标准中,例如 CiA-301,一些 COB-ID 范围或值被保留。
见: https ://en.wikipedia.org/wiki/CAN_bus#Frames
https://www.can-cia.org/standardization/specifications/ CiA-301 V4.2.0 §7.3.5(下载需要登录,但免费)
Node-ID 基本上是 can 行中设备的名称。如果要控制设备,则需要使用该名称访问它。每个设备都有不同的节点 ID,因此您可以单独控制每个设备。您可以创建该名称,并且可以根据需要进行更改。这些设备通常带有默认节点 ID。您可以在设备的数据表中看到它。例如,默认节点 ID=1。
COB-ID(s) 包含 Node-ID(s),并且 COB-ID(s) 有一个标准。
正如您在链接上看到的表格。如果你想使用 PDO 来发送和接收数据,例如你想使用 PDO1 并且你的设备的 node-id 是 1。
所以你的 COB-ID 是 180+Node-id=181(你可以从设备获取数据(信息))与 PDO1
和 200+node-id=201(您可以将数据(命令)发送到设备)与 PDO1