1. The CAN Protocol
CAN communication is organized in frames. Two types of frames exist: standard and extended frames.
For CAN 2.0 the maximum data payload is up to 8 bytes while for CAN FD up to 64 bytes can be
transmitted using one frame.
All CAN nodes are equal in terms of bus access. There is no super-node because the CAN is a multi-master bus.
Data addressing is done using message identifiers. In a CAN network only one node shall transmit messages with a certain identifier. All nodes receive all messages and the node host controller has to decide if it was addressed by the appropriate message identifier. To reduce the load of a host controller a CAN core may use acceptance filters. These filters compare all received message identifiers to user-selectable bit patterns. Only if a message passes an acceptance filter, it will be stored in the receive buffer and signaled to the host controller.
The identifiers of CAN frames are also used for bus arbitration. The CAN protocol machine stops
transmission of a message with a low-priority identifier when a message with a higher priority identifier is transmitted by another CAN node. The CAN protocol machine automatically attempts to re-transmit the stopped message at the next possible transmit position.
CAN 2.0B defines data bit rates up to 1Mbit/s. For CAN FD there is no fixed limitation. For CAN FD the standard defines a bit rate switching. If enabled the transmission of the payload of frames can be done at higher speed while the frame header is transmitted at lower speed.
2. CAN 2.0 and CAN FD Frames
CAN FD is a protocol extension of CAN 2.0. The main differences are:
• Data payload: Up to 8 bytes for CAN 2.0 and up to 64 bytes for CAN FD
• One configurable bit rate for CAN 2.0, but 2 for CAN FD: slow for arbitration and fast for data
phase
For Classic CAN frames (CAN 2.0) some bit names are renamed with the CAN FD ISO specification, but here the older names are still used for easier backward-reference.
Figure 2-1 CAN 2.0 and CAN FD Frame Types
Table 2-1 CAN Bit Abbreviations
The CAN FD specification by Bosch (non-ISO) uses the name EDL while the CAN FD ISO specification uses the name FDF for the same bit. Both names are synonyms.
For CAN FD ISO frames the stuff count is transmitted as a part of the CRC field. For CAN FD non-ISO frames the stuff count is not part of the frame. Furthermore the CRC checkers have a different initialization for non-ISO and ISO frames. Therefore ISO and non-ISO frames are incompatible.