当前位置:文档之家› CAN及CANOPEN协议解析

CAN及CANOPEN协议解析

CAN及 CANOPEN协议
zspking
目录
❖ CAN与CANopen协议介绍; ❖ CAN协议简单介绍; ❖ CANopen协议介绍; ❖ CANopen对象词典; ❖ CANopen通讯机制; ❖ CANopen通讯对象;
CAN与CANopen协议介绍
CAN及CANopen简介
❖ CAN(Controller Area Network ), 1986年 由Robert Bosch 公司 (德国博世)推出的一 种现场总线。包含物理层与数据链路层。
(BOOLEAN、INTEGER8等) 复杂数据类型
(PDO通讯参数、映射参数等结构体) 制造商规定的复杂数据类型 设备子协议规定的标准数据类型 设备子协议规定的复杂数据类型 保留 通讯子协议区域
(同步、PDO、SDO描述等CIA 301中规定的内容) 制造商特定子协议区域 设备子协议区域
(CIA 401、CIA 402等设备子协议中的参数描述) 保留
下载(Download)是指对对象字典进行写操作,上传(Upload)指对对象 字典进行读操作。
各个通讯对象介绍
与SDO相关的对象词典: 描述SDO数据类型的对象词典:
SDO入口参数的对象词典:
各个通讯对象介绍
❖ 举例说明: 使用下面的SDO消息,值0x3FE将写到节点ID为2的对象字典中索引
为wk.baidu.comx1801,子索引为3的对象中去,使用启动域下载协议,加速传输(2 字节数据):
Stamp对象的广播。
预定义连接集
各个通讯对象介绍
❖ PDO(Process Device Object)用来传输实时数据,遵循 Producer/Consumer模式,数据从一个生产者传到一个或多 个消费者。数据传送限制在1到8个字节。
特点: PDO通讯没有协议规定。PDO数据内容只由它的COB-
各个通讯对象介绍
RPDO 有两种工作方式: 同步 接收到同步PDO消息后,在收到下一个SYNC消息时发送给应用程序。 异步 接收到PDO消息后,直接发送给应用程序。
各个通讯对象介绍
各个通讯对象介绍
与PDO相关的对象词典: 描述PDO数据类型的对象词典:
PDO入口参数的对象词典:
各个通讯对象介绍
1: Start_Remote_node (0x01) 2:Stop_Remote_Node (0x02) 3: Enter_Pre-Operational_State (0x80) 4: Reset_Node (0x81) 5:Reset_Communication (0x82) 6:设备初始化结束,自动进入
❖ 一个设备的通讯功能、通讯对象、与设备相关的对象以及对 象的缺省值由电子数据文档(EDS:Electronic Data Sheet) 中提供。
对象词典(object dictionary)
❖ 对象字典(OD:Object Dictionary)是一个有序的对象组;每个对象采用一个16 位的索引值来寻址, 为了允许访问数据结构中的单个元素,同时定义了一个8 位的子索引,对象字典的结构参照下表。节点 的对象字典的有关范围在0x1000 到 0x9FFF 之间。
❖ 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等
[1003sub1] ParameterName=Standard Error Field ObjectType=0x7 DataType=0x0007 AccessType=ro DefaultValue=0x0 PDOMapping=0
返回
CANopen通讯机制
具体通讯描述
CANopen网络的通信和管理都是通过不同的通信对象来完成的,为 了能够实现通信,网络管理,紧急情况处理等功能,CANopen规范定义 了四类标准的通信对象:



CAN 2.0A 、CAN 2.0B等




ISO11898

