Forum: Mikrocontroller und Digitale Elektronik CAN Bus im Fahrzeug auslesen und auf Display anzeigen


von Sebastian (Gast)


Lesenswert?

Hallo,

Ich hab viele interessante Artikel in diesem Forum zum CAN Bus gefunden. 
Nun würde ich gerne einen AT90CAN128 oder ähnlichen Controler verwenden 
um den CAN Bus eines Fahrzeugs mitzulesen. Ich dachte mir,man könnte ein 
kleines Interface konstruieren, das man einfach parallel an die drei Bus 
leitungen anschließt und die Frames seriell ausgibt oder auf ein Display 
schreibt. Leider weis ich nicht so recht, ob beispielsweise folgendes 
Projekt dabei hilfreich ist:

Beitrag "Beispiel Projekt AT90CAN128 AVRStudio  LCD  Timer"

Würde eine socleh einfache Schaltung ausreichen?

Gruß,Sebastian

von Martin (Gast)


Lesenswert?

> drei Bus leitungen

Der Bus besteht aus nur 2 Leitungen.

von Martin (Gast)


Lesenswert?

Was wild du genau für Daten auslesen?

von Micha B. (chameo)


Lesenswert?

Naja, CAN-H, CAN-L und Masse sind drei Leitungen auch wenn letztere 
keine Busleitung ist.

Ein nettes Board mit Demo-Code gibt es hier:

http://www.kreatives-chaos.com/artikel/can-testboard

von Martin (Gast)


Lesenswert?

Masse wird nicht benötigt. CAN ist ein Differenzieller Bus.

von Dude (Gast)


Lesenswert?

>Masse wird nicht benötigt. CAN ist ein Differenzieller Bus.

dennoch gibt es eine seperate CAN_GND-Leitung die gerade im 
automobilebereich für alle Hersteller notwendig ist.

das grösste Problem welches Du wahrscheinlich bekommen wirst ist dass, 
das Du in erfahrung bringen musst welche COB-ID zu welchem Parameter 
gehört, ansonsten nützt das ganze auslesen ja nichts!

Wenn Du auf dem Bus "nur hören" willst, müsste das Teil oben völlig 
ausreichen, vom Daten senden würde ich ersteinmal abraten bis Deine 
Soft- und Hardware ganz sicher fehlerfrei funktioniert! ;)

von Bensch (Gast)


Lesenswert?

> Masse wird nicht benötigt.

Wirklich? Auch ohne galvanische Trennung?

von Michael H* (Gast)


Lesenswert?

die macht ja im auto auch so viel sinn?? und ja, auch ohne... das ist 
gerade der trick an differentiell.

von F'Dor (Gast)


Lesenswert?

die GND Verbindung wird benötigt.

Es ist richtig, dass CAN ein differentieller Bus ist, aber er beruht 
trotzdem auf einer Referenzspannung und das ist nun mal GND. Im Auto 
dient die Karosserie als GND Referenzpotential.
Bei kurzen Anschlusskabeln mag es vielleicht funktionieren, aber bei 
längeren nicht mehr. Das Problem verstärkt sich, wenn man zudem eine, 
vom Fahrzeug, unabhänge Spannungsversorgung nimmt.

von Martin (Gast)


Lesenswert?

@F'Dor

Ich würde mal behapten, dass dein Aussage von vorne bis hinten Falsch 
ist. Der CAN-Bus läuft auch bei getrennten Betriebsspannung nur über 2 
Leitungen. Wenn GND als Referenz dienen würde währe es kein 
differentieller Bus mehr. Das einzige wozu GND gut ist, ist für die 
Abschimung der Leitung.

von Bensch (Gast)


Lesenswert?

> Wenn GND als Referenz dienen würde

Nein, GND dient NICHT als Referenz, trotzdem musst du die GNDs verbinden 
oder  das Ganze galvanisch trennen.

Sag mal, arbeitest du zufällig in einer Firma, die sowas herstellt? Dann 
bitte deren Namen- damit man nicht zufälligerweise solch einen Schrott 
kauft.....

von Martin (Gast)


Lesenswert?

> Nein, GND dient NICHT als Referenz, trotzdem musst du die GNDs verbinden
> oder  das Ganze galvanisch trennen.

Ist doch genau das was ich sage. Ich hoffe du hast dich auch schon mit 
Masseschleifen beschäftigt.

> Sag mal, arbeitest du zufällig in einer Firma, die sowas herstellt?

Ich arbeite bei Renault ;-P

von Otto (Gast)


Lesenswert?

Die ganze Diskussion über die Masse ist doch sinnlos, bei Anschluss an 
das Bordnetz ist der GND des CAN-Transceiver an GND bzw. Fahrzeugmasse 
angeschlossen. Eine galvanische Trennung ist auch vollkommen sinnfrei, 
wenn die Schaltung aus dem Bordnetz versorgt wird.

Gruss Otto

von F'Dor (Gast)


Lesenswert?

@Bensch - Warum so aggressive? Dieses Problem hatte ich während meiner 
Diplomarbeit!

Hab mir fast schon gedacht, dass meine Erklärung etwas zu kurz ist. :)

GND dient als Referenz! (siehe auch HS-CAN Application Note von Infineon 
Seite 5)

und zwar weil:

beim CAN Bus der rezessive Zustand bei 2,5V liegt. Im dominanten Zustand 
ist CANL etwa 1,5V und CANH etwa 3,5V (messbar).
Differenziell heißt nun, dass der Transceiver intern eine differentielle 
Spannung "berechnet" U_diff = U_CANH - U_CANL. Das macht im rezessiven 
Zustand 0V und im dominanten Zustand 2V. Nachlesbar in diversen 
Application Notes, zB. Infineon TLE6251 oder Philips TJA1041.

