Modular CANopen Stack
CANopen Specifications and Device Profiles
Standard CANopen Architecture
Interfacing the device-specific CAN controller is abstracted to interface functions. You can use any low-level driver function or direct register access to implement these functions. This will connect the CANopen stack to the implemented interface.
The prototype of the interface functions are:
void COIfInit (CO_IF *if, CO_NODE_T *node); void COIfEnable(CO_IF *if, uint32_t baudrate); int16_t COIfRead (CO_IF *if, CO_IF_FRM *frm); int16_t COIfSend (CO_IF *if, CO_IF_FRM *frm); void COIfReset (CO_IF *if); void COIfClose (CO_IF *if);