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

CAN总线和基于CAN总线的高层协议,第1张

 

  1 引言

  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协议中,除了预定义了一些用于管理的标识符外,其它标识符统一组成一个通用的标识符库,用户可根据设备的需要进行手动或者自动分配所有的设备标识符。这样的分配方案用户就可以完全自由决定标识符的使用及系统实时通讯的过程。

  

CAN总线和基于CAN总线的高层协议,第2张

 

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

  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个数据过程信道的接收和发送、一个点对点信道、节点状态控制、节点保护、紧急情况通报以及接收同步信息和有时间标记的信息。由于信息的优先级由它的功能决定,所以功能代码位于信息标识符的最高几位。

  

CAN总线和基于CAN总线的高层协议,第3张

 

  图2 CANopen最小系统标识符分配方案

  2.2 交换过程数据

  在一分布式自动化系统的设备之间发送过程数据是CAN 通讯系统的目的,它应以最高效率的方式完成。因此,对于应用规定的数据(过程数据、I/O数据)其传送应该根据产生者使用者的模型来执行,其意思就是说, 通过相关的信息ID推断所发送的数据。信息的产生者和使用者在这种情况下被假设拥有使用数据的知识或明白发送数据的含义。

  在CAN基本协议中,各个节点采用规定的模式交换数据。CAN的数据流由数据帧、远程帧、错误帧和超载帧4种不同的帧类型所表示和控制。数据帧携带数据从发送器至接收器。远程帧由总线单元发出,请求发送具有同一识别符的数据帧。任何单元检测到一总线错误就发出错误帧。超载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。

  但是,DeviceNet和CANopen在过程数据交换采用不同的解决方案。DeviceNet过程数据通过“I/O信息”传送,CANopen过程数据通过“过程数据对象”(PDOs Process Data Object)传送。

  DeviceNet 支持下列的触发模式:循环、改变状态和应用对象触发。通过循环触发的模式当指定信息的传送触发定时器终止时,信息的发送就会被启动。通过状态改变的模式当检测到应用对象状态改变时,信息发送就会开始,当一特定间隔时间结束而没有发送信息,信息也会被发送。通过应用对象触发模式,应用对象可以决定何时触发信息的发送,当一特定间隔时间结束而没有发送信息时信息也会被发送。

  CANopen的触发模式划分为事件、应用请求或预定义同步信息接收后的触发模式。事件触发可以在子协议(Profile)或应用指定的事件(异步 PDO)中产生。PDO的发送也可以通过接收一远程请求信息而被触发。“同步PDO” 是通过接收同步信息的一指定号码而被循环触发的。同步信息也可以被用作为整个网络中数据获得的同步以及输出数据滤波的同步。传输实时数据时,数据从一个生产者传到一个或多个消费者,传送限制在1到8个字节,即一个PDO可以传输最多64个数字I/O值或者4个16位的AD值。

  数据交换过程中,网络设备会产生或者消耗一个以上的映射应用对象。DeviceNet和CANopen为灵活地将应用数据映射到通讯对象而提供了非常完善的方法。

  DeviceNet 中,应用数据的分组是由集合对象的实例(instance)规定的。这个“集合”对象的实例定义了发送的应用对象数据格式。一个设备可能包含多于一个 I/O集合而且其相应集合的选择也是一个可配置的设备选项。

  CANopen 规定了有关应用对象映射,应用对象通过一个叫“PDO映射记录”的数据结构映射到PDO中。这个结构以对象标识符列表(对象目录索引子索引)和数据长度的形式规定了映射的应用对象数据。由于PDO映射可通过SDO(Service Data Object)访问,所以PDO映射可通过配置工具配置。

  2.3 建立过程数据信息连接

  在CAN 网络里,信息生产者发送信息以及信息消耗者接收信息,其各自标识符的分配建立了通讯路径。通过已经分配的信息标识符的预定义信息可以建立信息的连接,或通过信息的各种标识符分配来达到建立信息的连接目的。非预定义标识符分配的主要优点是:建立任何类型的通讯结构的可能性,根据应用需求的最大数量信息标示符的有效性以及面向控制而设计的信息标示符分配有效性。

  在一预定义信息的系统中,信息的功能和信息的标示符已经被定义DeviceNet和 CANopen使用1:n系统结构的预定义连接组方法。根据预定义组,一个已经分配了从设备预定义查询连接的DeviceNet主机,已经知道关于发送查询请求以及期待查询响应信息的信息ID,因为它们来源于从机的MAC-ID。同样的,在CANopen中除了其他的预定义信息之外, 默认的预定义连接组提供了2个预定义的接收和发送PDO, 默认PDO的用法和含义是由设备的类型决定。

  DeviceNet标识符分配方法是通过设备拥有的信息标示符库决定的,这个标示符出自于信息发送设备的标示符库。DeviceNet最大为64个设备发布有效的标识符。在连接过程中,一个产生模块的信息从它的信息ID库中,分配一个空闲的信息ID,并将此空闲的信息ID与它的源MAC ID(Source MAC ID)结合在一起,产生一个所谓的“连接ID”。而CANopen的变量标识符分配方案基于中央信息标识符库,系统管理员通过SDO(Service Data Object)信道设置设备对象目录中相应的PDO标识符实现信息连接的建立。

  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2445796.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-03
下一篇 2022-08-03

发表评论

登录后才能评论

评论列表(0条)

保存