CANopen 协议介绍.pdf
《CANopen 协议介绍.pdf》由会员分享,可在线阅读,更多相关《CANopen 协议介绍.pdf(21页珍藏版)》请在三一文库上搜索。
1、 北京博控自动化技术有限公司 CANopen 协议介绍协议介绍 流行欧洲的 CAN-bus 高层协议 1 北京博控自动化技术有限公司 目录目录 1、介绍.1 2、CAL 协议2 3、CANopen.3 31 对象字典 OD3 32 CANopen 通讯.4 33 CANopen 预定义连接集 .6 34 CANopen 标识符分配.8 35 CANopen boot-up 过程8 36 CANopen 消息语法细节 .9 4、总结.18 5、说明.19 1 北京博控自动化技术有限公司 w w w . b o c o n . c o m . c n 1、介绍、介绍 从 OSI 网络模型的角度
2、来看同,现场总线网络一般只实现了第 1 层(物理层) 、第 2 层(数据链路层) 、 第 7 层(应用层) 。因为现场总线通常只包括一个网段,因此不需要第 3 层(传输层)和第 4 层(网络层) , 也不需要第 5 层(会话层)第 6 层(描述层)的作用。 CAN(Controller Area Network)现场总线仅仅定义了第 1 层、第 2 层(见 ISO11898 标准) ;实际设计 中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software)或固件(Firmware) 。 同时,CAN 只定义物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义
3、CAN 报文中的 11/29 位标识符、8 字节数据的使用。而且,基于 CAN 总线的工业自动化应用中,越来越需 要一个开放的、 标准化的高层协议: 这个协议支持各种 CAN 厂商设备的互用性、 互换性, 能够实现在 CAN 网络中提供标准的、统一的系统通讯模式,提供设备功能描述方式,执行网络管理功能。 ? 应用层(Application layer) :为网络中每一个有效设备都能够提供一组有用的服务与协议。 ? 通讯描述(Communication profile) :提供配置设备、通讯数据的含义,定义数据通讯方式。 ? 设备描述(Device proflile) :为设备(类)增加符合规范
4、的行为。 下面的章节将介绍基于 CAN 的高层协议: CAL 协议和基于 CAL 协议扩展的 CANopen 协议。 CANopen 协议是 CAN-in-Automation(CiA)定义的标准之一,并且在发布后不久就获得了广泛的承认。尤其是在欧洲, CANopen 协议被认为是在基于 CAN 的工业系统中占领导地位的标准。大多数重要的设备类型,例如数字 和模拟的输入输出模块、驱动设备、操作设备、控制器、可编程控制器或编码器,都在称为“设备描述” 的协议中进行描述; “设备描述”定义了不同类型的标准设备及其相应的功能。依靠 CANopen 协议的支持, 可以对不同厂商的设备通过总线进行配置。
5、 在 OSI 模型中,CAN 标准、CANopen 协议之间的关系如下图所示: Communication Pr ofile CiA DS-301 CiA DSP-401 CiA DSP-404 CiA DSP-xxx Application Layer Data Link Layer Chip CAN 2.0A Physical Layer ISO 11898 Cable 图 1.1 CAN、CANopen 标准在 OSI 网络模型中的位置框图 1 北京博控自动化技术有限公司 2、CAL 协议协议 CAL(CAN Application Layer)协议是目前基于 CAN 的高层通讯协议中
6、的一种,最早由 Philips 医疗 设备部门制定。现在 CAL 由独立的 CAN 用户和制造商集团 CiA(CAN in Automation)协会负责管理、发 展和推广。 CAL 提供了 4 种应用层服务功能: ? CMS (CAN-based Message Specification) CMS 提供了一个开放的、面向对象的环境,用于实现用户的应用。CMS 提供基于变量、事件、 域类型的对象,以设计和规定一个设备(节点)的功能如何被访问(例如,如何上载下载超过 8 字节 的一组数据(域) ,并且有终止传输的功能) 。 CMS 从 MMS (Manufacturing Message Sp
7、ecification)继承而来。MMS 是 OSI 为工业设备的远程控 制和监控而制定的应用层规范。 ? NMT (Network ManagemenT) 提供网络管理(如初始化、启动和停止节点,侦测失效节点)服务。这种服务是采用主从通讯模 式(所以只有一个 NMT 主节点)来实现的。 ? DBT (DistriBuTor) 提供动态分配 CAN ID(正式名称为 COB-ID,Communication Object Identifier)服务。这种服务 是采用主从通讯模式(所以只有一个 DBT 主节点)来实现的。 ? LMT (Layer ManagemenT) LMT 提供修改层参数的
8、服务:一个节点(LMT Master)可以设置另外一个节点(LMT Slave)的 某层参数(如改变一个节点的 NMT 地址,或改变 CAN 接口的位定时和波特率) 。 CMS 为它的消息定义了 8 个优先级,每个优先级拥有 220 个 COB-ID,范围从 1 到 1760。剩余的标志 (0,1761-2031)保留给 NMT,DBT 和 LMT,见表 2-1。 表 2-1 映射到 CAL 服务和对象的 COB-ID(11 位 CAN 标识符) COB-ID 服务或对象 0 NMT 启动/停止服务 1 - 220 CMS 对象 优先级 0 221 - 440 CMS 对象 优先级 1 441
9、 - 660 CMS 对象 优先级 2 661 - 880 CMS 对象 优先级 3 881 - 1100 CMS 对象 优先级 4 1101 - 1320 CMS 对象 优先级 5 1321 - 1540 CMS 对象 优先级 6 1541 - 1760 CMS 对象 优先级 7 1761 - 2015 NMT 节点保护 2016 - 2031 NMT,LMT,DBT 服务 注意这是 CAN2.0A 标准, 11 位 ID 范围0, 2047, 由于历史原因限制在0, 2031。 如果使用 CAN2.0B 标准, 29 位 ID 并不改变这个描述; 表中的 11 位映射到 29 位 COB-
10、ID 中的最高 11 位, 以至于表中的 COB-ID 范围变得增大许多。 2 北京博控自动化技术有限公司 w w w . b o c o n . c o m . c n 3、CANopen CAL 提供了所有的网络管理服务和报文传送协议,但并没有定义 CMS 对象的内容或者正在通讯的对 象的类型(它只定义了 how,没有定义 what) 。而这正是 CANopen 切入点。 CANopen 是在 CAL 基础上开发的, 使用了 CAL 通讯和服务协议子集, 提供了分布式控制系统的一种 实现方案。CANopen 在保证网络节点互用性的同时允许节点的功能随意扩展:或简单或复杂。 CANopen
11、的核心概念是设备对象字典 (OD: Object Dictionary) , 在其它现场总线 (Profibus, Interbus-S) 系统中也使用这种设备描述形式。注意:对象字典不是 CAL 的一部分,而是在 CANopen 中实现的。 下面先介绍对象字典(OD:Object Dictionary) ,然后再介绍 CANopen 通讯机制。 3.1 对象字典对象字典 OD 对象字典(OD:Object Dictionary)是一个有序的对象组;每个对象采用一个 16 位的索引值来寻址, 为了允许访问数据结构中的单个元素,同时定义了一个 8 位的子索引,对象字典的结构参照表 3-1。不要被
12、 对象字典中索引值低于 0x0FFF 的data types项所迷惑,它们仅仅是一些数据类型定义。一个节点的对 象字典的有关范围在 0x1000 到 0x9FFF 之间。 表 3-1 CANopen 对象字典通用结构 索引 对象 0000 Not used 0001 - 001F 静态数据类型 (标准数据类型,如 Boolean,Integer 16) 0020 - 003F 复杂数据类型 (预定义由简单类型组合成的结构如 PDOCommPar,SDOParameter) 0040 - 005F 制造商规定的复杂数据类型 0060 - 007F 设备子协议规定的静态数据类型 0080 - 00
13、9F 设备子协议规定的复杂数据类型 00A0 - 0FFF Reserved 1000 - 1FFF 通讯子协议区域 (如设备类型,错误寄存器,支持的 PDO 数量) 2000 - 5FFF 制造商特定子协议区域 6000 - 9FFF 标准的设备子协议区域 (例如“DSP-401 I/O 模块设备子协议” :Read State 8 Input Lines 等) A000 - FFFF Reserved CANopen 网络中每个节点都有一个对象字典。 对象字典包含了描述这个设备和它的网络行为的所有参 数。 一个节点的对象字典是在电子数据文档(EDS:Electronic Data Shee
14、t)中描述或者记录在纸上。不必 要也不需要通过 CAN-bus“审问”一个节点的对象字典中的所有参数。如果一个节点严格按照在纸上的对 象字典进行描述其行为,也是可以的。节点本身只需要能够提供对象字典中必需的对象(而在 CANopen 规定中必需的项实际上是很少的) ,以及其它可选择的、构成节点部分可配置功能的对象。 CANopen 由一系列称为子协议的文档组成。 通讯子协议(communication profile) ,描述对象字典的主要形式和对象字典中的通讯子协议区域中的 对象,通讯参数。同时描述 CANopen 通讯对象。这个子协议适用于所有的 CANopen 设备。 还有各种设备子协议
15、(device profile) ,为各种不同类型设备定义对象字典中的对象。目前已有 5 种不 3 北京博控自动化技术有限公司 w w w . b o c o n . c o m . c n 同的设备子协议,并有几种正在发展。 设备子协议为对象字典中的每个对象描述了它的功能、名字、索引和子索引、数据类型,以及这个对 象是必需的还是可选的,这个对象是只读、只写或者可读写等等。 注意:一个设备的通讯功能、通讯对象、与设备相关的对象以及对象的缺省值由电子数据文档(EDS: Electronic Data Sheet)中提供。 单个设备的对象配置的描述文件称作设备配置文件(DCF:Device Con
16、figuration File) ,它和 EDS 有相 同的结构。二者文件类型都在 CANopen 规范中定义。 设备子协议定义了对象字典中哪些 OD 对象是必需的,哪些是可选的;必需的对象应该保持最少数目 以减小实现的工作量。 可选项在通讯部分和与设备相关部分可以根据需要增加以扩展 CANopen 设备的功能。如果 需要的项超过了设备子协议中可以提供的, 在设备子协议中已预留由足够空间提供给厂商的特定功能使用。 对象字典中描述通讯参数部分对所有 CANopen 设备(例如在 OD 中的对象是相同的,对象值不必一 定相同)都是一样的。对象字典中设备相关部分对于不同类的设备是不同的。 32 CA
17、Nopen 通讯通讯 前面说明了 CANopen 中对象字典的概念,现在我们来介绍在 CANopen 网络中的通讯消息,它们的内 容和功能,换句话:CANopen 通讯模式。 注意: 请区分对象字典中的对象 (使用对象字典索引和子索引) 和通讯对象 (或者消息, 使用 COB-ID) 。 CANopen 通讯模型定义了 4 种报文(通讯对象) : 1 管理报文 ? 层管理,网络管理和 ID 分配服务:如初始化,配置和网络管理(包括:节点保护) 。 ? 服务和协议符合 CAL 中的 LMT,NMT 和 DBT 服务部分。这些服务都是基于主从通讯模式:在 CAN 网络中,只能有一个 LMT,NMT
18、 或 DBT 主节点以及一个或多个从节点。 2 服务数据对象 SDO(Service Data Object) ? 通过使用索引和子索引(在 CAN 报文的前几个字节) ,SDO 使客户机能够访问设备(服务器) 对象字典中的项(对象) 。 ? SDO 通过 CAL 中多元域的 CMS 对象来实现,允许传送任何长度的数据(当数据超过 4 个字节 时分拆成几个报文) 。 ? 协议是确认服务类型:为每个消息生成一个应答(一个 SDO 需要两个 ID) 。SDO 请求和应答报 文总是包含 8 个字节(没有意义的数据长度在第一个字节中表示,第一个字节携带协议信息) 。 SDO 通讯有较多的协议规定。 3
19、 过程数据对象 PDO(Process Data Object) ? 用来传输实时数据, 数据从一个创建者传到一个或多个接收者。数据传送限制在 1 到 8 个字节 (例如,一个 PDO 可以传输最多 64 个数字 I/O 值,或者 4 个 16 位的 AD 值) 。 ? PDO 通讯没有协议规定。PDO 数据内容只由它的 CAN ID 定义,假定创建者和接收者知道这个 PDO 的数据内容。 ? 每个 PDO 在对象字典中用 2 个对象描述: ? PDO 通讯参数:包含哪个 COB-ID 将被 PDO 使用,传输类型,禁止时间和定时器周期。 ? PDO 映射参数:包含一个对象字典中对象的列表,这
20、些对象映射到 PDO 里,包括它们的数 据长度(in bits) 。创建者和接收者必须知道这个映射,以解释 PDO 内容。 ? PDO 消息的内容是预定义的(或者在网络启动时配置的) : 映射应用对象到 PDO 中是在设备对象字典中描述的。 如果设备 (创建者和接收者) 支持可变 PDO 映射,那么使用 SDO 报文可以配置 PDO 映射参数。 ? PDO 可以有多种传送方式: 4 北京博控自动化技术有限公司 w w w . b o c o n . c o m . c n ? 同步(通过接收 SYNC 对象实现同步) ? 非周期: 由远程帧预触发传送, 或者由设备子协议中规定的对象特定事件预触
21、发传送。 ? 周期:传送在每 1 到 240 个 SYNC 消息后触发。 ? 异步 ? 由远程帧触发传送。 ? 由设备子协议中规定的对象特定事件触发传送。 表 3-2 给出来了由传输类型定义的不同 PDO 传输模式,传输类型为 PDO 通讯参数对象的一部分,由 8 位无符号整数定义。 表 3-2 PDO 传输类型定义 触发 PDO 的条件 (B = both needed O = one or both) 传输类型 SYNC RTR Event PDO 传输 0 B - B 同步,非循环 1-240 O - - 同步,循环 241-251 - - - Reserved 252 B B - 同步
22、,在 RTR 之后 253 - O - 异步,在 RTR 之后 254 - O O 异步,制造商特定事件 255 - O O 异步,设备子协议特定事件 说明: ? SYNC 接收到 SYNC-object。 ? RTR 接收到远程帧。 ? Event 例如数值改变或者定时器中断。 ? 传输类型为:1 到 240 时,该数字代表两个 PDO 之间的 SYNC 对象的数目) 。 ? 一个 PDO 可以指定一个禁止时间,即定义两个连续 PDO 传输的最小间隔时间,避免由于高优 先级信息的数据量太大,始终占据总线,而使其它优先级较低的数据无力竞争总线的问题。禁止 时间由 16 位无符号整数定义,单位
23、100us。 ? 一个 PDO 可以指定一个事件定时周期,当超过定时时间后,一个 PDO 传输可以被触发(不需 要触发位) 。事件定时周期由 16 位无符号整数定义,单位 1ms。 ? PDO 通过 CAL 中存储事件类型的 CMS 对象实现。PDO 数据传送没有上层协议,而且 PDO 报 文没有确认(一个 PDO 需要一个 CAN-ID) 。每个 PDO 报文传送最多 8 个字节(64 位)数据。 4 预定义报文或者特殊功能对象 ? 同步(SYNC) ? 在网络范围内同步(尤其在驱动应用中) :在整个网络范围内当前输入值准同时保存,随后 传送(如果需要) ,根据前一个 SYNC 后接收到的报
24、文更新输出值。 ? 主从模式:SYNC 主节点定时发送 SYNC 对象,SYNC 从节点收到后同步执行任务。 ? 在 SYNC 报文传送后,在给定的时间窗口内传送一个同步 PDO。 ? 用 CAL 中基本变量类型的 CMS 对象实现。 ? CANopen 建议用一个最高优先级的 COB-ID 以保证同步信号正常传送。SYNC 报文可以不 传送数据以使报文尽可能短。 ? 时间标记对象(Time Stamp) ? 为应用设备提供公共的时间帧参考。 ? 用 CAL 中存储事件类型的 CMS 对象实现。 5 北京博控自动化技术有限公司 ? 紧急事件(Emergency) ? 设备内部错误触发。 ?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CANopen 协议介绍 协议 介绍
链接地址:https://www.31doc.com/p-3648436.html