Die kurze Antwort lautet, dass der Knoten die CAN-Leitungen überwachen muss, um für eine bestimmte Zeit inaktiv zu sein, bevor er versucht zu senden. Wenn also ein anderer Knoten sendet, muss er ruhig bleiben, bis der andere Knoten fertig ist.
Ein CAN-Bus basiert auf Differenzsignalisierung. Die beiden Leitungen CAN-High (CAN +) und CAN-Low (CAN-) liegen beide im Leerlauf, wenn der Bus im Leerlauf ist. Zum Senden von Bits legt ein CAN-Sender eine Differenzspannung an die Leitungen von etwa 2 Volt an.
Ein CAN-Sender erkennt zuerst, ob der Bus inaktiv ist, und beginnt zu senden, wenn dies der Fall ist. Das Schiedsverfahren funktioniert so, dass ein Sender den Bus während des Sendens überwacht. Die Übertragung erfolgt wie oben beschrieben, indem entweder die beiden Leitungen auf dem gleichen Potential oder auf einem Differenzpotential gehalten werden. Wenn also der Sender ein bisschen sendet, indem er die Leitungen auf dem gleichen Potential (sic) hält, aber sieht, dass die beiden Sendeleitungen ein Differenzpotential haben, bedeutet dies, dass ein anderer Knoten sendet und der erste Sender die Arbitrierung verloren hat. Es muss dann aufhören zu senden.
Wenn ein Knoten zum ersten Mal mit dem Senden beginnt, sind die übertragenen Bits bis zur Adresse des sendenden Knotens, die offensichtlich unterschiedlich sind, gleich. Wenn zwei Knoten gemeinsam senden, senden sie synchron, bis der Adressenteil erreicht ist. Wenn sich die Adresse unterscheidet, bemerkt ein Knoten einen Potentialunterschied auf den Leitungen, selbst wenn er keinen auf die Leitungen setzt. Dann weiß es, dass es verloren hat und muss es erneut versuchen. Der gewinnende Knoten sendet weiter, ohne zu wissen, dass es auch ein anderer Knoten versucht hat. Natürlich erstreckt sich diese Logik auch auf mehr als zwei Knoten.
Ich hoffe das hilft.