CAN (Controller Area Network) is a powerful, serial bus system for a fast data exchange between electronic control units (ECUs), which provides a multi-master ability, so that all CAN nodes can transmit data and different CAN nodes can interrogate the bus simultaneously. It was developed by the Robert Bosch GmbH in 1983 for vehicle technology first. Beside the application in automobiles and commercial vehicles, CAN networks are applied more and more in ships, trains, airplanes and increasingly in automation technology and machine construction, too. Today almost every microcontroller provides 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 including the real-time ability is standardized in the international norm ISO 11898 and contains both lowest layers of the ISO/OSI Layer model. The CAN protocol was standardized in 1993 and is described in ISO 11898-1.
CAN OSI-Layer Model
The layer 7 model is described by the CAN protocol and includes the data communications and physical layers. The ISO standard defines a standard that includes the CAN specification 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.
- Physical Layer: Transmission and reception of raw bit streams over a physical medium
- Data Link Layer: Reliable transmission of data frames between two nodes connected by a physical layer
- Network Layer: Structuring and managing a multi-node network, including addressing, routing and traffic control
- Transport Layer: Reliable transmission of data segments between points on a network, including segmentation, acknowledgement and multiplexing
- Session Layer: Managing communication sessions, i.e. continuous exchange of information in the form of multiple back-and-forth transmissions between two nodes
- Presentation Layer: Translation of data between a networking service and an application; including character encoding, data compression and encryption/decryption
- Application Layer: High-level APIs, including resource sharing, remote file access, directory services and virtual terminals
RAW CAN signifies the pure CAN protocol working on the CAN bus without any additional communication protocol. The CAN protocol is defined internationally after the ISO 11898-1 standard and guarantees in ISO 16845 the interchangeability of CAN.
CAN is based on a communication mechanism, which sends one message to all members. The transmission of the protocol happens controlled by messages.
CANopen is a CAN based protocol for higher layers which was developed by Bosch as embedded network with flexible configuration stability and handed over to the CAN in Automation (CiA) association in 1995. CANopen was originally created especially for movement orientated machine control networks, but it is applied in many areas of medicine, commercial vehicles, maritime electronics or building automation today.
CANopen is a networking concept based on the serial bus system CAN and the application layer CAL. Unlike CAL in CAN is defined which data is to be transmitted by which services and what the data means on each device class. For that only a subset of the communication services offered by CAL are used. So the needed computing power and storage capacity decreases.
The CANopen specification contains the application layer, the CANopen communication 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 into the software. CANopen network systems can be easily integrated by standardized profiles like machine, interface and application profile.
CANopen simplifies working with CAN specified details and implementation specific functions. So it provides standardised communication object for real-time data (Process Data Objects – PDOs), configuration data (Service Data Objects – SDOs), special functions like time stamp or network management data like boot-up-message, NMT message or error control.
The CANopen application layer and the CANopen communication profile support the direct access to device parameters and the transmitting of time critical process data. The CANopen network management helps creating the project, integrating the system and diagnosing. In every local controlled application different communication services and protocols can be recalled. CANopen defines the whole services and protocols as well as the needed communication objects.
The complete functional range of a machine is described by communication objects in the object index, which is the connector between the communication interface and the application program.
CANopen is applied in control systems in the automation beside the use in small and medium-sized embedded networks.