-
Stand der Technik
-
Die vorliegende Erfindung betrifft ein Verfahren zum Aktualisieren von Software eines Steuergerätes, vorzugsweise für ein Kraftfahrzeug, nach der Gattung des unabhängigen Anspruchs.
-
Ein gattungsgemäßes Verfahren ist beispielsweise aus der
WO 2005/004160 A2 bekannt. Zur Durchführung eines Software-Updates eines Steuergerätes durch eine Flash-Programmierung eines mehrere Segmente aufweisenden Flash-Speichers des Steuergerätes über eine serielle Schnittstelle wird eine an die Flash-Programmierung zu stellende Anforderung festgelegt, ein Ablauf der Flash-Programmierung durch ein Zustände und Übergänge der softwaredefinierenden Zustandsautomaten spezifiziert und Verfügbarkeits-, Sicherheits- und Zuverlässigkeitsanforderungen eines jeden Zustands und eines jeden Übergangs des Zustandsautomaten überprüft.
-
Elektronische Steuergeräte (ECUs) im Automobil verfügen häufig über eine Möglichkeit, die Software des Steuergerätes oder Teile dieser Software zu aktualisieren. Bei modernen Mikrocontrollern (μC) geschieht dies in der Regel durch das Löschen und neu Beschreiben eines elektrisch löschbaren Speichers (Flash-Memory). Dieses sogenannte Flashen wird in der Regel durch eine spezielle Software ausgeführt, welche als Flashloader oder Flashbootloader (FBL) bezeichnet wird. Viele Automobilhersteller definieren einen Updateprozess, der genau beschreibt, in welcher Reihenfolge verschiedene Diagnosefunktionen auszuführen sind, um ein Software-Update durchzuführen. Für die Diagnosekommunikation wird ein bestimmtes Diagnoseprotokoll verwendet. Zur Reprogrammierung der Software findet ein Wechsel in den sogenannten Programmier-Modus statt. Dieser Modus-Wechsel beinhaltet, dass die Applikationssoftware beendet wird und auf dem Mikrocontroller nur noch der Flashbootloader ausgeführt wird. Dieser wiederum wird mit Hilfe der Diagnosekommunikation dazu verwendet, um beispielsweise ein Löschen des Speichers durchzuführen und neue Software zu übertragen und zu flashen. Während der Flashbootloader ausgeführt wird, sind komplexe Steuergerätefunktionen nicht verfügbar, da die entsprechende Software nicht ausgeführt wird.
-
Während des Flashvorgangs können, selbst wenn nur Teile der Software aktualisiert werden, keine weiteren Applikationsfunktionen ausgeführt werden, da der Flashbootloader hierzu nicht in der Lage ist. Bedingt durch die Verteilung von Softwarefunktionen auf verschiedene Steuergeräte und die Anforderung, Software-Teile nicht nur in der Werkstatt, sondern auch über Funkverbindungen über Entfernungen hinweg aktualisieren zu können, besteht der Wunsch, Software-Teile ersetzen zu können, ohne während der Zeit der Aktualisierung auf andere Applikationen zu verzichten.
-
Offenbarung der Erfindung
-
Das erfindungsgemäße Verfahren gemäß den Merkmalen des unabhängigen Anspruchs hat demgegenüber den Vorteil, dass beispielsweise während einem Update einer Klimaanlagenfunktion zumindest eine wichtige Fahrzeugfunktion wie beispielsweise die Funktion der Zentralverriegelung oder Klemmensteuerung aufrechterhalten werden kann. Außerdem müssen hierbei Speicher nicht redundant vorgehalten werden.
-
Diese Aufgabe wird erfindungsgemäß mit Hilfe einer speziellen Flash-Applikation gelöst, die die Kommunikation mit einem Master sicherstellt und weitere Applikationen steuert in der Weise, dass zumindest eine weitere Applikation, vorzugsweise für Basisfunktionen, die immer ausgeführt werden sollen, weiterhin stabil läuft. Es handelt sich um ein Verfahren, welches applikatives Flashen unterstützt (im weiteren Flash-Applikation genannt).
-
Bevorzugt ist der elektrisch beschreibbare Speicher (Flash-Speicher) in Blöcke aufgeteilt. Ein Block ist die kleinste, löschbare Einheit. Mehrere Blöcke befinden sich in einer Partition und der gesamte Speicher besteht in der Regel aus mehreren Partitionen. Bei den beschriebenen Lösungen besteht das Problem, dass auf die Blöcke einer Partition nicht zugegriffen werden kann (Code ausführen, Daten lesen), während innerhalb dieser Partition eine Erase- bzw. Lösch-Operation oder eine Write bzw. Schreib-Operation ausgeführt wird. Das hat zur Folge, dass eine sinnvolle Aufteilung der Software- bzw. Applikations-Funktionen auf die verfügbaren Flash-Partitionen vorgenommen werden muss, um sicherzustellen, dass kein Code ausgeführt wird, der in einer der zu programmierenden Partitionen liegt.
-
Die grundsätzliche Software besteht wie bisher aus einer Applikations-Software und einem Flashbootloader. Der Flashbootloader wird verwendet, um alle Teile der Software zu aktualisieren. Die Applikationssoftware enthält zusätzlich eine Flash-Applikation. Diese Flash-Applikation ist in der Lage, die Anforderungen bezüglich der Kommunikation beispielsweise mit einem Master, vorzugsweise über die Diagnosekommunikation, zu bearbeiten und beispielsweise eine Löschoperation zu starten oder Daten zu schreiben. Hierzu stoppt die Flash-Applikation die zu aktualisierende Applikation, ersetzt diese (löschen, schreiben) und startet sie, gegebenenfalls nach einer Initialisierung, anschließend wieder. Während dieses Vorgangs können andere Applikationsfunktionen weiter ausgeführt werden.
-
Weitere zweckmäßige Weiterbildungen ergeben sich aus weiteren abhängigen Ansprüchen und der Beschreibung.
-
Kurze Beschreibung der Zeichnungen
-
Nachfolgend wird ein Ausführungsbeispiel der Erfindung unter Bezugnahme auf die begleitende Zeichnung im Detail beschrieben. Dabei zeigen:
-
1 den schematischen Aufbau des Steuergeräts mit Flash-Applikation;
-
2 ein Sequenzdiagramm der Flash-Applikation,
-
3 Flashphasen mit Flash-Applikation sowie
-
4 eine beispielhafte Partitionierung des elektrisch löschbaren Speichers.
-
Ausführungsform der Erfindung
-
Ein Steuergerät 10 umfasst zumindest einen Mikrocontroller 12. In dem Mikrocontroller 12 ist zumindest ein elektrisch löschbarer Speicher 14 vorgesehen. In dem elektrisch löschbaren Speicher 14 sind Applikationen 20 abgelegt. Hierbei handelt es sich um Programme, die bestimmten Funktionen, die insbesondere mit einem Kraftfahrzeug verbunden sind, durchführen. Es handelt sich also um eine Vielzahl von Applikationen 20.1, 20.n, 20.x wie beispielsweise ein Programm für eine Zentralverriegelung, eine Klemmensteuerung, eine Türsteuerung, eine Heizungssteuerung, eine Wegfahrsperre oder ähnliches. Die entsprechenden Applikationen 20 laufen in dem Steuergerät 10. Das Steuergerät 10 ist beispielsweise über ein Bussystem 17 mit weiteren Komponenten 19 verbunden. Bei diesen Komponenten 19 handelt es sich beispielsweise um Fahrzeugkomponenten, welche abhängig von den Applikationen 20 angesteuert werden wie beispielsweise die Zentralverriegelung, entsprechende Klemmen (Zündung ein/aus etc.), Aktuatoren zur Türsteuerung, Klimaanlage etc. In dem Mikrocontroller 12 ist zudem ein sogenannter Flashbootloader 16 enthalten. Der Flashbootloader 16 dient dem Löschen und/oder neu Beschreiben von Software bestimmter Programme bzw. Applikationen 20 wie nachfolgend noch ausgeführt.
-
Wie bereits im Stand der Technik ausgeführt war es bislang üblich, bei einer Aktualisierung der Software einer Applikation 20.x sämtliche Applikationen 20 zu stoppen, anschließend zu aktualisieren und dann wieder zu starten. Um sicherzustellen, dass bestimmte, insbesondere für Fahrzeugfunktionen besonders wichtige Funktionalitäten auch während des Flashvorgangs weiterhin zur Verfügung stehen, ist eine Flash-Applikation 22 vorgesehen. Diese befindet sich ebenfalls wie die anderen Applikationen 20 im elektrisch löschbaren Speicher 14. Diese Flash-Applikation 22 ist nun in der Lage, gezielt bestimmte Applikationen 20.n, 20.x bzw. anzusteuern und/oder deren Software bzw. zugehörige Daten zu aktualisieren, während besonders wichtige Funktionalitäten, beispielhaft die Applikation 20.1, weiterhin ausgeführt werden. Die Applikation 20.1 wird also nicht durch die Flash-Applikation 22 gestoppt. Die Applikation 20.1 wird auch nicht neu überschrieben bzw. aktualisiert.
-
2 zeigt exemplarisch den Ablauf der Aktualisierung einer zu aktualisierenden Applikation 20.x. Ein Master 23 für den Flash-Vorgang sendet in einem Schritt 101 einen entsprechenden Programmierbefehl an die Flash-Applikation 22. Die Flash-Applikation 22 stoppt in einem Schritt 103 die zu aktualisierende Applikation 20.x. Außerdem wird/werden auch diejenige Applikation(en) 20.n gestoppt, die sich auf derselben Partition 40 des elektrisch löschbaren Speichers 14 befindet/befinden wie die zu aktualisierende Applikation 20.x. Nicht gestoppt wird jedoch die Applikation 20.1, da es sich hier um eine wichtige Applikation handelt, die weiterhin ausgeführt werden soll. Diese Applikation 20.1 befindet sich auch nicht auf derselben Partition 40 wie die zu aktualisierende Applikation 20.x. Der Stoppbefehl (Schritt 103) entspricht dem durchgängigen Pfeil 34 in 3. Nach einer entsprechenden Rückmeldung der zu aktualisierenden Applikation 20.x an die Flash-Applikation 22 meldet die Flash-Applikation 22 eine entsprechende Antwort an den Master 23 in Schritt 107. Daraufhin sendet der Master 23 einen Löschbefehl an die Flash-Applikation 22 in einem Schritt 109. Daraufhin werden entsprechende Blöcke in dem elektrisch löschbaren Speicher 14, die der zu aktualisierenden Applikation 20.x zugeordnet sind, gelöscht. Das Löschen erfolgt durch die Flash-Applikation 22. Nach erfolgreichem Abschluss des Löschens sendet die Flash-Applikation 22 eine entsprechende Antwort an den Master 23, Schritt 113. Der Master 23 überträgt darauf hin aktualisierte Daten bzw. Software an die Flash-Applikation 22, Schritt 114. Die Flash-Applikation 22 beschreibt bzw. veranlasst die Überschreibung der zu aktualisierenden Blöcke der zugehörigen Applikation 20.x mit den vom Master 23 übermittelten Daten, Schritt 116. Nach erfolgtem Überschreiben der Daten gibt die Flash-Applikation 22 eine positive Rückmeldung an den Master 23, Schritt 118. Löschen und Überschreiben gemäß den Schritten 111, 116 entspricht dem strich-punktiertem Pfeil 36 in 3. Daraufhin sendet der Master 23 einen Befehl an die Flash-Applikation 22, in einen Default-Modus zu wechseln, Schritt 120. der Default-Modus veranlasst die Flash-Applikation 22, einen Initialisierungsbefehl an die aktualisierte Applikation 20.x, Schritt 122 zu senden. Nach erfolgter Initialisierung gibt die aktualisierte Applikation 20.x eine entsprechende Rückmeldung an die Flash-Applikation 22, Schritt 124. Daraufhin sendet die Flash-Applikation 22 einen entsprechenden Startbefehl an die gestoppten Applikationen 20.x, 20.n, Schritt 128. Dieser Startbefehl entspricht dem gestrichelten Pfeil 38 in 3. Nach erfolgtem Start geben die gestarteten Applikationen 20.x, 20.n eine entsprechende Rückmeldung an die Flash-Applikation 22, Schritt 128. Die Flash-Applikation 22 gibt diese positive Rückmeldung weiter an den Master 23. Der Aktualisierungsvorgang für die Applikation 20.x ist damit abgeschlossen. Während der Aktualisierung jedoch wurde beispielsweise die Basis-Applikation 20.1 nicht gestoppt, sondern weiterhin ausgeführt.
-
Bei dem Master 23 kann es sich beispielsweise um einen Diagnosetester, der in der Werkstatt zum Einsatz kommt, handeln. Alternativ könnten es jedoch auch weitere Steuergeräte sein, die beispielsweise drahtlos mit dem Steuergerät 10 Kontakt aufnehmen.
-
Das Ausführungsbeispiel gemäß 3 verdeutlicht die bereits in Verbindung mit 2 erläuterten Schritte. Darüber hinaus zeigt 3 schematisch die verschiedenen Hardware- bzw. Software-Schichten. Eine entsprechende Hardware 32 umfasst beispielsweise den Mikrocontroller 12 mit elektrisch löschbarem Speicher 14. Es läuft eine Basissoftware 26, über die der Kontakt zwischen der Flash-Applikation 22 und den zu beeinflussenden Applikationen 20.n, 20.x stattfindet. Außerdem ist eine Echtzeitumgebung 24 vorgesehen, auf der die Applikationen 20 in quasi Echtzeit betreiben werden können. Schematisch dargestellt sind weiterhin ein Betriebssystem 28 sowie einen Treiber 30, über den alternative Ansteuerungsmöglichkeiten als Back-up möglich wären.
-
4 zeigt beispielhaft den Aufbau und die Belegung des elektrisch löschbaren Speichers 14. In diesem sind beispielhaft vier Partitionen 40, 41, 42, 43 vorgesehen, mehrere Blöcke 45 befinden sich in einer Partition. Ein Block 45 ist die kleinste, löschbare Einheit des elektrisch löschbaren Speichers 14. Auf Blöcke 45 einer Partition 40–43 kann nicht zugegriffen werden (Code ausführen, Daten lesen), wenn währenddessen innerhalb dieser Partition 40–43 eine Löschoder Schreib-Operation ausgeführt wird. Dies hat zur Folge, dass eine sinnvolle Aufteilung der Applikationen 20 auf die verfügbaren Partitionen 40–43 vorgenommen werden muss, um sicherzustellen, dass kein Code ausgeführt wird, der in einer der zu programmierenden bzw. zu aktualisierenden Partitionen 40–43 liegt. Gemäß 4 befindet sich nun die Flash-Applikation 22 zusammen mit einer sogenannten Basisapplikation 20.1, die auch bei einer Aktualisierung einer zu aktualisierenden Applikation 20.x ausgeführt werden soll, auf der ersten Partition 41. Weitere Applikationen 20.n, wie auch eine zu aktualisierende Applikation 20.x liegen hingegen auf einer anderen Partition, beispielsweise der der nullten Partition 40.
-
Auch die Basissoftware 26 könnte in der ersten Partition 41 abgelegt sein. Beispielhaft könnten auf den Partitionen 40, 41 auch zwei Flashbootloader 16, 16.1, 16.2, vorzugsweise auf unterschiedlichen Partitionen, liegen. Beim Betrieb dieser Flashbootloader 16 müssten jedoch sämtliche Applikationen 20 im elektrisch löschbaren Speicher 14 geschlossen werden, als auch die Basisapplikation 20.1 und die Basissoftware 26 und/oder das Betriebssystem 28. Bei einem Flash-Vorgang unter Rückgriff auf den Flashbootloader 16 würde eine Durchführung des entsprechenden Flash-Programms im RAM vorgenommen werden. Insbesondere eine Aktualisierung der Flash-Applikation 22 und/oder der Basisapplikation 20.1 ist weiterhin über den Flashbootloader 16 in bekannter Weise vorzunehmen. Hierzu würden jedoch alle Applikationen 20, also auch die Basisapplikation 20.1 bzw. alle Programme, die auf den Partitionen 40–43 abgelegt sind, geschlossen. Gleiches gilt auch für die Basissoftware 26 bzw. das Betriebssystem 28. Alternativ zur beispielhaft gezeigten Variante gemäß 4 mit zwei Flashbootloader 16.1, 16.2 wäre jedoch das Vorsehen lediglich eines einzigen Flashbootloaders 16 gleichermaßen möglich.
-
Die Flash-Applikation 22 ist wie beschrieben in der Lage, die Anforderungen betreffend Diagnosekommunikation bzw. Kommunikation mit dem Master 23 und/oder den Applikationen 20 zu übernehmen. Sie ist wie beschrieben in der Lage, eine Löschoperation zu starten und/oder Daten zu schreiben. Sie ist weiterhin in der Lage, Applikationen 20 zu stoppen, den zu ersetzenden Softwareanteil bzw. die Applikation 20 zu ersetzen (löschen, schreiben) und anschließend wieder zu starten. Während dieses Vorgangs können andere, wichtige Applikationen 20.1 weiter ausgeführt werden.
-
Beispielsweise im Rahmen einer Diagnose-Verbindung mit dem Steuergerät 10 kann initiiert werden, bestimmte Daten zu aktualisieren. Die Identifizierung der zu aktualisierenden Daten erfolgt beispielsweise über einen Identifier. Nach dem bereits beschriebenen Vorgehen erfolgt das Stoppen aller Applikationen 20.n, die auf derselben Partition 40 wie die zu aktualisierende Applikation 20.x liegen. Die Basis-Applikation 20.1 jedoch wird weiterhin ausgeführt. Anschließend werden die sogenannten Flash-Daten über die bereits beschriebene interaktive Vorgehensweise zwischen Master 23 und Flash-Applikation 22 heruntergeladen. Anschließend werden die aktualisierten Applikationen 20.x initialisiert. Anschließend werden alle gestoppten Applikationen 20.x, 20.n wieder gestartet. Die Kommunikation der Flash-Applikation 22 mit den weiteren Applikationen 20 erfolgt unter Verwendung des Betriebssystems 28 und/oder der Basissoftware 26 und/oder der Echtzeitumgebung 24. Damit ist es zweckmäßig, dass auch diese auf derselben Partition 41 liegen wie die Flash-Applikation 22.
-
Weiter kann es erforderlich sein, dem Betriebssystem 28 weitere Betriebszustände hinzuzufügen, beispielsweise einen sogenannten Default-Modus und/oder einen Flash-Modus. In Abhängigkeit des Modus wird das Scheduling beeinflusst und die jeweilige Applikation 20 gestartet oder gestoppt. Außerdem werden alle Applikationen 20 aus der zu aktualisierenden Flash-Partition 40 während des Flash-Vorgangs nicht ausgeführt. Außerdem muss jede Applikation 20 zumindest einem einfachen Interface genügen, worüber es von der Flash-Applikation 22 angesteuert wird. Diese Befehle sind Initialisierung bzw. Aktivierung 36 und/oder Starten 38 und/oder Stoppen 34 (vergleiche die Schritte 103 – Stopp, Schritt 122 – Initialisierung, Schritt 126 – Start).
-
Bevorzugte Verwendung findet das Verfahren mit der zugehörigen Vorrichtung bei der Aktualisierung von Software eines Steuergeräts insbesondere für Kraftfahrzeuge, wobei sicherzustellen ist, dass bestimmte Applikationen 20 während der Aktualisierung der Software bzw. weitere Applikationen weiterhin ausgeführt werden. Diese Aktualisierung könnte entweder über einen Diagnosetester beispielsweise in der Werkstatt oder aber auch drahtlos durch eine fernsteuernde Funktion aus der Ferne als Master 23 initiiert werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-