-
CAN
协议及其高层协议
DeviceNet
和
CANopen
的比较
CAN
协议及其高层协议
DeviceNet
和
CANopen
的比较
1
引言
从
p>
1982
年
2
月<
/p>
RobertBosch
公司在
SAE(
汽车工程协会
)
大会上宣布
CAN
控制器局
部网的那一刻开始,
CAN
已经走过
20
多年
的历史。
1992
年,
Mercede
s(
奔驰
)
在他们的高级客车
中使用
CAN
技术,
相
继
Volvo
、
Volkswagen
、
BMW
等几十家公司都在各自的汽
车上应用
CAN
技术。
今天,
在欧洲几乎每一辆新客车均装有
CAN
控制器局
部网。
CAN
技术近年在我国发展也比较迅猛,
国内的高级客车也都开始应用
CAN
技术。
CAN
的协议在应用过程中,
< br>用户层直接访问数据链接层,
每个厂商提供的数据调用方式各不相同,
而
CAN
的标准没有规定应用层的相关信息,
p>
因此,
CAN
设备的兼容性和互换性不是很
规范。
而且,
随着应用领域的扩展,
C
AN
协议在实际工业控制应用过程中,即使执行一些简单的分布式网络,
除了标准中的物理层和数据链接层外,客户还要求有更多的功能,如发送长于
8
字节的数据块、
响应和确定数据传送、标识符分配、网络节点的
状态等。
如果这些功能正确执行,通信和应用过
程的界线就十分
清晰,
将明显提高各个厂商之间的设备互换性和兼容性。
鉴于这
些原因,
产生了
一些针对不同的目的和要求的基于
CAN
协议的较高层协议标准。
下面就对
CAN
协议及其较高层协
议
DeviceNet
和
CANopen
进行一些比较。
2
三种协议的比较项目
?
CAN(Controller
Area Network)1993
年形成了
CAN
总线国际标准,
2003
年又进行了修
订,是
BOSCH
公司为改进汽车内部电器线路
开发的一种总线。
CAN
协议的实现简单,成
< br>本低,可靠性高,抗干扰能力强。
?
DeviceNet
在美国市场占有率比较高,
它是由美国
Rockwe
ll
公司在
CAN
的基础上推出的
p>
一种低成本的通信链接,它使用抽象的对象模型,其协议和规范都是开放的,用户将设
备连接到系统时无需购买硬件、软件和许可权。
?
CANopen
是由
CiA(CAN
in
Aoutmation)
成员编制,主要盛行于欧洲,它在通讯和系统服
务以及网络管理方面使用了
CAL(CAN
Application
Layer)
子集,设备建模是借助于对象
目录而基于设备功能性的描述,
标准设备以设备子协议的形式规定。
CANopen
标准由
p>
CiA
同行机构集团支持,设备子协议由
C
iA
中专门的同行机构制定。
本文就以下项目对三种协议进行比较。
1.
信息标识符的分配
;
2.
数据交换的方法
;
3.
建立信息连接的方法
;
4.
网络管理
;
5.
设备建模和子协议。
2.1
信息标识符的分配
由于<
/p>
CAN
采用非破坏性的仲裁方法,因此,标识符决定了块信息传送
的优先权和
信息等待时间,
信息标识符的分配的方法被认为是<
/p>
CAN
系统的主要结构元素,
它同时也影
响了信
息滤波和标识符的使用效率问题。
由于标
识符分配的方法不同,不同的协议在解决方案已把不同的原则考虑进去。
CAN
基本协议和
DeviceNet
的标识符采用预
定义的方式,
不同的是在
CAN
协议
中节点标识符在设
计时被确定后就不能动态更改,
而
DeviceNet
每个节点预定义多个标识符,
不同的功能标识符优
先级不同。
在
CA
Nopen
协议中,
除了预定义了一些用于管理的标识符外,<
/p>
其它标识符统一组成一
个通用的标识符库,
用户可根据设备的需要进行手动或者自动分配所有的设备标识符。
这样的分
配方案用户就可以完全自由决定标识符的使用及系统实时通讯的过程。
表
1
De
viceNet
关于
CAN
标识符的使
用分配
DeviceNet
的标识符分配方案是面向节点的信息标识符分配,
对于
DeviceNet
系统,
最多数量为
64
个的节点,其每一个节点拥有一组出自于
p>
3
个信息组的标识符,如表
1
所示。信
息组
1
为每个设备
的
16
个信息提供一高优先信息组,报文
ID
较小的总是优先发送
;
信息组<
/p>
2
的
信息优先权主要取决于节点的号码,
信息的
MAC-
ID
可以是目标或源地址该段共计分配
512
个标
识符。
信息组
3
与信息
组
1
结构相似,
但提供给每个设备
p>
7
个标识符优先级比较低,
这组的标识
p>
符优先权被平均分配到网络上的所有设备。信息组
4
只有
48
个标识符,不包含任何设备地址,
该组信息主要用于网络管理。
由于采用了基本
CA
N
类型的控制器,
信息滤波的潜能受到限制,
< br>信
息组
2
以这种受到限制的潜能
去支持多个设备,因此选择了根据节点号码的滤波功能。即
DeviceNet
规定了一个预定义主从连接组,以便于观察主
-
从系统配置的通讯。下面的信道功能
是为了向基于预定义连接组的主从设备间的
I/O
与显式信息的交换提供支持
:
l
显式信息信道。
l
主机查询改变信道的状态循环。
l
从机
I/O
改变信道的状态循环。
显式信
息主要服务于设备的配置。主机查询改变状态信道使得主机可以向设备
请求
I/O
数据并把输出数据发送到从机。借助于改变状态循环或从机
I/O(
通过改变状态循环触
发或通过应用触发<
/p>
)
,
从机将输入数据发送到主机。
通过位选通指令,
主机可以从最多为
64
p>
个的
从机中请求接收一个输入数据。
由于所
有的这些信息都是被响应的,
所以对这些不同的功能性分
配了<
/p>
8
个信息标识符。
如果请求获取数据的位
选通没有使用一高效的标识符,
则通过目的地址场
在从机上对信
息进行滤波。
CANopen
系统的标识符分
配使用在
CAL
子集,其中
CMS(C
AN-based Message
Specification)
< br>将信息标识符定义了
8
个优先级,
每个级别拥有
220
个
ID
,
范围从
1
~
1760
,
剩
余的标志
(0
,
1761
~
2031)
保留给
NMT(Net
work
MessagemenT)
。在
CANopen
的系统中,可能访问
的节点为
128
个,所以保留
128
个信息标识符作为节点保护。
在最小系统配置中,
CANopen
规定了一个面向设备的标识符分配方案,这种方法
可以供
127
台设备默认连接到一台主设备上
(
p>
如图
1
所示
)
p>
。
通过
4
位的功能
代码可以区分某些情
况的
16
种基本功
能,这些情况分别是
:2
个数据过程信道的接收和发送、一个点
对点信道、节点
状态控制、
节点保护、
紧急情况通报以及接收同步信息和有时间标记的信息。
由于信息的优先级
由它的功能决定,所以功能代码位于信息标识符的最高几位。
图
1
CANopen
最小系统标识符分配方案
2.2
交换过程数据
在一分布式自动化系统的设备之间发送过程数据是
CAN
p>
通讯系统的目的,
它应以
最高效率的方式完
成。因此,对于应用规定的数据
(
过程数据、
< br>I/O
数据
)
其传送应该根据产
生者
使用者的模型来执行,其意思就是说,通过相关的信息
ID
推断所发送的数据。信息的产生者和
使用者在这种情况下被假设
拥有使用数据的知识或明白发送数据的含义。
在
CAN
基本协议中,各个节点采用规定的模式交换数据。
CAN
的数据流由数据帧、远程帧、错误
帧和超载帧
4
种不同的帧类型所表示和控制。
数据帧携带
数据从发送器至接收器。
远程帧由总线
单元发出,
请求发送具有同一识别符的数据帧。
任何单元检测到一总线错误就发出错误帧
。
超载
帧用以在先行的和后续的数据帧
(
或远程帧
)
之间提供一附加的延时。
但是,
DeviceNet
和
CANopen
在过程数据交换采用不同的解
决方案。
DeviceNet
过程数据通过“I/O
信息”传送,
CANopen
过程数据通过“过程
数据对象”(PDOs Process Data Object)传送。