完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
过程数据对象PDO(Process data object)
PDO属于过程数据用来传输实时数据,即单向传输,无需接收节点回应CAN报文来确认,从通讯术语上来说是属于“生产消费”模型PDO,就像食品销售柜台,生产者摆出“食品”,但只有“需要”的消费者才会来买,没有指向性。 数据长度被限制为1~8 字节。最多只要1帧就可以把一条信息或者一个变量传递结束。 PDO的CAN-ID定义 PDO通信比较灵活,广义上只要符合PDO范围内的所有CANID都可以作为节点自身的TPDO或者RPDO使用,也称为COB-ID,不受功能码和Node-ID限制,如图 2所示。 图 2 PDO的CANID规则 而在PDO预定义中,人为规定了TPDO和RPDO,规定了Node-ID在PDO中的位置,规定了PDO的编号,如表 1所示。 表 1 PDO的CAN-ID定义 PDO分为TPDO(发送PDO)和(接收RPDO),发送和接收是以CANopen节点自身为参考(如果CAN主站或者其他从站就相反)。TPDO和RPDO分别有4个数据对象,每种数据对象就是1条CAN报文封装,这些都是数据收发的容器。 当然,如果某个节点需要传递的资源特别多,则有出现例如TPDO5之类的数据对象,而它们的CAN-ID定义就需要打破预定义的规则,比如我们可以定义Node-ID为1的节点中TPDO5是182h,这里的PDO的COB-ID中的低7位不再是表示Node-ID。其实所有的PDO的COB-ID与Node-ID无必然规则上的联系。 PDO的传输形式 PDO的两种传输方式:同步传输和异步传输。 如图 4所示,1、2为异步传输,3、4为同步传输。 图 4 PDO的传输形式 异步传输(由特定事件触发) 其触发方式可有两种,第一种是由设备子协议中规定的对象特定事件来触发(例如,定时传输,数据变化传输等)。第二种是通过发送与PDO的COB-ID相同的远程帧来触发PDO的发送。目前应用中的异步传输基本都采用第一种。 同步传输(通过接收同步对象实现同步) 同步传输就是通过同步报文让所有节点能在同一时刻进行上传数据或者执行下达的应用指令,可以有效避免异步传输导致的应用逻辑混乱和总线负载不平衡的问题。一般发送同步报文的节点是NMT主机。 同步传输又可分为周期传输(循环)和非周期传输(无循环)。周期传输则是通过接收同步对象(SYNC)来实现,可以设置1~240个同步对象触发。 非周期传输是由远程帧预触发或者由设备子协议中规定的对象特定事件预触发传送。 PDO的通信参数 PDO通信参数,定义了该设备所使用的COB-ID、传输类型、定时周期等。RPDO通讯参数位于对象字典索引的1400h to 15FFh,TPDO通讯参数位于对象字典索引的1800h to 19FFh。每条索引代表一个PDO的通信参数集,其中的子索引分别指向具体的各种参数。如表 2所示。 表 2 PDO的通信参数 Number of entries参数条目数量:即本索引中有几条参数; ·COB-ID:即这个PDO发出或者接收的对应CAN帧ID; ·发送类型:即这个PDO发送或者接收的传输形式,通常使用循环同步和异步制造商特定事件较多; ·Inhibit time生产禁止约束时间(1/10ms):约束PDO发送的最小间隔,避免导致总线负载剧 ·烈增加,比如数字量输入过快,导致状态改变发送的TPDO频繁发送,总线负载加大,所以需要一个约束时间来进行“滤波”,这个时间单位为0.1ms; ·Event timer事件定时器触发的时间(单位ms):定时发送的PDO,它的定时时间,如果这个时间为0,则这个PDO为事件改变发送。 ·SYNC start value同步起始值:同步传输的PDO,收到诺干个同步包后,才进行发送,这个同步起始值就是同步包数量。比如设置为2,即收到2个同步包后才进行发送。 PDO的映射参数 PDO映射参数是初学者学习CANopen时的一个难点,它包含了一个对象字典中的对象列表,这些对象映射到相应的PDO,其中包括数据的长度(单位,位),对于生产者和消费者都必须要知道这个映射参数,才能够正确的解释PDO内容。就是将通信参数、应用数据和具体CAN报文中数据联系起来。 RPDO通讯参数1400h to 15FFh,映射参数1600h to 17FFh,数据存放为2000h 之后厂商自定义区域;TPDO通讯参数1800h to 19FFh,映射参数1A00h to 1BFFh,数据存放为2000h 之后厂商自定义区域。 为了更加直观地表现映射,表 3模拟TPDO1,将参数、应用数据、CAN报文数据联合起来展示,不同的映射采用不同的颜色。 表 3 PDO在对象字典中的映射关系 CAN transmission( CAN发送报文) TPDO1(CAN-ID = 181h) Data field:数据域4个字节 表 4 TPDO的数据域。 |
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2573 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2367 浏览 5 评论
3216 浏览 3 评论
2841 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2795 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
673浏览 1评论
911浏览 0评论
1032浏览 0评论
675浏览 0评论
504浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 02:56 , Processed in 1.239804 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号