Benzin über CAN

Diskutiere Benzin über CAN im Elektrik Forum im Bereich Technik; Hallo an alle, ich bin elektronik ingenieur und würde gerne wissen wie ich mit einen Mikroprozessor über CAN lesen kann. Ich möpchte nur lesen...

luichi24h

Threadstarter
Dabei seit
09.01.2008
Beiträge
4
Hallo an alle,
ich bin elektronik ingenieur und würde gerne wissen wie ich mit einen Mikroprozessor über CAN lesen kann. Ich möpchte nur lesen, zum Beispiel den Benzinstand oder ob eine Tür offen ist. Ich kenne die CAN Struktur im Wagen aber mir fehlen die spezifischen Befehle ID für die vorne rechte Tür, usw... Jemand kann mir helfen wo ich dass erhalten kann... ich brauche es für verschiedene Marken. Muss man das kaufen oder kann ich es frei ¨¨ur die Marken finden...

Der Grund ist ich möchte ein kleines Boardcomputer nur mit den Türen status für Autos machen...
Kann mir jemand bitte helfen? Den rest (CAN Struktur, CAN programieren im Mikroprozessor...) weiss ich schon. Mir fehlen nur die IDs und an welchen "byte" ich jeden sensor im CAN Befehl finden kann.

Danke an alle.
Luis.
 

Patrick B.

-/-
Moderator
Dabei seit
18.11.2003
Beiträge
13.520
Ich denke da wirst Du dich direkt an die Hersteller wenden müssen.
Die Werkstätten bekommen zwar gewisse Infos über Spannungen im Canbus usw, man kann auch recht leicht sichtbar machen was da gerade los ist, aber von wem welche "Nachricht" ist, und was sie aussagt ist, zumindest von VW/Audi nicht an die Werkstätten rausgegeben worden. Würde uns eh nichts helfen , was sollten wir da auch dran ablesen können was nicht auch über Meßwertblöcke zu lesen ist.

Mfg Patrick.
 

luichi24h

Threadstarter
Dabei seit
09.01.2008
Beiträge
4
Danke für deine Antwort,
aber was meinst du mit Messwertblöcke? Ist es dann besser mit OBD zu machen. Ich will nur Geschwindigkeitsinfo zu eninem Mikroprozessor übertragen.

Kann mir jemand helfen.
Danke euch !!
 

MadMartin

Dabei seit
23.06.2005
Beiträge
1.381
Moinmoin !

Wenn es nur um ein bis zwei spezielle Wagen geht und Du Zeit hast, dann würde ich einfach einen Datenlogger mitlaufen lassen. Dann kommen je nach Betriebszustand irgendann bestimmt die benötigten Daten vom Bus. Du Filterst dann nurnoch mit Trial- und Error die aus, die du haben willst.

Ich würde micht parasitär verhalten und nur auf bekannte Nachrichten lauschen und mich dementsprechend Verhalten. Aktives Abfragen der Komponenen kommt meines Erachtens nicht in Frage.

Und pass' auf, daß du den richtigen CAN-Bus erwischst. Am Convenience Bus auf den Spritstand zu warten kann schonmal länger dauern. ;)

Am Timing siehst du ja, welche Nachricht zuerst auftaucht. Gerade für die Tür solle das einfach sein. Benzinstand ist nach Ausbau der Gebereinheit wohl auch einfach, wenn man
am Geber zu Testzwecken rumdrehen kann.

Daten Filtern würde ich z.B. mit einem Laptop und einem auf Regex basierenden Filter, der im Betrieb seine Filterconfig aus einer Datei liest. Gefiltert wird der soweit wie möglich (Identifier, RTR, DLC, CRC ok, Ack 1+2, daten in hex) als plain text dekodierte Datenstrom auf dem bus.
Dann kannst Du im Betrieb immer mehr Filter einbauen, bis normalerweise keine Nachricht mehr überbleibt. Die ersten Filter sind natürlich hochspeziell.

Dann machst Du mal eine Tür auf und dann wirst du schon sehen, was dann so alles extra passiert.

Eine KFZ-Bus-Programmiererei ist mit Amateuermitteln sowieso eher ein langwieriges hin-und herprobieren. Da jeder Hersteller am CAN wohl sein eigenes Süppchen kochen kann, wirst Du da am besten mal herstellerspezifische Doku heranziehen müssen. Die steht aber soweit ich weiß nur den angehängten Entwicklungsklitschen und größeren Kooperationsopartnern zur Verfügung. Die Großen lassen sich halt nicht so gerne von Dritten auf den Bus gucken.

Die Geschwindigkeit des Fahrzeugs kannst Du wohl am bequemsten per OBD abrufen.
Dafür ist vielleicht ein Stück vom Sourcecode von www.scantool.net praktisch. Wo auch immer man den Code von scantool.net bekommt. Soll ja Open Source sein ?!?

