CAN bus Communication

CAN stands for Controller Area Network, meaning a computer network formulated by the vehicle’s electronic control units (ECU). CAN was primarily developed for automotive applications but later - due to its simplicity, reliability and electromagnetic immunity - it appeared also in industrial (CANopen), military (MilCAN), aerospace (CANaerospace) and nautical (SeaCAN) applications.

CAN Bus protocol

CAN bus is an asynchronous (time-shifted) serial bus system, originally developed by Robert Bosch GmbH from 1983 to interconnect electronic control units (ECU) in motor vehicles and was introduced in different steps to reduce cable harnesses and thereby weight. Instead of using an electrical circuit for each transmitted signal, the "bus" is based on a communication platform that regulates the relaying of messages between several devices.

In a practical context, the process is as follows: While the rear light was actuated by means of guiding a current to the rear light, the bus system only relays a message: "Light switch to rear light: Switch on!" Translating all control signals into messages requires a "greater intelligence" of the connected devices, at the same time this implies that many devices can exchange information, virtually at same time, using a very limited number of cable connections.

CAN Bus topology

The CAN bus topology describes the layout of the CAN communication network inside a vehicle. It is usually a drawing that clearly shows the number of CAN buses, list all the ECUs and the connecting CAN lines as a schematic diagram. There are usually several separate CAN buses can be found in one vehicle based on the requirements and the function of the connected ECUs. There are dedicated CAN buses inside a vehicle like Power train CAN, Comfort CAN, Infotainment CAN, Lighting CAN, Trailer CAN and so on.

ISO 11898

The standard was released in 1993 summarizing the CAN communication protocol, but the standard itself contains only the physical layer and the data link layer descriptions. Higher layer protocol implementations are widespread available due to the simplicity and reliability of the system not only in the automotive industry but also in industrial automation and other application areas.

  • 11898-1 => CAN protocol
  • 11898-2 => HS-CAN
  • 11898-3 => FT-CAN 

CAN 2.0A

The CAN communication protocol originally was developed by Bosch during the mid 80s in the XX. century. The protocol specification came out in 1993 as ISO-11898 Standard. The first version of the standard only defined standard frames (CAN 2.0 Part A) with 11 bits identifiers.

CAN 2.0B

In 1995 an extended version of ISO11898 CAN Standard came out. It defines the 29-bit long extended identifier message format (CAN 2.0 Part B). 

Higher layer protocols

There are some application specific higher layer protocols based on ISO 11898, such as

  • MILCAN for Military Land Vehicle subsystem communications,
  • SAE J1939 31-81 for in-vehicle communication,
  • SeaCAN for nautical applications,
  • CAN Aerospace for aircraft applications,
  • CANopen for industrial automation
  • IES-CAN for commercial vehicles
  • Smart Distributed Systems (SDS) for industrial automation
  • CANkingdom for industrial automation
  • DeviceNet for industrial automation

SAE J1939

The Society of Automotive Engineers (SAE) develops and maintains standards for the industrial applications like inter ECU communication in motor-vehicles. The J1939 standard is a recommended practice used for communication and diagnostics among different ECUs in the vehicle. It is the most widespread CAN protocol standard mostly used in commercial vehicle applications like trucks, caterpillars, etc.

J1939 has different set of profiles:

  • SAE J1939-81 – Network management
  • SAE J1939-73 – Application layer, diagnostic
  • SAE J1939-71 – Truck and bus powertrain network
  • SAE J1939-31 – Network layer
  • SAE J1939-21 – Data link layer
  • SAE J1939-11 – Physical layer

Other protocols are particularly using J1939 protocol definitions by adding other physical layers and application parameters.

IES CAN

IES CAN is an OEM specific CAN protocol developed and used by Mercedes-Benz heavy-duty commercial vehicles. The structure is completely different from the J1939.

CANopen

CANopen is a higher-layer CAN protocol for embedded control systems. CANopen is a highly customizable protocol for a wide range of applications, but mainly in the field of industrial automation. These application and communication profile sets are developed and maintained by CiA members.

DeviceNet

DeviceNet is a complete protocol standard based on CAN, mostly used in industrial automation to connect actuators, sensors, IOs and controllers. DeviceNet is using trunk-line topology, there can be maximum 64 nodes in logical network.

DeviceNet standard specifies all layers according to ISO/OSI model, the higher layers using CIP (Common Industrial Protocol) the intermediate layers are CAN protocol. The lower layers (physical and connectors) are standardized as well.

Proprietary CAN protocol

Most vehicle manufacturers (OEMs) are using their own developed higher layer protocol on the CAN network. These OEM dependent, not standard protocols are called proprietary vehicle CAN protocols. FMS Gateways are able to process specific OEM vehicle CAN (proprietary CAN) data and make it available in a standardized FMS CAN protocol format for all types of vehicles. This can be easily connected to an AVL device for further processing.

Lower layer protocols

The ISO 11898-1 part of the CAN bus standard defines only the data link layer without exact definitions of the physical layers, but there are multiple physical layer definitions used in CAN communication depending on the application:

  • ISO11898-2, High-speed CAN
  • ISO11898-3, Low-speed CAN, Fault tolerant CAN
  • ISO 11992-1, Truck/Trailer CAN
  • SAE J1939 11-21

ISO 11898-2, High-speed CAN

ISO11898-2 is a physical layer description of the CAN standard protocol also called as High-speed CAN. This is the most often used physical layer of CAN communication in the automotive industry.

The physical layer description not defines exactly the mechanical aspects such connectors, labels, and pin-outs. So the ECU (electronic control unit) manufacturers often use custom connectors for CAN-Bus connection.

In CAN bus measurement applications a commonly used connector type is the D-SUB-9 connector set, where the pin-out is the following:

  • pin 2 – CAN-Low
  • pin 3 – Ground
  • pin 7 – CAN-High
  • pin 9 – Power

ISO 11898-3, Fault tolerant CAN

ISO11898-3 is a physical layer description of the CAN standard protocol also called as Low-speed CAN. This type of physical layer enables the CAN communication even in case if one of the wires is cut (open circuit) or short circuited to VBATT or GND.

In the automotive industry Fault tolerant CAN is often used in safety-related systems such as direct motor control.