User manual
245 C-Control Pro IDE
© 2013 Conrad Electronic
MOb Nummer. Wenn man zwei MObs hat, die eine bestimmtes Paket empfangen würden, wird es
immer von dem Message Object empfangen was die niedrigere MOb Nummer hat.
CAN Protokoll
Der CAN Bus Controller kann gleichzeitig normale Pakete (CAN 2.0A) und erweiterte Pakete (CAN
2.0B) verarbeiten. CAN Bus Identifier werden als 32-Bit dword (ULong) übergeben. Je nach Typ der
Pakete ist ein Identifier 11-Bit (V2.0 part A) oder 29-Bit lang (V2.0 part B). Die ungenutzten Bits wer-
den dabei ignoriert. Die maskID bestimmt, welche Pakete bei einem bestimmten Identifier (ID) emp-
fangen werden. Nur die Bits in der maskID die eins sind, werden bei einem Bitvergleich zwischen
eingestelltem Identifier und der ID des eingehenden Paketes überprüft.
automatic reply
Ist ein Message Object auf automatic reply gestellt, so übernimmt der MOb den Data Length Code
(DLC) von dem eingehenden Remote Trigger Paket. D.h. der Sender des Trigger Paketes bestimmt
über den mitgesendeten DLC die Anzahl der Daten Bytes die in dem Reply Paket gesendet werden.
Message FIFO
Bei der Initialisierung der CAN Bibliothek stellt der Benutzer RAM für einen Message FIFO zur Verfü-
gung, in dem alle eingehenden CAN Pakete gespeichert werden. Damit kann man dann die empfan-
genen Nachrichten asynchron entgegen nehmen.
5.5.1 CAN Beispiele
In diesem Kapitel werden einige Initialisierungsbeispiele gegeben, um die Funktionsweise der CAN
Bibliothek zu verdeutlichen.
Initialisierung
In jedem Fall muss die CAN Bibliothek vor dem Betrieb initialisiert werden. Dieses Beispiel stellt für
den CAN Bus eine Geschwindigkeit von 1 Mega bps ein, und stellt RAM für 10 FIFO Einträge zur
Verfügung.
byte fifo_buf[CAN_BUF(10)];
CAN_Init(CAN_1MBPS, 10, fifo_buf);
Empfang
1. Auf MOb Nummer 2 werden CAN 2.0A Nachrichten empfangen, die exakt einen Identifier von
0x123 haben.
CAN_SetMOb(2, 0x123, 0x7ff, CAN_RECV);
2. Auf MOb Nummer 3 werden CAN 2.0B Nachrichten empfangen, die exakt einen Identifier von
0x12345 haben.