尽管有特殊的机制——CAN包含错误检测和信号,但是还是报告了有两个障碍影响数据一致性。第一个障碍是出现被动错误状态。根据标准,每当TEC或REC超过给定的阈值时,CAN节点就会进入这种状态。一个处于被动错误状态的CAN节点,不会使用主动错误标志来传递信道错误信号。相反,它会使用一个错误标志——由隐性位组成(所谓的被动错误标志),事实上不能总是强迫其他节点看到这个错误。因此,如果该节点是观测错误的唯一接收器,那么数据不一致性将会出现在网络上,因为它是唯一拒绝该帧的接收器。
数据一致性的第二个障碍出现在主动错误状态,且和错误帧结束(EOF)的最后一点字段的特殊行为相关。每当帧的发送器检测到位的一个错误,那么它就按照已经说明的方法来处理:它在下一个位中开始传递主动错误标志,它认为帧传输错误,且随后重新传输帧。相反,如果1帧的接收器在EOF的最后1bit中检测到一个错误,那么它就把帧当做正确的[RUFI98]。
这种特殊的行为意味着当EOF的倒数第二位的一个错误只被部分节点检测到时,属于这一部分的节点拒绝该帧,并在下一位(实际上它是EOF的最后一位)中生成一个错误标志。因此,这个错误标志不会让其他节点拒绝该帧。因为存在接收器拒绝该帧(那些发现EOF的倒数第二位中的错误)和接收器接受该帧(那些检测到先前节点生成的错误标志)的情况,所以这将违反数据一致性的性质[RUFI98]。
这种不一致情况将导致两种潜在失败中的一种。如果发送器检测信道错误,可以重新发送损坏的帧,那么那些接收到第1帧的接收器将收到两次相同的消息,这种失败称为IMD。相反,如果发送器没有检测到错误或无法重新发送损坏帧,那么有一些节点将永远不会接收到该消息,这种失败被称为IMO。
可能导致IMD和IMO的错误场景在参考文献[RUFI98、PROE00、RODR03a]中进行了深度讨论。根据这些文献可以归纳出在主动错误状态,IMO的失效总是由于以下几种原因之一引起:(www.daowen.com)
•第二个信道的错误使得发送器不可能检测到错误帧——它由检测到第一个信道错误的接收器发布。
•发送器的故障(事故)使得信号传输变得不可能。
•有意减少用于重新传输的时间是由于一些系统要求。这在CAN的实时变化环境中是常见的,因为在时间域中采用了技术来加强错误控制,比如TCAN、TTCAN或FTT-CAN。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。