工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->综合电路图->综合电路图->基于CAN的高层协议CANopen与DeviceNET的比较

基于CAN的高层协议CANopen与DeviceNET的比较

作者:dolphin时间:2011-05-11浏览次数:1950

CAN总线以其成本低廉、通信实时性好、纠错能力强等优点而被汽车工业、电力系统变电站自动化、智能大厦等系统广泛采用。作为一种通信协议,CAN本身并未指出流量控制、节点地址分配、通信建立、设备连接标准等具体的细则。后来在CAN总线协议的基础上,产生了DeviceNET和CANopen协议标准。

1CANopen简介
1.1 CANopen由来
1993年,Bosch公司领导的CAN-BUS协会开始研究CAN-BUS通讯、系统、管理方面的细则,以后逐步完善,由此发展成为CANopen协议,它是CAL(CAN Application Layer)协议基础上开发的,使用了CAL通信和服务协议子集,它在保证网络节点互用性的同时允许节点的功能随意
扩展,定义了基于CAN的分布式工业自动化系统的应用标准以及CAN应用层通信标准。CANopen协议是一个开放性的协议,对于开发者来说它是完全免费的。CANopen在发布后不久就获得了广泛的承认,后来,有CiA(CAN in Automation)协会管理、维护、和发展。到2001年,CANopen协议已经成为全欧洲的嵌入式网络标准。

1.2 CANopen协议剖析
1.2.1 网络模型
CANopen协议的物理层和数据链路层延用了CAL(CAN Application Layer)协议标准,一个网段上最多支持127个节点,采用CAN 收发器芯片,支持CAN2.0和CAN2.0B帧格式收发。并在CiA DS303-1指出了电缆和接点标准,在CiA DS-304中指出了接点保护的规范,即总线要有安全开关、光电隔离、紧急开关、电源保护等。CANopen把CAN的11位标识符分成2部分,及4位功能码和7个操作数据类型,如图1所示。具体分配如表1所示。

图1 canopen COB-ID

表1 CANopen标识符的分配表
功能段地址段
0000NMT 系统管理
0001SYNC同步标记
0011PD0(tx)过程数据对象发送包
0100PD0(rx)过程数据对象接收包
1011SDO(tx)服务数据的发送包
1100SD0(rx)服务数据的接收包

如果是29位的标识符机制,可以把现有的11标识符的定义映射到29位的COB-ID的高11位,使表中的C0B-ID的范围变的更大。
1.2.2 报文格式
CANopen通信模型定义4种报文:

  • 管理报文 主要网络管理和ID分配服务,如初始化,配置和网络管理(包括:节点保护)。
  • 服务数据对象(Service Data Object,SDO) 通过使用索引和子索引(在CAN报文的前几个字节),SDO使客户机能够访问设备(服务器)对象字典中的项(对象)。SDO通过CAL中多元域的CMS对象实现,允许传送任何长度的数据(当数据超过4个字节时分拆成几个报文)。
  • 过程数据对象(Process Data Object,PDO) 用来传输实时数据,数据从一个生产者传到一个或多个消费者。数据传送限制在1~8个字节。
  • 预定义和特殊功能对象 包括同步(SYNC)、时间标记对象(Time Stamp)、紧急事件(Emergency)、节点/寿命保护(Node/Life guarding)、Boot-UP过程对象。

其中PDO是实时性要求最高的也是最重要的的数据,它有同步和异步触发2种模式。
1.2.3 通信机理
CANopen的核心概念是设备对象字典(Object Dictionary,OD),它是一个有序的对象组;每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引,CANopen网络中每个节点都有一个对象字典。对象字典包含了描述这个设备和它的网络行为的所有参数。一个节点的对象字典是在电子数据文档(Electronic Data Sheet,EDS)中描述或者记录在纸上。CANopen由一系列称为子协议构成。如通信子协议DS-301,还有各种设备子协议(device profile),如DS-404(传感器和调节器),DS-405(可编程控制器)等。通信机理的核心如图2所示。

图2 CANopen设备的通信过程
1.2.4 应用中要注意的一些问题
(1)在开发过程中不必要将CANopen协议中的各项内容都一一编写,只要根据应用的具体要求按照CANopen协议编写即可。对象字典都要通过软件实现,这是实现CANopen的关键。
(2)组建对象字典时并没有必要把协议规定的所有项都包括进去,另外还要留出足够的空间,使得用户可以根据以后的具体需要向对象字典中添加功能项。
(3)一般应用中,如果CANopen网络不复杂,使用预定义的标识符分配就能满足要求。对于特别大的系统,如果要制定标识符分配,这需要大量的软件编程。
(4)对于CANopen网络中必须实现的管理功能,一般由一个节点来实现,但也可以由几个节点分别承担。尤其对于SYNC报文传输和标识符的分配,分开来实现会更好。

2 DeviceNET简介
2.1 DeviceNET由来及OSI/SIO参考模型
DeviceNET协议最初有美国的Rockwell自动化公司开发应用。目前有ODVA(Open DeviceNET Vendor Association)组织管理和推广。它是一个开放式的协议,只要付出象征性的资金获得ODVA的一个许可号码,就可以得到协议的详细内容。DeviceNET属于CIP(Control and Information Protoco1)网络的范畴,CIP网络有下列特点:
(1)报文的传输类型有I/O、互索、配置、程序上下载等;
(2)它是一个面向连接的协议,必须要先建立,才能通信;
(3)采用生产者/消费者模型;



评论

技术专区