APP下载

CAN总线分析

2013-08-09张树贵

电子工业专用设备 2013年5期
关键词:报文仲裁总线

张树贵

(中国电子科技集团公司第三十三研究所,山西太原 030006)

CAN是Controller Area Network的缩写,即“控制器局域网”,是ISO国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发出来,系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,为了解决这些问题,产生了CAN总线协议。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。

1 CAN总线的基本原理

CAN通讯协议主要描述设备之间的信息传递方式。CAN层的定义与开放系统互连模型(OSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。

CAN总线标准包括物理层和数据链路层,其中链路层定义了不同的数据类型,总线访问的仲裁规则及故障检测与故障处理的方式。当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中的所有节点。

每组报文开头的11位字符为表示符(CAN2.0A),定义了报文的优先级,这种报文格式称为面向内容的编制方案。每一个节点要向其它节点发送数据时,该节点的CPU将要发送的数据和自己的标识符传送给本节点的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,此时,网上的其它节点处于接收状态。每个处于接收状态的节点对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定接收否。

由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并进行灵活的配置。可以很容易地在CAN总线中加进一些新的节点而无需再硬件或软件上进行修改。

2 CAN总线的特点

CAN总线是一种串行数据通信协议,其通信接口可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。具有以下特点:

(1)实时性强、传输距离较远、抗电磁干扰能力强、成本低等;

(2)数据传输距离远(可达10 kM);

(3)高速的数据传输速率(高达1 Mbps);

(4)采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作;

(5)具有优先权和仲裁功能,多个控制模块通过CAN控制器挂到CAN-bus上,形成多主机局部网络;

(6)可根据报文的ID决定接收或屏蔽该报文;

(7)可靠的错误处理和检错机制;

(8)发送的信息遭到破坏后,可自动重发;

(9)节点在错误严重的情况下具有自动退出总线的功能;

(10)脱离总线的节点不影响总线的正常工作;

(11)报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息;

(12)可以点对点、一对多点(成组)及全局广播几种传送方式接收数据。

3 CAN总线的拓扑结构

CAN总线的拓扑结构如图1所示,CAN hub是用于多分支扩展用的,可以省去。CAN总线和分支的末端都需要垮接一个120欧姆的电阻来终结,防止信号反射。

图1 CAN总线拓扑结构

4 CAN总线的数据帧结构

在总线中传送的报文,每帧由7部分组成,帧起始(start of frame)、仲裁场(arbitration frame)、控制场(control frame)、数据场(date frame)、CRC 场(crc frame)、应答场(ack frame)、帧结尾(end of frame)。CAN协议支持两种报文格式,其中唯一的不同是标识符(ID)长度不同,标准格式为11位,扩展格式为29位。见图2所示。

图2 报文的帧格式

在标准格式中,报文的起始位称为帧起始(SOF),然后是由11位标识符和远程发送请求位(RTR)组成的仲裁场。RTR位标明是数据帧还是请求帧,在请求帧中没有数据字节。控制场包括标识符扩展位 (IDE),指出是标准格式还是扩展格式。它还包括一个保留位(ro),为将来扩展使用。它的最后4个字节用来指明数据场中数据的长度(DLC)。数据场范围为0~8个字节,其后有一个检测数据错误的循环冗余检查 (CRC)。应答场(ACK)包括应答位和应答分隔符。发送站发送的这两位均为隐性电平(逻辑1),这时正确接收报文的接收站发送主控电平(逻辑0)覆盖它。用这种方法,发送站可以保证网络中至少有一个站能正确接收到报文。报文的尾部由帧结束标出。在相邻的两条报文间有一很短的间隔位,如果这时没有站进行总线存取,总线将处于空闲状态。

CAN总线上每个设备都有一个11位的ID信息,各设备的优先级是根据其ID来确定的,ID的序号越小,其优先级越高。下图为CAN总线上传输的标准数据帧格式和扩展数据帧格式,标准帧11位,扩展帧29位。见图3、图4所示。

图3 标准数据帧格式

5 CAN总线的位仲裁

图4 扩展数据帧格式

要对数据进行实时处理,就必须将数据快速传送,这就要求数据的物理传输通路有较高的速度。在几个站同时需要发送数据时,要求快速地进行总线分配。实时处理通过网络交换的紧急数据有较大的不同。CAN总线采用CSMA/CD(Carrier Sense Multiple Access with collision Detect,载波监测多路访问/冲突检测)技术。“载波监测”的意思是指在总线上的每个节点在发送信息报文前都必须监测到总线上有一段时间的空闲状态。“多路访问”的意思是一旦此空闲状态被监测到,那么每个节点都有均等的机会来发送报文。“冲突检测”是指在两个节点同时发送信息时,节点本身首先会检测到出现冲突,然后采取相应的措施来解决这一冲突情况。此时优先级高的报文先发送,低优先级的报文发送会暂停。这就是CAN总线的仲裁,仲裁过程是不会对报文产生破坏的。CAN总线的仲裁过程如图5所示。

6 CAN总线的错误处理

CAN控制器内置出错计数器,根据出错是全局的还是本地的,计数器以此决定加1还是加8。通过查询出错计数器值,就可以知道通信网络质量。不同于其它总线,CAN协议不能使用应答信息。它却可以将发生的任何错误用信号发出。CAN总线有5种错误类型:位错误、填充错误、CRC错误、形式错误、应答错误。

图5 CAN总线仲裁过程

7 CAN总线数据表示

CAN总线用隐性和显性表示0和1。当在总线上出现同时发送显性位和隐性位时,总线上数值将出现显性。总线上的信号使用差分电压传送,两条信号线被称为VCAN_H和VCAN_L。如图6所示。

图6 CAN总线的逻辑电平

8 结束语

CAN总线的数据通信有突出的可靠性、实时性和灵活性。由于具有良好的性能和独特的设计,CAN总线越来越受到人们的重视。由最早的应用于汽车领域,现在已应用于各种领域。它已经成为一种重要的现场总线之一。

[1] 杜尚丰,曹晓钟,徐建.CAN总线测控技术及其应用[M].北京:电子工业出版社,2007.

[2] 饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术(第二版)[M].北京:北京航空航天大学出版社,2007.

[3] 阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,1999.

[4] 邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.

猜你喜欢

报文仲裁总线
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
一种多通道共享读写SDRAM的仲裁方法
一种基于CAN总线的误码测试方法
ICSID仲裁中的有效解释原则:溯源、适用及其略比
ATS与列车通信报文分析
CAN总线并发通信时下位机应用软件设计