xuboluan 发表于 2019-10-28 12:40:24

CANopen DS301 通讯学习笔记

本文是基于在学习IFX-CANopen DS301 时的总结,阅读本文可以更快理解1、不同帧ID的含义2、CANopen数据帧格式 3、CANopen数据帧代表的内容。
写在前面:can总线是一种自带仲裁的差分总线。我使用的驱动器采用了CANopen数据协议所以需要理解CANopen协议中每个数据位的意义。
can总线上发送数据帧结构如下。我们需要关心的内容为COB ID 和 8Byte的数据帧格式。
其中COB-ID在1中总结。数据帧在2中总结。(注意CAN总线中 帧ID包括了设备ID,不同帧通过不同的帧ID 实现了不同数据的优先级。)



SDO通讯帧格式为:

其中我们需要关心 Command Code 。Command Code 在2中总结。

注意整个传输过程中 数据帧总是低位在前。

PDO 返回的数据 不一定为8Byte。所以需要通过COB-ID 区分是那个PDO发送来的数据再根据手册中的映射来确定PDO数据含义。(PDO 映射可以根据SOD 来设置)

1、第一步确定COBIDCOBID是11位的   一般为操作码+node(0~127)。操作码是由协议定义好的。Node是由板子上的拨码器决定的。


总结 比如,         读取驱动器PDO1回复时的ID为 0x180+NODEID
                            读取驱动器PDO2回复时的ID为 0x280+NODEID
                            需要设置驱动器时ID为 0x600+NODEID
                            需要读取驱动器设置时 ID为 0x580+NODEID

比如需要启动时 COB-ID为0x00 数据为0
同步帧COB-ID为0x80      数据为0

写设备CCD 总结(IFX-CANopen DS301pg 4-13)


读设备 CCD 总结(IFX-CANopen DS301pg 4-14)


知道了COB-ID 和 CCD 就能确定数据的发送框架,如果需要具体操作设备需要在设备的手册中查找寄存器定义。



NMT 可以控制设备复位,初始化



附:文档
























bzbs 发表于 2019-10-28 15:11:33

写这么多不容易啊
感谢分享

zhoufeng332 发表于 2019-11-21 22:41:35

谢谢分享,学习下
页: [1]
查看完整版本: CANopen DS301 通讯学习笔记