当前位置:
文档之家› (仅供参考)CAN及CANOPEN协议解析
(仅供参考)CAN及CANOPEN协议解析
❖ CANopen,CANopen是由Bosch公司提出并 规范化,最后移交给CIA组织并在1995年发 表,规定了CAN应用层。定义CAN报文中的 11/29位标识符、8字节数据的使用。
CAN与CANopen
应
CANopen设备子协议 DS 401、DS 402、DS 403等
用
层
CANopen通讯子协议 DS 301、DS 302、DS 303等
包含同步,紧急状态表示以及时间标记传送三个特定的对象。
CANopen 通讯机制介绍
CANopen 的每一个节点都维护了一个状态机。该状态机的状态决定了该节 点当前支持的通讯方式以及节点行为。
a.NMT , b. Node Guard , c. SDO , d. Emergency , e. PDO , f. Boot-up
数
据
链
CAN 2.0A 、CAN 2.0B等
路
层
物
理
ISO11898
层
CAN简单介绍
CAN数据链路层
消息传输有四种帧类型: 1、数据帧、请求帧、错误帧、过载帧。 2、数据帧和远程帧用ID标识,错误帧和过载帧
并不占用ID标识符。 3、CAN控制器内部集成错误、过载检测机制,
一旦检测到传输错误或过载,CAN控制器会 自动发送错误帧或过载帧。
进程数据对象(PDO) 用来传输实时数据,数据从一个生产者传到一个或多个消费者。数
据传送限制在1到8个字节。 服务数据对象(SDO)
可用来存取远端节点的对象字典,读取或设定其中的对象。通过使 用索引和子索引,SDO使客户机能够访问服务器对象字典中的项(对 象)。 网络管理对象(NMT)
网络管理(NMT)协议提供了网络初始化,错误控制和设备状态控制服 务。 特殊功能对象
对象词典
❖ 对象词典的分配表参考DS301 ❖ 具体语法结构可参考DS306
举例
[1003] SubNumber=2 ParameterName=Pre-defined Error Field ObjectType=8
[1003sub0] ParameterName=Number of Errors ObjectType=0x7 DataType=0x0005 AccessType=ro DefaultValue=0x1 PDOMapping=0
CAN及 CANOPEN协议
zspking
目录
❖ CAN与CANopen协议介绍; ❖ CAN协议简单介绍; ❖ CANopen协议介绍; ❖ CANopen对象词典; ❖ CANopen通讯机制; ❖ CANopen通讯对象;
CAN与CANopen协议介绍
CAN及CANopen简介
❖ CAN(Controller Area Network ), 1986年 由Robert Bosch 公司 (德国博世)推出的一 种现场总线。包含物理层与数据链路层。
[1003sub1] ParameterName=Standard Error Field ObjectType=0x7 DataType=0x0007 AccessType=ro DefaultValue=0x0 PDOMapping=0
返回
CANopen通讯机制
具体通讯描述
CANopen网络的通信和管理都是通过不同的通信对象来完成的,为 了能够实现通信,网络管理,紧急情况处理等功能,CANopen规范定义 了四类标准的通信对象:
CAN帧
仲裁场
控制场
S O F
11位标识 符
R T R
I D E
R 0
DATALENGTH
8字节数据
CRC 校验
ACK 应答
Fra Baidu bibliotek
E O
F
CANopen协议介绍
CANopen协议
CANopen协议定义了CAN的应用层协议,定义CAN报文中的11/29位 标识符、8字节数据的使用。 CANopen 不仅定义了应用层和通信子协议,而且为可编程系统、不 同器件、接口、应用子协议定义了大量的行规,遵循这些行规开发出 的CANopen设备将能够实现不同公司产品间的互操作。
❖ 一个设备的通讯功能、通讯对象、与设备相关的对象以及对 象的缺省值由电子数据文档(EDS:Electronic Data Sheet) 中提供。
对象词典(object dictionary)
❖ 对象字典(OD:Object Dictionary)是一个有序的对象组;每个对象采用一个16 位的索引值来寻址, 为了允许访问数据结构中的单个元素,同时定义了一个8 位的子索引,对象字典的结构参照下表。节点 的对象字典的有关范围在0x1000 到 0x9FFF 之间。
CANopen主要特点介绍
❖ 采用面向对象的方式来描述,具体设备模型为:
C
A
N 总
应用程序
对象词典
通讯接口
线
❖ 通讯对象: 过程数据对象PDO;服务数据对象SDO;特殊功能对象;网络管理对象NMT。 ❖ 对象词典: 包含描述这个设备和它的网络行为的所有参数。以EDS文档的形式存在。 ❖ 应用程序: 包括功能部分和通信部分。
(BOOLEAN、INTEGER8等) 复杂数据类型
(PDO通讯参数、映射参数等结构体) 制造商规定的复杂数据类型 设备子协议规定的标准数据类型 设备子协议规定的复杂数据类型 保留 通讯子协议区域
(同步、PDO、SDO描述等CIA 301中规定的内容) 制造商特定子协议区域 设备子协议区域
(CIA 401、CIA 402等设备子协议中的参数描述) 保留
索引 0x0000 0x0001~0x001F
0x0020~0x003F
0x0040~0x005F 0x0060~0x007F 0x0080~0x009F 0x00A0~0x0FFF 0x1000~0x1FFF
0x2000~0x5FFF 0x6000~0x9FFF
0xA000~0xFFFF
对象 未使用 标准数据类型
CANopen对象词典
对象词典(object dictionary)
❖ CANopen 网络中每个节点都有一个对象字典。对象字典包 含了描述这个设备和它的网络行为的所有参数。
❖ 一个节点的对象字典是在电子数据文档(EDS:Electronic Data Sheet)中描述。节点本身只需要能够提供对象字典中 必需的对象,以及其它可选择的、构成节点部分可配置功能 的对象。