CAN笔记(20) 过程数据对象


1. 过程数据对象

CAN笔记(17) 预定义报文ID 提及到:
过程数据对象 PDO 属于过程数据用来传输实时数据
即 单向传输,无需接收节点回应CAN 报文来确认
从通讯术语上来说是属于“生产消费”模型 PDO

其中数据长度被限制为 1~8 字节
最多只要 1 帧就可以把一条信息或者一个变量传递结束

在这里插入图片描述

就像食品销售柜台, 生产者摆出“食品”,“食品”有限制大小
但只有“需要” 的消费者才会来买, 没有指向性


2. CAN-ID定义

PDO 通信比较灵活
广义上只要符合 PDO 范围内的所有 CAN-ID 都可以作为节点自身的 TPDO 或者 RPDO 使用
也称为 COB-ID,但不受功能码和 Node-ID 限制

在这里插入图片描述

而在 PDO 预定义中
人为规定了 TPDO 和 RPDO,规定了 Node-ID 在 PDO 中的位置,规定了 PDO 的编号:

在这里插入图片描述
PDO 分为 TPDO(发送PDO)和 RPDO(接收PDO)
发送和接收是以 CANopen 节点自身为参考(如果 CAN 主站或者其他从站就相反)
TPDO 和 RPDO 分别有 4 个数据对象,每种数据对象就是 1 条 CAN 报文封装
这些都是数据收发的容器
筐为使用者准备好,就看使用者在里面放什么东西了

当然,如果某个节点需要传递的资源特别多
则有出现例如 TPDO5 之类的数据对象
而它们的 CAN-ID 定义就需要打破预定义的规则


3. 传输形式

PDO 的两种传输方式:同步传输和异步传输
在这里插入图片描述

  • 异步传输:由特定事件触发
    其触发方式可有两种:
    第一种是由设备子协议中规定的对象特定事件来触发(例如,定时传输,数据变化传输等)
    第二种是通过发送与 PDO 的 COB-ID 相同的远程帧来触发 PDO的发送
    目前应用中的异步传输基本都采用第一种
  • 同步传输:通过接收同步对象实现同步
    同步传输就是通过同步报文让所有节点能在同一时刻进行上传数据或者执行下达的应用指令
    可以有效避免异步传输导致的应用逻辑混乱和总线负载不平衡的问题
    一般发送同步报文的节点是 NMT 主机

同步传输又可分为

  • 周期传输(循环)
    通过接收同步对象(SYNC)来实现,可以设置 1~240 个同步对象触发
  • 非周期传输(无循环)
    由远程帧预触发或者由设备子协议中规定的对象特定事件预触发传送

4. 通信参数

PDO 通信参数,定义了该设备所使用的 COB-ID传输类型定时周期
RPDO 通讯参数位于 对象字典索引1400h ~ 15FFh
TPDO 通讯参数位于 对象字典索引1800h ~ 19FFh

每条索引代表一个 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 个同步包后才进行发送


5. 映射参数

PDO 映射参数是一个难点, 它包含了一个对象字典中的对象列表
这些对象映射到相应的 PDO,其中包括数据的长度(单位,位)
对于生产者和消费者都必须要知道这个映射参数,才能够正确的解释 PDO 内容
就是将通信参数、应用数据和具体 CAN 报文中数据联系起来

RPDO 通讯参数 1400h ~ 15FFh, 映射参数 1600h ~ 17FFh, 数据存放为 2000h 之后厂商自定义区域
TPDO 通讯参数 1800h ~ 19FFh, 映射参数 1A00h ~ 1BFFh, 数据存放为 2000h 之后厂商自定义区域

为了更加直观地表现映射
模拟 TPDO1,将参数、应用数据、 CAN 报文数据联合起来展示,不同的映射采用不同的颜色:

在这里插入图片描述
通过在对象字典索引通讯参数配置数据长度、CAN-ID和发送类型等,然后通过映射参数找到需要发送的数据值


参考:

《CANopen 轻松入门》


相关推荐:

CAN笔记(19) 网络管理
CAN笔记(18) 对象字典
CAN笔记(17) 预定义报文ID
CAN笔记(16) CANOpen简介
CAN笔记(15) STM32-M4 CAN通讯


谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

氢键H-H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值