CAN – ISO 11898, Raw CAN and CANopen

CAN (Controller Area Network) is a powerful serial bus system for a fast data exchange between electronic control units (ECUs). It has a multi-master functionality so that all CAN nodes send data and different CAN nodes can poll the bus simultaneously. It was developed by Robert Bosch GmbH in 1983, initially for automotive technology. In addition to pas­senger cars and com­mercial vehicles, CAN networks are increas­ingly used in ships, trains and airplanes as well as in auto­mation tech­nol­ogy and mechanical engineering. Today almost all micro­controllers are equip­ped with a CAN interface.

The Data Link Layer – a data backup and physical layer – is defined in the CAN specification which describes the frame structure. Aside the transmitted data are described via CAL (CAN Application Layer). So CAL is a general description language for CAN networks which provides a number of communication services. The serial bus system with the real-time ability is stan­dar­dized in the inter­nat­ional norm ISO 11898 and contains the lowest two layers of the ISO/OSI Layer model. The CAN protocol was stan­dar­dized in 1993 and is described in the ISO 11898-1 standard.


CAN networks are used as a com­muni­cation system for micro­control­lers in the embedded area and as an open communication system for intelligent devices such as IO modules. The serial bus system is used both in vehicle electronics and in the automation of machines. CAN is characterized by low costs, possible function in various electronic envir­on­ments, high-precision real-time cap­a­bil­ity and simple use.


7 Layers of the OSI Model

The OSI model is described by the CAN protocol and includes the data com­mu­ni­cations and physical layers. The ISO standard defines a standard that in­cludes the CAN spe­ci­fi­cation and parts of the physical layers: The physical signal with bit encoding and decoding (Non-Return to Zero, NRZ) and the bit timing and bit synchronization.

7 Layers of the OSI Model

1. Physical Layer: Transmission and re­cep­tion of raw bit streams over a physi­cal medium

2. Data Link Layer: Reliable transmission of data frames between two nodes con­nected by a physical layer

3. Network Layer: Structuring and managing a multi-node network, in­clu­ding addressing, routing and traffic control

4. Transport Layer: Reliable trans­mis­sion of data segments be­tween points on a net­work, including seg­men­ta­tion, ac­know­ledge­ment and multiplexing

5. Session Layer: Managing com­muni­cation sessions, i. e. continuous ex­change of infor­mation in the form of multiple back-and-forth trans­mis­sions between two nodes

6. Presentation Layer: Translation of data between a net­working service and an app­lica­tion; in­clu­ding character encoding, data compression and en­cryption/decryption

7. Application Layer: High-level APIs, inclu­ding resource sharing, remote file access, directory services and virtual terminals


RAW CAN refers to the pure CAN protocol, which works on the CAN bus without any additional communication protocol. The CAN protocol is internationally defined ac­cording to the ISO 11898-1 standard and guarantees in ISO 16845 the interchange­ability of CAN chips in ISO 16845.


CAN is based on a communication mechan­ism that sends a message to all users.

The transmission of the protocol happens con­trol­led by messages.


CANopen is a CAN-based protocol for high­er layers which was developed by Bosch as embedded network with flexible con­fi­gu­ration stability and handed over to the CAN in Automation (CiA) association in 1995. CANopen was originally designed spec­ific­ally for motion-orientated machine control networks, but today it is also used in many areas of medicine, commercial ve­hicles, marine electronics or building automation.


CANopen is a networking concept based on the serial bus system CAN and the application layer CAL. In contrast to CAL, CAN defines which data is to be trans­mitted with which ser­vices and what the data on the respec­tive device classes means. Only a subset of the com­muni­ca­tion services offered by CAL is used for this purpose. This reduces the required computing power and memory capacity. The CANopen speci­fi­cations include the application layer, the CANopen com­mu­ni­ca­tion profile (CiA DS 301) based on CAL protocol, and a framework for programmable machines (CiA 302).

The application layer and the CAN-based profiles are implemented in the software. CANopen network systems can be easily integrated using standardized profiles such as machine, interface and application profiles. CANopen simplifies working with CAN specific details such as bit timing and implemen­tation-specific functions. So it pro­vides standardised communication object for real-time data (Process Data Objects – PDOs), con­fi­gu­ration data (Service Data Objects – SDOs), special func­tions such as time stamps or net­work manage­ment data such as boot-up-message, NMT message or error control.


The CANopen application layer and the CANopen communication profile support direct access to device parameters and the transmission of time critical process data. The CANopen network management helps with the project design, system integration and diagnostics. Thus, different com­mu­nica­tion services and protocols can be queried in each decentrally controlled application. CANopen defines all services and protocols as well as the neccessary communication objects. The entire func­tional scope of a machine is described by communication objects in the object index, which acts as a link be­tween the com­mu­ni­cation interface and the app­li­ca­tion program.

CANopen Application

CANopen is applied in control systems in the automation beside the use in small and medium-sized embedded networks.


CAN offers two data communication services: sending a message (data frame transmission) and querying a message (Remote Trans­mission Request – RTR).

Data transmission is performed by one bit acting either dominant or recessive on the bus lines, depending on its state. A dis­tinc­tion is made between CAN high-speed with a maximum transmission rate of 1 Mbit/s and CAN low speed with 125 Kbit/s. A CAN network is built up in a line structure in which the ends are provided with a ter­mi­na­ting resistor of 120 ohms. The “one-wire CAN bus” is also used for bus net­work­ing in the car. With the CAN bus, each part­ic­i­pant can send data if the bus is free. The CSMA/CA method is used for fast transmission of mes­sages and to avoid collisions.

Each CAN bus participant sends its message to all others. By adding an identification, the other bus participants know what kind of mes­sage it is and can then pro­cess the data. The filter­ing of the mes­sage is carried out by the bus hardware in the node.

Depending on the bus driver module used, up to 128 CAN bus nodes can be integrated per line. An object identifier indicates the content of a message. This enables the recipients to decide whether a message is relevant to them or not. In addition, the CAN message is posit­ioned with the object identifier. The specification defines 11-bit identifiers and 29-bit identifiers. This means that a bus station can be both a receiver and a sender of mes­sages with any number of identifiers.