摘要:CAN总线以其传输速率高、性能好、减少车身线束使用量,广泛用于汽车电子控制系统,但随着需要传输的数据量越来越大,电子配件越来越多,使得总线负载越来越高,高负载率影响网络传输稳定性,因此,优化负载、优化网络拓扑至关重要。
CAN是一种串行总线式通信协议,当传输速率设置为1 Mb/s时,最大理论传输距离40 m,每帧报文可传输0~8byte的数据,是目前整车最常用的局域网之一。常用的High speed CAN波特率为500 kb/s ,按此速率下的网络通信环境,最大承载能力受限于:当一条网段上所载节点发送报文量超过一定程度时,容易造成网络拥堵、信号传输延迟,甚至导致低优先级的报文传输丢失。
1.常用CAN协议数据帧简介
目前常用的 CAN协议为Bosch CAN 2.0 A和CAN2.OB。其中数据帧由帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结尾构成,对于标准数据帧,除数据场外,其他场格式固定,占用位数为47个bit,数据场由0至8个字节组成。
由于仲裁场和控制场格式被预定义成固定格式,因此理论上的最大位填充在实际情况下不会出现。最贴合实际的负载率计算应考虑50%的位填充,即一帧数据帧应由47~124 bit组成。
2 总线负载率计算及对传输稳定性影响分析
2.1总线负载率计算
总线利用率定义为使用的总位数/可用的总位数。若一条网段传输周期为Tn的报文有ain条,周期为T2的报文有ai2条,周期为Tn的报文有ain条,定义一帧报文长度为Lf,总线传输速率为Ba,则总线负载率为
取各报文数据场长度为8 byte, Ba= 500 kb/s,则各周期内报文帧数及负载率如表1所示。
2.2 总线负载率对传输稳定性影响分析
随着驾驶性能以及安全等级的不断提高,对各类电控系统采集和执行的信号精准的要求越来越高,这使得各ECU之间交互的信息量越来越大,报文不断增多,负载不断增大。
一般情况下,为保证低优先级的报文传输延迟在可接受的时间范围内,总线利用率不应超过30%。根据Matlab-CANoe仿真分析,当负载率大于38%~40%时,稳定性开始衰减,超过55%后存在影响驾驶性及安全性风险,大于65%时,稳定性衰减加剧,超过98%时,网络将不堪重负,如图1所示。
根据经验,负载率应控制在50%以内,有较为完善的网络管理策略时,网段负载率应不超过70%。表1所示网段负载率理论值为59.3464%,存在报文丢帧的风险。
3 总线负载率优化方案
3.1 信号压缩及调整
对各信号的接收逐一确认,确定合适的信号精度及周期。
例1: EMS发送的净扭矩、驾驶员期望扭矩、发动机燃烧扭矩、扭矩损失、飞轮端实际扭矩给TMS、ESC、ACC等,优化前,上述信号的长度为16 bit,精度为0.0138,物理值范围-600~600 Nm ,而接收方实际所用扭矩需求为±5 Nm或±5%(不超过20 Nm )。取±5 Nm时,需8 bit即可满足需求。
以此计算,上述5个信号全部由16 bit缩减为8 bit,则共节约40 bit。
总结:所有占用字节数较多的信号按需重新分配信号长度。
例2:枚举型信号重排布。ESC发送的左前、右前、左后、右后轮轮速标志位,ABS故障灯、ABS激活等枚举型信号,原定义每个信号一个1或若干个位,上述信号共占用6 bit。如果将以上信号合成一个信号,需表示12种状态,则4 bit即可完成对上述信号的定义。
例3:压缩式数据加密算法的运用。发送方按照加密算法将数据进行压缩保护,接收方根据对应的解密算法进行解压缩。对压缩和解压缩算法的选取,需保证收发双方数据的一致性。根据压缩的本质,不同功能信号的合理排布,有利于提高压缩效率。
总结:一个节点所发送的同一周期的枚举型信号,尽可能地合并起来。调整后优化出来的空间,可以被其他信号所用,进而减少报文数量。网关路由的信号,非必要的情况下不用报文路由的方式路由信号。利用压缩式数据加密算法不仅能够有效压缩信号,优化负载,还能提高整车的安全性,防止外部入侵。
3.2 报文周期调整
报文发送周期取决于接收方的功能需求,考虑传输延迟的情况下,合理的制定报文发送周期有利于功能的良好实现,使驾驶感更加舒适。
经调查发现某ECU软件循环周期为7.8xn,则接收5 ms的报文可以改成7 ms,接收10 ms的报文可以改成15 ms。
报文周期的确定应根据功能需求及ECU软件处理周期来定。
3.3 基于网段划分的拓扑结构优化
当一条网段无法满足需求时,常考虑增加网段,对于网段合理的划分至关重要。
1)经验式网段划分。由于网关路由报文需要先接收再发送,造成一定的延迟,对报文实时性要求较高的节点,不能分开网段布置。对于信息交互量大的节点,也不建议分开网段布置。比如EMS、TMS,一般情况下布置在一条网段上较为合适。
2)利用遗传算法优化网关划分。利用遗传算法,从若干个待划分的ECU群体开始,一代一代地寻找问题的最优解,直至满足收敛判据或预先设定的迭代次数为止。先将ECU进行编号并排序,然后将ECU对应的未知数取值作为染色体基因,同为0或同为1的ECU表示在同一个网段上,因此染色体的长度就等于网络ECU数,每一个染色体表示一种拓扑设计方案。
3.4 网络类型调整
目前常用的车载总线有CAN和LIN , High-CAN传输速率500 kb/s, LIN总线传输速率为19.2 kb/s。加上表1其他功能配置,考虑上述章节3.1-3.3等项优化后,负载率仍较高时,就需要调整总线类型或单ECU引出多条CAN总线。目前常见的有CAN-FD、Flexray, Most, Ethernet等总线,其传输速率及单帧报文传输数据量均高于普通的CAN总线。