What Is a CAN Bus and What Role Does It Play in Automotive Systems?

2022-09-10 07:47:09 By : Ms. Carly Cai

A modern vehicle can have more than 70 computers on board. This is how these systems talk to each other.

You got into your car, pressed the start button, and the engine came to life in no time, but how did your car decide if it should start or not?

Well, to make the car start, several antennas and Electronic Control Units communicated with the key fob. The Controller Area Network (CAN) protocol ensures communication between your key fob, antennas, and ECUs happen appropriately inside your car.

So what is the CAN protocol, and how does it help the devices on your vehicle's systems work together? Well, let's find out.

Back in the day, cars did not have a lot of electronics. In fact, if you wanted to start your vehicle in the early-1900s, you had to get out of your vehicle and crank the engine by hand.

Today's cars, on the contrary, have several electronic sensors, and electronic devices monitor everything from the cabin temperature to the revolutions of the crankshaft.

That said, the data received from these sensors is of no value until it's processed. This data processing is performed by computing devices known as Electronic Control Units (ECUs).

Unlike a computer with a single CPU, a car has several ECUs, each of which is responsible for performing a particular task. Although these ECUs can perform a single task efficiently, they must work together to ensure features like ABS and ESC work properly.

Due to this, all the ECUs on a car need to be connected. One could use a point-to-point topology to make these connections, where each ECU is connected directly to every other ECU. However, this architecture would make the system complex. In fact, a modern vehicle has over 70 ECUs, and connecting them in a one-to-one fashion would increase the weight of the wiring exponentially.

To solve this problem, Bosch, along with Mercedes-Benz and Intel, created the Controller Area Network protocol in 1986. This protocol enabled ECUs to communicate with one another using a shared data bus known as the CAN bus.

The CAN protocol is a message-based communication methodology that relies on a set of twisted pair cables for data transmission. These wires are known as CAN high and CAN low.

To enable data transmission on these wires, their voltage levels are changed. These changes in voltage levels are then translated to logic levels enabling the ECUs on a car to communicate with one another.

For transmitting logic one on the CAN bus, the voltage of both the lines is set to 2.5 volts. This state is also known as the recessive state, which means the CAN bus is available for use by any ECU.

On the contrary, logic 0 is transmitted on the CAN bus when the CAN high line is at a voltage of 3.5 volts and the CAN low line is at 1.5 volts. This state of the bus is also known as the dominant state, which tells every ECU in the system that another ECU is transmitting, so they should wait until the tranmission is over before they start transmitting their message.

To enable these voltage changes, the car's ECUs are connected to the CAN bus through a CAN transceiver and a CAN controller. The transceiver is responsible for converting the voltage levels on the CAN bus to levels that the ECU can understand. The controller, on the other hand, is used to manage the received data and ensure that the requirements of the protocol are fulfilled.

All these ECUs connected to the CAN bus can transmit data on the twisted cable, but there is a catch, only the message with the highest priority can be transmitted on the CAN bus. To understand how an ECU transmits data on the CAN bus, we need to understand the message structure of the CAN protocol.

Whenever two ECUs want to communicate, messages with the structure below are transmitted on the CAN bus.

These messages are transferred by changing the voltage levels on the CAN bus, and the twisted pair design of the CAN wires prevents data corruption during transmission.

In addition to the bits above, the CAN protocol has a few bits reserved for future use.

Now that we have a basic understanding of what a message on the CAN bus looks like, we can understand how data is transmitted between different ECUs.

For simplicity, let's say that our car has 3 ECUs: Node 1, Node 2, and Node 3. Out of the 3 ECUs, Node 1 and Node 2 want to communicate with Node 3.

Let's see how the CAN protocol helps ensure communication in such a scenario.

Although the message structure used by the CAN protocol remains the same, the speed of data transmission and the size of the data bits are changed to transfer higher bandwidths of data.

Due to these differences, the CAN protocol has different versions, and an overview of the same is given below:

The CAN protocol allows several ECUs to communicate with one another. This communication enables safety features like electronic stability control and advanced driver assistance systems like blind spot detection and adaptive cruise control.

That said, with the advent of advanced features like autonomous driving, the amount of data being transmitted by the CAN bus is increasing exponentially. To enable these features, newer versions of the CAN protocol, like the CAN FD, are entering the market.

A tech enthusiast, driven by curiosity. A bibliophile who loves to travel. An Electronics and Communication Graduate, trying to simplify technology for everyone.

Join our newsletter for tech tips, reviews, free ebooks, and exclusive deals!