ETJava Beta | Java    注册   登录
  • 搜索:
  • CANopen学习笔记(二)通讯对象PDO和SDO等

    发表于      阅读(1)     博客类别:Crawler     转自:https://www.cnblogs.com/xddisme/p/18383028
    如有侵权 请联系我们删除  (页面底部联系我们)  

    通讯对象

    PDO

    我的观点:一个 CANopen 设备可以拥有最多 512 个 RPDO 和 512 个 TPDO,总共最多 1024 个 PDO。(得到GPT4o的肯定)

    CiA协议栈观点:一个只有一个逻辑设备的 CANopen 设备最多有 512 个 PDO。

    PDO的两种用法:

    • TPDO:生产者PDO
    • RPDO:消费者PDO
    特点

    小而快

    传输模式
    • 同步传输:通过(SYNC对象)来获取同步信号

      ​ 同步TPDO的传输倍率:n表示经过n个同步信号后发送下一个消息。(为0时,收到触发信号后的第一个同步信号后进行发送)

    • 事件驱动传输

    触发模式

    消息的触发模式

    触发方式 解释 应用场景
    事件驱动 特定的事件进行驱动 超限报警
    定时器驱动 固定的时间间隔进行发送 周期性更新数据
    远程请求 其它节点通过发送 RTR 帧来请求该设备发送相应的 PDO 允许节点灵活的请求数据
    同步触发 由一定数量的Sync和内部事件触发 协调多个设备的同步操作
    PDO读写
    • 写协议(推模式):生产者向0 ~ n个消费者写PDO数据(参考spi写数据)
    • 读协议(拉模式):消费者发送RTR请求向生产者请求数据(参考spi读数据)

    PDO写

    参数 请求/执行 响应/确认
    PDO编号 强制
    数据 强制

    image

    PDO读

    参数 请求/执行 响应/确认
    PDO编号 强制
    数据 强制

    image

    对象描述
    • 通讯参数:定义了PDO的基本特性,如COB-ID、传输类型、禁止时间和事件定时器等,它决定了PDO是以何种方式发送和接收数据。

      • COB-ID:通过COB-ID可以唯一识别一个PDO消息

        • TPDO和RPDO的COB-ID是不同的
        • COB-ID的最高位设置为1时,表示该PDO被禁用
      • 传输类型(Transmission Type):PDO消息的传输方式

        • 同步传输
        • 异步传输

    image

    • 抑制时间(Inhibit Time):两个PDO之间的最小时间间隔(以ms为单位)

    • 事件计时器(Event Timer):定了事件触发的周期时间,PDO在到期时发送(表示没有事件发生)

    • 同步计数器(Sync Counter):在同步传输类型下使用,规定了在接收多少次同步信号后发送

    • 映射参数:定义了哪些对象字典条目(变量)被包含在 PDO 消息中,以及这些变量在消息中的位置。

      • 映射条目数:定义了一个PDO在对象字典中的条目数量,每个条目代表一个数据段
      • 映射对象:每个映射对象由32位组成
        • 索引(Index,16位):对象字典中的索引
        • 子索引(Sub-Index, 8位):对象字典项的子索引
        • 位长度(Bit Length,8位):表示映射对象的数据位数(常为字节的整数倍)
    PDO 传输实例

    点我查看

    Multiplex PDO(不懂且没看完,因资料少)

    有两种MPDO的使用方法。第一是目的地址模式(DAM)PDO,第二是源地址模式(SAM)PDO

    支持接收MPDO的ANope的设备为MPDO消费者,支持发送MPDO的C为MPDO生产者

    发送MPDO由事件驱动,不支持定时、远程请求和同步触发模式

    寻址模式
    • 目的地址模式(DAM):一个DAM-MPDO可以被所有该MPDO的消费者同时接收(类似于广播),且无 应答。如果对象不存在,则生成EMCY帧。
    • 源地址模式(SAM):
    MPDO读写

    MPDO写

    参数 请求/执行 响应/确认
    PDO编号 强制
    地址类型 强制
    Node-ID 强制
    Multiplexer 强制
    数据 强制

    image

    SDO

    特点

    大而慢

    传输模式
    传输模式 概述 应答模式
    快速传输 因数据小于等于4个字节,一帧足够发送完,无需分段 一帧一答
    段传输 把数据分割成若干个段,每一段通过单独的帧发送 每帧每答
    块传输 把多个段组合成一个子块,每一子块发送完才接受应答信号,所有子块组成块 每子块每答

    快速传输模式:只需要一次数据的发送和应答就可以完成数据传输,效率高,但是传输的数据量少。

    段传输:数据被分成多个段(segment)来传输,每个段最多可以包含7个字节的数据。这种模式的实现较为简单,适合中等长度的数据传输。

    块传输:相比段传输模式,块传输模式能够处理更大的数据量并且提高了传输效率。数据被分为多个块(block),每个块可以包含多个段。块传输还具有校验机制,能够确保数据的完整性和可靠性。

    协议详解见 Or CiA301中文手册43页

    SYNC

    • 同步生产者定期广播同步对象(SYNC)。
    • SYNC提供基本的网络同步机制,遵循生产消费模型,该服务无应答。
    • 传输1个字节的计数器(可选)

    TIME

    • TIME生产者定期广播时间戳对象(TIME)。
    • TIME提供了简单的网络时钟。CANopen设备通过时间戳对象来校准本地时间。
    • 传输6个字节的时间戳

    EMCY

    • 当设备内部出现致命错误将触发应急(EMCY)报文
    • 由应用设备以最高优先级发送到其他设备。任何具备紧急事件监控与处理能力的从站会接收并处理紧急报文。