学习:https://blog.csdn.net/iamplane/article/details/49931319
同步报文使用:https://blog.csdn.net/qq_40104597/article/details/106476609

7. 过程数据对象 PDO Process data object)

如前文所述PDO属于过程数据用来传输实时数据,即单向传输,无需接收节点回应CAN报文来确认,从通讯术语上来说是属于“生产消费”模型PDO,如图 7.1所示,就像食品销售柜台,生产者摆出“食品”,但只有“需要”的消费者才会来买,没有指向性。

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

7.1 PDO 的 CAN ID 定义

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

而在PDO 预定义中,人为规定了 TPDO 和 RPDO ,规定了 Node ID 在 PDO 中的位置,规定了 PDO 的编号,如 表 7 1 所示。

PDO
分为 TPDO (发送 PDO )和 接收 RPDO)RPDO),发送和接收是以 CANopen 节点 自身为参考 (如果 CAN 主站 或者其他从站 就相反)。 TPDO 和 RPDO 分别有 4 个数据对象 ,每种数据对象就是 1 条 CAN 报 文封装 ,这些都是数据收发的容器,就像 图 4 3 所示,水果箩筐为使用者准备好,就看使用者在里面放什么水果了。当然,如果某个节点需要传递的资源特别多,则有出现例如TPDO5 之类的数据对象,
而它们的 CAN ID 定义就需要打破预定义的规则,比如 我们可以定义 Node ID 为 1 的节点中 TPDO5 是 182 h ,这里的 PDO 的 COB ID 中的低 7 位不再是表示 Node ID 。其实所有的PDO 的 COB ID 与 Node ID 无必然规则上的联系。

7.2 PDO 的传输形式

PDO的 两种传输方式:同步传输和异步传输。 如 图 7 3 所示, 1 、2 为异步传输, 3 、4为同步传输。

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

7.3 PDO 的通信参数

PDO通信参数,定义了该设备所使用的COB-ID传输类型定时周期等。RPDO通讯参数位于对象字典索引的1400h to 15FFh,TPDO通讯参数位于对象字典索引的1800h to 19FFh。每条索引代表一个PDO的通信参数集,其中的子索引分别指向具体的各种参数。如表 7.2所示。

  • Number of entries 参数条目数量 :即本索引中有几条参数
  • COB ID :即这个 PDO 发出或者接收的对应 CAN 帧 ID
  • 发送类型 :即这个 PDO 发送或者接收的传输形式,通常使用循环同步和异步制造商特定事件较多;
  • Inhibit time 生产禁止约束时间 (1/10ms )):约束 PDO 发送的最小间隔,避免导致总线负载剧烈增加,比如数字量输入过快,导致状态改变发送的 TPDO 频繁发送,总线负载加大,所以需要一个约束时间来进行“滤波”,这个时间单位为 0.1ms
  • Event timer 事件定时器触发的时间 单位 ms)ms):定时发送的 PDO ,它的定时时间如果这个时间为 0 ,则这个 PDO 为事件改变发送。
  • SYNC start value 同步起始值 :同步传输的 PDO ,收到诺干个同步包后,才进行发送,这个同步起始值就是同步包数量。比如设置为 2 ,即收到 2 个同步包后才进行发送。

7.4 PDO的映射参数

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

RPDO通讯参数 1400 h to 15FF h 映射参数 1600 h to 17FF h 数据存放为 2000 h 之后厂商自定义区域; TPDO 通讯参数 1800 h to 19FF h 映射参数 1A00 h to 1BFF h 数据存放为 2000 h 之后厂商自定义区域。

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


CAN transmission( CAN发送报文)
TPDO1(CAN ID = 181 h) Data field :数据域 4 个字节

