logo资料库

CANopen协议中文简介.pdf

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