CAN Bus Fundamentals: Physical Layer, Frame Structure and Error Detection
Developed by Bosch in 1986 and standardised as ISO 11898, CAN bus is the backbone fieldbus for HVAC equipment, chillers, variable-speed drives, and building automation controllers. Its differential signalling, hardware arbitration, and five-layer error detection make it far more robust than RS485 Modbus in electrically noisy plant rooms — and understanding these fundamentals is essential before deploying any CANopen device.
ISO 11898-2 physical layer and differential signalling
ISO 11898-2 defines High-Speed CAN — the variant used in almost all building automation and industrial applications. The physical layer uses a differential pair: CAN_H (CAN High) and CAN_L (CAN Low), both referenced to GND. In the recessive state (logic 1), both lines float to approximately 2.5V and the differential voltage is 0V. In the dominant state (logic 0), CAN_H is driven to approximately 3.5V and CAN_L to approximately 1.5V, giving a 2V differential that is immune to common-mode noise up to ±30V.
Use shielded twisted pair with a characteristic impedance of 120Ω — Belden 9841 (single-pair, 24AWG) or equivalent. Connect the shield at one end only (typically at the panel) to avoid ground loops. Both ends of the bus segment must be terminated with a 120Ω resistor between CAN_H and CAN_L. Split termination (two 60Ω resistors with a 4.7nF capacitor to ground at the midpoint) improves EMC performance in high-noise environments.
CAN bus wiring — 3-wire connection
CAN bus cable (Belden 9841 or equivalent, 120Ω STP): CAN_H → CAN_H terminals on all nodes CAN_L → CAN_L terminals on all nodes GND → GND terminals on all nodes (reference, not signal ground) Termination resistors: Node 1 (first node on bus): 120Ω between CAN_H and CAN_L Node N (last node on bus): 120Ω between CAN_H and CAN_L All intermediate nodes: NO termination Measure termination (bus powered off): CAN_H to CAN_L resistance should read ~60Ω (Two 120Ω resistors in parallel = 60Ω) Values outside 54–66Ω indicate missing or extra termination
Star topology and tree topology are not allowed on CAN bus. All nodes must connect to a single linear trunk cable — branch stubs must be kept under 0.3m to prevent signal reflections. Long stubs cause dominant bit errors at high bit rates.
Bit rate versus cable length
CAN bus bit rate is limited by propagation delay — the time it takes a signal to travel to the farthest node and return before the bit period ends. ISO 11898-2 specifies the standard bit rate and cable length combinations. Building automation systems rarely need 1 Mbit/s; 125 kbit/s or 250 kbit/s is typical for HVAC equipment over cable runs of 100–500m between plant rooms.
| Bit rate | Max cable length | Max stub length | Typical application |
|---|---|---|---|
| 1 Mbit/s | 40 m | 0.3 m | Machine control, short intra-panel |
| 500 kbit/s | 100 m | 0.3 m | Industrial drives, compact plant room |
| 250 kbit/s | 250 m | 0.3 m | HVAC multi-chiller, floor plant room |
| 125 kbit/s | 500 m | 0.3 m | Building backbone, cross-floor runs |
| 50 kbit/s | 1000 m | 0.3 m | Long cable runs, large sites |
| 20 kbit/s | 2500 m | 0.3 m | Campus-wide, rarely used |
All nodes on a single CAN segment must run at the same bit rate. Mixing 250 kbit/s and 125 kbit/s devices on the same bus is not possible — use a CAN repeater or separate segments connected via a gateway if different rates are required.
CAN frame structure
The standard CAN data frame (ISO 11898-1) consists of seven fields. Understanding the arbitration ID field is critical for CANopen configuration — the COB-ID (Communication Object Identifier) used in CANopen is the 11-bit standard CAN ID. Extended frames use 29-bit IDs and are used in CANopen with 4-byte COB-IDs (extended addressing mode).
| Field | Bits | Description |
|---|---|---|
| SOF | 1 | Start of Frame — dominant bit that synchronises all receivers |
| Arbitration ID (standard) | 11 | Message identifier — lower value = higher priority on the bus |
| Arbitration ID (extended) | 29 | Extended frame format — includes 11-bit base + 18-bit extension |
| RTR | 1 | Remote Transmission Request — 1 = request for data from another node |
| IDE | 1 | Identifier Extension bit — 0 = standard frame, 1 = extended frame |
| DLC | 4 | Data Length Code — number of data bytes: 0 to 8 |
| Data | 0–64 bits | Payload: 0 to 8 bytes for classical CAN; up to 64 bytes for CAN FD |
| CRC | 15 + 1 | 15-bit cyclic redundancy check plus CRC delimiter (recessive bit) |
| ACK | 2 | Acknowledgement slot (dominant) + ACK delimiter (recessive) |
| EOF | 7 | End of Frame — 7 recessive bits |
Error detection mechanisms
CAN has five independent error detection mechanisms that operate simultaneously. Each detected error causes all nodes to discard the current frame and the transmitter to re-send. A node that repeatedly causes errors transitions from error-active to error-passive to bus-off state, protecting the network from a faulty node.
| Error type | Detection method | Common cause |
|---|---|---|
| CRC error | Receiver recalculates CRC and compares to transmitted value | Corrupted data bits from EMI or long cable |
| Bit error | Transmitter monitors bus and detects its own bit level mismatch | Short circuit, bus contention, wiring fault |
| Frame error | Fixed-format fields (EOF, CRC delimiter) checked for correct level | Bit stuffing failure, corrupted frame structure |
| ACK error | Transmitter checks that at least one receiver sends dominant ACK | Missing node, wrong bit rate, no termination |
| Stuff error | After 5 consecutive same-level bits, a complementary bit must follow | EMI causing same-level run to exceed 5 bits |
Non-destructive bitwise arbitration
When two or more nodes attempt to transmit simultaneously, CAN resolves the conflict through bitwise arbitration without destroying either message. Each node monitors the bus while transmitting — if a node transmits a recessive bit (1) but reads a dominant bit (0), it immediately stops transmitting and switches to receiver mode. The node with the lowest numerical arbitration ID always wins.
In CANopen, this means lower COB-IDs have higher priority. Emergency messages (EMCY, COB-ID 0x080 + node ID) and heartbeat messages are assigned lower COB-IDs than PDO data — ensuring alarms are never delayed behind process data traffic. Assign the lowest node IDs to the most critical devices such as fire panel gateways or chiller alarm controllers.
CAN FD — Flexible Data-rate
CAN FD (ISO 11898-1:2015) extends classical CAN with two improvements: a variable data phase bit rate up to 8 Mbit/s (versus 1 Mbit/s for classical CAN) and a payload size up to 64 bytes (versus 8 bytes). The arbitration phase still runs at the classical bit rate for compatibility — only the data phase switches to the higher bit rate after the BRS (Bit Rate Switch) bit.
| Parameter | Classical CAN | CAN FD |
|---|---|---|
| Max arbitration bit rate | 1 Mbit/s | 1 Mbit/s (same — backwards compatible) |
| Max data phase bit rate | 1 Mbit/s | 8 Mbit/s |
| Max payload bytes | 8 bytes | 64 bytes |
| CRC length | 15 bits | 17 or 21 bits (longer for larger payloads) |
| Building automation use | Widespread — most HVAC devices | Emerging — newer VFDs, energy meters |
Most building automation CAN devices (chillers, AHUs, VFDs) still use classical CAN at 125 or 250 kbit/s. CAN FD hardware (PEAK-System PCAN-USB FD, Vector CANalyzer FD) is backwards compatible and can communicate with classical CAN nodes on the same segment, provided the data phase rate is not engaged when talking to classical nodes.
Diagnostic tools
Use a CAN analyser during commissioning to verify bus traffic, monitor error frames, and confirm node IDs before integrating with a CANopen gateway. Three tools are standard in the industry.
| Tool | Interface | Use case |
|---|---|---|
| PEAK-System PCAN-USB | USB dongle, ~€100 | PCAN-View free software — sniff traffic, send frames, log to CSV |
| PEAK-System PCAN-USB FD | USB dongle CAN FD, ~€130 | As above but supports CAN FD data phase up to 8 Mbit/s |
| Vector CANalyzer | PCI/USB card, professional | Full protocol analysis, CANopen object dictionary view, scripting |
| Kvaser Leaf Light v2 | USB dongle, ~€180 | Kvaser CanKing free software — good for field commissioning |
| PCAN-View (free) | Software (Windows) | Used with PEAK adapters — filter by COB-ID, monitor error counters |
Need a CAN bus panel with CANopen gateway integration?
We design and build low-voltage panels with CANopen-to-KNX/Modbus/BACnet gateways, proper 120Ω termination, shielded CAN wiring, and commissioning documentation for HVAC and industrial sites.
Request a quote →