Christians Webseite        << zurueck        vor >>

OBDII, OBD2

Das Kürzel OBD2 steht für On-Board-Diagnose Version 2. Es ist der generelle Oberbegriff für ein Diagnosesystem für Kraftfahrzeuge. Es überwacht alle abgasrelevanten Daten und sonstige Fehler der Steuergeräte. Historischer Anstoss für dieses System waren die strengen US-Kalifornischen Anforderungen zur Luftreinhaltung. Seit ca 2004 ist OBD2 auch für europäische Autos verpflichtend.
https://de.wikipedia.org/wiki/On-Board-Diagnose
Die Beschreibung im englischen Wiki ist noch wesentlich ausführlicher:
https://en.wikipedia.org/wiki/On-board_diagnostics
Eine weitere, sehr ausführliche Beschreibung ist hier zu finden:
https://www.csselectronics.com/pages/obd2-explained-simple-intro

Der Begriff CAN-Bus wird in Diskussionen gerne verwürfelt. CAN ist aber nur eine der möglichen physikalischen Schnittstellen.

OBD2 Stecker

Als elektrische Schnittstelle wurde ein 16-poliger, genormter Stecker definiert.
Corsa
Dieser Stecker muss sich in der Nähe des Fahrersitzes befinden. Üblicherweise links unten am ehemaligen "Sicherungskasten" oder in der Mittelkonsole/unter dem Radio.

OBD2 Protokolle

In der OBD2 Spezifikation sind 5 verschiedene Übertragungsprotokolle definiert die alle verwendet werden dürfen:
- SAE J1850 PWM
- SAE J1850 VPW
- ISO 9141-2
- ISO 14230 KWP2000
- ISO 15765 CAN

Die Protokolle verwenden unterschiedliche elektrische Schnittstellen und sind deshalb unterschiedlichen Pins im Stecker zugeordnet. Die vielen Protokolle sind ein Zugeständnis an die Fahrzeughersteller die ihre alten Sachen weiter verwenden wollten. Mittlerweile ist die Unterstützung von CAN verpflichtend. Egal welches Protokoll, der Inhalt der Basisdaten ist üblicherweise identisch.

