Sign up ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free.

I am reading data sheets on the LIN bus, but apparently the same terminology is used for CAN.

What does "recessive" and "dominant" stand for, e.g ?

How relate these terms to "low" and "high", or 0 and 1?

share|improve this question
In order to understand this, you need to understand CSMA/CA. –  Lundin Jul 1 '14 at 7:56
thanks for the pointer! –  poseid Jul 1 '14 at 8:36

2 Answers 2

up vote 6 down vote accepted

Dominant is 0. Recessive is 1. Dominant applies to 0 because if two arbitration ID's are being transmitted at the same time and the first 4 bits are the same and the fifth is 0 for one of them and 1 for the other, the ID with the 0 will end up being transmitted. Transmission of the message with the larger arbitration ID will be tried again after the other message is done.

share|improve this answer

In addition to the perfectly accurate answer given elsewhere, it may also be useful to consider the lower level meanings of the phrases dominant and recessive. In both CAN and LIN at the physical layer the bus "floats" to a particular state when no nodes are communicating. This is the recessive state. Any node which drives a dominant bit will override this state (hence the word "dominant").

This is used within the protocol to allow non-destructive arbitration to occur, where the node with the lowest id "wins". This is due to the decision to signify a logic low by a dominant bit.

(The standards could have been written the other way around. There's nothing that demands a dominant bit is interpreted as a zero in any other context.)

share|improve this answer
Also, CAN bus is Wire-ANDed... And in AND operation, 0 will "dominate" the 1. –  Swanand May 28 '14 at 11:48
that is nice shortcut to remember –  poseid May 28 '14 at 12:52
This is a more correct answer than the flagged one. Dominant and recessive states are used in many bus protocols or logic, not only in LIN or CAN. Open collector outputs are commonly used to create these states. –  Max Kielland May 12 at 7:49

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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