Zugriff auf die Fahrzeugelektronik - 13ter.info · Langfristig gesehen wird der CAN-Bus im PKW die...

17
Projektarbeit 4. Semester Zugriff auf die Fahrzeugelektronik Verfasser: Eisenbeiß Christian, Janisch Robert, Karg Matthias 13. Informatik Studiengang Betreuer: Dipl. Inf. B. Gerum FH NTA Prof. Dr. Grübler gGmbH in Isny 11. Juli 2006

Transcript of Zugriff auf die Fahrzeugelektronik - 13ter.info · Langfristig gesehen wird der CAN-Bus im PKW die...

Projektarbeit 4. Semester

Zugriff auf die Fahrzeugelektronik

Verfasser:Eisenbeiß Christian, Janisch Robert, Karg Matthias

13. Informatik Studiengang

Betreuer: Dipl. Inf. B. Gerum

FH NTA Prof. Dr. Grübler gGmbH in Isny11. Juli 2006

Zugriff auf die Fahrzeugelektronik

Inhaltsverzeichnis

1. Aufgabenstellung.................................................. 11.1 Einführung................................................................................11.2 Problematik.............................................................................. 11.3 Zukunft: OBD-3....................................................................... 21.4 Datenstrom............................................................................... 3

2. Programmtechnische Realisierung........................3

3. Programm..............................................................53.1 Programmumgebung................................................................ 53.2 Programmaufbau und Bedienung.............................................5

4. Fazit.......................................................................8

5. Glossar.................................................................. 9

6. Quellen & weiterführende Informationen.............9

Anhang

- Liste der entschlüsselten IDs - Tabelle der verwendeten Bussysteme im PKW-Bereich

C. Eisenbeiß, R. Janisch, M. Karg

Zugriff auf die Fahrzeugelektronik

1. AufgabenstellungUnsere Aufgabe bestand darin, ein Notebook mit der Diagnoseschnittstelle (CAN-Bus) eines Fahrzeugs (in unserem Fall ein Renault Laguna 1.9 dCi) zu verbinden und Daten auszuwerten und zu visualisieren. Hierfür wurde uns von der Firma Sontheim Industrie Elektronik [1] eine PCMCIA-Karte mit einer CAN-Schnittstelle zur Verfügung gestellt. Um unser Testprogramm benutzerfreundlich zu gestalten, haben wir uns dazu entschieden, den Borland C++ Builder zu verwenden.

1.1 EinführungOBD steht für On Board Diagnose. Das heißt, dass sich die Steuergeräte im Auto laufend einem Selbsttest unterziehen und auftretende Fehler mit Hilfe von LEDs anzeigen. Über die OBD-Schnittstelle lässt sich der konkrete Fehler auslesen. In OBD wurden mehrere Bussysteme implementiert, unter anderem auch der CAN-Bus. In unserem Projekt lesen wir allerdings keine Fehlercodes aus, sondern aktuelle Fahrzeugdaten wie z.B. die Motordrehzahl.

Die amerikanische OBD2-Schnittstelle wurde mit der EU-Richtlinie 98/69/EG unter dem Namen EOBD für Europa übernommen. Bereits seit 1996 müssen die Hersteller ihre Fahrzeuge mit OBD2 ausstatten, wenn sie in die USA exportiert werden sollen. In Europa wurde OBD nur schrittweise eingeführt. PKWs mit Otto-Motoren müssen ab dem Baujahr 2001 und PKWs mit Dieselmotor ab dem Baujahr 2003 eine OBD2-Schnittstelle integriert haben.

Das OBD-Interface bietet verschiedene Bussysteme, wobei nicht alle im PKW vorhanden sein müssen. Folgende Protokolle kommen zum Einsatz:ISO 9141-2, PWM J1850, VPW J1850, CAN.

