CAN data link layers: Three generations
There are three CAN data link layer generations:
- CAN CC data link layer (1st generation)
- CAN FD data link layer (2nd generation)
- CAN XL data link layer (3rd generation)
CAN is a very reliable serial field bus using producer-consumer data communication model in its data link layer. CAN broadcasts frames on the level of its data link layer. This means every CAN node is able to consume frames produced by other node in the CAN network if the frame filters are accordingly configured in every transmitting and receiving node. Implementing other data communication models and mechanisms in the application layer allows to map these models and mechanisms on producer-consumer communication of CAN allows point-to-point and multicast communication as well as client-server or commander-responder access etc.
The network arbitration method is the same for all three CAN generations: CAN CC, CAN FD, and CAN XL.
All three generations use the same non-destructive bus-arbitration method. They support standardized data frame formats as well as error and overload frames. Only CAN CC supports remote frames.
Originally, CAN was developed by Robert Bosch company for use as an in-vehicle network in passenger cars. Very soon it gained attention from various other industries and this trend remain. CAN is used in applications in transportation systems such as rail vehicle, aircraft, maritime, airborne and in outer space, in industrial machine control systems, in home and building automation (e.g. HVAC, elevators), in mobile machines (construction and agriculture equipment), in medical devices and laboratory automation, as well as in many other embedded and deeply embedded applications. Each year, more than two billion CAN nodes are sold. The CAN protocol controllers and transceivers are available at affordable prises to highly specialized equipment manufacturers and electronics enthusiasts.
In the beginning, there was only the CAN data link layer protocol (now CAN CC). Developed by Robert Bosch company as CAN 2.0 A/B, it has been internationally standardized in the ISO 11898 standard series since 1993.
In 2012, Robert Bosch company and CAN experts from key automotive and semiconductor manufacturers worked in a techical groups at CiA on another CAN protocol incorporated up-to-date requirements such as increased payload and bit rate that become known as CAN FD. The CAN FD protocol is backwards compatible to CAN CC. Most notably CAN FD node can operate entirely as a CAN CC node. Any CAN FD-compliant node recognizes and accepts CAN CC frames. In contrary, legacy CAN CC node is not compatible with CAN FD and destroys a received CAN FD frame by sending an error frame. Several solutions to overcome that bottleneck are offered ever since for mixed CAN CC and FD networks.
All single-bit failures in CAN are detectable. Multi-bit failures are found with a very high probability. One of the unique features is the fault confinement, which provides a network-wide data consistency.
The third CAN protocol generation, called CAN XL, has been developed by CiA technical groups. It provides a lot of new features including the separation of bus access arbitration (11-bit priority ID) and data frame content indication (32-bit acceptance field) as well as layer management information (e.g. SDT field). The data field length ranges from 1 byte to 2048 byte.
CAN CC, CAN FD, CAN FD light and CAN XL data link layers are internationally standardized in ISO 11898-1 and feature a high reliability.
CAN CC, CAN FD, CAN FD light and CAN XL physical layers including high speed, wake up and signal improvement capabilities are now specified in ISO 11898-2.