英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料
用于汽车的高效CAN数据压缩技术
摘要:CAN(控制器局域网)是为了在车辆以及许多的高端工业控制应用的电子控制单元之间进行多路通讯而设计的。当CAN总线被大量的ECU(电子控制单元)超载连接时,CAN数据压缩的时间和出现错误的可能性都会增加。因此,缩减CAN的帧长度是很有必要的,因为数据压缩的持续时间与帧长度成正比。在本文中,我们提出了一种CAN信息压缩方法来减少CAN协议的帧长度。实验结果表明通过这种方法CAN的传输数据可以压缩至81.06%。实验通过使用镶嵌式的测试板,验证了64位的发动机管理系统CAN数据压缩可以在16ms 内完成,因此,这种方法可以成功的应用于汽车上。
关键字:控制器局域网,电子控制单元,数据压缩,信号重置
1.引文
CAN是一种有效地支持分布式实时控制的安全级别很高的串行通信协议,早在19世纪80年代就被开发出来了(博世公司是在1991年开发出来的)。由于其拥有较高的可靠性和成本效率,使得串行通信系统成功地应用于很多领域。CAN系统在嵌入式计算机控制系统得到广泛应用,如家用电器、工业机器和医疗设备的微控制器之间往往需要进行串行通信。(Leen and Heffernan, 2002; Desai et al., 2013).
CAN协议是基于总线拓扑的,一根CAN总线的通信只需要两根线就能完成。CAN总线是多主机结构,总线上的任意一设备都可以发送或者接收信息。每次只有一个设备可以发送数据,而所有其他的设备只能接收。如果两个或两个以上的设备试图在同一时间发送数据,那么将允许的拥有最高优先级的设备发送数据而其它设备则返回接收模式(ISO, 2003)。
大多数自动化工业的产品创新都是随着ECU的广泛使用而实现的。在一辆现代pre-mium车上分布着多于50个的电子控制单元,他们的价值大概为一台车总价值的40%(Ortega et al., 2006)。随着与CAN总线相关的ECU和传感器的增多,CAN总线的负荷也随之增加。当一根CAN总线超负荷的时候,由于等待时间的增加,传输低优先级的信息就不是那么容易了。这样的话,出现数据传输错误的可能性也就增加了。
如果CAN总线超负荷会造成系统中出现严重的问题,那就必须建立另一个CAN网络。而且,将数据压缩技术应用到CAN数据上可以有效地解决CAN总线的超负荷问题。基于观察到CAN数据(比如说燃料和关键状态数据)变化得不快这一现象的基础上,为了降低汽车载荷,就只能传输现在和原来CAN信号之间的差值。(Lawrenz, 1997)。
在自适应数据简化(ADR)算法中,如果两个顺向信号之间的delta值(现在和先前信号的差值)超过了指定的delta的范围,传输的是现在的CAN信号而不是delta压缩版本 (Ramteke and Mahmud, 2005)。自适应数据简化(ADR)算法用两个报文标识符(即原来的报文标识符和压缩的报文标识符)发送信息,压缩的报文标识符比原来的报文标识符占用空间要小。
改进的自适应数据简化(IADR)算法用一个单一的报文标识符来发送被压缩的或者未被压缩的信息 (Miucic and Mahmud, 2006)。在这种算法中,当一条信息被压缩的时候,数据的第一字节就会置“1”,当一条信息没有被压缩的时候,第一位就会被置“0”。使用IADR算法,根据delta的数值,CAN信号可以完全被压缩,delta压缩,或者是不压缩。
通过使用CAN数据帧格式的数据长度代码(DLC),增强的数据简化(EDR)算法(Miucicet al .2009)降低了识别压缩信息的难度,比如说保留位的使用 (Misbahuddin et al., 2001)、专业报文标识符的使用(Ramteke and Mahmud, 2005)或者是数据区附加位的使用(Miucic and Mahmud, 2006)。而且,EDR算法采用了一个方法来管理短长度的信号(即lt; 5位的信号),即将他们组成一个小组,把他们作为一个单独的信号处理。
使用15边界压缩(BFC)算法,如果能信号的当前值在最大压缩范围plusmn;15内改变,那么信号可以被压缩(Kelkar and Kamal, 2014)。
在压缩区选择算法中(Wu et al., 2014),不需要预测连续的CAN信息的最大差值。64位数据区通常被假定是有8个信号组成,每个信号含有8位。然而,由于首位的存在,数据区的长度额外增加到了8位。
在本文中,信号重置算法(SRA)提出了通过使用信号特征的方法获得更高的压缩效率。基于仿真结果的实际信号,CAN信号在CAN的数据帧内重置,这样,被缩减的数据区长度会达到最小。而且,与压缩区域选择方法相反的是,64位的数据区被假定三个信号组成,三个信号字长分别为24位、24位和16位。这样,无论数据帧的信号数量有几个,首位最多三位。
2.现有的CAN信息压缩方法
在本节中,在简单的介绍了数据帧格式后,对现有的三种CAN信息压缩方法进行了回顾。
2.1CAN数据帧格式
CAN是一种适合于网络传感器、制动器和其他实时控制系统的节点的串行通信协议。这里有两个版本的协议,有11位标识符的CAN2.0A(标准的CAN协议)和有29位标识符的CAN2.0B(拓展后的CAN协议),对于车载通信,只采用了CAN2.0A这个版本,因为它提供了充足的标识符(ISO, 2003)。图1展示了CAN2.0A数据帧的格式。
图1 CAN2.0数据帧格式
界限位
ACK通道道
CRC
序列
r0 DLC
IDE
RTR
帧起始
总线空闲
ACK EOF
CRC场
间歇场
11位标识符
数据场
控制场
仲裁场
总线
空闲
数据帧
数据帧从帧头(SOF)开始,帧头后面紧接着是一个11位标识符。标识符位和远程发送请求位(RTR)形成了仲裁场。CAN数据区最多可容纳8个字节的数据。实际数据区大小被控制场中的DLC控制。CAN系统使用了一个字节填充长度为5的不归零代表位。CAN数据帧最多135位,包括所有的协议开销比如说填充位。数据区可以看成是2D内存map图(表1)。
表1 64位CAN数据区的2D内存map图
7位 |
6位 |
5位 |
4位 |
3位 |
2位 |
1位 |
0位 |
|
0位 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
1位 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
2位 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
3位 |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
4位 |
39 |
38 |
37 |
36 |
35 |
34 |
33 |
32 |
5位 |
47 |
46 |
45 |
44 |
43 |
42 |
41 |
40 |
6位 |
55 |
54 |
53 |
52 |
51 |
50 |
49 |
48 |
7位 |
63 |
62 |
61 |
60 |
59 |
58 |
57 |
56 |
2.2增强的数据简化算法
通过在数据帧格式中使用DLC,EDR算法降低了压缩信息的识别难度,EDR算法使用一个方法来管理短长度的信号(即lt; 5位的信号),即将他们组合起来,当做一个单独的信号处理。在EDR算法中,编码信息可以有两类信号。任何一个长度超过5位的CAN信号为SDN(信号,delta,无变化)型。SDN信号可以允许一个信号代表它的全部信号,这代表着它的增量,或者没有变化。任何一个长度小于5位的CAN信号被称为SN信号。SN信号可以允许一个信号代表它的全部信号或者是没有变化。
在EDR算法中,压缩的CAN信息中的第一个字节为数据压缩码(DDC)。DCC中的每一位位置对应最初未压缩的消息的数据字节位置。DCC位值为“0”表示相应的信号是未压缩的,而DCC位值为“1”表示相应的信号是delta压缩或者完全压缩的。减少类型(RT)位表示delta压缩类型(RT = 0)或完全压缩类型(RT = 1)。
表2展示了CAN信号的一个例子,图2展示了表2信号中的SDN和SN类型分组。可以看到这个信息有三个SDN信号和两个SD信号。表3展示了通过EDR算法得到的被压缩的信息。在这个例子中,用到了一个5位DCC和两个RT位。EDR算法可以实现数据压缩率为16.7%,因为现在需要5个字节(35位),而不是原来的6个字节(42位)。
图2 CAN信号的例子
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[147911],资料为PDF文档或Word文档,PDF文档可免费转换为Word
参数 |
字长(比特) |
初值 |
当前值 |
差值 |
车速 |
16 |
21 |
35 |
14 |
冷却液温度 |
8 |
16 |
15 |
-1 |
发动机转速 |
8 |
30 |
30 |
0 |
风速 |
4 |
3 |
6 |
3 |
油量传感器 |
4 |
5 |
3 |
-2 |
发动机状态 |
3 |
2 |
2 |
0 |
齿轮状态 |
3 |
1 |
1 |
0 |
怠速状态 |
2 |
1 |
1 |
0 |
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。