Busblockade vermeiden

Zur Sicherstellung netzweiter Datenkonsistenz besitzt jeder Knoten in einem CAN-Netzwerk das Recht, eine als fehlerhaft interpretierte CAN-Botschaft abzubrechen. Dies gilt auch für CAN-Knoten, die irrtümlicherweise korrekte CAN-Botschaften als fehlerhaft interpretieren. Um die Blockierung des Übertragungsmediums zu vermeiden, hat man im CAN-Protokoll eine Fehlerverfolgung definiert, mit der die CAN-Knoten gelegentlich auftretende von anhaltenden Störungen unterscheiden können. 

TEC und REC

Im Zuge dessen führt jeder CAN-Controller einen Sendefehlerzähler TEC (Transmit Error Counter) und einen Empfangsfehlerzähler REC (Receive Error Counter). Im Falle einer erfolgreichen Übertragung eines Data oder Remote Frames wird der entsprechende Fehlerzähler dekrementiert (TEC=TEC-1; REC=REC-1). Durch das Entdecken und anschließende Übertragen eines Error Flags wird der entsprechende Fehlerzähler nach bestimmten Regeln inkrementiert. Für den Sender gilt folgende Regel: TEC=TEC+8. Fehlererkennende Empfänger inkrementieren ihren REC zunächst um eine Einheit (REC=REC+1). Für den Fehler verursachenden Empfänger gilt zudem REC=REC+8.

Error Active

In Abhängigkeit des jeweiligen Zählerstands unternimmt ein CAN-Controller die Umschaltung des Fehlerzustandes. Nach dem Start nimmt ein CAN-Controller den Normalzustand Error Active ein. In diesem Zustand überträgt der CAN-Controller nach Detektion eines Fehlers sechs dominante Bit (aktives Error Flag). Nach Überschreiten einer Grenze (TEC>127; REC>127) wechseln die CAN-Controller in den Zustand Error Passive.

Error Passive

CAN-Controller im Zustand Error Passive können einen entdeckten Fehler lediglich mit sechs homogenen rezessiven Bits signalisieren. Fehlererkennenden Empfängern wird so die Möglichkeit genommen, entdeckte Fehler zu globalisieren. CAN-Controller, die sich im Zustand Error Passive befinden, müssen beim Senden von zwei aufeinanderfolgenden Data oder Remote Frames zusätzlich die „Suspend Transmission Time“ (8 Bits) abwarten.

Bus Off

Bei Ausfall eines CAN-Controllers oder bei extremer Fehlerhäufung erfolgt ein Zustandsübergang nach Bus Off. Der CAN-Controller trennt sich vom CAN-Bus ab. Der Zustand Bus Off kann nur durch Eingriff des Host (mit 128 x 11 Bit Zwangswartezeit) oder per Hardware-Reset verlassen werden.

Zuletzt geändert: Mittwoch, 22. September 2021, 11:14