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