汽车总线技术 FlexRay 总线原理及应用介绍

1FlexRay总线介绍

1.1FlexRay产生及发展

随着汽车中增强安全和舒适体验的功能越来越多,用于实现这些功能的传感器、传输装置、电子控制单元(ECU)的数量也在持续上升。如今高端汽车有100多个ECU,如果不采用新架构,该数字可能还会增长,ECU操作和众多车用总线之间的协调配合日益复杂,严重阻碍线控技术(X-by-Wire,即利用重量轻、效率高、更简单且具有容错功能的电气/电子系统取代笨重的机械/液压部分)的发展。

即使可以解决复杂性问题,传统的车用总线也缺乏线控所必需的确定性和容错功能。例如,与安全有关的信息传递要求绝对的实时,这类高优先级的信息必须在指定的时间内传输到位,如刹车,从刹车踏板踩下到刹车起作用的信息传递要求立即正确地传输不允许任何不确定因素。同时,汽车网络中不断增加的通信总线传输数据量,要求通信总线有较高的带宽和数据传输率。目前广泛应用的车载总线技术CAN、LIN等由于缺少同步性,确定性及容错性等并不能满足未来汽车应用的要求。

宝马和戴姆勒克莱斯勒很早就意识到了,传统的解决方案并不能满足汽车行业未来的需要,更不能满足汽车线控系统(X-by-Wire)的要求。于是在2000年9月,宝马和戴姆勒克莱斯勒联合飞利浦和摩托罗拉成立了FlexRay联盟。该联盟致力于推广FlexRay通信系统在全球的采用,使其成

为高级动力总成、底盘、线控系统的标准协议。其具体任务为制定FlexRay需求定义、开发FlexRay协议、定义数据链路层、提供支持FlexRay的控制器、开发FlexRay物理层规范并实现基础解决方案。

1.2FlexRay特点

FlexRay提供了传统车内通信协议不具备的大量特性,包括:

(1)高传输速率:FlexRay的每个信道具有10Mbps带宽。由于它不仅可以像CAN和LIN网络这样的单信道系统一般运行,而且还可以作为一个双信道系统运行,因此可以达到20Mbps的最大传输速率,是当前CAN最高运行速率的20倍。

(2)同步时基:FlexRay中使用的访问方法是基于同步时基的。该时基通过协议自动建立和同步,并提供给应用。时基的精确度介于0.5μs和10μs之间(通常为1~2μs)。

(3)确定性:通信是在不断循环的周期中进行的,特定消息在通信周期中拥有固定位置,因此接收器已经提前知道了消息到达的时间。到达时间的临时偏差幅度会非常小,并能得到保证。

(4)高容错:强大的错误检测性能和容错功能是FlexRay设计时考虑的重要方面。FlexRay总线使用循环冗余校验CRC(Cyclicredundancycheek)来检验通信中的差错。FlexRay总线通过双通道通信,能够提供冗余功能,并且使用星型拓扑可完全解决容错问题。

2FlexRay通讯协议和机制原理

2.1节点架构

ECU(ElectronicControlUnit),即节点node,是接入车载网络中的独立完成相应功能的控制单元。主要由电源供给系统(PowerSupply)、主处理器(Host)、固化FlexRay通信控制器(CommunicationController)、可选的总线监控器(BusGuardian)和总线驱动器(BusDriver)组成,如图所示。

主处理器提供和产生数据,并通过FlexRay通信控制器传送出去。其中BD和BG的个数对应于通道数,与通讯控制器和微处理器相连。总线监控逻辑必须独立于其他的通讯控制器。总线驱动器连接着通信控制器和总线,或是连接总线监控器和总线。


节点的两个通讯过程为:

(1)发送数据:Host将有效的数据送给CC,在CC中进行编码,形成数据位流,通过BD发送到相应的通道上。

(2)接受数据:在某一时刻,由BD访问栈,将数据位流送到CC进行解码,将数据部分由CC传送给Host。

2.2拓扑结构

FlexRay的拓扑主要分为3种:总线式、星型、总线星型混合型。

