FlexRay基础讲座 (1、2、3)
中国单片机公共实验室 吕京建
1.什么是FlexRay
从车辆工程角度上看,CAN的速率、可靠性和成本指标在汽车的动力系统总成中应用是最为适宜的。但对于安全等级需求更高的系统,如转向控制和制动系统及安全气囊的网络互联问题则应制定一个新的标准,这就是FlexRay。CAN的成功应用及FlexRay的标准开发推动了新的X-by-wire车辆系统设计思想的完善,也导致了车辆系统对信息传送速度尤其是对故障容错与时间确定性的需求的不断增加。FlexRay通过在确定的时间槽中传递信息,以及在两个通道上的故障容错和冗余信息的传送,满足了这些新增加的要求。
FlexRay作为下一代汽车网络协议,提供了充足的带宽、可靠性和实时响应能力,以实现线控应用,如节流阀、制动、转向和动态稳定性控制。该标准已开始被越来越多的汽车制造商采用。
FlexRay 是一种用于汽车的高速可确定性的,具备故障容错的总线系统,它的基础源于戴姆勒·克莱斯勒公司(奔驰公司)的典型应用以及BMW公司(宝马公司)byteflight通信系统开发的成功经验。Byteflight是BMW公司专门为被动安全系统(气囊)而开发的,为了同时能够满足主动安全系统的需要,在Byteflight协议基础之上,被FlexRay协会进一步开发成了一个与确定性和故障容错有密切关系的,更可靠的高速汽车网络系统。今天,BMW,Daimler·Chrysler,General Motors,Ford,Volkswagen和一些半导体公司如Bosch,Freescale,Philips 等组成了FlexRay联盟。2006年应用FlexRay技术的汽车将进入市场。
2.FlexRay的传输介质和访问
FlexRay符合TDMA(Time Division Multiple Access)的原则,部件和信息都被分配了确定的时间槽,在此期间它们可以唯一的访问总线。时间槽有固定的重复周期。信息在总线上的时间是完全可以预测出来的,因而对总线的访问是确定性的。
不过,通过为部件和信息分配时间槽的方法来固定的分配总线带宽,其不利因素是导致总线的带宽没有被完全的利用。出于这个考虑,FlexRay把周期分成了静态段(Static Seg.)和动态段(Dynamic Seg.),确定的时间槽适用于位于信息开始的静态段。在动态段,时间槽是动态分配的。每种情况下都只有一小段时间是允许唯一的总线访问的(这段时间称为"mini-slots"),如果在mini-slot中出现了总线访问,时间槽就会按照需要的时间来扩展。因此总线带宽是动态可变的。
图1 FlexRay的通信周期、帧的静态、动态部分的结构示意
3. FlexRay的数据速率和网络拓扑
FlexRay在物理上通过两条分开的总线通信,每一条的数据速率是10MBit/s。这两条线主要是用于冗余和故障容错的信息传输,但也可以传递不同的信息,后者的数据吞吐量是翻倍的。
FlexRay也可以在2.5MBits/s和5MBits/s 低数据率下工作,并且为数据传输定义了主动星型、被动星型或是两者混合的总线拓扑结构,因此FlexRay网络节点的连接是非常灵活的。
图2 FlexRay的主动星型网络拓扑示意
图3 FlexRay的星型、总线型混合网络拓扑示意
4. FlexRay节点的同步
为了实现功能的同步和通过两条信息间的短距离来优化带宽,该通信网络中的分布组件都要有一个共同的时基(全局时间)。为了时钟同步,同步信息是在周期的静态段传输的。通过增添一个特殊的算法,部件的本地时钟被修正为所有的本地时钟与全局时钟同步。
图4 FlexRay协议帧的静态、动态部分的结构示意
5.FlexRay网络节点的结构
FlexRay的网络节点是由主处理器(Host)、FlexRay通信控制器(Communication Controller)、可选的总线监控器(BG)和总线驱动器(BD)组成的。主处理器提供和产生数据,并通过FlexRay控制器传送出去。
总线驱动器连接着通信控制器和总线,或是连接总线监控器和总线。主处理器把FlexRay控制器分配的时间槽通知给总线监视器,然后总线监视器就允许FlexRay控制器在这些时间槽中来传输数据。数据可以在任何时候被接收。
图5 FlexRay的网络结构