CAN 2.0B 规范中有一件事我不确定我是否理解正确。
在第 8 章 - 故障限制中 - 关于错误计数器的修改有以下规则:
规则 2:当 RECEIVER 在发送 ERROR FLAG 后检测到“显性”位作为第一位时,RECEIVE ERROR COUNT 将增加 8。
和
规则 6:任何节点在发送 ACTIVE ERROR FLAG、PASSIVE ERROR FLAG 或 OVERLOAD 标志后最多可容忍 7 个连续的“显性”位。在主动错误标志或过载标志的情况下检测到第 14 个连续“显性”位 9 之后,或在检测到被动错误标志之后的第 8 个连续“显性”位之后,以及在每个发送器的每个附加八个连续“显性”位序列之后将其 TRANSMIT ERROR COUNT 增加 8,每个 RECEIVER 将其 RECEIVE ERROR COUNT 增加 8。
那么规则2是否意味着如果节点A发送一个错误帧并且在发送6个显性位(错误标志)之后它检测到下一个位是显性的,它应该增加它的接收错误计数器?我认为错误标志中可能有超过 6 个显性位(准确地说是 6 到 12 个)是可以的......此外,规则 6 说“任何节点在 (...) 之后最多容忍 7 个连续的‘显性’位”
Rule6 还提到了 8 个连续显性位的序列。但这条规则究竟适用于什么?仅适用于在错误帧初始传输之后出现的此类序列?
举个例子:节点A发送一个错误帧,其他节点开始发送自己的错误帧。节点 A 发送其错误标志的 6 位,然后检测第 7 个显性位(增加计数器? - 规则 2)然后我们有另外 6 个显性位,在第 14 个显性位之后,节点 A 再次增加其错误计数器(规则 6 的第一部分)。
然后我们有另外 8 个显性位 - 节点 A 再次增加它的错误计数器(规则 6 的第二部分)。
我对么?我对这些规则感到很困惑,我需要彻底理解它们。希望有人能帮助我:)