gpt4 book ai didi

network-protocols - 什么是 PDO 映射?

转载 作者:行者123 更新时间:2023-12-04 18:09:58 31 4
gpt4 key购买 nike

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

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

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

有一个 11 位的 COB-ID,它有一个功能代码和一个节点号。
由于节点号使用 7 位,我们最多可以有 127 个节点(对于 CANopen 2.0A 网络)。

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

最佳答案

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

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

默认情况下,设备分配有 4 个 RPDO 和 4 个 TPDO。 4 只是 PDO 的默认数量。可以安排更多,但您有责任为他们创建“ channel ”。那就是选择一个仲裁 ID 并确保总线上没有其他设备会使用该 ID 进行通信。您需要多个 PDO,因为:

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

  • TPDO 是从设备传输的消息,而 RPDO 是接收并写入设备对象字典的消息。

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

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

    关于network-protocols - 什么是 PDO 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16587513/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com