CAN bus: The Ubiquitous Serial Bus That Can!

Press Office, VersaLogic Corporation, 09/08/21

CAN bus, sometimes referred to as CANbus, or simply as CAN, is a two-wire serial bus that provides a communications link between controllers and devices. The acronym CAN is an abbreviation for Controller Area Network. CAN is multi-master in nature, in that any device on the network may act as a controller and start message transmission.Originally developed for the automotive industry, CAN was important for several reasons:

  • Speed: It replaced slower analog communication methods
  • Deterministic: CAN messages contain an “arbitration” field that contains information about message priority. Messages labelled as higher priority take precedence in case of collision. This ensures that critical high priority messages are treated in a deterministic way.
  • Simplicity: It’s a single two-wire bus that is much easier to install than multiple analog systems
  • Cost: It replaces a number of separate cables in a wiring harness

From an end-user perspective, the most common application of CAN is the on-board diagnostics (OBD II) system in modern vehicles. This is connected to multiple systems within a vehicle for fault diagnosis and for emissions checks.

The OBD II diagnostics port is the CAN application most-known by the general public

However, the deterministic nature of CAN, along with its other benefits, means that CAN has been deployed in many more applications, such as:

  • Defense and aerospace
  • Industrial automation
  • Elevators
  • Medical
  • Maritime
  • Building systems such as lighting control systems

It truly is a ubiquitous serial bus!

Evolution of CAN bus

CAN was initially developed by Robert Bosch GmbH for automotive applications and the standard was first published in 1986. A revision, known as CAN 2.0, was published in 1991. That specification has two parts: CAN 2.0A and CAN 2.0B. CAN 2.0A and B supports bit rates up to 1 Mbps and differ in that 2.0A has an 11-bit message identifier field whereas 2.0B has a 29-bit field. The 29-bit field permits >536 million message identifiers vs. 2048 for the 11-bit field.

In 2015, CAN-FD was added. This raised the payload bit rate, first to 5 Mbps and subsequently to 8 Mbps.

Although the CAN standards were developed by Bosch, both CAN 2.0 and CAN FD are maintained in ISO 11898.

The CAN standards define the lower two layers in the seven-layer OSI model: the physical and data link layers. In order for a network to operate, it is also necessary to implement a high layer protocol. There are many of these. The CAN in Automation (CiA) user group is a useful source of information concerning CAN higher layer protocols.

Adding CAN to SBCs

Not all single board computers (SBCs) support CAN. However, in many cases it is simple to add CAN functionality. In the case of SBCs with mini PCIe slots, it’s as easy as inserting a CAN mini PCIe card into the slot.

industrial temperature mini pcie expansion moduleThe dual port MPEu-C1 features both CAN 2.0A/B and CAN FD

To facilitate use of the MPEu-C1, VersaAPI has API calls that may be used to configure, transmit, and receive CAN packets.

As mentioned, CAN has been adopted in many applications in addition to those related to automobiles. Combining the MPEu-C1 with the SWaP-optimized Harrier SBC proved to be the ideal solution for a compact UAV tasked with hunting and capturing hostile drones.

More Information

Want to know more about VersaLogic’s range of embedded products? Let’s start a conversation.