uC-CANopen Reference Manual

This CANopen Stack is a CANopen communication library, which simplifies the development of devices, using the CANopen high level protocol. The library is designed to provide a high level interface to CANopen object directory which is configurable and easy to use. Considering strict coding rules during development, the source code is highly efficient in resource usage (in RAM and ROM) and certifiable with a minimum effort.

This guide describes how to use the CANopen Stack.

Before reading this guide, you should already have a solid knowledge of the C programming language, CANopen and CAN communication. If you feel, that your knowledge in C programming is not sufficient, we recommend the C Programming Language by Kernighan and Richie, which describes the programming standard and, in newer editions, also covers the ANSI C standard. Knowledge of assembly programming is not required.



Supported Features

The CANopen stack features are designed in a flexible way. The configuration allows systems from tiny CANopen device nodes with  minimal requirements to the hardware in RAM and ROM up to full featured CANopen devices.


CANopen FeatureSupported
SDO Services
SDO ServerUp to 127
SDO ClientNo
SDO Expedited TransferYes
SDO Normal TransferYes
SDO Block TransferYes
PDO Services
PDO Producer / ConsumerUp to 512
PDO Mapping Parameterdynamic
PDO Communication Parameterdynamic
PDO Remote TransferNo*
PDO SYNC TransferYes
NMT Services
NMT Heartbeat ProducerYes
NMT Heartbeat ConsumerNo
NMT Node GuardingNo*
Emergency Services
EMCY ProducerYes
EMCY ConsumerNo
EMCY History SizeUp to 250
Object Directory
OD Sizeunlimited
OD Entriesstatic
OD Stringsunlimited
OD DomainsYes

* This feature is not recommended by CiA for new projects.