说到现在的车载通信系统,虽然FlexRay还是牌桌上的玩家,但是好多人也觉得面对以太网的围堵,价格昂贵,配置复杂的FlexRay手上已经没有什么筹码了,不知道这条flexible的Rayfish(魔鬼鱼)还可以食得几年车间烟火。
功能强大了,配置也更灵活了,但成本也上去了。不光是硬件成本,配置FlexRay相比它的兄弟姐妹总线,要复杂的多,这就需要更多人力和时间。一个技术,它的成本门槛高了,就会阻碍这个技术的大规模输出、推广,没有得到大规模的应用,相对的芯片成本就难以进一步下降,有点马太效应的味道,这也是上图预测FlexRay走不出2020年代的原因之一。但是是否呼声渐起的以太网10BaseT1s真的能取代这些传统的车载总线,我保持谨慎的乐观,同时还有一些疑问,挖个坑后面聊10BaseT1s的时候再聊。
2. 为什么需要FlexRay
这几个系统有个共同的要求,就是实时性要很高,而且必须安全可靠。我踩下刹车,或者转动方向盘,必须在固定的时隙内产生刹车或转向效果。这样的要求,基于Event Triggered的CAN总线很难保证,因为其依靠信息优先级避免冲突,就可能导致总线被更高优先级的信息长时间霸占而导致当前信息的延迟或者发送失败,信息的发送时间是不可确定的。而Flex Ray兼顾Time Triggered和Event Triggered的长处,固定发送周期,在所有ECU全局时基同步和TDMA的基础上保证了统一的通信低延迟。这就保证了在X功能需要通讯时,总能在毫秒级甚至微秒级的时间内得到相应的功能实施。
FlexRay拥有双通道通信的冗余设计。每个通道带宽10Mbps,可以灵活的设置为同一时间点两通道互为备份冗余;也可以选择双通道发送不同的信息达到20Mbps的带宽。这样FlexRay契合了安全和时间紧要的更高阶的应用场景,在动力总成和车身控制也可以应用。在这些场景中CAN总线和LIN总线都不能胜任。关于FlexRay的总线规模和节点容量,看到有说24米有说22米的,没必要细抠,一般达不到这个长度。总线结构下可以容纳22个节点的,星型拓扑结构或者混合结构下,可以容纳64个节点。是的,FlexRay可以配置成不同的拓扑结构。双通道的结构也是可选的,也可以配置单通道的FlexRay总线,处处透着灵活flexible,不管是软件还是硬件,电子还是机械,灵活的功能背后往往都背负着结构复杂二字。
聊TDMA的时候说过时分多址,其实就是把时间切蛋糕。FlexRay一样,把时间蛋糕先按照固定时长的Cycle切开,最长的Cycle也不能超过16毫秒,Cycle标识是6位的,也就是说可以切64份然后循环。到手的Cycle蛋糕块,继续切开三份,静态部分,动态部分和NIT。静态是必须有的,而动态部分则是optional可有可无的,可以通过配置选择。
原文始发于微信公众号(汽车电子与软件):浅谈灵活的魔鬼鱼FlexRay