CANopen现场总线通讯协议的分析论文_吕志波

摘要:CANopen使用基于对象的方法来定义标准设备,每个设备都表现为一组对象的集合,能够被网络所访问。对象字典是通讯程序和上层应用程序之间的接口。CANopen 的核心概念是设备对象字典(Object Dictionary,OD),它是一个有序的对象组,每个对象采用一个16 位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8 位的子索引。CANopen 网络中每个节点都有一个对象字典。对象字典包含了描述这个设备和它的网络行为的所有参数。一个节点的对象字典是在电子数据文件(Electronic Data Sheet,EDS)中描述。

关键词:CANopen;对象词典;索引;子索引

前言:CAN(Controller Area Network)现场总线仅仅定义了物理层、数据链路层(见ISO11898 标准),没有规定应用层;实际设计中,物理层、数据链路层完全由硬件实现。所以CAN 现场总线本身并不完整,需要一个高层协议来定义CAN 信息中的11/29 位标识符、8 字节数据的使用。CANopen 协议是一种基于CAN 的高层协议,它是由 CiA(CAN-in-Automation)定义并维护的协议之一,它是在CAL(CAN Application Layer)协议基础上开发的,使用了CAL 通信和服务协议子集。

1 CANopen 通讯对象

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

PDO提供设备应用对象的直接访问通道,用来传输实时数据,具有较高的优先权。PDO CAN信息数据列中每个字节都用作数据传输,信息利用率高。

PDO通过“生产者/消费者”模式来描述,数据从一个生产者传到一个或者多个消费者,数据传送限制在1~8个字节。生产者传输数据后,不需要消费者确认,网络上的每个节点都会检测发送节点发出的数据信息,然后节点会决定接收到的信息是否需要处理。

每个PDO有两种PDO 服务:TxPDO和RxPDO。生产者发出的PDO 称为该设备的发送PDO(TxPDO),消费者设备接收的PDO称为该设备的接收PDO(RxPDO)。

每个PDO在对象字典中用2 个对象描述:PDO通讯参数和PDO映像参数

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

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

RxPDO 和TxPDO 信息格式如下:

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

SDO是用来建立两个CANopen 设备之间的客户/服务器关系的,客户设备可以对服务器设备的对象字典进行读/写访问操作。SDO的访问模式为“客户端/服务器”模式,被访问的节点为SDO服务器。每个CANopen 设备至少有一个服务数据对象,用来提供该设备对象字典的访问通道。SDO可以对对象字典内的所有对象进行读/写访问操作。

SDO信息中包含索引和子索引信息,如此方便对象在对象字典中定位,而且对象字典中的复合数据结构易于通过SDO 访问。SDO 的触发方式为功能响应型,即SDO客户发出读/写请求后,SDO服务器须给予回应;客户端和服务器均可以主动终止SDO的传输;请求信息和响应消息通过不同的COB-ID进行区分。

SDO 可以传送任意长度的数据。如果传送的数据超过4个字节,则必须实行分段传送。最后一段数据报含一个结束标志。

SDO 请求信息和响应消息的结构如下:

请求信息格式:

1.3 NMT(Network Management Object:网络管理对象)

CANopen 的网络管理遵循“主/从”模式。一个CANopen 网络里只能存在一个NMT 主站,其它节点均被当成从站。NMT 可实现3 种服务:Module control services(节点状态控制服务)、Error Control services(错误控制服务)和Boot-up services(启动引导服务)。

1.3.1 节点状态控制是指CANopen 网络中主站节点通过发送命令控制从站的状态,从站收到主站的命令后执行,不需要回复。所有的CANopen 节点都有一个内部的NMT 状态,从站节点共有4 种状态:初始化状态、预行状态、运行状态、停止状态。

节点状态控制信息格式如下表所示:

1.3.2 Error Control services(错误控制服务)

错误控制服务用于检测CANopen 网络中是否有节点断线。错误控制服务分为两种:heartbeat 和nodeguarding,台达AS系列PLC只支持heartbeat。如从站启动heartbeat 服务后,主站才可以检测从站是否断线。Heartbeat 生产者按照设定的Heartbeat 产生时间定时发送Heartbeat信息,一个或者多个Heartbeat 消费者检测Heartbeat 生产者发送的信息,当消费者在设定的超时时间内没有收到生产者发送的信息时,产生Heartbeat 事件表明CANopen 通讯异常。

1.3.3 Boot-up services(启动引导服务)

从站在初始化完成进入预运行状态后,会发送一笔Boot-up 信息,表示初始化完成。

1.4 其它预定义CANopen通讯对象

1.4.1 同步对象(Sync Object)

同步对象由网络中主站节点以广播的形式周期发送到CAN 网络的信息。这个对象用来实现基本的网络时钟信号,每个设备可以根据自己的配置,决定是否使用该事件和其它网络设备进行同步通讯。如在控制驱动装置时,各个装置收到主站发送的动作命令后并不立即动作,而是等收到同步信息后一起动作,如此可以实现多个装置同步动作。

SYNC 信息格式如下图所示:

1.4.2 紧急事件对象(Emergency Object)

紧急事件对象是由CANopen 设备用来标识内部紧急错误的,当设备出现紧急错误时,设备发出紧急事件信息(信息中包含紧急错误码),设备进入错误状态。当错误消除后,设备发出紧急事件信息报告错误消除,紧急错误代码为0,设备进入正常状态。

Emergency 信息格式如下图所示:

备注:错误寄存器内的值映像到对象字典(Object Dictionary)中的索引地址为1001(hex)。若该值等于0,则表示无错误发生;若该值等于1,则表示发生了一般性错误;若该值等于H’80,则表示发生了设备内部错误。

2 预定义连接设定

为了减少简单网络的组态工作量,CANopen 定义了一个强制性的默认标识符分配图表。预定义连接设定包含广播对象和对等对象,11 位的标识符结构如下:

结语:

CANopen标准最初设计用于面向运动的机器控制系统,现在广泛应用于自动化领域。例如,它是一个流行的协议,可以在机器人系统中、工厂传送带旁及整个工业机械中使用。随着自动化程度越来越高的智能工厂的发展趋势,CANopen协议将在未来发挥更大的作用。

参考文献:

[1]任玮蒙,陶维青.基于CAN总线的高层协议CANopen[J].自动化技术与应用,2007,26(4):128-130.

[2]广州周立功单片机发展有限公司.CANopen协议介绍[Z].2005.

[3]王俊波,胥布工.CANopen协议分析与实现[J].微计算机信息,2006,22(6-2):104-106.

[4]何光宇,胡正.针对工业控制的CANopen系统[J].微计算机信息.2003.12:5-6.

论文作者:吕志波

论文发表刊物:《科学与技术》2020年1期

论文发表时间:2020/4/29

标签:;  ;  ;  ;  ;  ;  ;  ;  

CANopen现场总线通讯协议的分析论文_吕志波
下载Doc文档

猜你喜欢