通常,FlexRay节点可以支持两个信道,因而可以分为单信道和双信道两种系统。在双信道系统中,不是所有节点都必须与两个信道连接。

与总线结构相比,星状结构的优势在于:它在接收器和发送器之间提供点到点连接。该优势在高传输速率和长传输线路中尤为明显。另一个重要优势是错误分离功能。例如,如果信号传输使用的两条线路短路,总线系统在该信道不能进行进一步的通信。如果使用星状结构,则只有到连接短路的节点才会受到影响,其它所有节点仍然可以继续与其它节点通信。




2.3数据帧

一个数据帧由头段(HeaderSegment)、有效负载段(PayloadSegment)和尾段(TrailerSegment)三部分组成。FlexRay数据帧格式如图2.5所示。


(1)头段共由5个字节(40位)组成,包括以下几位:

1.保留位(1位):为日后的扩展做准备;

2.负载段前言指示(1位):指明负载段的向量信息;

3.无效帧指示(1位):指明该帧是否为无效帧;

4.同步帧指示(1位):指明这是否为一个同步帧;

5.起始帧指示(1位):指明该帧是否为起始帧;

6.帧ID(11位):用于识别该帧和该帧在时间触发帧中的优先级;

7.负载段长度(7位):标注一帧中能传送的字数;

8.头部CRC(11位):用于检测传输中的错误;

9.周期计数(6位):每一通信开始,所有节点的周期计数器增1。

(2)负载段是用于传送数据的部分,FlexRay有效负载段包含0~254个字节数据。

对于动态帧,有效负载段的前两个字节通常用作信息ID,接受节点根据接受的ID来判断是否为需要的数据帧。

对于静态帧,有效负载段的前13个字节为网络管理向量(NM),用于网络管理。

(3)尾段只含有24位的校验域,包含了由头段与有效负载段计算得出的CRC校验码。计算CRC时,根据网络传输顺序将从保留位到负载段最后一位的数据放入CRC生成器进行计算。

2.4编码与解码

编码的过程实际上就是对要发送的数据进行相应的处理“打包”的过程,如加上各种校验位、ID符等。编码与解码主要发生在通讯控制器与总线驱动器之间,如图2.6。


其中RxD位接受信号,TxD为发送信号,TxEN为通讯控制器请求数据信号。信息的二进制表示采用“不归零”码。对于双通道的节点,每个通道上的编码与解码的过程是同时完成的。


TSS(传输启动序列):用于初始化节点和网络通信的对接,为一小段低电平。

FSS(帧启动序列):用来补偿TSS后第一个字节可能出现的量化误差,为一位的高电平BSS(字节启动序列):给接受节点提供数据定时信息,由一位高电平和一位低电平组成。

FES(帧结束序列):用来标识数据帧最后一个字节序列结束,由一位低电平和一位高电平组成。


DST(动态段尾部序列):仅用于动态帧传输,用来表明动态段中传输时隙动作点的精确时间点,并防止接受段过早的检测到网络空闲状态。由一个长度可变的低电平和一位高电平组成。

将这些序列与有效位(从最大位MSB到最小位LSB)组装起来就是编码过程,最终形成能够在网络传播的数据位流。

2.5媒体访问方式

在媒体接入控制中,一个重要的概念就是通信周期(CommunicationCycle),如图所示。一个通信周期由静态段(StaticSegment)、动态段(DynamicSegment)、特征窗(SymbolWindow)和网络空闲时间(NetworkIdleTime)4个部分组成。

FlexRay提供两种媒体接入时序的选择:静态段采用时分多址方式(TDMA),由固定的时隙数组成,不可修改,且所有时隙的大小一致。用来传输周期性的数据信息;动态段采用灵活的时分多址(FTDMA),由较小的时隙组成,可根据需要扩展变动,一般用于传输事件控制的消息。符号窗用于传输特征符号。网络空闲时间用于时钟同步处理。


仲裁层包含有仲裁网络,它构成了FlexRay媒介仲裁的主干部分。在静态段中,仲裁网络由叫做静态时槽(StaticSlots)的连续时间间隔组成,在动态段中,由称为微型时槽(Minislots)的连续时间间隔组成。

