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

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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 http://hw-server.com/products/rs_optika/prevodniky_optika.html ?

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
up vote 9 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 '15 at 7:49
Is this "floating" to the recessive state any different from how a pull-up/down resistor is used for choosing the default (undriven) voltage level (and hence logic level) of the bus? E.G. Some buses will default to logic high via pull-ups if not being driven down. Would this mean that logic high is recessive and logic low is dominant? – Nick Miller Jun 17 at 14:30
@NickMiller: it's just the same (see Swanand's comment also) - just that because CAN is differential, there are two wires which need to be pulled to the recessive level (or in CAN's case "together" to the same voltage) – Martin Thompson Jun 17 at 18:32

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.