Bei der immer weiter steigenden Computerisierung des Fahrzeugs kommt der CAN-Bus gerade recht. Langfristig gesehen wird der CAN-Bus im PKW die anderen Bussysteme verdrängen, was die Tabelle im Anhang verdeutlicht. Die meisten Hersteller werden bis 2008 komplett auf den CAN-Bus umsteigen und andere Bussysteme wie ISO9141 nicht länger berücksichtigen. Hauptsächlich wird der CAN-Bus mit 500 Kbit/s für die Antriebsfunktionen (Motor-CAN) und mit 250 Kbit/s für Komfortfunktionen (Comfort-CAN) eingesetzt. Da die Nachrichten gleich aufgebaut sind, ist es kein Problem beide CANs miteinander zu verbinden.

1.2 ProblematikBevor wir uns für das Projekt entschieden haben, mussten wir sicher gehen, dass das von uns gewählte Fahrzeug einen OBD2-Anschluss hat. Wir haben im Internet gesucht und wurden in einem Forum [2] fündig, welches sich mit genau diesem Thema beschäftigt. In unserem Fall ist der OBD2-Stecker hinter dem Aschenbecher. Um ganz sicher zu gehen, haben wir den Widerstand zwischen PIN6 und PIN14 nachgemessen. Wie erwartet, war dieser 60 Ohm und somit der CAN-Bus. (Erklärung: 120 Ohm, je CAN-Abschlusswiderstand, parallel geschaltet ergibt 60 Ohm gesamt)

C. Eisenbeiß, R. Janisch, M. Karg 1/9

Zugriff auf die Fahrzeugelektronik

Um das Notebook mit dem Auto verbinden zu können, benötigten wir noch ein spezielles Kabel, welches wir uns im Internet bestellt haben. Es gab dabei allerdings ein Problem, denn die Pinbelegung auf der CAN-Seite stimmte nicht mit der unserer PCMCIA-Karte überein. Wir haben uns deshalb dazu entschieden, einen Adapter zu bauen.

Ein etwas größeres Problem war die Auswertung der ausgelesenen Daten. Trotz intensiver Suche haben wir keine Tabellen gefunden, in denen beschrieben wird, welche ID welche Funktion beschreibt. Wir mussten deshalb selbst alle Funktionen testen und die auftretenden Änderungen mitprotokollieren. Bei einfachen Dingen wie Blinker oder Bremse war das kein großes Hindernis, aber bei der Drehzahl und der Geschwindigkeit kam noch ein uns unbekannter Umrechnungsfaktor hinzu. Der von uns gewählte Faktor ist deshalb nur geschätzt und möglicherweise nicht ganz richtig.

1.3 Zukunft: OBD-3In den USA befindet sich bereits der Nachfolger des OBD-2 in Entwicklung. Hauptgrund für die Entwicklung von OBD-3 ist nach Angaben der Amerikaner , dass bei Fahrzeugfehlern die Warnlampen oft dauerhaft ignoriert werden, anstatt das der Fahrer sein Fahrzeug in eine Werkstatt bringt. Mit OBD-3 soll es möglich sein Fehler sofort mittels Satellit an die entsprechende Behörde weiterzuleiten, welche dem Fahrzeughalter nach einer bestimmten Frist eine Aufforderung zur Fahrzeuginspektion zukommen lässt. Die Pflicht zur jährlichen oder zweijährlichen Fahrzeuguntersuchung entfällt jedoch für OBD-3-Fahrzeuge.

C. Eisenbeiß, R. Janisch, M. Karg 2/9

Zugriff auf die Fahrzeugelektronik

1.4 DatenstromDie Steuergeräte im Auto senden kontinuierlich Nachrichten, ohne dass man diese anfordern muss. Das hat uns die Arbeit sehr erleichtert, da wir keinerlei Hinweise hatten, in welchen Nachrichten welche Informationen stecken. Die Anzahl der Nachrichten ist außerdem abhängig davon, in welchem Zustand sich das Fahrzeug befindet (Zündung an, Motor an).

Um nun herauszufinden, in welcher Nachricht welche Informationen gesendet werden, haben wir sämtliche Funktionen im Auto durch gecheckt und die Änderungen aufgezeichnet. Die meisten Funktionen wie Blinker oder Licht werden auch übertragen, wenn der Motor ausgeschaltet ist.

