DE102006016891A1 - Erweiterung der Funktionalität einer Serien-Software in einem Steuergerät - Google Patents

Erweiterung der Funktionalität einer Serien-Software in einem Steuergerät Download PDF

Info

Publication number
DE102006016891A1
DE102006016891A1 DE102006016891A DE102006016891A DE102006016891A1 DE 102006016891 A1 DE102006016891 A1 DE 102006016891A1 DE 102006016891 A DE102006016891 A DE 102006016891A DE 102006016891 A DE102006016891 A DE 102006016891A DE 102006016891 A1 DE102006016891 A1 DE 102006016891A1
Authority
DE
Germany
Prior art keywords
software
upload
usw
control unit
serial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102006016891A
Other languages
English (en)
Inventor
Klaus Schneider
Daniel Hensel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102006016891A priority Critical patent/DE102006016891A1/de
Priority to JP2009504665A priority patent/JP2009533736A/ja
Priority to EP07726929A priority patent/EP2008179B1/de
Priority to PCT/EP2007/052439 priority patent/WO2007118743A1/de
Priority to US12/296,684 priority patent/US20090326759A1/en
Publication of DE102006016891A1 publication Critical patent/DE102006016891A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Erweiterung der Funktionalität einer Serien-Software eines Steuergerätes (100), insbesondere für ein Kraftfahrzeug, mit den folgenden Schritten:
(S1) Bereitstellen eines Steuergerätes (100) mit einer Schnittstelle (140), an die eine externe Hardwarevorrichtung (200) angeschlossen werden kann, einem nicht-flüchtigen Seriensoftware-Speicherbereich (110), in welchem die Seriensoftware gespeichert ist, und einem flüchtigen Upload-Speicherbereich (120B),
(S2) Anschließen einer externen Hardwarevorrichtung (200), in welchem eine Upload-Software (USW) gespeichert ist, an die Schnittstelle (140),
(S3) Laden der Upload-Software (USW) von der externen Hardwarevorrichtung (200) in den flüchtigen Upload-Speicherbereich (120B) des Steuergerätes (100) und
(S8) Ausführen der Upload-Software (USW) im Upload-Speicherbereich (120B), wobei das Ausführen der Upload-Software (USW) die Funktionalität der Serien-Software um eine Diagnose- und/oder Testfunktion erweitert.

