关于车载网络技术革新-CAN FD深度分析

随着电子、半导体、通讯等行业的快速发展,汽车电子智能化的诉求也越来越强,消费者希望驾驶动力性、舒适性、经济性以及娱乐性更强的汽车。汽车制造商为了提高产品竞争力,将越来越多的电子控制系统加入到汽车控制中,例如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与文献【2】中提到的方法近似,即通过改变帧的格式增加总线带宽:一种方式为加长数据场长度减少报文数量降低总线负载率;另一种方式为缩短位时间提高位速率。
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错误界定机制,包括错误帧、错误计数器、主动错误/被动错误状态等。文献【3】中提到相对于标准can,can fd允许更长的数据场,因此选择两种新bch型crc多项式:数据场长度小于16个字节采用g17,数据场长度多于16个字节时采用g21,海明距离hd=6。
通过帧控制场的edl位确定帧格式后发送dlc,并从g17、g21以及标准can帧多项式中选择正确的多项式计算crc序列。接收节点也选择相应的多项式计算crc序列并决定是否对发送帧进行应答。
2.3can fd位时间转换
can fd有两套位时间配置寄存器,应用于仲裁段的第一套的位时间较长,而应用于数据段的第二套位时间较短。首先对brs位进行采样,如果显示隐性位,即在brs采样点转换成较短的位时间机制,并在crc界定符位的采样点转换回第一套位时间机制。为保证其他节点同步can fd选择在采样点进行位时间转换。
2.4收发器延迟补偿
目前应用的can收发器存在回路延迟,延迟时间最高可达255ns。can fd协议中,帧的数据段位时间有可能小于255ns,如果当采样点到来时发送节点还没有收到其发出的位,发送节点就会报错,因此 can fd通过可选择性的收发器延迟补偿机制避免这种情况发生。发送节点将这种补偿机制应用到帧的高速数据段,接收节点不需要收发器延迟补偿。
在收发器延迟补偿机制中,定义一个次级采样点ssp(second sample point)并在接收位的ssp处比发送的位值进行比较检查位错误,同时忽略原来采样点的位值。can fd协议控制器在位速率转换之前的edl位到r0位的下降沿上测量收发器的回路延迟trv_delay,延迟trv_delay通过计数器测量,起始于can_tx的r0下降沿终止于can_rx的r0下降沿。
trv_delay加上一个可变的偏移量(例如1/2高速位时间)即为ssp的位置。如果ssp发生在发送位发送结束后,那么将发送位缓存等待ssp到达再进行位错误检查。如果在ssp处检测到位错误,那么将这个位错误的信息缓存,直到下一个采样点到达时才对位错误做处理,此时位速率转换回仲裁段的低速率进行数据传输。如果直到crc界定符的采样点到达都没有检测到位错误,can fd协议控制器转换位速率并返回到标准位错误检测模式。
2.5硬件支持
在can总线基础上发展起来的can fd协议,实际应用时需要对原来的can网络物理层做一些改变,对软件和应用程序的修改较小。一般地要在车载can网络中进行can fd通信时,需要添加can fd控制器。目前can fd控制器还没有产品问世,bosch在实验室中将can ip模块嵌入fpga中实现了can fd控制器的功能,这种方法目前也主要用于仿真验证和实验室测试。can ip模块如图3所示,它由2个can fd ip core在fpga上运行,上层由cpu控制。
图3 can ip module结构图
nxp宣布将在2013年上半年发布tja1145 fd收发器的样片,这款收发器支持can局部网络(pn, partial networking)并且配置了额外的寄存器可以忽略can fd消息,这为can fd节点和传统的can节点兼容于一个网络提供了条件,即can fd节点通信时,can节点进入睡眠状态,can fd通信结束后由一个can唤醒消息将can节点唤醒。同时nxp宣布将在2013年第三季度发布sja1145样片,这是一款集成片上收发器的can fd协议控制器,支持64个字节的传输负载和2m的传输速率,但是sja1145需要精确的外部时钟。etas和vector等工具厂商也跃跃欲试,发布了其支持can fd总线通信的工具及其发展计划。
3.can fd应用意义
can fd可以有效提高车载网络的数据传输速率,并且保持现有软硬件不做大的改变。图4为bosch提供的位速率增长曲线,从曲线可以看出当仲裁段的位速率一定时,随着数据段速率的增大数据帧的平均位速率是逐渐增大的,随着帧数据场长度的增加平均位速率也是变大的。当仲裁段位速率选定1mbit/s、数据场长度为64个字节、数据段的位速率为8mbit/s时,can fd总线的带宽可以提高到5 mbit/s多,这是相当可观的[4]。
图4 can fd数据帧平均位速率
bosch还提供了一组数据:在软件下载时标准can帧速率为500kbit/s时,传输4个8字节的can帧并包括15%的填充位,其在总线上耗时1021μs;而如果传输1个32字节的can fd帧并包括15%的填充位其在总线上耗时仅为229μs,节省了3/4的传输时间。同时由于数据场的加长,即使长报文也无需分成多包发送,有利于总线传输层管理。
can fd显著提高了车载can网络的带宽,更长的数据场长度可以避免使用多包传输。can fd的成本与can总线基本接近,并且对目前的软件和应用程序改动较小,can fd保留了车载can网络的物理层和拓扑结构,能够提供can总线网络的无缝升级,这些优越性为can fd提供了良好的发展前景。
4.结语
can fd是一种新协议,它保持了can协议的核心特征,并且拥有更高的带宽以及更长的数据长度,can fd在车载网络中可以沿用can总线的收发器,随着技术的发展也可以采用专用收发器,当采用can总线收发器时,其传输速率期望值为2.5 mbit/s,相当于低速的flexray车载网络[5]。目前can fd还处于引入阶段,can fd通信可以用于特定用途,例如软件下载,此时其他不支持can fd的节点就保持睡眠状态。采用can fd协议的ecu无需改变应用程序以及can物理层便可用于现有网络系统,can网络向can fd网络过渡是简单方便而且易于实现的。

如何在物联网路径中添加智慧技术
浅析7个PCB生产制作的可行性工艺
OPPO以“渐变”应万变 打造后智能手机时代新布局
NPN型和PNP型三极管介绍 三极管BE端并联电阻的作用
数字光显 智创未来丨和华夏北斗星一起领略教育装备展盛况!
关于车载网络技术革新-CAN FD深度分析
智能门锁到底安全吗?
iPhone手机15年拍照进化 难道要抢安卓手机的亮点
工业平板电脑助力工业机器人迅速发展
人工智能的第一性原理是什么?
云传物联智能数据采集终端,你想监测什么就监测什么
荣耀v10怎么样?深度拆解领略内部黑科技
PLC的PID控制算法在变频恒压供水控制器中的应用
玩天天斗地主赢腾达路由AC18,还有游戏豆免费送
CTC技术更像是一种顺势而为的结果而不是用来出爆款车型的手段
关于S端子嵌入式方案的多种运用
小器件大创新,CMEMS可编程振荡器撼动石英晶体振荡器百年“霸业”
英伟达公布代号安培的下一代GPU芯片将由韩国三星代工
一文详解高效能x86处理器
分享一种将AD原理图更新Allegro PCB文件的方法