2. Programmtechnische RealisierungDa wir mehr Probleme als Erfolg mit der Nutzung des Visual Studios hatten, haben wir uns dazu entschieden, unser Projekt mit dem Borland C++ Builder zu erstellen. Mit dem C++ Builder ist es sehr einfach, eine benutzerfreundliche Oberfläche zu gestalten. Außerdem stellt er viele nützliche Funktionen, wie z.B. Timer, zur Verfügung.

Um die Funktionen der API des CAN-Controllers ansprechen zu können, müssen diese erst definiert werden. Die für unser Projekt relevanten Funktionen waren lediglich diese, die man zum Initialisieren und Lesen benötigt. Beim Programmstart muss nun lediglich die richtige Adresse der Funktion zugewiesen werden. Dies wird durch den Aufruf der GetProcAddress(...) realisiert.

Beim Aufbauen einer Verbindung wird als erstes die Funktion int ca_InitApi_1(3, 0) aufgerufen. Der erste Parameter steht dabei für den Typ des Geräts, in unserem Fall für die PCMCIA-Karte. Als Alternative gibt es noch CANLPT (8) und CANUSB (11). Da wir allerdings keine Möglichkeit hatten, unser Projekt mit diesen Geräten zu testen, haben wir keine Auswahlmöglichkeit im Programm eingebaut. Mit dem zweiten Parameter stellt man die I/O-Adresse des Geräts ein (z.B. 0x378 für LPT1). Durch die 0 wird die Adresse allerdings automatisch ermittelt. Bei erfolgreicher Initialisierung wird die Softwareversion zurückgegeben. Wird eine 0 zurückgegeben, ist ein Fehler aufgetreten und die Funktion wird abgebrochen. Danach lösen wir noch einen Hardware-Reset durch Aufrufen der Funktion int ca_ResetCanCard_1(void)aus. Bei Erfolg wird hierbei eine 1 zurückgegeben, so dass wir auch hier eine Prüfung durchführen können.

Jetzt können wir mit Hilfe der Funktion int ca_InitCanCard_1(...) die Karte initialisieren. Die wichtigsten Übergabeparameter sind hier der ausgewählte Kanal und die Geschwindigkeit. Die Geschwindigkeit wird mit zwei Registern übergeben, BTR0 und BTR1. Bei allen von uns angebotenen Geschwindigkeiten ist BTR1 = 0x1C. Voreingestellt ist eine Geschwindigkeit von 250 Kbit/s bzw. BTR0 = 0x01. Der Rückgabewert entspricht von der Funktion her dem des Resets. Auch C. Eisenbeiß, R. Janisch, M. Karg 3/9

Zugriff auf die Fahrzeugelektronik

hier wird bei Erfolg eine 1, bei Misserfolg eine 0 zurückgegeben. Sind alle drei Funktionen erfolgreich ausgeführt worden, dann ist die Karte initialisiert und es können Nachrichten geschickt bzw. gelesen werden.

Das Lesen der CAN-Nachrichten geschieht in einem Timer, der ca. alle 100ms aufgerufen wird. Dabei werden mit der Funktion int ca_GetData_1(int*) die Nachrichten aus der FIFO gelesen und ausgewertet. Nach dem Funktionsaufruf steht die gelesene Nachricht in der im Übergabeparameter angegebenen Variable (receivedata[]). Dieses Integer-Array ist folgendermaßen aufgebaut:

Variablenindex Bedeutung0 0x7001 = CAN 1 Standard Nachricht

0x7002 = CAN 2 Standard Nachricht0xC001 = CAN 1 Extended Nachricht0xC002 = CAN 2 Extended Nachricht

1 ID der empfangenen Nachricht2 DLC (Anzahl der Datenbytes)

3-10 Datenbytes11-15 Reserviert

In unserem Fall verwerten wir nur Standard Nachrichten, da in einem vorhergehenden Test keine Extended Nachrichten angekommen sind. In einer IF-Abfrage wird geprüft, ob eine Nachricht mit einer „bekannten“ oder einer „unbekannten“ ID empfangen wurde. Alle Nachrichten werden in dem kleinen CAN-Monitor ausgegeben.

