CANopen总线协议之过程数据对象(PDO)

CANopen总线协议之过程数据对象(PDO),第1张

过程数据表示可以随时间变化的数据,例如节点控制器的输入(即传感器)和输出(即电动机驱动器)。过程数据也存储在对象字典中。但是,由于SDO通信一次仅允许访问一个对象字典索引,因此访问不断变化的数据可能会有很多开销。另外,CANopen协议要求节点必须能够发送自己的数据,而无需被CANopen主站轮询。因此,使用一种称为“ 过程数据对象”(PDO)的通信方法来传输过程数据的方法也有所不同。了解更多 CANopen总线协议

PDO有两种类型:传输PDO(TPDO)和接收PDO(RPDO)。TPDO是来自节点(已产生)的数据,而RPDO是到达节点(已消耗)的数据。另外,PDO有两种类型的参数:配置参数和映射参数。对象词典中保留给PDO配置和映射信息的部分是索引1400h-1BFFh。

配置参数指定COB-ID,传输类型,禁止时间(仅TPDO)和事件计时器,这将在本节中进行说明。有多种方法可以启动PDO传输。这些方法包括事件驱动,时间驱动,单独轮询和同步轮询。传输类型在PDO的配置参数中指定。在事件驱动的传输中,当其中的过程数据发生更改时,将启动PDO传输。在时间驱动的传输中,PDO传输以固定的时间间隔发生。在单个轮询中,PDO传输是使用一种不常用的称为远程请求的机制启动的。在同步轮询中,使用SYNC信号启动PDO传输。同步信号经常用作全局计时器。例如,如果CANopen主站发出SYNC消息,则可以配置多个节点以查看并响应该SYNC。这样,主站就可以同时获取多个过程对象的“快照”。

事件驱动的PDO传输示例

映射参数指定由单个PDO消息发送的对象字典值。例如,单个PDO消息可能包含来自对象索引2001h,2003h和2005h的数据。

TPDO对象字典示例

SDO使用对象字典的索引和子索引访问CAN节点的对象字典,可以读取或写入。

PDO不使用索引和子索引。它是两个can节点之间为传输数据内容而约定的对象字典索引。PDO接收到数据后,直接读写对应的对象字典索引中的值。

因为SDO(general)需要索引和子索引,所以它一次最多可以传输4个字节,而PDO一次最多可以传输8个字节。

例如,通过PDO映射,将0x201(节点ID为1)映射到传输索引为0x6040、子索引为0x00的数据字典对象,可以通过将cobOuID设置为0x201直接向节点1的0x60400x00对象发送数据,而不必使用SDO发送包括索引和子索引的数据。

扩展资料:

CANopen设备之间的通信可以分为以下三种通信模式。

在主/从模型中,CANopen设备是主设备,负责从其他设备(称为从设备)发送或接收数据。NMT协议使用主/从模型。

客户机/服务器模型在SDO契约中定义。SDO客户端将目标字典的索引和子索引发送到SDO服务器,从而生成一个或多个需求数据的SDO包(在目标字典中,索引和子索引的对应内容)。

生产者/消费者模型用于heartbeat和节点保护协议。一个生产者发送给消息制造者的数据,以及来自同一生产者的数据可以发送给多个消息制造者。

它也可以分为两种类型:推送模式:生产者会自动向消费者发送数据。拉模型:消费者需要在生产者发送数据之前发送请求消息。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11303718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存