Zugriff auf die Fahrzeugelektronik

Transcrição

Zugriff auf die Fahrzeugelektronik
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
Zugriff auf die Fahrzeugelektronik
Inhaltsverzeichnis
1. Aufgabenstellung.................................................. 1
1.1 Einführung................................................................................1
1.2 Problematik.............................................................................. 1
1.3 Zukunft: OBD-3....................................................................... 2
1.4 Datenstrom............................................................................... 3
2. Programmtechnische Realisierung........................3
3. Programm..............................................................5
3.1 Programmumgebung................................................................ 5
3.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. Aufgabenstellung
Unsere Aufgabe bestand darin, ein Notebook mit der Diagnoseschnittstelle (CANBus) 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ührung
OBD 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 CANBus. 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 OttoMotoren 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 CANBus 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 Problematik
Bevor 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 CANBus. (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-3
In 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 Datenstrom
Die 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 Realisierung
Da 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
Bedeutung
0
0x7001 = CAN 1 Standard Nachricht
0x7002 = CAN 2 Standard Nachricht
0xC001 = CAN 1 Extended Nachricht
0xC002 = CAN 2 Extended Nachricht
1
ID der empfangenen Nachricht
2
DLC (Anzahl der Datenbytes)
3-10
Datenbytes
11-15
Reserviert
In unserem Fall verwerten wir nur Standard Nachrichten, da in einem
vorhergehenden Test keine Extended Nachrichten angekommen sind. In einer IFAbfrage 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
1151148336
1151148338
1151148340
1151148342
Drehzahl
2203
2321
2328
2336
Geschwindigkeit
80
85
85
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. Programm
3.1 Programmumgebung
Das 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 System32Ordner zu verschieben. Des weiteren wird zur Ausführung Windows XP benötigt.
3.2 Programmaufbau und Bedienung
Das 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. Fazit
Das 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 FahrzeugCAN 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. Glossar
API – 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 Interfaces
4. 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
Drehzahl
ID: 0x0FA
0x4F
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
Bremspedal
ID: 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.
Lenkradeinschlag
ID: 0x201
0x18
0xFE
0xFE
0x00
0x00
0xAB
0x00
0x00
Rückwärtsgang
ID: 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
Handbremse
ID: 0x711
0x00
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.
Geschwindigkeit
ID: 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
ESP
ID: 0x741
0x09
0x31
0x03
0x61
0x00
0x0B
Wenn das ESP ausgeschaltet wird, wird das Bit 6 im 5. Byte gesetzt (0x20).
Licht & Türen
ID: 0x766
0x00
0x16
0x10
0x41
0x00
0x01
0x01
Das Licht und die Türen teilen sich ein Byte. Hier eine Tabelle, welches Bit welche
Funktion besitzt.
0000 0100
Licht an
0000 1000
Fahrertür geöffnet
0001 0000
Beifahrertür geöffnet
0010 0000
Tür links hinten geöffnet
0100 0000
Tür rechts hinten geöffnet
0x00
Liste der entschlüsselten IDs
Zentralverriegelung
ID: 0x766
0x00
0x16
0x10
0x41
0x00
0x01
0x01
0x00
0x01
0x01
0x00
Ist das Auto verschlossen, ist das 5. Bit gesetzt (0x10).
Außentemperatur
ID: 0x766
0x00
0x16
0x10
0x41
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
Leerlauf
ID: 0x766
0x00
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 & Blinker
ID: 0x766
0x00
0x16
0x10
0x41
0x00
0x01
0x01
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 links
Bit6 = Blinker rechts
Beim Warnblinklicht sind beide Bits gesetzt.
0x00
Liste der entschlüsselten IDs
Tempomat
ID: 0x77A
0x58
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 ausgeschaltet
0x28 = Begrenzerfunktion
0x34 = Geschwindigkeit-halten-Funktion
Tabelle der verwendeten Bussysteme im PKW-Bereich
Hersteller
1996 1997
Modell
1998
1999
2000
2001
2002
2003
2004
2005
ISO
9141
ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141
Bentley
ISO
9141
ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141
BMW - Mini
N/A
N/A
BMW 3-Serie,
5-Serie, X5,
Z3, Z4, Z8,
740i, 740iL,
750iL
ISO 9141
(50%)
KWP2000
(50%)
ISO 9141
(35%)
KWP2000
(65%)
N/A
N/A
N/A
N/A
KWP2000 KWP2000 KWP2000 KWP2000
ISO
ISO
9141/2 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
Chrysler
ISO 9141ISO 9141ISO
2 (85%)
ISO 9141- 2 (95%)
9141-2
J18502 (100%) J1850(100%)
VPW
VPW (5%)
(15%)
ISO 91412 (75%)
J1850VPW
(25%)
ISO 91412 (35%)
J1850VPW
(65%)
ISO 91412 (15%)
J1850VPW
(85%)
ISO 91412 (5%)
J1850VPW
(95%)
N/A
Daewoo-Lanos N/A
N/A
J1850VPW
J1850VPW
J1850VPW
J1850VPW
J1850VPW
DaewooLeganza
N/A
N/A
J1850VPW
J1850VPW
J1850VPW
J1850VPW
KWP2000 KWP2000
DaewooNubira
N/A
N/A
J1850VPW
J1850VPW
J1850VPW
J1850VPW
KWP2000 KWP2000
Ford 3
J1850- J1850PWM PWM
J1850PWM
J1850PWM
J1850PWM
J1850PWM
0% CAN
J1850- J1850VPW
VPW
J1850VPW
J1850VPW
J1850VPW
J1850VPW
2007
2008
ISO9141 ISO9141 ISO9141
ISO9141 ISO9141 ISO9141
KWP2000 KWP2000 KWP2000 CAN
KWP2000 KWP2000 KWP2000
CAN
CAN
CAN
Audi/VW
GM (ohne
Ausnahmen)
2006
J1850VPW
CAN
(5%)
J1850VPW
(95%)
ISO 9141
(20%)
CAN
KWP2000
(80%)
CAN
CAN
(35%)
J1850VPW
(65%)
CAN
(100%)
ISO
9141/2
CAN
(15%)
J1850VPW
(85%)
CAN
(85%)
J1850VPW
(15%)
5% CAN
50% CAN 85% CAN 90% CAN 100% CAN 100% CAN
J1850VPW
80%
J1850VPW
15% CAN
5%
KWP2000
55%
J1850VPW
40% CAN
5%
KWP2000
25%
J1850VPW
70% CAN
5%
KWP2000
25%
J1850VPW
100% CAN
70% CAN
5%
KWP2000
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
KWP2000
GEO Metro
ISO
9141
ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 N/A
GEO Prism
J1850- J1850VPW
VPW
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
Honda/Acura
ISO
9141
70% ISO 40% ISO
ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 9141 30% 9141 60% CAN
CAN
CAN
Hyundai
ISO
9141
ISO 9141 ISO 9141 KWP2000
Isuzu
J1850- J1850-
N/A
N/A
N/A
N/A
N/A
Siehe GM Zeile oben (ohne Ausnahmen)
N/A
ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 N/A
J1850-
J1850-
ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141
CAN
KWP2000 KWP2000 KWP2000 KWP2000 KWP2000 KWP2000 KWP2000 KWP2000
J1850-
J1850-
Quelle: http://www.obd-2.de/tech_com-uebe.html
J1850-
J1850-
J1850-
J1850-
unbekannt unbekannt unbekannt
Tabelle der verwendeten Bussysteme im PKW-Bereich
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
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
Kia - Spectra
N/A
N/A
N/A
VPW
N/A
VPW
VPW
VPW
KWP
2000
VPW
VPW
VPW
KWP
2000
N/A
N/A
N/A
N/A
0% CAN
62% CAN 100% CAN 100% CAN 100% CAN
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
Land Rover
ISO
9141
ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 0% CAN
Mazda
ISO
9141
75%-IS0 60%-CAN 60%-CAN
ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 9141
40%-ISO 40%-ISO CAN
25%-CAN 9141
9141
Mazda-Ford
J1850- J1850PWM PWM
Mercedes
ISO
9141
ISO 9141 ISO 9141 ISO 9141
KWP
ISO 9141 ISO 9141 ISO 9141 KWP
KWP
KWP
2000
2000
2000
2000
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
Porsche
ISO
9141
ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141
Rolls Royce 4
ISO
9141
ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141
Subaru
ISO
9141
ISO 9141 ISO 9141
KWP
ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 KWP
KWP
2000
2000
2000
Suzuki Aerio
2.0L
N/A
N/A
N/A
J1850PWM
N/A
N/A
ISO 9141 ISO 9141 ISO 9141 ISO 9141
ISO
Kia - Sportage
9141
J1850PWM
N/A
J1850PWM
N/A
J1850PWM
N/A
J1850PWM
KWP
2000
KWP
2000
0% CAN
J1850PWM
KWP
2000
J1850PWM
CAN
50%50%TributeJ1850
J1850
CAN
50%-CAN 50%-CAN Truck?
CAN
?
KWP
KWP
KWP 2000 KWP 2000
CAN
2000 CAN 2000 CAN CAN
CAN
KWP
2000
TBD
CAN
CAN
CAN
CAN
CAN
KWP
2000
KWP
2000
KWP
2000
KWP 2000 CAN
CAN
Suzuki Esteem ISO
1.6L
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
N/A
1.8L
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
2000
KWP
2000
KWP
2000
KWP 2000 CAN
CAN
Suzuki Grand
Vitara 2.7L
N/A
N/A
N/A
N/A
N/A
KWP
2000
KWP
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
Toyota/Lexus
J1850J1850J1850J1850ISO 9141 ISO 9141 ISO 9141 /
VPW /
VPW /
VPW /
ISO 9141 ISO 9141 ISO 9141 ISO 9141
TBD
VPW
/ CAN
/ CAN
CAN
ISO 9141 ISO 9141 ISO 9141
Volvo
ISO
9141
N/A
N/A
N/A
N/A
N/A
N/A
N/A
90% ISO 5% ISO
ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 ISO 9141 9141 10% 9141 95% CAN
CAN
CAN
Quelle: http://www.obd-2.de/tech_com-uebe.html
CAN
TBD
CAN

Documentos relacionados