Je nach Art der Information werden die Daten bearbeitet und danach im Programm visualisiert. Einfache Funktionen wie Blinker etc. werden durch Checkboxen angezeigt, Werte wie z.B. die Temperatur oder die Geschwindigkeit, in einer Textbox. Manche Informationen, welche nur 1 Bit benötigen, wie z.B. Licht und Türen, werden zu einem Byte zusammengefasst. Das 1. Byte der ID 0x766 enthält die Information, ob das Licht angeschaltet ist und welche Türen geöffnet sind.

In einem zweiten Timer wird zusätzlich eine Log-Datei erstellt. Hier werden alle 2 Sekunden die Werte für Geschwindigkeit und Drehzahl in einer Listbox, welche für den Benutzer nicht sichtbar ist, gespeichert. Diese Werte werden außerdem mit einem Zeitstempel versehen, so dass man später die Daten besser auswerten kann. Eine Datei sieht also folgendermaßen aus:

C. Eisenbeiß, R. Janisch, M. Karg 4/9

Zugriff auf die Fahrzeugelektronik

Zeitstempel Drehzahl Geschwindigkeit1151148336 2203 801151148338 2321 851151148340 2328 851151148342 2336 86

Die Werte sind durch Tabulatoren getrennt, um die Implementierung in andere Programme wie z.B. Excel zu erleichtern.

Das Diagramm im Programm selbst verwendet zur Anzeige jeden Wert für die Geschwindigkeit. Dabei variiert die Farbe für vorwärts (blau) und rückwärts (rot). Das Diagramm lässt sich als BMP-Datei abspeichern.

3. Programm3.1 ProgrammumgebungDas Programm wurde für einen Renault Laguna dCi, Baujahr 2005 geschrieben und ist mit hoher Wahrscheinlichkeit nicht zu anderen Fahrzeugtypen kompatibel. Der Grund dafür ist, dass die Nachrichten, die auf dem CAN-Bus versendet werden, nicht standardisiert sind. Es wäre möglich, dass das Programm (zumindest teilweise) auch bei anderen Fahrzeugen des selben Herstellers funktioniert. Hier fehlt es uns allerdings an Testfahrzeugen, um eine genaue Kompatibilitätsliste zu erstellen.

Um das Programm ausführen zu können, werden einige Dateien benötigt. Zum einen einige Borland-spezifische Dateien, zum anderen die API der Firma Sontheim [1], welche auf der Homepage heruntergeladen werden kann. Im Normalfall reicht es aus, die Dateien im gleichen Ordner wie die ausführbare Datei zu belassen. Es kann allerdings unter Umständen erforderlich sein, die Dateien in den System32-Ordner zu verschieben. Des weiteren wird zur Ausführung Windows XP benötigt.

3.2 Programmaufbau und BedienungDas Programm ist in 3 Bereiche aufgeteilt („Verbindung“, „Daten“, Diagramm“). Gleich nach dem Start sieht man den „Verbinden“-Dialog (Abb. 1) vor sich. Man kann hier den Kanal wählen, an dem der OBD2-Stecker angeschlossen ist und die entsprechende Geschwindigkeit. Die Geschwindigkeit ist auf 250 Kbit/s voreingestellt und muss im Normalfall nicht geändert werden.

C. Eisenbeiß, R. Janisch, M. Karg 5/9

Zugriff auf die Fahrzeugelektronik

(Abb. 1)

Wenn die Verbindung erfolgreich hergestellt wurde, sollte im Statusfeld der gleiche Text wie in Abb. 1 stehen. Außerdem wird der Button „Verbinden“ deaktiviert und der Button „Trennen“ wird aktiviert. Um erneut eine Verbindung herzustellen, muss also erst der Button „Trennen“ geklickt werden. Tritt ein Fehler auf, dann erscheint der Text „Init Api NOT done“. Durch klick auf den Button Beenden, wird das gesamte Programm beendet.

Wenn die Verbindung hergestellt wurde, sollten im Abschnitt „Daten“ (Abb. 2), je nach Zustand des Autos, einige Daten angezeigt werden. Es ist nicht möglich, die Häkchen selbst zu setzen bzw. Werte zu ändern. Die Werte im Feld „CAN Monitor“ können allerdings markiert und kopiert werden. Beim Trennen der Verbindung wird die Anzeige nicht zurückgesetzt. Das gilt auch für den Abschnitt „Diagramm“ (Abb. 3). Bei Bedarf lässt sich alles mit Ausnahme des CAN Monitors durch Klick auf den Button „Anzeige zurücksetzten“ neu initialisieren.

