重工电子论坛
标题:
CANOpen协议
[打印本页]
作者:
李维强-15级
时间:
2020-9-8 10:54
标题:
CANOpen协议
本帖最后由 李维强-15级 于 2020-9-8 23:16 编辑
有关CAN的协议本帖不做讨论,可详见
STM32-CAN配置详解
。
CANOpen是在CAN通讯之上的一个应用程层协议,本帖会主要讨论该协议的定义,然后把它应用到现在的产品上。
知识点明确:
一、CANOpen是用的标准帧,数据帧来做全部的定义,完全符合帖子
STM32-CAN配置详解
的应用。
二、帧的定义如下图
1.png
(14.26 KB, 下载次数: 1314)
下载附件
2020-9-8 11:03 上传
帧ID一共只有11位,被分为两部分,高4位为功能码,低7位为节点地址,
帧ID = 功能码(4bits)+Node_ID(7bit)
所以在CANOpen协议下,挂载的节点数一共就是128个,那么滤波器的设置则为“标识符掩码”,忽略高4位,匹配低7位即可。
三、PDO&SDO
PDO:发送后,只需判断该帧是否发送成功,无需等待回复
SDO:即轮询的概念,发送后等待对方回复相应的信息
在CANOpen中,PDO&SDO就是所谓的前4位功能码。
SDO标准结构:
600h+Node_ID: 主站发往从站
580h+Node_ID: 从站回复主站
复制代码
PDO标准结构:
TPDO : 180h+Node_ID RPDO: 200h+Node_ID
280+Node_ID 300h+Node_ID
380+Node_ID 400h+Node_ID
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://cqutlab.cn/)
Powered by Discuz! X3.1