微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CAN总线技术特点及DeviceNet

CAN总线技术特点及DeviceNet

时间:11-29 来源:互联网 点击:
 1 前 言
  CAN总线简称为控制器局部网 (CAN) ,最早由德国BOSCH公司提出 ,主要应用于汽车内部强干扰环境下的电器之间的数据可靠通信。但由于其优异的性能 ,现已被许多领域广泛采用和推广。 1 991年 9月PhilipsSemiconductors制订并发布了CAN技术规范 (Version 2 . 0 A和B) ,1 993年 1 1月ISO正式颁布了道路交通运载工具―――数字信息交换 高速通信控制器局部网 (CAN)国家标准 (ISO 1 1 898) ,为控制器局部网标准化、规范化推广铺平道路。现场总线技术发展很快 ,底层采用CAN总线协议的DeviceNet现场总线技术是其中比较重要的一种 ,因为它是一个低端网络系统 ,所起的作用是在简单的工业设备 (如传感器、操动器等 )与高端设备 (控制器 )之间提供连接 ,所以在低压电器等领域取得了飞速的发展。

2 CAN总线
  CAN总线是一种串行数据通信协议。它是一种多主总线 ,通信介质可采用双绞线、同轴电缆或光纤。通信接口中集成了CAN协议的物理层和数据链路层功能 ,可完成对通信数据的组帧处理。CAN总线的最高通信速率可达 1Mb/s ,在DeviceNet总线中只用了 1 2 5Kb/s、2 50Kb/s、50 0Kb/s三档。下面就CAN总线的主要技术特点简要加以说明。图 1描述了在DeviceNet总线技术中使用CAN总线协议作为媒体访问控制 (MAC)和物理层信号 (PLS)的协议规范。请注意 ,DeviceNet总线只使用了CAN 2 .0A中的有关定义 ,并不支持CAN 2 . 0B中的扩展报文格式。下面结合DeviceNet总线具体介绍CAN 2 .0A中的一些重要技术特点。



3 CAN链路层寻址
  CAN是一种基于广播方式的协议。各种在网上传输的数据帧都被分配一个标识符 ,每个节点根据这些标识符 ,确定是否接收这些帧。这个标识符是在CAN帧的标识区中指定的。同以往的主 从结构相区别的是 :CAN支持多主形式。这意味着网络上的任意一个节点在合适的时机 ,都可以主动向网上发送信息 ,这样一来大大提高了网络对意外事件的反应能力。该多主形式的实现 ,主要依赖于CAN先进的无损逐位仲裁机制。

4 CAN帧类型和帧结构
  CAN定义下列帧的类型 :①数据帧。将数据从发送器发送到接收器。②远程帧。请求传送指定标识符的数据帧 (DeviceNet并不使用CAN的远程帧 ) ;③错误帧。标明一个节点检测到了总线/网络故障 ;④超载帧。在帧的发送之间提供一个延时来控制数据的流动。一个数据帧由七个不同区域组成 ,如图 2所示。


  其中 :仲裁区主要用于标识信息内容以及决定信息优先级的高低。控制区包含数据区的长度信息 ,数据区的长度为 0~ 8byte。由于CAN的数据包传送采用CRC循环冗余码检验 ,所以数据通信误码率极低。CRC区中包含的就是用于CRC检验的序列 ,由发送器初始化产生。当接收器计算的CRC值不符合发送器发送的CRC值 ,则检测到CRC错误 ,要求发送器重新发送。所有接收到匹配CRC序列的节点 ,通过ACK区给发送节点返回一个应答。

