CRC und Acknowledgement

Übertragungssicherheit

Eine der größten Herausforderungen im Zusammenhang serieller Kommunikation im Kraftfahrzeug besteht darin, eine äußerst hohe Übertragungssicherheit zu garantieren. Das CRC-Verfahren (CRC: Cyclic Redundancy Check) stellt eines der leistungsstärksten Fehlererkennungsverfahren dar.

CRC-Sequenz

Im Rahmen des CRC-Verfahrens wird auf Basis der zu übertragenden Bits (SOF bis einschließlich des Data Fields) und eines durch die ISO 11898-1 definierten Generatorpolynoms G(x) eine CRC-Sequenz berechnet, die den zu übertragenden Bits angehängt wird. Das Gesamtpolynom entspricht dem Vielfachen der zu übertragenden Bits. Der Empfänger des Gesamtpolynoms erkennt dann mit sehr hoher Sicherheit einen Übertragungsfehler (Ausnahme: CRC-Sequenz wurde selbst Opfer einer Störung), wenn die Division durch das Generatorpolynom einen Rest ergibt.

Acknowledgement

Auf der Basis des Divisionsergebnisses steuert jeder Empfänger unabhängig von der Akzeptanzfilterung das Acknowledgement. Entweder quittiert ein Empfänger positiv oder negativ. Ein dominanter Pegel im ACK-Slot entspricht einer positiven, ein rezessiver Pegel einer negativen Quittung.

ACK-Delimiter

Der ACK-Delimiter wird zwecks Fehlerverfolgung immer rezessiv übertragen. Da der Sender sowohl den ACK-Slot als auch den ACK-Delimiter rezessiv überträgt, reicht eine positive Quittung aus, um dem Sender die Korrektheit der Botschaftsübertragung zu bestätigen. Deswegen bezeichnet man das Acknowledgement im CAN-Netzwerk auch als knotenneutrales positives Acknowledgement.

Eine interaktive Animation zum Acknowledgement lädt Sie ein, sich mit dem Acknowledgement im CAN-Netzwerk interaktiv auseinanderzusetzen. In der Grafik wird von einem CAN-Netzwerk mit einem Sender und zwei positiv quittierenden Empfängern ausgegangen.

ACK-Fehler und
Error Flag

Aufgrund des knotenneutralen positiven Acknowledgements werden negativ quittierende CAN-Knoten überschrieben und bleiben zunächst ungehört. Zur Sicherstellung netzweiter Datenkonsistenz senden diese nach dem ACK-Delimiter ein Error Flag.

Liegt keine einzige positive Quittung vor, wird also der rezessive ACK-Slot von keinem Empfänger überschrieben, detektiert der Sender einen ACK-Fehler und bricht die laufende Nachrichtenübertragung mit dem Aufschalten eines Error Flags sofort ab. Ein ACK-Fehler weist auf einen vom Sender verursachten Fehler oder auf nicht vorhandene Empfänger hin.

Zuletzt geändert: Donnerstag, 29. März 2018, 15:45