CAN: Erkennung BusOff eines Teilnehmers

OP #1735491
Lesenswert?
• ▲
▼
Hallo zusammen,
ich habe ein CAN-Netzwerk für eine Gebäudeanwendung am laufen, welches 
aus folgenden Komponenten besteht:

Hauptprozessorplatine mit CAN-Schnittstelle, einmal vorhanden
Infineon XE167.

Stockwerksknoten, einmal pro Etage vorhanden (maximal 64 Stück!)Infineon 
XC888.

Im Wesentlichen werden auf dem BusEin-Ausgangszustände bzw. Seonsordaten 
zwischen Hauptprozessor und den Stockwerksnoten übertragen.
Jeder Stockwerksknoten enthält einen DIP-Schalter, über den die Etage 
eingestellt wird. Aus der Schalterstellung werden die Identifier der 
Nachrichtenobjekte für den jweiligen Knoten generiert.

Das Ganze läuft fehlerfrei und befindet sich derzeit in der Testphase.

Jetzt kann folgender Fall auftreten: Der Anwender stellt an mehreren 
Knoten versehentlich dieselbe Etage ein, was dazu führt, daß mehrere 
CAN-Knoten mit den selben Identifieren arbeiten.
Sofern die Knoten zeitgleich senden, laufen die Transmit-Errorcounter 
hoch und schlimmstenfalls nimmt einer bzw. mehrere der betroffenen 
Knoten den Zustand "Bus Off" ein.

Die Knoten erkennen das Vorhandensein von doppelten Identifieren in dem 
Moment, wo sie eine Nachricht auf dem Bus emfpangen, die nur von ihnen 
selbst gesendet werden kann und melden dies an den Master, sodaß der 
Benutzer eine entsprechende Meldung erhält.

Was mich aber interessiert:
Muß eine BusOff-Recovery Sequenz eingebaut werden und, falls ja, wie 
sieht diese aus ?

Das Problem ist, daß ein Zugriff auf das NodeControl Register bei diesem 
Prozessor nicht so einfach ist und sicherlich den Normalen Betrieb 
stört, sofern dieses zyklisch gelesen würde.

Gruß Holger
#1735509
Lesenswert?
• ▲
▼
Was nützt dir ein "BusOff-Recovery" wenn du immer noch die falsche ID 
hast?

CANopen vermeidet dieses mit dem LSS (Layer Setting Service), in dem die 
ID vom LSS-Master, beim BUS start, vergeben werden.

Anmerkung: BUSOFF (und die anderen Fehlerzustände)können (bei allen mir 
bekannten Controller) eien Interrupt auslösen.
Und was stört mehr, ein BusOff oder ein gelegentliches auslesen der 
Fehlerregister?

ciao Volker

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.