Sign In / Join Cloud 360
Engineering • Innovation • Learning
Communication Protocols Advanced Level 25 min

CAN FD (Flexible Data-Rate) Automotive Bus Architecture

Differential dual-wire physical layer, bit-rate switching from arbitration to data phase, 64-byte payloads, and cyclic redundancy checksums.

Prerequisites: Serial communication, differential signaling, CRC error checking, and open-collector bus arbitration.

1. Overview & Concept Definition

Next-generation Controller Area Network bus standard (ISO 11898-1:2015) enhancing classical CAN 2.0B by expanding payload size from 8 bytes to 64 bytes and accelerating transmission speeds up to 5-8 Mbps during the data phase.

2. Engineering & Industrial Significance

Modern vehicles integrate 70+ Electronic Control Units (ECUs), ADAS cameras, and battery management systems. Classical CAN 1 Mbps bandwidth is saturated; CAN FD delivers higher throughput and lower transmission overhead while maintaining non-destructive bitwise arbitration on a robust two-wire differential bus.

3. Physical Working Principle & Transducer Dynamics

CAN FD operates in two timing phases. The Arbitration Phase runs at classical nominal speeds (e.g. 500 kbps) where all nodes listen and arbitrate priority via dominant (0) and recessive (1) differential voltage levels ($V_{CANH} - V_{CANL}$). Once an ECU wins arbitration, the Bit Rate Switch (BRS) bit toggles the transceivers to high-speed Data Phase (e.g. 2 Mbps to 5 Mbps) to stream up to 64 bytes of payload. A 17-bit or 21-bit CRC ensures rigorous hamming distance data integrity before switching back to nominal bit rate for the Acknowledge (ACK) slot.

4. Governing Equations & Mathematical Models

Differential Bus Voltage: $V_{diff} = V_{CANH} - V_{CANL}$
Recessive State: $V_{CANH} \approx 2.5\text{V}, V_{CANL} \approx 2.5\text{V} \implies V_{diff} = 0\text{V}$
Dominant State: $V_{CANH} \approx 3.5\text{V}, V_{CANL} \approx 1.5\text{V} \implies V_{diff} = 2.0\text{V}$
Bus Propagation Delay: $t_{prop} = 2 \cdot (t_{tx\_delay} + t_{bus\_delay} + t_{rx\_delay})$
Maximum Cable Length: $L_{max} \approx \frac{t_{prop\_allowed}}{2 \cdot \tau_{cable}}$ (where $\tau_{cable} \approx 5\text{ ns/m}$)

5. Practical Implementation

// C++: CAN-FD Frame Header Encoding with Bit Rate Switching (BRS)
#include <stdint.h>
#include <string.h>

struct CanFdFrame {
    uint32_t id;         // 11-bit standard or 29-bit extended ID
    uint8_t  dlc;        // Data Length Code (9..15 maps to 12..64 bytes)
    uint8_t  fdf;        // 1 = CAN FD format, 0 = Classic CAN
    uint8_t  brs;        // 1 = Bit Rate Switch enabled (fast data phase)
    uint8_t  data[64];   // Extended 64-byte payload
};

void buildTelemetryFrame(CanFdFrame *frame, uint32_t ecuId, const uint8_t *payload, uint8_t len) {
    frame->id = ecuId;
    frame->fdf = 1;     // CAN FD frame
    frame->brs = 1;     // High-speed data phase
    
    // Map payload length to CAN-FD DLC
    if (len <= 8) frame->dlc = len;
    else if (len <= 12) frame->dlc = 9;
    else if (len <= 16) frame->dlc = 10;
    else if (len <= 20) frame->dlc = 11;
    else if (len <= 24) frame->dlc = 12;
    else if (len <= 32) frame->dlc = 13;
    else if (len <= 48) frame->dlc = 14;
    else frame->dlc = 15; // 64 bytes
    
    memcpy(frame->data, payload, len);
}

6. Common Engineering Pitfalls & Troubleshooting

Frequent Engineering Pitfalls
  • Missing or incorrect termination resistors: A CAN bus requires exactly two 120-ohm termination resistors across CAN_H and CAN_L at the two furthest ends (net equivalent resistance 60 ohms). Unterminated buses experience transmission line signal reflections that scramble high-speed data bits.
  • Exceeding allowable stub lengths at high data bit rates: At 5 Mbps data phase, stub lines tapping into the main trunk must be under 30 cm; longer stubs introduce impedance mismatches that destroy bit transitions.
Diagnostic & Troubleshooting Checklist
  • CAN node enters Bus-Off state immediately: Check bit timing configuration registers (Time Quanta, Propagation Segment, Phase Seg 1 & 2). If nominal or data sample points deviate significantly between ECUs, framing errors increment the Transmit Error Counter (TEC) past 255.
  • Measure static bus resistance with multimeter: Disconnect power and measure resistance between CAN_H and CAN_L. It should read exactly 60 ohms (two 120-ohm resistors in parallel). A reading of 120 ohms indicates one end is unterminated.

7. Applications & Physical Constraints

TYPICAL APPLICATIONS
  • Automotive Powertrain, ADAS radar/lidar ECU communication, and Electric Vehicle Battery Management Systems (BMS)
  • Industrial robotic joints communicating over real-time distributed fieldbuses
  • Aerospace avionics sub-network interconnects
PHYSICAL LIMITATIONS
  • Requires CAN-FD compliant controllers and higher-bandwidth physical layer transceivers (classical CAN transceivers will produce loop delay distortion).
  • Longer wire lengths decrease allowable data phase speeds due to propagation delay limitations.
Pinout & Interface Specs
PIN / SIGNAL FUNCTION / ELECTRICAL SPEC
CAN_H Differential high transmission wire (shielded twisted pair)
CAN_L Differential low transmission wire (shielded twisted pair)
GND Common chassis ground reference return
120Ω Terminator Split termination resistors placed at extreme ends of bus line
Have questions on this topic?

Ask LUNA to calculate component values or explain alternative control methods for CAN FD (Flexible Data-Rate) Automotive Bus Architecture.