Controller Area Network (CAN) bus is a standard in the automotive industry that was designed to make communication between microcontrollers possible, and serves as a control system for modern vehicles and industrial automation. This also allows for monitoring a range of on-board diagnostics (via the OBD-II port) including reporting on events such as engine failure or airbag deployment.
The CAN bus protocol was developed by Robert Bosch in 1983, and officially released by the Society of Automotive Engineers (SAE) in 1986, with the first CAN controller chips produced by Intel in 1987.
There are several versions of the CAN specification with the most recent being CAN 2.0, which has two parts. Part A is the standard format with an 11-bit identifier (CAN 2.0A), and part B has a 29-bit identifier (CAN 2.0B). The CAN standard ISO 11898 was reorganised in 1993 into ISO 11898-1 (covering the data link layer) and ISO 11898-2 which deals with the CAN physical layer for high-speed CAN.
Low-speed CAN (fault-tolerant) is covered by ISO 11898-3.
The CAN standards continue to be developed with CAN FD 1.0 (CAN with Flexible Data-Rate) released in 2012. The different CAN frame format allows for different data length code and switching to a faster bit rate (often measured in mbit or kbit) after the arbitration is decided.
The CAN bus system is used in on-board diagnostics (OBD) for sending CAN data to an external system such as a telematics solution.
Modern vehicles can have around 70 Electronic Control Units (ECUs) to control different functionality within the car or truck, using the CAN bus network for data transmission and coordinating different systems. ECUs, also known as CAN nodes, can communicate externally with the use of ethernet or USB connectors.
All ECU modules (or CAN nodes) are connected via a twisted pair two-wire bus (120 ohms resistor) and communicate in logic bits. This is either a dominant (higher priority) bit or recessive (lower priority).
All CAN nodes are regulated by arbitration that ensures all are synchronised to sample the same bit at the same time.
The maximum speed (or bandwidth) of the CAN bus, according to the international standard, is 1MB/s (or 1000 bytes of data per second). This bitrate (or variable R) is the number of bits that are conveyed or processed per unit of time, and decrease as the network distance increases.
The CAN bus standard provides an effective, universal standard for complex automotive control systems and industrial automation, as well as a reliable method for vehicles that use CAN bus to transmit data to external systems, improving the monitoring, management and maintenance of these assets.