CANopenNode is an open source software stack used for serial communication of multiple devices over the CAN/CANopen Network. It works on different microcontrollers, is reliable, simple and powerful and is suitable for industrial or home automation. CANopen is the internationally standardized (EN 50325-4) (CiA DS-301) CAN-based higher-layer protocol for embedded control system.
- CANopenNode is an opensource CANopen Stack. CANopen is CAN-based higher-layer protocol (EN-50325-4) (CiA DS-301). See http://www.can-cia.org/
- CANopen features: NMT slave, Heartbeat producer/consumer, Error control, Emergency message, PDO linking and dynamic mapping, SDO expedited and segmented transfer, SDO master, Sync producer/consumer.
- Controllers: dsPIC30F, PIC24H, dsPIC33F, PIC32, Beck SC2x3, (PIC18 - old). Easy portable to other.
- Support for eCos, open source real-time operating system. Multiple hardware is supported, including ARM.
- Code: ANSI C language, object oriented, documented. LGPL license.
- Object Dictionary Editor: Edit CANopen accessible variables, export to: .c/.h source files, EDS/XDD canopen files and HTML documentation file.
- On some controllers is implemented memory retention of selected variables from Object Dictionary.
- Example code for simple CANopen digital/analog input/output device is included.
- CANopen master device with HTML interface to CANopen: CAN log, Emergency log, SDO master, NMT master, Custom CAN message.
Thanks for Canopennode, it's great!
Easy for use.
svp s'il est possible de nous mettre le du protocole canopen qui marche sur un core DSP. s'il vous plait j'ai besoin d'aide, merci de me contacter sur email@example.com
Have used this stack since version 0.5 and have it currently running on almost a hundred of nodes most of which run 24/7 - works great and is stable over multiple years of operation. Thanks for writing it and putting it in the public domain, Janez!
Great stack. Worked with minimum modifications. 2 comments for future releases: 1 - PDO master support is missing. Will be really useful to have it in the library. 2 - SDOclient communication is very tightly coded for communicating with only 1 slave node, which needs to be configured during CO_init initialization. Hacking it for multiple slave nodes is a bit tedious...would be great to see it modified for multiple slave nodes.