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.

Fully featured, professional CANopen stack. Ready to implement CANopen slave nodes with a host of features, including dynamic PDO mapping, non-volatile memory support, LSS and more. Comes with a driver and example application.

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 such as CMX-RTX. 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.

MicroCANopen Classic has been developed applying the Embedded Systems Academy spirit: provide an elegant solution minimizing the resources required and maximizing the performance. After all, if an implementation uses less code it also executes faster! The developers have the expertise and hands-on experience to satisfy the most stringent real time demands that the embedded community deals with every day. With MicroCANopen Classic they created a new level of performance and quality for CANopen implementations.

Efficient Implementation. The CANopen Process Data Objects (PDO) allow for a very flexible configuration allowing 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 has been designed for maximum portability and is written in 100% standard C code. As a consequence, clients can decide to port the software to processors not yet supported, including microprocessors, microcontrollers and DSPs. Designers familiar with their target processor can easily perform the port themselves.

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

An Affordable Pricing Structure. MicroCANopen Classic offers a low, one-time fee and no royalties on deployed products. And you get the entire source code for with every purchase!

Features

The following is a list of features in MicroCANopen Classic. The list is not exhaustive by any means, but does give a good overview.

Suggested Application Usage

MicroCANopen is best suited for minimal CANopen slaves that are pre-configured and do not need to be re-configured during operation. CAN baud rate, the node ID and all PDO parameters are known at implementation and hard-coded into the module. This limits the usage of MicroCANopen to applications where the CANopen node is used over-and-over with the exact same configuration.

MicroCANopen Plus is best suited for CANopen slaves requiring minimal configurability. CAN baud rate, the node ID and PDO communication parameters are configurable. This allows using MicroCANopen Plus for nodes that typically require some setup during installation of the node.

MicroCANopen Classic is best suited for full-featured, highly flexible CANopen slave nodes and for minimal CANopen NMT (Network Management) Master applications. Using a setup file, MicroCANopen Classic can be completely re-configured. Without re-compilation Object Dictionary entries can be modified, added or removed. This allows one MicroCANopen Classic implementation to be used for a wide variety of devices.

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!

Also included is a single licence for CANopenArchitectEDS, an EDS/DCF editor with code generation for quick stack configuration. 

Currently Available Ports

The following list is the microcontrollers and compilers 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 Plus MicroCANopen Classic
All CANopen baud rates supported check check check
Network Management state machine with autostart option check check check
Heartbeat producer, [1017H] check check check
Heartbeat consumer, [1016H]   check check
Node Guarding responses   check check
Setup via hard-coding in program check check check
Setup via CANopen Task Setup File (read/write to [1F50H])     check
Object Dictionary support for data types of up to 4 bytes (expedited SDO transfer) check check check
Object Dictionary support for any data type   check check
PDO default configuration can be hard-coded check check check
Dynamic PDO Communication Parameters (write to [14xxH] and [18xxH] allowed)   check check
Dynamic PDO Mapping Parameters (write to [16xxH] and [1AxxH] allowed)     check
Store PDO parameters in non-volatile memory ([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 Trigger by SYNC   check check
TPDO Trigger by RTR     check
Emergency Producer, [1014H] and [1015H]   check check
Emergency Consumer, [1028H]     check
Layer-Setting Services   Regular and FastScan
Regular
SDO Client   With optional Manager Add-On
check
Implements NMT Master   With optional Manager Add-On check
Common CAN driver interface   check check
Flexible integration into RTOS   check check
Maximum number of PDOs 8 1024 1024
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 100us
Minimal SDO Manager     check
DS447 Car Add On Devices Support   With optional DS447 Add-On  
Error and Emergency History, [1003H]   check  

Purchase
Price: Varies depending on requirements