Hallo, 1. je mehr ich für CAN lerne, desto mehr komme ich durcheinander. Wie soll eigentlich Acknowledge Bit beim CAN-BUS funktionieren, wenn er eigentlich nicht teilnehmer-orientiert, sondern nachrichten-orientiert ist? Wie ich verstanden, es werden nicht die Teilnehmer selbst adressiert, sondern Nachricht wird auf Bus gelegt und nach Bedarf (also nach zutreffendem ID) gelesen.. Wer soll da also das Lesen bestätigen? 2. wenn CAN kein Acknowledge Bit erhält, werden alle Teilnehmer am Bus abgeschaltet? bitte um Hilfe, es ist viel zu viel Info, das sich widerspricht, ich brauch da mal einen Anstoß danke
:
Bearbeitet durch User
Alex S. schrieb: > Wer soll da also das Lesen bestätigen? Jeder Teilnehmer der eine Botschaft empfängt, bei der die Prüfsumme zum Nachrichteninhalt passt. Passt bei einem Teilnehmer die Prüfsumme nicht zum Inhalt schreibt dieser dominant in den Error Frame und alle Teilnehmer verwerfen die Botschaft Alex S. schrieb: > wenn CAN kein Acknowledge Bit erhält, werden alle Teilnehmer am Bus > abgeschaltet? Nein, die Nachricht wird verworfen/ignoriert. Der Sender setzt seinen Fehlerzähler hoch.
Also ACK ist doch sogar schon im Wikipedia-Artikel zu CAN ausreichend erklärt. 1) Jeder Knoten, der die Nachricht empfängt und die CRC geprüft hat, überträgt im ACK-Slot einen dominanten Pegel. Dabei ist es egal ob das einer oder alle Knoten machen. Lediglich wenn garkein Knoten ein ACK sendet und der Bus damit im rezessiven Zustand bleibt, wird dies beim Empfänger erkannt. Zusätzlich wird danach von allen Knoten, die den Fehler erkannt haben, ein Error-Frame gesendet. 2) Alle Knoten vom Bus zu trennen macht bei einem einfachen Fehler wenig Sinn. Passiert ein Fehler und der sendende Knoten erkennt, dass kein ACK zurück kommt, kann er die Nachricht einfach nochmal schicken. Normalerweise hat auch jeder Knoten intern einen Zähler und schaltet nach einer bestimmten Anzahl fehlerhaft gesendeter Nachrichten erstmal eine Weile (oder bis zu Neustart) ab um den Bus nicht zu beeinträchtigen.
um es nochmal klar zu sagen: das ACK bit signalisiert nur, dass die Nachricht korrekt gesndet wurde, nicht dass irgenwer damit etwas anfangen konnte.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.