首页 理论教育 汽车总线通信网络技术与数据结构

汽车总线通信网络技术与数据结构

时间:2023-08-24 理论教育 版权反馈
【摘要】:CAN总线通信网络上所传输的数据,包括数据帧、远程帧、错误帧、过载帧和帧间隔5种,作用分别如下:数据帧将数据由发送器传至接收器;远程帧由节点发送,以请求发送具有相同标识符的数据帧;错误帧可由任何节点发出,以检验总线错误;过载帧用于提供先前和后续数据帧或远程帧之间的附加延时;帧间隔用于将数据帧及远程帧与前面的帧分离开。在CAN总线上,逻辑值“0”表示显性电平,逻辑值“1”表示隐性电平。

汽车总线通信网络技术与数据结构

CAN总线通信网络上所传输的数据,包括数据帧、远程帧、错误帧、过载帧和帧间隔5种,作用分别如下:

(1)数据帧将数据由发送器传至接收器;

(2)远程帧由节点发送,以请求发送具有相同标识符的数据帧;

(3)错误帧可由任何节点发出,以检验总线错误;

(4)过载帧用于提供先前和后续数据帧或远程帧之间的附加延时;

(5)帧间隔用于将数据帧及远程帧与前面的帧分离开。

(一)数据帧

为了可靠地传输数据,通常将原始数据分割成一定长度的数据单元,也称为帧。一个数据帧由7个功能不同的基本区域组成,即开始域、仲裁域、控制域、数据域、安全域、确认域和结束域,如图2-33所示。

注意:

CAN以报文为单位进行信息传输,CAN中一个报文称为一帧。

图2-33 CAN数据帧构成

1.开始域

开始域表示帧(包括数据帧或远程帧)开始的区,包含1个位的显性位。此外,还用于确定与其他节点硬件的同步。

在CAN总线上,逻辑值“0”表示显性电平,逻辑值“1”表示隐性电平。“显性”具有优先功能,只要有一个节点输出显性电平,总线上即为显性电平;“隐性”具有包容功能,只有所有的单元都输出隐性电平,总线上才为隐性电平。

2.仲裁域(状态域)

仲裁域的ID字段包括11位,表示数据的优先级。显性值“0”的优先级比隐性值“1”高。在标准帧里,仲裁域的末端是远程传输请求(Remote Transmission Request,RTR)位,数据帧中为显性,远程帧中为隐性,它是区别数据帧与远程帧的标志。

当总线空闲时,各节点均可向总线发送数据,如果各个节点要同时发送各自的数据,那么系统必须决定哪一个节点先发送。CAN总线系统规定具有最高优先权的数据先发送,ID字段的二进制值越小,其优先权就越高。

例如,图2-34是由3个控制器发送数据信号的仲裁过程。如果总线为12 V,则数据判断为“1”;如果总线0 V(搭铁),则数据判断为“0”。3个控制器发送数据信号的仲裁过程如下。

(1)当传输“1”时,控制器内的FET没有起动,但是当传输“0”时,FET被起动。

(2)由3个控制器同时传输数据。

(3)如果在ID字段,节点1发送“1”和剩余两个控制器发送“0”时,来自节点1的“1”信号流到节点2、节点3的搭铁端,节点1被终止发送数据,转为接收数据。

(4)重复相同的方法,节点3的数据最后发送到总线上。

理论上,拥有最高优先级的ID为0000 0000 000,但是如果ID如此配置,则数据会独占总线,所以需要适当地进行ID分类。

3.检验域(控制域)

控制域表示数据域的字节数,由6个位构成。前两位为保留区,以备将来应用,其为显性;后四位为数据长度码(DLC),包括随后的数据区中字节的数量,其值为0~8。

图2-34 仲裁过程

4.数据域

数据域包括即将传输的数据信息,最多可达64位(8字节)。数据从最高位开始输出可以代表实际的数据,也可以是一个数据请求。如果是数据请求,就没有数据字节随从,控制域中的数据长度代码就不会与数据字节有直接关系。

