ForumFahrzeugtechnik
  1. Startseite
  2. Forum
  3. Wissen
  4. Fahrzeugtechnik
  5. Was genau passiert beim Kodieren im Steuergerät?

Was genau passiert beim Kodieren im Steuergerät?

Themenstarteram 16. Mai 2018 um 17:01

Nabend. ;)

Eine Frage an die Profis: Was genau passiert beim Kodieren/Codieren eines Steuergerätes?

Wird die Firmware modifiziert oder werden nur Bits gesetzt?

In letztem Fall wären ja dann nur Bits möglich, die der Hersteller vorgesehen hat. Aber man könnte die Bits anders als vorgesehen kombinieren.

LG

Beste Antwort im Thema

Ich kann nur für die VAG-Welt sprechen.

Es gibt dort die Codierung, und die "Anpassung".

Um auf die Eingangsfrage einzugehen, die Codierung ist abstrakt gesprochen das "Einstellungsmenü" des Steuergeräts. Setzt man das Bit für "Tagfahrlicht beim Blinken abdimmen", weiß die Routine im Steuergerät (Firmware!) die beim Betätigen des Blinkers ausgelöst wird anhand des gesetzten Bits, dass abgedimmt werden muss.

Eine Codierung hat bspw. eine Länge von 30 Byte.

Das Defizit einer Codierung auf einer fixen länge von 30 Byte ist, dass nur schlecht mit Wertebereichen umgegangen werden kann.

Ein Bit für irgendwas Ja/Nein, An/Aus, Verbaut/NichtVerbaut ist super.

Wenn man über die Codierung aber bspw. beschreiben möchte welche Scheinwerfer verbaut sind, kommt man recht schnell an die Grenzen und muss für sowas gar ein ganzes Byte verschwenden.

Ein anderes Beispiel ist die Ablage von numerischen Werten. Anzahl Blinkzyklen beim Komfortblinker.

Für die Abbildung solcher Dinge gibt es dann die Anpassungskanäle, die auf irgendeinen Speicherbereich zeigen, eine bestimmte Größe haben um größere Wertebereiche ablegen zu können.

Letztlich ist das auch ein "Einstellungsmenü", auf das die Routinen zurückgreifen.

Was haargenau passiert beim Umsetzen eines Bits der Codierung ist stark abhängig von der Implementierung des Steuergeräts. Denkbar wäre, dass alle Register neu eingelesen werden und somit ein kleiner Soft-Reset stattfindet. Abstrakt: ggf. werden Routinen ausgeführt, damit die Änderung evtl. direkt Wirkung zeigt.

10 weitere Antworten
Ähnliche Themen
10 Antworten

Bits gesetzt.

Themenstarteram 16. Mai 2018 um 17:14

Zitat:

@the_WarLord schrieb am 16. Mai 2018 um 19:07:25 Uhr:

Bits gesetzt.

Ok, dachte ich mir danke.

Ich frage mich dann allerdings wie es einige Tools schaffen ein Steuergerät zu "bricken"?

Selbst wenn alle Bits genullt oder auf "1" gesetzt werden, sollte das Steuergerät dann noch ansprechbar sein?

Das kommt auf den Speicherbereich an der gelöscht wird. Meist gibt es einen Bootloader. Wenn der beschädigt wird geht mit normalen tools nicht mehr. Das Steuergerät bootet nicht mehr und kommuniziert nicht mehr. Dann kann man per Testpoint teilweise noch was machen in den einen neuen Bootloader schreibt.

Dann ist auch immer die Frage wie der Hersteller das Steuergerät ausgelegt hat.

Hallo!

Verabschiede dich erstmal von dem Gedanken, daß es nur einzelne Bits als Parameter gibt. Klar, "Auto hat Berganfahrhilfe" wäre genau ein Bit, aber wenn es um Kennfelder für den Motor geht, sind das gar nicht mal so kleine Tabellen.

