Embedded Development Tools

The CANopen Store

Visit the main Embedded Systems Academy site for technical information and more related to CAN, CANopen and embedded systems!

MicroCANopen Classic

European customers must order from our European store at www.canopenstore.eu.

Powerful and flexible CANopen compliant source code. Designed for small-footprint and high-performance applications with many tuning options. Including a wide range of features including dynamic PDO mapping and legacy CANopen features, this stack is ideal for standalone, off-the-shelf CANopen slave devices.

Purchase
Price: Varies depending on requirements

Efficient CANopen® implementation with maximum performance. MicroCANopen Classic was developed to allow for maximum task optimization, especially when used with an RTOS. Even without an RTOS, MicroCANopen Classic allows adapting the execution priorities of critical tasks making MicroCANopen Classic one of the best performing CANopen® stacks available.

Efficient Implementation. The CANopen® Process Data Objects (PDO) allow a single CANbus message to be filled with a combination of variables available in the Object Dictionary (OD) of a node. This PDO mapping process is implemented so efficiently in MicroCANopen Classic, that in most cases an incoming Receive PDO (RPDO) can be processed right in the CANbus interrupt service routine.

Advanced Task Control. All major tasks performed in MicroCANopen Classic are controlled from one single module. If MicroCANopen Classic is not used with an RTOS, the execution of tasks can still be optimized towards an application. In general, tasks can be executed within the CAN interrupt service routine, a timer interrupt service routine or in the background. This even allows processing different PDOs at different priority levels.

Flexibility. When designing multiple CANopen® devices that only vary slightly (for example in some Object Dictionary (OD) entries and/or in PDO configuration) it is desirable to only develop and maintain one version of the code. With MicroCANopen Classic the entire OD and the PDO configuration can be stored in non-volatile memory. As a result, the configuration of a node can be changed drastically just by downloading a configuration file (download via CANopen supported).

Portable. MicroCANopen Classic is written in 100% standard ANSI C code allowing for straightforward porting. For targets without standard support packages, designers familiar with their target processor can easily perform the port themselves. Or, ask us for a quote to add support to your target!

Compact. ROM Specifications: 8K - 18K bytes (for CANopen® Slaves) depending upon processor and options selected.

An Affordable Pricing Structure. MicroCANopen Classic offers a low, one-time fee and no royalties on deployed products and includes all source code with every purchase.

Features

The following is a non-exhaustive list of features in MicroCANopen Classic:

What's Included

MicroCANopen Classic is delivered with two examples for implementations of the CANopen® Device Profile DS401 - generic I/O. Additional and customized examples are available upon request and can include Device Profile Implementations such as Joysticks, Encoders (DS406), Batteries (DSP418), Chargers (DSP419) or Elevators/Lifts (DSP417). All our examples pass the official CANopen Conformance Test!

Full documentation is supplied. All software products include a one-year maintenance and priority support agreement that can be extended anytime.

Currently Available Ports

The following list is the microcontrollers and compiler combinations that MicroCANopen Classic is currently available for. For additional combinations you can either perform the port yourself or we can perform it for you. 

Comparison Between CANopen® Implementations

Feature MicroCANopen MicroCANopen Classic MicroCANopen Plus
CANopen Architect EDS for automatic code generation included  
check
Network Management state machine with autostart option check check check
Heartbeat producer, object [1017h] check check check
Heartbeat consumers, objects [1016h]   check check
Emergency Producer, objects [1014h] and [1015h]   check check
Error and Emergency History, objects [1003h]  
check
Emergency Consumer, objects [1028h]   check check(M)
Node Guarding responses (deprecated by CiA)   check check
Run-time configuration of OD and PI via Task Setup File
   check  

Object Dictionary support for any data type per entry
SDO Expedited, Segmented and Block Transfer mode supported

Only up to 4 bytes
check check
Dynamic PDO communication parameters (objects [14xxh] and [18xxh] writable)   check check
Dynamic PDO mapping parameters (objects [16xxh] and [1Axxh] writable)    check  
Store PDO parameters in non-volatile memory (objects [1010h], [1011h] and [1020h])   check check
TPDO trigger by Event Time check check check
TPDO trigger by COS with Inhibit Time check check check
TPDO and RPDO trigger by SYNC   check check
TPDO trigger by RTR (deprecated by CiA)
   check  
TPDO trigger by application     check
CiA305 Layer-Setting Services (LSS)
  checkRegular
checkRegular/FastScan
SDO Clients   check
check(M)
NMT Master   check
check(M)
Time Stamp Object processing     check
CANopen Wake-up support     check
Flexible integration into RTOS   check check
Maximum number of RPDOs/TPDOs 4/4 512/512 512/512
Maximum size of process image storing all data that can be mapped to PDOs (in bytes) 254 65,534 65,534
Smallest timer tick resolution available 1ms .1ms 1ms
Minimal SDO Manager    check  
CiA447 Car Add On Devices Support     check(447)
check(M) = With optional Manager Add-on
check (447) = With optional CiA447 Add-on
 
pip/canopen-architect-eds.html

Purchase
Price: Varies depending on requirements