[应用相关] canopen 简单的入门

[复制链接]
7190|96
 楼主| stm32jy 发表于 2018-11-30 23:15 | 显示全部楼层
异步传输(由特定事件触发)
其触发方式可有两种, 第一种是由设备子协议中规定的对象特定事件来触发(例如,定
时传输,数据变化传输等)。第二种是通过发送与 PDO 的 COB-ID 相同的远程帧来触发 PDO
的发送。 目前应用中的异步传输基本都采用第一种。
 楼主| stm32jy 发表于 2018-11-30 23:16 | 显示全部楼层
同步传输(通过接收同步对象实现同步)
同步传输就是通过同步报文让所有节点能在同一时刻进行上传数据或者执行下达的应
用指令,可以有效避免异步传输导致的应用逻辑混乱和总线负载不平衡的问题。 一般发送同
步报文的节点是 NMT 主机。
 楼主| stm32jy 发表于 2018-11-30 23:16 | 显示全部楼层
PDO 的通信参数
PDO 通信参数,定义了该设备所使用的 COB-ID、传输类型、定时周期等。 RPDO 通讯
参数位于对象字典索引的 1400h to 15FFh, TPDO 通讯参数位于对象字典索引的 1800h to
19FFh。 每条索引代表一个 PDO 的通信参数集,其中的子索引分别指向具体的各种参数。如
表 所示
637595c0154635d9b3.png
 楼主| stm32jy 发表于 2018-11-30 23:17 | 显示全部楼层
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 个同步包后才进行
发送。
 楼主| stm32jy 发表于 2018-11-30 23:17 | 显示全部楼层
PDO 的映射参数
PDO 映射参数是初学者学习 CANopen 时的一个难点, 它包含了一个对象字典中的对
象列表,这些对象映射到相应的 PDO,其中包括数据的长度(单位,位),对于生产者和
消费者都必须要知道这个映射参数,才能够正确的解释 PDO 内容。 就是将通信参数、应用
数据和具体 CAN 报文中数据联系起来。
 楼主| stm32jy 发表于 2018-11-30 23:18 | 显示全部楼层
RPDO 通讯参数 1400h to 15FFh, 映射参数 1600h to 17FFh, 数据存放为 2000h 之后厂商
自定义区域; TPDO 通讯参数 1800h to 19FFh,映射参数 1A00h to 1BFFh,数据存放为 2000h 之
后厂商自定义区域。
 楼主| stm32jy 发表于 2018-11-30 23:18 | 显示全部楼层
PDO 在对象字典中的映射关系
283445c0154da9205b.png
wowu 发表于 2018-12-4 13:20 | 显示全部楼层
我到现在也不知道为什么我的没有调通
xiaoqizi 发表于 2018-12-4 13:24 | 显示全部楼层
具体到单片机上是怎么写的呢
磨砂 发表于 2018-12-5 10:00 | 显示全部楼层
感谢分享 很基础的资料
磨砂 发表于 2018-12-5 10:01 | 显示全部楼层
感谢分享  很基础的资料
 楼主| stm32jy 发表于 2018-12-21 21:46 | 显示全部楼层
xiaoqizi 发表于 2018-12-4 13:24
具体到单片机上是怎么写的呢

csdn 上有stm32 canopen例子
 楼主| stm32jy 发表于 2018-12-21 21:47 | 显示全部楼层
wowu 发表于 2018-12-4 13:20
我到现在也不知道为什么我的没有调通

你用的是canfestival吗?
 楼主| stm32jy 发表于 2018-12-21 21:47 | 显示全部楼层
磨砂 发表于 2018-12-5 10:00
感谢分享 很基础的资料

找的工程好好研究下,要花时间的。
wowu 发表于 2019-1-1 17:00 | 显示全部楼层
stm32jy 发表于 2018-12-21 21:47
找的工程好好研究下,要花时间的。

是的 什么都需要自己动手试试看才能真的弄懂
xiaoqizi 发表于 2019-1-1 17:06 | 显示全部楼层
stm32jy 发表于 2018-12-21 21:46
csdn 上有stm32 canopen例子

是不是还需要积分下载啊
kkzz 发表于 2019-1-1 22:15 | 显示全部楼层
CANopen是一种架构在控制局域网路
hudi008 发表于 2019-1-1 22:15 | 显示全部楼层
CAN-BUS接触过                     
lzmm 发表于 2019-1-1 22:15 | 显示全部楼层
依靠CANopen协议的支持,可以对不同厂商的设备通过总线进行配置
minzisc 发表于 2019-1-1 22:16 | 显示全部楼层
有SYNC的CANopen网络
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部