仲裁网络层是建立在由宏节拍(Marcotick)组成的宏节拍层之上的。每个本地宏节拍的时间都是一个整数倍的微节拍的时间。已分配的宏节拍边缘叫做行动点(Actionpoints)。行动点是一些特定的时刻,在这些时刻上,将会发生传输的开始和结束。

微节拍层是由微节拍组成的。微节拍是由通信控制器外部振荡器时钟刻度,选择性地使用分频器导出的时间单元。微节拍是控制器中的特殊单元,它在不同的控制器中可能有不同的时间。节点内部的本地时间间隔尺寸就是微节拍。

2.6时钟同步

如果使用基于TDMA的通信协议,则通信媒介的访问在时间域中控制。因此,每个节点都必须保持时间同步,这一点非常重要。所有节点的时钟必须同步,并且最大偏差(精度)必须在限定范围内,这是实现时钟同步的前提条件。

时钟偏差可以分为相位和频率偏差。相位偏差是两个时钟在某一特定时间的绝对差别。频率偏差是相位偏差随时间推移的变化,它反映了相位偏差在特定时间的变化。

FlexRay使用一种综合方法,同时实施相位纠正和频率纠正,包含两个主要过程:时间同步校正机制(最大时间节拍生成MTG)和时钟同步计算机制(时钟同步进程CSP)。MTG控制时隙初值,即周期计数器和最大时钟节拍的计数器,并对其进行修正。CSP主要完成一个通信循环开始的初始化,测量并存储偏差值,计算相位和频率的修正值。


相位修正仅在奇数通信周期的NIT段执行,在下一个通信周期起始前结束。相位改变量指明了添加到NIT相位修正段的微节拍数目,它的值由时钟同步算法决定,并有可能为负数。相位改变量的计算发生在每个周期内,但修正仅应用在奇数通信周期的末尾。

在频率纠正中,需要使用两个通信循环的测量值。这些测量值之间的差值反映每个通信循环中的时钟偏差变化。它通常用于计算双循环结束时的纠正值。在整个后来的两个通信周期中,都使用该纠正值。

2.7唤醒与启动

为了节省资源,部分节点处于不工作状态时,进入“节电模式”。当这些节点需要再次工作时,就需要“唤醒”它们。主机可以在通信信道上传输唤醒模式,当节点接收到唤醒特征符(WakeupSymbol)后,主机处理器和通信控制器才进行上电。

在通信启动执行之前,整个簇需要被唤醒。启动节点工作需要在所有通道上同步执行。初始一个启动过程的行为被称为冷启动(Coldstart),能启动一个起始帧的节点是有限的,它们称作冷启动节点(ColdstartNode)。在至少由三个节点组成的簇中,至少要有三个节点被配置为冷启动节点。冷启动节点中,主动启动簇中消息的节点称之为主冷启动节点(LeadingColdstartNode),其余的冷启动节点则称之为从冷启动节点(FollowingColdstartNode)。

当节点被唤醒并完成初始化后,它就可以在相应的主机控制命令发出之后进入启动程序。在非冷启动节点接收并识别至少两个相互通信的冷启动节点前,非冷启动节点一直等待。同时,冷启动节点监控两个通信通道,确定是否有其他的节点正在进行传输。当检测到通信信道没有进行传输时,该节点就成为主冷启动节点。

冷启动尝试以冲突避免操作符(CollisionAvoidanceSymbol)开始,只有传输CAS的冷启动节点能在最开始的四个周期传输帧。主冷启动节点先在两个通道上发送无格式的符号(一定数量的无效位),然后启动集群。在无格式符号发送完毕后,主冷启动节点启动该节点的时钟,进入第一个通信周期。从冷启动节点可以接收主冷启动节点发送的消息,在识别消息后,从冷启动节点便可确认主冷启动节点发送的消息的时槽位置。然后等待下一个通信周期,当接收到第二个消息后,从冷启动节点便开始启动它们的时钟。

