四、FlexRay总线网络技术
1.FlexRay总线的概念
随着汽车电子电器架构复杂度的提升,尤其是当前辅助驾驶系统、无人驾驶技术的快速发展,传统的LIN、CAN总线无法满足高带宽的要求,也不能解决该问题,因此一种新的总线FlexRay诞生了。FlexRay关注的是当今汽车行业的一些核心需求,包括更快的数据速率、更灵活的数据通信、更全面的拓扑选择和容错运算。FlexRay的出现和发展离不开2000年由戴姆勒集团(Daimler AG)、宝马(BMW)、摩托罗拉(Motorola)和飞利浦(Philips)创建的FlexRay联盟的推动。该联盟的目标是开发一种独立于OEM、确定性和容错的FlexRay通信标准,该联盟的每个成员都可以使用该标准而无须支付许可费。目前,FlexRay联盟的核心成员包括:博世(Bosch)、宝马(BMW)、戴姆勒集团(Daimler AG)、通用(GM)、大众(Volkswagen)、恩智浦(NXP)。FlexRay联盟在2010年发布了3.0.1版规范,开始推动作为ISO标准,并在2013年发布了ISO 17458。
第一款采用FlexRay的量产车于2006年底在BMW X5中推出,应用在电子控制减振系统中(图2-14)。国内领克等车型上也逐渐应用。
图2-14 FlexRay在BMW X5中的应用
2.FlexRay总线的特点
FlexRay是专为车内局域网设计的一种具备故障容错的高速可确定性车载总线系统,采用了基于时间触发的机制,并且具有高带宽、容错性好等特点,在实时性、可靠性及灵活性方面都有很大的优势,非常适用于安全性要求较高的线控场合及带宽要求高的场合。其具有如下特点:
(1)高速率和容错性
FlexRay支持两通道,可通过一个或两个通道进行数据传输,单个通道的数据传输速率可达10Mbit/s,通过两通道平行传输数据时可达20Mbit/s;也可通过双通道传输相同的数据(真实情况大多应用的方式),当其中某个通道出现故障或信息有误时,另一通道可继续正常传输,并影响整个网络的数据通信,通过这种冗余备份实现很好的容错性。
(2)确定性
FalexRay是一种时间触发式的总线系统,符合时分多址(Time Division Multiple Access,TDMA)的原则,因此在时间控制区域内,时隙会分配给确定的消息,即会将规定好的时间段分配给特定的消息,时隙是经固定周期重复的,也就是说信息在总线上的时间可以被预测出来,因此保证了其确定性。这就意味着控制信号是根据预定义的时间进度传输的,无论系统外部发生什么情况,都不会产生计划外事件。在确定性算法中,始终会预先定义正确的输出结果,这些结果是基于特定输入的。
(3)灵活性
FlexRay除了支持时间触发式通信外,还可通过事件触发来进行数据的传输。例如对于时间要求不高的信息,可配置在事件控制区域内传输,可形成以时间触发为主,兼顾事件触发的灵活特性。
3.FlexRay总线的数据传输及帧格式
FlexRay规范定义了OSI参考模型中的物理层和数据链路层,每个FlexRay节点通过一个FlexRay Controller(控制器)和两个FlexRay Transceivers(用于通道冗余)与总线相连。FlexRay Controller负责FlexRay协议中的数据链路层,FlexRay Transceivers则负责总线物理信号接收发送。FlexRay可采用屏蔽或不屏蔽的双绞线,每个通道有两根导线,即总线正(Bus-Plus,BP)和总线负(Bus-Minus,BM)组成,采用不归零法(Non-Return to Zero,NRZ)进行编码。
可通过测量BP和BM之间的电压差识别总线状态,这样可减少外部干扰对总线信息的影响,因这些干扰同时作用在两根导线上可相互抵消。每一通道需使用80~110Ω的终端电阻。
FlexRay的帧格式主要由起始段、有效负载段和结束段三大部分构成,见表2-2。
表2-2 FlexRay帧格式
(1)起始段
起始段由40个位构成,包括5个位的状态位(Status Bits),11个位的帧ID(数据标志符,定义了在时间窗口Slot中发送的号码,每个通道数据标志符需唯一),7个位的工作区长度(Payload length,指示该帧含有的有效数据长度,在每个Cycle下的静态区中,每帧的数据长度是相同的,在动态区的长度则是不同的),11个位的头部校验码(Hedaer CRC,用于起始段冗余校验,检查传输中的错误)和6个位的循环计数器(Cycle count)。其中,5位的Status Bits包含4类指示符:净荷指示位(Payload Preamble Indicator)、空帧指示位(Null Frame Indicator,指明该帧是否为无效帧)、同步帧指示位(Sync Frame Indicator,指明该帧是否为一个同步帧)和起始帧指示位(Startup Frame Indicator,指明该帧是否为起始帧)。
(2)有效负载段
有效负载段包含要传输的有效数据,有效数据长度最大为254B。
(3)结束段
结束段包含24位的检验域,是由起始段和有效负载段计算得出的CRC校验码。计算CRC时,根据网络传输顺序从保留位到有效负载段的最后一位放到CRC生成器中进行计算。
4.FlexRay总线的拓扑结构
FlexRay总线的拓扑结构主要分为3种:总线形、星形、混合形。
一般来说,FlexRay的节点可以支持双信道,因此可以分为单信道和双信道两种系统。在双信道系统中,并非所有的节点都需要和两个信道相连接。总线形结构即FlexRay节点挂载于总线之上,节点可以选择连接双总线或者单总线进行连接,通过总线进行多数据共享,总线上的任意一个节点都可以接收到总线的数据,节点之间发出的信息也可以被总线上的多个节点接收。其结构如图2-15所示。
图2-15 总线形拓扑结构
星形结构可在接收器和发送器之间提供点到点连接,该连接方式可在高传输速率和长传输线路中提高数据的传输速率和冗余性能,此外还可以实现错误分离功能。如果信号传输使用双线路短路,则总线系统在该信道内不能进行下一步通信。星形结构中只有连接短路的节点才会受到影响,其余节点均可与其他节点继续通信工作。其结构如图2-16所示。
混合形结构由总线形和星形拓扑结构混合构成,可以兼顾传输距离和传输性能,适用于较为复杂的车载网络类型。其结构如图2-17所示。
图2-16 星形拓扑结构
图2-17 混合形拓扑结构
5.FlexRay总线的应用
FlexRay总线目前应用在宝马公司的X5运动型多功能汽车的Adaptive Drive系统中,其系统结构如图2-18所示。该系统基于恩智浦(NXP)半导体的32位FlexRay控制器,该控制器可以监测车辆的速度、转向盘转角、纵向加速度、横向加速度、车身高度、车身加速度等多个因素。驾驶员可以选择“Sport”或“Comfort”驾驶模式,Adaptive Drive可以通过液压辅助调节装置调整悬架高度、防侧倾杆等元件来调整车辆的侧倾角和阻尼。宝马选择了使用10Mbit/s速率的FlexRay来实现这项功能。
图2-18 宝马Adaptive Drive系统
1—电控单元 2—位置传感器 3—液压辅助装置