CMX Systems, Inc
Flash File Systems



ESAcademy now uses CMX-CANopen in their public CANopen hands-on training classes. Visit their web page for scheduled classes.

Efficient CANopen implementation with maximum performance

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.

ROM Specifications: 8K - 18K bytes (for CANopen Slaves)

Supported Features
  • NMT State Machine
  • Heartbeat Producer
  • Node Guarding Response
  • Object Dictionary (OD)
    with SDO server
  • Expedited and segmented
    SDO transfer
  • Static PDO Mapping
  • Dynamic PDO Mapping
  • PDO with event time
  • PDO with inhibit time
  • PDO with SYNC
  • Emergency Producer
  • LSS Slave
  • Non-volatile memory
  • Central task control
    in one module
Master Features
  • NMT Master Message
  • LSS Master
  • SDO Client
  • Network Scanner
  • Heartbeat Consumer
  • Emergency Consumer
Depending upon processor, protocols used and options selected

The CANopen Solution for Your Embedded Processor

CMX-CANopen has been developed applying the CMX 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! Our 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 CMX-CANopen we 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 CMX-CANopen, 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 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.

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

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

Supported Processors
  • Atmel T89C51CC0x (8051)
  • Freescale 56F83xx
  • Freescale 68HC12
  • Freescale Power Architecture Technology
  • Infineon C16x and XC16x
  • Philips LPC2000 (ARM7)
  • Philips 8xC591 (8051)
  • Philips XA-C37
Looking for more in a CANopen Protocol Stack???

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

Please contact CMX for the latest list of supported evaluation boards -- we add new boards regularly.


CMX-CANopen 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 directly by CMX, including microprocessors, microcontrollers and DSPs. Our developers are confident that designers familiar with their target processor can easily perform the port themselves. Contact CMX for an in-depth discussion with one of our developers about this option.

Important Features of CMX-CANopen
  • Extremely Small ROM/RAM Requirements
  • Device Setup via Non-Volatile Memory
  • Supports Virtually All 8-, 16-,32-bit Processors and DSPs
  • Use of Internal CAN Interface or External
  • No Proprietary Protocols
  • Runs Stand Alone or with RTOS
  • Central Task Control
  • Economical One Time Fee
  • Full Source Code Provided
  • No Royalties on Deployed Products
  • Excellent Documentation and Support

CMX-CANopen Performance Benchmarks

Call, fax, or e-mail us with any additional questions that you may have.

Copyright material 2014© All Rights Reserved. Site and all contents are the sole property of CMX Systems, Inc.
No part of this site may be copied or used without the express written permission of the owner.
Web Services by Unicorn Web Development, Inc.