Steuermodule
werden verwendet, um den Betrieb von einer oder mehreren Komponenten
eines Fahrzeugs zu steuern. Zum Beispiel kann das Steuermodul als
ein Motorsteuermodul arbeiten, das ein Kraftstoffsteuersystem oder
einen Antriebsstrang des Fahrzeugs verwaltet. Im Allgemeinen implementiert
das Steuermodul ein Steuerprogramm und kann ein Bootprogramm, ein
Anwendungsprogramm und Kalibrierungsdaten umfassen. Der Speicher
kann gelöscht
und/oder neu beschrieben werden, um das Steuerprogramm zu ersetzen
oder zu aktualisieren.
In 1 umfasst ein Steuermodulverwaltungssystem 10 ein
oder mehrere Steuermodule 12-1, 12-2, 12-3,
... und 12-x, die zusammen als Steuermodule 12 bezeichnet
sind. Die Steuermodule 12 kommunizieren mit verschiedenen
Fahrzeugkomponenten 14-1, 14-2, 14-3,
... und 14-y, die zusammen als Fahrzeugkomponenten 14 bezeichnet
sind. Die Steuermodule 12 kommunizieren mit den anderen
Steuermodulen 12 über
eine Kommunikationsschnittstelle wie beispielsweise einen Fahrzeugkommunikationsbus 16.
Eine Einrichtung 18 zum Neuschreiben von Daten verwendet
den Fahrzeugkommunikationsbus 16, um mit den Steuermodulen 12 zu kommunizieren.
Zum Beispiel kann die Einrichtung 18 zum Neuschreiben von
Daten das Steuerpro gramm des Steuermoduls 12-1 neu schreiben
(d.h. löschen
oder aktualisieren). Zusätzlich
kann die Einrichtung 18 zum Neuschreiben von Daten mit
dem Steuermodul 12-1 kommunizieren, um Informationen über das
Steuerprogramm, das momentan darin steht, zu bestimmen. Das Steuerprogramm
kann Informationen über
dieses selbst oder das Steuermodul 12-1 umfassen. Zum Beispiel
können
die Informationen Softwareversionen des Bootprogramms, des Anwendungsprogramms
oder Kalibrierungsdaten, Daten vorheriger Programmierereignisse
und/oder Hardwareinformationen umfassen, aber sind nicht darauf
beschränkt.
Ein
Speichersystem umfasst einen erster Speicher, der nichtflüchtig ist,
der neubeschreibbar ist und der ein Steuerprogramm und Identifikationsdaten
speichert. Ein zweiter Speicher ist nichtflüchtig. Ein Steuermodul transferiert
die Identifikationsdaten zu dem zweiten Speicher, löscht den
ersten Speicher, beschreibt den ersten Speicher mit dem Steuerprogramm
neu und transferiert die Identifikationsdaten von dem zweiten Speicher
zu dem ersten Speicher nach dem Löschen des ersten Speichers.
Weitere
Anwendungsgebiete der vorliegenden Erfindung werden aus der detaillierten
Beschreibung, die hierin nachfolgend bereitgestellt wird, ersichtlich.
Es sei angemerkt, dass die detaillierte Beschreibung und spezifische
Beispiele, während
sie die bevorzugte Ausführungsform
der Erfindung erläutern,
nur zu Erklärungszwecken
beabsichtigt sind und nicht beabsichtigen, den Schutzumfang der
Erfindung zu beschränken.
Die
Erfindung wird im Folgenden beispielhaft anhand der Zeichnung beschrieben.
In dieser zeigt:
1 ein
funktionales Blockdiagramm eines Steuermodulverwaltungssystems gemäß dem Stand der
Technik;
2 ein
funktionales Blockdiagramm eines Steuermoduls, das einen Steuermodul-Identifikationsblock
in einem Flash-Speicher umfasst, gemäß der vorliegenden Erfindung;
3 einen
Steuermodul-Identifikationsblock eines Flash-Speichers gemäß der vorliegenden Erfindung;
und
4 ein
Flussdiagramm, das Schritte eines Verfahrens zum Speichern von Steuermodul-Identifikationsdaten,
auf die während
einer Bootbetriebsart eines Steuermoduls zugegriffen werden kann,
erläutert,
gemäß der vorliegenden
Erfindung.
Die
folgende Beschreibung der bevorzugten Ausführungsform(en) ist lediglich
beispielhafter Natur und beabsichtigt auf keine Weise, die Erfindung,
ihre Anwendung oder Verwendungen zu beschränken. Zu Klarheitszwecken werden
die gleichen Bezugszeichen in den Zeichnungen verwendet, um ähnliche Elemente
zu identifizieren. Wie hierin verwendet bezieht sich der Ausdruck
Modul und/oder Einrichtung auf einen anwendungsspezifischen Schaltkreis (ASIC
von application specific integrated circuit), einen elektronischen
Schaltkreis, einen Prozessor (gemeinsam genutzt, dediziert oder
gruppiert) und einen Speicher, die ein oder mehrere Software- oder
Firmwareprogramme ausführen,
einen Schaltkreis mit kombinatorischer Logik und/oder andere geeignete Bauteile,
die die beschriebene Funktionalität bereitstellen.
In 2 umfasst
ein Steuermodul bzw. eine elektronische Steuereinheit ("ECU") 20 ein
Modul 22 eines flüchtigen
Speichers oder Direktzugriffsspeichers (RAM von random access memory),
ein Modul 24 eines nichtflüchtigen Speichers oder Flash-Speichers,
ein Steuermodul 26 und eine Eingabe-/Ausgabeschnittstelle 28.
Das Steuermodul 20 kann auch ein Energieversorgungsmodul
und andere Standardkomponenten umfassen, die nicht gezeigt sind.
Das Steuermodul 26 arbeitet gemäß einem oder mehreren Programmen,
die in dem RAM-Modul 22,
dem Flash-Speichermodul 24 oder einem anderen Speicher
angeordnet sein können.
Mit anderen Worten speichern das RAM-Modul 22 und das Flash-Speichermodul 24 Programme
und/oder Daten, die verwendet werden, um Programme mit dem Steuermodul 26 auszuführen.
Das
Flash-Speichermodul 24 ist ein nichtflüchtiger Nur-Lese-Speicher. Fachleute
werden erkennen, dass eine Festplatte (HDD von hard disc drive)
oder ein anderer geeigneter nichtflüchtiger Speicher das Flash-Speichermodul 24 ersetzen
kann. Das Flash-Speichermodul 24 umfasst neu beschreibbare
und nicht neu beschreibbare Bereiche. Ein Bootprogramm ist in dem
nicht neu beschreibbaren Bereich gespeichert. Im Allgemeinen wird
das Bootprogramm auf ein Anschalten oder Zurücksetzen des Steuermoduls 20 hin
ausgeführt
(d.h. das Steuermodul 20 befindet sich in einer "Bootbetriebsart"). Das Steuermodul 26 führt bei
dem Bootprogramm eine anfängliche
Verarbeitung aus, während
sich das Steuermodul 20 in der Bootbetriebsart befindet.
Zum Beispiel kann das Bootprogramm bestimmen, ob eine geeignete
Anwendung oder Kalibrierungsdaten vorhanden sind. Zu sätzlich kann
das Bootprogramm die Integrität
der Anwendungssoftware oder der Kalibrierungsdaten verifizieren.
Wenn das Bootprogramm das Vorhandensein und die Integrität der gesamten
erforderlichen Software und/oder aller erforderlichen Daten verifiziert,
führt das
Steuermodul 26 das Anwendungsprogramm aus (d.h. das Steuermodul
befindet sich in einer "Anwendungsbetriebsart"). Bei anderen Implementierungen
kann das Bootprogramm in einem neu beschreibbaren Bereich gespeichert
sein.
Die
Anwendungsprogramme und/oder die Kalibrierungsdaten sind in dem
neu beschreibbaren Bereich des Flash-Speichermoduls 24 gespeichert. Die
Einrichtung 18 zum Neuschreiben von Daten kommuniziert
mit dem Steuermodul 20 über
den Bus 16 und die Eingabe-/Ausgabeschnittstelle 28, um
die Programme, die in dem Flash-Speichermodul 24 gespeichert
sind, zu löschen
oder neu zu schreiben.
Das
RAM-Modul 22 speichert temporäre Daten, die durch das Steuermodul 26 verwendet
werden. Zum Beispiel kann das RAM-Modul 22 Ergebnisse von
Berechnungen für
das Anwendungsprogramm speichern. Im Allgemeinen ist das RAM-Modul 22 ein
flüchtiger
Speicher, und die Inhalte des RAM-Moduls 22 gehen auf ein
Abschalten hin verloren und/oder werden auf ein Zurücksetzen
des Steuermoduls 20 hin neu initialisiert (d.h. mit Null
beschrieben). Das RAM-Modul 22 kann jedoch einen temporären Speicherbereich 30 zum
Aufrechterhalten von permanenten Daten umfassen. Bestimmte Daten
können
in dem temporären
Speicherbereich 30 während
des Betriebs des Steuermoduls 20 gespeichert werden. Die
Daten werden dann vor einem Abschalten des Steuermoduls 20 zu
einem verfügbaren
Bereich des Flash-Speichermoduls 24 transferiert. Auf diese
Weise werden die Daten, die in dem temporären Speicherbereich 30 gespeichert
sind, in dem Flash-Speichermodul 24 aufrechterhalten, bevor
das RAM-Modul 22 gelöscht wird.
Das
Flash-Speichermodul 24 umfasst einen nicht neu beschreibbaren
Steuermodul-Identifikations-Flash-Block (Steuermodul-ID-Flash-Block) 32. Der
Steuermodul-ID-Flash-Block 32 kann in dem nicht neu beschreibbaren
Bereich umfasst sein, der das Bootprogramm speichert. Alternativ
kann der Steuermodul-ID-Flash-Block 32 ein unabhängiger nicht
neu beschreibbarer Bereich sein. Bei einer Implementierung ist der
nicht neu beschreibbare Bereich ein physikalisch neu beschreibbarer
Bereich des Flash-Speichermoduls 24. Das Steuermodul 26 und/oder
das Bootprogramm beschränken/beschränkt jedoch
die Fähigkeit
der Einrichtung 18 zum Neuschreiben von Daten, den nicht
neu beschreibbaren Bereich zu löschen
oder neu zu beschreiben. Bei einer anderen Implementierung ist der
nicht neu beschreibbare Bereich ein unabhängiges Nur-Lese-Speichermodul
(ROM-Modul von read-only memory module).
Der
Steuermodul-ID-Flash-Block 32 speichert Identifikationsinformationen über das
Steuermodul 20 und/oder Informationen über die Bootsoftware, die Anwendungssoftware
und Kalibrierungsdaten. Zum Beispiel kann der Steuermodul-ID-Flash-Block 32 Informationen über die
Hardwarekomponenten des Steuermoduls 20, wie beispielsweise
Teilenummern und Herstellerdaten, speichern. Zusätzlich kann der Steuermodul-ID-Flash-Block 32 Softwareversionsnummern und
Programmierdaten speichern.
Die
Identifikationsinformationen, die in dem Steuermodul-ID-Flash-Block 32 gespeichert
sind, können
zu Diagnose-, Verbesserungs- und/oder
Reparaturzwecken verwendet werden. Software- oder Hardwareaktualisierungen
können
für das
Steuermodul 20 verfügbar
sein. Die Einrichtung 18 zum Neuschreiben von Daten stellt
Optionen bereit, um das Steuermodul 20 gemäß den Identifikationsinformationen
neu zu beschreiben. Zum Beispiel bestimmt die Einrichtung 18 zum
Neuschreiben von Daten, ob die momentane Software veraltet ist,
und ermöglicht
einem Benutzer, das Steuermodul 20 mit aktueller Software
neu zu beschreiben. Bei anderen Ausführungsformen ist die Einrichtung 18 zum
Neuschreiben von Daten dazu fähig,
zu bestimmen, ob die momentane Anwendung und die Kalibrierungssoftware
kompatibel sind.
Im
Allgemeinen beginnt das Steuermodul 20 in der Bootbetriebsart
und geht nach einer erfolgreichen Verifikation des Anwendungsprogramms
in die Anwendungsbetriebsart über,
wie es oben beschrieben ist. Während
eines Umprogrammierens bleibt das Steuermodul 20 jedoch
in der Bootbetriebsart, bis das Flash-Speichermodul 24 neu
beschrieben ist. Nach einem erfolgreichen Umprogrammieren des Flash-Speichermoduls 24 geht
das Steuermodul 20 für
einen Standardbetrieb in die Anwendungsbetriebsart über.
Daten,
die in dem Anwendungsprogramm enthalten sind, sind während des
Umprogrammierens (d.h. während
der Bootbetriebsart) nicht für
die Einrichtung 18 zum Neuschreiben von Daten verfügbar. Wenn
ein Umprogrammieren initialisiert wird, wird das Anwendungsprogramm
bei der Vorbereitung für
ein Neuschreiben des neuen Anwendungsprogramms von dem Flash-Speichermodul 24 gelöscht. Herkömmlich sind
die Steuermodul-Identifikationsinformationen in dem Anwendungsprogramm gespeichert.
Daher sind die Steuermodul-Identifikationsinformationen
nicht verfügbar,
nachdem ein Umpro grammieren beginnt. Wenn das Umprogrammieren aus
irgendeinem Grund fehlschlägt,
kann das Steuermodul 20 nicht von der Bootbetriebsart in
die Anwendungsbetriebsart übergehen,
bis ein nachfolgender Umprogrammierungsversuch erfolgreich ist. Mit
anderen Worten bleibt das Steuermodul 20 in der Bootbetriebsart
hängen
und für
die Einrichtung 18 zum Neuschreiben von Daten sind keine
in dem Anwendungsprogramm gespeicherten Informationen verfügbar.
Das
Steuermodul 20 der vorliegenden Erfindung speichert die
Steuermodul-Identifikationsinformationen in den nicht neu beschreibbaren
Steuermodul-ID-Flash-Block 32, so dass die Steuermodul-Identifikationsinformationen
während
der Bootbetriebsart verfügbar
sind. Wenn ein Umprogrammierungsversuch fehlschlägt und das Anwendungsprogramm
gelöscht
wird, ist die Einrichtung 18 zum Neuschreiben von Daten
immer noch dazu in der Lage, die Steuermodul-Identifikationsinformationen
aus dem Steuermodul-ID-Flash-Block 32 zu
bestimmen.
In
Bezug auf 3 ist ein Steuermodul-ID-Flash-Block 32 gezeigt.
Der Steuermodul-ID-Flash-Block 32 umfasst eine Vielzahl
an Steuermodul-IDs 1, 2, 3, ... und m, die jeweils in ID-Flash-Blöcken 34-1, 34-2, 34-3,
... und 34-m angeordnet sind. Jede ID stellt Steuermodul-Identifikationsinformationen
von vorherigen Umprogrammierungs-Arbeitsvorgängen dar.
Der Steuermodul-ID-Flash-Block 32 umfasst auch leere Speicherblöcke 36-1, 36-2, 36-3,
... und 36-n, um zukünftige Steuermodul-IDs
zu speichern. Während
eines Umprogrammierungsereignisses bestimmt das Steuermodul 20 einen
Ort 34-m der neuesten Steuermodul-ID, um einen Ort des
ersten leeren Speicherblocks 36-1 zu berechnen. Das Steuermodul 20 speichert
eine neue Steuermodul-ID in den ersten leeren Speicherblock 36-1.
Bezug
nehmend auf 4 startet ein Steuermodul-ID-Verfahren 40 in
Schritt 42. In Schritt 44 begibt sich das Steuermodul
in die Anwendungsbetriebsart. Zum Beispiel geht das Steuermodul
nach einem anfänglichen
Anschalten von der Bootbetriebsart in die Anwendungsbetriebsart über und
beginnt einen Standardbetrieb. In Schritt 46 begibt sich das
Steuermodul in eine Umprogrammierungsbetriebsart. Zum Beispiel tauscht
die Einrichtung zum Neuschreiben von Daten mit dem Steuermodul Daten
aus, um ein Umprogrammieren zu initialisieren. Damit die Einrichtung
zum Neuschreiben von Daten das Steuermodul neu programmiert, muss
sich das Steuermodul in der Bootbetriebsart befinden.
In
der Anwendungsbetriebsart verwendet das Steuermodul den RAM, um
das Anwendungsprogramm auszuführen.
Um den Flash-Speicher neu zu programmieren, verwendet das Steuermodul
den RAM, um Datentransfer-Subroutinen auszuführen. Daher kann das Steuermodul
in der Anwendungsbetriebsart nicht den RAM verwenden, um in den ID-Flash-Block
zu schreiben (d.h. den Flash-Speicher neu zu programmieren). Statt
dessen verwendet das Steuermodul den RAM, um die Steuermodul-ID während des Übergangs
in die Bootbetriebsart zu speichern. In Schritt 48 wird
die momentane Steuermodul-ID von dem momentanen Anwendungsprogramm
an einen Ort eines geteilten RAM transferiert. Bei anderen Implementierungen
kann das Verfahren 40 Schritt 48 weglassen. Zum
Beispiel kann das Steuermodul gleichzeitig den RAM verwenden, um das
Anwendungsprogramm auszuführen,
während die
Datentransfer-Subroutinen ausgeführt
werden. Auf diese Weise kann das Steuermodul die momentane Steuermodul-ID
direkt zu dem ID-Flash-Block transferieren.
In
Schritt 50 beginnt das Steuermodul einen Übergang
von der Anwendungsbetriebsart in die Bootbetriebsart. In Schritt 52 wird
die momentane Steuermodul-ID von dem Ort des geteilten RAM während des Übergangs
in die Bootbetriebsart zu einem verfügbaren ID-Flash-Block q transferiert.
In Schritt 54 schließt
das Steuermodul den Übergang
in die Bootbetriebsart ab. Nach einem erfolgreichen Übergang
in die Bootbetriebsart kann das Steuermodul die Einrichtung zum
Neuschreiben von Daten darüber
informieren, dass mit einem Umprogrammieren fortgefahren werden
kann.
In
Schritt 56 wird eine neue Steuermodul-ID in dem ID-Flash-Block
q + 1 erzeugt. Die neue Steuermodul-ID umfasst die Identifikationsinformationen, die
in dem ID-Flash-Block q gespeichert sind, zuzüglich zusätzlicher Informationen. Zum
Beispiel können
die zusätzlichen
Informationen einen Reparaturort und/oder Umprogrammierungsdaten
umfassen, aber sind nicht darauf beschränkt. Wenn Schritt 56 aus
irgendeinem Grund fehlschlägt,
ist die Steuermodul-ID, die in dem ID-Flash-Block q gespeichert ist,
immer noch für
die Einrichtung zum Neuschreiben von Daten verfügbar. In Schritt 58 löscht die
Einrichtung zum Neuschreiben von Daten das Flash-Speichermodul.
Mit anderen Worten löscht
die Einrichtung zum Neuschreiben von Daten die gesamte Software,
die in den neu beschreibbaren Bereichen des Flash-Speichermoduls
angeordnet ist. Jegliche Daten, die in den ID-Flash-Blöcken gespeichert
sind, werden beibehalten. Wenn ein Umprogrammieren fehlschlägt oder
unterbrochen wird, muss das Steuermodul in die Bootbetriebsart zurückgesetzt
werden und kann nicht in die Anwendungsbetriebsart übergehen.
Auf die Steuermodul-ID,
die in den ID-Flash-Blöcken
gespeichert ist, kann jedoch immer noch zugegriffen werden.
In
Schritt 60 schließt
die Einrichtung zum Neuschreiben von Daten das Umprogrammieren ab. Zum
Beispiel schließt
die Einrichtung zum Neuschreiben von Daten ein Herunterladen/Programmieren des
Steuermoduls mit neuer Anwendungs- und/oder Kalibrierungssoftware
ab. In Schritt 62 führt
das Verfahren 40 Integritäts- und/oder Kompatibilitätstests durch.
Zum Beispiel führt
das Verfahren 40 eine Prüfsummen-Routine aus, wie sie
in der Technik bekannt ist. Zusätzlich
kann das Verfahren 40 eine Kompatibilität zwischen der Anwendungssoftware
und der Kalibrierungssoftware bestimmen. In Schritt 64 bestimmt das
Verfahren 40, ob die Tests bestanden wurden. Bei einer
Implementierung aktualisiert das Verfahren 40 die Steuermodul-ID,
die in dem ID-Flash-Block q + 1 gespeichert ist, um anzugeben, dass
ein Umprogrammieren abgeschlossen ist, und dass Integritätstests
ausgeführt
werden. Das Verfahren 40 aktualisiert die Steuermodul-ID
wieder, wenn die Tests abgeschlossen sind. Die Einrichtung zum Neuschreiben
von Daten prüft
dann die Steuermodul-ID, um zu bestimmen, ob die Tests bestanden
wurden. Wenn dies der Fall ist, fährt das Verfahren 40 mit
Schritt 66 fort. Wenn dies nicht der Fall ist, fährt das
Verfahren mit Schritt 68 fort.
In
Schritt 68 bleibt das Steuermodul in der Bootbetriebsart,
da einer oder mehrere der in Schritt 64 ausgeführten Tests
fehlschlugen. Das Verfahren 40 fährt dann mit Schritt 70 fort
und endet. Nachfolgend kann das Steuermodul für zusätzliche Umprogrammierungsversuche
zurückgesetzt
werden. Das Steuermodul beginnt in der Bootbetriebsart, und die Einrichtung
zum Neuschreiben von Daten kann Steuermodul-ID-Daten von dem Steuermodul-ID-Flash-Block
q und/oder dem ID-Flash-Block q + 1 erhalten.
In
Schritt 66 geht das Steuermodul von der Bootbetriebsart
in die Anwendungsbetriebsart über. In
Schritt 72 wird die aktuellste Steuermodul-ID (d.h. die
Steuermodul-ID, die in dem ID-Flash-Block q + 1 gespeichert ist)
zu dem nichtflüchtigen
Speicher transferiert. Alternativ werden nur spezifische Elemente
der aktuellsten Steuermodul-ID,
wie beispielsweise die Elemente, auf die während der Anwendungsbetriebsart
zugegriffen werden muss, zu dem nichtflüchtigen Speicher transferiert.
Bei einer Implementierung wird die Steuermodul-ID zu dem temporären Speicherbereich 30 transferiert,
wie es in 2 gezeigt ist. Das Steuermodul
fährt mit
dem Betrieb in der Anwendungsbetriebsart fort und das Verfahren endet
in Schritt 70.
Zusammengefasst
betrifft die Erfindung ein Speichersystem für ein Fahrzeug, das einen ersten Speicher,
der nichtflüchtig
ist, der neu beschreibbar ist und der ein Steuerprogramm und Identifikationsdaten
speichert, umfasst. Ein zweiter Speicher ist nichtflüchtig. Ein
Steuermodul transferiert die Identifikationsdaten zu dem zweiten
Speicher, löscht
den ersten Speicher, beschreibt den ersten Speicher mit dem Steuerprogramm
neu, und transferiert die Identifikationsdaten von dem zweiten Speicher
nach einem Löschen
des ersten Speichers zu dem ersten Speicher. Die Identifikationsdaten
können
Daten wie beispielsweise einen Softwareversionsidentifikator, ein
Programmierdatum und/oder eine Teilenummer umfassen.