Wenn man auf den Button „Logfile speichern“ klickt, öffnet sich ein „Speichern unter“-Dialog. Man kann hier wie gewöhnt den gewünschten Pfad und Dateinamen angeben. Die Datei kann später in andere Anwendungen, wie z.B. Excel, eingebunden werden.

C. Eisenbeiß, R. Janisch, M. Karg 6/9

Zugriff auf die Fahrzeugelektronik

(Abb. 2)

Auch das Diagramm (Abb. 3) kann gespeichert werden, allerdings nicht als Textdatei, sondern als Bild im Bitmap-Format. Durch klick auf den Button „Diagramm zurücksetzten“ wird alles bisherige verworfen und das Diagramm in den Anfangszustand versetzt.

In dem Diagramm wird zwar zwischen Vorwärts- und Rückwärtsgang farblich unterschieden, allerdings ist beides zusammen als eine Linie Dargestellt.

C. Eisenbeiß, R. Janisch, M. Karg 7/9

Zugriff auf die Fahrzeugelektronik

(Abb. 3)

4. FazitDas Auslesen der Fahrzeugdaten über den CAN Bus der OBD2 Schnittstelle, kann für verschiedenste Zwecke eingesetzt werden. Jedoch kann das wahre Potential der Schnittstelle nur genutzt werden, wenn man auch Daten auf den Bus schreiben kann. Da aber die Informationen darüber, wie genau der Zugriff auf den Fahrzeug-CAN funktioniert, nicht frei verfügbar sind, haben wir uns auf das Mithören der Buskommunikation und das Interpretieren der Nachrichten beschränkt.

C. Eisenbeiß, R. Janisch, M. Karg 8/9

Zugriff auf die Fahrzeugelektronik

5. GlossarAPI – Application Programming Interface

BTR – Bus Timing Register

CAN – Controller Area Network

dCi – Common-Rail-Dieselmotor von Renault

FIFO – First In First Out

LED – Light Emitting Diode

OBD – On Board Diagnose

PCMCIA – Personal Computer Memory Card International Association

PKW – Personen Kraft Wagen

6. Quellen & weiterführende Informationen[1] http://www.s-i-e.de

[2] http://www.canhack.de

Bussysteme und Interfaces4. Semester Informatik von Herr Gerum

http://www.obd-2.de

http://www.ozenelektronik.com

http://www.wgsoft.de

http://www.car-pc.info

http://www.mictronics.de/?page=j1850_vpw

C. Eisenbeiß, R. Janisch, M. Karg 9/9

Liste der entschlüsselten IDs

Anhang: ID-Liste

Gefundene IDs

DrehzahlID: 0x0FA0x4F 0xA8 0x56 0x47 0x20 0x56 0x56

Das erste Byte ist das höherwertige Byte, das zweite Byte das niederwertige Byte. Um die reale Drehzahl zu erhalten, muss man den Wert (0x4FA8) durch 8 Teilen. In diesem Fall ergibt sich diese Rechnung:

0x4FA8 / 8D = 20392D / 8D = 2549 U/min

BremspedalID: 0x0FA

0x4F 0xA8 0x56 0x47 0x20 0x56 0x56

Wenn das Pedal gedrückt ist, wird der Wert 0x60 übertragen, wird das Pedal nicht gedrückt, die 0x20.

LenkradeinschlagID: 0x2010x18 0xFE 0xFE 0x00 0x00 0xAB 0x00 0x00

RückwärtsgangID: 0x386

0x02 0x53 0x5B 0x50 0x3F 0x00

Wenn der Rückwärtsgang eingelegt ist, wird der Wert 0x02 Übertragen. Der Rückwärtsgang wird auch noch in einer anderen Nachricht übertragen. Und zwar in der ID 0x766. Wenn im 7. Byte das 5. Bit gesetzt ist, ist der Rückwärtsgang eingelegt.

Liste der entschlüsselten IDs

HandbremseID: 0x7110x00 0x00 0xEA 0xB5 0x06 0x00 0x33 0x0C

