CAN Transceiver Architecture
What Does a CAN Transceiver Do?
A CAN transceiver is the interface chip between the CAN controller (inside the microcontroller) and the physical CAN bus wires. It has two jobs:
- Transmit: Convert the digital TX signal from the CAN controller into a differential voltage on the CAN_H and CAN_L bus wires.
- Receive: Read the differential voltage on the bus and convert it back into a digital RX signal for the CAN controller.
The transceiver is always a separate chip from the microcontroller. Common CAN transceivers include:
| Transceiver | Manufacturer | Speed | Notes |
|---|---|---|---|
| TJA1050 | NXP | Up to 1 Mbit/s | Industry workhorse, classic CAN |
| TJA1043 | NXP | Up to 5 Mbit/s | CAN FD capable, standby mode |
| MCP2551 | Microchip | Up to 1 Mbit/s | Popular in prototyping |
| TCAN1042 | Texas Instruments | Up to 5 Mbit/s | CAN FD, low power standby |
| TLE9251V | Infineon | Up to 5 Mbit/s | CAN FD, integrated in some MCUs |
Dominant and Recessive Bus States
CAN uses a two-wire differential bus with two defined states:
Recessive state (logical "1"): Both CAN_H and CAN_L are at approximately 2.5V. The differential voltage (CAN_H – CAN_L) is approximately 0V. This is the idle state of the bus. Dominant state (logical "0"): CAN_H is driven to approximately 3.5V and CAN_L is driven to approximately 1.5V. The differential voltage is approximately 2.0V.| State | CAN_H Voltage | CAN_L Voltage | Differential (H – L) | Logic Level |
|---|---|---|---|---|
| Recessive | ~2.5V | ~2.5V | ~0V | 1 |
| Dominant | ~3.5V | ~1.5V | ~2.0V | 0 |
Key Concept: The naming "dominant" and "recessive" comes from genetics, not electronics. If two nodes transmit simultaneously — one sending dominant (0) and one sending recessive (1) — the bus will show dominant. The dominant state always "wins." This is the physical basis for CAN's bitwise arbitration.
Why Differential Signaling?
CAN uses differential signaling for electromagnetic immunity. In a vehicle environment, the wiring harness runs near high-current motors, ignition coils, and switching relays that generate significant electromagnetic interference (EMI). A single-ended signal (one wire referenced to ground) would pick up this noise and produce bit errors.
With differential signaling, both CAN_H and CAN_L pick up the same noise simultaneously. The receiver looks only at the difference between the two wires, which cancels out the common-mode noise. This is why CAN buses are remarkably reliable even in electrically hostile automotive environments.
Common Mistake: Never route CAN_H and CAN_L in separate harness bundles. They must be twisted together (twist pitch: 30–50 mm) to ensure both wires experience the same noise. Separating them destroys the differential noise rejection and introduces intermittent communication failures that are extremely difficult to diagnose.
Transceiver Pin Connections
A typical CAN transceiver has 8 pins. Here is the TJA1050 as a reference:
| Pin | Name | Direction | Connection |
|---|---|---|---|
| 1 | TXD | Input (from MCU) | CAN controller TX output |
| 2 | GND | — | Ground |
| 3 | VCC | — | 5V supply |
| 4 | RXD | Output (to MCU) | CAN controller RX input |
| 5 | VREF | Output | Reference voltage (2.5V), often unused |
| 6 | CANL | I/O | CAN bus low wire |
| 7 | CANH | I/O | CAN bus high wire |
| 8 | S (or RS) | Input | Standby/slope control |
Exercise: If you have an oscilloscope, probe CAN_H and CAN_L on a live CAN bus (the OBD-II port is the easiest access point — pins 6 and 14). Verify the voltage levels: recessive should be ~2.5V on both lines, dominant should show CAN_H at ~3.5V and CAN_L at ~1.5V.