What are the key differences between classic CAN and CAN-FD? Is CAN-FD backward compatible?
CAN-FD (Flexible Data-rate) is an extension of classic CAN that addresses its two main limitations: the 8-byte payload limit and the 1 Mbit/s speed ceiling. CAN-FD was standardized in ISO 11898-1:2015.
| Feature | Classic CAN (2.0) | CAN-FD |
|---|---|---|
| Payload | 0-8 bytes | 0-8, 12, 16, 20, 24, 32, 48, or 64 bytes |
| Bit rate | Up to 1 Mbit/s (entire frame) | Arbitration at up to 1 Mbit/s; data phase at up to 8 Mbit/s |
| CRC | 15-bit | 17-bit (up to 16 bytes) or 21-bit (up to 64 bytes) |
| Stuff bit count | Not tracked | Included in CRC calculation (gray-coded counter), improving error detection |
| BRS bit | N/A | Bit Rate Switch — signals the transition to the faster data-phase bit rate |
| ESI bit | N/A | Error State Indicator — tells receivers whether the transmitter is Error Active or Error Passive |
The speed improvement works by using two different bit rates within a single frame. The arbitration phase (SOF through the BRS bit) uses the standard 1 Mbit/s rate to maintain compatibility with all nodes' oscillator tolerances and propagation delays. After the BRS bit, the data phase switches to a higher rate (2, 4, 5, or 8 Mbit/s) for the payload and CRC, then switches back to the nominal rate for the ACK and EOF fields.
CAN-FD is partially backward compatible. CAN-FD and classic CAN nodes can coexist on the same physical bus, but classic CAN controllers will detect CAN-FD frames as errors (because the FDF/EDL bit violates the classic frame format) and transmit error flags. This means you cannot mix classic and FD traffic on the same bus. The common migration strategy is: (1) upgrade all nodes to CAN-FD capable hardware, (2) initially run the bus in classic CAN mode, (3) switch to CAN-FD mode once all nodes are upgraded. The physical layer (transceivers, bus topology, termination) is identical.
Source: CAN Q&A
