The embedded network specialist
+31-40-2301.922
The CANopen Protocol Software includes all necessary functions to implement slave or simple master devices according to the CANopen specification CiA® 301. Support for LSS services according to CiA 305 is included by default.
Ixxat CANopen Protocol Software
Ixxat CANopen Protocol Software
Ixxat CANopen Protocol Software

Features and Benefits

  • Comprehensive range of functions based on the CANopen® specification CiA® 301
  • Support of status displays according to CiA 303-3
  • Support for Layer Setting Services according to CiA 305
  • Enables quick and easy development of CANopen devices (slave or master)
  • Modular software structure with comprehensive configuration and scaling possibilities
  • High efficiency with minimum resource requirements
  • Clearly structured, simple programming interface for connection of the application program
  • Easy portability to alternative micro controllers
  • Multi-channel support

Overview of functions

The CANopen Protocol Software contains all functions required for the implementation of simple CANopen master or CANopen slave devices according to the CANopen specification CiA 301.

Scalability and hardware-specific adaptation:

To insure a high degree of scalability and adaptability, the software package is configured via central files. One configuration file allows to optimally adapt the CANopen functionality provided by the protocol stack to the given application, thus using the available resources more effectively. This enables extreme resource-saving implementations. The core functionality of the CANopen software is implemented independent of the architecture of the individual CAN controller. The CAN driver itself is fully encapsulated in a separate software module. Adaptation to the micro controller type used (e.g. interrupts, timer) is performed centrally in a separate header file.

Multi-channel support:

Upon request, the Ixxat CANopen Protocol Software is available as a multi-channel version.
This version allows the user to implement multiple, independent CANopen devices within one field device. NMT master or slave functionality can be configured independently on each of the channels with fully independent object dictionaries. It also supports the parallel operation of different CAN controllers on each of the channels.

Object dictionary and programming interface:

The object dictionary represents the interface between the application and the communication interface. Each object dictionary entry can be directly allocated a reference to a variable with application data. PDOs and SDOs directly access these application variables. Therefore, no changes to an existing application are required in order to integrate a CANopen protocol stack. User-specific call-back functions can be connected to each application object and enable event-controlled signaling to the application when these objects are accessed. This mechanism allows direct, application-specific reaction to changes in the application data triggered on the bus-side. In addition, the possibility of saving and restoring configured data is also supported.

Process-(PDO) and service-data-objects(SDO):

The CANopen Protocol Software supports asynchronous (with or without event timer), synchronous (cyclic and acyclic) and on request (RTR) PDO transfer types. PDO-mapping may be implemented statically or dynamically, depending on available resources and the required reaction times. In addition, the protocol software supports multiplex PDOs including scanner and dispatcher lists. Dummy mapping as well as variable inhibit times are also possible. Objects can be mapped into several PDOs simultaneously. With SDOs, the transfer types expedited, non-expedited (segmented) and block transfer are supported. The SDO response can be delayed at application level for both read and write access. The application can check the data written by SDOs for consistency before the target variables are overwritten. The SDO transfer can be aborted if necessary.

Network management:

The CANopen software supports the boot-up defined in CiA 301 with all network services including node guarding with or without life guarding (master monitoring), and, the heartbeat mechanism with producer monitoring.

Identifier allocation:

By default, identifiers are allocated according to the predefined I/O connection set, but, they can also be assigned by altering the relevant object dictionary entries.

Master functionality:

Smaller CANopen systems frequently require only a simple master device to start the system, instead of a full CANopen manager. Therefore this CANopen software package enables the implementation of such a simple CANopen master with its own object dictionary. A CANopen device implemented on this basis can work in a system either as a slave or as a master and can be configured via the object dictionary with the aid of configuration tools.
The software provides all required services that enable the user to implement an optimized network management control functionality.
The software package "CANopen Manager Software" is the appropriate basis for the implementation of full or more complex CANopen manager devices, and, for the development of programmable devices and controls (PLC).

Optional functionality:

To supplement the CANopen standard software, the following optional functions are available on request:
- Flying master, startup-capable device or NMT-master-
capable device according to CiA 302
- SDO manager (SDM), SDO requesting device (SRD)
according to CiA 302

Implementation work:

The CANopen Protocol Software is delivered as hardware-independent C-source code and is always tested with the latest CANopen conformance test software from the CiA.
The documentation and example programs supplied with the software enable a quick start with the CANopen software. Project files are supplied with the example programs that allow direct integration in the corresponding development environments of the compiler suppliers. All example programs can be run directly on a reference platform (evaluation board of the CPU manufacturer or Ixxat interface board).
Adaptation to the target hardware can normally be carried out in a few days. The sample programs facilitate implementation of a user's application.

Available versions of the CANopen software

The CANopen Protocol Software is available in two different packages with different scopes of functions: Slave and Master/Slave. The Master/Slave package supports the complete functionality and can be used for the development of both slave devices and simple master devices. The range of functions of each package is described in the following table:

Function Slave Master/Slave
  C=Consumer; P=Producer; S=Slave; M=Master
Max. number server-SDO 127 127
Max. number client-SDO - 127
Max. number PDOs (Tx/Rx) 512 512
Dynamic PDO mapping + +
SYNC object C P/C
EMERGENCY object P P/C
TIME STAMP object C P/C
NMT functionality S M/S
Node guarding, heartbeat + +
CAN-ID configuration according to Predefined Connection Set + +
CAN-ID configuration via SDOs + +
NMT Start-up object (1F80h) + +
Slave assignment list (1F81h) - +
Status display according to CiA 303-3 + +
Flying Master according to CiA 302 S (optional) M/S (optional)
LSS services according to CiA 305 S M/S

Supported processors and CAN controllers

The CANopen Protocol Software is independent of hardware and can be used on a large number of micro controllers and CAN controllers. For processors of the following manufacturers, Ixxat supplies reference implementations including project files for the development environments used which can be run directly on the corresponding development platforms:
Altera, ARM, Freescale, Infineon, Microchip, NXP, Renesas, STM, ST Microelectronics, Texas Instruments, Xilinx en x86-architecture.

Contents of delivery
- Source code in C
- Example code in C
- Software user license
- Programming manual
- Technical support (time limited)

Getting interested?

Are you interested in our products? Please request, without any obligation, for a quote. Would you like more information? Please send an email to or visit our contact page.
You can call us if you like, we can be reached at +31-40-2301.922. We are pleased to help you and do offer you practical advice and support.

Group: None