CANOpen协议的分析与研究

时间:2022-09-22 03:06:07

CANOpen协议的分析与研究

摘要:CANopen是CAN上的高层通信协议,本文通过对CANopen协议的四种的通讯模式的分析,比较过程数据对象PDO模式和服务数据对象模式在实现消息机制上的异同,并利用CANopen通信模型构造了电梯控制系统的基本框架模型,总结了CANopen协议的优缺点和适用场合。

关键词:CAN;CANopen;PDO;SDO

中图分类号:TP271 文献标识码:A

1 概述

CANopen是一种架构在控制局域网路(ControlArea Network,CAN)上的高层通讯协议,包括通讯子协定及设备子协议,常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。CANopen是开放的、标准化的高层协议:这个协议支持各种CAN厂商设备的互用性、互换性,能够实现在CAN网络中提供标准的、统一的系统通讯模式,提供设备功能描述方式,执行网络管理功能。

应用层(Application layer):为网络中每一个有效设备都能够提供一组有用的服务与协议。

通讯描述(Communication profile):提供配置设备、通讯数据的含义,定义数据通讯方式。

设备描述(Device proflile):为设备(类)增加符合规范的行为。

CANopen主要应用在汽车、工业控制、自动化仪表等领域,目前由CIA负责管理和维护。

2 CANopen通讯模式

CANopen网络中的通讯是通过消息机制来实现的,CANopen通讯模型定义了4种报文(通讯对象):

2.1 过程数据对象PDO(Process Data Object)

2.1.1 用来传输实时数据,数据从一个生产者传到一个或多个消费者。数据传送限制在1到8个字节(例如,一个PDO可以传输最多64个数字I/O值,或者4个16位的AD值)。

2.1.2 PDO通讯没有协议规定。PDO数据内容只由它的CAN ID定义,假定生产者和消费者知道这个PDO的数据内容。

2.1.3 每个PDO在对象字典中用2个对象描述。

2.1.4 PDO通讯参数:包含哪个COB-ID将被PDO使用,传输类型,禁止时间和定时器周期。

2.1.5  PDO映射参数:包含一个对象字典中对象的列表,这些对象映射到PDO里,包括它们的数据长度(in bits),生产者和消费者必须知道这个映射,以解释PDO内容。

2.1.6 DO消息的内容是预定义的(或者在网络启动时配置的):映射应用对象到PDO中是在设备对象字典中描述的。如果设备(生产者和消费者)支持可变PDO映射,那么使用SDO报文可以配置PDO映射参数。

2.1.7 可以有多种传送方式:

a同步(通过接收SYNC对象实现同步)

b非周期:由远程帧预触发传送,或者由设备子协议中规定的对象特定事件预触发传送。

2.1.8 周期:传送在每1到240个SYNC消息后触发。

2.1.9 异步

a由远程帧触发传送。

b由设备子协议中规定的对象特定事件触发传送。

表2-1给出来了由传输类型定义的不同PDO传输模式,传输类型为PDO通讯参数对象的一部分,由8位无符号整数定义。

2 管理报文

层管理,网络管理和ID分配服务:如初始化,配置和网络管理(包括:节点保护)。

服务和协议符合CAL中的LMT,NMT和DBT服务部分。这些服务都是基于主从通讯模式:在CAN网络中,只能有一个LMT,NMT或DBT主节点以及一个或多个从节点。

3 服务数据对象SDO(Service Data Object)

通过使用索引和子索引(在CAN报文的前几个字节),SDO使客户机能够访问设备(服务器)对象字典中的项(对象)。

SDO通过CAL中多元域的CMS对象来实现,允许传送任何长度的数据(当数据超过4个字节时分拆成几个报文)。

协议是确认服务类型:为每个消息生成一个应答(一个SDO需要两个ID)。SDO请求和应答报文总是包含8个字节(没有意义的数据长度在第一个字节中表示,第一个字节携带协议信息)。SDO通讯有较多的协议规定。

4 预定义报文或者特殊功能对象同步(SYNC)

4.1 在网络范围内同步(尤其在驱动应用中)

在整个网络范围内当前输入值准同时保存,随后传送(如果需要),根据前一个SYNC后接收到的报文更新输出值。

