CANopen 中的 PDO 和节点

PDO and Nodes in CANopen

我目前正在阅读有关 CANopen 的内容,但我很难理解这些术语之间的区别:
- Node and slave: 一个slave代表一个节点吗?
- PDO 映射:什么是 PDO 映射及其工作原理?
- 什么是索引和子索引?
- 哪个是正确的:一个节点包括4个TPDO和4个RPDO或者一个PDO包括127个节点

我是 CanOpen 的新手,但到目前为止我学到了:

您可以将节点视为线上的点。我们通过节点将设备连接到通信线路。因此主设备和其他设备(从设备)都连接到一个节点。我们使用节点来识别主从地址。当向从站发送 SDO w/r 请求时,您需要指定一个 COB-ID(11 位),其中包括功能代码(4 位)和节点 ID(换句话说目标地址)(7 位)。

我也对 PDO 映射感到困惑。所以我要通过那个。

有一种东西叫做对象字典。它就像一个查找table,一个可以找到一些信息的指南。我认为它是可以驱动的。这些信息对于奴隶和主人都是必需的。但他们如何访问?通过索引。 OD中的所有信息都有一个索引,如果需要,其中一些还可以有子索引。所以我认为索引是为了导航。

CanOpen协议支持127个节点。因此您最多可以添加 127 个单独的设备。 PDO 用于在这些节点之间进行通信。所以我认为 TPDO 和 RPDO 的数量取决于您的应用程序。

Node是一个逻辑通信接口。您可以在一个物理设备中拥有多个逻辑设备。 NMT Master和slave是CANOpen节点。

PDO 映射the CiA newsletter

中描述得很好

是的,Indexsub-index 是 Object Dictionary

中的键

PDO 旨在交换过程数据。一个节点最多可以有 512 个 TPDO 和 512 个 RPDO。前四个 4 TPDO 和 4 RPDO 定义了 COB-ID。其余的 COB-ID 是配置文件或制造商特定的。

TPDO0 COB-ID = 0x180 + NODE-ID
TPDO1 COB-ID = 0x280 + NODE-ID
TPDO2 COB-ID = 0x380 + NODE-ID
TPDO3 COB-ID = 0x480 + NODE-ID

RPDO0 COB-ID = 0x200 + NODE-ID
RPDO0 COB-ID = 0x300 + NODE-ID
RPDO0 COB-ID = 0x400 + NODE-ID
RPDO0 COB-ID = 0x500 + NODE-ID