|Efficient CANopen implementation with
CMX-CANopen allows for optimized implementations of CANopen
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)
NMT State Machine
Node Guarding Response
Object Dictionary (OD) with SDO server
Expedited and segmented
Static PDO Mapping
Dynamic PDO Mapping
PDO with event time
PDO with inhibit time
PDO with SYNC
Non-volatile memory support
Central task control in one module
NMT Master Message
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:
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
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
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
Atmel T89C51CC0x (8051)
Freescale Power Architecture Technology
Infineon C16x and XC16x
Philips LPC2000 (ARM7)
Philips 8xC591 (8051)
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!
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