Wenn man jetzt eine Tabelle ins Steuergerät schreibt, die zu groß ist, kann es passieren, daß man dadurch Programmcode überschreibt, und schon funktioniert er nicht mehr.

Eine andere Möglichkeit ist, daß es einen Parameter gibt, der bestimmte Zahlenwerte annehmen kann. Schreibt man einen nicht vorgesehenen Zahlenwert da rein, kann es passieren, daß der Programmcode beim Starten sofort abstürzt, und in ner Endlosschleife neu startet.

Klar, der Hersteller könnte das Modul wohl öffnen, wenn es nicht vergossen ist, und mit nem Programmiergerät für den entsprechenden Chip einmal die komplette Firmware inklusive einem neuen, korrekten Parametersatz drauf brennen, und so den fabrikneuen Zustand wieder herstellen.

Aber das Gerät, das da an die OBDII-Schnittstelle kommt, kann das nicht. Es kommuniziert mit dem laufenden Programmcode, und teilt diesem auch mit, daß neue Parameterwerte gesetzt werden sollen. Läuft der Programmcode nicht mehr, kann das ODBII-Gerät auch nicht mehr mit ihm kommunizieren, und die Sache rückgängig machen.

Man könnte zwar Sicherheitsmaßnahmen einbauen, z.B. könnte der Programmcode prüfen, ob die zu schreibende Tabellen nicht zu lang ist, und sich dann verweigern. Aber wozu? Der Hersteller weiß ja, wie lang die Tabelle sein darf, und wenn er später mal neue Tabellen als Update raus gibt, wird er die schon geprüft haben.

Daß irgendwelche Drittanbieter auf die Idee kommen, selber Tabellen da rein schreiben zu wollen, die u.U. zu groß sind, kann ihm ja egal sein.

Und Drittanbieter haben das Problem, daß sie vielleicht gar nicht so 100% genau wissen, was bei jeder einzelnen Revision des Steuergeräts anders ist. Der Parameter, der in Version 2.3.4 funktioniert, kann in 2.3.3 zum Crash führen...

Vergleich das einfach mal mit einem Windows PC :D

Willst du dort eine Musikdatei abspielen, brauchst du eine Software (oft Windows Mediaplayer)zum abspielen und die Musikdatei.

Die Musikdatei kannst du löschen und andere hin kopieren.

Löschst du den Mediaplayer, geht nichts mehr.

Zitat:

@Passarati-Turbo schrieb am 16. Mai 2018 um 19:01:11 Uhr:

Nabend. ;)

Eine Frage an die Profis: Was genau passiert beim Kodieren/Codieren eines Steuergerätes?

Wird die Firmware modifiziert oder werden nur Bits gesetzt?

Erklär mir mal den Unterschied zwischen Bits setzen und Firmware modifizieren.

Die gesamte Firmware besteht nur aus einzelnen Bits.

 

Zitat:

In letztem Fall wären ja dann nur Bits möglich, die der Hersteller vorgesehen hat. Aber man könnte die Bits anders als vorgesehen kombinieren.

Wie kommst Du auf diese Idee?

Themenstarteram 17. Mai 2018 um 7:56

Zitat:

@torty666 schrieb am 17. Mai 2018 um 08:44:46 Uhr:

Erklär mir mal den Unterschied zwischen Bits setzen und Firmware modifizieren.

Die gesamte Firmware besteht nur aus einzelnen Bits.

Du kannst eine Firmware neu flashen oder mit der Firmware über den CAN-Bus kommunizieren um dort Bits zu setzen. Das geht dann natürlich nur im vom Programmierer vorgesehenen Rahmen. ;)

Zitat:

@torty666 schrieb am 17. Mai 2018 um 08:44:46 Uhr:

Zitat:

In letztem Fall wären ja dann nur Bits möglich, die der Hersteller vorgesehen hat. Aber man könnte die Bits anders als vorgesehen kombinieren.

