搜档网
当前位置:搜档网 › CANopen简介

CANopen简介

基于CAN总线的CANopen协议讲座(2)

CANopen协议简介 

 

1.引言 

在上期文章中我们了解了CAN总线,本期文章中我们将介绍CANopen协议相关概念及其组网方式。

CANopen协议是在20世纪90年代末,由CIA组织(CAN-in-Automation)在CAL(CAN Application Layer)的基础上发展而来,一经推出便在欧洲得到了广泛的认可与应用。经过对CANopen协议规范文本的多次修改,使得CANopen协议的稳定性、实时性、抗干扰性都得到了进一步的提高。并且CIA在各个行业不断推出设备子协议,使CANopen协议在各个行业得到更快的发展与推广。目前CANopen协议已经在运动控制、车辆工业、电机驱动、工程机械、船舶海运等行业得到广泛的应用。

2.CANopen协议简介 

图1 CANopen设备结构

图1所示为CANopen设备结构,CANopen协议通常分为用户应用层、对象字典、以及通讯三个部分。其中最为核心的是对象字典,这部分将在本文以下章节中介绍。CANopen

通讯是CANopen关键部分,其定义了CANopen协议通信规则以及与CAN控制器驱动之间对应关系,熟悉这部分对全面掌握CANopen协议至关重要,这部分将在以下章节中进行介绍。用户应用层是用户根据实际的需求编写的应用对象,这部分本文将不作介绍。

3.CANopen对象字典 

CANopen对象字典(OD: Object Dictionary)是CANopen协议最为核心的概念。所谓的对象字典就是一个有序的对象组,每个对象采用一个16位的索引值来寻址,这个索引值通常被称为索引,其范围在0x1000到0x9FFF之间。为了允许访问数据结构中的单个元素,同时也定义了一个8位的索引值,这个索引值通常被称为子索引。

每个CANopen设备都有一个对象字典,对象字典包含了描述这个设备和它的网络行为的所有参数,对象字典通常用电子数据文档(EDS:Electronic Data Sheet)来记录这些参数,而不需要把这些参数记录在纸上。对于CANopen网络中的主节点来说,不需要对CANopen 从节点的每个对象字典项都访问。

CANopen对象字典中的项由一系列子协议来描述。子协议为对象字典中的每个对象都

描述了它的功能、名字、索引、子索引、数据类型,以及这个对象是否必需、读写属性等等,这样可保证不同厂商的同类型设备兼容。

CANopen协议的核心描述子协议是DS301,其包括了CANopen协议应用层及通信结构描述,其它的协议子协议都是对DS301协议描述文本的补充与扩展。在不同的应用行业都会起草一份CANopen设备子协议,子协议编号一般是DS4xx。

CANopen协议包含了许多的子协议,其主要划分为以下三类:

①通讯子协议(Communication Profile)

通讯子协议,描述对象字典的主要形式和对象字典中的通讯对象以及参数。这个子协议适用所有的CANopen设备,其索引值范围从0x1000~0x1FFF。

②制造商自定义子协议(Manufacturer-specific Profile)

制造商自定义子协议,对于在设备子协议中未定义的特殊功能,制造商可以在此区域根据需求定义对象字典对象。因此这个区域对于不同的厂商来说,相同的对象字典项其定义不一定相同,其索引值范围为0x2000~0x5FFF。

③设备子协议(Device Profile)

设备子协议,为各种不同类型的设备定义对象字典中的对象。目前已有十几种为不同类型的设备定义的子协议,例如DS401、DS402、DS406等,其索引值范围为0x6000~0x9FFF。

4.CANopen通讯 

在CANopen协议中主要定义了管理报文对象NMT(Network Management)、服务数据对象SDO(Service Data Object)、过程数据对象PDO(Process Data Object)、预定义报文或特殊功能对象等四种对象。

(1) 管理报文NMT 

管理报文负责层管理、网络管理和ID分配服务,例如,初始化、配置和网络管理(其中包括节点保护)。网络管理中,同一个网络中只允许有一个主节点、一个或多个从节点,并遵循主从模式。

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

SDO主要用于主节点对从节点的参数配置。服务确认是SDO的最大的特点,为每个消息都生成一个应答,确保数据传输的准确性。在一个CANopen系统中,通常CANopen从节点作为SDO服务器,CANopen主节点作为客户端。客户端通过索引和子索引,能够访问数据服务器上的对象字典。这样CANopen主节点可以访问从节点的任意对象字典项的参数,并且SDO也可以传输任何长度的数据(当数据长度超过4个字节时就拆分成多个报文来传输)。

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

