![]() |
|||||||||
|
Available CANopen Software Development Methodsa.) Do-it-yourselfThis 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 codeThere 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 codeThe 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 boardsFor 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. |
| 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