Since CAN is a serial communication system in which all nodes share the same physical two-wire bus, there must be a reliable way to prevent messages from interfering with one another when several nodes attempt to transmit at the same time.
Such a situation can occur whenever two or more nodes begin transmitting almost simultaneously. In many communication systems, this creates a collision. The network must detect the collision, recover from it, and retransmit the affected data. Besides potentially destroying the original messages, this recovery process consumes valuable bandwidth and introduces delays that may be difficult to predict.
CAN takes a fundamentally different approach.
Rather than recovering from a collision after it occurs, CAN resolves competing transmissions while they are taking place. The message identifier determines priority: the message with the highest priority—that is, the lowest numerical identifier—continues transmitting, while the other nodes stop transmitting and return to listening mode.
Most importantly, the losing messages are not destroyed. A node that loses arbitration simply waits until the bus becomes available and then participates in the next arbitration cycle.
This mechanism is known as non-destructive bus arbitration. Arbitration is completed within a defined and predictable period, no bandwidth is wasted recovering from corrupted messages, and lower-priority messages automatically receive another opportunity to access the bus.
It is one of the most ingenious aspects of CAN: several nodes can compete for the same communication medium without creating a destructive collision, contributing significantly to CAN’s efficiency, predictability, and exceptional reliability.
Principle of Bus Arbitration
The following image provides a closer look at the arbitration field of a CAN message, in this case using the 11-bit identifier format. The arbitration field immediately follows the SOF (Start of Frame) bit and consists of the message identifier and the RTR (Remote Transmission Request) bit.
CAN nodes do not need information about the overall network configuration, such as node addresses. Consequently, CAN itself does not use node IDs. Instead, data transmissions are distinguished by their message identifiers, which can be either 11 or 29 bits long.
The message identifier also determines the message priority. The lower the numerical value of the identifier, the higher the priority. This allows high-priority messages to gain access to the bus quickly, even when bus traffic is heavy with lower-priority messages.
The next image demonstrates the arbitration process in a four-node CAN network. Three nodes attempt to access the bus at virtually the same time. As they transmit their message identifiers, each node simultaneously monitors the actual state of the bus.
In this example, Node C wins the arbitration within 12 bit times, while the other transmitting nodes stop transmitting and switch to listening mode. At a bit rate of 1 Mbit/sec, 12 bit times correspond to only 12 microseconds.
The actual arbitration time depends on the bit rate and on whether the message uses an 11-bit or 29-bit identifier. Regardless of these parameters, the underlying principle remains the same: arbitration determines which message continues without corrupting or destroying any of the competing messages.
Before examining the arbitration process shown in this example in detail, it is important to understand the basic rules that govern CAN bus arbitration.
Main Rules of Bus Arbitration
The main rules of CAN bus arbitration are straightforward:
Bit-by-Bit Arbitration
A logic 0 represents a dominant bus level, while a logic 1 represents a recessive bus level. Whenever a dominant and a recessive bit are transmitted at the same time, the dominant bit overrides the recessive bit.
Consequently, the CAN bus will be at the dominant level whenever at least one node transmits a dominant bit. The bus can assume the recessive level only when all transmitting nodes output a recessive bit.
This relationship between the individual node outputs and the resulting bus level can be illustrated using a simple analogy from basic digital electronics, as shown in the next image.
This example uses three nodes in a CAN network, represented by three transistors in an open-collector (“Wired-AND”) configuration. The bus assumes a low level (dominant) whenever at least one transistor outputs a dominant level. It reaches a high level (recessive) only when all transistors output a recessive level.
• The bus is considered idle and available for access after the current message and its Intermission Field have been completely transmitted.
• The node transmitting the message with the lowest identifier—and therefore the highest priority—wins arbitration and continues transmitting. All competing nodes switch to receiving (listening) mode.
• Nodes that lose arbitration automatically participate in a new arbitration as soon as the bus becomes idle again. No message is destroyed or corrupted, making CAN arbitration non-destructive.
The next image illustrates the interaction between a CAN node attempting to access the bus and the resulting CAN bus level.
The CAN controller waits until the Intermission Field has ended and the bus becomes idle (refer to Chapter 4 – Message Frame Architecture).
As soon as the bus is idle, the CAN controller starts transmission by sending the SOF (Start of Frame) as a dominant (low) bit. All other nodes that are not attempting to transmit switch to receiving mode.
The CAN controller transmits the first bit of the message identifier. CAN identifiers can be 11 or 29 bits long and are transmitted starting with the most significant bit (MSB).
While transmitting, the CAN controller also monitors the actual bus level and compares it with the bit it transmitted.
If the node transmits a recessive bit (high) but detects a dominant bus level (low), another node is transmitting a higher-priority message. The node loses arbitration and immediately switches to receiving mode.
If the node transmits a dominant bit but detects a recessive bus level, an error condition exists. Since a dominant bit must override a recessive bit, this condition violates normal CAN bus behavior and triggers CAN error handling.
If the node transmits the entire Arbitration Field without losing arbitration, it has won access to the bus and continues transmitting the remainder of the message. By this point, all competing nodes have switched to receiving mode.
Bus Arbitration Example
The following example shows a four-node CAN network in which three nodes attempt to access the bus simultaneously.
The nodes in this example have the following message IDs:
A 1100101100 = 32C hex
B 1100110000 = 330 hex
C 1100101000 = 328 hex
The message identifier assigned to Node D is irrelevant in this example because Node D is not requesting bus access. Since CAN assigns the highest priority to the lowest message identifier, Node C must ultimately win the arbitration.
The arbitration process proceeds as follows:
Nodes A, B, and C request bus access simultaneously by transmitting a dominant SOF (Start of Frame). Node D does not request bus access and therefore remains in receiving mode.
Nodes A, B, and C then begin transmitting their message identifiers, starting with the most significant bit (MSB).
From bit 10 through bit 6, all three nodes transmit identical bit levels, so all remain active in the arbitration.
At bit 5, Node B transmits a recessive bit while Nodes A and C transmit a dominant bit. Since the dominant level overrides the recessive level, Node B detects that it has lost arbitration and immediately switches to receiving mode.
Nodes A and C continue arbitration until bit 3. At this point, Node A transmits a recessive bit while Node C transmits a dominant bit. Node A therefore loses arbitration and switches to receiving mode.
Node C has now won the arbitration and continues transmitting the remainder of its message. Nodes A and B remain in receiving mode and will attempt to transmit again when the bus becomes available.




