0

我无法理解 CANopen 协议。我知道 CAN 的工作原理以及 CAN 帧的外观。CAN 数据或远程帧包含开始帧、消息标识符字段、DLC、RTR、数据(有效负载)、CRC、ACk 字段等。我知道 CANopen 标准利用 CAN 总线发送 CAN 消息。但是,CANopen 的 CAN 帧看起来不同,它在消息标识符字段中包含 COB ID+节点 ID,在有效负载字段中,它包含对象字典相关信息。因此,我想问以下问题:

  1. 对象字典是如何定义的。我知道它是一个
    包含 ID、子 ID、有关其包含的数据的数据类型信息、相应数据
    条目的制造商信息等的表。它们是否都被硬编码为
    软件堆栈中的 m*n 多维数组?

  2. 我对传输 PDO 和接收 PDO 的术语感到困惑。它类似于 CAN 数据帧和 CAN 远程帧吗?

  3. 什么是 PDO 映射以及如何识别对象字典中的哪个对象 ID 映射到 PDO 映射
    表中的哪个对象 ID。两者都使用相同的术语 Object ID ?

我实际上对 CANopen 很陌生,我根据我最初的理解提出了这些问题。我在 CiA 网站上找不到详细的解释。

先感谢您

克里希纳

4

1 回答 1

0

不是那么容易理解的!!

CanOpen 是 Master(客户端)和 Slave(服务器)之间的通信。像传感器这样的设备是从设备。从站有一个 OD(对象目录)。制造商提供有关它的所有信息。前任。如果我想读取温度,它的位置位于子索引 00 处的地址 0x2040。然后主机(我们的系统)需要发出这个请求。为此,您需要通过发送一些请求(使用 SDO)来配置设备,以更改 TPDO1 映射 (0x1A00) 和 TPDO1 通信参数 (0x1800)。并且能够通过设备接收温度。该设备不能单独工作。

SDO(读/写)允许 OD 访问条目。前任。更改 TPDO1 映射。PDO 是设备运行后的输出/输入。

有 NMT 主命令可将设备置于操作模式或发送 SYNC 或 Heartbeat。取决于设备需要什么?前任。080h 00 : 主机发送 SYNC 280h 06 E5 EF 02 00 00 00 : TPDO2 响应设备 000h 02 01 1F : 将 ID = 1F 的设备置于操作模式

如果您想要一个很好的示例设备 POSITAL FRABA 绝对旋转编码器,可以打开接口。

希望这对你有一点帮助!!!

于 2020-10-20T19:18:04.697 回答