How CAN Bus Arbitration Uses Dominant and Recessive Bits
This article provides an overview of how Controller Area Network (CAN) bus systems manage data traffic without collisions using physical bitwise arbitration. In a CAN network, binary values are mapped directly to electrical states known as dominant and recessive bits. By leveraging a wired-AND logic mechanism, the network resolves conflicts seamlessly, ensuring that the message with the lowest numerical binary identifier always wins access to the bus without delaying or corrupting the transmission.
Binary Mapping of Dominant and Recessive Bits
The CAN physical layer represents binary data through two distinct electrical states:
- Dominant Bit (Logic 0): Actively driven onto the physical bus lines. If any single node drives a dominant bit, the entire bus assumes the dominant state regardless of what other nodes transmit.
- Recessive Bit (Logic 1): A passive state where the bus lines are held at a baseline voltage by termination resistors. A recessive bit is only sustained on the bus if no active node is transmitting a dominant bit.
This behavior forms a physical wired-AND logic gate across the entire
network: 0 AND 1 = 0.
The Bitwise Arbitration Mechanism
When multiple nodes attempt to transmit simultaneously, they enter the arbitration phase, which occurs during the transmission of the message’s Identifier (ID) field:
- Simultaneous Transmission: Nodes synchronize and begin sending the binary bits of their message IDs starting from the Most Significant Bit (MSB).
- Bus Monitoring: As each node outputs a bit, it simultaneously reads the actual physical state of the bus line.
- Conflict Detection: If a node transmits a recessive bit (Logic 1) but reads back a dominant bit (Logic 0), it recognizes that another node is transmitting a higher-priority message.
- Back-Off: The node that detected the mismatch immediately stops transmitting, transitions to receiver mode, and waits for the bus to become idle again.
- Non-Destructive Winner: The node transmitting the dominant bit continues uninterrupted, completely unaware that a collision was avoided, maintaining full message integrity without requiring retransmission delays.
Binary Numbering and Priority Hierarchy
Because a dominant bit corresponds to a binary 0, lower
numerical identifier values carry higher priority on the network.
For example, consider two nodes transmitting 11-bit identifiers simultaneously:
- Node A (ID: 0x180): Binary
001 1000 0000 - Node B (ID: 0x184): Binary
001 1000 0100
Both nodes send identical bits until the ninth bit. At this point:
- Node A transmits a dominant bit (
0). - Node B transmits a recessive bit (
1).
Because the dominant bit overrides the recessive bit on the physical
medium, the bus resolves to 0. Node B reads back
0 instead of its transmitted 1, yields
immediately, and Node A successfully completes its transmission.
Consequently, critical system messages are assigned lower numerical
binary values to guarantee preferential bus access.