Die Info solte aber auch regelmäßig über den CAN-Bus wandern. Vermutlich aber über einen beim Fahren ziehmlich aktiven Bus zum Tachoeinsatz, so daß die Filterei in der Tat schwierig wäre. Außerdem geht die Geschwindigkeitsänderung meist mit einer Drehzahländerung einher, so daß Du dann durch Kreuzvergleich mit einer reinen Drehzahländerung die Daten zur Geschwindigkeit hoffentlich isolieren kannst.

"Meßwertblöcke" ist die Repräsentation einer beliebigen Datenmenge aus einem der Mikroprozessoren im Auto, die das firmeneigene Diagnoseprogramm dem (vom Hersteller wohl per se als _ _ _ _ verstandenen) KFZ-Mechi vorsetzt. Daraus soll der sich dann ein Bild vom Fehler machen. Statt den Mann mit den Ölfingern verstehen zu lassen, was warum und wie nicht geht, muß der dem (zurecht unzufriedenen) Kunden dann "Steurgerät defekt" erklären. Was dadrin wie und warum nicht geht ist dann egal. Zeit ist Geld. Schnell mal für xxx oder xxxx Euro ein paar Steuergeräte tauschen ist besser als eine spezialisierte und qualifizierte Fachkraft mit echtem Insiderwissen mal 3 Stunden die eigentliche Ursache suchen zu lassen. Meine Meinung.

Mfg
Martin
 

luichi24h

Threadstarter
Dabei seit
09.01.2008
Beiträge
4
Danke so sehr !!
Eine sehr gute Erklärung!!!
Ich Frage mich, was kann man da vom OBD-Bus lesen, und wo bekommt man die IDs für verschiedene Autos.... oder sind sie die selben?
Mit dem datenlogger über den CAN ist es vieleicht zu schwer für mich eine spezifische Info zu erreichen wie z.B. km-Stand des Wagens oder ähnliches.

Woher haben die Multimarke-Diagnose-Tester Hersteller diese info bekommen. Sie machen das durch den CAN, oder? Kann man das den Hersteller kaufen?

Nochmals, danke für deine Erklärung !!

Gruesse,
Luis.
 

MadMartin

Dabei seit
23.06.2005
Beiträge
1.381
Ich Frage mich, was kann man da vom OBD-Bus lesen, und wo bekommt man die IDs für verschiedene Autos.... oder sind sie die selben?
Kein Ahnung, leider :(

Mit dem datenlogger über den CAN ist es vieleicht zu schwer für mich eine spezifische Info zu erreichen wie z.B. km-Stand des Wagens oder ähnliches.
Naja, du wirst schon alles mögliche Finden, nur das Zuordnen kann schwer werden. KM Stand wird wohl echt schwer. Der kommt wohl nicht allzu oft über den Bus.

Woher haben die Multimarke-Diagnose-Tester Hersteller diese info bekommen. Sie machen das durch den CAN, oder? Kann man das den Hersteller kaufen?
Ich kann nur raten: Die bezahlen Lizenzgebühren an den Hersteller und sind durch ein Non Disclosure Agreement (NDA) gebunden. D.h. sie dürfen nix weitererzählen.

Anmerkung: OBD2 (On Board Diagnose, Version 2) ist nicht gleich CAN, es gibt auch noch vier andere Protokolle (PWM, VPM, K/KL, ISO). Außerdem ist der Stecker immer derselbe und die OBD Buchse hängt wenn sie CAN spricht, meist nicht an einem der Fahrzeuginternen CAN Busse. Siehe z.B. www.scantool.net und www.obd-2.de (beide sehr gut)

Achtung: Schreibfehler möglich mit www.obd2.de. Letzters ist ein OBD Forum. Das habe ich aber gerade nur durch Vertippen gefunden und weiß nicht, wie gut das ist.

Aber OBD2 ist zum Teil verpflichtend und genormt, damit z.B. auch die ADAC Leute mit einfachen Mitteln was sehen können. Geschwindigleit ist z.B. sicher mit OBD2 abfragbar. Das muß jedes Auto ab BJ 2000 in Deutschland können.

MfG
Martin
 

Patrick B.

-/-
Moderator
Dabei seit
18.11.2003
Beiträge
13.520
Es stellt sich die Frage ob einige dieser Infos überhaupt über den Canbus laufen, und wenn, auf welchem?
Antrieb? Komfort? Entertainment? Kombiinstrument? Diangnose...?
Oder dann doch eher über den LIN? Oder nen "Privaten" bus?
Und ob es wirklich hilfreich ist einfach den Bus anzuzapfen und warten das belkannte Signale kommen? Immerhin senden immer alle Geräte in loser folge man weiß also schonmal garnicht wer da gerade seine Nachricht auf den Bus geschickt hat.

Mfg Patrick
 

MadMartin

Dabei seit
23.06.2005
Beiträge
1.381
Moinmoin !

Die Frage ist, wieviel Aufwand will man reinstecken ?

Wenn man sich eine transparente CAN-Bridge mit Filterfunktion baut, dann sollte man doch ein einzelnes Gerät hinter der Bridge separieren können und dann sieht man, was das Gerät schickt und wo es mitlauschen kann. Die Bridge sieht ja, auf welchem Port die Pakete reinkommen.

Und dann macht man Filter auf einige Nachrichen an und guckt, was ausfällt ;)

