Abschnitt 6.1 der CAN-Spezifikation :
BIT ERROR: Ein Gerät, das ein Bit auf dem Bus sendet, überwacht auch den Bus. Ein BIT-FEHLER muss zu diesem Zeitpunkt erkannt werden, wenn der überwachte Bitwert vom gesendeten Bitwert abweicht. Eine Ausnahme ist das Senden eines "rezessiven" Bits während des gefüllten Bitstroms des ARBITRATION FIELD oder während des ACK SLOT.
Der Knoten, der zuerst eine '1' sendet, wenn der andere eine '0' sendet, wird einen Bitfehler feststellen und dann einen Fehler als normal signalisieren - indem ein Fehlerflag (siehe Abschnitt 3.1.3) gesendet wird, wie dies formal beschrieben wurde in Abschnitt 6.2.
Informell wird, wenn dieser Knoten fehleraktiv ist (was der übliche Fall sein sollte), ein Fehlerflag von 6 dominanten Bits gesendet, das auch alle anderen Knoten erkennen (als Stopfehler). Dies hat den Effekt, dass diese Nachricht vollständig zerstört wird:
- Niemand wird es erhalten
- Keiner der Sender wird glauben, dass er etwas erfolgreich gesendet hat.
Jeder Sender wird dann versuchen, erneut zu senden - je nach dem genauen Zeitpunkt der erneuten Übertragungen kann einer die Verstärkungsregelung des Busses ausreichend vor dem anderen starten. Andernfalls kann dieselbe Sequenz erneut auftreten. (Oder eine andere Nachricht mit höherer Priorität kann sie beide für eine Weile abschrecken!)
Erweiterte Antwort, inspiriert von der Antwort von @ clabbacchio unten.
Sie erwähnen "böse Knoten", und clabbacchio macht den gültigen Punkt, dass, wenn zwei Knoten zu unterschiedlichen Zeiten senden, jeder Empfänger entscheiden muss, was mit seinen mehreren Empfängen zu tun ist.
Dies wurde durch einen Hack im letzten Jahr demonstriert . In dem Artikel wird im Abschnitt "PSCM-Besonderheiten" erläutert, wie ein Angreifer mit den normalen Nachrichten auf dem Bus synchronisieren und seine böse Nachricht kurz vor der Nachricht wiedergeben kann, die das "gute" Steuergerät senden soll. Die empfangende ECU akzeptiert die frühere Nachricht, aktualisiert ihren Nachrichtenzähler und verwirft dann die "guten" Nachrichten als fehlerhaft, da ihr Nachrichtenzähler nicht inkrementiert wurde.