CAN FD vs. DoCAN
Comparing 2 standards across 12 specifications. 12 key differences identified.
CAN FD (Controller Area Network with Flexible Data-Rate, developed by Bosch in 2012 and standardized under ISO 11898-1:2015) extends classical CAN bus to overcome bandwidth bottlenecks in modern vehicles. Increasing payload size from 8 bytes to 64 bytes and accelerating data transmission during the data phase from 500 kbps up to 2, 5, or 8 Mbps.
Diagnostics on CAN (DoCAN, standardized under ISO 15765-2 and ISO 15765-4) is the network and transport layer protocol that enables diagnostic protocols (such as UDS ISO 14229 and OBD-II ISO 15031) to transmit multi-byte messages (up to 4095 bytes) over 8-byte CAN bus frames. Managing packet segmentation, Flow Control handshakes, and block sizes.
Specification Comparison Table
12 Parameters| Parameter / Spec | ||
|---|---|---|
|
Standardization
|
ISO 11898-1:2015 (Standardized CAN FD) | ISO 15765-2 (ISO-TP Network Layer) / ISO 15765-4 (Emissions CAN) |
|
Data Payload Capacity
|
Expanded from 8 bytes (Classic CAN) up to 64 bytes per frame (eightfold increase) | — |
|
Dual Bit-Rate Architecture
|
Arbitration Phase: 500 kbps (preserves long wire distance and arbitration) | Data Phase: Switched to 2 Mbps, 5 Mbps, or 8 Mbps | — |
|
Bit Rate Switch (BRS) Bit
|
Single control bit in header switches transceiver clock into high-speed mode and back after CRC | — |
|
CRC Integrity Protection
|
17-bit CRC for payloads up to 16 bytes; 21-bit CRC for payloads up to 64 bytes (with 4-bit stuff-count field) | — |
|
Modern Vehicle Deployments
|
Mandatory in modern ADAS radar/camera fusion, encrypted gateway security, and EV battery management systems (BMS) | — |
|
Maximum Message Length
|
— | Up to 4,095 bytes (segmented across multiple sequential 8-byte CAN frames) |
|
Single Frame (SF–PCI 0x0_)
|
— | Used when total payload fits in a single frame (up to 7 bytes in Classic CAN; byte 0 indicates data length) |
|
First Frame (FF–PCI 0x1_)
|
— | First frame of a segmented message; bytes 0-1 encode the total 12-bit message length (e.g. 0x10 0x80 = 128 bytes) |
|
Flow Control Frame (FC–PCI 0x3_)
|
— | Receiver sends Flow Status (Clear to Send), Block Size (BS), and Separation Time (STmin) pacing inter-frame delays |
|
Consecutive Frame (CF–PCI 0x2_)
|
— | Transmits remaining data with a 4-bit rolling Sequence Number (0 to 15) to detect dropped packets |
|
Emissions OBD Request IDs
|
— | Standard 11-bit functional broadcast ID: 0x7DF | Standard response IDs: 0x7E8 (Engine ECM), 0x7E9 (TCM) |