1
\$\begingroup\$

I am still fairly new to CAN bus and working to understand the bus recovery. The MSCAN documentation reads that once a node enters bus-off it "will become error active again after counting 128 occurrences of 11 consecutive recessive bits on the CAN bus". I am trying to confirm that this is not 128 consecutive occurrences.

I believe that it is not consecutive, since the documentation does not read that way for the 128 occurrences, yet states explicitly for the 11 consecutive recessive bits.

I have also found the following post that states:

If that were not the case then a node with a defective receiver would try to send, go bus off, then go bus on again and try to send thereby using 100% of the bus. The 128 * 11 makes it possible for 128 other messages to sneak through while this defective node goes through its bus on/off cycle.

Therefore it would seem that it is understood that it is 128 nonconsecutive occurrences of 11 consecutive recessive bits.

Is there further confirmation of this understanding?

\$\endgroup\$
3
\$\begingroup\$

I believe you are correct in understanding that the bus is looking for nonconsecutive occurrences; I read through the Bus Off Error Recovery portion of this CAN example. The bus is looking for a total of 128 occurrences in total to pass before recovering, not necessarily in a consecutive sequence.

\$\endgroup\$
1
  • \$\begingroup\$ Great, thanks. I think that clarifies it where it states: "Each successful transmission on the CAN bus ends with 11 recessive bits and the idle state of the CAN bus contains recessive bits. Therefore, when the CAN module sees 128 sequences of successive recessive bits, it indicates some combination of normal bus activity and an idle bus." That, to me, is a clear indication it is nonconsecutive. \$\endgroup\$
    – TronicZomB
    May 20 '16 at 17:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.