Wie kommst Du auf diese Idee?

Siehe oben.

Zitat:

@Passarati-Turbo schrieb am 17. Mai 2018 um 09:56:21 Uhr:

Zitat:

@torty666 schrieb am 17. Mai 2018 um 08:44:46 Uhr:

Erklär mir mal den Unterschied zwischen Bits setzen und Firmware modifizieren.

Die gesamte Firmware besteht nur aus einzelnen Bits.

Du kannst eine Firmware neu flashen oder mit der Firmware über den CAN-Bus kommunizieren um dort Bits zu setzen. Das geht dann natürlich nur im vom Programmierer vorgesehenen Rahmen. ;)

Das sind 2 vollkommen verschiedene Vorgänge.

Was intern passiert, wenn man über eine Schnittstelle mit der Software kommuniziert weiß nur der Entwickler. Ob das dann als Bit, kompletet Variable oder sonstwie abgelegt wird, muss man von aussen garnicht wissen.

Im Prinzip werden auch Bits verändert wenn man den Blinker betätigt.

Bei der Kommunikation über eine Schnittstelle werden aber eher nur Einstellungen geändert, und nicht die Software selber. Mal abgesehen von Updates.

Moin,

Im Wesentlichen wird ein Flash-Speicher, meist ein EEPROM, über den CAN geschrieben. Ein EEPROM ist ähnlich einem USB-Stick. Der Speicher enthält die Bits, die kodiert werden können. Das Programm, was auf dem Steuergerät läuft, bleibt unverändert.

Die Firmware steht in einem anderen Bereich. Sie kann auch überschrieben werden. Bei Software-Updates wird die Firmware überschrieben und so die Funktion des Steuergeräts verändert. Die Firmware steht meist auch in einem EEPROM.

Ein Steuergerät ist letztendlich nur ein Mikroprozessor.

Ich kann nur für die VAG-Welt sprechen.

Es gibt dort die Codierung, und die "Anpassung".

Um auf die Eingangsfrage einzugehen, die Codierung ist abstrakt gesprochen das "Einstellungsmenü" des Steuergeräts. Setzt man das Bit für "Tagfahrlicht beim Blinken abdimmen", weiß die Routine im Steuergerät (Firmware!) die beim Betätigen des Blinkers ausgelöst wird anhand des gesetzten Bits, dass abgedimmt werden muss.

Eine Codierung hat bspw. eine Länge von 30 Byte.

Das Defizit einer Codierung auf einer fixen länge von 30 Byte ist, dass nur schlecht mit Wertebereichen umgegangen werden kann.

Ein Bit für irgendwas Ja/Nein, An/Aus, Verbaut/NichtVerbaut ist super.

Wenn man über die Codierung aber bspw. beschreiben möchte welche Scheinwerfer verbaut sind, kommt man recht schnell an die Grenzen und muss für sowas gar ein ganzes Byte verschwenden.

Ein anderes Beispiel ist die Ablage von numerischen Werten. Anzahl Blinkzyklen beim Komfortblinker.

Für die Abbildung solcher Dinge gibt es dann die Anpassungskanäle, die auf irgendeinen Speicherbereich zeigen, eine bestimmte Größe haben um größere Wertebereiche ablegen zu können.

Letztlich ist das auch ein "Einstellungsmenü", auf das die Routinen zurückgreifen.

Was haargenau passiert beim Umsetzen eines Bits der Codierung ist stark abhängig von der Implementierung des Steuergeräts. Denkbar wäre, dass alle Register neu eingelesen werden und somit ein kleiner Soft-Reset stattfindet. Abstrakt: ggf. werden Routinen ausgeführt, damit die Änderung evtl. direkt Wirkung zeigt.

Deine Antwort
Ähnliche Themen
  1. Startseite
  2. Forum
  3. Wissen
  4. Fahrzeugtechnik
  5. Was genau passiert beim Kodieren im Steuergerät?