Mfg
Martin
 

Patrick B.

-/-
Moderator
Dabei seit
18.11.2003
Beiträge
13.520
Welche port´s?
Der Canbus hat ja nunmal nur zwei Kabel, "Can High" und "Can Low". da hängen parralel alle betreffenden Steuergeräte dran die in das betreffende Canbus Netzwerk (im wesentlichen Infotainment, Antrieb und Komfort, zumindest bei VW) eingebunden sind.
Im Prinzip sind die Nachrichten immer gleich aufgebaut, ein "eröffnungsbit" in dem das Steuergerät XY mitteilt das es nun was zu vermelden hätte, dann die eigendliche Nachricht und das endbit in dem sich das Steuergerät wieder abmeldet.
Wenn zwei SH´s gleichzeitig "gesprächsbedarf" anmelden gehts nach Rangfolge.
will z.b. die Klimaanlage dem Motorsteuergerät melden das der Kompressor gleich anläuft und gleichzeitig möchte das ESP einen Instabilen Fahrzustand melden ist logischerweise bei der Klimaanlage Sendeverbot.
Somit sehe ich da im prinzip nur einen Port pro Bus.
Oder habe ich dich da falsch verstanden? Ist ja nicht so das jedes Steuergerät seinen eigenen persönlichen Bus hätte, dann hätte man sich ja den ganzen Zinober sparen können.

Mfg Patrick
 

MadMartin

Dabei seit
23.06.2005
Beiträge
1.381
Moinmoin !

@PatrickB
Genau so wie Du den Bus beschreibst beschreibst ist der auch. Aber ich will ganz was anderes.

Man Nehme einen Mikroprozessor mit 2 CAN interfaces, Interface A und B

Wenn am Port A eine x-bliebige Nachricht empfangen wird, dann wird sie zum Port B gesendet und andersherum.

Das ist die Funktion einer Bridge, das gleiche wie bei z.B. einem Netzwerk-Switch.

Natürlich kann das Mikroprozessorsystem dazwischen die Nachricht z.B. auch nicht weiterleiten oder verändern, um zu sehen, was passiert. Außerdem sollte dieser Mikroprozessor Verbindung z.B. zu einem PC haben, damit man sehen kann, welche Pakete laufen und damit man im laufenden Betrieb Nachrichten von A nach B, B nach A oder in beide Richtungen abfangen und modifizieren kann.

Wenn z.B. beim Nicht-Weiterleiten einer bestimmten Nachricht von A nach B dieselbe Nachricht immer öfter an A auftritt, dann weiß man, daß ein Gerät an A versucht die Nachricht zu Wiederholen weil ja die Antwort ausgeblieben ist. Und die ist ausgeblieben, weil die Fragenachricht ja garnicht durch den Filter kam ;)

So kann man dann, indem man seine Filter/Bridge vor verschiedene Geräte desselben Busses hängt, sehen welche Nachricht woher kommt.

Beispiel:
Code:
Tankgeber ---- CAN ---- [PORTA  (Bridge)  PORTB ] -- CAN ----+------ [Tachoeinsatz]
                                                              \----- [Temperaturgeber]

Wenn eine Nachricht (z.B. vom Tachoeinsatz "Wieviel Sprit im Tank ?" ) am Port B ankommt, wird sie auch auf den Port A kopiert.
Der Tankgeber antwortet (kommt an A an derr Bridge an) und die Antwort landet auf Port B , wo der Tachoeinsatz sie liest als wäre nix gewesen.

Aber wir wissen, weil links an Port A nix außer dem Tankgeber dran ist, daß das eine Nachricht vom Tankgeber ist. Sonst wäre sie ja zuerst auf PORT B an der Bridge gewesen.

