微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > CAN总线和基于CAN总线的高层协议

CAN总线和基于CAN总线的高层协议

时间:05-04 来源:互联网 点击:

1 引言
从1982年2月 RobertBosch公司在SAE(汽车工程协会)大会上宣布CAN控制器局部网的那一刻开始, CAN已经走过20多年的历史。1992年,Mercedes(奔驰)在他们的高级客车中使用CAN技术,相继Volvo、Volkswagen、BMW 等几十家公司都在各自的汽车上应用CAN技术。今天,在欧洲几乎每一辆新客车均装有CAN控制器局部网。CAN技术近年在我国发展也比较迅猛,国内的高级客车也都开始应用CAN技术。
CAN的协议在应用过程中,用户层直接访问数据链接层,每个厂商提供的数据调用方式各不相同,而CAN的标准没有规定应用层的相关信息,因此,CAN设备的兼容性和互换性不是很规范。而且,随着应用领域的扩展,CAN协议在实际工业控制应用过程中,即使执行一些简单的分布式网络,除了标准中的物理层和数据链接层外,客户还要求有更多的功能,如发送长于8字节的数据块、响应和确定数据传送、标识符分配、网络节点的状态等。如果这些功能正确执行,通信和应用过程的界线就十分清晰,将明显提高各个厂商之间的设备互换性和兼容性。鉴于这些原因,产生了一些针对不同的目的和要求的基于CAN协议的较高层协议标准。下面就对CAN 协议及其较高层协议DeviceNet和CANopen进行一些比较。

2 三种协议的比较项目
CAN(Controller Area Network)1993年形成了CAN总线国际标准,2003年又进行了修订,是BOSCH公司为改进汽车内部电器线路开发的一种总线。CAN协议的实现简单,成本低,可靠性高,抗干扰能力强。
DeviceNet在美国市场占有率比较高,它是由美国Rockwell公司在CAN的基础上推出的一种低成本的通信链接,它使用抽象的对象模型,其协议和规范都是开放的,用户将设备连接到系统时无需购买硬件、软件和许可权。
CANopen 是由CiA(CAN in Aoutmation)成员编制,主要盛行于欧洲,它在通讯和系统服务以及网络管理方面使用了CAL(CAN Application Layer)子集,设备建模是借助于对象目录而基于设备功能性的描述,标准设备以设备子协议的形式规定。CANopen标准由CiA同行机构集团支持,设备子协议由CiA中专门的同行机构制定。
本文就以下项目对三种协议进行比较。
(1) 信息标识符的分配;
(2) 数据交换的方法;
(3) 建立信息连接的方法;
(4) 网络管理;
(5) 设备建模和子协议。
2.1 信息标识符的分配
由于CAN采用非破坏性的仲裁方法,因此,标识符决定了块信息传送的优先权和信息等待时间,信息标识符的分配的方法被认为是 CAN系统的主要结构元素,它同时也影响了信息滤波和标识符的使用效率问题。
由于标识符分配的方法不同,不同的协议在解决方案已把不同的原则考虑进去。CAN基本协议和DeviceNet的标识符采用预定义的方式,不同的是在 CAN 协议中节点标识符在设计时被确定后就不能动态更改,而DeviceNet每个节点预定义多个标识符,不同的功能标识符优先级不同。在CANopen协议中,除了预定义了一些用于管理的标识符外,其它标识符统一组成一个通用的标识符库,用户可根据设备的需要进行手动或者自动分配所有的设备标识符。这样的分配方案用户就可以完全自由决定标识符的使用及系统实时通讯的过程。



表1 DeviceNet关于CAN标识符的使用分配

DeviceNet 的标识符分配方案是面向节点的信息标识符分配,对于DeviceNet系统,最多数量为64个的节点,其每一个节点拥有一组出自于3个信息组的标识符,如表1所示。信息组1为每个设备的16个信息提供一高优先信息组,报文ID较小的总是优先发送;信息组2的信息优先权主要取决于节点的号码,信息的MAC- ID可以是目标或源地址该段共计分配512个标识符。信息组3与信息组1结构相似,但提供给每个设备7个标识符优先级比较低,这组的标识符优先权被平均分配到网络上的所有设备。信息组4只有48个标识符,不包含任何设备地址,该组信息主要用于网络管理。由于采用了基本CAN类型的控制器,信息滤波的潜能受到限制,信息组2以这种受到限制的潜能去支持多个设备,因此选择了根据节点号码的滤波功能。即DeviceNet规定了一个预定义主从连接组,以便于观察主-从系统配置的通讯。下面的信道功能是为了向基于预定义连接组的主从设备间的I/O与显式信息的交换提供支持:
l 显式信息信道。
l 主机查询改变信道的状态循环。
l 从机I/O改变信道的状态循环。
显式信息主要服务于设备的配置。主机查询改变状态信道使得主机可以向设备请求I/O数据并把输出数据发送到从机。借助于改变状态循环或从机I/O(通过改变状态循环触发或通过应用触发),从机将输入数据发送到主机。通过位选通指令,主机可以从最多为64个的从机中请求接收一个输入数据。由于所有的这些信息都是被响应的,所以对这些不同的功能性分配了8个信息标识符。如果请求获取数据的位选通没有使用一高效的标识符,则通过目的地址场在从机上对信息进行滤波。
CANopen 系统的标识符分配使用在CAL子集,其中CMS(CAN-based Message Specification)将信息标识符定义了8个优先级,每个级别拥有220个ID,范围从1~1760,剩余的标志(0,1761~2031)保留给NMT(Network MessagemenT)。在CANopen的系统中,可能访问的节点为128个,所以保留128个信息标识符作为节点保护。
在最小系统配置中,CANopen规定了一个面向设备的标识符分配方案,这种方法可以供127台设备默认连接到一台主设备上(如图1所示)。通过4位的功能代码可以区分某些情况的16种基本功能,这些情况分别是:2个数据过程信道的接收和发送、一个点对点信道、节点状态控制、节点保护、紧急情况通报以及接收同步信息和有时间标记的信息。由于信息的优先级由它的功能决定,所以功能代码位于信息标识符的最高几位。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top