4.1.1 主从模式:SYNC主节点定时发送SYNC对象,SYNC从节点收到后同步执行任务。

4.1.2 在SYNC报文传送后,在给定的时间窗口内传送一个同步PDO。

4.1.3 用CAL中基本变量类型的CMS对象实现。

4.1.4 CANopen建议用一个最高优先级的COB-ID以保证同步信号正常传送。SYNC报文可以不传送数据以使报文尽可能短。

4.2 时间标记对象(Time Stamp)

4.2.1 为应用设备提供公共的时间帧参考。

4.2.2 用CAL中存储事件类型的CMS对象实现。

4.3 紧急事件(Emergency)

4.3.1 设备内部错误触发。

4.3.2 用CAL中存储事件类型的CMS对象实现。

4.4 节点/寿命保护(Node/Life guarding)。

4.4.1 主从通讯模式

4.4.2 NMT主节点监控节点状态:称作节点保护(Node guarding)。

4.4.3 节点也可以(可选择)监控NMT主节点的状态:称作寿命保护(Life guarding)。当NMT从节点接收到NMT主节点发送的第一个Node Guard报文后启动寿命保护。

4.4.4 检测设备的网络接口错误(不是设备自身的错误):通过应急指示报告。

4.4.5 根据NMT节点保护协议实现:NMT主节点发送远程请求到一个特定节点,节点给出应答,应答报文中包含了这个节点的状态。

4.5 Boot-UP

4.5.1 主从通讯模式

4.5.2 NMT从节点通过发送这个报文,向NMT主节点说明该节点已经由初始化状态进入预操作状态。

一个CANopen设备必须支持一定数量的网络管理服务(管理报文,administrative messages),需要至少一个SDO。每个生产或消费过程数据的设备需要至少一个PDO。所有其它的通讯对象是可选的。一个CANopen设备中CAN通讯接口、对象字典和应用程序之间的联系如图2所示

3 CANopen高层协议应用

CANopen协议中设备子协议中包括电梯控制系统应用协议。在CANopen协议电梯控制系统应用协议中详细的规定了电梯控制系统CAN网络的物理参数,节点ID分配,电梯虚拟设备定义,对象目录以及系统错误处理。

通过CANopen协议在电梯控制系统上的应用,可以为任何电梯应用提供标准的、即插即用的电梯控制系统。符合CANopen电梯控制系统应用协议规范的电梯控制系统可以实现最大254层楼数,最多8台电梯并联的电梯应用。

4 总结

基于CAN总线的CANopen网络通讯具有以下特点:

(1)使用对象字典(OD:Object Dictionary)对设备功能进行标准化的描述。

(2)使用ASCII文档:电子数据文档(EDS)和设备配置文件(DCF)对设备及其配置进行标准化的描述。

(3)CANopen网络的数据交换和系统管理基于CAL中CMS服务。

(4)系统boot―up和节点保护(NodeGuarding)的标准基于CAL中NMT服务。

(5)定义了整个系统的同步操作。

(6)定义了节点特定的应急报文。

为与CANopen通讯协议和相应的设备子协议保持一致,以使制造商的产品能够用于任何CANopen网络,以下3种层次的兼容性要求需要满足(对日益增长的设备兼容性的要求):

一致性:

设备连接到CANopen网络后不能影响其他设备的通讯:应用层的一致性。

互用性:

设备能够同网络上的其它节点交换数据:通讯协议的一致性。

互换性:

设备能够代替另外一个同类设备:设备子协议的一致性。

1993年由Bosch领导的欧洲CAN-bus协会开始研究基于CAN-bus通讯系统管理方面的原型,由此发展成为CANopen协议。这是一个基于CAL的子协议用于产品部件的内部网络控制。其后CANopen协议被移交给CiA协会,由CiA协会管理维护与发展。至2000年CANopen协议已成为全欧洲最重要的嵌入式网络标准。

在CiA的努力推广下CAN技术在汽车电子控制系统、电梯控制系统、安全监控系统、医疗仪器、纺织机械、船舶运输等方面均得到了广泛的应用。因此,研究CANopen协议具有广泛的实际意义和应用需求。

上一篇:架设个人Web服务器之应用篇 下一篇:基于MPLS技术的VPN研究