Reference
Last revision 2026/01/14
This article discusses the ISO standardized CAN bus protocol, known for its high reliability, real-time communication, and error detection capabilities, widely used in automotive and industrial control systems.
CAN
This is an ISO internationally standardized serial communication protocol.
The CAN network is comprised of CAN nodes and a CAN bus, possessing characteristics such as strong communication real-time performance, high reliability, multi-master operation, error detection, and fault confinement. Its bus protocol has become the standard for automotive computer control systems and embedded industrial control local area networks.
The CAN bus is a distributed control bus that utilizes differential voltage to transmit data, consisting of two signal lines: CAN_H and CAN_L. The bus has two logical levels: recessive level (logic 1) and dominant level (logic 0). When the voltage difference between CAN_H and CAN_L is less than 0.5V, it represents logic value 1, the recessive level. When the voltage difference between CAN_H and CAN_L is greater than 0.9V, it represents logic value 0, the dominant level. This differential transmission method enhances signal immunity to interference and suppresses interference from common-mode signals.
Taking the example of a high-speed, short-distance closed-loop network based on the ISO 11898 standard, the maximum communication distance of the CAN bus can reach up to 40m, with a maximum communication speed of 1Mbps. Additionally, a 120Ω termination resistor is required at the ends of the CAN bus to match the impedance and reduce echo reflections.
Data Frames
Communication on the CAN bus is conducted in the form of "frames." A data frame, as the name suggests, is a frame used to transmit data and serves as a carrier for the data that the transmitting node wishes to deliver to the receiving node.
The frame structure of a data frame consists of seven segments: Start of Frame, Arbitration, Control, Data, CRC, ACK, and End of Frame. Based on the length of the ID code in the arbitration segment, data frames are categorized into Standard Frames and Extended Frames. Standard Frames have an 11-bit binary ID, which translates to 3 hex digits, resulting in an ID range of 000-7FF. Extended Frames have a 29-bit ID, which translates to 8 hex digits, providing an ID range of 00000000-1FFFFFFF. The frame ID determines the priority of data frame transmission, with lower ID values indicating higher priority.
The Control segment consists of reserved bits r1 and r0, along with the Data Length Code (DLC) segment. The DLC segment is the most important, comprising 4 data bits used to indicate the number of bytes in the data segment of the message, ranging from 0 to 8.
The Data segment consists of the transmitted data within the data frame, determined by the DLC, and each byte contains 8 bits.
The CRC segment includes the cyclic redundancy check sequence (CRC) and the delimiter (DEL), with the former used to verify the correctness of the transmission and the latter indicating the end of the CRC sequence.
The ACK segment comprises the acknowledge (ACK) bit and the delimiter (DEL), confirming the successful reception.
Was this article helpful?
