Auf CAN Kommunikation zwischen den benutzten CAN Boards kann (auf Programmierebene) mit Hilfe einer Struktur namens can_t zugegriffen werden, welche in “can.h” definiert wird. Die Struktur can_t besteht aus Variablen die geschrieben werden können um eine Meldung auf das Senden vorzubereiten oder gelesen werden können um eine empfangene Meldung zu verarbeiten. Hier ist Übersicht über die Variablen dieser Struktur
Structure can_t: uint32_t id: // message ID struct flags int rtr: // remote-transmit-request-frame int extended: // extended ID ? uint8_t length: // number of data bytes uint8_t data[8]: // message data
Die Headerdatei “can.h” gibt verschiedene Funktionen an die notwendig für die CAN Kommunikation sind. Die CAN Bibliothek ist Open Source. Die folgenen Funktionen sind ausreichend für einfache Kommunikation:
Initialisieren des CAN Interfaces, setzen der Baud-Rate:
extern bool can_init(can_bitrate_t bitrate); // Check if a CAN message has been received (function returns TRUE or FALSE): extern bool can_check_message(void); // Retrieving a message out of the receive buffers of the CAN controller: extern uint8_t can_get_message(can_t *msg); // Sending a message over the CAN Bus: extern uint8_t can_send_message(const can_t *msg);