CANopen is a communication protocol for layer 7 (user layer in the ISO/OSI model), which features a high degree of flexibility for configuration and uses CAN as layer 2 transport medium. Originally developed for motion applications, it is now an established protocol in a wide range of application areas, such as medical engineering, naval navigation, railroading and even building automation.
CANopen is not a classic master-slave system; instead, it runs with client-server services and follows the producer-consumer principle.
It provides standardized communication objects: Service Data Objects (SDO) for configuring object directory entries, Process Data Objects (PDO) for transporting real-time data, Network Management objects (NMT) for controlling and monitoring nodes as well as other objects such as synchronization objects, timestamps and emergency telegrams.
- Message transfer according to the producer-consumer principle
- Multimaster-capable, event-oriented message transmission
- Lossless, bit-wise bus arbitration
- Priority-oriented message transmission
- Message length and maximum message rate
- Efficient error detection and troubleshooting
- Error signaling instead of message acknowledgement
- The format of a CAN message
- Availability of standardized higher protocols and profiles