理论教育 CAN网络数据一致性解决方案

CAN网络数据一致性解决方案

时间:2023-08-26 理论教育 版权反馈
【摘要】:被动错误状态的存在是CAN网络第一个数据不一致的潜在原因。例如,触发一个阈值的消息在CAN网络中永远不会发送。然而,这种一致性是通过稍微修改错误检测性能和错误传递信号机制来取得的,因此这种解决方案并不真正符合标准CAN网络。在EDCAN中,所有的接收器在接收信息后,重新发送消息来克服发送器失败。已经进行了许多研究,其目的在于提高CAN网络的可靠性和实时属性,因此目前的研究更关注于这些解决方案集成,而不是提供新的解决方案。

CAN网络数据一致性解决方案

被动错误状态的存在是CAN网络第一个数据不一致的潜在原因。许多作者提出了避免这种状态以提高基于CAN的系统可靠性[FERR98、HILM97、RUFI98]。这很容易通过使用一个在许多现代CAN电路提供的信号(称为错误警告通知)来实现。当任何一个错误计数器达到一定值,这被认为是严重干扰的总线(如在参考文献[PHIL]中此值为96)时,就生成这个信号。在它(指节点)进入被动错误状态之前,这是一个很好的关闭节点的时刻,从而确保每个节点要么是帮助实现数据一致性,要么断开连接。

关于主动错误状态中的不一致性问题,重要的是要记住IMD失效可以很容易容忍,所以它们不需要采用任何特定的机制。正如在CAN文献中所表明的[ETSC01],通过合理地应用程序设计,复制可以被容忍。例如,触发一个阈值的消息在CAN网络中永远不会发送。

相比之下,解决容忍被动错误状态下的IMO明显更复杂。只有一个建议[PROE00]可以消除系统架构最低可能级层面(CAN控制器)上不一致验证的可能性。然而,这种一致性是通过稍微修改错误检测性能和错误传递信号机制来取得的,因此这种解决方案并不真正符合标准CAN网络。

除了这种非标准的解决方案外,还有各种各样的建议旨在提供数据一致性并完全与标准CAN网络兼容。这些解决方案主要是分布式协议——依赖于消息交换。然而,它们在解决的故障模型上是不同的,且其中一些实际上做的事情没有覆盖上面提及的不一致遗漏的所有潜在原因。

例如,参考文献[RUFI98]中提出的解决方案是基于分布式协议的,它只能解决由发送器崩溃引起的IMO问题。具体地说,它们介绍了三个协议:EDCAN、RELCAN和TOTCAN。在EDCAN中,所有的接收器在接收信息后,重新发送消息来克服发送器失败。该协议满足除了总序外的所有原子广播属性,从而提供了可靠的广播[HADZ93]。在RELCAN中,相同的属性采取更有效的方法来得到满足。在成功发送主要信息后,发送器发送一个确认消息。只有在规定的超时情况下,确认信息没有到达接收器,它们才会启动重新传输主要信息。最后,TOTCAN满足包括全序在内的所有原子广播特性。每次接收器得到重复的消息,就把它放在一个队列的尾部。在成功传输主要信息后,发送器发送一条接受消息。当接收器收到接受消息后,就确定了消息在队列中的位置。如果在一个指定的超时范围内接受消息没有到达接收器,那么它们将从队列中删除相应的消息。这些协议的详细描述可以在文献[RUFI98]中找到。(www.daowen.com)

参考文献[LIVA99]提出了一种解决方案,它依赖于专门设计的硬件电路。这个电路是一个专用的电路,称为影子中继发送器(SHARE),它旨在检测比特错误模式——可能意味着不一致帧的验证。一旦发现这些模式,SHARE电路将转发可能损坏的帧,从而即使原来的发送器出故障,也能保证其接收。然后,通过节点实施的排序方案完成总排序。然而,这种解决方案只能解决发送器崩溃引起的IMO问题。

虽然参考文献[PINH03]提出的方案可以明显地扩展到处理第二信道错误引起的IMO问题,但是该方案也只能解决发送器崩溃引起的IMO问题。这个解决方案依赖于两个额外的信息的传播——确认和中断,这有助于节点对帧的传输是否一致达成共识。如果发送器崩溃,那么这个解决方案不能保证可靠的广播,只有一致性。

参考文献[LIMA03]提出的协议是一个一致性的协议,尽管存在不一致遗漏,但它允许CAN网络节点对某些确定的值达成一致。该解决方案既可以容许发送器崩溃引起的IMO问题,也可以容许第二信道错误造成的IMO问题。

重要的是要强调,尚不完美的解决方案可以集成到CAN网络的其他协议中[RODR03b]。已经进行了许多研究,其目的在于提高CAN网络的可靠性和实时属性,因此目前的研究更关注于这些解决方案集成,而不是提供新的解决方案。本章后面所述的一些架构是这种集成方法的很好案例。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