汽车电子的发展经历了几个阶段。第一个阶段是1974年之前,交流发电机、电压调节器等技术起点较低的电器开始大规模应用。第二个阶段是1974~1982年,以集成电路和16位以下的微处理器在汽车上的应用为标志。第三个阶段是1982~1990年,微电脑在汽车上的应用日趋可靠和成熟,并向智能化方向发展。也正是在第三个阶段,德国Bosch公司推出了新型的串行总线——CAN控制器局域网,此后,汽车电子的发展迎来了新时代。
CAN:Controller Area Network,即控制器局域网络。CAN总线采用双线串行通讯协议,基于非破坏性仲裁技术,分布式实时控制。可靠的错误处理和检测机制使CAN总线有很高的安全性,目前已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。基于CAN总线,车载控制器可以实现信号交互,从而共享整车实时的信息。
随着汽车高级驾驶辅助系统和人机交互的增加,人们对车载控制器数据传输性能的需求越来越高,传统的CAN总线由于带宽的限制,在迅速发展的车载控制器面前逐渐显得力不从心。
然而,CAN总线毕竟已经在汽车上有了数十年成熟应用的经验,FlexRay、Ethernet等后起之秀受限于成本和技术难度等因素,也无法迅速取而代之。为了跳出带宽的限制,满足日渐增加的需求,改进版的CAN总线——CAN FD应运而生。
CAN FD(CAN with Flexible Data rate)数据传输效率大幅提升,而且继承了CAN总线的主要特性,软件容易开发和移植,并保持了低成本的优势以应对新型总线的挑战。
相比“传统”的CAN协议,CAN FD具有两大特点:可变速率和大数据场。
可变速率
CAN FD名称中的FD(Flexible Data rate)指的就是可变速率,传统CAN通信的最大速率为1Mbps,车载领域实际使用速率最高为500kbps,而CAN FD将通信速率提升到了5Mbps。需要指出的是,“可变速率”的含义并不是指帧与帧的传输速度不同,而是指同一帧里不同部分的传输速度不同。
观察CAN FD的数据帧结构:
CAN FD报文通信时,在仲裁段和紧接着的数据控制段仍使用传统的500kbps波特率,当来到数据段时,CAN-FD总线就会切换到更高的通信波特率。从而减少数据帧发送耗时,提高CAN-FD的整体传输速度。在单位时间内,可以有更多的数据进行交互。
或许你会有疑问,为什么不把整个数据帧的传输速度都提高呢?
这就涉及到CAN通信的基本原理:CAN采用仲裁机制来判定不同节点CAN报文传输的优先级,每个节点在发送的同时监测总线状态,判断自己是否仲裁成功。在仲裁期同一总线上的所有节点发出的信号必须在一个位的时间内到达,以便互相判断优先级;而电信号传播速度是有限的,通信波特率越高,位时间内通信距离越短。综上,500kbps是从大量经验中得出的一个适用于车载网络的传输速率。
如果贸然提高仲裁段和数据控制段的通信速率,则各节点监测到的总线状态不能在同一个位的时间内同步变化,仲裁机制便会失效。
而在数据段,网络上仅有一个节点发送数据,其他节点处于接收状态,各节点之间不需要协调同步问题,此时提高传输速度,对发送方和接收方都是比较容易处理的。
大数据场
无论是CAN还是CAN FD,每个数据帧的仲裁段消耗的发送时间是固定的。对于同一段有效数据,发送这些数据所用的帧越少,则仲裁段消耗的总时间越少,传输效率也就越高。
传统的CAN协议,每个数据帧里最多只能包含8个字节的有效数据,而CAN-FD对数据场的长度作了很大的扩充,在每个数据帧里最多可发送64字节。提高数据传输效率的同时避免了经常发生的数据分裂状况。基于大数据场,控制器节点的信号可以集中到两至三帧报文中。
CAN FD并不是支持1-64之间任意的数据场长度,根据DLC编码定义,其允许的数据场长度如下表。
有了“可变速率”和“大数据场”两大法宝,CAN FD的数据传输效率获得了显著提升,成为智能汽车强有力的助推器。
在CAN网络内,若想真正发挥CAN FD的能力,则所有CAN节点都必须是CAN FD节点,且使用相同的变速率。
评论
加载更多