Posts Tagged‘Motorsteuerung’

Loading Video...

Re-Engineering der Prüfstandserkennung zur Manipulation der NOx-Emissionen

by Paul Balzer on 28. Dezember 2015

1 Comment

Play Video Hide Video

Im Code liegt die Wahrheit! Viele Pressemitteilungen und journalistische Glanzleistungen sind schon verbreitet worden, doch Fakten gab es bisher wenige. Es gibt wenige Leute, die ausreichend KnowHow haben, sich des Themas #Dieselgate anzunehmen und nicht in finanzieller Abhängigkeit eines Beteiligten stehen oder einen NDA unterschrieben haben.

Einleitender Teil bis 40:00min, ab Minute 40 der Re-Engineering Teil

Felix Domke und Daniel Lange haben auf dem diesjährigen 32. Chaos Communication Congress (kurz: #32c3) einen Vortrag über die Motorsteuerungs-Software auf dem BOSCH Motorsteuergerät gehalten, welches die Prüfstandserkennung und ‘Anpassung’ von AdBlue Einspritzmengen steuert, um

  • auf dem Prüfstand die gesetzlichen Grenzwerte einzuhalten
  • sonst AdBlue zu sparen, damit der Kunde es nicht auffüllen muss

Wer etwas über Dieselmotoren und Abgasnachbehandlung lesen möchte: “Verbrennung von Kraftstoff und Luft” sowie “Definiere einen Grenzwert und man wird ihn erreichen” helfen gut, das Thema zu verstehen.


Auf dem Steuergerät wird ein kompliziertes AdBlue-Dosierungs-Modell (welches vermutlich die korrekte Menge AdBlue einspritzt) und ein Vereinfachtes (welches zu wenig einspritzt) parallel gerechnet. Eine Entscheidungslogik, welche relativ unsinnig parametriert ist, wählt eines der beiden Modelle aus.

Screenshot aus Vortrag von Felix Domke, CC-BY-4.0 Lizenz

Screenshot aus Vortrag von Felix Domke, CC-BY-4.0 Lizenz

Wie man an den Parametern sehen kann, ist die Bedingung immer erfüllt. Anschließend wird allerdings noch eine Unlock-Condition abgefragt, welche sich mit folgender Entscheidungslogik aktiviert.

Screenshot aus Vortrag von Felix Domke, CC-BY-4.0 Lizenz

Screenshot aus Vortrag von Felix Domke, CC-BY-4.0 Lizenz

Der NEFZ als Prüfzyklus ist ziemlich genau genormt, beispielsweise muss das Fahrzeug vorab auf ca. 20°C temperiert werden (was >15°C ist) und der Test muss bei 1bar Umgebungsdruck durchgeführt werden (was >920hPa ist) und es muss ein genau definiertes Geschwindigkeitsprofil abgefahren werden.

Im Steuergerät sind min/max Grenzen für ein Strecke als Funktion der Zeit Profil hinterlegt. Integriert man die Geschwindigkeitsprofile des NEFZ Prüfzyklus auf, so erhält man eine Fahrtstrecke über Zeit, welche ziemlich exakt in der Grenze liegt, welche auf dem Steuergerät hinterlegt ist.

Screenshot aus Vortrag Felix Domke, CC-BY-4.0

Screenshot aus Vortrag Felix Domke, CC-BY-4.0

Verlässt man diese Grenzen, z.B. in dem man statt wieder abzubremsen weiter fährt, schaltet das Steuergerät vom exakten Modus in den alternativen Modus und spritzt damit kaum noch AdBlue ein, wie Felix Domke mit einer Messung zeigt:

Wird das Fahrzeug so bewegt, wie es auch im Prüfzyklus (NEFZ) gefahren wird, dosiert das Motorsteuergerät eine hohe Menge AdBlue. Sobald der NEFZ Modus verlassen wird (hier durch 'weiter mit konstanter Geschwindigkeit fahren, nicht abbremsen, wie vorgesehen' realisiert), wechselt das Steuergerät in einen Alternativmodus und dosiert kaum/kein AdBlue, sodass kaum/keine NOx Konvertierung stattfindet

Wird das Fahrzeug so bewegt, wie es auch im Prüfzyklus (NEFZ) gefahren wird, dosiert das Motorsteuergerät eine hohe Menge AdBlue. Sobald der NEFZ Modus verlassen wird (hier durch ‘weiter mit konstanter Geschwindigkeit fahren, nicht abbremsen, wie vorgesehen’ realisiert), wechselt das Steuergerät in einen Alternativmodus und dosiert kaum/kein AdBlue, sodass kaum/keine NOx Konvertierung stattfindet. Abbildung von Felix Domke, Annotationen von mir.

Der Vortrag ist seit langer Zeit eines der wenigen faktenbasierten und korrekten Darstellungen des Sachverhalts und wirft vor allem eine Frage auf: Sie reden über einen EA189 – EU6 Diesel. Beim VW Abgasskandal ging es bisher vor allem um EU5 Diesel, welche gar kein SCR System mit AdBlue-Einspritzung haben.

Fazit

Im ersten Teil des Vortrags wird von Daniel Lange darauf eingegangen, mit welcher Frechheit der Konzern versucht, es als ‘Kleinigkeit’, als ‘ein Entwickler hat da was rein programmiert, wir wussten von nichts’ abzutun. Er beleuchtet relativ klar, dass es unmöglich ist, eine Funktion die nicht gewollt ist, auf so ein Gerät zu programmieren. Schon allein, weil der enorme Zeitdruck bei der Software-Entwicklung keinen einzigen Entwickler dazu motiviert auch nur eine einzige Zeile Code zu erstellen, die nicht im Lastenheft gefordert wird. Welche Motivation hätte er/sie?!

Diese klar definierte Funktionsanforderung ist nicht ‘mal schnell’ umgesetzt und getestet und funktioniert nicht zufällig Fehlerfrei seit vielen Jahren in vielen Modellen in vielen Ländern (siehe die anderen min/max Kurven in der Abbildung oben).

[Update vom 33c3]

Felix hat noch mal nachgelegt und auf dem 33c3 ebenfalls einen Vortrag “Software Defined Emissions” gehalten. Ebenfalls sehenswert!