CAN简单介绍
CAN数据链路层
消息传输有四种帧类型: 1、数据帧、请求帧、错误帧、过载帧。 2、数据帧和远程帧用ID标识,错误帧和过载帧
并不占用ID标识符。 3、CAN控制器内部集成错误、过载检测机制,
一旦检测到传输错误或过载,CAN控制器会 自动发送错误帧或过载帧。
CANopen主要特点介绍
❖ 采用面向对象的方式来描述,具体设备模型为:
C
A
N 总
应用程序
对象词典
通讯接口
线
❖ 通讯对象: 过程数据对象PDO;服务数据对象SDO;特殊功能对象;网络管理对象NMT。 ❖ 对象词典: 包含描述这个设备和它的网络行为的所有参数。以EDS文档的形式存在。 ❖ 应用程序: 包括功能部分和通信部分。
举例说明一个PDO的应用: 假定第二个PDO对象映射参数的内容如下:
在CANopen I/O模块的设备子协议(CiA DSP-401)定义中,对象0x6000子索引2是 节点的第2组8位数字量输入,对象0x6401子索引0x01是节点的第1组16位模拟量输入。
这个PDO报文如果被发送(可能由输入改变,定时器中断或者远程请求帧等方式触发, 和PDO的传输类型相一致,可以在对象0x1801子索引2中查找),则由3字节数据组成,格 式如下:
ID定义,假定生产者和消费者知道这个PDO的数据内容。 每个PDO在对象字典中用 2 个对象描述:
PDO通讯参数:包含哪个COB-ID将被PDO使用,传输类型, 禁止时间和事件时间。
PDO映射参数:包含一个对象字典中对象的列表,这些对 象映射到PDO里,包括它们的数据长度。生产者和消费者必 须知道这个映射,以解释PDO内容。
PDO Maping
各个通讯对象介绍
静态PDO映射: 如果支持PDO静态映射,则PDO的内容会被设备制造商严格 预定义,且不能通过CANopen接口进行更改。 动态PDO映射: 如果CANopen对象字典中的PDO映射条目在NMT运行状态 期间也可以更改,则设备支持动态映射。
各个通讯对象介绍
SDO用来访问一个设备的对象字典。遵循Client/Server模式。访问者被称作 客户 (client),对象字典被访问且提供所请求服务的CANopen设备别称作服务器 (server)。客户的CAN报文和服务器的应答CAN报文总是包含8字节数据(尽管 不是所有的数据字节都一定有意义)。协议是确认服务类型:为每个消息生成一 个应答。
预定义连接集
❖ 预定义的连接集定义了: 4个接收PDO(Receive-PDO); 4 个发送PDO(Transmit-PDO); 1个SDO(占用2个COB-ID); 1个紧急对象; 1个节点错误控制(Node-Error-Control)ID; 不需确认的NMT-Module-Control服务,SYNC和Time
CAN帧
仲裁场
控制场
S O F
11位标识 符
R T R
I D E
R 0
DATALENGTH
8字节数据
CRC 校验
ACK 应答
E O
F
CANopen协议介绍
CANopen协议
CANopen协议定义了CAN的应用层协议,定义CAN报文中的11/29位 标识符、8字节数据的使用。 CANopen 不仅定义了应用层和通信子协议,而且为可编程系统、不 同器件、接口、应用子协议定义了大量的行规,遵循这些行规开发出 的CANopen设备将能够实现不同公司产品间的互操作。
Pre_Operational状态,发送Boot-up消息
CANopen 从站BOOT过程
CANopen主站BOOT过程
三种通讯协议模式(主从模式)
三种通讯协议模式(C/S模式)
三种通讯协议模式(生产者消费者模式)
返回
CANopen通讯对象
预定义连接集
❖ 通过11/29位标识符COB-ID对实时数据对象(Process Data Objects, PDO), 配置数据对象(Service Data Objects, SDO)和特殊功能对象(时间戳Time Stamp, 同步消息,紧急消息)和网络管理数据(Boot-Up message, NMT message, and Error Control)对象等进行描述。 为了减小简单网络的组态工作量,CANopen定义了强制性的缺省标识符 (CAN-ID)分配表。即预定义连接集。
SDO中实现了5个请求/应答协议:启动域下载 (Initiate Domain Download),域分段下载(Download Domain Segment), 启动域上传 (Initiate Domain Upload),域分段上传 (Upload Domain Segment) 和域传 送中止(Abort Domain Transfer)。
对象词典
❖ 对象词典的分配表参考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
包含同步,紧急状态表示以及时间标记传送三个特定的对象。
CANopen 通讯机制介绍
CANopen 的每一个节点都维护了一个状态机。该状态机的状态决定了该节 点当前支持的通讯方式以及节点行为。
a.NMT , b. Node Guard , c. SDO , d. Emergency , e. PDO , f. Boot-up
CANopen对象词典
对象词典(object dictionary)
❖ CANopen 网络中每个节点都有一个对象字典。对象字典包 含了描述这个设备和它的网络行为的所有参数。
❖ 一个节点的对象字典是在电子数据文档(EDS:Electronic Data Sheet)中描述。节点本身只需要能够提供对象字典中 必需的对象,以及其它可选择的、构成节点部分可配置功能 的对象。
PDO消息的内容是预定义的或者在网络启动时配置的。
各个通讯对象介绍
TPDO 可以有多种传送方式: 同步(通过接收SYNC 对象实现同步) 非周期:由远程帧预触发传送,或者由设备子协议中规定的对象特定事件预触发传送。 周期:传送在每1 到240个SYNC消息后触发。 异步
由远程帧触发传送。 由设备子协议中规定的对象特定事件触发传送
进程数据对象(PDO) 用来传输实时数据,数据从一个生产者传到一个或多个消费者。数
据传送限制在1到8个字节。 服务数据对象(SDO)
可用来存取远端节点的对象字典,读取或设定其中的对象。通过使 用索引和子索引,SDO使客户机能够访问服务器对象字典中的项(对 象)。 网络管理对象(NMT)
网络管理(NMT)协议提供了网络初始化,错误控制和设备状态控制服 务。 特殊功能对象
索引 0x0000 0x0001~0x001F
0x0020~0x003F
0x0040~0x005F 0x0060~0x007F 0x0080~0x009F 0x00A0~0x0FFF 0x1000~0x1FFF
0x2000~0x5FFF 0x6000~0x9FFF
0xA000~0xFFFF
对象 未使用 标准数据类型
可选SDO传送机制: 块传送(Block transfer):当传送数据长度大于4字 节时,多个分段只由1个确认报文应答以增加总线吞吐量。
相应的协议为:启动块下载 (Initiate Block Download),块分段下载 (Download Block Segment),块下载结束(End Block Download),启动块 上传 (Initiate Block Upload),块分段上传(Upload Block Segment) 和 块 上传结束(End Block Upload)。
使用下面的SDO消息,同样的对象字典中索引为0x1801,子索引为 3的对象将被读出,使用启动域上传协议,服务器使用加速传输方式应 答(2字节数据):
相关主题