Go to Embedded Systems Solutions (German Page)

Comparison of CANopen 
Software Implementation Methods

 
Back to
CANopenIA
Comparison
Overview

 

Available CANopen Software Development Methods

a.) Do-it-yourself

This means developing the software for the CANopen protocol stack from scratch by simply looking at the specification and writing the appropriate code for the microcontroller of your choice. 

Although this method allows for writing code optimized towards the microcontroller used, it is also the one with the greatest risks and an unpredictable development time.

b.) Use commercially available CANopen source code

There are several companies in the business of selling CANopen source code that supports a number of microcontrollers and CAN controllers. As the source code is already written with portability in mind, adapting the software to completely different hardware implementations is easily possible. Configuring the software to implement the required communication for a specific CANopen node and merging it with application specific code can be done within a few months.

Experienced users and consultants can sometimes get that time down to a week.

c.) CANopenIA with customized code

The CANopenIA chips provide a "COCO" (CANopen Core) library that is accessible  from application specific code. Using function calls to the library, the application code can implement a completely customized CANopen node.

It should be noted that COCO indeed only offers core functionality. It implements a user-adaptable CANopen Object Dictionary and all accesses to it using SDO (Service Data Object) transfers. The processing of the more complex PDOs (Process Data Objects) is responsibility of the application code. 

Depending on the experience of the user and the complexity of the CANopen node required, the development time can be in the range from a few weeks to several months.

d.) CANopenIA or CANopen daughter boards

For typical CANopen I/O nodes, the CANopenIA chips implement the entire application code on-chip as many of the plug-in/stick-in CANopen daughter boards available do.

This allows developing and building a CANopen compliant node WITHOUT writing a single line of code.

Obviously such an implementation has no software development time.

 
 
 
 

Software Options Comparison Chart

Criteria a) Do-it-yourself b) Buy source code c) CANopenIA custom d) CANopenIA
One time purchases Microcontroller tools (compiler plus debugger or emulator) and CAN/CANopen analysis and configuration tools CANopen source code, microcontroller tools (compiler plus debugger or emulator) and CAN/CANopen analysis and configuration tools Microcontroller tools (compiler plus debugger or emulator) and CAN/CANopen analysis and configuration tools CAN/CANopen analysis and configuration tools
Total CANopen software development time (not counting application code) 6 months to more than a year A few weeks to a few months A few weeks to a few months None
Portability to other architectures Potentially good, if performance is not important  Very good Only to other architectures with COCO interface Not available
Overall performance Potentially good, if portability is not important Weak, as good portability causes software overhead Very good, as optimized for one architecture Very good, as optimized for one architecture
Customizable for application Yes Yes Yes No
Suitable for low to medium volume applications No Yes, if high one-time costs are justifiable Yes, if one-time costs are justifiable Best, as only minimum requirements on tools and development time
Suitable for high volume applications (100k+) Only if development time is justifiable and/or many optimizations are required Yes Yes, with high-volume license contract Yes, with high-volume license contract

© Copyright, Embedded Systems Academy, Inc. and Embedded Systems Solutions GmbH