Intro
CAN, or Controller Area Network, is a popular communication standard in the automotive industry that has come a long way since its inception back in the 1980s. It has since made its way into elevators, 3D printers, medical equipment, and so much more. Devices communicating via CAN are typically connected in a bus topology, and each device should include its own termination resistor to prevent signal reflections. To give you a better understanding of CAN we will be comparing the three main varieties you are likely to encounter.

Structure
While CAN message structure can vary slightly between versions, below you will see an example Standard CAN message to help you follow along in our comparison. In any CAN message you will see an arbitration field first, this is used to avoid collisions on the bus. When multiple CAN devices want to send messages, they will each send a CAN frame with the arbitration bits first, and the device with the highest priority will “win”, with the other devices waiting until the bus is free and trying again. Next, you will find the control field which may include details about CAN type and Data size. Lastly, you will have your data and some kind of error checking and acknowledgement.
Source: https://en.wikipedia.org/wiki/CAN_bus#Frames_&_message_structure
CAN (2.0)
In general when people refer to standard or classical CAN, they are talking about CAN (2.0). CAN (2.0) comes in two types, CAN_A, and CAN_B. CAN_A (Standard) uses 11 bit identifier fields, whereas CAN_B (Extended) uses 29 bit identifiers. It should be noted that Standard CAN devices can generally talk to Extended CAN devices, but Extended CAN devices may not be able to communicate with Standard CAN devices as the longer identifier field will be truncated and likely be mishandled. This variety is capable of up to 1Mbps and may send up to 8 bytes of data per message.
CAN-FD (Flexible Data-Rate)
CAN-FD, which is built on top of a typical CAN network, enables the use of flexible data rates for transfers between FD devices. It maintains backwards compatibility with Standard CAN by maintaining the same frame format but with the addition of a new control field to indicate CAN 2.0 or CAN-FD for a given message. It greatly improves both speed and payload sizes by allowing for up to 8Mbps under ideal conditions, and 64 bytes of data per message. It’s important to be aware that while CAN-FD can support higher data rates (up to 8Mbps), this is only during data transfers. Arbitration is still done at 1Mbps or less.
CAN-XL (Extended-Length Can)
CAN-XL greatly improves on both transfer speeds as well as data lengths while still allowing for backwards compatibility. Additionally, CAN-XL introduces Ethernet tunnelling (the ability to encapsulate and transmit ethernet frames) making it simple to go from CAN to TCP/IP and back. Support for transfer speeds of up to 20 Mbps and payload sizes up to 2048 bytes per message are also a welcome improvement to CAN communications. One important note about CAN-XL, like CAN-FD, is that it still uses data rates as low as 125kbps during arbitration. Therefore to get the most out of CAN-XL, it is recommended to send larger packets rather than multiple small packets to get the highest average data throughput.
Comparison Table
| Type | Max Data Length | Arbitration Rates | Baud Rates | Release Year |
| CAN (2.0) | 8 bytes | 40Kbps-1Mbps | 40Kbps-1Mbps | 1991 |
| CAN-FD | 64 bytes | 40Kbps-1Mbps | 40Kbps – 8Mbps | 2012 |
| CAN-XL | 2048 bytes | 125Kbps-1Mbps | 125Kbps – 20Mbps | 2024 |
Which version should I use?
Since support for CAN-XL is limited to some pre-production or small sample run MCUs it may currently be down to just CAN 2.0 or CAN-FD. Now if you really need the extra speed or packet size, it will likely be worth the wait for XL. Otherwise CAN-FD would be a good option today. While CAN 2.0 is one of the most widely used versions, auto makers are slowly moving away and adopting FD more and more. Also, remember FD is backwards compatible, so today, unless you need the least expensive option CAN-FD would be our pick.
If you are still undecided and in need of help, we would love to lend a hand!


