- Startseite
- Forum
- Wissen
- Fahrzeugtechnik
- On-Board-Diagnose
- BMW E46/E39: Auslesen von CAN-Bus-Daten über OBD-Stecker
BMW E46/E39: Auslesen von CAN-Bus-Daten über OBD-Stecker
Hallo,
für ein nichtkommerzielles Forschungsprojekt haben wir zum einen ein AGV4000-Interface (ELM-323-kompatibel) und zum anderen ein CanCaseXL von Firma Vector zur Verfügung. Nun möchten wir /zwingend mit einem selbsterstellten Programm) an möglichst viele der folgenden Daten herankommen: Vorwärtsgeschwindigkeit (-> ABS über Odometrie bzw. Radsensoren), Drehrate um die Hochachse/Gierrate/Yaw Rate (-> ESP über Gierratensensoren) und Beschleunigung. Wir planen, dies über die OBD-Buchse abzugreifen. Es sollen auf jeden Fall direkt die Daten vom CAN-Bus sein und nicht solche, die von einer OBD-Funktionalität geliefert werden, so dass wir ISO 9141, K-Line/DS2, KWP2000 etc. nicht verwenden möchten. Als Auto stehen uns Folgende zur Verfügung:
* 3er BMW E46 318 Coupe Vorfacelift, Baujahr 04/2000, Motor M43TUB19, im "alten" Fahrzeugschein zu 2: 5, ZU 3: 657.
* 5er BMW E39 540, Baujahr 02/2002, 210 kW = 286 PS, im "alten" Fahrzeugschein zu 2: 5, zu 3: 572
Nun unsere Fragen:
1)
Sind diese Daten für eines dieser Autos über die OBD-Buchse über CAN High/CAN Low abgreifbar oder liegt bei einem Fahrzeuge ein entsprechender CAN-Bus mit diesem Signal an einem der freien Pins an (und falls ja, an welchen)? Müssen vorher noch Daten zum vorgeschalteten Gateway gesendet werden, damit man sie abgreifen kann?
2)
Kennt jemand die entsprechenden Identifier und weiss jemand, wie das zugehörige Data Frame dann aufgebaut bzw. zu interpretieren ist?
3)
Funktioniert dies schon mit dem AGV4000?
4)
Spezielle Frage zum CanCaseXL: Ein beigelegtes Kabel hat eine 9polige D-Sub-Buchse mit 4 Datenleitungen mit jeweils einfachen Endhülsen zum direkten Anschluss (VBatt, GND, Can High, Can Low). Darf man die elektrisch 1:1 mit den entsprechenden Anschlüssen der OBD-Buchse verbinden oder muss man da z.B. etwas wegen einer Terminierung beachten, wie diesen ominösen Terminierungswiderstand?
Alles lesen hier und im Internet hat uns nicht wirklich wegen meiner Fragen weitergebracht, deshalb stellen wir Sie hier. Auch Teilantworten helfen uns weiter. Habt schon jetzt vielen Dank!
Viele Grüße,
Sven
Ähnliche Themen
11 Antworten
Hallo nochmal,
hat denn wirklich niemand hier eine Antowort oder zumindest eine Idee? Uns hilft gerade alles weiter.
Viele Grüße,
Sven
Welche "Piggies" sind denn in dem CanCase? MidSpeed oder HighSpeed?
Ohne die Software von Vector (CANalyzer oder CANoe) kannst du mit den Interfaces wenig anfangen, den USB-Treiber habt ihr vermutlich auch nicht.
Deine Fragen verstehe ich nicht so ganz.
Die YAW-Rate Sensoren (ESP Gierratensensor) haben i.d.R. einen PrivateCAN (oder ne serielle Kommunikation) zum ESP-Modul und die Nachrichten liegen nicht auf der Diagnose-Buchse. Ohne die Daten des Herstellers zur Kommunikation wird ein Entschlüsseln der Botschaften aufwändig.
Die ABS-Raddrehzahlsensoren sind hardwired.
Alles was über OBD2 hinausgeht, und somit in Herstellerhand liegt, wird schwer werden. Die Datenbanken sind nicht öffentlich. Evtl. kann dir ja jemand helfen, der sich mit BMW etwas auskennt.
Für die Raddrehzahl (denke das die Sensoren eh nur induktiv sind - evtl schon ein Rechtecksignal statt einem Sinus ausgeben) könnt ihr doch einfach die Pulse auswerten. Oder wollt ihr nicht in die Leitung?
Die Geschwindigkeit liegt auf der Diagnoseleitung. Daraus könnt ihr die Raddrehzahl auch berechnen.
Läuft das ganze an einer Hochschule?
Zitat:
Original geschrieben von Sven321
Spezielle Frage zum CanCaseXL: Ein beigelegtes Kabel hat eine 9polige D-Sub-Buchse mit 4 Datenleitungen mit jeweils einfachen Endhülsen zum direkten Anschluss (VBatt, GND, Can High, Can Low). Darf man die elektrisch 1:1 mit den entsprechenden Anschlüssen der OBD-Buchse verbinden oder muss man da z.B. etwas wegen einer Terminierung beachten, wie diesen ominösen Terminierungswiderstand?
Von CAN-Bus und seiner elektrischen (physikalischen) Umsetzung habt ihr keinen Plan oder? Jede Busleitung braucht einen Widerstand als Abschluss. 120Ohm entsprechen in etwa dem Wellenwiderstand der beiden verdrillten Leiter.
Im Labor ist es oft notwendig, die Widerstände einzubauen. Im Fahrzeug sind diese schon in den Steuergeräten bzw. Transceivern eingebaut.
Ein CANCase ist nur eine Stichleitung in den an beiden Seiten terminierten Bus (wie ein normaler Busteilnehmer). Ihr braucht da keine Widerstände. Einfach High und Low als Stichleitung. Da ihr das aber ohne Software nicht nutzen könnt...
Auf dem Diagnose-CAN liegen normalerweise keine Applikationsbotschaften... d.h. über die OBD-Buchse kann man die Daten nur über Diagnoseprotokolle (KWP/UDS) als "Messwert" auslesen.
Ggf. unterstützt das Gateway die "Spiegelung" von Botschaften auf den DiagCAN - aber ob euch das jemand einfach so verraten wird? Ganz unkritisch ist das nicht, wenn's über Kl.15-Wechsel nicht abgeschaltet wird...
Sind auf dem CANcase Lizenzen für CANoe/CANalyzer drauf? Wenn nicht, geht's nur über die "XL Driver Library" und man muss alles mehr oder weniger selber "interpretieren"...
Grüße,
SIGSEGV
Hallo,
habt erst einmal recht herzlichen Dank für die ganzen Infos. Hatte Urlaub, komme deshalb erst jetzt zum Antworten. Vorgehen sollte jetzt klar sein und in Kürze werden wir mal ein paar Logfiles erstellen. Natürlich halten wir Euch auf dem Laufenden.
Viele Grüße,
Sven
Kein Problem... auch nicht die PN's.
Aber nicht vergessen, die Logfiles als "Testdatei" *.asc abzuspeichern, den Puffer hoch zu setzen (Vector nervt dann immer mit den Warnmeldungen "blabla" max 1000...) und die symbolische Ansicht wegzuklicken.
Habt ihr nun Support von Vector und / oder BMW? Die *.dbc Datenbanken werden die wohl nicht rausrücken oder?
Der Puffer geht ab CANoe 6 bis 100000 Botschaften... die Traces sollte man vom Virenscanner ausnehmen (lassen).
Und bei den Logfiles automatisch hochzählen lassen, sonst überschreibt man evtl. was, was man noch gebraucht hätte.
DBC is bei Diagnose nicht wirklich wichtig... da bräuchte man eher die Candela-Beschreibung (falls vorhanden) oder ODX (wird BMW für den E46 wohl noch nicht haben).
Aber das bisschen Trace kann man nach ein paar Wochen auch selber lesen ;-)
Grüße,
SIGSEGV
Zitat:
Original geschrieben von SIGSEGV
Der Puffer geht ab CANoe 6 bis 100000 Botschaften... die Traces sollte man vom Virenscanner ausnehmen (lassen).
Und bei den Logfiles automatisch hochzählen lassen, sonst überschreibt man evtl. was, was man noch gebraucht hätte.
DBC is bei Diagnose nicht wirklich wichtig... da bräuchte man eher die Candela-Beschreibung (falls vorhanden) oder ODX (wird BMW für den E46 wohl noch nicht haben).
Aber das bisschen Trace kann man nach ein paar Wochen auch selber lesen ;-)
Grüße,
SIGSEGV
Immer noch einen drauf oder wie?... Jetzt verwirr ihn doch nicht noch mit ODX und CANdela.
Vector hat nun mal diese netten kleinen Standards wie *.dbc für CAN und *.ldf für LIN. Und CANoe und CANalyzer nutzen nun mal diese Datenbasen, um die Botschaften mit ID, Name, Signalen, Rohwert, physikalischem Wert usw. anzuzeigen.
Was nützen dem Fragensteller die Frames, ohne zu wissen, von wem was kommt und was das bedeuten soll? Toll ein Diagnosedatensatz im ODX-Datenmodell-Format - super. Vor allem für jemanden der sich damit nicht auskennt.
Ausserdem sind die Fahrzeuge dafür auch viel zu alt!
Mal davon abgesehen, dass es ohnehin schwer sein dürfte dbc-, cdd-, a2l- oder odx-Dateien eines OEM zu bekommen.
@Sven321
Wenn du noch Fragen zur Einstellung von deinem CANcase und der Software hast, dann frag.
Schönen Gruß aus Köln,
von jemandem der CANoe als CANalyzer verwendet, weil es ja verfügbar ist und eigentlich eh nur mit CCP, a2l und ATI Vision zu tun hat, weil er Powertrain MC macht.
P.S. Hatte diese Woche das "Vergnügen" CANoe 7.1 ausprobieren zu dürfen. Die haben zuviel Zeit bei Vector - diese ganzen Management-Funktionen à la Panel-Bastelei wird etwas zu aufgeblasen. Dafür nerven immer noch die Warnungen und Anzeigen wie "max. 1000 Frames" bitte oder "sollen die Einstellungen von CAN2 auch auf CAN1 übertragen werden".
Wenn man wirklich auf Applikationssignale aus ist, ist das DBC klar von Vorteil... ggf. kann da ja ein "abgespecktes" zur Verfügung gestellt werden, wo nur die relevanten Botschaften und in denen wiederum nur die relevanten Signale drin sind?
Offen is aber die Frage, ob man Spiegelung auf den DiagCAN überhaupt aktivieren kann oder ein anderer CAN rausgeführt ist, sonst nützt das DBC ja nichts.
Mit ODX muss man sich (erstmal) nicht auskennen... CANoe bringt ein generisches Template im CDD-Format für KWP und UDS mit, das man einfach "blind einbinden" kann, wenn der "ISO-TP-Beobachter" aktiviert wird. Zumindest die CAN-IDs für die Diagnose sollte man dazu aber kennen. Bei BMW dürfte das 6xx sein, wenn ich nicht "zu neu" denke.
Zumindest generische Diagnose kann man damit lesen, aber sicher keine SG-spezifischen Messwerte...
Die IP-Option bei CANoe 7.1 ist nicht schlecht... aber noch in den Kinderschuhen:-/
Beim CANcase empfiehlt sich allgemein, im Treiber (am besten immer den aktuellen verwenden) die latency auf "very fast" zu stellen... die CPU schafft das im Normalfall probemlos. Ohne die Einstellung hatte ich mit dem CANcase teilweise seltsame Probleme, die mit CANcardXL(e) nicht auftreten.
Zum Rumspielen kann man mal ein 02 01 0D 00 00 00 00 00 mit DLC=8 und ID=0x7E0 auf den DiagCAN schicken, das sollte die Geschwindigkeit liefern als 04 41 0D vv vv - allerdings vom Motor, also nicht mit ESP-Auflösung.
Grüße,
SIGSEGV
Zitat:
Original geschrieben von SIGSEGV
Wenn man wirklich auf Applikationssignale aus ist, ist das DBC klar von Vorteil... ggf. kann da ja ein "abgespecktes" zur Verfügung gestellt werden, wo nur die relevanten Botschaften und in denen wiederum nur die relevanten Signale drin sind?
Wenn BMW so nett ist - hängt natürlich auch von den Beziehungen der Hochschule ab. Meine FH hatte blendende Kontakte zu Daimler - mit entsprechendem Sach- und KnowHow-Austausch. Denke aber, das BMW nur bei einer WIN-WIN-Situation so nett ist.
Offen is aber die Frage, ob man Spiegelung auf den DiagCAN überhaupt aktivieren kann oder ein anderer CAN rausgeführt ist, sonst nützt das DBC ja nichts.
Achso darum geht es dir. Hatte dem Threadautor schonmal eine PN geschickt, in der ich auch von der Möglichkeit sprach direkt an den CAN-Bus zu gehen, ohne den Umweg über die OBD-Schnittstelle. Da es an einer Hochschule ist, ging ich mal davon aus, die Fahrzeuge sind extra zu dem Zweck dort.
Mit ODX muss man sich (erstmal) nicht auskennen... CANoe bringt ein generisches Template im CDD-Format für KWP und UDS mit, das man einfach "blind einbinden" kann, wenn der "ISO-TP-Beobachter" aktiviert wird. Zumindest die CAN-IDs für die Diagnose sollte man dazu aber kennen. Bei BMW dürfte das 6xx sein, wenn ich nicht "zu neu" denke.
Zumindest generische Diagnose kann man damit lesen, aber sicher keine SG-spezifischen Messwerte...
Und soweit ich das verstanden hatte, geht es ja auch um diese. Klar einige Sachen sind auch generische bzw. herstellerspezifische(auch wenn man dann wieder nicht weiß, was es bedeutet) Diagnose. Aber Raddrehzahlen, Drehrate etc. bekommt man ohne dbc-file nicht so einfach raus.
Die IP-Option bei CANoe 7.1 ist nicht schlecht... aber noch in den Kinderschuhen:-/
Beim CANcase empfiehlt sich allgemein, im Treiber (am besten immer den aktuellen verwenden) die latency auf "very fast" zu stellen... die CPU schafft das im Normalfall probemlos. Ohne die Einstellung hatte ich mit dem CANcase teilweise seltsame Probleme, die mit CANcardXL(e) nicht auftreten.
Es empfiehlt sich aus physikalischen Gründen (wenn man mal mit nem Oszilloskop die Frames sieht, weiß man warum) auch den Abtastpunkt auf 80% anzuheben - die defaultmäßigen 62% reichen manchmal nicht aus. Die BTR's kann man eigentlich getrost vergessen - damit hatte ich noch nie Probleme.
Grüße,
SIGSEGV
@Sven321
Kannst ja mal deine Config schicken, dann kann ich oder SIGSEGV mal drüber schauen.
Zitat:
Achso darum geht es dir. Hatte dem Threadautor schonmal eine PN geschickt, in der ich auch von der Möglichkeit sprach direkt an den CAN-Bus zu gehen, ohne den Umweg über die OBD-Schnittstelle. Da es an einer Hochschule ist, ging ich mal davon aus, die Fahrzeuge sind extra zu dem Zweck dort.
Wenn die Fahrzeuge "speziell präpariert" sind, könnte die OBD-Buchse auch voll belegt sein, d.h. neben dem DiagCAN liegen auch andere drauf... dann braucht man aber einen entsprechenden "Prototypenstecker" - ob's sowas bei BMW gibt, weiß ich nicht sicher.
Zitat:
Es empfiehlt sich aus physikalischen Gründen (wenn man mal mit nem Oszilloskop die Frames sieht, weiß man warum) auch den Abtastpunkt auf 80% anzuheben - die defaultmäßigen 62% reichen manchmal nicht aus. Die BTR's kann man eigentlich getrost vergessen - damit hatte ich noch nie Probleme.
Die ISO 27145 schreibt SamplePoint=80% und SJW=15% vor... woher die vector-Defaults kommen, weiß ich nicht, hängen aber (glaub ich) auch vom bestückten CANcab/CANpiggy bzw. Transceiver ab.
Ein Oszi hab ich nimmer gebraucht, seit CANoe den "Baudratenscanner" bietet ;-)
@Sven321
CANoe braucht eine gewisse "Einarbeitung", bis man eine brauchbare/übersichtliche Config aus Fenstern, Simulationsaufbau, Messaufbau mit Filtern etc. hat... am besten mal zusammen mit einem "alten Hasen" was sinnvolles einrichten, Sicherung anlegen und dann ggf. auf der Basis selber was verändern.
Liegen alle Signale, die ihr da lesen wollt auf demselben CAN oder müsst ihr ggf. mit mehreren CANs arbeiten? Die BMW-Topologie von 2002 kenn ich nicht...
Grüße,
SIGSEGV