Controller Area Network (CAN)

The Controller Area Network was developed to prevent the need for large multi-core wiring harnesses in the automotive industry. It was triggered by the growing number of electrical/electronic devices including engine management systems, active suspension, ABS, gear control, lighting control, air conditioning, airbags and central locking. This means more safety and more comfort for the driver and of course a reduction of fuel consumption and exhaust emissions. Reduction in complexity and cable weight were important for many applications.

Simplified diagram showing main components of a wiring harness before the use of CAN

Sensors and control systems also continued to evolve and were increasingly microcontroller-based. To improve the behaviour of the vehicle even further, it was necessary for the different control systems (and their sensors) to exchange information. This was usually done by discrete interconnection of the different systems (i.e. point to point wiring). The requirement for information exchange has now grown to such an extent that a cable network with a length of up to several miles and many many connectors would be required.

In the later 1980s Robert Bosch GmbH, Germany specified the Controller Area Network (CAN) to allow connection of the control systems within a car using a serial communication bus. The point-to-point wiring harness was replaced in CAN by a serial bus that connects all the control systems.

CAN bus subsystems in a car, original figure: Motorola

CAN is most widely used in the automotive and industrial market segments. It defines the Link and the Physical Layer of a control bus. A number of higher level protocols are available for CAN. Typical applications are cars, utility vehicles, and industrial automation. Low cost devices are available due to mass production and have also found applications in trains, medical equipment, building automation, household appliances, stage lighting control, office automation, and a variety of other areas.

A basic system consists of several control units (nodes). Nodes are connected in parallel to the bus via transceivers. This means that the same conditions apply to all nodes. In other words, all the nodes are handled equally, none has any preference. In this context, this is called a multimaster architecture.

Information is exchanged serially using the bus in the form of messages sent in frames.Any node can send or receive messages. A message contains physical values such a
s the enginespeed (rpm). The engine speed In this case, is represented as a bi
nary value (a string of ones and zeroes). For example: The engine speed of 1800 rpm is represented as 00010101 in binary notation. The bit stream is sent over the TX line (transmit line) to the transceiver (amplifier). The transceiver converts the bit stream into voltage values that are then sent over the bus line one by one (serial).

At a receiving node the voltage values are converted back into a bit stream by the transceiver and sent over the RX line (receive line) to the nodes. Each node then converts the serial binary values back into messages. For example: the value 00010101 is converted back to the engine speed 1800 rpm.

A message sent can be received by any node. This principle is also called a broadcast message.

See also

Prof. Gorry Fairhurst, School of Engineering, University of Aberdeen, Scotland (2016)