What is Controller Area Network (CAN) Bus?
Controller Area Network (CAN) is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other’s applications without a host computer. It is a message-based protocol, designed originally for multiplex electrical wiring within automobiles to save on copper, but can also be used in many other contexts.
Key Features of CAN Bus
- High-speed communication (up to 1 Mbit/s)
- Prioritization of messages
- Multi-master hierarchy
- Error detection and signaling
- Retransmission of faulty messages
- Distinction between temporary errors and permanent failures of nodes and autonomous switching off of defect nodes
History and Development of CAN Bus
1980s: Origins at Bosch
The CAN Bus protocol was developed by Bosch in 1983 as a method for enabling robust serial communication. The goal was to make automobiles more reliable, safe, and fuel-efficient while decreasing wiring harness weight and complexity.
In 1986, Bosch introduced the first CAN controller chip, the Intel 82526. The first widespread use of CAN was in the 1989 BMW 8 Series.
1990s: Standardization and Expansion
In 1991, the CAN specification 2.0 was published by Bosch. This specification was later standardized as ISO 11898 in 1993.
Throughout the 1990s, CAN gained widespread adoption in the automotive industry. It was also used in other industries such as aerospace, medical equipment, and factory automation.
2000s: Higher Speeds and Flexible Data-Rates
In 2003, Bosch released CAN FD 1.0 (CAN with Flexible Data-Rate) which allowed for higher speeds (up to 5 Mbit/s) during the data phase of the CAN frame. This provided a significant increase in bandwidth without changing the physical layer.
In 2007, Time-Triggered CAN (TTCAN) was introduced as ISO 11898-4. TTCAN extends the CAN data link layer with session layer services to provide time-triggered communication on top of CAN.
2010s: Continued Evolution
In 2012, CAN FD was internationally standardized in the ISO 11898-1:2015.
CAN continues to evolve and find new applications. The development of CAN FD and the growing use of CAN in domains such as industrial automation, aerospace, and medical devices demonstrate the continued relevance and flexibility of the CAN protocol.
How CAN Bus Works
CAN Bus Architecture
CAN is a multi-master serial bus standard for connecting Electronic Control Units [ECUs] also known as nodes. Two or more nodes are required on the CAN network to communicate. The complexity of the node can range from a simple I/O device up to an embedded computer with a CAN interface and sophisticated software.
Message-Based Communication
In a CAN network, all nodes can “hear” all transmitted messages. Each message has an identifier, which serves two purposes:
1. It acts as a priority during bus access arbitration.
2. It identifies the message content.
Bus Access and Arbitration
CAN uses a Carrier Sense Multiple Access/Bitwise Arbitration (CSMA/BA) method to access the bus. If two or more nodes try to send a message at the same time, the message with the higher priority (lower ID value) automatically gets bus access. Lower priority nodes back off and wait until the bus becomes available before attempting to transmit again.
Error Handling
CAN has sophisticated error detection and handling mechanisms:
– Each node on the network constantly monitors communication. If any node detects an error, it will send an error frame, causing all other nodes to also send error frames.
– The node that first detected the error will try to resend the message as soon as the bus is available again.
– If a node detects too many errors, it automatically disconnects itself from the network to prevent it from blocking communication.
CAN Bus Frame Types and Formats
Data Frame
A Data Frame is the most common message type, and comprises the bulk of CAN traffic. The Data Frame consists of:
– 11-bit (standard) or 29-bit (extended) identifier
– Data Length Code (DLC)
– Up to 8 bytes of data
– Cyclic Redundancy Check (CRC) for error detection
Remote Frame
A Remote Frame is essentially a request by one node for data from another node. It has the same structure as a Data Frame but without the data bytes.
Error Frame
An Error Frame is transmitted by a node when it detects an error in a message. This causes all other nodes to also transmit Error Frames, which effectively aborts the erroneous message and flags it as an error.
Overload Frame
An Overload Frame is used to inject a delay between Data or Remote Frames. This is mainly used for older controllers that may need more time to process received messages.
CAN Bus Applications
CAN Bus is used in a wide variety of applications due to its robustness, reliability, and real-time capabilities. Some of the major application areas include:
Automotive
CAN is used extensively in the automotive industry for communication between ECUs. It’s used for a wide variety of functions, including:
– Engine management
– Transmission control
– ABS and traction control
– Airbags
– Lighting control
– HVAC control
– Infotainment systems
Industrial Automation
CAN is used in industrial automation for connecting devices such as PLCs, sensors, actuators, and HMIs. Key applications include:
– Machine control
– Process control
– Building automation
– Elevator control
Medical Equipment
CAN is used in various medical devices for its reliability and real-time capabilities:
– Patient monitoring systems
– Diagnostic equipment
– Surgical instruments
– X-ray machines
Aerospace
CAN is used in the aerospace industry for its light weight and reliability:
– Aircraft avionics
– Satellite systems
– Spacecraft onboard systems
Frequently Asked Questions (FAQ)
1. What is the maximum speed of CAN Bus?
The maximum speed of a standard CAN Bus is 1 Mbit/s. However, with CAN FD (Flexible Data-Rate), the data phase of the CAN frame can be transmitted at up to 5 Mbit/s.
2. How many nodes can a CAN Bus support?
Theoretically, CAN can support up to 2^11 (2048) nodes with standard 11-bit identifiers, or 2^29 (536,870,912) nodes with extended 29-bit identifiers. However, in practical applications, the number of nodes is usually much lower and depends on factors such as bus length, transmission speed, and node processing capabilities.
3. What is the maximum length of a CAN Bus?
The maximum length of a CAN Bus depends on the transmission speed. At 1 Mbit/s, the maximum bus length is 40 meters. At lower speeds, the bus can be longer, up to 1000 meters at 50 kbit/s.
4. Can CAN Bus be used in a wireless network?
CAN was designed as a wired protocol, but there are wireless versions available such as CAN-Over-Wireless-Gateway (CIGS) and CAN-Over-Air (CoA). These versions use wireless technologies like Wi-Fi, Bluetooth, or Zigbee to transmit CAN frames.
5. What are the main benefits of using CAN Bus?
The main benefits of CAN Bus are:
– Robustness and reliability due to extensive error checking and fault confinement
– Real-time capabilities due to message prioritization and low latency
– Flexibility due to the message-based communication model
– Cost-effectiveness due to reduced wiring complexity
Conclusion
Controller Area Network (CAN) Bus is a robust, reliable, and flexible serial communication protocol that has found wide application in various industries, particularly in the automotive sector. Its ability to prioritize messages, detect errors, and automatically take corrective actions has made it a popular choice for real-time, mission-critical applications.
From its origins at Bosch in the 1980s, CAN has evolved to meet the changing needs of industries, with developments such as CAN FD providing higher data rates and TTCAN introducing time-triggered communication.
As technology continues to advance, particularly in the areas of electric vehicles, autonomous driving, and the Internet of Things, the importance of reliable, real-time communication protocols like CAN is only set to grow. Despite being nearly four decades old, CAN remains a vital technology that continues to shape the landscape of embedded systems and industrial communication.
Leave a Reply