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 可以控制设备复位,初始化
附:文档
写这么多不容易啊
感谢分享
谢谢分享,学习下
页:
[1]