Ohne GND Verbindung kann es nun zu eine GND Offset zwischen den Knoten 
kommen, damit kann die differentielle Spannung nicht mehr ermittelt 
werden. Ein Knoten kann den anderen zwar empfangen, der andere aber 
nicht mehr senden. (hängt davon ab ob man einen negativen oder positiven 
GND Offset hat).

von Gast (Gast)


Lesenswert?

Das einzige Problem sind Bezugspotentiale, die so unterschiedlich sind, 
dass die Transceiver sterben.
Beispiel: CAN-Teilnehmer1 hat seine Masse bei 0V, CAN-Teilnehmer2 hat 
seine Masse z.B. bei 80V -> wenn diese nur über die beiden CAN-Leitungen 
verbunden sind, führt das zum vorzeigen Ableben des Transceivers, da die 
absoluten Pegel dann eben 80V+2.5V sind...
Sollten die beiden Teilnehmer galvanisch getrennt sein, funktioniert 
alles wie gewollt.

von F'Dor (Gast)


Lesenswert?

@ Otto

Recht hast Du!!!

von Bensch (Gast)


Lesenswert?

> Das einzige Problem sind Bezugspotentiale, die so unterschiedlich sind,
dass die Transceiver sterben.

Genau DAS ist das Problem, das hier einige nicht kapieren.

In jedem Fall gibt es bei differentieller Übertragung DREI Verbindungen. 
Ob eine davon jetzt durch die Fahrzeugkarosserie hgergestellt wird, 
spielt keine Rolle. Und beim Projekt des OP ist das zusätzliche Teil 
vermutlich NICHT fest mit der Karosserie verbunden, also braucht er 
mindestens 3 Leitungen plus evtl. Betriebsspannung.

von Sebastian (Gast)


Lesenswert?

Danke für eure Hilfe!

Warum braucht man diesen MC2515? Ist der ATCAN nicht ausreichend?

Gruß,Sebi

von Martin (Gast)


Lesenswert?

Du meinst bestimmt den MCP2515 und das ist ein CAN-Controller. Der ist 
quasi schon im ATCAN eingebaut.

von Martin (Gast)


Lesenswert?

Ich denke, hier wird einiges zusammen in einen Topf geworfen.

1. Gemeinsamme Betriebsspannung : GND sollte nicht als 3. Leitung für 
den Bus verwendet werden, bereits eine Masseverbindung über das Chassis 
besteht => Masseschleife. Empfänger und Sender sind schon (über die 
Karosserie) Massemäßig verbunden. Da darf die Potentalunterschied 
(Shifted Ground) nicht zu groß werden, sonst Tranciever kaputt.
Gut das F'Dor die Application Notes vom Infineon TLE6251 ansprichst.

http://www.infineon.com/dgdl/HighSpeedCAN-AN.pdf?folderId=db3a304412b407950112b408e8c90004&fileId=db3a304412b407950112b416f93221e8

Ihr möget euch mal Absatz 2.3.6 zu Gemüte führen.

2. Getrennte Versorgungsspannungen : Eine GND Leitung ist nicht 
erforderlich, da differentieller Bus.

> Das einzige Problem sind Bezugspotentiale, die so unterschiedlich sind,
> dass die Transceiver sterben.

Das nenntr sich auch Ground shift. Also "gemeinsamme" Masse, da nicht 
galvanisch getrennt, oder anders herum eine elektrische Verbindung 
besteht.

> Beispiel: CAN-Teilnehmer1 hat seine Masse bei 0V, CAN-Teilnehmer2 hat
> seine Masse z.B. bei 80V -> wenn diese nur über die beiden CAN-Leitungen
> verbunden sind, führt das zum vorzeigen Ableben des Transceivers, da die
> absoluten Pegel dann eben 80V+2.5V sind...

Sollte sich dieser Satz auf Getrennte Versorgungsspannungen beziehen: 
Ohne Masseverbindung gibt es diese 80V nicht, sondern nur die 
Differenspannung.

von Meister E. (edson)


Lesenswert?

>Warum braucht man diesen MC2515? Ist der ATCAN nicht ausreichend?

Du meinst den MC2551, das ist der Transceiver für die CAN-Hardware des 
uC.

>Du meinst bestimmt den MCP2515 und das ist ein CAN-Controller.

Ich glaube nicht, dass er das meinte... ;)

Gruss,
Edson

von Martin (Gast)


Lesenswert?

> Ich glaube nicht, dass er das meinte... ;)

Wer weiß das schon ;-) .

von Meister E. (edson)


Lesenswert?

Eine reine Glaubensfrage...

von Soe (Gast)


Lesenswert?

Um noch mal eben auf die Eingangsfrage zurückzukommen (die Sache mit dem 
GND sollte man vielleicht in einem anderen Thread austragen...):
Die reinen CAN-Daten abzuhören ist sicherlich hardwaremäßig kein 
Problem. Wenn du jetzt aber versuchen möchtest, Fahrzeugdaten 
(Geschwindigkeit, Drehzahl, Temperatur, what ever----) als Klartext auf 
einem Display auszugeben, muss ich dir leider sagen, dass du da nahezu 
keine Chance haben wirst. Die ID's sind absolute Firmengeheimnisse und 
es ist quasi unmöglich da ran zu kommen. Es gibt allerdings von einigen 
Autofreaks diverse Versuche experimentell an die nötigen Infos zu 
kommen. So weit ich weiß bis jetzt aber ziemlich erfolglos.
Sorry für schlechte Nachrichten
viele Grüße
Soe

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.