-
Die Erfindung betrifft Verfahren zur Programmierung einer elektronischen Steuereinheit gemäß dem Oberbegriff des Anspruchs 1.
-
Die
DE 10 2008 051 391 A1 offenbart ein Verfahren und eine Vorrichtung zum Verwalten eines nichtflüchtigen, wiederbeschreibbaren Speichers in mindestens einem Speicherbaustein, bei dem der Speicher in Speicherbereiche aufgeteilt wird. Jedem Speicherbereich wird ein Hardware-Statusregister zugeordnet. Ein aktueller Status jedes Speicherbereichs, der signalisiert, ob der Speicherbereich gelöscht ist oder nicht, wird im jeweils zugeordneten Hardware-Steuerregister gespeichert. Der Status wird durch eine Hardware des mindestens einen Speicherbausteins aktualisiert.
-
Weiterhin ist in der
DE 10 2013 003 593 A1 ein Verfahren zum Durchführen eines Löschungsvorgangs in einem beschreibbaren Speicherelement offenbart, wobei der gesamte Speicher in eine Mehrzahl von Speicherbereichen aufgeteilt und jedem Speicherbereich ein binäres Statusflag zugeordnet wird. In dem jeweiligen Statusflag kann ein erster Statuszustand, z. B. „Speicher nicht gelöscht”, oder ein zum ersten Statuszustand komplementärer, zweiter Statuszustand, z. B. „Speicher gelöscht”, eingestellt werden. Vor dem Durchführen des eigentlichen Gesamt-Löschungsvorgangs werden zunächst alle Statusflags der jeweiligen Speicherbereiche evaluiert. Beim eigentlichen Durchführen des Gesamt-Löschungsvorgangs werden nur mehr diejenigen Speicherbereiche gelöscht, deren zugeordnete Statusflags den ersten Statuszustand aufweisen. Damit werden die bereits vor Durchführung des Gesamt-Löschungsvorgangs gelöschten Speicherbereiche nicht erneut, also „doppelt”, gelöscht.
-
Der Erfindung liegt die Aufgabe zu Grunde, ein gegenüber dem Stand der Technik verbessertes Verfahren zur Programmierung einer elektronischen Steuereinheit anzugeben.
-
Die Aufgabe wird erfindungsgemäß durch ein Verfahren mit den in Anspruch 1 angegebenen Merkmalen gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.
-
Bei einem Verfahren zur Programmierung einer elektronischen Steuereinheit werden während eines Programmiervorgangs Daten mittels einer Diagnoseeinheit in einem Speicherelement der elektronischen Steuereinheit hinterlegt. Erfindungsgemäß ist vorgesehen, dass während des Programmiervorgangs ein Prozessstatus initialisiert und aktualisiert wird, wobei der Prozessstatus einen Zustand und eine Speicheradresse zumindest eines Speicherbereichs des Speicherelements aufweist, wobei der Prozessstatus nach einer Unterbrechung des Programmiervorgangs mittels der Diagnoseeinheit ausgewertet wird, und wobei der Programmiervorgang nach Unterbrechung an einer Position fortgeführt wird, die anhand des ausgewerteten Prozessstatus von der Diagnoseeinheit ermittelt wird.
-
Das Verfahren ermöglicht es, den Programmiervorgang nach Unterbrechung desselben, z. B durch Stromunterbrechung, an genau der Position fortzuführen, an der zuvor die Unterbrechung erfolgte. Das Verfahren ermöglicht somit eine Reduktion einer Programmierzeit und einer Übertragungszeit im Falle einer Unterbrechung des Programmiervorgangs gegenüber dem Stand der Technik, da bereits hinterlegte Daten, insbesondere Datenelemente, Steuerbefehle und/oder Software-Programme, nicht erneut and das Steuergerät übermittelt und in das Speicherelement hinterlegt werden müssen. Weiterhin ist eine Löschzeit zum Löschen eines Arbeitsspeichers gegenüber dem Stand der Technik verringert, da der Arbeitsspeicher bereits beim unmittelbar vor der Unterbrechung erfolgten Programmiervorgang gelöscht wurde.
-
Ausführungsbeispiele der Erfindung werden im Folgenden anhand von Zeichnungen näher erläutert.
-
Dabei zeigen:
-
1 ein Blockschaltbild mit einer elektronischen Steuereinheit und einer elektronischen Diagnoseeinheit,
-
2 ein weiteres Blockschaltbild mit der elektronischen Steuereinheit und der elektronischen Diagnoseeinheit und
-
3 ein Ablaufdiagramm eines Verfahrens zur Reprogrammierung der elektronischen Steuereinheit nach Unterbrechung eines Programmiervorgangs.
-
Einander entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen versehen.
-
1 zeigt ein Blockschaltbild mit einer elektronischen Steuereinheit 1 und einer elektronischen Diagnoseeinheit 2.
-
Bei der Steuereinheit 1 handelt es sich insbesondere um ein Steuergerät zur Anordnung in einem Fahrzeug. Die Steuereinheit 1 umfasst ein beschreibbares Speicherelement 1.1, welches einen einzigen Speicherbereich bildet oder insbesondere in eine Mehrzahl von Speicherbereichen aufgeteilt ist.
-
Die Steuereinheit 1 ist gemäß der Erfindung über einen Datenbus 3, z. B. ein CAN-Bus, mit der Diagnoseeinheit 2 elektrisch gekoppelt.
-
Bei der Diagnoseeinheit 2 handelt es sich insbesondere um ein Diagnose- und Testgerät zur Programmierung der Steuereinheit 1, wobei mittels der Diagnoseeinheit 2 Datenelemente, Steuerbefehle und/oder Software-Programme zur Ansteuerung mit der Steuereinheit 1 zusammenwirkenden Komponenten, insbesondere Fahrzeugkomponenten, z. B. ein Motor, in den Speicherbereichen abgelegt werden. Im Folgenden sind derartige Datenelemente, Steuerbefehle und/oder Software-Programme als „Daten” zusammengefasst.
-
Beim Programmieren der Steuereinheit 1 wird ein Programmiervorgang durchlaufen, mittels welchem die Daten in den jeweiligen Speicherbereichen hinterlegt werden. D. h., der Programmiervorgang beinhaltet Schreibroutinen und gegebenenfalls Löschroutinen für die Speicherbereiche des Speicherelements 1.1.
-
Weiterhin wird in der Steuereinheit 1 ein Prozessstatus initialisiert und aktualisiert, welcher Informationen bezüglich einer aktuellen Speicheradresse sowie eines Status der jeweiligen Speicherbereiche beinhaltet, der besagt, ob die jeweiligen Speicherbereiche gelöscht sind oder nicht.
-
Der Prozessstatus ist insbesondere in einem Software-Register der Steuereinheit 1 hinterlegt. Alternativ kann der Prozessstatus auch in einem Hardware-Register hinterlegt sein. Darüber hinaus ist es möglich, dass der Prozessstatus ausschließlich in der Diagnoseeinheit 2 hinterlegt ist.
-
Die Initialisierung und Aktualisierung des Prozessstatus erfolgt dabei mittels der Steuereinheit 1, z. B mittels einer Hardware der Speicherbereiche oder mittels einer in der Steuereinheit 1 integrierten Recheneinheit. Alternativ oder zusätzlich erfolgt die Initialisierung und Aktualisierung des Prozessstatus in der Diagnoseeinheit 2.
-
Bei dem Speicherelement 1.1 handelt es sich insbesondere um einen nichtflüchtigen Datenspeicher, dessen gespeicherte Daten auch dann erhalten bleiben, wenn die Steuereinheit 1 nicht in Betrieb ist. Damit bleiben die Daten auch nach einer Unterbrechung des Programmiervorgangs, z. B. bei Stromausfall, erhalten. Zudem kann die Diagnoseeinheit 2 nach Unterbrechung des Programmiervorgangs auf den zuletzt vor der Unterbrechung aktualisierten Prozessstatus zugreifen.
-
Damit sind im Rahmen der Erfindung drei Ausführungsbeispiele möglich. In einem ersten Ausführungsbeispiel fordert die Diagnoseeinheit 2 bei einem nach Unterbrechung des Programmiervorgangs erfolgten Neustarts den Prozessstatus von der Steuereinheit 1 ab, wertet diesen aus und setzt den Programmiervorgang an der korrekten Position wieder auf.
-
In einem zweiten Ausführungsbeispiel ist der Prozessstatus nach Unterbrechung des Programmiervorgangs nur in der Diagnoseeinheit 2 abgespeichert. Die Diagnoseeinheit 2 wertet den Prozessstatus anschließend aus und setzt den Programmiervorgang an der korrekten Position wieder auf.
-
In einem dritten Ausführungsbeispiel ist der Status nach Unterbrechung des Programmiervorgangs sowohl in der Steuereinheit 1 als auch in der Diagnoseeinheit 2 hinterlegt. Die Diagnoseeinheit 2 verifiziert den Prozessstatus, den diese in ihrem Speicher hinterlegt hat mit dem Prozessstatus, der in der Steuereinheit 1 hinterlegt ist, wertet diesen entsprechend der Verifizierung aus und setzt den Programmiervorgang an der korrekten Position wieder auf.
-
Im Rahmen der Erfindung kann somit ein zuvor unterbrochener und erneut gestarteter Programmiervorgang der Steuereinheit 1 gegenüber dem Stand der Technik beschleunigt werden. Beispielsweise müssen bei einem Fortschritt des Programmiervorgangs von bspw. 90% zum Zeitpunkt des Abbruchs beim Neustart des Programmiervorgangs nicht erneut 90% der Daten übertragen werden, sondern der Programmiervorgang setzt bei 90% Fortschritt wieder auf und überträgt die verbleibenden 10% der Daten.
-
2 zeigt ein weiteres Blockschaltbild mit der Steuereinheit 1 und der Diagnoseeinheit 2, wobei jeweils eine Protokollebene P der Steuereinheit 1 und der Diagnoseeinheit 2 dargestellt ist.
-
Die Protokollebenen P umfassen jeweils ein Diagnoseprotokoll P1, ein Transportprotokoll P1 und ein Busprotokoll P3.
-
Die Diagnoseeinheit 2 kommuniziert dabei mit der Steuereinheit 1 über das Diagnoseprotokoll P1, welches auf dem Transportprotokoll P2 aufsetzt und an das Busprotokoll P3, in welchem spezifische Hardwareverbindungen definiert sind, angepasst ist.
-
3 zeigt ein Ablaufdiagramm eines Neustarts des Programmiervorgangs nach zuvor erfolgter Unterbrechung.
-
In einem ersten Schritt S1 überprüfen die Steuereinheit 1 und die Diagnoseeinheit 2 ob alle Voraussetzungen zur Durchführung eines erneuten Programmiervorgangs erfüllt sind. Dazu gehört beispielsweise die Prüfung einer ausreichenden Spannungsversorgung.
-
In einem zweiten Schritt S2 wird der Prozessstatus von der Diagnoseeinheit 2 gelesen und entsprechend ausgewertet. In einem dritten Schritt S3 wird in Abhängigkeit des ausgewerteten Prozessstatus von der Diagnoseeinheit 2 eine Entscheidung über den nächsten Schritt getroffen. Ergibt die Auswertung des Prozessstatus, dass die Datenübertragung vor der Unterbrechung fehlerhaft und/oder unvollständig war, so wird der entsprechende Speicherbereich in einem vierten Schritt S4 vollständig gelöscht.
-
Beinhaltet der Prozessstatus im dritten Schritt S3, dass die Übertragung der Daten bis zu einer bestimmten Position erfolgreich war, so wird der vierte Schritt S4 übersprungen.
-
In einem fünften Schritt S5 wird ausgehend vom vierten Schritt S4 ein Fortschritt der Übertragung der Daten vor der Unterbrechung überprüft. Ergibt die Prüfung einen Fortschritt von weniger als 100%, so wird der erneute Programmiervorgang mit einem sechsten Schritt S6 fortgeführt.
-
Im sechsten Schritt S6 werden die verbleibenden Daten an die Steuereinheit 1.1 übertragen und in den jeweiligen Speicherbereichen hinterlegt. Der sechste Schritt S6 ist zudem der Folgeschritt des vierten Schritts S4, sofern dieser beim erneuten Programmiervorgang durchgeführt wird.
-
Wird im fünften Schritt S5 ausgehend vom vierten Schritt S4 ein Fortschritt der Übertragung der Daten vor der Unterbrechung von 100% ermittelt, so wird der sechste Schritt S6 übersprungen und der erneute Programmiervorgang mit einem siebten Schritt S7 fortgeführt.
-
Im siebten Schritt S7 wird überprüft, ob gemäß einem achten Schritt S8 eine Überprüfung der zu 100% übertragenen Daten auf Vollständigkeit und Fehler bereits durchgeführt wurde. Falls keine Überprüfung ermittelt wird, so wird der erneute Programmiervorgang mit dem achten Schritt S8 fortgesetzt. Der achte Schritt S8 ist zudem ein Folgeschritt des sechsten Schritts S6, sofern dieser beim erneuten Programmiervorgang durchgeführt wird Im Falle, dass die Überprüfung gemäß dem achten Schritt S8 bereits erfolgte, wird der achte Schritt S8 übersprungen und gemäß einem neunten Schritt S9 der Programmiervorgang mit nachbereitenden Maßnahmen beendet. Zu den nachbereitenden Maßnahmen gehören z. B. die Rücknahme von Softwaremodulen, die nicht mehr gebraucht werden, wie beispielsweise Gerätetreiber und Authentifizierungsinformationen. Der neunte Schritt S9 ist zudem ein Folgeschritt des achten Schritts S8, sofern dieser beim erneuten Programmiervorgang durchgeführt wird.
-
Bezugszeichenliste
-
- 1
- Steuereinheit
- 1.1
- Speicherelement
- 2
- Diagnoseeinheit
- 3
- Datenbus
- P
- Protokollebene
- P1
- Diagnoseprotokoll
- P2
- Transportprotokoll
- P3
- Busprotokoll
- S1
- erster Schritt
- S2
- zweiter Schritt
- S3
- dritter Schritt
- S4
- vierter Schritt
- S5
- fünfter Schritt
- S6
- sechster Schritt
- S7
- siebter Schritt
- S8
- achter Schritt
- S9
- neunter Schritt
-
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
-
- DE 102008051391 A1 [0002]
- DE 102013003593 A1 [0003]