Stefans Mazda zeigte seit einiger Zeit durch Blinken der Airbaglampe im Armaturenbrett den Airbagfehler 4-5 an und signalisierte damit eine kaputte Sitzbelegungsmatte im Beifahrersitz. Diese Sitzmatte meldet dem Steuergerät, ob der Sitz belegt ist. Ist dies nicht der Fall, löst der Beifahrerairbag nicht aus. Schließlich existieren mindestens drei Zustände, die von der Sitzmatte an das Steuergerät gemeldet werden können:
Problematisch ist die Unterscheidung der ersten beiden Zustände, da sie sich nicht unterscheiden lassen, ohne das Auto gegen einen Baum zu fahren... Der dritte Zustand wird dabei auch durch Airbag Code 47 oder 48 signalisiert.
Da der Airbag uns sehr wichtig erschien, haben wir uns auf keine Experimente eingelassen, um die Sitzmatte zu reparieren. Eine neue Sitzmatte zu kaufen, erschien uns jedoch auch nicht als Ideallösung, da sie nur zusammen mit der Sitzfläche aus Schaumstoff für 412,07 € (inkl. Mwst.) verkauft werden - ein wirtschaftlicher Totalschaden. Im Internet fanden wir eine Firma, die Sitzmattensimulatoren vertreibt, die dem Auto vorgaukeln, es würde sich ein Beifahrer auf dem Sitz befinden, sodass der Airbag im Zweifelsfall immer gezündet wird. Die Kosten beliefen sich auf knapp 100 €, sodass wir beschlossen, dieses Gerät lieber selber zu bauen.
Durch Analyse der kaputten Sitzmatte, stellten wir fest, dass sie durch logische Impulse unidirektional mit dem Steuergerät kommuniziert. Solche Signale zu erzeugen ist kein Problem, sofern das korrekte Muster bekannt ist. Durch ein bisschen probieren gelang es uns schließlich, ein Signal zu erzeugen, dass das Airbag-Steuergerät akzeptierte. Dies wäre zum augenscheinlichen Beheben des Fehlers bereits ausreichend gewesen, es hätte sich dabei jedoch auch um den falsche Sitzbelegungszustand handeln können (Lebensgefährlich!). Zur Bestätigung verglichen wir unser Bitmuster mit dem Signal einer richtigen Sitzmatte, das so aussieht:
Der Stecker der Sitzmatte hat drei Kontakte. Für rot und braun gelten die üblichen Kabelfarben. Bei eingeschalteter Zündung liegen hier etwa 12 Volt an, um die Sitzmatte (bzw. unseren Sitzmattensimulator) mit Spannung zu versorgen. Über das weiße Kabel senden wir dem Steuergerät das Signal. Um das Signal zu erzeugen, wird es über einen Widerstand auf den 12 V-Pegel der Spannungsversorgung gezogen oder über einen Optokoppler auf Masse gezogen. Statt eines Optokopplers kann selbstverständlich auch ein Transistor verwendet werden. Da wir jedoch eine zusätzliche Barriere zwischen dem Airbag-Steuergerät und unserer Schaltung einbauen wollten und genug Platz vorhanden war, verzichteten wir darauf. Schließlich sieht unser Schaltbild immer noch sehr einfach aus:
Wird die Zündung eingeschaltet, liegt auf der Signalleitung über den Widerstand zunächst ein ungepulstes 12 V-Potential. Das Steuergerät des Airbags wird dieses Signal als fehlerhafte Sitzmatte erkennen und einen Fehler ausgeben. Aktiviert der Mikrocontroller hingegen den Optokoppler, so zieht er die Signalleitung auf Masse und erzeugt den nötigen Impuls, der zur Erkennung der Sitzmatte erforderlich ist. Unser Prototyp ist zwar etwas groß geworden, passt jedoch problemlos in einen Schrumpfschlauch, um ihn dann unter dem Beifahrersitz oder dem Boden darunter zu verstauen. Er wurde bewusst nicht mehr im Sitz verbaut, um Beschädigungen am Zuleitungskabel oder am Simulator selbst zu vermeiden.
Dank Sebastians Unterstützung konnten wir einen zweiten Sitzmattenemulator bauen, in dem der kleine Bruder vom 7805 zum Einsatz kommt. Er ist um einiges kleiner, seine Leistung ist für Mikrocontroller und Optokoppler allerdings immer noch mehr als ausreichend. Abgesehen von einer winzigen Änderung im Schaltbild, die durch die kleinere Lochrasterplatine begründet ist, haben wir auf weitere Modifikationen verzichtet.
Die Wahl des Mikrocontrollers fiel auf einen PIC 12F675. Zur Realisierung wäre jedoch wesentlich weniger notwendig gewesen, allerdings hat dieser Typ einige Vorzüge: Zum einen kann auf einen zusätzlichen Hochziehwiederstand verzichtet werden, da der Chip MCLR selbst hochziehen kann, zum anderem ist die integrierte Schaltung selbst in der Lage, einen relativ stabilen Takt zu generieren. Unsere Lösung arbeitet daher mit 4 MHz, wobei der Prozessor die meiste Zeit mit Busywaiting verbringt. Das ist reinste Verschwendung, macht unsere Realisierung jedoch sehr leicht nachbaubar.
Da es offensichtlich nicht auf hohe Präzision ankommt, ist das Programm nicht in Assembler, sondern in C geschrieben. Der Quellcode lässt sich mit dem SDCC übersetzen. Wir stellen das Programm hier zur freien Verfügung:
Quellcode (HTML-Ansicht)
Gesamtprojekt (ZIP-Datei)
Jeder PIC 12F675 ist anders und weicht ein bisschen vom idealen 4 MHz-Takt ab. Um eine aufwändige Neuprogrammierung des Kalibrierungswertes zu vereinfachen, kann der Chip halbautomatisch auf den korrekten Wert eingestellt werden. Wenn beim Einschalten des PICs Pin 3 (GP4) mit Masse verbunden ist, wechselt der Chip in einen Lernmodus, in dem der interne Schwinger justiert wird. Sobald das korrekte Signal vorliegt, kann die Verbindung zwischen Masse und Pin 3 getrennt werden, um den korrekten Wert in den EEPROM des 12F675 zu speichern.
Das Signalmuster wird dabei nicht verändert, sonderlich lediglich zeitlich verzerrt. Der Sitzbelegungszustand wird nicht verfälscht. Die Vorgehensweise zum Kalibrieren des Wertes ist schnell zusammengefasst:
Unsere Lösung funktioniert! Die Fehlerlampe ist erloschen und die Materialkosten betrugen weniger als 5 €. Unser Mikrocontroller arbeitet seit einem halben Jahr ohne jegliche Störung. Im Vergleich zu einer Sitzmatte (siehe oben) kann sich schließlich auch unser Signal sehen lassen:
Inzwischen haben wir unseren Sitzbelegungsmattensimulator auch in anderen Modellen getestet und gehen davon aus, dass er in der jeweils gesamten Baureihe funktioniert:
Wahrscheinlich funktioniert unserer Sitzmattensimulator auch in folgenden Modellen, was wir jedoch leider bisher nicht bestätigen konnten:
Wir bieten unseren Simulator nicht zum Kauf an! Wer Interesse an einem solchen Simulator hat, kann die nötigen Bauteile selbst im Internet bestellen (z.B. bei Reichelt) und von einem Elektrotechnik-Studenten zusammenbauen lassen. Diese finden sich normalerweise an jeder technisch-orientierten Hochschule ;-)
Teileliste bei Conrad-Elektronik | |||
---|---|---|---|
Bestellnummer | Artikelbezeichnung | Anzahl | Preis (Stand: 09.06.2013) |
165022-62 | PIC 12F675 | 1 | 1,77 € |
187038-62 | Optokoppler | 1 | 0,60 € |
183024-62 | Spannungsregler 78L05 | 1 | 0,43 € |
443906-62 | 100 µF Elko | 1 | 0,05 € |
405272-62 | 1,5 kOhm Widerstand | 1 | 0,09 € |
403210-62 | 470 Ohm Widerstand | 1 | 0,10 € |
162280-62 | 1N4148 Diode | 1 | 0,04 € |
Um das Programm in den Mikrocontroller zu brennen, ist ein spezielles Gerät notwendig.
Diese Reparatur kann ein Sicherheitsrisiko darstellen. Unsere Schaltung suggeriert dem Auto, der Beifahrersitz wäre belegt, sodass der Airbag des Beifahrers im Ernstfall gezündet wird. Selbstverständlich konnten wir diesen Ernstfall nicht testen. Darum weisen wir ausdrücklich darauf hin, dass wir für Nachbauten keine Haftung übernehmen. Alle Daten dieses Artikels wurden nach bestem Wissen ermittelt, dienen jedoch ausschließlich zur Information. Unsachgemäße Veränderungen am Airbagsystem sind lebensgefährlich und führen nach §19 Abs. 2 StVZO zum Erlischen der Betriebserlaubnis! Eine neue Sitzmatte vom Fahrzeughersteller ist in jedem Fall die sicherste Variante.