In dieser Kategorie gehe ich auf die "On Board Diagnose" (OBD) ein und beschreibe neben den umfangreichen Funktionen,
wie man sich selbst kostengünstig einen OBD-Adapter zusammenbauen kann und welche Möglichkeiten einem dann mit diesem
gegeben sind.
Da die "On Board Diagnose" ein sehr umfangreiches Thema ist, werde ich hier nur ein paar Rahmenbedingungen
rund um OBD benennen und mich dann hauptsächlich nur noch auf die Verwendung von OBD in Kombination mit
meinem Audi A4 beziehen.
Einleitung
OBD ist die "On Board Diagnose", also die Diagnose von Steuergeärten an Board eines Fahrzeugs. Jedes moderne Fahrzeug
verfügt über einen Anschluss für Diagnosegeräte, der sich meist irgendwo im Innenraum des PKW befindet, und (in den
meisten Fällen) genormt ist.
Über diesen Anschluss können in einer Fachwerkstatt die in modernen Autos zahlreichen Steuergeräte u.a. für
anwenderspezifische Anforderungen umcodiert bzw. angepasst, Serviceintervalle zurückgesetzt und evtl. aufgetretene
Fehler für eine Fehleranalyse ausgelesen werden. Weiter können eine Menge Sensormeßwerte individuell abgefragt und
Aktoren für Tests angesteuert werden. OBD bietet also einer Werkstatt eine gute Hilfe ein evtl. Problem schnell
einzukreisen.
Ursprünglich wurde die OBD-Schnittstelle eingeführt, damit abgasrelevante Komponenten eines Fahrzeugs "generell" abgefragt
werden können (OBD2-Schnittstelle genannt), um somit staatlichen Kontrollstellen eine schnelle Überprüfung der Abgaswerte
eines Fahrzeugs zu ermöglichen.
Da jedoch über diese Schnittstelle tatsächlich viel mehr möglich ist, sind viele Hersteller darüber hinausgegangen
auch nicht-abgasrelevante Komponenten abzufragen; auf diesem Wege sind dann zahlreiche "Standards" entstanden, hier
spricht man von einer herstellerspezifischen Diagnose.
Grundsätzlich sind jedoch Audi, VW, Seat und Skoda (und teilweise auch Subaru) "gleichartig", so dass deren Steuergeräte
mit der selben Software angesprochen und mit gleichartigen Adaptern angesprochen werden können.
OBD2 ist innerhalb Europas bei allen Fahrzeugen gesetzlich Pflicht. Die Pflichten wurden seit 01.01.2000 für Benziner,
seit 01.01.2003 für Diesel- und Gasfahrzeuge und seit 01.01.2005 für LKW gesetzlich vorgegeben.
Die dafür einheitliche 16-polige OBD2-Schnittstelle sieht folgendermaßen aus:
Die Buchse befindet sich immer in der Nähe des Fahrers und soll von diesem Platz aus gut zu erreichen sein.
Beim Audi A4 (8E) ist sie links unten im Fußraum des Fahrers verbaut. Sie ist hinter dem Hebel zum Entriegeln der
Motorhaube auf der linken Seite und unverdeckt direkt zugänglich.
KL und KKL
Die Abkürzungen KL bzw. KKL beschreiben vereinfacht gesagt die K-Leitung und die L-Leitung des OBD-Steckers in
unterschiedlichen Nutzungsweisen. Diese beiden Leitungen dienen der Kommunikation von einem Messgerät, das über
die OBD2-Schnittstelle angeschlossen ist, und den Steuergeräten im Fahrzeug. Die Kommunikation findet bei einer
Übertragungsrate mit max. 10,4 kbps (Kilobits pro Sekunde) statt.
Üblicher Weise ist es gemäß der Norm so, dass ein Steuergerät über die L-Leitung geweckt wird und dann über
die K-Leitung mit diesem Steuergerät Daten übertragen werden. Nun gibt es aber Ausnahmen, wozu auch
mein Audi A4 (8E) gehört. Die Firma Ross-Tech benennt diese Fahrzeuge sogar noch detaillierter und beschreibt
diese als Zitat: "All B6/8E chassis A4/S4 models with Xenon headlights." und "All 2002 and newer A6 (C5-platform,
4B-chassis) models, including the Allroad."
[Quelle].
Somit kann man also sagen, dass mein Audi nicht eine K-Leitung und eine L-Leitung hat, sondern zwei K-Leitungen,
die zudem auf gleiche Art und Weise angesprochen werden könnnen, hier spricht man dann von "KKL", wenn also über
die L-Leitung K-Daten übertragen werden.
Der Grund, warum Audi dieses nun wider der Norm gemacht hat, erschließt sich mir nicht direkt, aber ich vermute,
dass es damit zusammenhängt, dass es so viele Geräte gibt, die an der K-Linie hängen, dass einfach eine zweite
Lösung für die zusätzlichen Geräte her musste. Diesen Verdacht bestätigt auch die Firma Ross-Tech
(Details siehe hier).
Die folgende Grafik zeigt genau, welches Steuergerät an welchem Bus bzw. K- oder L-Leitung hängt:
Beim Audi A4 (8E) finden wir die K- und L-Leitungen auf dem Pin 7 (K) und Pin 15 (L) der OBD-Buchse, wie man in dem
nachfolgenden Foto noch einmal genauer sehen kann:
Die genaue Belegung aller Pins zeigt die nachfolgende Tabelle nochmal detailliert:
Pin |
Beschreibung |
2 |
J1850 Bus+ |
4 |
Fahrzeug Masse |
5 |
Signal Masse |
6 |
CAN High (J-2284) |
7 |
ISO 9141-2 K-Ausgang |
10 |
J1850 Bus |
14 |
CAN Low (J-2284) |
15 |
ISO 9141-2 L-Ausgang |
16 |
Batterie-Spannung +12V |
Die gängigen Adapter (bis ca. 20-40 € bei eBay und Co.) sind so aufgebaut, dass sie für K-Leitungen funktionieren;
hier wird also die L-Leitungen i.A. immer ignoriert, bzw. bestenfalls wirklich nur in der klassischen und eigentlich
veralteten Form zum Aufwecken benutzt.
Ein solcher Adapter ist leider für meinen Audi A4 nicht unbedingt ausreichend - zumindest dann nicht, wenn man alle
Steuergeräte erreichen möchte, wie oben in der Grafik zu erkennen ist.
OBD-Adapter
Wie oben bereits beschrieben unterscheidet man im OBD-Bereich also zumindest in K- und L-fähige Adapter. Hier gibt
es auf dem Markt grundsätzlich eine Menge Adapter, die oftmals jedoch eigentlich nur Pegelwandler sind, die also
die Signalpegel einer RS232- bzw. emulierten USB-Schnittstelle zu OBD-tauglichen Pegeln (ISO 9141 oder ISO 14230
aka KW 2000) in Echtzeit umwandeln.
Zu günstige "eBay-OBD-Pegelwandler", die kostengünstig in Fern-Ost produziert wurden, haben oftmals "billige"
Optokoppler verbaut, die bei der Datenübertragung zu Fehlern beitragen können, die sich dann in häufigen
Verbindungsabbrüchen bei der Kommunikation mit den Steuergeräten äußern.
Schnell gebaut ist aber tatsächlich selbst ein Adapter, wie ich ihn in einer Schaltung von
blafusel kennengelernt
habe. Auf seiner
Website
ist z.B. ein
KKL-OBD-Interface für USB zu finden, das ich auch dort bestellt, aufgebaut und verwendet habe. Dieser
Adapter setzt auf einen FT232BL-IC, der unter Windows eine serielle Schnittstelle emuliert und so mit einem
L9637-OBD-ISO-Pegelwandler kommuniziert. Der L9637 ist KKL-fähig, was bedeutet, das mit diesem Adapter prinzipiell alle
Steuergeärte, die am K- bzw. L-Bus des Audi A4 hängen, angesprochen werden können. Die Platine fertig aufgebaut sieht
folgendermaßen aus:
Rechts werden die vier USB-Leitungen angeschlossen und links kommen die K- und L-Leitungen, sowie Plus und Masse der
Bordspannung ran. Setzt man dieses dann noch in ein schickes Gehäuse, hat man einen kompletten OBD-Adapter, der
z.B. an einem Notebook via USB mit VAG-COM betrieben werden kann. Das sieht dann folgendermaßen aus:
Hierbei muss aber unbedingt bedacht werden, dass eine via USB emulierte RS232-Schnittstelle niemals die Performance einer
echten RS232-Schnittstelle leisten wird, da USB vom Prinzip her schon anders funktioniert, allein weil theoretisch bis
zu 127 verschiedene Geräte an einem USB-Port angeschlossen werden können (mehr dazu kann bei
Wikipedia nachgelesen werden).
Diese Umstände stellen nun jedoch nicht
unbedingt ein Problem dar, sollten aber mal erwähnt werden; sie sind aber auch
definitiv abhängig von der verwendeten Hardware, wie die Erfahrung gezeigt hat. Moderne Notebooks können hier bei der
Kommunikation über eine via USB emulierte RS232-Schnittstelle schon mal Probleme beim Verbindungsaufbau aufwerfen, die bei
älteren Geräten nicht bestanden haben. Hier muss man dann sehen, ob man nicht auf ein Interface zurückgreift, welchens auch
über eine ECHTE RS232-Schnittstelle kommuniziert.
In solchen Fällen empfiehlt es sich dann ein altes Notebook mit echter RS232-Schnittstelle zu besorgen oder aber eine
echte serielle Schnittstelle nachzurüsten, was beispielsweise über den PCMCIA-Port funktioniert. Interfaces, die via
USB angeschlossen werden, funktionieren wieder nur wie die Emulation. Von diesen sollte man in jedem Fall die Finger lassen
wenn man eine "echte" RS232-Schnittstelle nachrüsten möchte.
Hier sind wir also an dem Punkt, wo wir ein Interface benötigen, das über die serielle Schnittstelle kommuniziert und
dieses dann auch noch bitte so schnell und fehlerfrei wie möglich. Auch hier bietet
blafusel ein super Interface
auf seiner
Website
an. Dieses Mal handelt es sich dabei jedoch um
serielles KL-OBD-Interface, da dieses für die meisten Fahrzeuge vollkommen
ausreichend ist und eine zweite K-Leitung (über die L-Leitung) nicht gebraucht wird.
Hier kommuniziert also ein MAX232 mit der seriellen Schnittstelle des PC und setzt die RS232-Signale in TTL-Pegel um,
welche dann von einem MC33290 in die entsprechenden ISO-Pegel für die K-Leitung umgewandelt werden. Optokoppler werdem
hierbei keine verwendet.
Fertig aufgebaut sieht diese Schaltung von
blafusel dann folgendermaßen aus:
Links wird dieser wieder an einen OBD-Stecker gelötet und rechts mit der RS232-Schnittstelle verbunden, so dass sich in
einem hübschen Gehäuse die folgende Endlösung ergibt:
Mit diesem Adapter ist man nun also in der Lage, eine Verbindung via RS232 zu jedem via K-Leitung angeschlossenen
Steuergerät an meinem Audi A4 (8E) aufzubauen.
OBD am Audi A4 8E
Nachdem nun bekannt ist, wie man via OBD über einen selbst gebauten OBD-Adapter die Steuergeräte mittels VAG-COM ansprechen
kann, sollte an dieser Stelle nochmal auf die Besonderheiten aufmerksam gemacht werden.
Leider ist es nicht so, dass wirklich jedes Steuergerät von mir an meinem Audi A4 (B7/8E) angesprochen werden konnte.
Denn tatsächlich ist zwar so, wie oben auf der Grafik beschrieben, dass die meisten Geräte an der K-Leitung hängen
und andere wenige an der L-Leitung, aber manche Geräte, wie z.B. das
RNS-E,
sind auch sehr anspruchsvoll, was das Timing der Signale betrifft.
Ich benutze ein KKL-Interface, das eine via USB emulierte RS232-Schnittstelle nutzt und habe hier an meinem ASUS-EeePC
keinerlei signifikante Probleme mit der Datenübertragnung. Ich kann eine Menge - für mich wichtiger bzw. interessanter -
Steuergeräte ansprechen. Dazu gehört z.B. auch das Park-Distance-Control (PDC) Steuergerät, welches an der L-Leitung hängt.
Wie man auf dem folgenden Screenshot sehen kann, kann ich dieses mit meinem KKL-Interface einwandfrei ansprechen:
Meine Erfahrung hat jedoch gezeigt, dass sich das RNS-E nicht mit der VAG-COM Version 311.3 ansprechen lässt. Eine
modernere Version, die ohne den orginal Rosstech-Adapter funktioniert, liegt mir leider nicht vor und ist mir auch leider
nicht bekannt. Somit kann mit der besagten Version z.B. auch nicht das Motorsteuergerät (J220/STG01) ansprechen. Dieses
scheint - soweit ich auch im Internet in verschiedenen Foren gelesen habe - bei diesem Modell nur via CAN anzusprechen
zu sein. Die meisten anderen Steuergeräte kann ich dafür jedoch ansprechen.
Warum kann man aber das RNS-E (STG 37 bzw. 56) nicht ansprechen? Versuche ich es im Radio-Betrieb mit meinem KKL-Adapter via
USB zu connecten, so höre ich ein Knacksen für jeden Verbindungsversuch in den Fahrzeug-Boxen. Ein Connect kommt also
offensichtlich zu Stande, aber dennoch leider keine fehlerfreie Datenübertragung über die L-Leitung. Dieses bleibt mir nun
jedoch leider noch ein Rätsel. Meine erste Vermutung lag darin, dass es im Timinig so anspruchsvoll ist und ich es nicht
über eine via USB emulierte RS232-Schnittstelle ansprechen kann. Also habe ich mir das oben erläuterte RS232-KL-Interface
von
blafusel gebaut und ein wenig modifiziert. Die Kommunikation über K- und L-Schnittstelle läuft bei dem
KKL-Interface, was ich bisher immer verwende habe, absolut gleichartig ab. Daher habe ich mir gedacht, kann ich doch auch
einfach ein KL-Interface so modifizieren, dass es im Grunde ein LL-Interface wird, also biege ich pyhsikalisch den L-Pin
am OBD-Stecker einfach auf den K-Pin des Interface um. Damit hätte ich dann quasi ein LL-Interface gebaut, das nur die
Steuergeräte an der L-Leitung ansprechen könnte, aber somit für mein RNS-E im Audi A4 quasi perfekt wäre. Gesagt getan - kam
ich dann letztlich zu der nachfolgend gezeigten Modifikation des seriellen KL-Interfaces:
Hier sieht man, dass die K-Leitung quasi tot gelegt wurde und der L-Pin an den K-Pin des OBD-Steckers über eine diagonale
Drahtbrücke gelegt wurde. Dieses Interface funktioniert nun mit einem alten IBM-Notebook über eine echte RS232 auch super
für mein PDC-Steuergerät. Die K-angeschlossenen Steuergeräte sind natürlich nicht zu erreichen, aber an der L-Leitung
verhält es sich sehr souverän. Der spannende Test, das RNS-E anzusprechen, endete nun leider wieder mit dem selben
Ergebnis, wie mit dem KKL-Interface :(. Das heißt, hier ist es mit einem Schnitstellenaustausch noch nicht getan.
Nach ein wenig gegoogle und gelese kam ich dann zu der Information, dass man bei den "alten" VAG-COM-Versionen hier
eine Modifikation bei den Verbindungseinstellungen vornehmen muss, damit die Kommunikation zum RNS-E funktioniert. Die
neuen VAG-COM-Versionen haben diese Parameteriesierung bereits für das RNS-E mit hinterlegt. Die Funktion zur
Modifikation des "Char int"-Wertes würde dann - abweichend vom Standard - folgendermaßen aussehen:
Leider brachte die Einstellung bei mir auch nicht den erwünschten Erfolg, so dass ich bis dato vermelden muss, dass ich
mit keinem meiner OBD-Interfaces mein RNS-E connecten kann :-(. Sollter hier also jemand einen aufschlussreichen Tipp für
mich haben, so möge er mich bitte kontaktieren.