(Quelle: https://www.csselectronics.com/pages/obd2-explained-simple-intro)
OBD2

Was kann man damit anfangen?

Mit den klassischen OBD2-Daten nicht sehr viel. Wie erwähnt geht es dabei primär um die korrekte Funktion der Abgasreinigung und alle Daten aus dem Motorsteuergerät die dafür wichtig sein könnten. Diese Datensätze sind genormt und für alle Fahrzeuge ähnlich. Falls der Motor Probleme macht kann man daraus erste Rückschlüsse ziehen woran es liegt. Ansonsten ein nettes Gimmick um per Smartphone-App den aktuellen Motorzustand zu betrachten.

Steuergeräte kodieren?

Das geht NICHT mit den einfachen OBD2-Dongle-App-Lösungen.
Viele Autohersteller benutzen zwar die selbe physikalische OBD2-Schnitstelle um auf ihre diversen Steuergeräte zuzugreifen, aber immer mit sehr spezieller Software und Protokollen.

Steuergeräte im Fahrzeug

Moderne Fahrzeuge haben diverse Steuergeräte verbaut, für jede Hauptfunktion ein eigenes. Als Beispiel:

  • Motorsteuerung
  • ABS
  • Getriebe
  • Klima
  • Beleuchtung
  • Türöffner
  • ...

Die feine Aufteilung mag etwas übertrieben erscheinen. Sie ergibt aber Sinn damit z.B. das sicherheitsrelevante ABS mit Sicherheit von der Klimaanlage isoliert und unbeeinflusst bleibt.

Simple Adapter

Für die "einfachen Spielereien" kann man gut einen Bluetooth-"Ramsch-Clone" aus China benutzt.
Corsa Corsa
Corsa Corsa

Es handelt sich bei diesem Beispiel (vermutlich) um ein Plagiat rund um das ELM327 IC von ELM-Electronics.

Die wichtigsten Bauteile auf der Platine:

  • "schwarzer Blop", ELM327 (Clone?)
  • YC1034 von YiChip, Bluetooth-UART
  • ATA 6560, CAN Transceiver
  • 78L05 Spannungsregler

Wenn man der HW-Bestückung folgt dann werden CAN ([6] und [14]), K-Line ([7]) und L-Line ([15]) unterstützt.
Nicht verbunden sind die Pins für SAE J1850 ([2] und [10]).

Zum Testen kann man den Adapter mit 12V[16] und Masse [4 oder 5] in Betrieb nehmen. Nach dem Bluetooth-Pairing (mit dem PC) wird eine neue Seriell-über-Bluetooth Verbindung angeboten. Mit einem simplen Terminalprogramm kann man Verbindung aufnehmen (9600,N,8,1). Eine vollständige Übersicht der Befehle findet man bei ELM. Zum Üben sind die "AT"-Befehle gut geeignet. Sie haben ihren Namen durch die beiden vorangestellten Zeichen "AT". Normale OBD-Befehle haben keinen Prefix. Gesendete Daten müssen mit einem CR (Carriage Return) abgeschlossen werden:

Beispiel "I" = Send Identification String

 
>AT I
ELM327 v2.1

Beispiel "Z" = Reset All and start up by sending Identification String
 
>AT Z

ELM327 v1.5

Der Clone meldet sich als v2.1 bzw v1.5, er scheint sich selbst nicht ganz so sicher zu sein ..

ELM327

Der ELM327 (Wiki-Link) ist ein populäres Spezial-IC der Firma ELM Electronics für OBD-Interfaces. Es vereinfacht die Kommunikation indem es die komplexen Protokolle in simple Befehle abstrahiert.

Über die Zeit gab es diverse Varianten (v1.0 .. v2.3) mit jeweils erweitertem und fehlerbereinigtem Funktionsumfang. Den Berichten zu Folge wurde bei frühen Versionen vergessen die Copy-Protection für die Firmware zu aktivieren. Als Folge gab es kurz darauf Klone die alle auf dieser Variante basierten. Später wurden die Klone modifiziert um den (PC-)Programmen eine passende Variantennummer vorzugaukeln, was häufig zu Fehlverhalten führte.

Mittlerweile gibt es auf dem Markt einen ganzen Zoo von Varianten mit unbekanntem Funktionsumfang. Findige Zeitgenossen haben deshalb diverse "ELM-Identifier" Apps geschrieben. Diese Apps überprüfen welche Befehle der Chip akzeptiert und schätzen daraus ab um welche Variante es sich handeln könnte.

Die Firma ELM Electronics hat den Geschäftsbetrieb im Jahr 2022 eingestellt.

ELM327 v2.3 Datasheet
Liste der AT-Kommandos
Programmierbare Parameter
Schaltplan

Ein sehr ähnlicher Chipsatz ist der STN1110 von "OBD Solutions". Er soll vollständig kompatibel zum ELM327 sein, dazu schneller und in allen Belangen besser. In meinem Adapter scheint er aber nicht verbaut zu sein weil die spezifischen ST-Befehle nicht erkannt werden.

Spezielle Adapter

Um auf alle Steuergeräte zugreifen zu können benötigt man aber "richtige" HW und SW. Hier kocht leider jeder Fahrzeughersteller sein eigenes Süppchen. Systeme die alle Fahrzeugtypen unterstützen sind sehr kostspielig und nur für Profis sinnvoll. Für den Hobby-Bereich kann man aber markenspezifische Systeme benutzen. Als Beispiel:

- VW: VCDS von Ross-Tech ist sehr beliebt und brauchbar.
- Opel: OP-COM von Carsoft.

Insbesondere in der Software steckt die Differenzierung. Die Zuordnung der Bits und Bytes zu den Funktionen ist bei jedem Steuergerät und Hersteller anders.