1、0FlexRay 总线原理及应用1 FlexRay 总线介绍1.1 FlexRay 产生及发展随着汽车中增强安全和舒适体验的功能越来越多,用于实现这些功能的传感器、传输装置、电子控制单元(ECU)的数量也在持续上升。如今高端汽车有 100 多个 ECU,如果不采用新架构,该数字可能还会增长,ECU 操作和众多车用总线之间的协调配合日益复杂,严重阻碍线控技术(X-by-Wire,即利用重量轻、效率高、更简单且具有容错功能的电气/ 电子系统取代笨重的机械/液压部分)的发展。即使可以解决复杂性问题,传统的车用总线也缺乏线控所必需的确定性和容错功能。例如,与安全有关的信息传递要求绝对的实时,这类高优先
2、级的信息必须在指定的时间内传输到位,如刹车,从刹车踏板踩下到刹车起作用的信息传递要求立即正确地传输不允许任何不确定因素。同时,汽车网络中不断增加的通信总线传输数据量,要求通信总线有较高的带宽和数据传输率。目前广泛应用的车载总线技术 CAN、LIN 等由于缺少同步性,确定性及容错性等并不能满足未来汽车应用的要求。宝马和戴姆勒克莱斯勒很早就意识到了,传统的解决方案并不能满足汽车行业未来的需要,更不能满足汽车线控系统(X-by-Wire)的要求。于是在 2000 年 9 月,宝马和戴姆勒克莱斯勒联合飞利浦和摩托罗拉成立了 FlexRay 联盟。该联盟致力于推广 FlexRay 通信系统在全球的采用,
3、使其成为高级动力总成、底盘、线控系统的标准协议。其具体任务为制定 FlexRay 需求定义、开发FlexRay 协议、定义数据链路层、提供支持 FlexRay 的控制器、开发 FlexRay 物理层规范并实现基础解决方案。1.2 FlexRay 特点FlexRay 提供了传统车内通信协议不具备的大量特性,包括: (1)高传输速率:FlexRay 的每个信道具有 10Mbps 带宽。由于它不仅可以像 CAN 和 LIN 网络这样的单信道系统一般运行,而且还可以作为一个双信道系统运行,因此可以达到 20Mbps 的最大传输速率,是当前 CAN 最高运行速率的 20 倍。 (2)同步时基:FlexR
4、ay 中使用的访问方法是基于同步时基的。该时基通过协议自动建立和同步,并提供给应用。时基的精确度介于 0.5s 和 10s 之间(通常为 12s) 。 (3)确定性:通信是在不断循环的周期中进行的,特定消息在通信周期中拥有固定位置,因此接收器已经提前知道了消息到达的时间。到达时间的临时偏差幅度会非常小,并能得到保证。 (4)高容错: 强大的错误检测性能和容错功能是 FlexRay 设计时考虑的重要方面。FlexRay 总线使用循环冗余校验 CRC(Cyclic redundancy cheek)来检验通信中的差错。FlexRay 总线通过双通道通信,能够提供冗余功能,并且使用星型拓扑可完全解决
5、容错问题。 (5)灵活性:在 FlexRay 协议的开发过程中,关注的主要问题是灵活性,反映在如下几个方面:支持多种方式的网络拓扑结构;消息长度可配置:可根据实际控制应用需求,为其设定相应的数据载荷长度;1使用双通道拓扑时,即可用以增加带宽,也可用于传输冗余的消息;周期内静态、动态消息传输部分的时间都可随具体应用而定。2 FlexRay 通讯协议和机制原理2.1 节点架构ECU(Electronic Control Unit) ,即节点 node,是接入车载网络中的独立完成相应功能的控制单元。主要由电源供给系统(Power Supply) 、主处理器(Host) 、固化 FlexRay 通信控
6、制器(Communication Controller) 、可选的总线监控器(Bus Guardian)和总线驱动器(Bus Driver)组成,如图所示。主处理器提供和产生数据,并通过 FlexRay 通信控制器传送出去。其中 BD 和 BG 的个数对应于通道数,与通讯控制器和微处理器相连。总线监控逻辑必须独立于其他的通讯控制器。总线驱动器连接着通信控制器和总线,或是连接总线监控器和总线。图 2.1 FlexRay 节点节点的两个通讯过程为:(1)发送数据:Host 将有效的数据送给 CC,在 CC 中进行编码,形成数据位流,通过 BD 发送到相应的通道上。(2)接受数据:在某一时刻,由 B
7、D 访问栈,将数据位流送到 CC 进行解码,将数据部分由CC 传送给 Host。2.2 拓扑结构FlexRay 的拓扑主要分为 3 种:总线式、星型、总线星型混合型。通常,FlexRay 节点可以支持两个信道,因而可以分为单信道和双信道两种系统。在双信道系统中,不是所有节点都必须与两个信道连接。与总线结构相比,星状结构的优势在于:它在接收器和发送器之间提供点到点连接。该优势在高传输速率和长传输线路中尤为明显。另一个重要优势是错误分离功能。例如,如果信号传输使用的两条线路短路,总线系统在该信道不能进行进一步的通信。如果使用星状结构,则只有到连接短路的节点才会受到影响,其它所有节点仍然可以继续与其
8、它节点通信。图 2.2 总线式 图 2.3 星型2图 2.4 混合型2.3 数据帧一个数据帧由头段(Header Segment)、有效负载段(Payload Segment)和尾段(Trailer Segment)三部分组成。 FlexRay 数据帧格式如图 2.5 所示。图 2.5 FlexRay 数据帧结构(1)头段共由 5 个字节(40 位)组成,包括以下几位:1.保留位(1 位):为日后的扩展做准备;2.负载段前言指示(1 位):指明负载段的向量信息;3.无效帧指示(1 位):指明该帧是否为无效帧;4.同步帧指示(1 位):指明这是否为一个同步帧;5.起始帧指示(1 位):指明该帧是
9、否为起始帧;6.帧 ID(11 位):用于识别该帧和该帧在时间触发帧中的优先级;7.负载段长度(7 位):标注一帧中能传送的字数;8.头部 CRC(11 位) :用于检测传输中的错误;9.周期计数(6 位):每一通信开始,所有节点的周期计数器增 1。(2)负载段是用于传送数据的部分,FlexRay 有效负载段包含 0254 个字节数据。对于动态帧,有效负载段的前两个字节通常用作信息 ID,接受节点根据接受的 ID 来判断是否为需要的数据帧。对于静态帧,有效负载段的前 13 个字节为网络管理向量(NM),用于网络管理。(3)尾段只含有 24 位的校验域,包含了由头段与有效负载段计算得出的 CRC
10、 校验码。计算CRC 时,根据网络传输顺序将从保留位到负载段最后一位的数据放入 CRC 生成器进行计算。32.4 编码与解码编码的过程实际上就是对要发送的数据进行相应的处理“打包”的过程,如加上各种校验位、ID 符等。编码与解码主要发生在通讯控制器与总线驱动器之间,如图 2.6。图 2.6 编码与解码其中 RxD 位接受信号,TxD 为发送信号,TxEN 为通讯控制器请求数据信号。信息的二进制表示采用“不归零” 码。对于双通道的节点,每个通道上的编码与解码的过程是同时完成的。图 2.7 静态数据帧编码TSS(传输启动序列):用于初始化节点和网络通信的对接,为一小段低电平。FSS(帧启动序列):
11、用来补偿 TSS 后第一个字节可能出现的量化误差,为一位的高电平BSS(字节启动序列):给接受节点提供数据定时信息,由一位高电平和一位低电平组成。FES(帧结束序列):用来标识数据帧最后一个字节序列结束,由一位低电平和一位高电平组成。图 2.8 动态帧编码DST(动态段尾部序列):仅用于动态帧传输,用来表明动态段中传输时隙动作点的精确时间点,并防止接受段过早的检测到网络空闲状态。由一个长度可变的低电平和一位高电平组成。将这些序列与有效位(从最大位 MSB 到最小位 LSB)组装起来就是编码过程,最终形成能够在网络传播的数据位流。2.5 媒体访问方式在媒体接入控制中,一个重要的概念就是通信周期(
12、Communication Cycle) ,如图所示。一个通信周期由静态段(Static Segment)、动态段(Dynamic Segment)、特征窗(Symbol Window)和网络空闲时间(Network Idle Time )4 个部分组成。FlexRay 提供两种媒体接入时序的选择:静态段采用时分多址方式(TDMA),由固定的时隙数组成,不可修改,且所有时隙的大小一致。用来传输周期性的数据信息;动态段采用灵活的时分多址(FTDMA),由较小的时隙组成,可根据需要扩展变动,一般用于传输事件控制的消息。符号窗用于传输特征符号。网络空闲时间用于时钟同步处理。4图 2.11 媒体访问方
13、式仲裁层包含有仲裁网络,它构成了 FlexRay 媒介仲裁的主干部分。在静态段中,仲裁网络由叫做静态时槽(Static Slots)的连续时间间隔组成,在动态段中,由称为微型时槽 (Minislots)的连续时间间隔组成。仲裁网络层是建立在由宏节拍(Marcotick)组成的宏节拍层之上的。每个本地宏节拍的时间都是一个整数倍的微节拍的时间。已分配的宏节拍边缘叫做行动点(Action points)。行动点是一些特定的时刻,在这些时刻上,将会发生传输的开始和结束。 微节拍层是由微节拍组成的。微节拍是由通信控制器外部振荡器时钟刻度,选择性地使用分频器导出的时间单元。微节拍是控制器中的特殊单元,它在
14、不同的控制器中可能有不同的时间。节点内部的本地时间间隔尺寸就是微节拍。 2.6 时钟同步如果使用基于 TDMA 的通信协议,则通信媒介的访问在时间域中控制。因此,每个节点都必须保持时间同步,这一点非常重要。所有节点的时钟必须同步,并且最大偏差(精度) 必须在限定范围内,这是实现时钟同步的前提条件。时钟偏差可以分为相位和频率偏差。相位偏差是两个时钟在某一特定时间的绝对差别。频率偏差是相位偏差随时间推移的变化,它反映了相位偏差在特定时间的变化。FlexRay 使用一种综合方法,同时实施相位纠正和频率纠正,包含两个主要过程:时间同步校正机制(最大时间节拍生成 MTG)和时钟同步计算机制(时钟同步进程
15、 CSP)。MTG 控制时隙初值,即周期计数器和最大时钟节拍的计数器,并对其进行修正。CSP 主要完成一个通信循环开始的初始化,测量并存储偏差值,计算相位和频率的修正值。图 2.12 时钟同步机制相位修正仅在奇数通信周期的 NIT 段执行,在下一个通信周期起始前结束。相位改变量指明了添加到 NIT 相位修正段的微节拍数目,它的值由时钟同步算法决定,并有可能为负数。相位改变量的计算发生在每个周期内,但修正仅应用在奇数通信周期的末尾。在频率纠正中,需要使用两个通信循环的测量值。这些测量值之间的差值反映每个通信循环中5的时钟偏差变化。它通常用于计算双循环结束时的纠正值。在整个后来的两个通信周期中,都
16、使用该纠正值。2.7 唤醒与启动为了节省资源,部分节点处于不工作状态时,进入“节电模式”。当这些节点需要再次工作时,就需要“唤醒”它们。主机可以在通信信道上传输唤醒模式,当节点接收到唤醒特征符(Wakeup Symbol)后,主机处理器和通信控制器才进行上电。在通信启动执行之前,整个簇需要被唤醒。启动节点工作需要在所有通道上同步执行。初始一个启动过程的行为被称为冷启动(Coldstart),能启动一个起始帧的节点是有限的,它们称作冷启动节点(Coldstart Node)。在至少由三个节点组成的簇中,至少要有三个节点被配置为冷启动节点。冷启动节点中,主动启动簇中消息的节点称之为主冷启动节点(L
17、eading Coldstart Node),其余的冷启动节点则称之为从冷启动节点(Following Coldstart Node) 。当节点被唤醒并完成初始化后,它就可以在相应的主机控制命令发出之后进入启动程序。在非冷启动节点接收并识别至少两个相互通信的冷启动节点前,非冷启动节点一直等待。同时,冷启动节点监控两个通信通道,确定是否有其他的节点正在进行传输。当检测到通信信道没有进行传输时,该节点就成为主冷启动节点。冷启动尝试以冲突避免操作符(Collision Avoidance Symbol)开始,只有传输 CAS 的冷启动节点能在最开始的四个周期传输帧。主冷启动节点先在两个通道上发送无格
18、式的符号(一定数量的无效位),然后启动集群。在无格式符号发送完毕后,主冷启动节点启动该节点的时钟,进入第一个通信周期。从冷启动节点可以接收主冷启动节点发送的消息,在识别消息后,从冷启动节点便可确认主冷启动节点发送的消息的时槽位置。然后等待下一个通信周期,当接收到第二个消息后,从冷启动节点便开始启动它们的时钟。根据两条消息的时间间隔,测量与计算频率修正值,尽可能地使从启动节点接近主冷启动节点的时间基准。为减少错误的出现,冷启动节点在传输前需等待两个通信周期。在这期间,其余的冷启动节点可继续接收从主冷启动节点及已完成集群冷启动节点的消息。从第五个周期开始,其余的冷启动节点开始传输起始帧。主冷启动节
19、点接收第五与第六个周期内其余冷启动节点的所有消息,并同时进行时钟修正。在这个过程中没有故障发生,且冷启动节点至少收到一个有效的起始帧报文对,主冷启动节点则完成启动阶段,开始进入正常运行状态。非冷启动节点首先监听通信信道,并接收信道上传输的信息帧。若接收到信道上传输的信息帧,便开始尝试融入到启动节点。在接下来的两个周期内,非冷启动节点要确定至少两个发送启动帧的冷启动节点,并符合它们的进度。若无法满足条件,非冷启动节点将退出启动程序。非冷启动节点接收到至少两个启动节点连续的两组双周期启动帧后,开始进入正常运行状态。非冷启动节点进入正常工作状态,比主冷启动节点晚两个周期。如下图所示,描述了正确的启动
20、过程。其中,A 是主冷启动节点,B 是从冷启动节点,C 是非冷启动节点。6图 2.13 FlexRay 启动过程3 FlexRay 的应用目前 FlexRay 最主要的应用领域即是汽车,业界正致力于在汽车设计中转向全电子系统,它将通过创新的智能驾驶辅助系统为司机和乘员提供更高的安全性以及更舒适的车内环境。而这种智能系统必然需要大量的采样、通信以及协调控制,对车载网络提出了较高的要求,这也应该是FlexRay 联盟研发 FlexRay 的动力所在。(1)车载骨干网络FlexRay 的拓扑结构非常灵活,包括单/多通道总线结构,单/ 多通道星型结构一节多种不同总线、星型混合结构等,网络可与现有其他各
21、种总线(如 LIN,CAN 等)系统兼容。同时,其灵活的系统结构,也可使设计者针对不同的应用背景选择不同的可靠等级以控制成本。(2)线控系统FlexRay 的重要目标应用之一是线控操作(如线控转向、线控制动等) ,即利用容错的电气/电子系统取代机械/液压部分。汽车线控系统是从飞机控制系统引申而来的,飞机控制系统中提到的Fly-by-Wire 是一种电线代替机械的控制系统,它将飞机驾驶员的操纵控制和操作命令转换成电信号,利用机载计算机控制飞机的飞行。这种控制方式引入到汽车驾驶上,就称为 Drive-by-Wire(电控驾驶),引入到制动上就产生了 Brake-by-Wire(电控刹车) ,引入到
22、转向控制上就有 Steering-by-Wire(电控转向) ,因此统称为 X-by-Wire。这些创新功能的基础是一种能够满足严格容错要求的宽带总线结构,而 FlexRay 的高传输速率和良好的容错性使其具有该方面的应用潜力。线控转向系统结构框图如下图所示:图 2.14 线控转向系统结构(3)工业领域前景7虽然现在现场总线种类繁多,各种总线处于共存状态,工业以太网的应用也越来越广泛。但是由于现场总线几乎覆盖了所有连续、断续领域,不同运用领域的需求各异,还没有哪种工业总线可以完全适用于生产领域的各个方面。因此, FlexRay 总线虽然不能涵盖工业生产的全部领域,但一定可以像其他总线技术那样,
23、在特定的领域中发挥优势,比如汽车制造领域以及对实时性可靠性有很高要求的检测控制领域。例如,可将 FlexRay 总线用于矿井集散式网络监控系统。根据矿井的实际情况,可以采用 FlexRay 总线,建立一种集散式混合网络控制系统。以实现监控数据和控制指令的实时高速传输,并可保证网络具有较高的鲁棒性,能够在突发事件下安全可靠运行,从而构建煤矿矿井上下可靠高效的安全预警机制和管理决策监控平台,形成兼容性强、有扩展和升级余量的开放性监测控制系统。系统可以分为井下和井上两部分。井上采用 FlexRay 星型或者多星型拓扑结构,以进一步提高数据的传输速度和容错能力;井下使用 FlexRay 的总线型拓扑结
24、构,以方便连接矿井中众多的设备检测装置和传感器等,减少布线长度,节约成本,并使系统具有分散性和完全可互操作等特点。此外,FlexRay 具有很强的灵活性,可以方便地增加改变节点网络布置,能够适应移动和随机介入检测设备的需要,符合煤矿监控场所流动性大的特点。(4)企业上的实际应用在企业方面,首个投入生产的 FlexRay 应用是 BMW 公司 X5 运动型多功能轿车(SAV)上名为Adaptive Drive 的系统。Adaptive Drive 基于飞思卡尔半导体的 32 位 FlexRay 微控制器,它可以监视有关车辆速度、方向盘转度、纵向和横向加速度、车身和轮子加速度和行驶高度的数据。当驾
25、驶员按下按钮选择“运行” 或“ 舒适 ”驾驶时,Adaptive Drive 会通过控制抗侧倾杆中的旋转发动机和减震器上的电磁阀来相应调整车辆的侧角和阻尼,控制单元相互作用以防止紧急翻车,BMW 工程师选择了带 10Mbps 带宽的 FlexRay 以获得这些控制单元之间的快速数据传输。 宝马 7 系中配备的博世 ESP 至尊版是全球第一个带有 FlexRay 界面的制动控制系统。通过这一新数据总线,系统能够与相应的传感器、自适应巡航控制(ACC) 、集成底盘管理系统(ICM) 、发动机以及传输控制单元通信。 新款奥迪 A8 轿车采用恩智浦的 FlexRay、CAN 、LIN 和 SBC 收发
26、器打造车载网络(IVN ) ,为轿车增加了高级驾驶辅助系统、自适应巡航控制和主动底盘稳定系统等一系列最新应用。恩智浦的IVN 技术通过集线器连接众多电子器件,集线器由几根轻质铜线构成,不仅减轻了车身重量,更节约了油耗。轻质结构还令轿车提速更快、碳排放更低。 尽管 FlexRay 目前还只是应用在豪华车上,但随着通信要求的进一步提高和技术的进一步成熟,其在汽车的普及只是时间的问题。然而,从更长远的角度来看,汽车发展的趋势是实现全自动无人驾驶(或近乎全自动驾驶),这将需要大量的不同功能的传感器、传输装置以及电子控制单元,而这些零部件的相互通信和协调控制则对车载网络提出了更高的要求。因此,FlexRay 及车载网络还有待进一步研究和发展。