Einführung in CAN

     
Fehlerverfolgung
26/30


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 (siehe Grafik „Fehlerverfolgung“).

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.

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“.

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.

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 (siehe Grafik „Fehlerverfolgung“).
 

Fehlerverfolgung

Fehlerverfolgung

© 2006-2010 Vector Informatik GmbH. 2009-10-28