Efficient CANopen Implementation

CMX-CANopen allows for optimized implementations of CANopen conformant devices. CMX-CANopen was developed to allow for maximum task optimization, especially when used with an RTOS such as CMX-RTX. Even without an RTOS, CMX-CANopen allows adapting the execution priorities of critical tasks making CMX-CANopen one of the best performing CANopen stacks available.

Visualization CANopen

Maximum performance

Centralized Control and Flexible Execution of Tasks in CMX-CANopen

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 CMX-CANopen, that in most cases an incoming Receive PDO (RPDO) can be processed right in the CANbus interrupt service routine.

All major tasks performed in CMX-CANopen are controlled from one single module. If CMX-CANopen 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.

Efficient Development and Configuration of Multiple CANopen Devices with CMX-CANopen

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 CMX-CANopen 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).

Versatile and Conformant CANopen Device Profile Implementations in CMX-CANopen

CMX-CANopen 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 examples pass the official CANopen Conformance Test!