CANopen – The standardized embedded network

CANopen is a CAN-based communication system. It comprises higher-layer protocols and profile specifications. CANopen has been developed as a standardized embedded network with highly flexible configuration capabilities. It was designed originally for motion-oriented machine control systems, such as handling systems. Today it is used in various application fields, such as medical equipment, off-road vehicles, maritime electronics, railway applications, or building automation.

Please find the CANopen history here.

CANopen unburdens the developer from dealing with CAN hardware-specific details such as bit timing and acceptance filtering. It provides standardized communication objects (COB) for time-critical processes, configuration as well as network management data.

"Plug and play" with CANopen

Standardized CANopen device and application profiles simplify the task of integrating a CANopen system. Off-the-shelf devices, tools, and protocol stacks are widely available at reasonable prices. For system designers, it is very important to reuse application software. This requires not only communication compatibility, but also interoperability and interchangeability of devices. CANopen device, interface, and application profiles enable device manufacturers to provide their products with standardized interfaces to achieve CANopen devices with "plug and play" capability in CANopen networks. Nevertheless, CANopen allows implementing manufacturer-specific functionalites.

CANopen at a glance

CANopen provides several communication objects, which enable device designers to implement desired network behavior into a device. With these communication objects, device designers can offer devices that can communicate process data, indicate device-internal error conditions or influence and control the network behavior. In their products, device designers may also support CANopen functions that enable the devices to participate in point-to-point communication coherences in the network. As CANopen defines the internal device structure, the system designer knows exactly how to access a CANopen device and how to adjust the intended device behavior.

CANopen lower layers

CANopen is based on a data link layer according to ISO 11898-1. The CANopen bit timing is specified in CiA 301 and allows the adjustment of data rates from 10 kbit/s to 1000 kbit/s. Although all specified CAN-ID addressing schemata are based on the 11-bit CAN-ID, CANopen supports the 29-bit CAN-ID as well. CANopen assumes a physical layer according to ISO 11898-2. Nevertheless, CANopen does not exclude other physical layer options.

Further information on the CANopen lower layers is available here.

Internal device architecture

A CANopen device consists of three logical parts. The CANopen protocol stack handles the communication via the CAN network. The application software provides the internal control functionality as well as the interface to the process hardware interfaces. The CANopen object dictionary interfaces the protocol as well as the application software. It contains references (indices) for all used data types and stores all communication and application parameters.  

The CANopen object dictionary is most important for CANopen device configuration and diagnostics. As device-internal reference, a 16-bit index which is given as 4-digit hexadecimal value, is used. The index range 1000h to 1FFFh provides references to all parameters that determine the CANopen communication behavior of the CANopen device. The index range 2000h to 9FFFh provides the references to all application-related parameters. CANopen distinguishes between proprietary parameters (index range 2000h to 5FFFh) and standardized parameters (index range 6000h to 9FFFh).

Further information on CANopen internal device architecture is available here.

CANopen protocols

A CANopen protocol stack implements several CANopen COBs that are communicated with one of the CANopen bit-rates. The CANopen communication objects enable system designers to transfer control information, to react to certain error conditions or to influence and control the network behavior. The capability of CANopen devices can be evaluated by checking the existence of the related CANopen object dictionary entries that describe the communication behavior.

The CANopen protocols comprise: