Forum: Mikrocontroller und Digitale Elektronik CAN-Bus-Analyse


von Thomas P. (topla)


Lesenswert?

Hallo,

ich stehe vor der (selbst gesetzten) Aufagbe, einen unbekannten CAN-Bus 
zu analysieren. Ich sehe es sportlich, geht es, ist es prima, geht es 
nicht, ist es auch nicht tragisch. Blöd ist nur, dass ich technisch 
nichts über den Bus in Erfahrung bringen konnte. Ziel ist, auf dem Bus 
mitzuhören und einige (wenige) Daten herauszuziehen und weiter zu 
verarbeiten. Der Bus verbindet  zwei Steuergeräte und es werden 13 
verschiedene Informationen ausgetauscht. Als erstes muss also mal ein 
Sniffer her. Nach stundenlanger Lektüre hier im Board bin ich jetzt bei 
dem ATMegaEvoBoard mit AT90CAN128 von www.microcontroller-starterkits.de 
gelandet, alternativ auch das entsprechende Zusatzmodul zum STK500. 
Eigenbau für diesen Zweck scheidet erst einmal aus, da ich mich weniger 
mit dem Herstellen des Sniffers als mit dem CAN-Bus beschäftigen möchte. 
Hat da jemand noch bessere Alternativen in der Hinterhand? Gibt es 
irgendwo Hinweise zum prinzipiellen Vorgehen bei diesem Vorhaben? Mit 
Assembler 8051 und AVR bin ich schon vertraut, C wäre Neuland.

Danke für alle Informationen.
Gruß
Thomas

von Otto (Gast)


Lesenswert?

Hallo Thomas,

wenn Du irgendein Controller-Board hast, mit dem Du die schon gut 
auskennst, stricke einen SJA1000 dran. Der hat einen "Listen only mode".

Gruss Otto

von Thomas P. (topla)


Lesenswert?

Gibt es da jetzt prinzipielle Unterschiede zum PCA82C250 oder fällt das 
unter persönliche Vorlieben? Habe da wirklich noch keinen Plan davon, 
bin aber häufig auf die Kombination PCA82C250 + MCP2515 gestoßen.
STK500 ist vorhanden und ich komme damit ganz gut zurecht.

Gruß
Thomas

von Otto (Gast)


Lesenswert?

Hallo Thomas,

das physikalische Interface (PCA82C250) braucht Du immer zusätzlich. Der 
MCP2515 ist ein CAN-Controller mit SPI - der SJA1000 ist parallel oder 
auch als Memory anschliessbar.

Wenn Du bereits etwas mit SPI gemacht hast, nimm den MCP2515, der hat 
auch einen Listen-Only-Mode.

Otto

von Thomas P. (topla)


Lesenswert?

Ja, SPI ist kein Hit, habe mit SPI die ganze Tastaturabfrage, 
Anzeigeausgabe und Fahrstraßensteuerung meiner Modellbahn als Zubehör zu 
einer Lenz-Steuerung mit LZV100 gelöst.
Hat jemand noch Vorschläge zur prinzipiellen Vorgehensweise bei der 
CAN-Bus-Analyse? Wie kann man effektiv die Busgeschwindigkeit ermitteln?

Gruß
Thomas

von Otto (Gast)


Lesenswert?

> Wie kann man effektiv die Busgeschwindigkeit ermitteln?

Scope oder "autodetect" programmieren und ermittelte Werte anzeigen....

Otto

von Martin (Gast)


Lesenswert?

Schau mal hier vorbei:
http://martinsuniverse.de/projekte/caninterceptor/caninterceptor.html
Das Lawicel-Protokoll kommt auch noch in Kürze rein.

sonst mal hier schauen:
http://www.canhack.de

von Martin (Gast)


Lesenswert?

Baudrate kann mit einem Oszi ermittelt werden.

von Christian_RX7 (Gast)


Lesenswert?

Hallo,

ich hab auch sowas ähnliches vor, werde mir das Modul: 
http://www.mhs-elektronik.de/cgi-bin/mhs.pl?id1=2&id2=1 nachbauen, denn 
den Schaltplan und die Soft- und Firmware bekommt man gratis über 
Elektor.

Hat jemand Erfahrung damit?

Viele Grüsse,
Christian

von Rolf Magnus (Gast)


Lesenswert?

Eine Baudratenerkennung kannst du entweder über das Ermitteln der 
Bitlänge machen, oder ganz einfach indem du mit deinem CAN-Controller im 
listen-only-Modus (wichtig!) die üblichen Baudraten von der höchsten 
nach unten durchprobierst, bis du was empfängst.

von Thomas P. (topla)


Lesenswert?

Danke für die ganzen Infos, da gibt es wieder neue Ansatzpunkte. 
Manchmal sieht man den Wald vor lauter Bäumen nicht; ich werde erstmal 
einen Treiberbaustein an den CAN-Bus knüppern und dann mal ganz simpel 
den Logikanalysator dranhängen - da ist ja ein CAN-Bus-Interpreter dabei 
und in dem kann man auch ganz leicht mit der Bitrate herumspielen.

Gruß
Thomas.

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.