Description

  • STAND DER TECHNIK
  • Die vorliegende Erfindung betrifft ein Verfahren zur Erweiterung der Funktionalität einer Serien-Software in einem Steuergerät, insbesondere in einem Kraftfahrzeug, sowie ein dem entsprechendes Steuergerät.
  • Steuergeräte für ein Kraftfahrzeug steuern die Funktionen des Kraftfahrzeugs, wie zum Beispiel Kraftstoffeinspritzung, Zündzeitpunkt, Wegfahrsperre, usw. Das Steuergerät verfügt dabei über einen Mikrocontroller, welcher eine vorbestimmte Steuergerät-Software ausführt, sowie einen Speicher, in dem diese Steuergerät-Software abgespeichert ist. Das Steuergerät steuert Funktionseinheiten (z.B. das Dosiersystem für die Kraftstoffeinspritzung des Motors o.ä.), die beispielsweise über einen Datenbus mit dem Steuergerät verbunden sind.
  • Die Steuergerät-Software verfügt in der Regel über eine Diagnosefunktionalität, mit Hilfe derer im Fahrzeugbetrieb auftretende Fehler diagnostiziert werden können. Zur Entwicklung der Diagnosefunktionalität werden während der Entwicklungsphase mögliche Fehler, die in der Serien-Ausfertigung auftreten können, zusammengetragen. Beispiele für solche Fehler sind Fehler, die erfahrungsgemäß häufig auftreten sowie Fehler, die aus einer Systemanalyse während der Entwicklung abgeleitet werden. Insbesondere können Fehler auch durch das Zusammenspiel der zahlreichen verschiedenen Fahrzeugkomponenten auftreten. Für alle diese Fehler wird in der Steuergerät-Software eine entsprechende Diagnosefunktion erstellt.
  • Nach Fertigstellen der Steuergerät-Software wird diese in einen nicht-flüchtigen Speicher (z.B. einen Flash-Speicher) im Steuergerät des Kraftfahrzeugs eingespielt. Eine solche fertig gestellte Steuergerät-Software wird im Folgenden auch als „Serien-Software" bezeichnet.
  • Es hat sich jedoch in der Praxis erwiesen, dass es nahezu unmöglich ist, schon während der Entwicklung alle möglichen Fehler zu berücksichtigen bzw. zu antizipieren und eine entsprechende Diagnose funktion zu erstellen. Falls nun im Fahrbetrieb ein Fehler auftritt, für den während der Entwicklung keine Diagnosefunktion erstellt wurde, dann ist es auch nicht möglich, die Ursache dieses Fehlers mit Hilfe der Diagnosefunktionalität der Serien-Software zu analysieren. Dies kann zu einer langwierigen und kostspieligen Fehlersuche in einer Service-Werkstatt oder dergl. und häufig auch zum Austausch von nicht defekten Komponenten führen.
  • Eine gängige Möglichkeit, die Diagnosefunktionalität von bestehender Serien-Software zu erweitern, besteht darin, auf das Steuergerät eine neue, erweiterte Steuer-Software aufzuspielen. Dies hat jedoch den Nachteil, dass eine solche Neuprogrammierung sehr aufwändig ist und ferner eine Neuprogrammierung im Service häufig nicht vom Steuergerät selbst unterstützt wird.
  • Die DE 102 60 103 A1 schlägt vor, im Steuergerät zusätzlich zu einem regulären ersten nichtflüchtigen Speicherbereich einen zweiten nicht-flüchtigen Speicherbereich vorzusehen in den neue Softwareteile (so genannte Patches) eingeschrieben werden. Mittels einer Verzweigung vom ersten Speicherbereich werden statt der alten Softwareteile im ersten Speicherbereich die neuen Softwareteile im zweiten Speicherbereich ausgeführt. Nach Ausführung der neuen Softwareteile zweigt die Prozedur von dem zweiten Speicherbereich wieder zurück in den ersten Speicherbereich.
  • Auch hierbei ergibt sich das Problem, dass das Einspielen der Patches vergleichsweise aufwändig ist oder sogar nicht unterstützt sein kann. Ferner führt eine Berücksichtigung aller, eventuell erst nach Auslieferung entwickelten, Diagnosefunktionen zu einem Aufblähen des Programm-Codes, für den dann entsprechend umfangreiche Ressourcen bereitgestellt werden müssen.
  • VORTEILE DER ERFINDUNG
  • Demgemäß vorgesehen ist ein Verfahren zur Erweiterung der Funktionalität einer Serien-Software eines Steuergerätes, insbesondere für ein Kraftfahrzeug, mit den folgenden Schritten:
    • – Bereitstellen eines Steuergeräts mit einer Schnittstelle, an die eine externe Hardwarevorrichtung angeschlossen werden kann, einem nicht-flüchtigen Seriensoftware-Speicherbereich, in welchem die Seriensoftware gespeichert ist, und einem flüchtigen Upload-Speicherbereich,
    • – Anschließen einer externen Hardwarevorrichtung, in welchem eine Upload-Software gespeichert ist, an die Schnittstelle,
    • – Laden der Upload-Software von der externen Hardwarevorrichtung in den flüchtigen Upload-Speicherbereich des Steuergerätes, und
    • – Ausführen der Upload-Software im Upload-Speicherbereich, wobei das Ausführen der Upload-Software die Funktionalität der Serien-Software um eine Diagnose- und/oder Testfunktion erweitert.
  • Ein erfindungsgemäßes Steuergerät umfasst:
    eine Schnittstelle, an welche eine externe Hardwarevorrichtung angeschlossen werden kann, einen nicht-flüchtigen Seriensoftware-Speicherbereich, in welchem eine Seriensoftware gespeichert ist,
    einen flüchtigen Upload-Speicherbereich, welcher mit der Schnittstelle verbunden ist und in welche über die Schnittstelle von der externen Hardwarevorrichtung eine Upload-Software geladen wird, die die Funktionalität der Serien-Software um eine Diagnose- und/oder Testfunktion erweitert, und
    Mittel, die die Upload-Software von der externen Hardwarevorrichtung in den flüchtigen Upload-Speicherbereich des Steuergerätes laden.
  • Die externe Hardwarevorrichtung kann insbesondere als Diagnosegerät ausgebildet sein. Die Mittel zum Laden der Upload-Software können insbesondere durch einen unten beschriebenen Upload-Handler realisiert werden, welcher das Laden der Upload-Software in den für sie vorgesehenen Speicherbereich koordiniert.
  • Der der Erfindung zugrunde liegende Gedanke ist es, eine bedarfsorientierte Erweiterung der Serien-Software und insbesondere der Diagnose- und/oder Testfunktionalität dadurch zu erreichen, dass eine Erweiterungssoftware (Upload-Software) in den RAM-Speicher des Steuergerätes geladen wird. Daraus ergibt sich der wesentliche Vorteil, dass die Erweiterung des Steuergeräts um die Diagnose- bzw. Testfunktionalität in einfacher Weise, also insbesondere ohne aufwändigen Austausch der Serien-Software erreicht werden kann.
  • Ein weiterer Vorteil ist der, dass Funktionen, die nur selten gebraucht werden, nur bei Bedarf geladen werden zu brauchen. Beispielsweise ist es möglich, Diagnosefunktionen, die nicht während des Fahrbetriebes sondern nur in der Diagnose oder Wartung aufgerufen werden, nicht in der Serien-Software vorzusehen, sondern lediglich in der bedarfsweise zu ladenden Upload-Software. Somit ergibt sich eine erhebliche Einsparung von Ressourcen im Vergleich zu dem Fall, dass sämtliche Diagnose- und Testfunktionen in der Serien-Software vorgesehen sind.
  • Ein weiterer Vorteil des erfindungsgemäßen Verfahrens ist der, dass es ohne eine Modifikation des Steuergerätes ausgeführt werden kann.
  • Es ist vorteilhaft, wenn die Upload-Software während des Ausführens der Upload-Software lediglich auf vorbestimmte Parameter der Serien-Software zugreift. Es ist besonders vorteilhaft, wenn das Verhalten der Serien-Software, insbesondere das Laufzeitverhalten der Serien-Software, durch das Aus führen der Upload-Software nicht beeinflusst wird. Dies ist beispielsweise nicht möglich, wenn die erweiterte Funktionalität offboard realisiert wird, also die Erweiterungssoftware beispielsweise auf einem Diagnosegerät läuft und Daten über einen entsprechenden Datenlink zwischen dem Steuergerät und dem Diagnosegerät ausgetauscht werden. In diesem Falle verfälschen die für die Datenübertragung notwendigen Zeiten das Laufzeitverhalten. Im Gegensatz dazu wird mit dem erfindungsgemäßen Verfahren ein exzellentes Echtzeitverhalten erreicht.
  • In einer Weiterbildung des Verfahrens wird die Upload-Software nur ausgeführt, solange die externe Hardwarevorrichtung an das Steuergerät angeschlossen ist. Somit wird sichergestellt, dass die Upload-Software nicht fehlerhaft aktiviert werden kann.
  • In einer vorteilhaften Weiterbildung des Verfahrens ist ein weiterer Schritt vorgesehen, in welchem die Upload-Software von einer Authentifizierungseinrichtung authentifiziert wird. Somit wird sichergestellt, dass die Funktionalität zum Laden der Upload-Software nicht missbräuchlich (z.B. zum Tunen des Fahrzeugs) verwendet wird.
  • Es ist vorteilhaft, dass die Upload-Software beim Laden von der externen Hardwarevorrichtung in den flüchtigen Upload-Speicherbereich des Steuergerätes eine Dummy-Upload-Software ersetzt, deren Laufzeitverhalten gleich dem Laufzeitverhalten der Upload-Software ist. Somit wird sichergestellt, dass das Laufzeitverhalten der Steuergerätsoftware unabhängig davon ist, ob die Upload-Software installiert ist oder nicht.
  • In einer vorteilhaften Weiterbildung des Verfahrens ist ein weiterer Schritt vorgesehen, in welchem nach dem Ausführen der Upload-Software die Upload-Software gelöscht wird und/oder die Upload-Software eine Dummy-Upload-Software ersetzt, deren Laufzeitverhalten gleich dem Laufzeitverhalten der Upload-Software ist. Dies ist eine weitere Maßnahme, um sicherzustellen, dass die Upload-Software nicht fehlerhaft aktiviert werden kann und dass das Laufzeitverhalten der Steuergerätsoftware unabhängig davon ist, ob die Upload-Software installiert ist oder nicht.
  • In einer vorteilhaften Weiterbildung des Steuergerätes ist weiterhin eine Authentifizierungseinrichtung vorgesehen, die die Upload-Software beim Laden von der externen Hardwarevorrichtung in den Upload-Speicherbereich authentifiziert. Somit wird sichergestellt, dass die Funktionalität zum Laden der Upload-Software nicht missbräuchlich (z.B. zum Tunen des Fahrzeugs) verwendet wird.
  • In einer vorteilhaften Weiterbildung des Steuergerätes ist im Upload-Speicherbereich eine Dummy-Upload-Software gespeichert, deren Laufzeitverhalten dem Laufzeitverhalten der Upload-Software entspricht, und die beim Laden der Upload-Software von der externen Hardwarevorrichtung in den flüchtigen Upload-Speicherbereich des Steuergerätes ersetzt wird. Dies stellt sicher, dass das Laufzeitverhalten der Steuergerätsoftware unabhängig davon ist, ob die Upload-Software installiert ist oder nicht.
  • ZEICHNUNGEN
  • Die Erfindung wird nachfolgend anhand der in den schematischen Figuren der Zeichnungen angegebenen Ausführungsbeispiele näher erläutert. Es zeigt dabei:
  • 1 ein Blockdiagramm eines Steuergerätes nach einer erfindungsgemäßen Ausführungsform der vorliegenden Erfindung, an welchen ein Diagnosegerät angeschlossen ist,
  • 2 ein schematisches Diagramm, welches den Daten- und Informationsfluss ein einem erfindungsgemäßen Verfahren illustriert, und
  • 3 ein Flussdiagramm einer Ausführungsform eines erfindungsgemäßen Verfahrens.
  • BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
  • In allen Figuren der Zeichnungen sind gleiche bzw. funktionsgleiche Elemente – sofern nichts Anderes angegeben ist – mit gleichen Bezugszeichen versehen worden.
  • 1 ist ein Blockdiagramm eines erfindungsgemäßen Steuergerätes 100, an welchen ein Diagnosegerät 200 angeschlossen ist. Im vorliegenden Beispiel ist das Steuergerät 100 in einem (nicht näher dargestellten) Kraftfahrzeug vorgesehen.
  • Das Steuergerät 100 umfasst einen nicht-flüchtigen Speicher 110, einen flüchtigen Speicher 120, einen Mikroprozessor 130 sowie eine Schnittstelle 140. Der nicht-flüchtigen Speicher 110 kann insbesondere als Flash-Speicher ausgebildet sein. In diesem Flash-Speicher 110 ist eine Serien-Software abgespeichert, die werksseitig entwickelt wurde und die Funktionseinheiten des Kraftfahrzeugs steuert. Dabei wird die Serien-Software in bekannter Weise in den Mikroprozessor 130 geladen und ausgeführt.
  • Der flüchtige Speicher 120 ist ein RAM-Speicher, der einen ersten Speicherbereich 120A und einen zweiten Speicherbereich 120B aufweist. Der erste Speicherbereich 120A wird beispielsweise von der Serien-Software zum Ablegen von Funktionswerten oder Parametern verwendet. Im zweiten Speicherbereich 120B (im Folgenden auch als „Upload-Speicherbereich" bezeichnet) kann eine Upload-Software gespeichert, welche die Funktionalität der Seriensoftware erweitert.
  • Der Flash-Speicher 110 und der RAM-Speicher 120 sind mit der Schnittstelle 140, die beispielsweise als CAN-Schnittstelle ausgeführt sein kann, verbunden. Diese Schnittstelle 140 kann an ein Entwicklungs-Tool angeschlossen werden, von welchem die Serien-Software in den Flash-Speicher 110 eingespielt werden kann. Nach Einbau des Steuergerätes 100 in das Fahrzeug ist die Schnittstelle 140 mit einer (nicht näher dargestellten) Diagnosebuchse verbunden, an welche beispielsweise ein Diagnosegerät 200 angeschlossen werden kann. Somit ergibt sich die in 1 schematisch dargestellte Anordnung.
  • Wie in 1 dargestellt umfasst das Diagnosegerät 200 einen Speicher 210, ein Display 220, eine Eingabeeinrichtung 230 (z.B. eine Tastatur) und eine Schnittstelle 240, und kann beispielsweise mit einem PC, einem Laptop oder dergleichen realisiert werden. Im Speicher 210 ist eine Upload-Software abgespeichert, welche in einer speziellen Entwicklungsumgebung entwickelt wurde. Diese Upload-Software kann beispielsweise Diagnosefunktionen oder Testfunktionen umfassen, welche nicht in der bereits im Steuergerät 100 installierten Serien-Software enthalten sind. Insbesondere können solche Diagnose- oder Testfunktionen auch nach Auslieferung der Serien-Software entwickelt worden sein. Mittels einer Anweisung, die in die Eingabeeinrichtung 230 eingegeben wird, kann die Upload-Software über die Schnittstellen 240 und 140 in den Upload-Speicherbereich 120B geladen werden. Somit wird die im Flash-Speicher 110 vorhandene Serien-Software ergänzt. Die von der Upload-Software (oder auch der Serien-Software) im Rahmen einer Fehlerdiagnose ermittelten Messwerte, Analyseergebnisse oder dergleichen können dann auf dem Display 220 dargestellt werden. In einer alternativen Ausführungsform ist es jedoch auch möglich, nach Aufspielen der Upload-Software das Diagnosegerät 200 vom Steuergerät 100 zu trennen und die während einer Fehlerdiagnose ermittelten Messwerte oder dergleichen in einem geeigneten Speicher (z.B. einem Drive-Recorder) abzuspeichern und zu einem späteren Zeitpunkt auszulesen und zu analysieren.
  • 2 ist ein schematisches Diagramm, welches den Daten- und Informationsfluss in einem beispielhaften Verfahren zur Erweiterung der Funktionalität der Serien-Software des oben erläuterten Steuergeräts 100 illustriert. Die Upload-Software USW wird auf einer speziellen Entwicklungsumgebung 300 erstellt. Diese Entwicklungsumgebung stellt sicher, dass die Upload-Software USW nicht mit dem normalen Ablauf der Serien-Software interferiert und somit eine Verfälschung des Ablaufverhaltens der Serien-Software bewirkt. Insbesondere stellt die Entwicklungsumgebung 300 sicher, dass die Upload-Software USW keine unerlaubten Zugriffe auf die Serien-Software tätigt. Dies kann beispielsweise dadurch erreicht werden, dass die Upload-Software USW lediglich auf Lesezugriffe auf vorbestimmte Parameter (z.B. Variablen und Funktionen) der Serien-Software sowie Schreibzugriffe auf vorbestimmte Bereiche eines RAM-Speicherbereichs vornehmen darf.
  • Nach dem Transfer von der Entwicklungsumgebung 300 zum Diagnosetester 200 und Anschließen des Diagnosetesters 200 an das Steuergerät 100 kann die Upload-Software USW über die Laufzeitumgebung 140 des Steuergerätes 100 in den Upload-Speicher 120B geladen werden. Das Laden der Upload-Software USW wird dabei von einem so genannten Upload-Handler koordiniert, welcher sicherstellt, dass die Upload-Software USW in den für sie vorgesehenen Speicherbereich geladen wird. Der Upload-Handler kann insbesondere als Teil des Betriebssystems 150 des Steuergeräts 100 ausgelegt werden und ist ein Mechanismus, der zur Verfügung gestellt wird, damit eine temporäre Erweiterung der Serien-Software durch die Upload-Software erreicht werden kann.
  • Während des Ladens der Upload-Software USW in den Upload-Speicher 120B wird von einer Authentifizierungseinrichtung 160 eine Authentifizierung der Upload-Software USW vorgenommen. Die Funktion dieser Authentifizierungseinrichtung 160 kann auch von Upload-Handler übernommen werden. Durch Manipulation der vom Steuergerät 100 ausgeführten Software ist es beispielsweise möglich, die Performanz des Kraftfahrzeugs zu steigern (so genanntes Tuning). Dies führt allerdings zu erhöhten Sicherheitsrisiken im Straßenverkehr und ist daher vom Hersteller, auch im Hinblick auf klare Haftungsverhältnisse, unerwünscht. Die Authentifizierung der Upload-Software mit der Authentifizierungseinrichtung 160 soll somit sicherstellen, dass die Upload-Funktionalität nicht von Dritten zu einem unbefugten Ändern (also Tunen) der vom Steuergerät 100 ausgeführten Software führt. Ein einfacher Schutz gegen solche Manipulationen kann mit der Verwendung von Passwörtern erreicht werden. Dazu wird im Flash-Speicher 110 ein Passwort abgelegt und das Schreiben der Upload-Software in den Upload-Speicher 120B wird von der Authentifizierungseinrichtung 160 nur bei Vorlage des richtigen Passwortes durch das Diagnosegerät 200 bzw. durch die Upload-Software erlaubt. Ein verbesserter Schutz lässt sich durch den Einsatz Zertifikaten und einem asymmetrischen Kryptosystem erreichen. Dabei ist die zu übertragende Software mit dem privaten Schlüssel der zertifizierenden Stelle, also hier durch den Hersteller der Upload-Software signiert, und kann seitens des Steuergerätes mit dem korrespondierenden öffentlichen Schlüssel überprüft werden.
  • Nach dem Laden der Upload-Software USW wird diese auf dem Steuergerät 100 ausgeführt. Dabei kann die Upload-Software USW nur auf vorbestimmte Parameter bzw. Schnittstellen 170 zugreifen. Beispielsweise kann die Upload-Software USW nur lesend auf die Serien-Software zugreifen und kann Schreibzugriffe auch nur in einem bestimmten Bereich des RAM-Speichers 120 vornehmen. Neben solchen Zugriffsrechten werden auch Randbedingungen bezüglich der Systemressourcen (z.B. Übertragungsbandbreite) berücksichtigt. Somit wird sichergestellt, dass die Serien-Software nicht unerlaubt von der Upload-Software beeinflusst wird.
  • Die Ausführung der Upload-Software wird vom Upload-Handler gesteuert. Dazu ist der Upload-Handler, wie jede andere Steuergerätfunktion, im Betriebssystem eingetragen und wird somit vom Betriebssystem aufgerufen. Der Aufruf des Upload-Handlers durch das Betriebssystem kann interruptgesteuert erfolgen, um eine schnelle Reaktion zu erreichen, erfolgt aber üblicherweise mit Hilfe eines entsprechenden Scheduling des Betriebssystems. Beim Laden der Upload-Software wird vom Upload-Handler ein interner Status gesetzt, der anzeigt, dass und wo eine Upload-Software verfügbar ist. Wenn der Upload-Handler dann vom Betriebssystem aufgerufen wird, sieht er diesen Status ein und führt gegebenenfalls die Upload-Software aus. Dies kann dadurch geschehen, dass der Upload-Handler eine Verzweigung des Programmablaufs zur Upload-Software oder einem entsprechenden Teil der Upload-Software verursacht.
  • Vor dem Laden der Upload-Software USW in den Speicherbereich 120B ist dort eine so genannte Dummy-Upload-Software DUSW (beispielsweise aus Noop-Code) vorgesehen. Diese weist dieselben Laufzeiteigenschaften wie die später zu ladende Upload-Software USW auf. Während des regulären Fahrbetriebs wird die Dummy-Upload-Software DUSW vom Betriebssystem bzw. vom Upload-Handler aufgerufen und ausgeführt. Durch die Dummy-Upload-Software wird also sichergestellt, dass das Laufzeitverhalten der Serien-Software gleich ist, unabhängig davon, ob eine Upload-Software geladen ist oder nicht. Die Dummy-Upload-Software bestimmt somit auch die Spezifikation für eine später zu entwickelnde Upload-Software. Mit anderen Worten wird durch die Dummy-Upload-Software eine bestimmte Laufzeit in der Ausführung der Serien-Software freigehalten. Die Upload-Software wird dann unter der Maßgabe entwickelt, dass diese Laufzeit nicht überschritten wird. Es ist auch möglich, durch die Dummy-Upload-Software mehrere Zeitblöcke unterschiedlicher Länge freizuhalten, die jeweils einem bestimmten Speicherbereich im Upload-Speicher 120B entsprechen. Die Upload-Software wird in diesem Falle vom Upload-Handler in einem ihrer Laufzeit entsprechenden Speicherbereich abgespeichert.
  • 3 zeigt ein Flussdiagramm einer Ausführungsform eines erfindungsgemäßen Verfahrens.
  • In Schritt S1 werden das oben beschriebene Steuergerät 100 und der oben beschriebene Diagnosetester 200 bereitgestellt. Typischerweise ist das Steuergerät 100 dabei in ein Fahrzeug eingebaut, welches schon eine bestimmte Strecke zurückgelegt hat. Dabei können Fehler am Fahrzeug auftreten, für die keine Diagnosefunktionalität in der Serien-Software des Steuergeräts 100 bereitgestellt wurde. Eine solche Funktionalität wird mit dem hier beschriebenen Verfahren bereitgestellt, wodurch eine genaue Analyse von solchen Fehlern ermöglicht wird. Ferner ist es auch möglich, Diagnosefunktionen zu implementieren, die während des normalen Fahrbetriebes nicht durchgeführt werden können oder sollen. Ein Beispiel für eine solche Funktion ist ein Kompressionstest zum Prüfen der Kompression der Zylinder. In einem solchen Test wird die Einspritzung ausgeschaltet und über einen Sensor werden Rückschlüsse auf die Zylinderkompression gezogen, so dass ein solcher Test auch nur in einer werkstattseitigen Diagnose ausgeführt wird. Die Verwendung des vorliegenden Verfahrens für solche im regulären Fahrbetrieb nicht durchgeführte Funktionen ermöglicht es, entsprechenden Speicherplatz in der Serien-Software zu sparen. Das Verfahren kann also im Rahmen einer Routinewartung oder auch aufgrund von offensichtlichen oder vermuteten Fehlern am Fahrzeug durchgeführt werden. Das Verfahren ist insbesondere geeignet, in Vertragswerkstätten ausgeführt zu werden und erleichtert die dort durchgeführte Analyse.
  • In Schritt S2 wird an dem Steuergerät 100 der Diagnosetester 200 angeschlossen, in welchem die Upload-Software USW gespeichert ist, und zwar durch Verbinden der jeweiligen Schnittstellen. Beispielsweise kann der Diagnosetester 200 an der dafür am Fahrzeug vorgesehenen Diagnosebuchse angeschlossen werden.
  • In Schritt S3 wird die Upload-Software USW vom Diagnosetester 200 in den Upload-Speicherbereich 120B des Steuergerätes 100 geladen. Dazu wird die Upload-Software USW vom Diagnosetester 200 in den Upload-Speicherbereich 120B kopiert und dort abgespeichert. Dieser Ladevorgang wird vom oben beschriebenen Upload-Handler gesteuert.
  • In Schritt S4 erfolgt eine Authentifizierung (also ein Herkunftsnachweis) der Upload-Software USW. Dies kann beispielsweise wie oben beschrieben mit Hilfe von Zertifikaten geschehen, z.B. durch Entschlüsseln der mit einem privaten Schlüssel verschlüsselten (bzw. signierten) Upload-Software mittels des im Vorhinein im Speicher 110 gespeicherten dazugehörigen öffentlichen Schlüssels. Details zu geeigneten Authentifizierungsalgorithmen finden sich beispielsweise in Bruce Schneier „Applied Cryptography", John Wiley & Sons, 1996.
  • In Schritt S5 wird geprüft, ob die Authentifizierung in Schritt S4 erfolgreich war. Falls die Authentifizierung erfolgreich war, springt das Verfahren zu Schritt S6, und fall nicht, dann wird das Verfahren abgebrochen.
  • In Schritt S6 wird die Upload-Software durch eine entsprechende Eingabe in die Tastatur 230 des Diagnosegeräts 200 aktiviert.
  • In Schritt S7 wird geprüft, ob das Diagnose-Gerät 200 noch an das Steuergerät 100 angeschlossen ist. Falls dies der Fall ist, dann springt das Verfahren zu Schritt S8, anderenfalls wird das Verfahren abgebrochen. Somit wird sichergestellt, dass die Upload-Software, beispielsweise durch einen Hardwarefehler bedingt, nicht während des regulären Fahrbetriebes ausgeführt wird, sondern nur im Diagnosebetrieb ausgeführt werden kann.
  • In Schritt S8 wird die Upload-Software im Upload-Speicherbereich 120B (bzw. ein Teil, z.B. ein Programmblock derselben) ausgeführt. Durch die Upload-Software wird die Funktionalität der Serien-Software um eine Diagnosefunktion erweitert, die beispielsweise vom Diagnosegerät 200 aus durch eine entsprechende Eingabe auf der Tastatur 230 aufgerufen werden kann.
  • In Schritt S9 wird eine Abbruchbedingung geprüft, also beispielsweise ob eine Eingabe zum Beenden der Upload-Software am Diagnose-Gerät 200 vorgenommen wurde. Falls dies der Fall ist, dann springt das Verfahren zu Schritt 510, andernfalls springt das Verfahren zurück zu Schritt S7.
  • In Schritt S10 wird die Upload-Software USW aus dem Upload-Speicherbereich 120B gelöscht und durch die Dummy-Upload-Software DUSW ersetzt.
  • Mit dem oben beschriebenen Verfahren kann die Diagnose- bzw. Testfunktionalität des Steuergerätes 100 in einfacher Weise, also insbesondere ohne aufwändigen Austausch der Serien-Software, erweitert werden kann. Ein weiterer Vorteil des oben beschriebenen Verfahrens ist der, dass es ohne eine Modifikation des Steuergerätes ausgeführt werden kann.
  • Obgleich die vorliegende Erfindung vorstehend anhand eines bevorzugten Ausführungsbeispiels beschrieben wurde, ist sie darauf nicht beschränkt, sondern auf vielfältige Art und Weise modifizierbar.
  • Beispielsweise ist die externe Hardwarevorrichtung im oben beschriebenen Beispiel als Diagnosetester ausgebildet. Sie kann aber ebenso auch als Drive-Recorder, der mit der entsprechenden Funktionalität versehen ist, ausgebildet sein.
  • Ferner wird im oben angegebenen Beispiel die Authentifizierung erst nach Laden der verschlüsselten Upload-Software in den Upload-Speicher 120B durchgeführt; es ist jedoch auch möglich, zunächst per Handshake (z.B. mittels einem Passwort oder dergleichen) eine Authentifizierung des Diagnose-Gerätes 200 durchzuführen und danach erst die Upload-Software zu laden.

Claims (10)

  1. Verfahren zur Erweiterung der Funktionalität einer Serien-Software eines Steuergerätes (100), insbesondere für ein Kraftfahrzeug, mit den folgenden Schritten: (S1) Bereitstellen eines Steuergeräts (100) mit einer Schnittstelle (140), an die eine externe Hardwarevorrichtung (200) angeschlossen werden kann, einem nicht-flüchtigen Seriensoftware-Speicherbereich (110), in welchem die Seriensoftware gespeichert ist, und einem flüchtigen Upload-Speicherbereich (120B), (S2) Anschließen einer externen Hardwarevorrichtung (200), in welchem eine Upload-Software (USW) gespeichert ist, an die Schnittstelle (140), (S3) Laden der Upload-Software (USW) von der externen Hardwarevorrichtung (200) in den flüchtigen Upload-Speicherbereich (120B) des Steuergerätes (100), und (S8) Ausführen der Upload-Software (USW) im Upload-Speicherbereich (120B), wobei das Ausführen der Upload-Software (USW) die Funktionalität der Serien-Software um eine Diagnose- und/oder Testfunktion erweitert.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Upload-Software (USW) während des Ausführens der Upload-Software (USW) lediglich auf vorbestimmte Parameter der Serien-Software zugreift.
  3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verhalten der Serien-Software, insbesondere das Laufzeitverhalten der Serien-Software, durch das Ausführen der Upload-Software nicht beeinflusst wird.
  4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Upload-Software (USW) nur ausgeführt wird, solange die externe Hardwarevorrichtung (200) an das Steuergerät (100) angeschlossen ist.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass weiterhin ein Schritt (S4) vorgesehen ist, in dem die Upload-Software (USW) von einer Authentifizierungseinrichtung (160) authentifiziert wird.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Upload-Software beim Laden von der externen Hardwarevorrichtung (200) in den flüchtigen Upload-Speicherbereich (120B) des Steuergerätes (100) eine Dummy-Upload-Software (DUSW) ersetzt, deren Laufzeitverhalten gleich dem Laufzeitverhalten der Upload-Software (USW) ist.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein weiterer Schritt vorgesehen ist, in welchem nach dem Ausführen der Upload-Software (USW) die Upload-Software (USW) gelöscht wird und/oder die Upload-Software (USW) eine Dummy-Upload-Software (DUSW) ersetzt, deren Laufzeitverhalten gleich dem Laufzeitverhalten der Upload-Software (USW) ist.
  8. Steuergerät mit: einer Schnittstelle (140), an welche eine externe Hardwarevorrichtung (200) angeschlossen werden kann, einem nicht-flüchtigen Seriensoftware-Speicherbereich (110), in welchem eine Seriensoftware gespeichert ist, einem flüchtigen Upload-Speicherbereich (120B), welcher mit der Schnittstelle (140) verbunden ist und in welche über die Schnittstelle (140) von der externen Hardwarevorrichtung (200) eine Upload-Software (USW) geladen wird, die die Funktionalität der Serien-Software um eine Diagnose- und/oder Testfunktion erweitert, und Mitteln, die die Upload-Software (USW) von der externen Hardwarevorrichtung (200) in den flüchtigen Upload-Speicherbereich (120B) des Steuergerätes (100) laden.
  9. Steuergerät nach Anspruch 8 oder 9, dadurch gekennzeichnet, dass weiterhin eine Authentifizierungseinrichtung (160) vorgesehen ist, die die Upload-Software (USW) beim Laden von der externen Hardwarevorrichtung (200) in den Upload-Speicherbereich (120B) authentifiziert.
  10. Steuergerät nach Anspruch 8 oder 9, dadurch gekennzeichnet, dass im Upload-Speicherbereich (120B) eine Dummy-Upload-Software (DUSW) gespeichert ist, deren Laufzeitverhalten dem Laufzeitverhalten der Upload-Software (USW) entspricht, und die beim Laden der Upload-Software (USW) von der externen Hardwarevorrichtung (200) in den flüchtigen Upload-Speicherbereich (120B) des Steuergerätes (100) ersetzt wird.
DE102006016891A 2006-04-11 2006-04-11 Erweiterung der Funktionalität einer Serien-Software in einem Steuergerät Withdrawn DE102006016891A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102006016891A DE102006016891A1 (de) 2006-04-11 2006-04-11 Erweiterung der Funktionalität einer Serien-Software in einem Steuergerät
JP2009504665A JP2009533736A (ja) 2006-04-11 2007-03-15 制御装置における量産型ソフトウェアの機能の拡張
EP07726929A EP2008179B1 (de) 2006-04-11 2007-03-15 Erweiterung der funktionalität einer serien-software in einem steuergerät
PCT/EP2007/052439 WO2007118743A1 (de) 2006-04-11 2007-03-15 Erweiterung der funktionalität einer serien-software in einem steuergerät
US12/296,684 US20090326759A1 (en) 2006-04-11 2007-03-15 Enhancement of the functionality of series software in a control unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006016891A DE102006016891A1 (de) 2006-04-11 2006-04-11 Erweiterung der Funktionalität einer Serien-Software in einem Steuergerät

Publications (1)

Publication Number Publication Date
DE102006016891A1 true DE102006016891A1 (de) 2007-10-25

Family

ID=38066468

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006016891A Withdrawn DE102006016891A1 (de) 2006-04-11 2006-04-11 Erweiterung der Funktionalität einer Serien-Software in einem Steuergerät

Country Status (5)

Country Link
US (1) US20090326759A1 (de)
EP (1) EP2008179B1 (de)
JP (1) JP2009533736A (de)
DE (1) DE102006016891A1 (de)
WO (1) WO2007118743A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008052955A1 (de) 2008-10-23 2010-05-06 Knorr-Bremse Systeme für Nutzfahrzeuge GmbH Verfahren zur Übertragung von Programmcodes an einen Speicher eines Steuergerätes, insbesondere für Kraftfahrzeuge
WO2015158594A1 (de) 2014-04-16 2015-10-22 Volkswagen Aktiengesellschaft Verfahren zur diagnose eines kraftfahrzeugsystems, diagnosegerät für ein kraftfahrzeugsystem, steuergerät für ein kraftfahrzeugsystem und kraftfahrzeug

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102474443B (zh) * 2009-09-08 2015-05-13 艾伯特糖尿病护理公司 在不受控制数据处理设备上容纳安全关键应用程序的方法和制品
JP2011121545A (ja) * 2009-12-14 2011-06-23 Denso Corp 車載制御装置
US10114746B2 (en) 2010-10-14 2018-10-30 Micron Technology, Inc. Nonvolatile storage using low latency and high latency memory
JP2012221032A (ja) * 2011-04-05 2012-11-12 Toyota Motor Corp 車両データ取得システム及び車両データ取得方法
US9270468B2 (en) * 2013-05-29 2016-02-23 GM Global Technology Operations LLC Methods to improve secure flash programming
FR3025035B1 (fr) * 2014-08-22 2016-09-09 Jtekt Europe Sas Calculateur pour vehicule, tel qu’un calculateur de direction assistee, pourvu d’un enregistreur d’evenements integre
DE102015201298A1 (de) * 2015-01-26 2016-07-28 Robert Bosch Gmbh Verfahren zum kryptographischen Bearbeiten von Daten
US11729790B2 (en) 2020-08-06 2023-08-15 Samsung Electronics Co., Ltd. Mobile communications methods for monitoring and scheduling

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4607332A (en) * 1983-01-14 1986-08-19 At&T Bell Laboratories Dynamic alteration of firmware programs in Read-Only Memory based systems
JP2940000B2 (ja) * 1989-05-25 1999-08-25 日本電気株式会社 シングルチップマイクロコンピュータ
JPH0443139A (ja) * 1990-06-11 1992-02-13 Zexel Corp 車輌用制御装置の診断方法
DE4400079C2 (de) * 1994-01-04 1997-01-30 Bosch Gmbh Robert Verfahren zur Prüfung von elektronischen Steuergeräten
JPH09185512A (ja) * 1995-12-28 1997-07-15 Fujitsu Ten Ltd Romへのプログラム格納方法
GB2330428B (en) 1997-09-23 2000-05-24 Winbond Electronics Corp Apparatus for repairing faulty program segments in embedded microprocessor systems
US6151709A (en) * 1998-02-13 2000-11-21 Novell, Inc. Processes and apparatuses for uploading instructions to a computer
JP3808295B2 (ja) * 2000-08-09 2006-08-09 埼玉日本電気株式会社 外部インターフェースを持つ携帯機器
GB2373888A (en) 2001-03-30 2002-10-02 Toshiba Res Europ Ltd Dynamic vector address allocation for a code patching scheme
JP2003084998A (ja) * 2001-09-12 2003-03-20 Denso Corp 故障診断システム及び電子制御装置
US20030084229A1 (en) * 2001-10-23 2003-05-01 Ho Tat N. Methods and apparatus for modifying programs stored in read only memory
DE10260103A1 (de) 2002-12-19 2004-07-01 Robert Bosch Gmbh Verfahren und Vorrichtung zur Änderung von Software in einem Steuergerät sowie entsprechendes Steuergerät
US7568188B2 (en) * 2003-03-07 2009-07-28 Microsoft Corporation Method for testing a software shim
US7937198B2 (en) * 2004-12-29 2011-05-03 Snap-On Incorporated Vehicle or engine diagnostic systems supporting fast boot and reprogramming
US7984362B2 (en) * 2006-12-22 2011-07-19 Detroit Diesel Corporation Method for static fault code synchronization in an internal combustion engine

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008052955A1 (de) 2008-10-23 2010-05-06 Knorr-Bremse Systeme für Nutzfahrzeuge GmbH Verfahren zur Übertragung von Programmcodes an einen Speicher eines Steuergerätes, insbesondere für Kraftfahrzeuge
US8782328B2 (en) 2008-10-23 2014-07-15 Knorr-Bremse Systeme Fuer Nutzfahrzeuge Gmbh Method for transmitting program codes to a memory of a control device, particularly for motor vehicles
WO2015158594A1 (de) 2014-04-16 2015-10-22 Volkswagen Aktiengesellschaft Verfahren zur diagnose eines kraftfahrzeugsystems, diagnosegerät für ein kraftfahrzeugsystem, steuergerät für ein kraftfahrzeugsystem und kraftfahrzeug
DE102014207282A1 (de) 2014-04-16 2015-10-22 Volkswagen Aktiengesellschaft Verfahren zur Diagnose eines Kraftfahrzeugsystems, Diagnosegerät für ein Kraftfahrzeugsystem, Steuergerät für ein Kraftfahrzeugsystem und Kraftfahrzeug

Also Published As

Publication number Publication date
EP2008179A1 (de) 2008-12-31
WO2007118743A1 (de) 2007-10-25
US20090326759A1 (en) 2009-12-31
JP2009533736A (ja) 2009-09-17
EP2008179B1 (de) 2012-08-01

Similar Documents

Publication Publication Date Title
EP2008179B1 (de) Erweiterung der funktionalität einer serien-software in einem steuergerät
DE102006028695B4 (de) Elektronisches Steuersystem mit Fehlfunktionsüberwachung
DE19731116A1 (de) Steuergerät für ein System und Verfahren zum Betrieb eines Steuergerätes
WO2014056794A1 (de) Verfahren zur steuerung eines getrennten ablaufs von verknüpften programmblöcken und steuergerät
DE102013003493A1 (de) Verfahren zum Bedaten eines Steuergeräts eines Kraftfahrzeugs
DE102008006327A1 (de) Verfahren zur Steuerung einer Brennkraftmaschine
DE102008047433A1 (de) Verfahren zum Freischalten von Funktionen eines Tachographen
WO1991002256A1 (de) Verfahren und vorrichtung zum abfragen von steuergeräte-daten
EP2387660B1 (de) Verfahren zum durchführen einer anzahl einspritzungen
EP3132322B1 (de) Verfahren zur diagnose eines kraftfahrzeugsystems, diagnosegerät für ein kraftfahrzeugsystem, steuergerät für ein kraftfahrzeugsystem und kraftfahrzeug
DE102007010264A1 (de) Verfahren zum Betreiben eines ersten und eines zweiten Steuergeräts und Geräteanordnung mit dem ersten und dem zweiten Steuergerät
DE10228610A1 (de) Verfahren zum Überprüfen eines auf einer elektronischen Recheneinheit ablaufenden Steuerprogramms
DE102020216065A1 (de) Vorrichtung mit einer Schnittstelle und Verfahren zum Betreiben einer Vorrichtung mit einer Schnittstelle
DE19619354A1 (de) Verfahren zum Betreiben eines eine Steuerfunktion aufweisenden Steuergerätes mit einer programmierbaren Speichereinrichtung
DE102009028871A1 (de) Verfahren zum Überprüfen eines Speichers
WO2005096108A2 (de) Ablaufsteuerung von funktionen auf miteinander wechselwirkenden geräten
DE102006057532A1 (de) Verfahren zur Verbesserung eines Gaspedalsicherheits-Verriegelungsmerkmals
DE102016225100A1 (de) Verfahren zum Bestimmen einer Einspritzmenge wenigstens eines Injektors eines Kraftstoffzumesssystems einer Brennkraftmaschine eines Fahrzeugs
DE102006016894A1 (de) Verfahren und Vorrichtung zum Betreiben einer Antriebseinheit und Testvorrichtung zum Testen einer Antriebseinheit
DE102016225041B4 (de) Verfahren zum Betreiben einer Brennkraftmaschine, Steuereinrichtung für eine Brennkraftmaschine, und Brennkraftmaschine mit einer solchen Steuereinrichtung
DE102005030595A1 (de) Verfahren zum Bereitstellen einer ersten Funktionseinheit und mindestens einer zur ersten Funktionseinheit alternativen Funktionseinheit in einer Steuereinheit
DE19748181B4 (de) Verfahren zum Prüfen einer Funktion oder Einrichtung eines Fahrzeugs
DE19753730A1 (de) Verfahren und Vorrichtung zum Steuern einer Brennkraftmaschine
DE102020216071A1 (de) Verfahren zum Betreiben einer Vorrichtung, ein Steuergerät eines Kraftfahrzeugs, und Vorrichtung
DE102022200544A1 (de) Verfahren zur abgesicherten Bereitstellung eines zu schützenden Computerpro-gramms in einer Recheneinheit

Legal Events

Date Code Title Description
R005 Application deemed withdrawn due to failure to request examination

Effective date: 20130412