About the CANBUS Protocol

The Controller Area Network (CAN Bus, CANBUS, or just CAN) is an internationally standardized networking protocol, used by modules in modern automobiles as well as industrial vehicles (think tractors, forklifts, and so on).

Summary

Signals are dispatched (and received) through a low-level system of controller Nodes in a broadcast-style format. All data is available to all nodes that reside on the same bus. There is no concept of filtering data in the scope of the transmitters, therefore all filtering and masking must be done by the nodes on the receiving end of things.

Unlike other network protocols, with CAN, each Transmitter Node (think "ECU", "module") broadcasts all of its data onto the bus, and does not discriminate based on different Nodes listening to it. There are filters built into the Receiver Nodes, but none of them are at the transmitter level.

It is therefore the responsibility of the listener nodes (or Receivers) to filter through the noise, and determine what traffic is relevant to their individual needs and purposes.

Characteristics

If you have experience with other network types, like TCP, this shotgun-style networking might seem like total madness to you. It casts a wide net, but has proven itself reliable in the areas that matter.

  • very simple to maintain and service over time
  • proven track record of being rock-solid in terms of reliability
  • resistant to electrical and magnetic signal interference

Since the primary automotive uses for CAN are monitoring sensitive sensor data, controlling life-saving and crash-safety equipment, and receiving/dispatching engine control signals (in a timely manner), there is no room for error.

Physical Structure

The wiring used is often a small gauge, twisted pair, arranged in bus form along a main channel. Each Node is connected to the main channel by a "stub", using the shortest amount of wire possible. The twisted pair design negates the need for shielding on the wires, and it resists most electrical interference it might encounter inside the automobile application.

The Nodes connect to and interface with the network via a small transceiver chip, usually something like a TJA1042, TJA1050, or TJA1051. These transceivers interact with a CAN controller, although sometimes they are built into the same unit together, and translate the messages and control the flow of data, as well as handle errors and "reboots".