CANopen 7.过程数据对象 PDO Process data object)相关推荐

  1. PHP5中PDO(PHP DATA OBJECT)模块基础详解

    PHP5自从2004年发布以来PDO就有了,但是现在纵观周边开发的情况还是4世代的mysql或者mysqli占据大部分江山,就像ie6一样.也许改革需要时间的推动,在即将发行的PHP6中PDO会作为默 ...

  2. php之PDO (PHP DATA OBJECT)

    从 PHP 5.1 开始附带了 PDO,PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口.PDO 提供了一个 数据访问 抽象层,这意味着,不管使用哪种数据库(比如mysq ...

  3. CANopen中SDO、PDO、以及COB-ID理解

    CAN 总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能力,可以作为现场总线应用于电磁噪声较大的场合. 由于CAN 总线本身只定义ISO/OSI 模型中的第一层(物理层)和第二层(数据链路 ...

  4. CANOpen中SDO和PDO的COB-ID理解

    CANOpen用来收发数据的通信对象有SDO(Service Data Object)和PDO(Process Data Object) 一 SDO和PDO的区别 SDO使用对象字典的Index和Su ...

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

    CAN笔记(20) 过程数据对象 1. 过程数据对象 2. CAN-ID定义 3. 传输形式 4. 通信参数 5. 映射参数 1. 过程数据对象 在 CAN笔记(17) 预定义报文ID 提及到: 过程 ...

  6. PDO(PHP Data Object),Mysqli,以及对sql注入等问题的解决

    PDO(PHP Data Object),Mysqli,以及对sql注入等问题的解决 参考文章: (1)PDO(PHP Data Object),Mysqli,以及对sql注入等问题的解决 (2)ht ...

  7. CANopen之SDO,PDO

    一.简述 CAN 总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能力,可以作为现场总线应用于电磁噪声较大的场合.由于 CAN 总线本身只定义ISO/OSI 模型中的第一层(物理层)和第二层 ...

  8. 阿里云对象存储OSS(Object Storage Service)

    文章目录 简介 endpoint:阿里云服务部署的地区位置 见解 开发步骤 配置文件 utils层(读取全局配置文件并赋值给类变量) service层 impl(基于oss驱动sdk实现类) cont ...

  9. JDO(Java Data Object )

    JDO(Java Data Object )是Java对象持久化的新的规范,也是一个用于存取某种数据仓库中的对象的标准化API. JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要 ...

最新文章

  1. 清华大学董胤蓬:Adversarial Robustness of Deep Learning
  2. 从操作系统的PV操作理解JAVA的synchronized同步方法,同步代码块实现,及比较
  3. 企业私有云的建立—基于Ubuntu Enterprise Cloud(3)
  4. 执行phpinfo();时提示:date_default_timezone_set()
  5. 第三方工具监控java进程_前9个免费的Java进程监视工具以及如何选择一种
  6. php yii 表单title,Yii2.0-ActiveForm表单结构自定义教程
  7. 程序员作图工具和技巧,你 get 了么?
  8. [ASP]没有权限: 'CreateObject'
  9. 深入分析Java Web技术内幕 修订版 pdf
  10. 关闭虚拟机linux的防火墙,Linux虚拟机SSH服务、防火墙开启关闭
  11. 工具推荐:2016年最佳的15款Android黑客工具
  12. Excel中数据透视表的 使用 创建(ピポットテーブル)
  13. 查看文章strncpy()功能更好的文章
  14. SQL 查询CET使用领悟
  15. 李雅普诺夫指数的计算
  16. iOS开发——APP回退到历史版本
  17. GAE+bottle+jinja2+beaker快速开发demo - Python,GAE - language - ITeye论坛
  18. 元气骑士如何获得机器人成就皮肤_《元气骑士》听过浮游炮大礼包吗?有利于快速获取机器人的皮肤!...
  19. python面向对象oo是什么意思_python进阶:面向对象是什么意思?
  20. 拥抱变化,面向Java17,Java8-18全系列特性详解

热门文章

  1. Docker部署免安装版tomcat+mysql+其它乱七八糟软件(包含解释为什么这样安装及同理安装的其他方式)
  2. 服务器 微信报警平台,Zabbix实现微信报警
  3. 计算机运行很卡很慢,电脑运行慢很卡怎么办 电脑运行卡的解决方法
  4. 正则匹配以xx开头以xx结尾的单词
  5. 计算机怎么让隐藏的文件夹不能搜索,电脑怎么巧妙隐藏文件夹让人找不到?隐藏电脑文件方法教程...
  6. 全球海温数据NOAA Extended Reconstructed Sea Surface Temperature (SST) V5的时间解释
  7. 如何使用Access创建一个简单MIS管理系统_Access
  8. linux用mkefs不能进行格式化,磁盘格式化命令 mkfs
  9. 特定领域知识图谱知识融合方案(实体对齐)论文合集
  10. 信息系统项目管理师 第三章-项目立项管理