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
> drei Bus leitungen
Der Bus besteht aus nur 2 Leitungen.
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
Masse wird nicht benötigt. CAN ist ein Differenzieller Bus.
>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! ;)
> Masse wird nicht benötigt.
Wirklich? Auch ohne galvanische Trennung?
die macht ja im auto auch so viel sinn?? und ja, auch ohne... das ist gerade der trick an differentiell.
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.
@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.
> 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.....
> 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
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
@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).
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.
> 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.
Du meinst bestimmt den MCP2515 und das ist ein CAN-Controller. Der ist quasi schon im ATCAN eingebaut.
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.
>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
> Ich glaube nicht, dass er das meinte... ;)
Wer weiß das schon ;-) .
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.