36. CAN Controller/Transceiver Voltage Levels for CAN (High-Speed CAN)

Toby
2 min readOct 1, 2023

--

CAN stands for Controller Area Network, which is a communication protocol used for exchanging information between controllers. In the context of two ECUs (Electronic Control Units) as shown in the diagram, there are scenarios where information interpreted by an MCU needs to be shared between them.

For example, ECU1 may measure the battery voltage of a car and have this information. It can then transmit this data to ECU2, which can interpret that the battery voltage is low and initiate a charging operation.

Information needs to be exchanged between these ECUs, and as mentioned in a previous post, this communication is achieved through voltage levels. To be more specific:

In the diagram above, there is a CAN Controller inside the MCU, which communicates information to a CAN Transceiver module using MCU voltage levels.

When it comes to voltage levels:

  • A ‘0’ corresponds to 0V.
  • A ‘1’ corresponds to either 3.3V or 5V, depending on the MCU’s voltage level.

The CAN Transceiver then converts and transmits these voltage levels onto the CAN H (High) and CAN L (Low) lines. For the High-Speed CAN Voltage Level commonly used in automobiles, it can be illustrated as follows:

To transmit a ‘1’ bit, the CAN_H and CAN_L lines have a voltage difference of 2.5V, which means there’s no voltage difference between them.

To transmit a ‘0’ bit, the CAN_H line is at 3.5V, while the CAN_L line is at 1.5V.

These terms ‘Recessive’ and ‘Dominant’ are used to describe the states of the CAN bus:

  • ‘Recessive’ means passive or not actively driving the bus. It’s used to represent a logical ‘1’.
  • ‘Dominant’ means taking control or actively driving the bus. It’s used to represent a logical ‘0’.

The concept of dominance and recessiveness is important and will be further explained in the context of arbitration in the future.

--

--