KWP1281
KWP1281, eine Abkürzung für Key-Word-Protokoll 1281, ist ein ausschließlich bei der Volkswagen AG verbreitetes veraltetes Kommunikationsprotokoll für Automobilelektronik, das in der SAE J2818 nachträglich im Januar 2008 definiert wurde. Es ist ausschließlich zur herstellerspezifischen Diagnose von Steuergeräten in Fahrzeugdiagnosesystem gedacht.
Trotz der Normierung in der SAE J2818 handelt es sich bei KWP1281 um ein proprietäres Protokoll. Die Norm legt zwar die Schichten 1 und 2 des OSI-Modells fest, ohne Kenntnisse der weiteren Schichten ist aber keine Diagnoseverbindung zum Fahrzeug möglich. Die Schichten 3 bis 7 werden von der Volkswagen AG nicht veröffentlicht, die alleiniger Nutzer von KWP1281 ist. Dadurch wird ein freier Wettbewerb bei der Entwicklung von Fahrzeugdiagnosesystemen verhindert und der Kunde mit seinem Fahrzeug wird an das Werkstattnetz des Herstellers gebunden, wodurch freie Werkstätten behindert werden. Mit der Gruppenfreistellungsverordnung sollte diese Beschränkung abgebaut werden (siehe Weitere Einflüsse der Gesetzgebung auf die Fahrzeugdiagnose), weshalb auch die SAE J2818 definiert wurde, um dem zu genügen. Inzwischen gibt es verschiedene alternative Diagnoselösungen, die KWP1281 beherrschen und frei verfügbar sind. Die Kenntnisse über die höheren OSI-Schichten wurden dabei in der Regel mittels Reverse Engineering gewonnen. Anbieter wie die Robert Bosch GmbH profitieren davon, dass sie eng mit Volkswagen zusammenarbeiten und seit je her an der Entwicklung der Motorsteuergeräte etc. mitwirken und so interne Kenntnisse über die Protokolle besitzen.
SAE J2818 definiert lediglich die bidirektionale Kommunikation über die K-Leitung. Die teilweise notwendige Initialisierung über die unidirektionale L-Leitung oder die missbräuchliche Nutzung der L-Leitung als bidirektionale Verbindung wird nicht definiert, obwohl beides gängige Praxis bei der Diagnose bei Volkswagen ist.
Initialisiert wird eine Diagnoseverbindung vom Diagnosetester zum Fahrzeug durch ein 10-Bit-Datenwort, welches mit einer Übertragungsrate von 5 Baud (entspricht 200 ms pro Bit) gesendet wird. Teil dieses Reizsignals ist die Adresse des Steuergerätes, mit welchem die folgende Kommunikation stattfinden soll. Die Adresse wird im Datenformat 7O1 (7 Nutzdatenbytes, ungerade Parität, 1 Stoppbit) gesendet. Vor der Reizphase muss die K-Leitung analog zu Parameter W5 aus ISO 14230-2 für mindestens 300 ms auf logisch 1 gewesen sein.
Daten | Funktion |
---|---|
1 Startbit | logisch 0, Kennzeichnung der Reizphase |
7 Datenbits | Adresse des Steuergerätes |
1 Paritätsbit | ungerade Parität (englisch: odd) |
1 Stoppbit | logisch 1 |
Die Adressen für die Steuergeräte sind nicht normiert. Einige Adressen sind:
Adresse | Steuergerät |
---|---|
1 | Motor (Engine Control Unit) |
2 | Automatikgetriebe |
3 | Antiblockiersystem |
Zur Synchronisation und zur Signalisierung, dass das adressierte Steuergerät existiert und sich angesprochen fühlt, sendet das Steuergerät eine Antwort. Es handelt sich dabei um 10 alternierende Bits, beginnend mit einer logischen 0. Betrachtet man diese Bitfolge im 8N1 Datenformat (1 Startbit, 8 Nutzdatenbytes, keine Parität, 1 Stoppbit), ergibt sich für das Nutzdatenbyte der hexadezimale Wert 55hex.
Das Synchronisationsmuster dient dazu, es dem Tester zu ermöglichen, die Baudrate für die weitere Kommunikation zu ermitteln, die das Steuergerät vorgibt, in dem er die Zeitspanne für ein Bit oder das ganze Synchronisationsmuster misst und dann daraus eine Baudrate berechnet:
SAE J2818 gibt an, dass Steuergeräte, die keinen abgasrelevanten Bezug haben, eine von 10.400 Bd. abweichende Baudrate nutzen sollten. Die Praxis zeigt, dass dies nicht eingehalten wird. Baudraten von 1.200, 2.400, 4.800, 9.600 und 10.400 Bd. sind für alle Arten von Steuergeräten anzutreffen.
Nach dem Synchronisationsmuster sendet das Steuergerät zwei weitere Keybytes (7O1), welche dem Tester das verwendete Protokoll mitteilen. Das zweite Keybyte wird vom Tester als Empfangsquittung invertiert zurückgesendet. Damit ist die Initialisierungsphase abgeschlossen. Die weitere Kommunikation findet nun im 8N1-Datenformat statt. Das Steuergerät wartet dabei auf das erste Byte vom Tester. Die Kommunikation ist byteweise aufgebaut: Jedes gesendete Byte (bis auf das letzte Byte einer jeden Botschaft) wird vom Empfänger als Komplement zu FFhex bestätigt. Eine Botschaft weist in der Regel folgenden Aufbau auf:
Typ | Beschreibung |
---|---|
Länge | Anzahl der folgenden Bytes |
Zähler | Fortlaufender Zähler 00hex bis FFhex |
Titel | Botschaftstype |
n Nutzdaten | Daten |
Ende | 03hex |
Die Kommunikation kann entweder durch eine Botschaft mit dem Titel Kommunikationsende vom Tester beendet werden oder wird automatisch nach Ablauf von 1100 ms beendet, da dies die maximal erlaubte Zeit zwischen dem Ende einer Nachricht und dem Beginn der nächsten ist.
Weblinks
- OBD KW 1281 Protokoll
- Infos zum Protokollaufbau (englisch) ( vom 1. Dezember 2013 im Webarchiv archive.today)
Literatur
- Florian Schäffer: Fahrzeugdiagnose mit OBD. OBD I, OBD II sowie KW 1281. 2009, Elektor, ISBN 978-3-89576-223-9
Auf dieser Seite verwendete Medien
Autor/Urheber: Florian Schäffer, Lizenz: CC0
WBH-Diag Screenshot Version 0.8x
http://www.blafusel.de/obd/obd2_wbhdiag.html Ich bin Autor der Software und gebe den Screenshot frei.
Dieses Bildschirmfoto enthält entweder keine sichtbaren Bereiche oder Teile einer kopiergeschützten Software, oder aber der Autor hat das Programm unter einer freien Lizenz (welche unter diesem Hinweis aufgeführt sein sollte) veröffentlicht, und folgt damit den Lizenz-Regeln der Wikimedia Commons. Das Bildschirmfoto kann entsprechend der genannten Lizenz frei genutzt werden. Freie Software-Lizenz: Siehe unten.
Hinweis: Wenn das Bildschirmfoto eine Arbeit zeigt, die nicht direkt das Resultat des Programmcodes ist, so wie Texte oder Grafiken, muss die Lizenz für diese Arbeit separat benannt werden.
(c) Cschirp, CC BY-SA 3.0 de
Innenansicht einer Motorsteuerung aus einen Golf III TDI. Links befindet sich die Steckerleiste, direkt daneben die auf Kühlblech montierten Leistungshalbleiter. Über den Schlauch und den MAP-Sensor wird der Ladedruck des Turboladers gemessen. Das schwarze Bauteil unterhalb des Siemens-Chips ist der Höhenstandssensor bzw. Absolutdrucksensor. Die beiden Chips am unteren rechten Bildrand beinhalten das Motorkennfeld.