CANopen

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)

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!

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!

Portability
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.
   
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 support
  • Central task control in one module

Optional Master Features

  • NMT Master Message
  • LSS Master
  • SDO Client
  • Network Scanner
  • Heartbeat Consumer
  • Emergency Consumer

Supported Processors

  • Atmel T89C51CC0x (8051)
  • Freescale 56F83xx
  • Freescale 68HC12
  • Freescale PowerPC
  • Infineon C16x and XC16x
  • Philips LPC2000 (ARM7)
  • Philips 8xC591 (8051)
  • Philips XA-C37

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