重工电子论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 134|回复: 0

CANOpen协议

[复制链接]

249

主题

618

帖子

3868

积分

学生管理组

Rank: 8Rank: 8

积分
3868
发表于 2020-9-8 10:54:59 | 显示全部楼层 |阅读模式
本帖最后由 李维强-15级 于 2020-9-8 23:16 编辑

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

知识点明确:

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


二、帧的定义如下图
1.png
帧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都对应一些参数,包括通讯参数和映射参数。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|cqutlab ( 渝ICP备15004556号

GMT+8, 2020-10-23 07:48 , Processed in 0.099361 second(s), 34 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表