什么是PDO映射?

Vis*_*ath 5 network-protocols can-bus bus canopen

在阅读了几个CiA规范后,我仍然难以理解CANopen中的PDO映射,过程映像和过程数据交换.

我知道SDO用于预操作状态下的配置设置,并且具有协议开销(因为它可以传输超过8个字节的数据).

在运行状态下,PDO非常适合过程数据的输入和输出.PDO只能传输最多8个字节的数据.

存在11位的COB-ID,其具有功能代码和节点编号.由于节点号使用7位,因此我们最多可以有127个节点(对于CANopen 2.0A网络).

但是有四个TPDO和四个RPDO令我感到困惑.为什么需要多个TPDO和RPDO?在我读取设备配置文件的某个地方可以使用6000h到6FFFh的条目来描述设备参数和设备功能,并且在此范围内可以描述多达8个不同的设备.但是网络中可能有127个节点,那么这8个设备是什么?

Log*_*cG8 6

PDO是用于更有效和异步消息的消息类型.PDO可以在定时器上发送,以响应SYNC消息或响应事件(如数字输入改变).CAN总线消息有效负载的所有8个字节都可用于您的数据.这与只有4个字节可用的SDO形成对比(存在像块传输这样的多消息SDO).

PDO一次只能传输8个字节,因为这是CAN总线消息的最大传输大小.将此与SDO进行对比,其中必须发送命令字节和3字节地址,最多留下4个字节的信息.

默认情况下,设备有4个RPDO和4个TPDO.4只是默认的PDO数量.可以安排更多,但您有责任为他们创建"渠道".这是选择仲裁ID并确保总线上没有其他设备使用该ID进行通话.您需要多个PDO,因为:

  1. 消息具有不同的总线优先级.0x180+$NODEID赢得公共汽车仲裁0x280+$NODEID
  2. PDO通过节点同意提前发送的数据来提高效率.这意味着他们没有等待发送请求,也没有像SDO那样说出他们发送的数据.
  3. PDO内部的数据选择不是很动态.通常必须使设备退出操作状态以更改PDO映射.在某些设备中,PDO映射是完全静态的,根本无法更改.

TPDO是从设备发送的消息,而RPDO是接收和写入设备对象字典的消息.

对象字典定义了CANopen设备的接口.使用16位索引和8位子索引来寻址字典.字典分为范围.0x6000到0x6FFF是分配给设备配置文件变量的索引范围.设备配置文件为更专业的设备类提供标准化接口.

PDO映射是如何就PDO中包含的信息达成一致的.PDO映射是设备对象字典中的条目,与任何其他条目一样.3字节索引,子索引和以位为单位的参数大小在UNSIGNED32中编码.