微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 车载网络技术革新-CAN FD浅析

车载网络技术革新-CAN FD浅析

时间:12-19 来源:互联网 点击:
  1.引言

随着电子、半导体、通讯等行业的快速发展,汽车电子智能化的诉求也越来越强,消费者希望驾驶动力性、舒适性、经济性以及娱乐性更强的汽车。汽车制造商为了提高产品竞争力,将越来越多的电子控制系统加入到汽车控制中,例如ESP(Electronic Stability Program,电子稳定程序)、PEPS(Passive Entry Passive Start无钥匙进入和启动系统)等。但是由于CAN总线的最高传输速率为1Mbit/s(通常汽车CAN系统的实际使用速率最高为500kbit/s),ECU(Electronic Control Unit,电子控制单元)的大量增加使总线负载率急剧增大以致造成网络拥堵,影响信息传输的可靠性和实时性。
  不同的汽车,根据其级别、类型和配置的不同,ECU的数量和网络拓扑都不尽相同。图1所示的网络拓扑为经济型轿车中常见的网络拓扑,因为所有的ECU都在同一个CAN网段上,其总线负载率可能高达50~60%,而一般情况下,CAN总线负载率在30%左右时网络系统的性能相对较好,否则会增大报文延迟、降低系统的扩展性,尤其对于实时性要求较高的安全系统,高负载率甚至可能影响汽车行车安全;另一方面,CAN总线的位填充规则会对CRC(Cyclical Redundancy Check)造成干扰,引起错误帧漏检,使信息传输的可靠性达不到预期的设计要求,因此CAN总线将不能满足日益增长的汽车网络需求。

图1汽车CAN总线网络拓扑

为解决带宽与可靠性的需求,有人提出在汽车网络中使用新的总线协议替代CAN总线,例如安全系统中使用FlexRay总线、娱乐系统中使用MOST总线,但需要重新开发控制器软硬件、重新设计车载网络系统等,这无疑会增加汽车制造商的开发成本,降低其市场竞争力,因此在目前车载网络系统的基础上对CAN总线进行改进显得尤其迫切。
  2011年Bosch发布了CAN替代总线--CAN FD (CAN with Flexible Data-Rate) 1.1版。CAN FD比CAN总线的带宽更高,具有与CAN总线相似的控制器接口,这种相似性使ECU供应商不需要对ECU的软件部分做大规模修改,降低了开发难度和成本。CAN FD是CAN总线的升级换代设计,它继承了CAN总线的主要特性,提高了CAN总线的网络通信带宽,改善了错误帧漏检率,同时可以保持网络系统大部分软硬件特别是物理层不变。CAN FD协议充分利用CAN总线的保留位进行判断以及区分不同的帧格式[1]。在现有车载网络中应用CAN FD协议时,需要加入CAN FD控制器,但是CAN FD也可以参与到原来的CAN通信网络中,提高了网络系统的兼容性。
  2.CAN FD介绍
  引入CAN FD协议,对当前CAN网络系统物理层的改动较小,但是可以明显提高数据的串行通信速率, CAN FD与文献中提到的方法近似,即通过改变帧的格式增加总线带宽:一种方式为加长数据场长度减少报文数量降低总线负载率;另一种方式为缩短位时间提高位速率。
  CAN FD在数据帧内部采用两种不同的位速率,即在仲裁段(Arbitration-Phase)采用标准CAN位速率通信,在数据段(Data-Phase)采用高速率通信。
  2.1CAN FD的帧格式

(a)标准帧格式

(b)扩展帧格式

数据场数据字节小于16时CRC为17位

图2 CAN FD数据帧格式

对比CAN总线帧格式,CAN FD帧增加或改变了一些位的功能,包括:
  ◆EDL(Extended Data Length)扩展数据长度,在标准的CAN帧中,控制场包含的保留位被指定为显性位发送,但是在CAN FD帧中,如图2(a)标准帧IDE位之后的保留位或者图2(b)扩展帧中RTR位之后的保留位被定义为EDL并以隐性位发送,EDL主要用于区分标准CAN帧格式和CAN FD的帧格式。由于在CAN FD中EDL总是以隐形位发送,后面的位r0为显性位,因此可在BRS(Bit Rate Switch)位速率开关位之前提供一个重同步沿,这个沿也可用于在收发器延迟补偿中测量收发器的延迟;
  ◆r1,r0,保留位并以显性位发送,在CAN FD中接收节点忽略r1和r0位的值;
  ◆BRS(Bit Rate Switch)位速率转换开关,当BRS为显性位时数据段的位速率与仲裁段的位速率一致,当BRS为隐性位时数据段的位速率高于仲裁段的位速率;
  ◆ESI(Error State Indicator)错误状态指示,主动错误时发送显性位,被动错误时发送隐性位。
  CAN FD协议中没有远程帧,标准CAN帧中的RTR位由保留位r1(显性位)替代,因此可将CAN远程帧用于CAN FD系统中。
  CAN FD一帧最多可以传输64个字节,因此DLC将重新定义CAN FD的数据长度,值的范围将由原来的0000b~1000b(覆盖8个字节)扩大至0000b~1111b以满足需求,表1所示为DLC数值与字节数的对应关系。

表1 DLC值与字节数对应表

2.2CRC算法
  CAN总线通常进行位填充以保持同步,但是位填充会干扰CRC的计算,从而造成错误漏检率达不到设计目标。因为有两种位错误在个别的情况下检测不出来,一种位错误产生位填充条件,另外一种位错误失去位填充条件,这两种位错误都会改变帧位。CAN FD为了避免这种错误,对CRC算法做了改进:将填充位纳入到CRC计算中,即CRC以含填充位的位流进行计算,以一个填充位开始并且序列每4位插入一个填充位加以分割,且填充位的值是上一位的反码。作为格式检查,如果填充位不是上一位的反码,就报错处理。
  CAN FD保留了所有的CAN错误界定机制,包括错误帧、错误计数器、主动错误/被动错误状态等。文献中提到相对于标准CAN,CAN FD允许更长的数据场,因此选择两种新BCH型CRC多项式:数据场长度小于16个字节采用g17,数据场长度多于16个字节时采用g21,海明距离HD=6。

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

网站地图

Top