First, let's look at the more familiar CAN protocol, an internationally standardized serial communication protocol. This protocol was first proposed by Bosch in Germany and used in the automotive industry. Its purpose was to provide a high-speed bus protocol with minimal signal wiring, support for numerous peripheral devices, high immunity to electromagnetic interference, and the ability to detect errors during communication. Below is a simplified diagram of the CAN protocol:
CAN protocol bus networks are mainly divided into two types: open-loop networks and closed-loop networks. In a closed-loop network, a 120-ohm resistor is connected at both the transmitting and receiving ends. This type of network is suitable for short-distance bus layouts and has a relatively fast speed, usually in the hundreds of kbit/s.
In an open-loop network, the two signal lines are independent, and each signal line is connected in series with a 2.2 kΩ resistor. This type of open-loop network is suitable for long-distance bus layouts with lower speeds, typically only tens of kbit/s, but the longest bus layouts can reach the kilometer level.
CAN bus data transmission typically uses twisted-pair cable with differential signals internally, which is the main source of its interference immunity. The CAN bus protocol mainly includes five types of frames:
|
Frame type |
Frame Purposes |
|
Data frame |
Frames containing IDs and data sent by nodes, used by the sending unit to transmit data to the receiving unit. |
|
Remote frame |
A data request for a specific ID sent by a node to other nodes on the network; the sending node can send a data frame with the corresponding ID after receiving a remote control frame. |
|
Error frame |
A frame notifying other nodes of an error detected by a node. |
|
Overload frame |
A frame sent when the receiving unit is not ready to receive data; the sending node can postpone sending data frames after receiving an overload frame. |
|
Inter-frame space |
Frames used to separate data frames, remote control frames, and preceding and following frames. |
A common data frame structure is shown in the figure below. The frame start segment represents the beginning of the data frame. The arbitration segment represents the priority of this message in the bus. Higher priority will be processed first in the bus (when multiple connected devices send data frames at the same time, the sending unit will arbitrate from the first position of the arbitration segment. The unit that outputs the most consecutive dominant levels will win the right to send and send the data. Other units waiting to send will wait for the end of the transmission). The control segment indicates the data length. The data segment is the data itself. Finally, there is a CRC check segment, which is to ensure that the data has not been tampered with during transmission. The ACK segment indicates whether it has been received normally. The frame end segment indicates that the transmission of this data frame has ended.
CAN FD can be understood as an upgraded version of the CAN protocol. This means that the physical layer, i.e., the bus presentation, remains unchanged; only the protocol layer has changed. The reason for CAN FD is that the load on modern electronic devices is increasing significantly. In other words, a single bus can now connect to more devices, and the amount of data transmitted is much larger (meaning the bus load can become very high). The CAN protocol wasn't designed for such high transmission demands, so it was expanded to meet current needs.
The first major difference lies in the transmission rate. While the bus transmission rate is inversely proportional to the bus length—meaning the longer the wiring, the lower the communication rate—this remains unchanged. However, CAN FD employs two transmission rate methods: a variable rate is used between the BRS bit and the ACK bit, while other positions use the original CAN bus rate. This allows for faster data transmission, saving transmission time.
The second difference lies in the data field length. CAN FD's data area can be up to 64 bytes, while the CAN protocol only has 8 bytes. Therefore, the effective portion (the data area, which is what we want to transmit) of a single data transmission is larger in CAN FD, resulting in higher transmission efficiency. Furthermore, as mentioned earlier, CAN FD uses variable rate acceleration during data transmission. These two factors combined make CAN FD's transmission efficiency and speed significantly faster than CAN.
