Durch meinen Lenkradumbau auf Multifunktion habe ich mich auch intensiv mit dem i-Bus zur Radiosteuerung befasst. Der i-Bus nutzt das gleiche Protokoll wie auch die Z3 Diagnoseschnittstellen, und so habe ich mit meinem Diagnosekabel herumexperimentiert und mich damit mit dem Radio unterhalten. Aber auch das Diagnoseinterface wollte ich tiefer ergründen und verstehen. Da mir das nun gelungen scheint, möchte ich das gerne mit euch teilen und mal möglichst vollumfänglich hier ausbreiten. Nicht abgedeckt werden die frühen Z3 auf E36-VFL-Basis (bis Bj. ???), welche nur mit ADS ausgelesen werden können.
Fangen wir mal mit folgender Frage an:
1) K-Bus, K-Line, i-Bus, L-Line, KKL, Lin-Bus, CAN-Bus.... was ist das??
1.1) Der Unterschied zwischen Interface und Protokoll
Um mit den Steuergeräten oder dem Radio "sprechen" zu können, braucht es eine Kommunikationsverbindung. Beim Z3 wird dazu eine eindrähtige Leitung verwendet. Diese Leitung wird über einen Widerstand ("Pullup") auf 12V gelegt. Zur Übermittlung einer Botschaft wird diese Leitung dann nach einem bestimmten Muster und Takt auf Massepotential gezogen. Man kann sich das vereinfacht so vorstellen wie eine gespannte Schnur, und um ein Signal zu übertragen, zupft der Sender in einer bestimmten Sequenz an der Schnur, und der Empfänger kann das entsprechend erkennen, wenn die Schnur zuckt. Quasi eine moderne Form des Morsens
Nun muss ich aber irgendwie von der USB-Schnittstelle des PCs oder Diagnosegeräts auf diese "Schnur" kommen. Das macht das Interface. Wenn ich über USB also sage "Zupf!", dann zieht das Interface, welches mit dem Fahrzeug verbunden ist, die Diagnose-Leitung auf Masse und "zupft damit an der Schnur". Mehr macht es nicht. Es sorgt dafür, dass PC und Auto elektrisch sicher voneinander getrennt sind, die Information aber weitergereicht wird. Da steckt keine große Magie dahinter, und so ein Interface besteht im Wesentlichen aus zwei Chips und ihrer Spannungsversorgung. Einer wandelt das Informations-Signal von 5V (USB/PC Signal) auf 12V um, und der andere beinhaltet alles was dazu nötig ist, von USB auf "zupfen" und zurück zu übersetzen. Daher gibt es da von sehr günstig ("China") bis sehr teuer für 2 Chips in einem Stecker alles....
Wie genau man eine bestimmte Botschaft zu schicken hat, wann wer etwas schicken darf (z.B. wenn eine bestimmte Zeit lang niemand an der Schnur gezupft hat) und was die Botschaft enthalten muss, das definiert das sogenannte Protokoll, quasi der Morse-Code. In unserem Fall steht das in der ISO 9141, wie genau man zupfen muss und wann man zupfen darf ("Leitung frei"), damit der Empfänger versteht was ich will. Diese Information steckt in der Software des Diagnosegeräts. Die ist so programmiert, dass für ein bestimmtes Kommando, z.B. "Lese Fehler aus" eine bestimmte Botschaft ans Steuergerät gesendet wird, also eine genau definierte Folge aus "Zupfern" an der "Schnur". Genauso antwortet das Steuergerät dann auch. Auf die Botschaft "Lese Fehler aus" reagiert es seinerseits mit einer bestimmten Folge aus "Zupfern" an der Leitung, die in der Software dann wieder dekodiert werden als bestimmte Fehler.
1.2) Busleitungen im Z3
Der Z3 verfügt über mehrere dieser Leitungen. Als K-Bus oder K-Line (K = Karosserie) bezeichnet man die Busleitung zwischen den Steuergeräten. Als i-Bus (Instrumenten-Bus) die Busleitung zwischen Multimedia-Geräten (Radio). Es ist aber das gleiche Protokoll und es funktioniert immer das gleiche Interface.
Zur Diagnose hat der Z3 drei Leitungen.
K-Line oder "K-Bus II" (Motor), bei BMW als TXD II bezeichnet:
Über diese Leitung erreicht man das Motorsteuergerät und (beim Automatikgetriebe) das Getriebesteuergerät
K-Line oder "K-Bus I", bei BMW als TXD bezeichnet:
Hier hängen alle anderen Steuergeräte dran, wie Airbag, ABS/ASC/DSC, Kombiinstrument, Wegfahrsperre, Zentrale Karosserieelektronik (ZKE), usw...
"L-Line", bei BMW als RXD bezeichnet:
"Reizleitung", für die Diagnose aber nicht mehr erforderlich.
Daher werden die benötigten Interfaces oft auch als "KKL"-Interfaces bezeichnet. Sie haben eine L-Line und eine K-Line, beide K-Busse des Fahrzeugs werden einfach verbunden.
Nicht zu verwechseln ist das mit "CAN-Bus". Der CAN-Bus ist einer der Nachfolger der K-Line, nutzt für die Übertragung aber zwei Leitungen und ein ganz anderes Protokoll. Die Botschaften sind also anders zu senden, und sie werden über zwei Leitungen gleichzeitig, aber gegenphasig übertragen. Er findet ab etwa 2008 Verwendung in den BMWs, für deren Diagnose wird entsprechend ein CAN-Interface benötigt, also ein anderes "Kabel".
2) OBD I, OBD II, Runder Stecker im Motorraum.... was ist das?
Als "OBD I" bezeichnet man gerne die Diagnoseschnittstelle im Motorraum. Das ist die runde Buchse in der nähe des Federbeinlagers mit einem großen Schraubdeckel.
Hier finden wir die beiden K-Busse, die L-Line sowie Zündungsplus, Batterie+, Masse, das Tachosignal und einen Pin für die Rückstellung des Serviceintervalls. Die Pinbelegung ist wie folgt:
Wie weiter oben schon erwähnt ist TXD II (Pin 17) die Diagnoseleitung zu Motor- und Getriebesteuergerät. Mit dieser Leitung müssen wir unsere K-Line des Interfaces also verbinden, wenn wir mit diesen beiden sprechen wollen. Auf TXD (Pin 20) bekommen wir Verbindung zu allen anderen Steuergeräten. RXD ist die L-Line auf Pin 15.
Gängige Interfacekabel haben als Stecker den sogenannten OBD II-Stecker. Für die runde Buchse am BMW braucht man also einen Adapter:
Dieser Adapter verbindet Pin 20 und 17 miteinander, kombiniert also beide K-Lines (TXD und TXD II), und bringt diese auf Pin 7 der OBD II-Seite. Hier liegt auch die K-Line des Interfaces. Außerdem wird die L-Line, Batterie+ und Masse entsprechend weitergegeben.
Somit kann man dann per Interface und PC mit entsprechender Software beide K-Lines ansprechen und alle Steuergeräte auslesen.
Einige Z3 (in der Regel ab Facelift/Bj. '99) haben auch eine OBD II Buchse im Fahrerfußraum. Hier lässt sich allerdings nur das Motor- (und Getriebe-)Steuergerät auslesen. Aber warum?
Ganz einfach: In der Belegung der Rundbuchse im Motorraum sieht man schon, dass TXD II (Diagnose Motorsteuergerät) zweimal vorhanden ist, nämlich auf Pin 17 und Pin 2. Pin 17 ist die eigentliche Diagnoseleitung, und Pin 2 führt weiter zur OBD II-Dose im Innenraum. Im Deckel der Runddose ist eine kleine Platine mit Stiften, welche (unter anderem) Pin 17 und Pin 2 verbindet wenn der Deckel aufgeschraubt ist. Die TXD II - Leitung wird dann also einfach zur OBD II-Dose verlängert.
Die TXD-Leitung aber nicht. Sie ist nicht zur OBD II-Dose weitergeführt. Daher können von hier aus auch die anderen Steuergeräte nicht ausgelesen werden, sondern nur von der Rundbuchse im Motorraum aus (Pin 20).
Es gibt aber einen Trick, falls man keinen Adapter Rundstecker auf OBD II-Buchse zur Hand hat und/oder z.B. während der Fahrt andere Steuergeräte von der Buchse im Innenraum aus auslesen möchte:
Interface an der OBD II Buchse im Innenraum anstecken, und vorne in der Rundbuchse Deckel auf lassen, und statt bei geschlossenem Deckel Pin 17 nun mit Hilfe eines (dicken) Drahts den Pin 20 (TXD) mit Pin 2 verbinden. Auf diese Weise wird statt TXD II nun TXD zur Dose im Innenraum weitergeleitet und man kann dort auslesen. Nun natürlich das Motorsteuergerät nicht mehr, es sei denn man brückt Pin 17 auch noch mit auf Pin 2.
Der Vollständigkeit halber hier noch die Pinbelegung der OBD II Buchse (K-Line = TXD II):
Es gibt aus dem E36-Bereich verschiedene Anleitungen (z.B. auf Youtube), wie man auch TXD (für die anderen Steuergeräte) auf die OBD II Buchse legen kann (auf Pin . Die gängigen Interfaces brücken Pin 7 und 8, sodass dann wieder TXD und TXD II beide angesprochen werden können. Problem dabei ist die Terminierung (also ziehen der K-Leitungen auf 12V wenn kein Diagnosegerät/Interface angeschlossen ist). Diese muss dann im Deckel der Buchse im Motorraum entfernt werden und stattdessen mit Hilfe eines Deckels vom E46 für die OBD II Buchse, welcher den Pullup-Widerstand enthält, erfolgen. Auslesen geht dann aber nur noch an der OBD II Buchse, es sei denn man macht dort auch den Deckel ab zum Auslesen im Motorraum (Terminierung entfernen). Hier tüftel ich noch an einer Lösung, damit das Auslesen immer an beiden Buchsen funktioniert (TXD auch per Brücke im Rundbuchsendeckel an die OBD II - Buchse weiterleiten).
Zum Schluss noch ein Disclaimer:
Alle Angaben sind natürlich ohne Gewähr und nach bestem Wissen. Ergänzungen in Richtung ADS Interface und den US-Modellen mit zusätzlicher OBD-Abgasschnittstelle sind herzlich Willkommen!
Gruß Steffen