PDO用来传输实时数据,其传输模型为生产者消费者模型如图2所示。数据长度被限制为1~8字节。PDO通信对象具有如下的特点:

图2 生产者消费者模型

①PDO通讯没有协议规定,PDO数据内容由它的CAN-ID(也可称为COB-ID)定义;

②每个PDO在对象字典中用2个对象描述:

●PDO通讯参数,该通讯参数定义了该设备所使用的COB-ID、传输类型、定时周期;

●PDO映射参数,映射参数包含了一个对象字典中的对象列表,这些对象映射到相应的PDO,其中包括数据的长度(单位,位),对于生产者和消费者都必须要知道这个映射参数,才能够正确的解释PDO内容。

③PDO消息内容是预定义的,如果PDO支持可变PDO映射,那么该PDO是可以通过SDO进行配置;

④PDO可以有多种的传输方式:

●同步传输(通过接收同步对象实现同步),同步传输又可分为非周期和周期传输。非周期传输是由远程帧预触发或者由设备子协议中规定的对象特定事件预触发传送。周期传输则是通过接收同步对象(SYNC)来实现,可以设置1~240个同步对象触发;

●异步传输(由特定事件触发),其触发方式可有两种,第一种是通过发送与PDO的COB-ID相同的远程帧来触发PDO的发送,第二种是由设备子协议中规定的对象特定事件来触发(例如,定时传输,数据变化传输等)。

(4) 预定义报文或特殊功能对象 

预定义报文或特殊功能对象为CANopen设备提供特定的功能,方便CANopen主站对从站管理。在CANopen协议中,已经为特殊的功能预定义了COB-ID,其主要有以下几种特殊报文:

●同步(SYNC),该报文对象主要实现整个网络的同步传输,每个节点都以该同步报文作为PDO触发参数,因此该同步报文的COB-ID具有比较高的优先级以及最短的传输时间;

●时间标记对象(Time Stamp),为各个节点提供公共的时间参考;

●紧急事件对象(Emergency),当设备内部发生错误触发该对象,即发送设备内部错误代码;

●节点/寿命保护(Node/Life Guarding),主节点可通过节点保护方式获取从节点的状态。从节点可通过寿命保护方式获取主节点的状态;

●启动报文对象(Boot-up),从节点初始化完成后向网络中发送该对象,并进入到预操作状态。

5.CANopen预定义连接集 

CANopen预定义连接是为了减少网络的组态工作量,定义了强制性的缺省标识符(CAN-ID)分配表,该分配表是基于11位CAN-ID的标准帧格式。将其划分为4位的功能码和7位的节点号(Node-ID)。如图3所示,在CANopen里也通常把CAN-ID称为COB-ID (通信对象编号)。

图3 预定义连接ID

其中节点号由系统集成商给定,每个CANopen设备都需要分配一个节点号,节点号的范围为1~127(0不允许被使用)。预定义连接集定义了4个接收PDO(Receive-PDO)、4个发送PDO(Transmit-PDO)、1个SDO(占用2个CAN-ID)、1个紧急对象和1个节点错误控制(Node-Error-Control)ID。也支持不需确认的NMT模块控制服务、同步(SYNC)和时间标志(Time Stamp)对象报文。

6.CANopen网络结构 

如图4所示为CANopen典型的网络结构,该网络中有一个主节点,三个从节点以及一

个CANopen网关挂接的其它设备。由于CANopen是基于CAN总线,因此其也属于总线型

网络,在布线和维护等方面非常方便,可最大限度的节约组网成本。

图4 CANopen网络结构

7.结语 

CAN总线作为新型成熟的现场总线已经应用到生活生产的各个领域。其中基于CAN总

线的CANopen协议,以其独特的优势已经成为行业标准,CANopen也必将成为现场总线的

发展趋势。

广州致远电子有限公司提供各种接口的CANopen接口卡、CANopen终端设备(包括数

据采集,电机控制等)、CANopen分析仪、网关及网桥、OPC服务器以及基于CANopen协

议的整套组网方案及应用开发。

地址:广州市天河区车陂路黄洲工业区3栋2楼技术支持:(020)22644381

销售电话:020-******** 28872450 邮箱:CANopen@https://www.sodocs.net/doc/0c18723920.html,

相关主题