新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 分布式嵌入系统中的交互一致性

分布式嵌入系统中的交互一致性

作者:时间:2011-03-14来源:网络收藏

  3 CAN在这类应用中的可能性

  3.1 带宽

  对4个轮子节点和1个指令节点(由踏板或其他转发刹车命令,转发由轮子来的轮速信号)构成的互为冗余,要容许1个错时,采用SM算法需要2轮通信,对5个节点需要交换输入数据1次,共25种帧,4个节点交换输出数据1次,共16种帧。如果要求每5 ms进行一次协调,传送41帧,对CAN而言将非常吃紧,这就是经常提到的CAN的带宽局限。这里假设了冗余后的只容许5 ms内有1个错。如果从互为冗余刹车系统的性价比考虑,为了此带宽问题,设立专用的CAN总线也是值得的。

  SM算法实际上对数据的传送有很大的重复,在本例中对一个从节点而言它收到了5次。如果从节点只是瞬时有故障,它一定会收到正确值。按照SM算法,为了对付m个错,需要m+1个从节点,因此虽然互为冗余系统有5个节点,并不需要每个从节点都进行转发。例如取3个从节点转发输入,那么每5 ms就传送36帧,可以缓解带宽瓶颈。如取2个从节点转发,带宽变为每5 ms传送27帧。

  3.2 确定性

  有一种观点认为只有时间触发的通信协议才能满足高可信赖性要求。但这是片面的。在本例中,如果把所有互为冗余系统需要传送的消息都设为较高优先级,那么在总线上它们将像一个长帧不受阻挡延迟,只要带宽容许,就能送达。至于这些消息内部的到达先后,在SM算法中并无影响。更广义地讲,只要把CAN的触发事件与时间一一对应,它也可实现时间触发的功能。利用CAN的竟争发送,有错未发节点的带宽可被其他节点尽早利用,SM算法所需的时限计时器只要一个就够了。

  3.3 错帧漏检

  由于CAN中位填充规则对CRC的影响,根据笔者的研究,它的错帧漏检率较大,远大于Bosch CAN2.0规范的数据。但是由于SM算法中签名的存在,这一问题已免除或缓解。当签名也用本文建议的CRC方法,那么签名错而漏检的情况可以用CAN错帧漏检率同样的方法分析与改进。

  3.4 容错

  SM算法假设发送的消息总能正确送达,通信中可检出错要排除在外。这就需要某种纠错或冗余。CAN的出错自动重发是很好的纠错措施,但它只能应对瞬时干扰,对物理通道上的故障如断线、短路等,需要用容错CAN协议ISO118983的收发器。此种收发器的带宽更小,标准为125 kbps,较好的MAX3054可达250 kbps。如果互为冗余刹车系统的控制周期定为20 ms(即容许20 ms内有一个错)(参考文献[5]中引述的线控转向的容许失控时间为50 ms),那么CAN在满足容许物理故障时还能满足SM算法的带宽要求的。从概率上讲,由于重发而占用的带宽增量并不大。

  4 小结

  互为冗余系统的特点是用重新分配的原理实现故障-安全。并不是所有系统都能采用这种方法。但是在系统中保证数据的是很重要的,例如同一数据可能应用于不同目的的控制系统中,这些系统在分开设计时就默认了数据一定是一致的。如果发生了不一致,这些系统的影响就难以预测。因此SM算法有其现实意义。

  SM算法可以发现节点MCU与通信控制器的传递过程中的错,以及通信中的拜占庭错,这是一个非常重要的特性。由于本文发现了SM算法的签名转述同时具备的二个功能─重复发送和接收认可,使主节点也能与其他节点达到一致,这大大提高了容错实现的简易性。一般地说,拜占庭错难以发现,当双互备份架构输入有拜占庭错时,无法确定谁错而无法实现故障-静默,甚至可能出现互相冲突的输出。采用SM算法,可实现双互备份架构输入的,再借用其他系统的节点的部分计算能力,可用使双互备份架构实现等效的三重备份输出的。这在经济上有巨大意义。

  本文根据总线通信分析了SM算法的实施方法以及CAN在用于SM算法时的一些问题。CAN是成熟的技术,成本较低,尽量扩展其应用是理所当然的事。就互为冗余刹车系统而言,CAN仍然是可以应用的。参考文献[3]提到了一种在2002年还是研制中的时间触发协议,现在看来,可能是FlexRay协议。毫无疑问,FlexRay的带宽优势很大,但是对其的研究还有待深入,例如它的时钟同步依赖于传送电缆上的模拟电平跳变,毛刺可能改变跳变位置,从而破坏整个协议的基础时钟。

  SM算法需要的消息签名转发,均需要MCU的参与,对FlexRay或CAN而言,要高层协议或软件中间件实现,耗费时间,增加中间环节,增加了时间抖动与受干扰可能性,总之效率不高,并不理想,最好是用专门的硬件实现,这是值得探讨的事。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