根据两条消息的时间间隔,测量与计算频率修正值,尽可能地使从启动节点接近主冷启动节点的时间基准。为减少错误的出现,冷启动节点在传输前需等待两个通信周期。在这期间,其余的冷启动节点可继续接收从主冷启动节点及已完成集群冷启动节点的消息。

从第五个周期开始,其余的冷启动节点开始传输起始帧。主冷启动节点接收第五与第六个周期内其余冷启动节点的所有消息,并同时进行时钟修正。在这个过程中没有故障发生,且冷启动节点至少收到一个有效的起始帧报文对,主冷启动节点则完成启动阶段,开始进入正常运行状态。

非冷启动节点首先监听通信信道,并接收信道上传输的信息帧。若接收到信道上传输的信息帧,便开始尝试融入到启动节点。在接下来的两个周期内,非冷启动节点要确定至少两个发送启动帧的冷启动节点,并符合它们的进度。若无法满足条件,非冷启动节点将退出启动程序。非冷启动节点接收到至少两个启动节点连续的两组双周期启动帧后,开始进入正常运行状态。非冷启动节点进入正常工作状态,比主冷启动节点晚两个周期。

如下图所示,描述了正确的启动过程。其中,A是主冷启动节点,B是从冷启动节点,C是非冷启动节点。


3FlexRay的应用

3.1FlexRay总线在BMW车系中的应用

(1)FlexRay总线应用概述

在BMW车系F01/F02车型中,通过FlexRay总线系统以跨系统方式实现汽车行驶动态管理系统和发动机管理系统的联网。同时,FlexRay是行驶动态管理系统的综合性主总线系统(图3.1),中央网关模块用于不同总线系统与FlexRay之间的连接(图3.2)。


图3.1FlexRay是行驶动态管理系统的综合性主总线系统


图3.2中央网关模块(ZGM)用于不同总线系统与FlexRay之间的连接

F01/F02车型FlexRay总线系统的拓扑结构如图3.3所示。根据车辆配置情况,ZGM带有一个或两个星形连接器,每个星形连接器都有4个总线驱动器。总线驱动器将控制单元数据通过通信控制器传输给中央网关模块(ZGM)。根据FlexRay控制单元的终端形式,总线驱动器通过两种方式与这些控制单元相连。


图3.3F01/F02车型FlexRay总线系统的拓扑结构

AL—主动转向系统BD—总线驱动器DME—数字式发动机电子系统DSC—动态稳定控制系统EDCSHL—左后电子减振器控制系统卫星式控制单元EDCSHR—右后电子减振器控制系统卫星式控制单元EDCSVL—左前电子减振器控制系统卫星式控制单元EDCSVR—右前电子减振器控制系统卫星式控制单元HSR—后桥侧偏角控制系统ICM—集成式底盘管理系统SZL—转向柱开关中心VDM—垂直动态管理系统ZGM—中央网关模块

(2)终端电阻的设置

与大多数总线系统一样,为了避免在导线上产生信号反射,FlexRay上的数据导线两端也使用了终端电阻(作为总线终端)。这些终端电阻的阻值由数据传输速率和导线长度决定。终端电阻位于各个控制单元内部。

如果一个总线驱动器上仅连接一个控制单元(例如SZL与总线驱动器BDO相连),则总线驱动器和控制单元的接口各有一个终端电阻(图3.4)。中央网关模块的这种连接方式称为“终止节点终端”。


图3.4终止节点终端内部的终端电阻

如果控制单元上的接口不是物理终止节点(例如总线驱动器BD2上的IEC、ICM和DME),而是形成环路,则每个总线路径端部的两个组件内部必须设置终端电阻(图3.5)。

图3.5形成环路的FlexRay终端电阻的设置

这种连接方式既用于中央网关模块,也用于一些控制单元。但是形成环路的控制单元还使用一个“非终止节点终端”来获取数据。受这种终端形式的电阻/电容器电路所限,无法通过测量技术在控制单元插头上对其进行检查。通过测量(无电流)FlexRay总线确定导线或终端电阻时,必须使用车辆电路图。

免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系