Wenn die Handbremse gezogen ist, ist das zweite Bit des ersten Bytes der Nachricht gesetzt. Es wird also 0x04 gesendet.

GeschwindigkeitID: 0x741

0x09 0x31 0x03 0x61 0x00 0x0B

Für die Umrechnung der Geschwindigkeit in einen realen Wert gilt das gleiche wie bei der Drehzahl, mit Ausnahme des Umrechnungsfaktors. In einem Forum [2] haben wir gelesen, dass dieser 1/128 sei, was sich allerdings als falsch herausstellte. Nach ein paar Überlegungen sind wir auf 1/96 gekommen. Mit diesem Faktor kommt der Wert dem Tacho sehr nahe.

0x0931 / 96D = 2353D / 96D = 24,5 km/h

ESPID: 0x741

0x09 0x31 0x03 0x61 0x00 0x0B

Wenn das ESP ausgeschaltet wird, wird das Bit 6 im 5. Byte gesetzt (0x20).

Licht & TürenID: 0x7660x00 0x16 0x10 0x41 0x00 0x01 0x01 0x00

Das Licht und die Türen teilen sich ein Byte. Hier eine Tabelle, welches Bit welche Funktion besitzt.

0000 0100 Licht an0000 1000 Fahrertür geöffnet0001 0000 Beifahrertür geöffnet0010 0000 Tür links hinten geöffnet0100 0000 Tür rechts hinten geöffnet

Liste der entschlüsselten IDs

ZentralverriegelungID: 0x7660x00 0x16 0x10 0x41 0x00 0x01 0x01 0x00

Ist das Auto verschlossen, ist das 5. Bit gesetzt (0x10).

AußentemperaturID: 0x7660x00 0x16 0x10 0x41 0x00 0x01 0x01 0x00

Zuerst muss der Wert in dezimal umgewandelt werden und danach muss 40D abgezogen werden. Ohne die 40D Offset wäre es nicht möglich, negative Temperaturen anzuzeigen.

0x41 = 65D

65 – 40 = 25 °C

LeerlaufID: 0x7660x00 0x16 0x10 0x41 0x00 0x01 0x01 0x00

Wenn kein Gang eingelegt ist (wenn das Auto also im Leerlauf ist), dann wird das erste Bit gesetzt.

Kupplung & BlinkerID: 0x7660x00 0x16 0x10 0x41 0x00 0x01 0x01 0x00

Wird die Kupplung gedrückt, hat das letzte Byte der Nachricht den Wert 0x64.Beim Betätigen des Blinkers ändert sich der Wert je nach Richtung.

Bit5 = Blinker linksBit6 = Blinker rechts

Beim Warnblinklicht sind beide Bits gesetzt.

Liste der entschlüsselten IDs

TempomatID: 0x77A0x58 0x7A 0x6A 0x80 0x36 0x00 0x00 0xFE

Der Tempomat hat 2 Funktionen. Zum einen gibt es die Begrenzer-Funktion, zum anderen die Geschwindigkeit-halten-Funktion. Durch einen Schalter kann die gewünschte Funktion ausgewählt werden. Nach dem wählen ist der Tempomat allerdings noch nicht aktiviert, sondern nur „vorbereitet“. Dieses Vorbereiten wird in dem 5. Byte der Nachricht 0x77A übertragen. Folgende Werte können auftreten:

0x20 = Tempomat ist ausgeschaltet0x28 = Begrenzerfunktion0x34 = Geschwindigkeit-halten-Funktion

Tabelle der verwendeten Bussysteme im PKW-Bereich

Hersteller -Modell

1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008

Audi/VW ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO9141

KWP2000ISO9141KWP2000

ISO9141KWP2000

ISO9141KWP2000CAN

ISO9141KWP2000CAN

ISO9141KWP2000CAN

CAN

Bentley ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141

ISO 9141 (50%)KWP2000 (50%)

ISO 9141 (35%)KWP2000 (65%)

ISO 9141 (20%)KWP2000 (80%)

CAN CAN

BMW - Mini N/A N/A N/A N/A N/A N/A KWP2000 KWP2000 KWP2000 KWP2000 BMW 3-Serie, 5-Serie, X5, Z3, Z4, Z8, 740i, 740iL, 750iL

