Gary: Bitweise Arbitierung

Beitrag lesen

Hallo zusammen,

Falls Bus oder Netztechniker in der Gegend sind *g*:
Es geht um ds Verständnis eines linearen Bus-Systems (hier jetzt der CAN-Bus, wie er Beispielsweise an BMW-Motorräder verbaut wird).

Grob erklärt:
Es gibt ein Leitungspaar, das Anfangs und Endseitig mit einem Widerstand (120 Ohm) verbunden ist. Eine Leitung ist quasi CAN_High und die andere CAN_Low). Parallel dazu sind einzelne Geräte angeschlossen. Nennen wir sie A, B und C. Jedes dieser Geräte kann Nachrichten auf dieses zweiadrige Bussystem senden und auch empfangen. Bis dahin hab ich das verstanden.

Um Störungen und Fehler zu vermeiden, wird jetzt eine sog. bitweise Arbitierung verwendet. Ebenfalls grob erklärt: Jede abgesetzte Nachricht enthält einen Objekt-Identifier. Sollten nun zwei Geräte gleichzeitig senden, wird am Objekt-Identifier festgelegt , welche Nachricht eine höhere Priorität besitzt, und die Nachricht mit der niedrigeren Priorität überschrieben. Das nennt man dominat/rezessiv Management. Also das Gerät mit der unwichtigeren Nachricht unterbricht sofort die Übertragung, wenn eine höhere Nachricht im Netz anliegt.

Jetzt zum Problem:
Wenn also die Nachrichten verschieden wichtig eingestuft sind, so muss doch eine Prioritätenliste vorliegen, über die _jedes_ angeschlossene Gerät verfügt. Und wie kann man überhaupt von bitweiser Arbitierung sprechen, wenn ein Bit als kleinste Informationseinheit nur die Werte "Null" und "Eins" annehmen kann. Anhand von nur einer Zahl, kann ich doch keine Priorität festlegen. Ich brauche doch mindestens noch eine weitere oder mehrere Nummern um den Prioritätsstatus zu beschreiben (001 vor 002 usw...).

Auch stelle ich mir vor, dass bei vielen gleichzeitigen Übertragungsversuche auf den Bus die dominante Nachricht arg zerstückelt wird, auch wenn andere Sender gleich stoppen. Das bedeutet das eine Nachricht aus Sicherheitsgründen nicht nur einmal sondern gleich mehrmals übertragen werden sollte, um sicherzustellen, dass sie durch kommt.

Gruss Gary

PS.: Es ist verrückt, was manche Hersteller für einen Aufwand betreiben, nur um ein paar Meter Kupferleitung zu sparen. Deshalb frage ich mich auch: Ist es wirklich nötig, das an modernen Motorräder die Lichtmaschine mit dem otorsteuergerät und der Motor mit dem Drehzahlmesser unbedingt über ein Bussystem miteinander kommunizieren müssen?