5 CAN媒体访问控制
  CAN节点的发送可以被网络上其他所有节点监听并应答。只要总线处于发送空闲状态 ,任一节点都可以开始发送。如果一个节点正在发送 ,其他一个节点必须要等这一节点发送完成后才能开始发送信号。如果两个或多个节点在同一时间开始发送 ,通过使用仲裁区的无损逐位仲裁算法来解决。仲裁区包含在所有CAN数据帧中。仲裁区包括 1 1位CAN标识符区和一个RTR位。RTR位表示这个帧是一个实际的数据帧还是一个远程帧 ,由于DeviceNet不使用CAN提供的远程帧 ,所以RTR位始终是显性的。1 1位标识符场从最高位到最低位顺序发送。总线上的一位可以是显性的 (值 0 ) ,也可以是隐性的 (值 1 )。一个显性位和一个隐性位同时发送的结果是呈现显性位。在仲裁区传送期间 ,每一个发送器都监视总线上的当前电平 ,并与它已经发送的位电平进行比较。如果值相等 ,那么这个节点可以继续发送 ;如果发送了一个隐性位 (值1 ) ,同时在总线上监视到一个显性位 (值 0 ) ,那么此发送节点将失去仲裁权 ,同时必须停止发送数据。失去仲裁权的节点可以在当前发送完成的时候再次尝试发送数据。具有最低数字值的标识符获得仲裁优先权。


  6 CAN的出错管理CAN提供了检测下列错误类型的机制 :①位错误。当发送器将自己发送的电平与总线上的电平相比较 ,发现两者不相等时 ,出现错误 ;②应答错误。当发送器确定信息没有得到应答 ,则检测到应答错误 ;③填充错误。当节点检测到 6个相同电平值的连续位时 ,则检测到填充错误 ;④CRC错误。当接收器计算的CRC(循环冗余检查 )值不符合发送器发送的CRC值 ,则检测到CRC错误 ;⑤格式错误。如果节点在一个必须发送预定值的区内检测到一个非法位 ,则检测到格式错误。为了尽量减小网络上故障节点的负面影响 ,CAN定义了一个故障界定状态机制。一个节点可能处于下列三种错误状态之一 :①错误 激活。当一个错误 激活节点检测到上述某一个错误时 ,它将发送一个活动错误帧 ,导致所有的其他节点都检测到一个填充错误 ,且丢弃当前这个帧 ;②错误 认可。当一个错误 认可节点检测到上述的某一个错误时 ,它将发出一个认可错误帧。这个帧可能不会引起当前接收帧的丢弃 ;③离线。处于离线状态下的节点不允许对总线有任何影响 ,它在逻辑上是与网络断开的。在CAN的内部有一个发送和接收错误计数器。当检测到一个发送或接收错误时 ,错误计数器的值将按照预先分配的不同计数值进行累加。反之 ,有效的接收及发送将使这些计数器值减小 ,直到变成最小值 0。通过读取错误计数器的值 ,CAN就可以很方便地判定节点的出错级别。图3以图表的方式来描述不同错误状态之间的转换关系。



7 CAN芯片与DeviceNet
  执行CAN协议的CAN芯片可由多家制造商提供 ,比较流行的是Philips和Motorola两家公司的产品。CAN芯片按结构形式可分为嵌入式和外挂式两种。嵌入式指包含CAN控制器及微处理器 (CPU )的芯片 ,外挂式只包含CAN控制器的芯片。Philips半导体公司生产的CAN芯片两种结构都有。嵌入式芯片的早期代表型号为P8XC592 (8位CPU) ,现在已经逐渐被新型号的XA C3 (1 6位CPU)所取代。外挂式芯片的早期代表型号为PCX82C2 0 0 (支持CAN 2 .0A) ,现在已经逐渐被新型号的XJA1 0 0 0 (支持CAN 2 . 0B)所取代。Motorola半导体公司生产的CAN芯片只有嵌入式芯片。早期代表型号为MC6 8HC0 5X4/X1 6系列 (8位CPU) ,现在已经逐渐被新型号的MC6 8HC0 8AZ6 0系列 (8位增强型CPU)所取代。具体选用何种CAN芯片 ,用户可根据自身的实际情况而定。不同公司的CAN芯片产品 ,虽然扩展功能各有不同 ,但由于DeviceNet总线只要求支持CAN 2 .0A ,所以在DeviceNet总线的应用方面是大同小异的。这些芯片只对 1 1位标识区的高 8位 (不是整个 1 1位 )进行屏蔽 ,并只有一个掩膜 /匹配过滤器 ,主要的数据处理必须放在软件中来实施。

8 结 语
  CAN总线是一种面向一般工业设备的高速通信总线。它具有数据精简 (最长为 8byte) ,实时性高、可靠性强 (采用CRC校验 )等一系列优点 ,可满足大部分工业设备的通信要求 ,适合在低压电器领域中推广应用。DeviceNet现场总线技术在CAN总线的基础上又增加了面向对象、基于连接的现代通信技术理念 ,将工业现场的分散设备连接成一个廉价、高效、开放、可靠的控制网络系统 ,至今已在世界上众多工业现场中得到成功应用。相信在不远的将来 ,随着现场总线技术的不断深入推广 ,DeviceNet现场总线一定能在国内获得广泛应用。

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

网站地图

Top