ISO 9141/2

ISO 9141/2

ISO 9141/2

ISO 9141/2

ISO 9141/2

ISO 9141/2

ISO 9141/2

ISO 9141/2

ISO 9141/2

ISO 9141/2

BMW 5-Serie; nächste Generation (E60)

N/A N/A N/A N/A N/A N/A N/A N/A KWP2000 KWP2000

BMW 745i, 745Li, 765Li N/A N/A N/A N/A N/A N/A KWP2000 KWP2000 KWP2000 KWP2000

ChryslerISO 9141-2 (100%)

ISO 9141-2 (100%)

ISO 9141-2 (95%)J1850-VPW (5%)

ISO 9141-2 (85%)J1850-VPW (15%)

ISO 9141-2 (75%)J1850-VPW (25%)

ISO 9141-2 (35%)J1850-VPW (65%)

ISO 9141-2 (15%)J1850-VPW (85%)

ISO 9141-2 (5%)J1850-VPW (95%)

CAN (5%)J1850-VPW (95%)

CAN (15%)J1850-VPW (85%)

CAN (35%)J1850-VPW (65%)

CAN (85%)J1850-VPW (15%)

CAN (100%)

Daewoo-Lanos N/A N/A J1850-VPW

J1850-VPW

J1850-VPW

J1850-VPW

J1850-VPW N/A

Daewoo-Leganza N/A N/A J1850-

VPWJ1850-VPW

J1850-VPW

J1850-VPW KWP2000 KWP2000

Daewoo-Nubira N/A N/A J1850-

VPWJ1850-VPW

J1850-VPW

J1850-VPW KWP2000 KWP2000

Ford 3 J1850-PWM

J1850-PWM

J1850-PWM

J1850-PWM

J1850-PWM

J1850-PWM 0% CAN 5% CAN 50% CAN 85% CAN 90% CAN 100% CAN 100% CAN

GM (ohne Ausnahmen)

J1850-VPW

J1850-VPW

J1850-VPW

J1850-VPW

J1850-VPW

J1850-VPW

J1850-VPW

J1850-VPW

80% J1850-VPW15% CAN5% KWP2000

55% J1850-VPW40% CAN5% KWP2000

25% J1850-VPW70% CAN5% KWP2000

25% J1850-VPW70% CAN5% KWP2000

100% CAN

Ausnahmen: Saturn LS 3.0L N/A N/A N/A N/A KWP2000 KWP2000 KWP2000 KWP2000

Saturn VUE 3.0L N/A N/A N/A N/A N/A N/A KWP2000 KWP2000

Saturn VUE 3.5L N/A N/A N/A N/A N/A N/A N/A KWP2000

Saturn ION N/A N/A N/A N/A N/A N/A N/A CAN

Cadillac Catera N/A KWP2000 KWP2000 KWP2000 KWP2000 KWP2000 N/A N/A

Cadillac CTS N/A N/A N/A N/A N/A N/A N/A KWP2000

GEO Metro ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 N/A N/A

GEO Prism J1850-VPW

J1850-VPW ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 N/A

GEO Tracker ISO 9141 ISO 9141 ISO 9141 KWP2000 KWP2000 KWP2000 KWP2000 KWP2000

Pontaic Vibe N/A N/A N/A N/A N/A N/A N/A ISO 9141

Saab 9-3 N/A N/A N/A N/A N/A N/A N/A CAN

Kia Sorento N/A N/A N/A N/A N/A N/A N/A KWP 2000

Siehe GM Zeile oben (ohne Ausnahmen)

Honda/Acura ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141

70% ISO 9141 30% CAN

40% ISO 9141 60% CAN

CAN

Hyundai ISO 9141 ISO 9141 ISO 9141 KWP2000 ISO 9141

KWP2000ISO 9141 KWP2000

ISO 9141 KWP2000

ISO 9141 KWP2000

ISO 9141 KWP2000

ISO 9141 KWP2000

ISO 9141 KWP2000

ISO 9141 KWP2000 CAN

