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 Feature | Supported |
---|---|
SDO Services | |
SDO Server | Up to 127 |
SDO Client | No |
SDO Expedited Transfer | Yes |
SDO Normal Transfer | Yes |
SDO Block Transfer | Yes |
PDO Services | |
PDO Producer / Consumer | Up to 512 |
PDO Mapping Parameter | dynamic |
PDO Communication Parameter | dynamic |
PDO Remote Transfer | No* |
PDO SYNC Transfer | Yes |
NMT Services | |
NMT Heartbeat Producer | Yes |
NMT Heartbeat Consumer | No |
NMT Node Guarding | No* |
Emergency Services | |
EMCY Producer | Yes |
EMCY Consumer | No |
EMCY History Size | Up to 250 |
Object Directory | |
OD Size | unlimited |
OD Entries | static |
OD Strings | unlimited |
OD Domains | Yes |
* This feature is not recommended by CiA for new projects.