Teil 2: Sicherer Datenaustausch mit CAN Serielle Bussysteme im Automobil II

Datenübertragung erfolgt ereignisgesteuert

Die übertragenen Nachrichten und deren Reihenfolge sind in einem CAN-Netzwerk nicht vom Fortschreiten der Zeit abhängig, sondern vom Auftreten spezieller Ereignisse. Jeder CAN-Knoten ist prinzipiell berechtigt, sofort nach Auftreten eines Ereignisses auf den CAN-Bus zuzugreifen. In Verbindung mit der vergleichsweise kurzen Nachrichtenlänge von maximal 130 bit im Standard-Format und der hohen Datenübertragungsrate bis zu 1 Mbit/s ermöglicht das Verfahren schnelle Reaktionen auf asynchrone Vorgänge. Dies ist eine wichtige Voraussetzung für eine echtzeitfähige Datenübertragung im Millisekundenbereich (1 bis 10 ms), die vor allem die Applikationen des Antriebs und des Fahrwerks verlangen.

Da der CAN-Kommunikation kein Zeitplan zugrunde liegt, ergibt sich der Nachrichtenverkehr stets erst zur Laufzeit und birgt deshalb implizit die Gefahr von Kollisionen. Diese steigt mit zunehmender Buslast und stellt die Echtzeit-Fähigkeit in Frage. Um trotz zufälligen Buszugriffs Echtzeit-Datenübertragung zu gewährleisten, kommt im CAN-Netzwerk das CSMA/CA-Buszugriffsverfahren (Car-rier Sense Multiple Access/Collision Avoidance) zum Einsatz.

CSMA/CA-Zugriffsverfahren sorgt für zerstörungsfreien, prioritätsgesteuerten Buszugriff

Der Buszugriff beginnt damit, dass ein sendewilliger CAN-Knoten zunächst den CAN-Bus abhört (Carrier Sense). Ist der CAN-Bus frei, darf der CAN-Knoten sofort mit der Nachrichtenübertragung beginnen. Stellt er hingegen Busaktivitäten fest, muss er seinen Sendewunsch so lange zurückstellen, bis der CAN-Bus frei und die gerade laufende Nachrichtenübertragung abgeschlossen ist. Zudem hat er eine Pause von drei Bitzeiten (ITM – Intermission) abzuwarten. Eine laufende Nachrichtenübertragung wird nicht unterbrochen, der Buszugriff ist damit zerstörungsfrei. Im Falle mehrerer sendewilliger CAN-Knoten verhindert die bitweise Arbitrierung (Bild 3) trotz simultanen Buszugriffs (Multiple Access – MA) das Auftreten von Kollisionen. Im Rahmen der bitweisen Arbitrierung legen alle sendewilligen CAN-Knoten den ID der zu übertragenden CAN-Nachrichten bitweise vom höchst- zum niederwertigsten Bit an. Die dem CAN-Netzwerk zugrunde liegende Wired-AND-Buslogik (0 = dominant) sorgt dafür, dass sich immer ein eindeutiger Buspegel einstellt. Nach dem Aufschalten eines ID-Bits vergleicht jeder CAN-Knoten den Buspegel mit dem aufgeschalteten Pegel. Die Arbitrierungslogik entscheidet, ob ein CAN-Knoten weiter senden darf oder das Senden einstellen muss.

Am Ende der Arbitrierungsphase bekommt jener CAN-Knoten die Sendeberechtigung, der die CAN-Nachricht mit dem niederwertigsten Identifier überträgt. Unterlegene CAN-Knoten wechseln zunächst in den Empfangszustand und greifen für einen erneuten Sendeversuch auf den CAN-Bus zu, sobald dieser wieder frei ist. So verhindert die Bus- und Arbitrierungslogik nicht nur Kollisionen (Collision Avoidance), sondern sorgt auch für einen prioritätengesteuerten Buszugriff: Je niederwertiger ein Identifier ist, desto höher ist die Priorität der CAN-Nachricht und damit ein schnellerer Buszugriff möglich. Die CAN-Nachricht mit dem kleinsten Identifier (ID = 0) wird deshalb ohne Verzögerung übertragen.

Ist die Buslast nicht zu hoch, sorgt diese Art des zufälligen, zerstörungsfreien und prioritätengesteuerten Buszugriffs für einen gerechten und sehr schnellen Buszugriff. Allerdings muss einerseits berücksichtigt werden, dass mit zunehmender Buslast die Verzögerungen vor allem von niederprioren CAN-Nachrichten anwachsen. Das kann so weit führen, dass CAN-Nachrichten im schlimmsten Fall zu spät bei Empfängern ankommen oder völlig unterdrückt werden. Andererseits verursacht das CSMA/CA-Buszugriffsverfahren einen reziproken Zusammenhang zwischen Netzwerkausdehnung und maximaler Datenrate. Während der bitweisen Arbitrierung muss ein rezessiv sendender CAN-Knoten einen dominanten Pegel sicher erkennen. Die Größe des Bit-Zeitintervalls ist deswegen so zu wählen, dass die Signallaufzeiten auf dem CAN-Bus vollständig kompensiert werden. Steigende Netzausdehnung bedingt somit ein verlängertes Bit-Zeitintervall, woraus schließlich eine maximal nutzbare Datenrate resultiert.