Forum: Mikrocontroller und Digitale Elektronik MCP2515 sinnvolle Fehlerbehandlung


von Peter C. (Gast)


Lesenswert?

Hallo zusammen,
ich nutze an einem ATMega128 zwei MCP2515/MCP2551. (AVR 18,3 MHz und die 
MCPs mit 16MHz, SPI mit AVR/2)
Die Schaltung ist als Gateway ausgelegt und arbeitet mit je 100KBit. 
Durchschnittlich passieren 120 Frames bidirektional das Gateway. Im 
grunde funzt alles soweit perfekt.

Das was ich bereits eingebunden habe ist der Watchdog. Dieser wird bei 
der Verarbeitung einer bestimmten ID alle 100msec zurückgesetzt. Bei 
BUS-off wird der AVR eben über den Watchdog neugestartet.

Beim letzten Test habe ich zyklisch TEC und REC einfach so ausgelesen 
und die Zähler waren immer "0".


Hier meine Frage:
Ich suche nach einem Denkanstoss, Hinweis oder einem guten Beispiel eine 
möglichst "sinnvolle und schnelle Fehlerbehandlung" durchführen zu 
können. Die Überlegung geht vom zyklischen auslesen der TEC und REC 
Werte die ja eine Tendenz anzeigen bevor der MCP auf BUS-passiv oder 
BUS-off geht oder dem einbinden in den Interrupt (Verzweigung in der 
ISR) oder auslesen des EFLG – ERROR FLAG Registers.


Ich möchte dem AVR nur unnötige Rechenzeit ersparen oder eben sinnvoll 
ein setzen.
Danke für jeden Denkanstoss.

Gruß
Peter

PS: die Suchfunktion gibt da nichts her................

von Thomas K. (tomk)


Lesenswert?

Hi Peter,

> Die Schaltung ist als Gateway ausgelegt und arbeitet mit je 100KBit.
> Durchschnittlich passieren 120 Frames bidirektional das Gateway. Im

da schreibst Du ein bisschen zu wenig um beurteilen zu können, ob das 
geht/ausreicht.

Ziel einer Fehlerbehandlung ist ja: a) Erkennen des Fehlers und b) 
Ersatzfunktion, falls möglich. Frage ist also, was soll überhaupt 
gemacht werden. Gateway heisst ja auch, das Du irgendwo einen Empfänger 
sitzen hast, der die Daten empfangen soll. Was erwartet der, wenn: a) 
durch Kabelbruch, Verlust Versorgungsspannung, Tranceiverdefekt etc. die 
Frames ausbleiben, b) was wird erwartet, wenn durch Einstrahlung eine 
Verfälschung der Nutzdaten auftritt und c) wenn der Sender durch 
Softwaredefekt "Dauerstrich" sendet, d.h. falsches Raster oder 
unverändert immer die gleichen Daten. (weil Software ist "hängen 
geblieben")

Das sind die Fragen, die Du Dir stellen musst. Und natürlich, welche 
Kritikalität die einzelnen Ausfallmöglichkeiten haben. Wenn der 
Empfänger z.B. nur die Daten mitloggen muss, kannst Du dir u.U. die 
Fehlerbehandlung ersparen. Dann fehlen halt nur ein paar Daten.

Schönen Tag noch, Thomas

von Peter C. (Gast)


Lesenswert?

Hallo Thomas,
ja manchmal sieht man den Wald vor lauter Bäumen nicht und beschreibt 
einfach zuwenig.

Das Gateway sitz zwischen einem Kombiinstrument und einem Radio. Es ist 
keine sicherheitsrelevante Anwendung. CAN_O ist die Seite des 
Kombiinstrumentes und CAN_1 ist die Seite des Radios. Aktiviert sind in 
beiden MCP2515 die RX-Interrupt um angezeigt zubekommen „neue Nachricht“ 
vorhanden. Gesammelte Ausgabe am MCP durch den INT Pin.

Fällt der CAN_0 aus oder die ID Zündung wird nicht übertragen (0x271 
wird überwacht) startet der Watchdog das Gateway komplett neu. Nach 10 
Versuchen stellt sich das Gateway dann ganz ab.
Fällt die Spannungsversorung am Gateway aus wird es quasi gebrückt, der 
Betrieb läuft ohne Gateway mit direkter Verbindung zwischen den Geräten 
weiter.

Sinn des Gateway ist es bei Bedarf den Dateninhalt von ein paar IDs zu 
verändern. Der Inhalt der Nutzdaten wird nicht auf Plausibilität 
geprüft, lediglich wird anhand einzelner Daten die Funktion des Gateway 
beeinflusst.

Ansonsten werden nur die restlichen Datenpakete in beide Richtungen 
durchgeroutet.

Die EMV Empfindlichkeit ist erstmal kein Thema……………..

Also überwacht wird schon:
-  CAN_O auf Funktion durch Vorhandensein der Zündungsdaten auf 0x271
-  Spannungsversorgung des Gateway

So wäre also noch der CAN_1 in die Überwachung einzubauen. !!!

Der Gedanke ging in Richtung EFLG Register, TEC oder REC um vor dem 
BUS-Off eingreifen zu können oder benachrichtigt zu werden (eventuell im 
Eeprom speichern). Nach einem Spannugs on/off bzw. Hardwarereset sind 
die betreffenden Register der MCP2515 wieder leer und Anhaltspunkte 
wären verloren.

von Thomas (kosmos)


Lesenswert?

interessant, welche Daten an Radio tust du den manipulieren? 
Geschwindigkeit oder Zündung um Filme während der Fahrt ansehen zu 
können?

von Peter C. (Gast)


Lesenswert?

Hallo,
für die Darstellung von Filmen oder wenn man diese Möglichkeit nutzen 
will gibt es andere Vorgehensweisen. Da muß man diesen aufwendigen Weg 
nicht gehen.

Ich beschreibe die IDs neu die für die Darstellung der Sender im 
Kombiinstrument zuständig sind. So habe ich 2 x 8 Zeichen für meine 
freie Verwendung.

Gruß
Peter

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
Noch kein Account? Hier anmelden.