从上面的简述可见,在保证所有节点数据的一致性上,二者都是要靠其他措施的,而这些可能的措施(例如组籍算法,membership algorithm)都有待讨论,对错误的约束仅限于逐步退化的策略。
2.5 帧出错率
总线传送中的出错来源于各种干扰,除了前面分析的信号电平、采样过程、共模电压以外,来自电源的传导干扰也可能使通信控制器工作异常而通信失效,所以不能仅以物理层的一些指标作完整的判断。帧的出错概率对应用有很大影响,它涉及出错以后该怎么办的问题。帧的出错概率与帧长成比例关系,CAN2.0A的最大帧长为133位,FlexRay的最大帧长为2 625位(254字节数据+8字节开销+5个起始/停止位,这里1字节=10位)。假设二者的误码率相同,那么FlexRay的帧出错率PF约为CAN(PC)的20倍。虽然FlexRay帧可传送的数据多得多,但是一个帧错了,其中的消息便全部不能利用,这种消息捆绑在一起的特性,大大增加了出错的机会。如果将FlexRay像CAN那样传送短帧,那么帧的效率会比CAN还低,存放静态段调度表的硬件部分更大。如果将来由于ECU内处理器更强大,一个节点发送的消息更多,那么这种长帧有用途,但是出错概率的增大仍是缺点。另外,用长帧传短消息涉及消息在帧内的编排方法,这种灵活性必然要求有高级通信层的统一约束,否则会带来修理、供货、管理上的不便与成本的增加。这可能是漫长的路,在统一之前仍然是各汽车厂专用的封闭的高层协议,几乎没有留给外人插足的空间。
3 与FlexRay总线的比较
3.1 单信道应用
出错自动重发是CAN总线的一大特点。FlexRay协议的网络拓扑结构包括总线方式,但是用2个信道还是1个与性能和成本关系很大。FlexRay的设计是用2个信道同时传送来保证传送的正确性,因为它不像CAN有出错重发的功能。2个通道同时出错的概率比较小,不考虑出错重发时丢帧也不多。如果考虑2个信道同时出错而要求重发,则必须在应用层处理,而在动态时隙中传送请求与重发,不是一件容易的事,也推迟了送达时间。如果FlexRay只用一个信道来完成,出错概率较大,为了简化应用可以采用重复传送的方法(即时间冗余),在2次或多次传送中只要有1次成功便可。但是这样做相当于把FlexRay的带宽降了下来,例如减为1/2或1/3。这并不意味着2个信道时吞吐量仅为10 Mbps或更小,因为可以在其中一个信道安排较多的动态段,用于出错消息的重发请求与重发,即仅传送出错的部分。
3.2 安全攸关应用的额外要求
对FlexRay这样的时间触发通信协议,其错误约束机制中已尽量考虑了各种可能的出错情况,防止一个节点的发送超出预定给它的时间窗口。为了提高防错的能力,另外设计了总线监守。总线监守有自己的时钟线路和与节点发送的调度表,它控制该节点的总线驱动器,仅在容许的时间窗口里让总线驱动器工作。这种机制给防止冲突构成了双保险,但是增加了系统的成本,所以把它作为选件。在FlexRay中有2种总线监守: 一种是本地总线监守,即与节点靠近的地方,甚至是可以做在同一硅片上的总线监守;另一种是远方的星型耦合器中的集中式总线监守。在总线式应用中有关的是本地总线监守。虽然总线监守要做的事少一些,但是它也要有时间同步的相关机制,以及启动和从休眠中唤醒的算法。为实现这些功能,从总线上接收数据的部分就是必不可少的。由于仅少了发送部分,FlexRay甚至提到过一种可能:将控制芯片设计成可组态的,既可用作通信控制器,又可以用作总线监守。这就说明了总线监守的结构是复杂的、高成本的。有的FlexRay文献中提到,可以将安全攸关的节点与要求稍低的节点连在同一总线上,要求低的节点可以不配总线监守。这种讲法是不正确的,因为根据木桶原理,一段总线上通信的冲突可能性由最有可能引起冲突的节点决定,安全要求低的节点发送超时会引起总线上的冲突,影响安全攸关消息的传送。
4 小结
目前在车内总线技术的竞争方面,CAN总线的主要对手是FlexRay总线,因此与FlexRay总线在单信道应用上的比较是不可避免的。因为在一个信道上传送FlexRay 的帧出错率高很多,又没有出错自动重发的机制,所以FlexRay总线要减少出错就必须重复发送,以时间备份的方式纠错。经过FlexRay扩展字节与时间备份的折扣,有效的数据传送速率已降到4 Mbps;再加上其他开销,带宽还会减小。另一方面,时间触发协议的调度表的求解在负载越大时越困难,不可能用足4 Mbps。FlexRay总线的通道长度最长为24 m[3],如果CAN总线也限于24 m,则根据每米信号传送迟后约5 ns计算,CAN位时间中传送段的通道传送部分为240 ns。若设计驱动器的响应时间为40 ns左右(如SJA1000),那么CAN总线的数据传输速率达到2~3 Mbps也是可能的,虽然ISO118981限定1 Mbps为上限,但它并非技术的极限。
FlexRay总线在抗共模干扰上比CAN总线强,但是出错并不仅由共模干扰引起,例如来自电源的传导干扰也会引起包括比较器在内的的所有电路出错,所以并不能确定FlexRay总线的硬件可靠性高于CAN总线。在保证传送数据的一致性方面,2种协议都要有应用层的解决办法,FlexRay总线并未提供直接可用的机制。作为通信的下层,它们都采取的是性能逐步退化的策略。也有人在研究冗余通道、星形拓扑等措施在CAN总线中如何实现,并非不可能。
就CAN总线而言,FlexRay总线是一种挑战,但是在单信道的总线拓扑应用中FlexRay总线并不构成威胁。由于目前高档车内已经用了不止一个CAN总线系统,用双信道的FlexRay取代多个CAN总线系统有可能在性价比上取得进展,但是与现在生产的应用CAN总线的ECU存在兼容问题,且成本较高,这些问题的解决还有待时日。尽管CAN总线有一定局限,甚至还有漏洞,但对CAN总线的改进还在继续,在未来的5~10年里CAN总线仍然有很大的性价比优势。
编者注: 本文为期刊缩略版,全文见本刊网站www.mesnet.com.cn。
参考文献
[1] Texas Instruments. Interface Circuits for TIA/EIA485(RS485) Design Notes. (literature number SLLA036B),200206.
[2] ISO 118982—2003 Road vehicles:Controller area network(CAN) Part 2: High speed mediumaccess unit.
[3] FlexRay Consortium. FlexRay Communications System Electrical Physical Layer Specification Version 2.1 Revision A, 2005.
[4] CiA :DS102 Baudrate, RUCAN02.pdf.
[5] FlexRay Consortium. FlexRay Communications System Protocol Specification Version 2.1 Revision A, 2005.
[6] Eushiuan Tran. MultiBit Error Vulnerabilities in the Controller Area Network Protocol. PA: Carnegie Mellon University Pittsburgh, 199905.
[7] Ferreira J,Oliveira A,Fonseca P,et al. An Experiment to Assess Bit Error Rate in CAN[C]. Proceedings of RTN 20043rd International Workshop on RealTime Networks,200406:1518.
本文关键字:能力 电工文摘,电工技术 - 电工文摘