5 advantages of the CAN bus communication protocol
What is CAN Bus Protocol?
The Controller Area Network (CAN) bus protocol is rapidly growing in popularity among engineers who work with high-level industrial embedded systems. The protocol was developed by Robert Bosch GmbH in 1986 to help further the development of electronic communications in the automobile industry.
In the early 1980s, vehicle manufacturers were beginning to incorporate an increasing number of electronic devices, such as active suspension, gear and lighting control, central locking, and ABS into cars and trucks for the first time. For these electronic devices to function in unison, time tasks correctly, and share data, they would need to be wired together.
Under the existing wiring standards, the electronic modules would communicate with each other using direct, point-to-point analog signal lines. Each module had a direct line connecting it to each other module that is needed to communicate with, an architecture that was time-consuming and used an excessive amount of wiring.
The CAN protocol eliminates the need for excessive wiring by allowing electronic devices to communicate with each other along a single multiplex wire that connects each node in the network to the main dashboard. The multiplex architecture allows signals to be combined and transmitted over the entire network along a single wire, such that each electronic module in the vehicle receives data from sensors and actuators in a timely fashion.
The CAN protocol was standardized by the International Standards Organization (ISO) in 1993 and has since been divided into two standards: ISO 11898-1, which describes the data link layer of the protocol, and ISO 11898-2 which describes the physical layer. The unique properties of the CAN bus protocol have led to its increased popularity and adoption across industry verticals that leverage embedded networks, such as healthcare, manufacturing, and entertainment.
The 5 Advantages of CAN Protocol
1. Low Cost
When the CAN protocol was first created, its primary goal was to enable faster communication between electronic devices and modules in vehicles while reducing the amount of wiring (and the amount of copper) necessary. This is accomplished through the use of multiplex wiring, which enables the combination of analog and digital signals and their transmission over a shared medium.
To understand how multiplexing drives down the cost of wiring vehicles, we need to know a bit more about how wiring architecture worked before the CAN bus protocol was created. Along with the electronic devices or modules that control vehicle subsystems, cars and trucks also have sensors and actuators that capture data from the vehicle's operation and communicate it to modules where it is needed.
A vehicle would have sensors for capturing data about its speed and acceleration, but feeding that data would require dedicated wires to each individual data recipient - that's one wire to communicate with the airbag system, one wire to communicate with the ABS braking system, another dedicated wire to engine control, etc. With the CAN protocol, a single wire connects all of the electronic systems, actuators, and sensors in the vehicle into one circuit that facilitates high-speed data transmission between all components.
The first vehicle to use CAN bus wiring was the BMW 850 coupe released in 1986. Implementation of CAN bus architecture reduced the length of wiring in the BMW 850 by 1.25 miles, which in turn reduced its weight by well over 100 pounds. Based on the current cost of copper wiring, the total cost savings from the saved materials would amount to nearly $600. Not only that, but the speed of communication was increased, with signal rates ranging from 125 kbps to 1 Mbps.
Low cost of implementation is one of the main reasons that we're seeing widespread adoption of the CAN bus protocol. Less wiring means less labor and lower material costs for embedded engineers.
2. Built-in Error Detection
One of the key features of the CAN bus protocol is that it supports centralized control over electronic devices that are connected to the network. In the CAN bus physical layer, each electronic device is called a node. Nodes can communicate with other nodes on the network, and each node requires a microcontroller, CAN controller, and CAN transmitter.
While each node is capable of sending and receiving messages, not all nodes can be communicating at once. The CAN bus protocol uses a technique called lossless bitwise arbitration to resolve these situations and determine which node should be given "priority" to communicate its message first.
Error handling is built into the CAN protocol, with each node checking for errors in transmission and maintaining its own error counter. Nodes transmit a special Error Flag message when errors are detected and will destroy the offending bus traffic to prevent it from spreading through the system. Even the node that is generating the fault will detect its own error in transmission, raising its error counter and eventually leading the device to "bus off" and cease participating in network traffic. In this way, CAN nodes can both detect errors and prevent faulty devices from creating useless bus traffic.
3. Robustness
Durability and reliability are key areas of concern when choosing a communication protocol for deployment in your embedded engineering projects. As you deploy your products into the live environment, you'll want to choose a communication protocol that is self-sustaining, with the ability to carry on operating for long periods of time without outside maintenance or intervention.
This need makes the protocol's error detection capabilities particularly advantageous, as they enable systems to identify and recover from errors on their own without intervention from an outside actor. There are five mechanisms for detecting errors in the CAN protocol:
- Bit monitoring
- Bit stuffing
- Frame check
- Acknowledgment check
- Cyclic redundancy check
CAN high-speed bus lines are highly resistant to electrical disturbances, and the CAN controllers and transceivers that communicate with electronic devices are available in industrial or extended temperature ranges.
A CAN bus cable is typically vulnerable to the failure modes listed in the ISO 11898 standard, such as:
- CAN_H interrupted
- CAN_L interrupted
- CAN_H shorted to battery voltage
- CAN_L shorted to ground
- CAN_H shorted to ground
- CAN_L shorted to battery voltage
- CAN_L shorted to CAN_H wire
- CAN_H and CAN_L interrupted at the same location
- Loss of connection to the termination network
While most CAN transceivers will not survive these types of failures, some electronics manufacturers have constructed fault-resistant CAN transceivers that can handle all of them, though they may have a restricted maximum speed as a trade-off. Together, these features expand the suitability of CAN bus networks for applications in the most rugged and demanding environments.
4. Speed
When the CAN protocol was first defined, it was described in three layers: the object layer, the physical layer, and the transfer layer. Later, when the CAN specification was created, specific definitions for the physical layer were excluded. This gave engineers the flexibility to design systems with transmission mediums and voltages that suited their intended applications. Later, to help drive adoption of CAN devices and networks, standards were finally released for the CAN physical later in the form of ISO 11898-2.
There are currently two defined physical layer standards, two types of CAN protocol, each with its own advantages and disadvantages.
High Speed CAN offers signal transfer rates of between 40 kbps and 1 Mbps, depending on the length of the cable. CAN-based bus protocols like DeviceNet and CANopen use this physical standard to support simple cable connections with high-speed data transfer.
Low Speed CAN network offers lower signal transfer rates that may start at 40kbps but are often capped at or near 125 kbps. The lower signaling rates allow communication to continue on the bus, even when a wiring failure takes place. While high-speed CAN networks terminate at either end of the bus line with a 120-ohm resistor, each device in a low-speed CAN network has its own termination. Low Speed CAN network exhibits greater fault tolerance and are vulnerable to fewer failure modes, but slower transfer speeds make them poorly suited to networks that require rapid and frequent communication.
5. Flexibility
To appreciate the flexibility of the CAN bus protocol in communications, we need to differentiate between address-based and message-based protocols. In an address-based communication protocol, nodes communicate directly with each other by configuring themselves onto the same protocol address.
The CAN bus protocol is known as a message-based communication protocol. In this type of protocol, nodes on the bus have no identifying information associated with them. As a result, nodes can easily be added or removed (a process called hot-plugging) without performing any software or hardware updates on the system.
This feature makes it easy for engineers to integrate new electronic devices into the CAN bus network without significant programming overhead and supports a modular system that is easily modified to suit your specs or requirements.
The Future of CAN Bus Protocol
CAN bus technology has been widely adopted across industry verticals. Thanks to its robustness, flexibility and the associated cost savings, we have seen CAN bus networks implemented in:
- Trucks, buses and other passenger vehicles
- Gasoline-powered and electric cars
- Movie-set cameras and lighting systems
- Gaming machines
- Building automation equipment
- Industrial automation and manufacturing equipment
- Medical devices and instrumentation
In the future, the CAN bus protocol will remain the networking technology of choice for connecting electronic devices that require frequent, simple communications. Ethernet TCP/IP, a leading alternative to the CAN bus, still cannot deliver the same low resource requirements, low-cost implementations, reliability and error recovery capabilities of CAN bus networks. We will continue to see CAN networks deployed in IoT devices, industrial automation applications, connected medical devices and even more demanding and high-tech applications like satellites and spacecraft.
eVisionSystems delivers tools with the functionality you need to send test transmissions on your CAN bus network or conduct non-intrusive monitoring to investigate network traffic, detect errors, and correct them as quickly as possible. With the Komodo CAN Solo Interface, embedded engineers can transmit data or monitor the bus. The Komodo CAN Duo Interface features two CAN channels, allowing engineers to emulate and monitor data from two CAN bus networks at the same time.
CAN Bus Analysis Tools
Product is discontinued