5.安全域

安全域用来检测传递数据中的错误。由于CAN系统通常工作于电噪声很大的环境,数据容易丢失或被破坏,因此CAN协议提供了5种错误检测和修正的方法。如果数据被破坏,则安全域能够检测出来,而且网络中的所有的节点都会忽略这个数据。这5种错误检测类型分别为位错误、填充错误、循环冗余校验(Cyclic Redundancy Check,CRC)错误、形式错误和应答错误。

6.确认域

在确认域中,接收器会接收信号并通知发送器,其所发信号已被正确接收;如果检查到错误,接收器会立刻通知发送器,发送器会重新发送一次数据。(www.xing528.com)

7.结束域

结束域用于标志数据帧的结束,由7位隐性位序列表示,通过这7位隐性位接收器可以判断该数据帧是否结束。

(二)MAC远程帧

为了激活数据接收器的节点,我们可以通过发送一个远程帧,来起动源节点发送各自的数据。

1.远程帧帧结构

一个远程帧由6个不同的域构成,即帧起始(SOF)、仲裁域、控制域(两位保留位+DLC域)、安全域(CRC)、确认域(ACK)和帧结束(EOF),如图2-35所示。

图2-35 MAC远程帧

2.远程帧与数据帧的区别

远程帧与数据帧的区别如下。

(1)远程帧没有数据域,帧起始、控制域、安全域、确认域和帧结束均与数据帧的相应域相同。

(2)在远程帧中,RTR位通常为隐性。

(3)没有数据段的数据帧可用于各节点的定期连接确认与应答,或者用于仲裁区本身带有实质性信息的情况。

(三)出错帧

出错帧由两个不同的域构成,第一个域由来自不同节点的错误标志叠加给出,第二个域为错误界定符。

1.错误标志

错误标志有活动错误和认可错误两种形式,前者由6位连续的“显性”位组成;后者由6位连续的“隐性”位构成,认可错误标志的某些或所有位,可由来自其他节点的“显性”位改写。

2.错误界定符

错误界定符由8位“隐性”位构成。发送错误标志后,每个节点送出“隐性”位,并监控总线,直至其检测到“隐性”位。此后,它开始发送剩余的7个“隐性”位。

(四)超载帧

超载帧存在LLC要求的超载帧和超载帧重激活的超载帧两种相同的格式。前者为LLC子层所要求,以表明内部超载状态;后者由MAC子层的一些出错条件起动发送。超载帧包括超载标志和超载界定符两个域,超载标志的完整形式相对于活动错误标志;超载界定符与错误界定符具有相同形式。超载标志由6个“显性”位构成;超载界定符由8位“隐性”位构成。

(五)帧间空间

数据帧、远程帧、出错帧、超载帧,被称为帧间空间的域隔开。与此相反,超载帧和错误帧前面不存在帧间空间,并且多个超载帧也不用帧间空间分隔。

帧间空间包括间歇域和总线空闲域,并且对先前帧已发送“错误—认可”的节点还有暂停发送域,如图2-36所示。

1.间歇域

间歇域由3个“隐性”位构成。间歇期间不允许节点开始发送数据帧或远程帧,仅起标注超载条件的作用。

2.总线空闲域

图2-36 帧间空间

(a)非“错误—认可”或已收到先前帧节点的帧间空间;(b)先前帧已发送“错误—认可”节点的帧间空间

总线空闲域可以是任意长度。总线空闲时,任何节点均可访问总线以便发送。在其他帧发送期间,等待发送的帧在紧随间歇域后的第一位起动。在总线空闲期间检测到总线上的“显性”位将被理解为帧起始。

3.暂停发送域

“错误—认可”节点完成发送后暂停发送域,在紧随间歇后,被许发送下一帧前,送出8位“隐性”位。其间,若有发送起动(由其他节点引起),则节点变为该帧的接收器。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