J1939 CAN Bus Explained

The CAN bus is the physical and data-link foundation many J1939 messages travel on.

Review status: source-backed medium Last reviewed: 2026-04-22

CAN Bus Physical Layer

The CAN bus is a differential two-wire communication bus. Both wires — called CAN High (CAN-H) and CAN Low (CAN-L) — carry complementary versions of the same signal. When neither node is transmitting, CAN-H sits at approximately 2.5 V and CAN-L sits at approximately 2.5 V. When a node transmits a dominant bit, CAN-H rises to approximately 3.5 V while CAN-L falls to approximately 1.5 V, creating a voltage differential.

This differential design makes CAN bus highly resistant to electromagnetic interference. Noise that affects both wires equally produces the same shift in both signals, which cancels out in the differential measurement. This is why CAN bus in a trucking environment — surrounded by ignition noise, alternator ripple, and motor transients — works reliably where a single-ended signal would not.

Termination Resistors

The J1939 CAN backbone requires a 120-ohm termination resistor at each physical end of the bus. These resistors absorb the signal energy at the cable ends and prevent reflections that would corrupt message data. With both terminators in place, the bus resistance measured across CAN-H and CAN-L (with all nodes connected and powered down) should be approximately 60 ohms.

A missing or failed termination resistor is a common cause of intermittent J1939 communication faults, particularly at higher bit rates. If multiple modules are logging communication faults (SPN 639, SPN 1231) without an obvious wiring damage explanation, measuring the bus resistance at the diagnostic connector — should read 55–65 ohms — is a fast first check.

How CAN Faults Present as Fault Codes

CAN bus faults typically produce communication-related SPN/FMI codes rather than sensor-type codes. A module that loses its J1939 connection will log FMI 9 (abnormal update rate) on the SPNs it expects to receive from other modules. When the entire bus segment loses communication, multiple modules log FMI 9 codes simultaneously — which is a diagnostic signature that points to the bus infrastructure rather than individual sensors.

A bus fault where CAN-H is shorted to ground, or where CAN-L is driven to a constant high state, prevents all nodes from communicating simultaneously. If many modules set communication codes at the same time, checking bus voltage levels (CAN-H and CAN-L relative to ground) and resistance is more efficient than investigating each module individually.

Related Pages

Sources

  • SAE J1939 Standards Collection SAE International · official · accessed 2026-05-05 · confidence medium

    Source: SAE International, SAE J1939 Standards Collection. This page paraphrases factual fields only and is not a substitute for the original document.

    Open source
  • NHTSA Manufacturer Communications Search National Highway Traffic Safety Administration · government · accessed 2026-05-05 · confidence high

    Source: National Highway Traffic Safety Administration, NHTSA Manufacturer Communications Search. This page paraphrases factual fields only and is not a substitute for the original document.

    Open source

FAQ

Is CAN bus just a wire, or does it include the communication protocol as well?

CAN (Controller Area Network) covers both the physical layer (the twisted wire pair carrying differential signals) and the data-link layer (how bits are encoded and arbitration between nodes works). J1939 builds an application-layer protocol on top of CAN, defining what the messages mean, how they are structured, and how fault codes are communicated. The CAN bus is the foundation; J1939 is the language.

How does a CAN bus fault show up differently from a sensor failure in the fault code list?

A sensor fault typically produces a code with the sensor's SPN and an FMI like FMI 3 (voltage high), FMI 4 (voltage low), or FMI 2 (data erratic). A CAN bus fault typically produces codes with communication-related SPNs (SPN 639, SPN 1231) and FMIs like FMI 9 (abnormal update rate) or FMI 2 (data erratic). If many modules report communication-related codes simultaneously, the bus itself is a more likely suspect than multiple simultaneous sensor failures.

Can a single broken wire affect all modules on the CAN bus at once?

Yes. CAN is a differential bus — the signal rides on two wires (CAN-H and CAN-L). If either wire is broken, shorted to ground, or shorted to power, the entire network segment can lose communication. All modules on that segment would be affected, producing a cluster of communication fault codes. This is why a single wiring fault can look like many modules failing at the same time.