Isuzu J1850- J1850- J1850- J1850- J1850- J1850- J1850- J1850- J1850- J1850- unbekannt unbekannt unbekannt

Quelle: http://www.obd-2.de/tech_com-uebe.html

Tabelle der verwendeten Bussysteme im PKW-Bereich

VPW VPW VPW VPW VPW VPW VPW VPW VPW VPW

Jaguar ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141

Kia - Optima N/A N/A N/A N/A N/A KWP 2000

KWP 2000

KWP 2000

Kia - Rio N/A N/A N/A N/A N/A ISO 9141 ISO 9141 ISO 9141 Kia - Sephia ISO

9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 N/A N/A N/A N/A N/A N/A N/A

Kia - Spectra N/A N/A N/A N/A ISO 9141 ISO 9141 ISO 9141 ISO 9141 Kia - Sportage ISO

9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 Kia Sedona N/A N/A N/A N/A N/A N/A ISO 9141 ISO 9141 Kia Sorento N/A N/A N/A N/A N/A N/A N/A KWP

2000 Land Rover ISO

9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 0% CAN 0% CAN 0% CAN 62% CAN 100% CAN 100% CAN 100% CAN

Mazda ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141

75%-IS0 914125%-CAN

60%-CAN40%-ISO 9141

60%-CAN40%-ISO 9141

CAN CAN CAN

Mazda-Ford J1850-PWM

J1850-PWM

J1850-PWM

J1850-PWM

J1850-PWM

J1850-PWM

J1850-PWM

J1850-PWM

J1850-PWM

50%-J185050%-CAN

50%-J185050%-CAN

Tribute-CAN Truck?

?

Mercedes ISO 9141 ISO 9141 ISO 9141 ISO 9141

ISO 9141 KWP 2000

ISO 9141 KWP 2000

ISO 9141 KWP 2000

KWP 2000

KWP 2000 CAN

KWP 2000 CAN

KWP 2000 CAN

KWP 2000 CAN CAN

Mitsubishi ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141

Nissan/Infiniti ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 TBD TBD CAN CAN

Porsche ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141

Rolls Royce 4ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 KWP

2000KWP 2000

Subaru ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141

ISO 9141 KWP 2000

ISO 9141 KWP 2000

KWP 2000 CAN CAN CAN

Suzuki Aerio 2.0L N/A N/A N/A N/A N/A N/A KWP

2000KWP 2000

KWP 2000

KWP 2000 KWP 2000 CAN CAN

Suzuki Esteem 1.6L

ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 N/A N/A N/A N/A N/A N/A

Suzuki Esteem 1.8L N/A N/A N/A ISO 9141 ISO 9141 ISO 9141 ISO 9141 N/A N/A N/A N/A N/A N/A

Suzuki Grand Vitara 2.5L N/A N/A N/A ISO 9141 ISO 9141 ISO 9141 ISO 9141 KWP

2000KWP 2000

KWP 2000 KWP 2000 CAN CAN

Suzuki Grand Vitara 2.7L N/A N/A N/A N/A N/A KWP

2000KWP 2000

KWP 2000

KWP 2000

KWP 2000 KWP 2000 CAN CAN

Suzuki Sidekick 1.6L

ISO 9141 ISO 9141 ISO 9141 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A

Suzuki Sidekick 1.8L

ISO 9141 ISO 9141 ISO 9141 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A

Suzuki Swift 1.3L

ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 N/A N/A N/A N/A N/A N/A N/A

Suzuki Vitara 1.6L N/A N/A N/A ISO 9141 ISO 9141 ISO 9141 N/A N/A N/A N/A N/A N/A N/A

Suzuki Vitara 2.0L N/A N/A N/A ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 CAN CAN

Suzuki X90 1.6L

ISO 9141 ISO 9141 ISO 9141 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A

Toyota/Lexus J1850-VPW

J1850-VPW / ISO 9141

J1850-VPW / ISO 9141

J1850-VPW / ISO 9141

ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 / CAN

ISO 9141 / CAN

ISO 9141 / CAN TBD TBD

Volvo ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141

90% ISO 9141 10% CAN

5% ISO 9141 95% CAN

CAN CAN CAN

Quelle: http://www.obd-2.de/tech_com-uebe.html