Nachrichten zwischen Tachoeinsatz und Temperaturgeber sehen wir nur auf Port B und kopieren sie auf Port A. Wenn wir das nicht mehr machen, dann passiert nix aufregendes, weil der Tankgeber die Nachrichten vom und zum Temperaturgeber sowieso immer ignoriert hat.
So kriegen wir raus, welche "Fragepakete" wir an z.B. den Tankgeber stellen müssen damit er loslegt und uns erzählt, wie sein Meßwert ist.
Denn wennn wir ein Paket ausfiltern, daß für den Tankgeber wichtig gewesen wäre, dann antwortet der nicht mehr und das merken wir, weil es an Port A plötzlich recht ruhig wird ;)
Dann schnell den Filter wieder aus der Bridge raus, bevor der Tachoeinsatz die Inspektionslampe anmacht (weil der Tankgeber ausgefallen sei) und gut ist. Wir können dann probehalber daselbe selber Fragepaket auf den Port A unserer Bridge kopieren und mal gucken, ob wir eine Antwort bekommen.

Ich habe gerade mal naiv etwas rumgegoogelt eine Bridge ist z.B. die hier:
http://www.geitmann.de/ProductTree.php?CategoryID=923&PPP=&SP=0
(nur als Stütze für meine Erläuterungen) ob gerade dieses Ding nun aber so filtern kann, wie man es als KFZ Hacker im o.A Szenario braucht, ist was anderes. Es gibt aber inzwischen jede Menge Microcontroller von AVR und Microchip, Infinieon, ST und allen anderen die x CAN Module im Chip verbaut haben.

Infineons TS1115 hat locker 4 Stück und ein Winzling wie der dsPIC33FJ64GP706 von Microchip immerhin noch 2 CAN Ports. Damit könnte man sowas bauen.

Die Daten kann der Microkontroller dann ja fertig zur Analyse an 2 schnellen COM Ports rausbraten, wenn der Bus nicht zu schnell ist oder zur Not per Parallel Port an einen zweiten Controller weitergeben, der daß dann per USB oder Ethernet an einen PC absetzt. Damit währe 1 Mbit Analysefunktion schnell gemacht. Und schneller kann CAN nicht ;)

Mein Ansatz mit der Filter/Bridge ist natürlch total Banane von einem herkömmlichem Standpunkt aus. Denn wenn Du die IDs kennst, mit denen dieses oder jenes gesteuert wird, dann muß man nurnoch die Nachrichten IDs den Zielgeräten zuordnen und dann weiß man welches Gerät was tun soll. Und mit wlcher ID das Gerät antwortet ist nach einem Blick in die hausinterne Gerätedoku auch klar. Die Nachrichten dazu kann man sich dann aus dem Analyseprotokoll holen.
Da ein Entwickler bei Firma XYZ die IDs normalerweise kennt, muß er sich nicht von grund auf im System orientieren um rauszukriegen, was woher kommt und wohin geht.

MfG
Martin
 

luichi24h

Threadstarter
Dabei seit
09.01.2008
Beiträge
4
Verstanden, aber wenn die CAN Nachrichten nicht offen sind, warum können zum Beispiel andere Hersteller (ich meine Bremsen, boardcomputer, fensterheber, usw...) seine Produkte machen und in verschiedene Autos installieren. Ich denke seine Systeme müssen die CAN Nachrichten kennen, oder?
 

jack1982

Der Elektriker
Dabei seit
07.11.2004
Beiträge
1.306
Ort
bei Leipzig
In unserer Firma haben wir auch CAN-Bus Anlagen, wo wir Deutschlandweit bestimmte Anlangen überwachen und steuern können. Dieser CAN-Bus ist aber von uns selbst entwickelt.
Genauere Angaben kann ich nicht machen, Betriebsgeheimnis. :D
 
Thema:

Benzin über CAN

Benzin über CAN - Ähnliche Themen

Peugeot 206 Bj 1998 springt nicht an, WFS, Wegfahrsperre: Hallo, Vor ca. 1,5 Monaten hab ich einen Peugeot 206 Bj1998 gekauft und dafür auch noch Geld hingelegt. Das Leid und Fehlersuche ging dann schon...
Lexus RC F: Coupé mit V8-Sauger und Heckantrieb im Langstrecken-Test - Teil 1: Eigentlich ist Lexus für einen gewissen Luxus gepaart mit einer guten Portion Vernunft bekannt. In der letzten Zeit lässt es der noble Ableger von...
Autoradio, Multiplex, Can-Bus?: Hallo Leute, bin neu hier und besitze auch erst seitner guten Wochen meinen 206 (EZ 10/02). Er besitzt eine Lenkradfernbedienung und ein...
Ipod an JVC KD-G632 anschließen - über ipod bedienen: Also ich besitze ein JVC KDG632, es ist zwar nicht mehr das neuste Modell, aber es erfüllt seinen job. Bisher habe ich immer von meinem USB Stick...
bilder von euren A3 & sportbacks: hi da mir grad bissel langweilig ist und ich mir immer gerne schöne autos anschaue dachte ich mir ich mache mal nen thread wo ihr eure autos rein...

Sucheingaben

obd2 multimarken messwertblöcke

Oben