<< Click to Display Table of Contents >> Navigation: Protokolle > CAN-Bus Grundlagen > Arbitrierung oder Priorisierung |
Der CAN-Bus arbeitet nach dem „Multi-Master-Prinzip“. Danach sind mehrere Steuergeräte gleichberechtigt miteinander verbunden. Alle Steuergeräte haben Zugriff auf den Bus und können über eine eingebaute CAN-Schnittstelle Signale senden und empfangen. Bevor ein Steuergerät sendet, muss es mindestens drei freie Bit-Zeiten (Bus Idle) registriert haben. Über ein Buszugriffsverfahren werden Kollisionen zwischen den gesendeten Botschaften verhindert. Würden mehrere Steuergeräte gleichzeitig Botschaften senden können, würden die elektrischen Signale verfälscht und somit fehlerhafte Botschaften versendet. Eine übergeordnete Verwaltung ist nicht notwendig.
Mittels der Identifier wird im CAN-Bus sichergestellt, dass die gesendeten Botschaften gewichtet werden. Die zugehörige Logik wird als bitweise Arbitrierung bezeichnet, d.h. sie verläuft Bit-für-Bit entlang der Identifier.
Während ein Steuergerät einen Identifier sendet, empfängt es gleichzeitig die Identifier anderer Botschaften. Über die Identifier beeinflussen die Steuergeräte untereinander ihr Sendeverhalten auf dem CAN-Bus.
Senden zwei Steuergeräte gleichzeitig, so überschreibt das erste dominante Bit eines Identifiers das entsprechend rezessive Bit des anderen. Das Steuergerät, dessen Identifier mit rezessivem Bit beginnt, beendet darauf seine Übertragung, damit das dominante Steuergerät unbehindert senden kann. Dieses Verfahren funktioniert aufgrund der Non-Return-to-Zero-Codierung (NRZ), d.h. das Signal bleibt für die gesamte Dauer eines Bits konstant auf Low oder High.
Sollte die bisherige Bit-Folge für zwei Identifier gleich sein, wird das nächste Bit verglichen. Wiederum führt das dominante Bit dazu, dass das Steuergerät, das die Botschaft mit dem Identifier mit rezessiven Bit gesendet hat, das Versenden beendet. Die Arbitrierung entscheidet darüber, welches Steuergerät zu einem bestimmten Zeitpunkt auf dem Bus senden darf und welches nicht.
Für die Übertragung einer zeitkritischen Botschaft wird ein Identifier mit hoher Priorität (= niedrige ID, z.B. 0) vergeben, um ihr so Vorrang bei der Übertragung zu gewähren. Die Botschaft mit dem niedrigsten Identifier darf daher immer übertragen werden.
Dennoch kann selbst bei Botschaften mit hoher Priorität der Sendezeitpunkt zeitlich nicht genau vorher bestimmt werden. Botschaften, die in diesem Moment übertragen werden, können nicht unterbrochen werden. Der Startzeitpunkt einer Sendung kann so bis zur maximalen Nachrichtenlänge verzögert werden (nicht-deterministisches Verhalten).