重工电子论坛

标题: CANOpen协议 [打印本页]

作者: 李维强-15级    时间: 2020-9-8 10:54
标题: CANOpen协议
本帖最后由 李维强-15级 于 2020-9-8 23:16 编辑

有关CAN的协议本帖不做讨论,可详见STM32-CAN配置详解
CANOpen是在CAN通讯之上的一个应用程层协议,本帖会主要讨论该协议的定义,然后把它应用到现在的产品上。

知识点明确:

一、CANOpen是用的标准帧,数据帧来做全部的定义,完全符合帖子 STM32-CAN配置详解的应用。


二、帧的定义如下图

帧ID一共只有11位,被分为两部分,高4位为功能码,低7位为节点地址,帧ID =  功能码(4bits)+Node_ID(7bit)  
所以在CANOpen协议下,挂载的节点数一共就是128个,那么滤波器的设置则为“标识符掩码”,忽略高4位,匹配低7位即可。

三、PDO&SDO
PDO:发送后,只需判断该帧是否发送成功,无需等待回复
SDO:即轮询的概念,发送后等待对方回复相应的信息

在CANOpen中,PDO&SDO就是所谓的前4位功能码。
SDO标准结构:

  1.          600h+Node_ID:  主站发往从站
  2.          580h+Node_ID:  从站回复主站
复制代码

PDO标准结构:

  1.          TPDO  :  180h+Node_ID                  RPDO: 200h+Node_ID         
  2.                    280+Node_ID                         300h+Node_ID
  3.                    380+Node_ID                         400h+Node_ID
  4.                    480+Node_ID                         500h+Node_ID
复制代码



从上面的PDO和SDO看来,一个节点最多支持4个TPDO(分别是180h+NodeID、280h +NodeID、380h +NodeID、480h +NodeID)和4个RPDO(分别是200h +NodeID、300h +NodeID、400h +NodeID、500h +NodeID)。每一个PDO都对应一些参数,包括通讯参数和映射参数。




欢迎光临 重工电子论坛 (http://www.cqutlab.cn/) Powered by Discuz! X3.1