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