Könner schrieb:
>> - Evtl. vorhandene Filter haben darauf keinen Einfluss
> Doch haben Sie. In den mir bekannten CAN Controllern wird das ACK Bit
> nur gesetzt wenn die Adresse durch die Filter durchkommt.
Auch alle mir bekannten CAN Controller senden das Ack Bit unabhängig vom
Filter. Die CAN ID darf er ja erst auswerten, wenn die Nachricht von
allen Teilnehmern fehlerfrei empfangen wurde. Oder sie würde immer
wiederholt werden, wenn sich niemand hierfür interessiert.
>> - Wenn der Sender kein ACK bekommt sollte nach einer bestimmten Zeit
>> ein Fehler erkannt werden
> Der Sender Wiederholt so lange die Nachricht bis er in den CAN Passive
> Zustand wechselt. Die Grenze dafür kann man meistens einstellen. Danach
> hört er nur noch passiv zu, deswegen der Name passiv. Kommen dann
> genügend korrekte Nachrichten vorbei geht er wieder in den normalen
> Modus und kann wieder senden.
Der Sender merkt bei jedem fehlenden Ack einen Fehler (Acknowledge
Error) und sendet aufgrund dieses Fehlers die Nachricht erneut.
Richtig ist, dass bei zuvielen Fehlern der Zustand aufgrund der Error
Counter gewechselt wird. Falsch ist an dieser Aussage, dass ein Error
Passive Knoten nicht sendet. Er nimmt weiter an der Kommunikation teil.
Erst, wenn ein Wechseln in den Bus Off state erfolgt, sendet er nicht
mehr.
'Error Passive' heißt es, weil der Knoten den Bus nicht mehr mit aktiven
Error Flags stört. Egal, ob er recht hat oder nicht.