DE102009038641B4 - Steuergerät - Google Patents

Steuergerät Download PDF

Info

Publication number
DE102009038641B4
DE102009038641B4 DE102009038641.6A DE102009038641A DE102009038641B4 DE 102009038641 B4 DE102009038641 B4 DE 102009038641B4 DE 102009038641 A DE102009038641 A DE 102009038641A DE 102009038641 B4 DE102009038641 B4 DE 102009038641B4
Authority
DE
Germany
Prior art keywords
data
constant
section
block
memory
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.)
Expired - Fee Related
Application number
DE102009038641.6A
Other languages
English (en)
Other versions
DE102009038641A1 (de
Inventor
Akihiro Ishii
Shozo Tsunekazu
Koji Hashimoto
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE102009038641A1 publication Critical patent/DE102009038641A1/de
Application granted granted Critical
Publication of DE102009038641B4 publication Critical patent/DE102009038641B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Abstract

Steuergerät, das einen Mikroprozessor (110A, 110B), mit dem ein Eingangssignal-Schaltkreis (103) und ein Ausgangssignal-Schaltkreis (104) verbunden sind, einen nicht-flüchtigen Programmspeicher (111A, 111B), der mit dem Mikroprozessor (110A, 110B) zusammenarbeitet, einen flüchtigen RAM-Speicher (112A, 112B) und einen nicht-flüchtigen Datenspeicher (113A, 113B) enthält und ein Steuerausgangssignal an den Ausgangssignal-Schaltkreis (104) überträgt, in Ansprechen auf ein in den nicht-flüchtigen Programmspeicher (111A, 111B) geschriebenes Eingabe/Ausgabe-Steuerprogramm, Werte von Steuerkonstanten, die in dem nicht-flüchtigen Datenspeicher gespeichert sind (113A, 113B), und einen Signalzustand des Eingangssignal-Schaltkreises (103), wobei das Steuergerät dadurch gekennzeichnet ist, dass der nicht-flüchtige Datenspeicher (113A, 113B) aus einem nicht-flüchtigen Speicher mit einer Vielzahl von Aufteilungsblöcken (113a, 113b, 113c, 113d, 113e, 113f) gebildet ist, von denen jeder separat oder kollektiv gelöscht werden kann, dass jeder der Aufteilungsblöcke (113a, 113b, 113c, 113d, 113e, 113f) in eine Vielzahl von Datenspeicherungsbereichen (S10, S20, S300) aufgeteilt ist, deren Schreibfrequenzen und Schreib-Timings voneinander unterschiedlich sind, dass jeder der Datenspeicherungsbereiche (S10, S20, S300) mit einer Vielzahl von Abschnitten (S11, S12, S21–S24, S301–S320, S11–S14, S21–S28, S301–S340) ausgestaltet ist, von denen jeder eine Lese/Schreibeinheit ist; eine Vielzahl separater Datenstücke in vorbestimmter Reihenfolge in jeden der Abschnitte geschrieben ist; und eine Datenkapazität von jedem Abschnitt mit der Anzahl von Bits übereinstimmt, die der Anzahl separater Datenstücke entspricht, die in diesen Abschnitt geschrieben sind, dass, nachdem der betrachtete Aufteilungsblock kollektiv gelöscht ist, neue Datenstücke sequentiell in der Vielzahl von Abschnitten in Schritten eines Abschnitts gespeichert werden; wenn irgendein Datenspeicherungsbereich des betrachteten Aufteilungsblocks mit Daten aufgefüllt ist und kein leerer Abschnitt existiert, wo keine Daten geschrieben sind, neue Daten in einen Kopfabschnitt in dem entsprechenden Datenspeicherungsbereich eines anderen Aufteilungsblocks geschrieben werden, der vorbereitend und kollektiv gelöscht worden ist; und letzte Daten, die in einen anderen Datenspeicherungsbereich des ursprünglichen ...

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Steuergerät, insbesondere ein Fahrzeug-Motorsteuergerät oder ein Getriebe-Steuergerät, das einen flüchtigen RAM-Speicher und einen nicht-flüchtigen Datenspeicher enthält, die mit einem Mikroprozessor zusammenarbeiten, und in dem nicht-flüchtigen Datenspeicher Lernsteuerkonstanten aufbewahrt, die in dem RAM-Speicher gespeichert sind; die vorliegende Erfindung betrifft auch eine Verbesserung zum Begrenzen der Anzahl der Häufigkeit einer Kollektivlöschung eines Flash-Speichers, der als der nicht-flüchtige Datenspeicher genutzt wird.
  • Beschreibung des verwandten Fachgebiets
  • Es ist allgemein bekannt, dass in einem Steuergerät, welches einen Mikroprozessor, mit dem ein Eingangssignal-Schaltkreis und ein Ausgangssignal-Schaltkreis verbunden sind, einen nicht-flüchtigen Programmspeicher, einen flüchtigen RAM-Speicher und einen nicht-flüchtigen Datenspeicher enthält, der mit dem Mikroprozessor, einem Eingabe/Ausgabe-Steuerprogramm, das an den nicht-flüchtigen Programmspeicher übertragen wird und darin geschrieben ist, und in dem nicht-flüchtigen Datenspeicher gespeicherten Werten von Steuerkonstanten zusammenarbeitet, und welches ein Steuerausgangssignal an den Ausgangssignal-Schaltkreis in Ansprechen auf den Signalzustand des Eingangssignal-Schaltkreises überträgt, ein Flash-Speicher als der nicht-flüchtige Datenspeicher genutzt wird, der eine Vielzahl von Aufteilungsblöcken hat, von denen jeder separat und kollektiv gelöscht werden kann.
  • Bis heute gab es ein Steuergerät, das anstelle eines Flash-Speichers einen EEPROM-Speicher nutzt, der fähig ist zum Durchführen eines elektrischen Lesens in Schritten von einem Byte (8 Bits); obwohl dieses ermöglicht, dass ein kostengünstiger Speicher mit großer Kapazität erhalten wird, hat ein Flash-Speicher jedoch ein Problem darin, dass es erforderlich ist, ihn in Schritten eines Blocks, der aus einer großen Anzahl von Bytes besteht, vor einem Schreiben und Umschreiben von Daten kollektiv zu löschen, und dass die Häufigkeit bzw. Anzahl einer Kollektivlöschung aufgrund seiner Lebensdauer begrenzt ist.
  • Beispielsweise wird gemäß der offen gelegten japanischen Patentanmeldung Nr. 2006-072461 (4, Ansprüche 2 und 3) ”Fahrzeugsteuergerät” der erste Block eines nicht-flüchtigen Flash-Speichers als ein Programmspeicher genutzt, und werden der zweite und der dritte Block als Datenspeicher genutzt; zu behandelnde Steuerkonstanten sind wie folgt klassifiziert:
    Als Erstes ist eine Steuergerät-eigene Information eine Korrekturwertinformation zum Korrigieren von Variationen, durch Komponenten verursacht, in der Ausgangsspannungsgenauigkeit einer Konstantspannungs-Energieversorgungsvorrichtung, die in einem Fahrzeugsteuergerät aufgenommen ist, der Umwandlungsgenauigkeit eines A/D-Wandlers und dergleichen; die Steuergerät-eigene Information ist eine halbfeste Steuerkonstante, die sich in Abhängigkeit von einem Produkt ändert, sich aber nicht mehr ändert, nachdem sie als ein Anfangsmesswert gespeichert worden ist.
  • Als Nächstes ist eine Fahrzeug-eigene Information eine Umgebungsinformation, so wie eine Fahrzeugmodellinformation zum selektiven Bestimmen einer Steuerungsspezifizierung für das Fahrzeug, in dem das Fahrzeugsteuergerät befestigt ist, oder eine Charakteristikgenauigkeitsinformation über einen Fahrzeugsensor, der extern mit dem Fahrzeugsteuergerät verbunden ist; die Fahrzeug-eigene Information ist eine Steuerkonstante, die sich in Abhängigkeit von einem Fahrzeug ändert, an dem das Fahrzeugsteuergerät befestigt ist, die sich aber nicht mehr ändert, bis eine extern angeschlossene Komponente ersetzt wird, nachdem sie als ein Anfangswert oder ein Anfangsmesswert gespeichert worden ist; die Fahrzeug-eigene Information wird als eine variable Steuerkonstante oder eine halbfeste Steuerkonstante behandelt.
  • Darüber hinaus ist eine Lernspeicherungsinformation eine variable Information, so wie eine Fahrsteuerinformation, die als ein Ergebnis einer Messung der Fahrcharakteristika eines Fahrzeugs erhalten ist, oder eine Charakteristikaverschlechterungsinformation über einen Fahrzeugsensor oder eine elektrische Last; die Lernspeicherungsinformation ist eine variable Steuerkonstante, die sich innerhalb einer vorbestimmten Spanne ändern kann, nachdem sie als ein Anfangswert gespeichert wird, wenn das Fahren gestartet wird. Eine Abnormalitätsauftritts-Verlaufsinformation ist/sind kategorisierte Daten über die Häufigkeit bzw. Anzahl eines Abnormalitätsauftritts, erhalten durch Aufaddieren von Informationselementen über vielfältige Arten von Abnormalitäten, die auftreten, während ein Fahrzeug gefahren wird, gemäß Abnormalitätsauftrittskategorien; die Abnormalitätsauftritts-Verlaufsinformation wird als eine Art einer variablen Steuerkonstante behandelt.
  • Referenzdaten sind Anfangswertdaten, die ein zulässigerer oberer Grenzwert, ein zulässiger untere Grenzwert und ein Anfangseinstellungswert für die halbfeste Steuerkonstante oder die variable Steuerkonstante werden; die Referenzdaten werden als feste Steuerkonstanten behandelt. Außerdem ist eine Programm-eigene Information eine feste Steuerkonstante, die eine feste Entwurfskonstante wird, die gemäß einem Eingabe/Ausgabe-Steuerprogramm bestimmt ist.
  • In dem ersten Block sind ein Eingabe/Ausgabe-Steuerprogramm und feste Steuerkonstanten von einem externen Hilfsmittel bzw. Tool gespeichert, und nach einem Justierungsverfahren des Fahrzeugsteuergerätes zum Verschiffen bzw. Verladen werden halbfeste Steuerkonstanten zusätzlich gespeichert.
  • In einem der zweiten und dritten Blöcke werden nur variable Steuerkonstanten gespeichert; wenn die Häufigkeit bzw. Anzahl eines sequentiellen Schreibens in dem einen der zweiten und dritten Blöcke einen vorbestimmten Wert erreicht, d. h. wenn dieser Block voll mit variablen Konstanten ist, werden variable Konstanten zusätzlich in einer sequentiellen Weise in den anderen Block geschrieben, nachdem sämtliche der Daten, die in den anderen Block geschrieben worden sind, gelöscht sind. Durch Schreiben, in dem ersten Block, fester Steuerkonstanten und halbfester Steuerkonstanten, deren Schreibhäufigkeit klein ist, um die Datenmenge zu reduzieren, die in die zweiten und dritten Blöcke geschrieben wird, können demgemäß variable Steuerkonstanten zusätzlich so oft wie möglich geschrieben werden.
  • In der offen gelegten japanischen Patentanmeldung Nr. 2006-072461 (4, Ansprüche 2 und 3) entsprechen in den ersten Block zu schreibende feste und halbfeste Steuerkonstanten ersten und zweiten Konstanten in der später beschriebenen vorliegenden Erfindung, und alternativ bzw. wechselweise in die zweiten und dritten Blöcke zu schreibende variable Steuerkonstanten entsprechen dritten Konstanten in der vorliegenden Erfindung.
  • Darüber hinaus offenbart die offen gelegte japanische Patentanmeldung Nr. 2002-007221 (1, Zusammenfassung, Absatz [0014]) ”Verfahren zum Erhöhen der Schreibhäufigkeit in einen Flash-Speicher” ein Steuergerät, in dem ein Datenspeicherungsbereich in Sektoren (eine minimale Einheit, die fähig ist, gelöscht zu werden, und einem Block in der vorliegenden Erfindung entspricht) aufgeteilt ist; jeder Sektor hat einen Flash-Speicher, in dem Daten gelöscht werden können; ein interner Schaltkreis wird durch einen integrierten Mikroprozessor gesteuert; Steuerprogramme sind in die Sektoren A bis F des Flash-Speichers geschrieben; in dem Sektor G sind Stroke-Justierungsdaten geschrieben, die gesetzt werden, wenn die Produktion implementiert wird und die Umschreibhäufigkeit davon ist klein; und in dem Sektor H sind Nutzerjustierungsdaten geschrieben, deren Umschreibhäufigkeit groß ist.
  • Darüber hinaus offenbart die offen gelegte japanische Patentanmeldung Nr. 2002-007221 (1, Zusammenfassung, Absatz [0014]) ein Verfahren zum Erhöhen der gewährleisteten Häufigkeit eines Schreibens in einem Flash-Speicher; in dem vorhergehenden Verfahren wird der Sektor H zum Speichern von Nutzerjustierungsdaten, die beispielsweise gegeben sind, um den optimalen Betrieb des Steuergeräts bei Nutzung durch einen Nutzer anzuweisen, weiter in eine Vielzahl von Speicherungsblöcken (die jeweils eine Einheit zum Schreiben/Lesen sind und einem Abschnitt in der vorliegenden Erfindung entsprechen) aufgeteilt, deren Größen jeweils dieselben wie oder größer als die Datengröße der Nutzerjustierungsdaten sind; jedes Mal wenn die Nutzerjustierungsdaten aktualisiert werden, werden die Nutzerjustierungsdaten sequentiell in unbeschriebene Bereiche in Schritten des Speicherungsblocks geschrieben; in dem Fall, wo kein unbeschriebener Bereich in dem Sektor existiert, werden die gesamten Daten in dem die Nutzerjustierungsdaten speichernden Sektor kollektiv gelöscht, so dass ein Schreiben der Nutzerjustierungsdaten wieder möglich wird.
  • Gemäß dem vorhergehenden Verfahren sind ein Steuergerätprogramm und Gerätjustierungsdaten in demselben Flash-Speicher gespeichert; hinsichtlich der Justierungsdaten, deren Umschreibhäufigkeit groß ist, wird ein einzelner Sektor, der eine Aufteilungseinheit eines Flash-Speichers ist, weiter in eine Vielzahl von Speicherungsblöcken aufgeteilt; jedes Mal wenn die Justierungsdaten aktualisiert werden, werden neue Justierungsdaten in einem unbeschriebenen Speicherungsblock geschrieben; wenn Justierungsdaten in einem gesamten einzelnen Sektor geschrieben sind, werden letzte Justierungsdaten in einem RAM-Speicher behalten, und dann wird der Sektor kollektiv gelöscht, so dass Justierungsdaten neu in Schritten eines Speicherungsblocks geschrieben werden können. Deshalb ist kein EEPROM erforderlich, das bis heute genutzt worden ist, wodurch eine Kostenreduzierung, Reduzierung der Komponentenanzahl und ein Hochgeschwindigkeits-Datenlesen durchgeführt werden kann, und es wird möglich gemacht, die sichergestellte Schreibhäufigkeit wesentlich und überaus zu erhöhen; daher kann das Verfahren angeblich ein Steuergerät hoher Zuverlässigkeit bereitstellen.
  • In der offen gelegten japanischen Patentanmeldung Nr. 2002-007221 (1, Zusammenfassung, Absatz [0014]) entsprechen in dem Sektor G zu schreibende Schrittjustierungsdaten (step adjustment data) einer ersten Konstanten in der später beschriebenen vorliegenden Erfindung und entsprechen in dem Sektor H zu schreibende Nutzerjustierungsdaten einer zweiten Konstante in der vorliegenden Erfindung.
  • (1) Erläuterung der Probleme des Standes der Technik
  • Weil ein ”Fahrzeugsteuergerät” gemäß der offen gelegten japanischen Patentanmeldung Nr. 2006-072461 (4, Ansprüche 2 und 3) derart ausgestaltet ist, dass feste Steuerkonstanten und halbfeste Steuerkonstanten in einen ersten Block geschrieben sind, in dem ein Eingabe/Ausgabe-Steuerprogramm geschrieben ist, kann die Datenmenge in zweiten und dritten Blöcken reduziert werden; jedoch gab es ein Problem darin, dass beispielsweise bei einer Werkstatt, bei der die Wartung und Inspektion durchgeführt wird, es schwierig wird, nur das Eingabe/Ausgabe-Steuerprogramm zu ändern, wobei halbfeste Steuerkonstanten unverändert bleiben, oder kollektiv nur halbfeste Steuerkonstanten zu ändern, wobei das Eingabe/Ausgabe-Steuerprogramm unverändert bleibt.
  • Darüber hinaus wird in einem ”Verfahren zum Erhöhen der sichergestellten Schreibanzahl in einem Flash-Speicher” gemäß der offen gelegten japanischen Patentanmeldung Nr. 2002-007221 (1, Zusammenfassung, Absatz [0014]) ein Schreiben in einem Sektor durchgeführt, der eine Kollektivlöschungseinheit ist, und dessen Steuerprogrammbereich, Stroke-Justierungsdaten-Bereich und Nutzerjustierungsdaten-Bereich voneinander unterschiedlich sind. Deshalb kann ein separates Umschreiben leicht durchgeführt werden; jedoch gab es ein Problem darin, dass in dem Fall, dass kein unbeschriebener Bereich in dem Sektor existiert und ein Stromausfall zu einem Zeitpunkt auftritt, wenn die gesamten Daten in dem Sektor kollektiv gelöscht sind, vorherige Daten verloren sind. Außerdem ist es erforderlich, einen Sektor G bereitzustellen, der Stroke-Justierungsdaten gewidmet ist, wo eine kleine Datenmenge gespeichert wird; deshalb gab es ein Problem, dass die Nutzungseffizienz eines Speichers verschlechtert wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • (2) Erläuterung der Aufgabe der vorliegenden Erfindung
  • Die vorliegende Erfindung ist implementiert worden, um die vorhergehenden Probleme in einer konventionellen Vorrichtung zu lösen; die Aufgabe davon ist die Bereitstellung eines Steuergerätes, das die Nutzungseffizienz eines nicht-flüchtigen Datenspeichers erhöhen kann, der ein Flash-Speicher ist, und das die Häufigkeit bzw. Anzahl einer Kollektivlöschung reduzieren kann, um eine Soll-Lebensdauer sicherzustellen.
  • Ein Steuergerät gemäß der vorliegenden Erfindung ist versehen mit einem Mikroprozessor, mit dem ein Eingangssignal-Schaltkreis und ein Ausgangssignal-Schaltkreis verbunden sind, einem nicht-flüchtigen Programmspeicher, der zusammenarbeitet mit dem Mikroprozessor, einem flüchtigen RAM-Speicher und einem nicht-flüchtigen Datenspeicher, und überträgt ein Steuerausgangssignal an den Ausgangssignal-Schaltkreis, in Ansprechen auf ein in den nicht-flüchtigen Programmspeicher geschriebenes Eingabe/Ausgabe-Steuerprogramm, Werte von Steuerkonstanten, die in dem nicht-flüchtigen Datenspeicher gespeichert sind, und einen Signalzustand des Eingangssignal-Schaltkreises. Das Steuergerät ist dadurch gekennzeichnet, dass der nicht-flüchtige Datenspeicher aus einem nicht-flüchtigen Speicher mit einer Vielzahl von Aufteilungsblöcken gebildet ist, von denen jeder separat und kollektiv gelöscht werden kann; jeder der Aufteilungsblöcke in eine Vielzahl von Datenspeicherungsbereichen aufgeteilt ist, deren Schreibfrequenzen und Schreib-Timings bzw. Schreibsteuerzeiten voneinander unterschiedlich sind; jeder der Datenspeicherungsbereiche mit einer Vielzahl von Abschnitten ausgestaltet ist, von denen jeder eine Lese/Schreibeinheit ist; eine Vielzahl separater Datenstücke bzw. Datenteile in einer vorbestimmten Reihenfolge in jedem der Abschnitte geschrieben wird; und eine Datenkapazität jedes Abschnitts mit der Anzahl von Bits entsprechend der Anzahl separater Datenstücke übereinstimmt, die in diesen Abschnitt geschrieben sind, dadurch dass, nachdem der betrachtete Aufteilungsblock kollektiv gelöscht ist, neue Datenstücke sequentiell in der Vielzahl von Abschnitten in Schritten eines Abschnitts gespeichert werden; wenn ein Datenspeicherungsbereich des betrachteten Aufteilungsblocks mit Daten aufgefüllt ist und kein Leerabschnitt existiert, wo keine Daten geschrieben sind, neue Daten in einen Kopfabschnitt in dem entsprechenden Datenspeicherungsbereich eines anderen Aufteilungsblocks geschrieben werden, der vorbereitend und kollektiv gelöscht worden ist; und letzte Daten, die in einen anderen Datenspeicherungsbereich des ursprünglichen Aufteilungsblocks geschrieben worden sind, an einen Kopfabschnitt in einem entsprechenden Datenspeicherungsbereich des neuen Aufteilungsblocks übertragen und darin gespeichert werden, dadurch dass, wenigstens nachdem die letzten Daten an den neuen Aufteilungsblock übertragen und darin gespeichert worden sind, Daten in dem ursprünglichen Aufteilungsblock kollektiv gelöscht werden; und die Anzahl an den Datenspeicherungsbereich zugeteilter Abschnitte in Proportion zu einer Schreibfrequenz ist.
  • In einem Steuergerät gemäß der vorliegenden Erfindung wird als ein nicht-flüchtiger Datenspeicher, der mit einem Mikroprozessor zusammenarbeitet, eine nicht-flüchtiger Speicher mit einer Vielzahl von Aufteilungsblöcken genutzt, von denen jeder separat und kollektiv gelöscht werden kann; jeder der Aufteilungsblöcke ist in eine Vielzahl von Datenspeicherungsbereichen aufgeteilt; die Anzahl an den Datenspeicherungsbereich zugeteilter Abschnitte ist in Proportion zu der Schreibfrequenz. Als ein Ergebnis können halbfeste Steuerkonstanten, die in demselben Block geschrieben worden sind, wie ein Eingabe/Ausgabe-Programm geschrieben ist, in einem der Datenspeicherungsbereiche des nicht-flüchtigen Datenspeichers gespeichert werden; deshalb wird es ermöglicht, dass, wobei die halbfesten Steuerkonstanten unverändert bleiben, nur das Eingabe/Ausgabe-Programm aktualisiert wird, oder dass, wobei das Eingabe/Ausgabe-Steuerprogramm unverändert bleibt, nur die halbfesten Steuerkonstanten kollektiv aktualisiert werden.
  • Wenn ein kleiner Wert für die Anzahl der Abschnitte in dem Datenspeicherungsbereich festgelegt ist, wo eine halbfeste Steuerkonstante, deren Schreibfrequenz gering ist, gespeichert wird, wodurch kein leerer Abschnitt bzw. Leerabschnitt in einem gegebenen Datenspeicherungsbereich übrig bleibt, und ein Übergang zu einem neuen Aufteilungsblock getätigt wird, verbleibt darüber hinaus eine kleine Anzahl von Leerabschnitten in anderen Datenspeicherungsbereichen; deshalb wird die Anzahl von Leerabschnitten reduziert, auf die eine unnötige Kollektivlöschung angewendet wird. Als ein Ergebnis zeigt sich der Effekt, dass die Häufigkeit einer Kollektivlöschung eines Flash-Speichers insgesamt reduziert wird, und die Lebenszeit des Flash-Speichers verlängert werden kann.
  • Darüber hinaus wird, nachdem unter der Vielzahl von Aufteilungsblöcken eine Übertragung und ein Bewahren letzter Daten durchgeführt wird, ein ursprünglicher Aufteilungsblock kollektiv gelöscht; deshalb zeigt sich ein Effekt, dass selbst in dem Fall, dass ein Stromausfall während der Übertragungsverarbeitung auftritt, keine Daten verloren gehen.
  • Die vorhergehenden und andere Aufgaben, Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung der vorliegenden Erfindung im Zusammenhang mit den begleitenden Zeichnungen besser ersichtlich werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm, das die Gesamtausgestaltung eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung veranschaulicht.
  • 2 ist ein Abschnittsausgestaltungsdiagramm eines nicht-flüchtigen Datenspeichers in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung.
  • 3A, 3B und 3C sind eine Menge von erläuternden Diagrammen für eine Lösch/Schreibverarbeitung in einem nicht-flüchtigen Datenspeicher in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung.
  • 4A und 4B sind eine Menge erläuternder Diagramme für eine Such/Leseverarbeitung eines nicht-flüchtigen Datenspeichers in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung.
  • 5A und 5B sind eine Menge erläuternder Diagramme für eine Abnormalitätsverarbeitung eines nicht-flüchtigen Datenspeichers in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung.
  • 6 ist ein Flussdiagramm, das die Gesamtoperation eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt.
  • 7 ist ein Gesamtflussdiagramm, das die Datenschreibverarbeitung eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt.
  • 8 ist ein Flussdiagramm, das eine Initialisierungsverarbeitung eines nicht-flüchtigen Datenspeichers in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt.
  • 9 ist ein Flussdiagramm, das eine Schreibverarbeitung eines nicht-flüchtigen Datenspeichers in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt.
  • 10 ist ein Flussdiagramm, das die Gesamtblock-Löschverarbeitung eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung zeigt.
  • 11A und 11B sind eine Menge von Flussdiagrammen, die eine Übergangsverarbeitung eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung darstellen.
  • 12 ist ein Gesamtflussdiagramm, das eine Datenleseverarbeitung eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt.
  • 13 ist ein Flussdiagramm, das die Letzte-Daten-Suchverarbeitung eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt.
  • 14 ist ein Flussdiagramm, das die Letzter-Block-Suchverarbeitung eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt.
  • 15 ist ein Flussdiagramm, das die Letzter-Abschnitt-Suchverarbeitung eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt.
  • 16 ist ein Blockdiagramm, das die Gesamtausgestaltung eines Steuergerätes gemäß Ausführungsform 2 der vorliegenden Erfindung veranschaulicht.
  • 17 ist ein Abschnittsausgestaltungsdiagramm eines nicht-flüchtigen Datenspeichers in einem Steuergerät gemäß Ausführungsform 2 der vorliegenden Erfindung.
  • KURZE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Ausführungsform 1
  • (1) Detaillierte Beschreibung der Ausgestaltung
  • Es wird die Ausgestaltung eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung erläutert werden, auf Grundlage von 1, die ein Blockdiagramm ist, das die Gesamtausgestaltung des Steuergerätes zeigt, und von 2, die ein Abschnittsausgestaltungsdiagramm eines nicht-flüchtigen Datenspeichers ist.
  • In 1 ist ein Steuergerät 100A hauptsächlich mit einem Mikroprozessor 110A, einem nicht-flüchtigen Programmspeicher 111A, einem flüchtigen RAM-Speicher 112A und einem nicht-flüchtigen Datenspeicher 113A ausgestaltet, der ein Flash-Speicher ist; in der Praxis bildet das Steuergerät 100A ein Fahrzeugsteuergerät, so wie ein Motorsteuergerät; eine externe Energiequelle 101A, die eine Fahrzeugbatterie ist, liefert elektrische Energie an das Steuergerät 100A über ein Energieversorgungsrelais 102. Wenn ein nicht-veranschaulichter Leistungsschalter bzw. Netzschalter angeschaltet wird, schließt das Energieversorgungsrelais 102 sofort, und wenn der Leistungsschalter abgeschaltet wird, öffnet das Energieversorgungsrelais 102 nach einer vorbestimmten, verzögerten Energieversorgungsdauer.
  • Ein Eingangssignal-Schaltkreis 103 ist ein Offen/Geschlossen-Sensor oder ein Analogsensor, der mit dem Steuergerät 100A über einen nicht-veranschaulichten Verbinder verbunden ist; der Eingangssignal-Schaltkreis 103 ist mit dem Mikroprozessor 110A über einen nicht-veranschaulichten Eingangsschnittstellen-Schaltkreis und einen Eingangssignalbus 130 verbunden. Ein Ausgangssignal-Schaltkreis 104 ist eine elektrische Last, so wie ein Antriebsapparat oder eine Anzeigevorrichtung, mit dem Steuergerät 100A über einen nicht-veranschaulichten Verbinder verbunden; der Ausgangssignal-Schaltkreis 104 ist mit dem Mikroprozessor 110A über einen nicht-veranschaulichten Ausgangsschnittstellen-Schaltkreis und einen Ausgangssignalbus 140 verbunden.
  • Ein erstes Hilfsmittel bzw. Tool 105A ist mit dem Mikroprozessor 110A über einen seriellen Signalbus 150 verbunden, wenn eine Verladungsjustierung/Inspektion oder Wartung/Inspektion auf das Steuergerät 100A angewendet wird; das erste Hilfsmittel 105A ist aus einer mobilen Vorrichtung mit einer nicht-veranschaulichten Tastatur und einer nicht-veranschaulichten Anzeigevorrichtung gebildet. Ein zweites Hilfsmittel bzw. Tool 106A ist in Reihe mit dem Steuergerät 100A derart geschaltet, um das erste Hilfsmittel 105A zu ersetzen; das zweite Hilfsmittel 106A ist als ein Verladungsjustierungshilfsmittel hergerichtet, wenn der Hersteller eines integrierten Produktes, so wie eines Fahrzeugs, in dem das Steuergerät 100A integriert ist, eine Verladungsjustierung auf das integrierte Produkt anwendet, oder das zweite Hilfsmittel 106A wird genutzt, wenn die Ausrüstungsverwaltungsabteilung eines Benutzers, der das Steuergerät 100A nutzt, eine Installationsjustierung auf die Ausrüstung anwendet; das zweite Hilfsmittel 106A ist aus einer mobilen Vorrichtung mit einer nicht-veranschaulichten Tastatur und einer nicht-veranschaulichten Anzeigevorrichtung gebildet. Außerdem sind die Ausrüstungsverwaltungsabteilung und der Hersteller eines integrierten Produktes in derselben Kategorie; deshalb wird in den hier nachfolgenden Erläuterungen auf die Ausrüstungsverwaltungsabteilung (Equipment Management Department) und den Hersteller als ein ”Hersteller eines integrierten Produktes” verwiesen werden.
  • Die Ausgestaltung des zweiten Hilfsmittels 106A ist dieselbe wie die des ersten Hilfsmittels 105A; beispielsweise werden sie von dem Hersteller des Steuergerätes 100A bereitgestellt und derart genutzt, um lediglich die Funktionen zu teilen. Ein Eingabe/Ausgabe-Steuerprogramm 107A, das in dem Steuergerät 100A genutzt wird, ist in dem ersten Hilfsmittel 105A gespeichert; der Mikroprozessor 110A überträgt das Eingabe/Ausgabe-Steuerprogramm 107A an den nicht-flüchtigen Programmspeicher 111A mittels eines in einem Masken-ROM-Speicher 111a gespeicherten Boot-Programms.
  • Das Eingabe/Ausgabe-Steuerprogramm 107A enthält ein Kommunikationsverarbeitungsprogramm für das erste Hilfsmittel 105A und das zweite Hilfsmittel 106A. Das Eingabe/Ausgabe-Steuerprogramm 107A enthält feste Konstanten, die für das Eingabe/Ausgabe-Steuerprogramm 107A konstant sind, und Referenzkonstanten 107a mit Bezug zu einer ersten Konstante 108a, einer zweiten Konstante 108b und einer dritten Konstante 108c, die später beschrieben werden, die in dem nicht-flüchtigen Datenspeicher 112A gespeichert sind.
  • Die Referenzkonstanten 107a sind Oberer/Unterer-Grenzwert-Daten, welche eine zulässige Variationsspanne mit Bezug zu einem Teil von variablen Informationselementen in der ersten Konstante 108a, der zweiten Konstante 108b und der dritten Konstante 108c oder einem Teil von Fahrcharakteristika-Lerninformationselementen darstellen, und Anfangswert-Einstellungsdaten, die auf unspezifizierte Konstanten in der ersten Konstante 108a, der zweiten Konstante 108b und der dritten Konstante 108c angewendet sind; wenigstens bevor das Steuergerät 100A anfangs betrieben wird, werden die Anfangswert-Einstellungsdaten an die jeweiligen Kopfabschnitte eines ersten Konstantenbereichs S10, eines zweiten Konstantenbereichs S20 und eines dritten Konstantenbereichs S300 in einem von einem ersten Aufteilungsblock 113a, einem zweiten Aufteilungsblock 113b, einem dritten Aufteilungsblock 113c und einem vierten Aufteilungsblock 113d übertragen und darin gespeichert.
  • Das erste Hilfsmittel 105A enthält ferner die erste Konstante 108a, die an den nicht-flüchtigen Datenspeicher 113A übertragen wird; die erste Konstante 108a enthält eine Steuerkonstante entsprechend der Modellklassifizierung des Steuergerätes 100A selbst, eine Auswahlnummerninformation, die Teil des Eingabe/Ausgabe-Steuerprogramms 107A ist, eine Korrekturkonstante zum Korrigieren von Variationen in Charakteristika einer Komponente in dem Steuergerät 100A, und Steuergerät-eigene Informationselemente, so wie die Produktionsnummer des Steuergerätes. Das Eingabe/Ausgabe-Steuerprogramm 107A enthält vielfältige Arten von Teilprogrammen und Konstantentabellen mit der Annahme vielfältiger Arten von Steuerspezifizierungen; die Funktion der Auswahlnummerninformation ist es, zu bestimmen, welche(s) Teilprogramm und Konstantentabelle gemäß einer tatsächlichen Steuerspezifizierung selektiv genutzt werden.
  • Die erste Konstante 108a wird von dem ersten Hilfsmittel 105A an den nicht-flüchtigen Datenspeicher 113A oder den flüchtigen RAM-Speicher 112A transferiert, wenn eine in dem ersten Hilfsmittel 105A bereitgestellte Übertragungsoperationstaste gedrückt wird; die erste Konstante 108a wird von dem RAM-Speicher 112A an den nicht-flüchtigen Datenspeicher 113A zu dem Timing bzw. Zeitverhältnis transferiert, wenn der Leistungsschalter für das Steuergerät 100A geöffnet wird und eine verzögerte Energieversorgung durch das Energieversorgungsrelais 102 durchgeführt wird.
  • Das zweite Hilfsmittel 106A enthält ferner die zweite Konstante 108b, die an den nicht-flüchtigen Datenspeicher 113A übertragen wird; die zweite Konstante 108b enthält eine Steuerkonstante entsprechend dem Modellnamen/Modell eines integrierten Produktes/Ausrüstung, worin das Steuergerät 100A integriert ist, eine Auswahlnummerninformation, die Teil des Eingabe/Ausgabe-Steuerprogramms 107A ist, und eine dem integrierten Produkt eigene Information, so wie eine Korrekturkonstante zum Korrigieren von Variationen in Charakteristika einer mit dem Steuergerät 100A verbundenen Eingabe/Ausgabe-Komponente.
  • Das Übertragungs-Timing der zweiten Konstante 108b ist dasselbe wie das der ersten Konstante 108a; die zweite Konstante 108b wird von dem zweiten Hilfsmittel 106A an den nicht-flüchtigen Datenspeicher 113A oder an den flüchtigen RAM-Speicher 112A transferiert, wenn eine in dem zweiten Hilfsmittel 106A bereitgestellte Übertragungsoperationstaste gedrückt wird; die zweite Konstante 108b wird von dem RAM-Speicher 112A an den nicht-flüchtigen Datenspeicher 113A zu dem Timing transferiert, wenn der Leistungsschalter für das Steuergerät 100A geöffnet wird und eine verzögerte Energieversorgung durch das Energieversorgungsrelais 102 durchgeführt wird.
  • Der Mikroprozessor 110A, der eine Ansteueroperation bzw. Fahroperation durch das in dem nicht-flüchtigen Programmspeicher 111A gespeicherte Eingabe/Ausgabe-Steuerprogramm 107A durchführt, erschafft die dritte Konstante 108c, so wie eine Charakteristika-Änderungsinformation über in dem Steuergerät 100A aufgenommene Komponenten oder Externe-Verbindung-Komponenten bzw. Komponenten einer externen Verbindung, eine Lerninformation zum Erhalten verbesserter Fahrcharakteristika oder eine Abnormalitätsauftritts-Verlaufsinformation, und speichert sie in dem RAM-Speicher 112A. Der nicht-flüchtige Datenspeicher 113A ist ein Flash-Speicher, in dem eine Kollektivlöschung in Schritten eines Blocks durchgeführt wird, und enthält den ersten Aufteilungsblock 113a, den zweiten Aufteilungsblock 113b, den dritten Aufteilungsblock 113c und den vierten Aufteilungsblock 113d.
  • In 2, die die jeweiligen Ausgestaltungen der Aufteilungsblöcke 113a bis 113d darstellt, haben die ersten bis vierten Aufteilungsblöcke 113a bis 113d jeweils dieselbe Ausgestaltung und sind jeweils mit einem Prüfbereich S0, dem ersten Konstantenbereich S10 als ein Datenspeicherungsbereich, dem zweiten Konstantenbereich S20 und dem dritten Konstantenbereich S300 versehen. Der Prüfbereich S0 ist mit einem Abschnitt S1 mit einer Datenkapazität C0 von beispielsweise 16 Bytes und einem Reserveabschnitt S2 ausgestaltet, der anstelle des Abschnitts S1 in dem Fall genutzt wird, dass der Abschnitt S1 abnormal ist.
  • Der erste Konstantenbereich S10 ist mit zwei Abschnitten S11 und S12 ausgestaltet, die jeweils eine Datenkapazität C10 von beispielsweise 32 Bytes haben; demgemäß ist die Anzahl N10 von Abschnitten 2, und die Gesamtdatenkapazität ist 64 Bytes (C10 × N10 = 32 × 2 = 64).
  • Der zweite Konstantenbereich S20 ist mit vier Abschnitten S21, S22, S23 und S24 ausgestaltet, die jeweils eine Datenkapazität C20 von beispielsweise 96 Bytes haben; demgemäß ist die Anzahl S20 von Abschnitten 4, und die Gesamtdatenkapazität ist 384 Bytes (C20 × N20 = 96 × 4 = 384).
  • Der dritte Konstantenbereich S300 ist mit zwanzig Abschnitten S301, S302, S303, --- S320 ausgestaltet, die jeweils eine Datenkapazität C300 von beispielsweise 384 Bytes haben; demgemäß ist die Anzahl N300 von Abschnitten 20, und die Gesamtdatenkapazität ist 7680 Bytes (C300 × N300 = 384 × 20 = 7680).
  • Jeder der Abschnitte ist eine minimale Einheit bzw. Minimumeinheit zum Schreiben/Lesen; eine Vielzahl separater Datenstücke bzw. Datenteile wird in einer vorbestimmten Reihenfolge in jedem der Abschnitte geschrieben; die jeweiligen Werte der Datenkapazitäten C10, C20 und C300 sind die Anzahl von Bytes, entsprechend der Anzahl separater Datenstücke, die in einem einzelnen Abschnitt geschrieben sind. Außerdem sind in jeden der Abschnitte Summendaten zum Erfassen eines Codefehlers oder Fehlerkorrekturcode-Daten zusätzlich zu einer Vielzahl separater Datenstücke geschrieben.
  • In Ausführungsform 1 ist in jedem der Aufteilungsblöcke 113a bis 113d das Verhältnis der Gesamtdatenkapazität B (= N0 × C0 + N10 × C10 + N20 × C20 = 16 × 2 + 32 × 2 + 96 × 4 = 480), die das Multiplikationsprodukt der jeweiligen Anzahlen von Abschnitten von Neben-Datenspeicherungsbereichen bzw. kleineren Datenspeicherungsbereichen S0, S10 und S20 und den entsprechenden Datenkapazitäten ist, zu der Summe der Gesamtdatenkapazität B und der Gesamtdatenkapazität A (= N300 × C300 = 20 × 384 = 7680) des Haupt-Datenspeicherungsbereiches bzw. größeren Datenspeicherungsbereiches S300, in dem das Multiplikationsprodukt der Anzahl von Abschnitten (N10, N20, N300) und der Datenkapazität (C10, C20, C300) maximal wird, d. h. das Verhältnis [B/(A + B)] (= 480/(7680 + 480) = 0,06), ist kleiner als der Kehrwert der Anzahl N (= 4) der Aufteilungsblöcke.
  • In 1 empfängt wiederum ein Lösch/Schreib-Steuerschaltkreis 114 vielfältige Arten von Befehlssignalen COMn von dem Mikroprozessor 110A, steuert den nicht-flüchtigen Datenspeicher 113A, und sendet von dem nicht-flüchtigen Datenspeicher 113A erhaltene Antwortsignale ANSn an den Mikroprozessor 110A. Ein Befehlssignal COM1 unter den Befehlssignalen ist ein Kollektivlöschungsbefehl; die Nummer eines kollektiv zu löschenden Blocks wird an den Lösch/Schreib-Steuerschaltkreis 114 mittels eines Adresssignals ADR eingegeben. Der Lösch/Schreib-Steuerschaltkreis 114 speichert eine spezifische Blocknummer und löscht den spezifizierten Block in dem nicht-flüchtigen Datenspeicher 113A kollektiv, und der Lösch/Schreib-Steuerschaltkreis 114 erzeugt nach der Vollendung der Löschung ein Antwortsignal ANS1, das die Vollendung der Löschung angibt.
  • Ein Befehlssignal COM2 ist ein Löschungssicherstellungsbefehl (Leerprüfung); die Nummern eines Blocks und eines Abschnitts, für welche eine Sicherstellung bzw. Vergewisserung einer Löschung durchgeführt wird, werden an den Lösch/Schreib-Steuerschaltkreis 114 mittels des Adresssignals ADR eingegeben. Der Lösch/Schreib-Steuerschaltkreis 114 speichert eine spezifizierte Blocknummer und eine spezifizierte Abschnittsnummer und vergewissert sich bzw. stellt sicher, ob oder nicht der spezifizierte Abschnitt in dem spezifizierten Block des nicht-flüchtigen Datenspeichers 113A gelöscht worden ist; nach der Vollendung der Vergewisserung erzeugt der Lösch/Schreib-Steuerschaltkreis 114 ein Antwortsignal ANS2, das dem Ergebnis der Vergewisserung entspricht.
  • Ein Befehlssignal COM3 ist ein Schreibbefehl; die Nummern eines Blocks und eines Abschnitts, in welchen ein Schreiben durchgeführt wird, werden an den Lösch/Schreib-Steuerschaltkreis 114 mittels des Adresssignals ADR eingegeben. Der Lösch/Schreib-Steuerschaltkreis 114 speichert eine spezifizierte Blocknummer und eine spezifizierte Abschnittsnummer und schreibt Schreibdaten WRD in dem spezifizierten Abschnitt in dem spezifizierten Block des nicht-flüchtigen Datenspeichers 113A; nach der Vollendung des Schreibens erzeugt der Lösch/Schreib-Steuerschaltkreis 114 ein Antwortsignal ANS3, das die Vollendung des Schreibens angibt.
  • Ein Befehlssignal COM4 ist ein Lesebefehl; die Nummern eines Blocks und eines Abschnitts, in welchen ein Lesen durchgeführt wird, werden an den Lösch/Schreib-Steuerschaltkreis 114 mittels des Adresssignals ADR eingegeben. Der Lösch/Schreib-Steuerschaltkreis 114 speichert eine spezifizierte Blocknummer und eine spezifizierte Abschnittnummer und liest Lesedaten RDD in dem spezifizierten Abschnitt in dem spezifizierten Block des nicht-flüchtigen Datenspeichers 113A; nach der Vollendung des Lesens erzeugt der Lösch/Schreib-Steuerschaltkreis 114 ein Antwortsignal ANS4, das die Vollendung des Lesens angibt.
  • Empfangen und Übertragen der Schreibdaten WRD und der Lesedaten RDD werden zwischen dem RAM-Speicher 112A und dem Lösch/Schreib-Steuerschaltkreis 114 über eine nicht-veranschaulichte Direktspeicherzugriff-Steuereinheit durchgeführt.
  • Der RAM-Speicher 112A ist mit einem Abbildspeicherbereich bzw. Image-Speicherbereich 108 versehen; der Abbildspeicher 108 wird als ein Weitergabespeicher genutzt, wenn die erste Konstante 108a von dem ersten Hilfsmittel 105A an den nicht-flüchtigen Datenspeicher 113A übertragen wird, oder als ein Weitergabespeicher, wenn die zweite Konstante 108b von dem zweiten Hilfsmittel 106A an den nicht-flüchtigen Datenspeicher 113A übertragen wird; die dritte Konstante 108c, die während der Operation des Mikroprozessors 110A erzeugt wird, wird in dem Abbildspeicher 108 gespeichert.
  • Der RAM-Speicher 112A enthält einen Statusspeicher 112a, in dem Daten geschrieben sind, die dem Löschzustand/Schreibzustand des nicht-flüchtigen Datenspeichers 113A entsprechen; in dem Statusspeicher 112a sind wenigstens eine Identifizierungsnummerninformation für den letzten Aufteilungsblock, unter den Aufteilungsblöcken 113a bis 113d, in dem ein Schreiben aktuell durchgeführt wird, und eine Abschnittsnummerninformation für den Abschnitt, unter den Abschnitten von jedem der Datenspeicherungsbereiche S10, S20 und S300, in dem letzten Aufteilungsblock gespeichert, in dem letzte Daten geschrieben sind.
  • Als der Abbildspeicherbereich 108 und der Statusspeicher 112a kann ein in dem Lösch/Schreib-Steuerschaltkreis 114 bereitgestellter Pufferspeicher genutzt werden.
  • Der Energieversorgungsschaltkreis 109A wird mit elektrischer Energie von der externen Energiequelle 101A versorgt, welche beispielsweise eine Fahrzeugbatterie ist, über den Ausgangskontakt des Energieversorgungsrelais 102, der vorgespannt ist, wenn der Ansteuerleistungsschalter (driving power switch) geschlossen ist, und einen Ansteuerleistungsanschluss 102a; der Energieversorgungsschaltkreis 109A wird auch mit elektrischer Energie von der externen Energiequelle 101A als eine(r) externen Batterie über einen Hilfs-Energiequellenanschluss 101a versorgt, ohne die Zwischenschaltung des Ausgangskontakts des Energieversorgungsrelais 102.
  • Wenn das Energieversorgungsrelais 102 vorgespannt ist, erzeugt der Energieversorgungsschaltkreis 109A eine stabilisierte Steuerspannung Vcc von beispielsweise 5 V Gleichspannung und liefert die Steuerspannung Vcc an den Mikroprozessor 110A, den nicht-flüchtigen Programmspeicher 111A, den RAM-Speicher 112A und den nicht-flüchtigen Datenspeicher 113A. Wenn das Energieversorgungsrelais 102 nicht vorgespannt ist, erzeugt der Energieversorgungsschaltkreis 109A eine stabilisierte Haltespannung Vup von beispielsweise 3 V Gleichspannung und liefert die Haltespannung Vup als eine Backup-Energiequelle an den RAM-Speicher 112A.
  • In dem Fall, dass, während das Energieversorgungsrelais 102 nicht vorgespannt ist, die Spannung der Fahrzeugbatterie 101A, die als eine Hilfs-Energiequelle dient, abnormal abnimmt, oder der Hilfs-Energiequellenschaltkreis abgetrennt wird und die Speicherungsinhalte des RAM-Speichers 112A verloren gehen, in dem Fall, dass, während die Inhalte des Statusspeichers 112a abnormal sind, das Energieversorgungsrelais 102 vorgespannt ist und der Mikroprozessor 110A seinen Betrieb startet, oder in dem Fall, dass der Mikroprozessor 110A arbeitet, werden die Inhalte des letzten Abschnitts, die in dem dritten Datenspeicherungsbereich S300 des nicht-flüchtigen Datenspeichers 113A geschrieben sind, an den Abbildspeicherbereich 108 des RAM-Speichers 112A übertragen, und der Mikroprozessor 110A steuert Eingaben und Ausgaben auf Grundlage der in den Abbildspeicherbereich 108 geschriebenen dritten Konstante 108c.
  • Wenn der Mikroprozessor 110A seinen Betrieb startet, werden in der Praxis nicht nur die dritte Konstante 108c sondern auch die erste und zweite Konstante 108a und 108b von dem nicht-flüchtigen Datenspeicher 113A an den RAM-Speicher 112A übertragen und gelesen, so dass der Mikroprozessor 110A eine Steuerung mit Verweis auf den Abbildspeicherbereich 108 des RAM-Speichers 112A durchführt.
  • Abnormalitäten des Statusspeichers 112a enthalten den Fall, dass dort keine Identifizierungsnummerninformation über die letzten Aufteilungsblöcke 113a bis 113d gespeichert worden sind, in denen ein Schreiben aktuell durchgeführt wird, den Fall, dass dort die Abschnittsnummerninformation über den Abschnitt, in dem die letzten Daten geschrieben sind, der Datenspeicherungsbereiche S10, S20 und S300 in dem letzten Aufteilungsblock nicht gespeichert worden sind, und den Fall, dass aufgrund eines Codefehlers in dem RAM-Speicher 112A in der Gesamtheit dort ein Hinzukommen oder ein Verlust einer Bitinformation existiert.
  • Als Nächstes wird mit Verweis auf eine Lösch/Schreibverarbeitung in einem nicht-flüchtigen Datenspeicher in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung das Konzept des Verarbeitungsverfahrens erläutert werden. 3A, 3B und 3C sind jeweils eine erläuterndes Diagramm für die Lösch/Schreibverarbeitung in einem nicht-flüchtigen Datenspeicher in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung; 3A, 3B und 3C stellen in dieser Reihenfolge das Konzept der Schreibverarbeitung in dem Fall dar, dass der dritte Konstantenbereich S300 des ersten Blocks 113a aufgefüllt bzw. vollgelaufen ist.
  • 3A stellt die Inhalte des ersten Blocks 113a dar, in dem ein Schreiben tatsächlich durchgeführt worden ist; in dem Abschnitt S1 des Prüfbereichs S0 sind eine vorbestimmte spezifizierte Konstante und Prüfdaten C gespeichert, die die Häufigkeit einer vergangenen Kollektivlöschung darstellen. In dem Abschnitt S11 des ersten Konstantenbereichs S10 ist die erste Konstante 108a als erste Daten F1 gespeichert, die von dem ersten Hilfsmittel 105A über den RAM-Speicher 112A übertragen werden; der Abschnitt 12 ist ein Leerabschnitt, in den keine Daten geschrieben worden sind.
  • In dem Abschnitt S21 des zweiten Konstantenbereichs S20 ist die zweiten Konstante 108b als erste Daten Se1 gespeichert, die von dem zweiten Hilfsmittel 106A über den RAM-Speicher 112A übertragen sind; in dem Abschnitt S22 ist die zweite Konstante 108b als zweite Daten Se2 gespeichert, die das zweite Mal übertragen werden bzw. sind; die Abschnitte 23 und 24 sind Leerabschnitte, in die keine Daten geschrieben worden sind.
  • Unmittelbar nachdem das Steuergerät 100A gestoppt wird, wird darüber hinaus in dem Abschnitt S301 des dritten Konstantenbereichs S300 die dritte Konstante 108c als erste Daten T1 gespeichert, die in dem RAM-Speicher 112A gespeichert worden sind; in dem Abschnitt S302 wird die dritte Konstante 108c als zweite Daten T2 gespeichert, unmittelbar nachdem das Steuergerät 100A das zweite Mal gestoppt hat; ähnlich wird hier im Nachfolgenden die dritte Konstante 108c als 20. Speicherungsdaten T20 gespeichert, unmittelbar nachdem das Steuergerät 100A das 20. Mal gestoppt wird; somit stellt 3A einen Fall dar, wo kein Abschnitt existiert, in den keine Daten geschrieben worden sind.
  • 3B stellt die Inhalte des dritten Aufteilungsblocks 113c dar; obwohl Daten bereits in den Aufteilungsblock 113c geschrieben worden sind, wird, wenn der Aufteilungsblock 113a aufgefüllt bzw. vollgelaufen ist, und es erforderlich ist, die nächsten Daten zu schreiben, der dritte Aufteilungsblock 113c zuerst in einer Kollektivweise gelöscht; deshalb sind sämtliche der Abschnitte in dem Prüfbereich S0, dem ersten Konstantenbereich S10, dem zweiten Konstantenbereich S20 und dem dritten Konstantenbereich S300 leer.
  • 3C stellt die Inhalte des zweiten Aufteilungsblocks 113b dar; obwohl der Aufteilungsblock 113b bereits kollektiv gelöscht worden ist, wird als Vergewisserungsverarbeitung eine Kollektivlöschung erneut durchgeführt; danach wird die nächste dritte Konstante 108c, mit der der aktuelle Aufteilungsblock 113a aufgefüllt ist, in dem Kopfabschnitt S301 des dritten Konstantenbereichs S300 geschrieben. Als Nächstes bewegen sich die Speicherungsdaten Se2, die die letzten Daten (die zweite Konstante 108b, die zuletzt geschrieben worden ist) in dem zweiten Konstantenbereich S20 des Aufteilungsblocks 113a sind, zu dem Kopfabschnitt S21 in dem zweiten Konstantenbereich S20 des Aufteilungsblocks 113b und werden übertragen.
  • Als Nächstes werden die Speicherungsdaten F1, die die letzten Daten (die erste Konstante 108a, die zuletzt geschrieben worden ist) in dem ersten Konstantenbereich S10 des Aufteilungsblocks 113a sind, an den Kopfabschnitt S11 in dem ersten Konstantenbereich S10 des Aufteilungsblocks 113b übertragen. Zuletzt sind in dem Prüfbereich S0 des Aufteilungsblocks 113b eine vorbestimmte spezifizierte Konstante, die angibt, dass der Aufteilungsblock 113b nicht leer ist, und der akkumulierte Wert der Häufigkeit bzw. Anzahl einer Kollektivlöschung gespeichert.
  • Wie oben beschrieben, wird der Aufteilungsblock 113a durch den Aufteilungsblock 113b ersetzt, der der nächste aktuell Block wird.
  • Wenn, nachdem die Aufteilungsblöcke 113a bis 113d kollektiv gelöscht sind, wirksame Daten in wenigstens einem Abschnitt in sämtlicher der Datenspeicherungsbereiche S10, S20 und S300 geschrieben werden, wird eine vorbestimmte Konstante in dem ersten Halbbereich des Abschnitts S1 geschrieben, der einer der Abschnitte in dem Prüfbereich S0 ist; in dem Fall, dass wirksame Daten bzw. Effektivdaten nicht in irgendeinem Abschnitt in den vorhergehenden Datenspeicherungsbereichen geschrieben sind, wird jeder Datenspeicherungsbereich ein Leerblock bzw. leerer Block, wo die spezifizierte Konstante nicht geschrieben wird.
  • In dem zweiten Halbbereich des Abschnitts S1, der einer der Abschnitte in dem Prüfbereich S0 ist, gibt es geschriebene Daten über die Häufigkeit einer Kollektivlöschung für die Aufteilungsblöcke, wenn die spezifizierte Konstante geschrieben wird; in dem Fall, dass ein Übergang des Aufteilungsblocks durchgeführt wird, wird die Häufigkeit einer Kollektivlöschung des Nach-Übergang-Aufteilungsblocks ein Wert, der erhalten wird durch Addieren von ”1” zu der Häufigkeit einer Kollektivlöschung, die in den Prüfbereich des aktuellen Aufteilungsblocks unmittelbar vor dem Übergang geschrieben worden ist.
  • Einer der Aufteilungsblöcke 113a bis 113d wird in dem letzten Übergangsprozess des Aufteilungsblocks und des aktuellen Übergangsprozesses des Aufteilungsblocks kollektiv gelöscht; in dem Fall, dass sämtliche der Abschnitte während der ersten Kollektivlöschung gelöscht werden, beeinträchtigt die zweite Kollektivlöschung nicht die Löschlebensdauer; somit wird die Häufigkeit einer Kollektivlöschung, die in dem Prüfbereich S0 gespeichert ist, die Häufigkeit bzw. Anzahl einer einmaligen Kollektivlöschung der zweiten Kollektivlöschung.
  • Hinsichtlich der Such/Leseverarbeitung in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung wird als Nächstes das Konzept des Verarbeitungsverfahrens erläutert werden. 4A und 4B sind jeweils ein erläuterndes Diagramm für eine Such/Leseverarbeitung in einem nicht-flüchtigen Datenspeicher in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung; 4A stellt das Verfahren zum Suchen in dem letzten Block dar, wo ein Lesen der Daten durchgeführt wird; 4B stellt das Verfahren zum Suchen in dem letzten Abschnitt dar, wo ein Lesen von Daten durchgeführt wird.
  • Teil (1) in 4A zum Erläutern des Suchverfahrens nach dem letzten Block, wo ein Lesen von Daten durchgeführt wird, stellt einen Fall dar, bei dem, nachdem sämtliche der ersten bis vierten Aufteilungsblöcke kollektiv gelöscht worden sind, Daten in den ersten Aufteilungsblock 113a geschrieben werden; bezüglich des letzten Blocks N wird ein Leerblock, dessen Prüfbereich leer ist, gesucht, und dann wird ein Block, der vor dem Leerblock ist und nicht ein Leerblock ist, als der letzte Block gesucht.
  • Teil (2) in 4A ist eine Tabelle, die einen Fall darstellt, dass, nachdem einer der ersten, zweiten und dritten Bereiche S10, S20 und S300 des ersten Blocks 113a aufgefüllt ist, die letzten Daten sich zu dem zweiten Block 113b bewegen; der letzte Block N ist der zweite Block 113b vor dem dritten Block 113c, der ein Leerblock ist, und der erste Block 113a ist ein Block N-1, der unmittelbar vor dem letzten Block ist.
  • Teil (3) in 4A ist eine Tabelle, die einen Fall darstellt, dass, nachdem einer der Bereiche des zweiten Blocks 113b aufgefüllt ist, die letzten Daten sich zu dem dritten Block 113c bewegen; der letzte Block N ist der zweite Block 113b vor dem vierten Block 113d, der ein Leerblock ist, und der erste Block 113a ist ein Block N-2, der zwei Blöcke vor dem letzten Block ist, und der zweite Block 113b ist ein Block N-1, der vor dem letzten Block ist.
  • Teil (4) in 4A ist eine Tabelle, die einen Fall darstellt, dass, nachdem einer der Bereiche des dritten Blocks 113c aufgefüllt ist, die letzten Daten sich zu dem vierten Block 113d bewegen; in diesem Fall bewegen sich die letzten Daten zu dem vierten Block, nachdem der erste Block 113a, der zwei Blöcke nach dem dritten Block 113c liegt, kollektiv gelöscht wird. Demgemäß ist der letzte Block N der vierte Block 113d vor dem ersten Block 113a, der ein Leerblock ist; der zweite Block 113b ist ein Block N-2, der zwei Blöcke vor dem letzten Block liegt; der dritte Block 113c ist ein Block N-1, der vor dem letzten Block ist.
  • Teil (5) in 4A ist eine Tabelle, die einen Fall darstellt, dass, nachdem einer der Bereiche des vierten Blocks 113d aufgefüllt ist, die letzten Daten sich zu dem ersten Block 113a bewegen; in diesem Fall bewegen sich die letzten Daten zu dem ersten Block 113a, nachdem der zweite Block 113b, der zwei Blöcke hinter dem vierten Block ist, kollektiv gelöscht ist. Demgemäß ist der letzte Block N der erste Block 113a vor dem zweiten Block 113b, der ein Leerblock ist; der dritte Block 113c ist ein Block N-2, der zwei Blöcke vor dem letzten Block ist; der vierte Block 113d ist ein Block N-1, der vor dem letzten Block ist.
  • Teil (6) in 4A ist eine Tabelle, die einen Fall darstellt, dass, nachdem einer der Bereiche des ersten Blocks 113a aufgefüllt ist, die letzten Daten sich zu dem zweiten Block 113b bewegen; in diesem Fall bewegen sich die letzten Daten zu dem zweiten Block 113b, nachdem der dritte Block 113c, der zwei Blöcke hinter dem ersten Block ist, kollektiv gelöscht ist. Demgemäß ist der letzte Block N der zweite Block 113b vor dem dritten Block 113c, der ein Leerblock ist; der vierte Block 113d ist ein Block N-2, der zwei Blöcke vor dem letzten Block ist; der erste Block 113a ist ein Block N-1, der vor dem letzten Block ist.
  • In Teil (6) von 4A in dem Fall, dass, nachdem einer der Bereiche des zweiten Blocks 113b aufgefüllt ist, die letzten Daten sich zu dem dritten Block 113c bewegen, nachdem der vierte Block 113d, der zwei Blöcke nach dem zweiten Block 113b ist, kollektiv gelöscht ist, bewegen sich die letzten Daten zu dem dritten Block 113c; deshalb wird ein Übergang von dem Fall von Teil (6) zum Teil (3) von 4A getätigt.
  • In dem Fall, dass ein Übergang des Aufteilungsblocks implementiert wird, wird ein Schreiben gestartet, nachdem der Bestimmungsorts-Aufteilungsblock für den Fall der Fälle kollektiv gelöscht wird.
  • Wie oben beschrieben, ist der nicht-flüchtige Datenspeicher 113A mit wenigstens vier Aufteilungsblöcken 113a bis 113d versehen; in dem Fall, dass kein Leerabschnitt in einem der Datenspeicherungsbereiche S10, S20 und S300 des Aufteilungsblocks 113a existiert, wo ein Schreiben aktuell durchgeführt wird, wird zuerst der dritte Aufteilungsblock 113c kollektiv gelöscht, und dann wird als eine Vergewisserungsverarbeitung der zweite Aufteilungsblock 113b kollektiv gelöscht; die neuen Daten werden in den Kopfabschnitt in dem Datenspeicherungsbereich des zweiten Aufteilungsblocks 113b geschrieben; die letzten Daten, die in andere Datenspeicherungsbereiche des ursprünglichen Aufteilungsblocks 113a geschrieben worden sind, werden an den Kopfabschnitt in dem Datenspeicherungsbereich des zweiten Aufteilungsblocks 113b übertragen und darin gespeichert; bezüglich des Übergangs der Aufteilungsblöcke 113a bis 113d bewegen sich die letzten Daten zu dem Aufteilungsblock, der ein Leerblock und vor dem Leerblock ist, der kollektiv gelöscht worden ist.
  • In 4B, die das Verfahren zum Suchen in dem letzten Abschnitt darstellt, wo ein Lesen von Daten durchgeführt wird, sind spezifische Konstanten, die angeben, dass der entsprechende Block nicht ein Leerblock ist, und die Häufigkeit einer Kollektivlöschung in den Prüfbereich S0 geschrieben. In den Kopfabschnitt S11 in dem ersten Konstantenbereich S10 sind die letzten Daten F1 für die erste Konstante 108a geschrieben; der folgende Abschnitt S12 ist in einem unbeschriebenen Zustand.
  • In den Kopfabschnitt S21 in dem zweiten Konstantenbereich S20 sind die letzten Daten Se1 der zweiten Konstante 108b geschrieben; in den Abschnitt S22 sind die letzten Daten Se2 der zweiten Konstante 108b geschrieben; die folgenden Abschnitte S23 und S24 sind in einem unbeschriebenen Zustand.
  • In den Kopfabschnitt S301 in dem dritten Konstantenbereich S300 sind die ersten Daten T1 der dritten Konstante 108c geschrieben; in den Abschnitt S302 sind die zweiten Daten T2 der dritten Konstante 108c geschrieben; in den Abschnitt S303 sind die dritten Daten T3 der dritten Konstante 108c geschrieben; jedoch ist aufgrund einer Stromunterbrechung während der Schreiboperation ein Teil des Abschnitts 303 leer. Die folgenden Abschnitte S304 bis S320 sind in einem unbeschriebenen Zustand.
  • Der Mikroprozessor 110A erzeugt ein Kollektivlöschungsbefehl-Signal für den nicht-flüchtigen Datenspeicher 113A und ein Leerprüfbefehl-Signal (Löschungsvergewisserungsbefehl-Signal); der nicht-flüchtige Datenspeicher 113A empfängt den Leerprüfbefehl und überträgt dann wenigstens eine Bestimmungsinformation hinsichtlich dessen, ob oder nicht jeder Abschnitt gelöscht worden ist.
  • Der Mikroprozessor 110A bestimmt einen Abschnitt, der durch Kollektivlöschung gelöscht worden ist, als einen Leerabschnitt; in dem Fall, dass dort ein Abschnitt existiert, der nicht durch die Kollektivlöschung gelöscht werden kann, oder in dem Fall, dass aufgrund einer Stromunterbrechung während einer Schreiboperation für den nicht-flüchtigen Datenspeicher 113A die Tatsache erfasst wird, dass ein Daten-beschriebenes Teilstück und ein Daten-unbeschriebenes Teilstück gleichzeitig in einem Abschnitt enthalten sind, bestimmt der Mikroprozessor 110A den vorhergehenden Abschnitt als einen unwirksamen Abschnitt bzw. Ineffektivabschnitt und bestimmt den Abschnitt, der Daten enthält und nicht ein unwirksamer Abschnitt ist, als einen wirksamen Abschnitt bzw. Effektivabschnitt.
  • Beim Durchführen eines Lesens in dem nicht-flüchtigen Datenspeicher 113A durchsucht der Mikroprozessor 110A den letzten Abschnitt durch den Kopfabschnitt jedes Datenspeicherungsbereiches nach einem wirksamen Abschnitt und liest Daten, die in einem wirksamen Abschnitt gespeichert sind, der zuerst erfasst wird.
  • Bezüglich einer Abnormalitätsverarbeitung in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung wird als Nächstes das Konzept des Verarbeitungsverfahrens erläutert werden. 5A und 5B sind jeweils ein erläuterndes Diagramm für eine Abnormalitätsverarbeitung eines nicht-flüchtigen Datenspeichers in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung; 5A stellt ein Verarbeitungsverfahren in dem Fall dar, dass eine Schreibabnormalität auftritt; 5B stellt ein Verarbeitungsverfahren in dem Fall dar, dass eine Löschabnormalität während einer Kollektivlöschung eines Aufteilungsblocks auftritt.
  • In 5A, die ein Verarbeitungsverfahren in dem Fall erläutert, dass eine Schreibabnormalität auftritt, wird ein Fall dargestellt, dass eine Zellabnormalität in dem Abschnitt S302 existiert, oder einem Fall, dass der Abschnitt S302 als ein unwirksamer Abschnitt bestimmt wird, obwohl Daten geschrieben sind bzw. werden. Beim Durchführen eines Schreibens in dem nicht-flüchtigen Datenspeicher 113A durchsucht der Mikroprozessor 110A den letzten Abschnitt durch den Kopfabschnitt jedes Datenspeicherungsbereiches (in einer Anfangsrichtung) nach einem wirksamen Abschnitt, führt ein Suchen in der entgegengesetzten Richtung von einem wirksamen Abschnitt durch, der zuerst erfasst wird, und schreibt dann Daten in einen Leerabschnitt, der zuerst erfasst wird. In dem Fall, dass Daten nicht korrekt in den Leerabschnitt geschrieben werden können, führt der Mikroprozessor 100A eine Suche in der Anfangsrichtung durch und schreibt Daten in einen neu erfassten Leerabschnitt.
  • In dem Fall, dass eine Abnormalität beim Blocklöschen auftritt, in 5B dargestellt, wird eine Wiederholversuchsoperation nur einmal durchgeführt; wenn nach der Wiederholversuchsoperation die Blocklöschung immer noch abnormal ist, wird eine Leerprüfung für den Prüfbereich durchgeführt. In dem Fall, dass der Block als ein Leerblock bestimmt wird, wird die Blocklöschung als normal betrachtet. Dieses ist so, weil, selbst wenn ein ungelöschtes Teilstück in einem Abschnitt existiert, ein Löschen in dem nächsten Abschnitt durchgeführt wird und somit kein tatsächlicher Schaden verursacht wird.
  • (2) Detaillierte Beschreibung der Operation
  • Als Nächstes wird die Operation eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung erläutert werden. 6 ist ein Flussdiagramm, das die Gesamtoperation eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt. Wenn in 6 ein nicht-veranschaulichter Leistungsschalter bzw. Energieschalter in dem Schritt 600a angeschaltet wird, wird das Energieversorgungsrelais 102 vorgespannt, und eine elektrische Energie wird an das Steuergerät 100A geliefert, um es anzutreiben, so dass der Mikroprozessor 110A seinen Betrieb in dem Schritt 601 startet.
  • In dem Schritt 602a, der ein Bestimmungsschritt ist, wird durch einen Operator bestimmt, ob oder nicht das Eingabe/Ausgabe-Programm 107A an den nicht-flüchtigen Programmspeicher 111A übertragen werden soll; in dem Fall, dass das Eingabe/Ausgabe-Programm 107A an den nicht-flüchtigen Programmspeicher 111A übertragen werden soll, wird das erste Hilfsmittel 105A angeschlossen bzw. verbunden, und durch Drücken der Übertragungsoperationstaste wird das Ergebnis der Bestimmung ”Ja”; dann folgt dem Schritt 602a der Schritt 602b. In dem Fall, dass die Übertragungsoperationstaste nicht gedrückt wird oder das Eingabe/Ausgabe-Programm 107A bereits in den nicht-flüchtigen Programmspeicher 111A geschrieben worden ist, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 602a der Schritt 603.
  • In dem Schrittblock 602b wird mittels eines in dem Masken-ROM-Speicher 111a gespeicherten Boot-Programms das in dem ersten Hilfsmittel 105A gespeicherte Eingabe/Ausgabe-Programm 107A an den nicht-flüchtigen Programmspeicher 111A übertragen und darin gespeichert; dann folgt dem Schritt 602b der Schritt 603a. In dem Eingabe/Ausgabe-Steuerprogramm sind feste Konstanten, die konstant und nicht variabel und einem Programm eigen bzw. inhärent sind, und eine Referenzkonstante 107a enthalten.
  • In dem Schritt 603a, der ein Bestimmungsschritt ist, wird durch Bestimmen, ob oder nicht ein Einstellungsspezifizierter Wert in den Prüfbereich S0 eines von dem ersten bis vierten Aufteilungsblock geschrieben worden ist, bestimmt, ob oder nicht die Aufteilungsblöcke initialisiert worden sind; in dem Fall, dass die Aufteilungsblöcke initialisiert worden sind, wird das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 603a der Schritt 604a, und in dem Fall, dass die Aufteilungsblöcke nicht initialisiert worden sind, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 603a der Schritt 603b.
  • In dem Schritt 603b werden zuerst die Anfangseinstellungswerte der ersten Konstante 108a, der zweiten Konstante 108b und der dritten Konstante 108c in den Abbildspeicherbereich 108 des RAM-Speichers 112A geschrieben; als der Anfangseinstellungswert wird die in dem nicht-flüchtigen Programmspeicher 111A gespeicherte Referenzkonstante 107a genutzt, und bezüglich separater Daten, für die keine Referenzkonstante gegeben ist, wird eine beliebige Konstante, so wie ein Wert ”0”, als eine temporäre Konstante geschrieben.
  • In dem Schritt 604a, der ein Bestimmungsschritt ist, wird durch einen Operator bestimmt, ob oder nicht die erste Konstante 108a an den RAM-Speicher 112A übertragen werden soll; in dem Fall, dass das Eingabe/Ausgabe-Programm 107A an den nicht-flüchtigen Programmspeicher 111A übertragen werden soll, wird das erste Hilfsmittel 105A angeschlossen, und mittels Drücken der Übertragungsoperationstaste wird das Ergebnis der Bestimmung ”Ja”; dann folgt dem Schritt 604a der Schritt 605a. In dem Fall, dass die Übertragungsoperationstaste nicht gedrückt wird, oder das erste Hilfsmittel 105A nicht angeschlossen ist, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 604a der Schritt 604b.
  • In dem Schritt 605a wird die von dem ersten Hilfsmittel 105a übertragene erste Konstante 108a an den Abbildspeicherbereich 108 des RAM-Speichers 112A übertragen; dann folgt dem Schritt 605a der Schritt 606.
  • In dem Schritt 604b, der ein Bestimmungsschritt ist, wird durch einen Operator bestimmt, ob oder nicht die zweite Konstante 108b an den RAM-Speicher 112A übertragen werden soll; in dem Fall, dass die zweite Konstante 108b an den RAM-Speicher 112A übertragen werden soll, wird das Hilfsmittel 106A angeschlossen bzw. verbunden, und mittels Drücken der Übertragungsoperationstaste wird das Ergebnis der Bestimmung ”Ja”; dann folgt dem Schritt 604b der Schrittblock 605b. In dem Schritt, dass die Übertragungsoperationstaste nicht gedrückt wird, oder das zweite Hilfsmittel 106A nicht angeschlossen ist, wird das Ergebnis der Bestimmung ”Nein”; dann folgt dem Schritt 604b der Schrittblock 604c.
  • In dem Schritt 605b wird die von dem zweiten Hilfsmittel 106a übertragene zweite Konstante 108b an den Abbildspeicherbereich 108 des RAM-Speichers 112A übertragen; dann folgt dem Schritt 605b der Schritt 606. In dem Schritt 604c, der ein Bestimmungsschritt ist, wird in dem Fall, dass während des tatsächlichen Betriebs des Steuergerätes 100A eine Lernspeicherungsinformation existiert, die in den RAM-Speicher 112 geschrieben werden soll, das Ergebnis der Bestimmung ”Ja”; dann folgt dem Schritt 604c der Schritt 605c; in dem Fall, dass keine Lernspeicherungsinformation existiert, die in den RAM-Speicher 112A geschrieben werden soll, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 604c der Schritt 606.
  • In dem Schritt 605c wird die dritte Konstante 108c, so wie eine Lerninformation, die während des tatsächlichen Betriebs des Steuergerätes 100A erhalten ist, an den Abbildspeicherbereich 108 des RAM-Speichers 112A übertragen; dann folgt dem Schritt 605c der Schritt 606. In dem Schritt 606 wird bestimmt, ob oder nicht der Leistungsschalter An/Aus geschaltet ist; in dem Fall, dass der Leistungsschalter bereits angeschaltet worden ist, wird das Ergebnis der Bestimmung ”Nein”; dann folgt dem Schritt 606 der Schritt 609. In einer vorbestimmten Zeitperiode, während welcher der Leistungsschalter ausgeschaltet ist, wird das Ergebnis der Bestimmung ”Ja”; dann folgt dem Schritt 606 der Schritt 700.
  • Der Schrittblock 700 ist ein Schreibverarbeitungsschritt für den Datenspeicher, später mit Verweis auf 7 beschrieben; in diesem Schritt werden sämtliche von der ersten Konstante 108a, der zweiten Konstante 108b und der dritten Konstante 108c, die in den Abbildspeicherbereich 108 des RAM-Speichers 112A in den Schritten 605a, 605b bzw. 605c geschrieben worden sind, an den ersten Konstantenbereich S10, den zweiten Konstantenbereich S20 bzw. den dritten Konstantenbereich S300 des nicht-flüchtigen Datenspeichers 113A transferiert und darin geschrieben; dann folgt dem Schritt 700 der Schritt 600c.
  • In dem Abbildspeicherbereich 108 des RAM-Speichers 112A ist ein Anfangseinstellungswert geschrieben worden, der ein temporärer Wert ist, in dem Schrittblock 603b, und dann wird ein Aktualisierungsschreiben sequentiell in den Schritten 605a, 605b und 605c durchgeführt; deshalb sind die Daten, die an den nicht-flüchtigen Datenspeicher 113A in dem Schrittblock 711 transferiert werden, Daten, die in einer Aktualisierungsweise geschrieben sind. In dem Fall, dass irgendeiner der Schritte 605a, 605b und 605c nicht implementiert bzw. verwirklicht worden ist, ist eine von der ersten Konstante 108a, der zweiten Konstante 108b und der dritten Konstante 108c der Anfangseinstellungswert, der in dem Schritt 603b festgelegt worden ist.
  • In dem Schritt 600c ist das Energieversorgungsrelais 102 entregt, so dass die Energieversorgung für das Steuergerät 100A beendet ist. In dem Schritt 609, der ein Operationsendeschritt ist, werden andere Steuerprogramme implementiert bzw. verwirklicht; dann wird innerhalb einer vorbestimmten Zeitperiode der Schritt 601 wieder aufgenommen, und dann wird dieselbe Steuerung danach wiederholt.
  • Das Flussdiagramm in 6 dient dazu, vielfältige Arten von Verarbeitungen, die zu unterschiedlichen Zeitverhältnissen bzw. Timings ausgeführt sind, zu kombinieren und zu verallgemeinern. Zuerst werden als die erste Verarbeitung der Schritt 600a, der Schrittblock 602, der Schritt 603b, der Schritt 605a, der Schrittblock 700 und der Schrittblock 600c ausgeführt, so dass der Transfer des Eingabe/Ausgabe-Steuerprogramms 107A, der Transfer der ersten Konstante 108a an den nicht-flüchtigen Datenspeicher 113A, und der Transfer von Anfangseinstellungswerten für die zweite und dritte Konstante ausgeführt werden.
  • Als die zweite Verarbeitung werden der Schritt 600a, der Schritt 605b, der Schrittblock 700 und der Schritt 600c ausgeführt, so dass die zweite Konstante 108b an den nicht-flüchtigen Datenspeicher 113A transferiert wird. Ähnlich werden als die dritte Verarbeitung der Schritt 600a, der Schritt 605c, der Schrittblock 700 und der Schritt 600c ausgeführt, so dass die dritte Konstante 108c an den nicht-flüchtigen Datenspeicher 113A transferiert wird; hinsichtlich der dritten Konstante 108c wird jedoch während des Zirkulierens durch den Schritt 601, den Schritt 605c, den Schritt 606, den Schritt 609 und den Schritt 601 eine große Anzahl separater Datenstücke sequentiell in einer zunehmenden Weise in dem RAM-Speicher 112A gespeichert, und unmittelbar nachdem der Leistungsschalter ausgeschaltet wird, werden die separaten Datenstücke kollektiv an den nicht-flüchtigen Datenspeicher 113A in dem Schrittblock 700 transferiert.
  • 7 ist ein Gesamtflussdiagramm, das eine Datenschreibverarbeitung eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt. In 7 ist der Schritt 700 ein Schritt, bei dem ein Datenschreiben in dem Datenspeicher startet. In dem Schritt 701 wird bestimmt, ob oder nicht der nicht-flüchtige Datenspeicher 113A initialisiert werden soll; in dem Fall, dass Daten in jeden der Aufteilungsblöcke geschrieben worden sind und der Aufteilungsblock, in den Daten als nächstes geschrieben werden sollen, nicht spezifiziert werden kann, oder in dem Fall, dass keine Daten in irgendeinen der Blöcke geschrieben worden sind, wird in dem Schritt 701 das Ergebnis der Bestimmung ”Ja”; dann folgt dem Schritt 701 der Schritt 800. In dem Fall, dass der letzte Block, der später mit Verweis auf 14 beschrieben wird, gefunden werden kann, wird das Ergebnis der Bestimmung ”Nein”; dann folgt dem Schritt 700 der Schritt 900.
  • Der Schrittblock 800 ist ein Initialisierungsverarbeitungsschritt für den Datenspeicher, später mit Verweis auf 8 beschrieben. In dem Schritt 702, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Initialisierungsverarbeitung in dem Schrittblock 800 normal endet, das Ergebnis der Bestimmung ”Ja”; dann folgt dem Schritt 702 der Schritt 900. In dem Fall, dass die Initialisierungsverarbeitung abnormal endet, wird das Ergebnis der Bestimmung ”Nein”; dann folgt dem Schritt 702 der Schritt 707.
  • Der Schrittblock 900 ist ein Datenschreibverarbeitungsschritt für den Datenspeicher, später mit Verweis auf 9 beschrieben. In dem Schritt 703, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Schreibverarbeitung in dem Schrittblock 900 normal endet, das Ergebnis der Bestimmung ”Ja”; dann folgt dem Schritt 703 der Schritt 704. In dem Fall, dass die Schreibverarbeitung in dem Schrittblock 900 abnormal endet (es existiert kein Leerabschnitt in dem Block), wird das Ergebnis der Bestimmung ”Nein”; dann folgt dem Schritt 703 der Schritt 1100.
  • In dem Schritt 704 wird eine Leseabschnittsnummer in dem Statusspeicher 112a aktualisiert, der in dem RAM-Speicher 112A bereitgestellt ist; dann folgt dem Schritt 704 der Schritt 705. Der Schrittblock 1100 ist ein Übergangsverarbeitungsschritt für den Aufteilungsblock, später mit Verweis auf 11A und 11B beschrieben. In dem Schritt 706, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Übergangsverarbeitung in dem Schrittblock 1100 normal endet, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 706 der Schritt 705; in dem Fall, dass die Übergangsverarbeitung abnormal endet, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 706 der Schritt 707. Der Schritt 705 ist ein Schritt für den Fall, dass das Schreiben normal endet, und der Schritt 707 ist ein Schritt für den Fall, dass das Schreiben abnormal endet.
  • 8 ist ein Flussdiagramm, das eine Initialisierungsverarbeitung eines nicht-flüchtigen Datenspeichers in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt. In 8 ist der Schritt 801 ein Schritt, bei dem eine Initialisierungsverarbeitung startet. Der Schrittblock 1000 ist ein Kollektivlöschungs-Verarbeitungsschritt für sämtliche der Aufteilungsblöcke, später mit Verweis auf 10 beschrieben. In dem Schritt 802, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Löschungsverarbeitung in dem Schrittblock 1000 normal endet, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 802 der Schritt 803; in dem Fall, dass die Löschungsverarbeitung abnormal endet, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 802 der Schritt 811.
  • In dem Schritt 803 wird der Schreibabschnitt auf den ersten Block 113a gesetzt, der ein Kopfabschnitt ist; dann folgt dem Schritt 803 der Schrittblock 900. In dem Schrittblock, der ein später mit Verweis auf 9 beschriebener Schreibverarbeitungsschritt ist, werden Anfangseinstellungswerte in den Kopfabschnitt S11 in dem ersten Konstantenbereich S10 des ersten Blocks 113a, in den Kopfabschnitt S21 in dem zweiten Konstantenbereich S20, und in den Kopfabschnitt S301 in dem dritten Konstantenbereich S300 geschrieben.
  • In dem Schritt 804, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Schreibverarbeitung in dem Schrittblock 900 normal endet, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 804 der Schritt 805; in dem Fall, dass die Schreibverarbeitung abnormal endet, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 804 der Schritt 811.
  • In dem Schritt 805, der ein Bestimmungsschritt ist, wird bestimmt, ob oder nicht Daten in den Kopfabschnitt jedes Datenspeicherungsbereiches in dem Schrittblock 900 geschrieben worden sind; in dem Fall, dass keine Daten in den Kopfabschnitt jedes Datenspeicherungsbereichs geschrieben worden sind, wird das Ergebnis der Bestimmung ”Nein”, und dann wird der Schritt 803 wieder aufgenommen; in dem Fall, dass Daten in den Kopfabschnitt jedes Datenspeicherungsbereiches geschrieben worden sind, wird das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 805 der Schritt 806. In dem Schritt 806 werden ein vorbestimmter spezifizierter numerischer Wert und die Häufigkeit bzw. Anzahl einer Kollektivlöschung ”1” in den Abschnitt S1 geschrieben, der in dem Prüfbereich S0 des ersten Blocks 113a bereitgestellt ist.
  • In dem Schritt 807, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Schreibverarbeitung in dem Schritt 806 normal endet, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 807 der Schritt 808; in dem Fall, dass die Schreibverarbeitung abnormal endet, wird das Ergebnis der Bestimmung ”Nein”, und dem Schritt 807 folgt der Schritt 811. In dem Schritt 808 wird die Kopfblocknummer auf die Blocknummer des letzten Blocks in dem Statusspeicher 112a gesetzt, der in dem RAM-Speicher 112A bereitgestellt ist; dann folgt dem Schritt 808 der Schritt 809.
  • In dem Schritt 809 wird die Kopfnummer auf die Abschnittsnummer in dem Statusspeicher 112a gesetzt, der in dem RAM-Speicher 112A bereitgestellt ist; dann folgt dem Schritt 809 der Schritt 810. Der Schritt 810 ist ein Schritt für den Fall, dass die Initialisierungsverarbeitung normal endet; der Schritt 811 ist ein Schritt für den Fall, dass die Initialisierungsverarbeitung abnormal endet.
  • 9 ist ein Flussdiagramm, das eine Schreibverarbeitung eines nicht-flüchtigen Datenspeichers in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt. In 9 ist der Schritt 901 ein Schritt, bei dem eine Schreibverarbeitung startet. In dem Schritt 902, der ein Bestimmungsschritt ist, wird bestimmt, auf Grundlage der Inhalte des Statusspeichers 112a in dem RAM-Speicher 112A, ob oder nicht irgendein Leerabschnitt in dem aktuellen Schreibblock verblieben ist; in dem Fall, dass irgendein Leerabschnitt übrig ist, wird das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 902 der Schritt 903; in dem Fall, dass kein Leerabschnitt übrig ist, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 902 der Schritt 911.
  • In dem Schritt 903 wird eine Leerprüfung durchgeführt, in der eine Vergewisserung erfolgt, ob oder nicht der Abschnitt, in welchem ein Schreiben durchgeführt werden soll, ein Leerabschnitt ist. In dem Schritt 904, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Leerprüfung in dem Schritt 903 angibt, dass der Abschnitt, in dem ein Schreiben durchgeführt werden soll, ein Leerabschnitt ist, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 904 der Schritt 905; in dem Fall, dass der Abschnitt, in dem ein Schreiben durchgeführt werden soll, nicht ein Leerabschnitt ist, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 904 der Schritt 907.
  • In dem Schritt 905 werden Daten in den Schreibabschnitt geschrieben; dann folgt dem Schritt 905 der Schritt 906. In dem Schritt 906, der ein Bestimmungsschritt ist, wird in dem Fall, dass das Schreiben der Daten in dem Schritt 905 normal ist, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 906 der Schritt 910; in dem Fall, dass das Schreiben der Daten in dem Schritt 905 abnormal ist, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 906 der Schritt 907.
  • In dem Schritt 907 wird die Schreibabschnittsnummer erhöht bzw. weitergeschaltet; dann wird der Schritt 902 wieder aufgenommen. In dem Fall, dass das Schreiben abnormal ist, wird der Schreibabschnitt erhöht; dann werden die Leerprüfung und das Schreiben erneut implementiert bzw. verwirklicht, und wenn kein Leerabschnitt in dem Block verblieben ist, endet das Schreiben, das eine abnormale Verarbeitung ist, in dem Schritt 911. In dem Fall, dass das Schreiben normal durchgeführt wird, endet das Schreiben, das eine normale Verarbeitung ist, in dem Schritt 910.
  • 10 ist ein Flussdiagramm, das die Gesamtblock-Löschverarbeitung eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt; 10 stellt eine Löschverarbeitung für einen spezifizierten Aufteilungsblock dar. In 10 ist der Schritt 1001 ein Schritt, bei dem eine Löschverarbeitung startet. In dem Schritt 1002 wird der aktuelle Wert des Wiederhol(versuchs)zählers auf ”0” gesetzt, und dann folgt dem Schritt 1002 der Schritt 1003.
  • In dem Schritt 1003 werden die Aufteilungsblöcke gelöscht; dann folgt dem Schritt 1003 der Schritt 1004. In dem Schritt 1004, der ein Bestimmungsschritt ist, wird mittels Durchführen einer Leerprüfung bestimmt, ob oder nicht ein spezifizierter Aufteilungsblock gelöscht worden ist; in dem Fall, dass der spezifizierte Aufteilungsblock gelöscht worden ist, wird das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1004 der Schritt 1010; in dem Fall, dass der spezifizierte Aufteilungsblock nicht gelöscht worden ist, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1004 der Schritt 1005.
  • In dem Schritt 1005 wird ”1” zu dem aktuellen Wert des Wiederholzählers hinzugefügt bzw. addiert, und dann folgt dem Schritt 1005 der Schritt 1006. In dem Schritt 1006, der ein Bestimmungsschritt ist, wird in dem Fall, dass der aktuelle Wert des Wiederholzählers kleiner als ”2” ist, das Ergebnis der Bestimmung ”Ja”, was eine Erlaubnis für einen Wiederholversuch bedeutet, und dann wird der Schritt 1003 wieder aufgenommen; in dem Fall, dass der aktuelle Wert des Wiederholzählers derselbe wie oder größer als ”2” ist, wird das Ergebnis der Bestimmung ”Nein”, was keine Erlaubnis für einen Wiederholversuch bedeutet, und dann folgt dem Schritt 1006 der Schritt 1007.
  • In dem Schritt 1007 wird eine Leerprüfung auf dem Prüfbereich S0 durchgeführt. In dem Schritt 1008, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Leerprüfung in dem Schritt 1007 angibt, dass der Prüfbereich S0 leer ist, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1008 der Schritt 1010; in dem Fall, dass die Leerprüfung in dem Schritt 1007 angibt, dass der Prüfbereich S0 nicht leer ist, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1008 der Abnormal-Enden-Schritt 1011.
  • In dem Fall, dass der Prüfbereich leer ist, wird ein Suchen des letzten Blocks normal durchgeführt, und bei der Schreibverarbeitung existiert eine Verarbeitung, in der in dem Fall, dass ein Subjektabschnitt bzw. Abschnitt unter Betrachtung nicht ein Leerabschnitt ist, ein Schreiben in dem nächsten Abschnitt durchgeführt wird; obwohl ein anderes Teilstück als der Prüfbereich existiert, das nicht gelöscht worden ist, hat es deshalb keinen funktionalen Effekt. In dem Fall, dass, wenn das Löschen nach einem Wiederholversuch abnormal ist, der Prüfbereich leer ist, endet die Löschverarbeitung, die eine normale Verarbeitung ist.
  • 11A und 11B sind eine Menge von Flussdiagrammen, die eine Übergangsverarbeitung in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung darstellen; 11A und 11B stellen eine Übergangsverarbeitung eines Aufteilungsblocks dar. In 11A ist der Schritt 1101 ein Schritt, bei dem eine Blockübergangsverarbeitung startet. Der Schrittblock 1000a ist der Blocklöschverarbeitungsschritt für einen Aufteilungsblock, oben mit Verweis auf 10 beschrieben; in diesem Schritt wird ein Aufteilungsblock, der der zweite von dem aktuellen Aufteilungsblock ist, kollektiv gelöscht.
  • In dem Schritt 1102a, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Löschverarbeitung in dem Schrittblock 1000a normal endet, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1102a der Schrittblock 1000b; in dem Fall, dass die Löschverarbeitung in dem Schrittblock 1000a abnormal endet, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1102a der Abnormal-Enden-Schritt 1111. Der Schrittblock 1000b ist der Blocklöschschritt für den Datenspeicher, oben mit Verweis auf 10 beschrieben; in diesem Schritt wird ein Aufteilungsblock, der der erste von dem aktuellen Aufteilungsblock ist, kollektiv gelöscht.
  • In dem Schritt 1102b, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Löschverarbeitung in dem Schrittblock 1000b normal endet, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1102b der Schritt 1103a; in dem Fall, dass die Löschverarbeitung in dem Schrittblock 1000b abnormal endet, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1102b der Abnormal-Enden-Schritt 1111.
  • In dem Schritt 1103a wird der Datenspeicherungsbereich, der mit Daten aufgefüllt worden ist, und in dem ein Übergang des Aufteilungsblocks durchgeführt worden ist, als ein bezeichneter bzw. designierter Bereich eingesetzt, und die Schreibabschnittsnummer des bezeichneten Bereichs wird mit der des Kopfabschnitts aktualisiert. Der Schrittblock 900a ist der Datenschreibschritt, oben mit Verweis auf 9 beschrieben; in diesem Schritt werden neu erzeugte Daten in den Datenspeicherungsbereich geschrieben, der mit Daten aufgefüllt worden ist, und in dem ein Übergang des Aufteilungsblocks durchgeführt worden ist.
  • In dem Schritt 1102c, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Schreibverarbeitung in dem Schrittblock 900a normal endet, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1102c der Schritt 1103b; in dem Fall, dass die Schreibverarbeitung in dem Schrittblock 900a abnormal endet, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1102c der Abnormal-Enden-Schritt 1111. In dem Schritt 1103b wird hinsichtlich eines Datenspeicherungsbereiches, aus den Datenspeicherungsbereichen, der anders als der Datenspeicherungsbereich ist, der mit Daten aufgefüllt worden ist und in dem ein Übergang des Aufteilungsblocks durchgeführt worden ist, die Schreibabschnittsnummer aktualisiert, so dass die in dem Vor-Übergang-Aufteilungsblock gespeicherten, letzten Daten an den Kopfabschnitt des Nach-Übergang-Aufteilungsblocks transferiert werden.
  • Der Schrittblock 1200 ist ein Datensuch-/Leseverarbeitungsschritt, später mit Verweis auf 12 beschrieben; in diesem Schritt wird bezüglich des Vor-Übergang-Aufteilungsblocks ein Suchen eines normalen Blocks und eines normalen Leseabschnitts durchgeführt, um zu bestimmen, ob oder nicht irgendein wirksamer Abschnitt bzw. effektiver Abschnitt existiert. In dem Schritt 1104, der ein Bestimmungsschritt ist, wird in dem Fall, dass irgendein wirksamer Abschnitt in dem Vor-Übergang-Aufteilungsblock existiert, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1104 der Schrittblock 900b; in dem Fall, dass kein wirksamer Abschnitt existiert, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1104 der Schrittblock 900c.
  • In dem Schrittblock 900b, der der Schreibverarbeitungsschritt ist, der oben mit Verweis auf 9 beschrieben ist, werden in diesem Schritt die letzten Daten in dem Vor-Übergang-Aufteilungsblock, die in dem Schrittblock 1200 gelesen worden sind, an den Kopfabschnitt des Nach-Übergang-Aufteilungsblocks transferiert und darin gespeichert. Der Schrittblock 900c ist der Schreibverarbeitungsschritt, der oben mit Verweis auf 9 beschrieben ist; in diesem Schritt wird der Anfangseinstellungswert, der in den Abbildspeicher 108 des RAM-Speichers 112A in dem Schritt 603b in 6 geschrieben worden ist, an den Kopfabschnitt des Nach-Übergang-Aufteilungsblocks transferiert und darin geschrieben.
  • In dem Schritt 1102d, der dem Schrittblock 900b oder 900c folgt und ein Bestimmungsschritt ist, wird in dem Fall, dass die Schreibverarbeitung in dem Schrittblock 900b oder 900c normal endet, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1102d der Schritt 1105; in dem Fall, dass die Schreibverarbeitung in dem Schrittblock 900b oder 900c abnormal endet, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1102d der Schritt 1111.
  • In dem Schritt 1105, der ein Bestimmungsschritt ist, wird bestimmt, ob oder nicht die letzten Daten oder die Anfangswertdaten bzw. anfänglichen Wertdaten in sämtliche von dem ersten Bereich S10, dem zweiten Bereich S20 und dem dritten Bereich S300 geschrieben worden sind; in dem Fall, dass die letzten Daten oder die Anfangswertdaten in sämtliche von dem ersten Bereich S10, dem zweiten Bereich S20 und dem dritten Bereich S300 nicht geschrieben worden sind, wird das Ergebnis der Bestimmung ”Nein”, und dann wird der Schritt 1103b wieder aufgenommen; in dem Fall, dass die letzten Daten oder die Anfangswertdaten in sämtliche von dem ersten Bereich S10, dem zweiten Bereich S20 und dem dritten Bereich S300 geschrieben worden sind, wird das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1105 der Schritt 1106. Der Schritt 1106 ist ein Schritt, bei dem ein vorbestimmter spezifizierter numerischer Wert und die Häufigkeit bzw. Anzahl einer Kollektivlöschung in den Abschnitt S1 geschrieben werden, der in dem Prüfbereich S10 des Nach-Übergang-Aufteilungsblocks bereitgestellt ist; die Häufigkeit einer Kollektivlöschung ist ein Wert, der durch Addieren von ”1” zu der Häufigkeit einer Kollektivlöschung erhalten ist, welche in den Abschnitt S1 des Vor-Übergang-Aufteilungsblocks geschrieben worden ist.
  • In dem Schritt 1102e, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Schreibverarbeitung in dem Schritt 1106 normal endet, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1102e der Schritt 1107; in dem Fall, dass die Schreibverarbeitung in dem Schritt 1106 abnormal endet, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1102e der Schritt 1111. In dem Schritt 1107 wird die Blocknummer des letzten Blocks in dem Statusspeicher 112a aktualisiert, der in dem RAM-Speicher 112A bereitgestellt ist; dann folgt dem Schritt 1107 der Schritt 1108. In dem Schritt 1108 wird die Leseabschnittsnummer in dem Statusspeicher 112a aktualisiert, der in dem RAM-Speicher 112A bereitgestellt ist; dann folgt dem Schritt 1108 der Schritt 1110.
  • 12 ist ein Gesamtflussdiagramm, das die Datenleseverarbeitung in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt; 12 stellt eine Verarbeitung zum Lesen von Daten in dem nicht-flüchtigen Datenspeicher dar. In 12 ist der Schritt 1200 ein Schritt, bei dem ein Datenlesen für den Datenspeicher startet. Der Schrittblock 1300 ist ein Letzte-Daten-Suchverarbeitungsschritt, der später mit Verweis auf 13 beschrieben ist.
  • In dem Schritt 1201, der ein Bestimmungsschritt ist, wird als ein Ergebnis der in dem Schrittblock 1300 durchgeführten Suche nach dem letzten Block in dem Fall, dass Daten in jeden der Aufteilungsblöcke 113a bis 113c geschrieben worden sind und somit der letzte Block nicht identifiziert werden kann, oder in dem Fall, dass sämtliche der Aufteilungsblöcke 113a bis 113c leer sind und somit keine wirksamen Daten gefunden werden können, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1201 der Schritt 1211, bei dem das Lesen abnormal endet; in dem Fall dass irgendein wirksamer Block gefunden wird, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1201 der Schritt 1202.
  • In dem Schritt 1202, der ein Bestimmungsschritt ist, wird als ein Ergebnis einer in dem Schrittblock 1300 durchgeführten Suche nach dem letzten Abschnitt in dem Fall, dass weder ein wirksamer Leseblock noch ein wirksamer Leseabschnitt identifiziert werden kann, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1202 der Schritt 1211, bei dem das Lesen abnormal endet; in dem Fall, dass irgendein wirksamer Block und ein Leseabschnitt gefunden werden, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1202 der Schritt 1203. In dem Schritt 1203 werden Daten in dem Leseabschnitt des gefundenen Leseblocks gelesen und in dem Speicherbereich 108 des RAM-Speichers 112A gespeichert; dann folgt dem Schritt 1203 der Schritt 1210, bei dem das Lesen normal endet.
  • 13 ist ein Flussdiagramm, das die Letzte-Daten-Suchverarbeitung eines Steuergerätes gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt; 13 stellt ein Durchsuchen des nicht-flüchtigen Datenspeichers nach den letzten Daten dar. In 13 ist der Schritt 1301 ein Schritt, bei dem eine Letzte-Daten-Suche startet. Der Schrittblock 1400 ist ein Letzter-Block-Suchschritt, der später mit Verweis auf 14 beschrieben ist.
  • In dem Schritt 1302, der ein Bestimmungsschritt ist, wird als ein Ergebnis einer in dem Schrittblock 1400 durchgeführten Suche nach dem letzten Block in dem Fall, dass Daten in jeden der Aufteilungsblöcke 113a bis 113c geschrieben worden sind und somit der letzte Block nicht identifiziert werden kann, oder in dem Fall, dass sämtliche der Aufteilungsblöcke 113a bis 113c leer sind und somit keine wirksamen Daten gefunden werden können, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1302 der Schritt 1311, bei dem das Lesen abnormal endet; in dem Fall, dass irgendein wirksamer Block gefunden wird, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1302 der Schritt 1303.
  • In dem Schritt 1303 wird die gefundene Letzter-Block-Nummer bzw. letzte Block Nummer in dem Statusspeicher 112a gespeichert, der in dem RAM-Speicher 112A bereitgestellt ist; dann folgt dem Schritt 1303 der Schritt 1500a. Der Schrittblock 1500a ist ein Letzter-Abschnitt-Suchschritt, der später mit Verweis auf 15 beschrieben ist; in diesem Schritt wird ein Durchsuchen des in dem Schritt 1303 gespeicherten letzten Blocks nach dem letzten Abschnitt durchgeführt. In dem Schritt 1304, der ein Bestimmungsschritt ist, wird als ein Ergebnis der in dem Schrittblock 1500a durchgeführten Suche nach dem letzten Abschnitt in dem Fall, dass kein wirksamer Abschnitt existiert, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1304 der Schrittblock 1305; in dem Fall, dass irgendein wirksamer Block gefunden wird, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1304 der Schritt 1306a.
  • In dem Schritt 1306a wird die gefundene Nummerninformation in dem Statusspeicher 112a gespeichert, der in dem RAM-Speicher 112A bereitgestellt ist, und dann folgt dem Schritt 1306a der Schritt 1307. Hinsichtlich der Suchnummerninformation wird als die Leseblocknummer die aktuelle Nummer der Letzter-Block-Nummer genutzt, die in dem Schritt 1303 gespeichert worden ist; als die Leseabschnittsnummer wird die aktuelle Nummer der Letzter-Abschnitt-Nummer genutzt, die in dem Schritt 1500a gefunden worden ist; als die Schreibabschnittsnummer wird die der Leseabschnittsnummer folgende Abschnittsnummer genutzt.
  • In dem Schritt 1305, der ein Bestimmungsschritt ist, wird bestimmt, ob oder nicht der Aufteilungsblock unmittelbar vor dem Aufteilungsblock mit der Letzter-Block-Nummer, die in dem Schritt 1303 gespeichert worden ist, ein Leerblock ist; in dem Fall, dass der vorhergehende Aufteilungsblock nicht ein Leerblock ist, wird das Ergebnis der Bestimmung ”Ja”, dann folgt dem Schritt 1305 der Schritt 1500b; in dem Fall, dass der vorhergehende Aufteilungsblock ein Leerblock ist, wird das Ergebnis der Bestimmung ”Nein”; dann folgt dem Schritt 1305 der Schritt 1306b.
  • In dem Schritt 1306b wird die gefundene Nummerninformation in dem Statusspeicher 112a gespeichert, der in dem RAM-Speicher 112A bereitgestellt ist; dann folgt dem Schritt 1306a der Schritt 1307. Hinsichtlich der Suchnummerninformation wird als die Leseblocknummer eine abnormale Nummer genutzt, die angibt, dass eine Suche unmöglich ist; als die Leseabschnittsnummer wird eine abnormale Nummer genutzt, die angibt, dass eine Suche unmöglich ist; als die Schreibabschnittsnummer wird die Kopfabschnittsnummer genutzt.
  • Der Schrittblock 1500b ist ein Letzter-Abschnitt-Suchschritt, der später mit Verweis auf 15 beschrieben ist; in diesem Schritt wird eine Suche des letzten Abschnitts in dem Aufteilungsblock unmittelbar vor dem letzten Block durchgeführt, der in dem Schritt 1303 gespeichert ist. In dem Schritt 1306c wird die gefundene Nummerninformation bzw. die Information über die gefundene Nummer in dem Statusspeicher 112a gespeichert, der in dem RAM-Speicher 112A bereitgestellt ist; dann folgt dem Schritt 1306c der Schritt 1307. Bezüglich der Suchnummerninformation wird als die Leseblocknummer die Nummer unmittelbar vor dem Letzter-Block-Nummer genutzt, die in dem Schritt 1303 gespeichert worden ist; als die Leseabschnittsnummer wird die aktuelle Nummer der Letzter-Abschnitt-Nummer genutzt, die in dem Schritt 1500b gefunden worden ist; als der Schreibabschnitt wird der Kopfabschnitt des Aufteilungsblocks mit der Letzter-Block-Nummer genutzt, die in dem Schritt 1303 gespeichert worden ist.
  • In dem Schritt 1307, der ein Bestimmungsschritt ist, wird bestimmt, ob oder nicht eine Suche in sämtlichen von dem ersten Konstantenbereich S10, dem zweiten Konstantenbereich S20 und dem dritten Konstantenbereich S300 vollendet worden ist; in dem Fall, dass die vorhergehende Suche nicht vollendet worden ist, wird das Ergebnis der Bestimmung ”Nein”, und dann wird der Schritt 1500a wieder aufgenommen; in dem Fall, dass die vorhergehende Suche vollendet worden ist, wird das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1307 der Schritt 1310.
  • 14 ist ein Flussdiagramm, das die Letzter-Block-Suchverarbeitung für einen nicht-flüchtigen Datenspeicher in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt. In 14 ist der Schritt 1401 ein Schritt, bei dem die Letzter-Block-Suche startet. In dem Schritt 1402 wird eine Leerprüfung für den Prüfbereich S0 in jedem der Aufteilungsblöcke 113a bis 113d durchgeführt; dann folgt dem Schritt 1402 der Schritt 1403a.
  • In dem Schritt 1403a, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Leerprüfung in dem Schritt 1402 angibt, dass sämtliche der Aufteilungsblöcke 113a bis 113d Leerblöcke sind, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1403a der Schritt 1404; in dem Fall, dass irgendeiner Aufteilungsblöcke nicht ein Leerblock ist, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1403a der Schritt 1403b.
  • In dem Schritt 1404 wird in dem Statusspeicher 112a gespeichert, dass sämtliche der Aufteilungsblöcke Leerblöcke sind. In dem Schritt 1403b, der ein Bestimmungsschritt ist, wird in dem Fall, dass die Leerprüfung in dem Schritt 1402 angibt, dass sämtliche der Aufteilungsblöcke 113a bis 113d Nicht-Leerblöcke sind, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1403b der Schritt 1406; in dem Fall, dass irgendeiner der Aufteilungsblöcke ein Leerblock ist, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1403b der Schritt 1405.
  • In dem Schritt 1405 wird die Nummer des Aufteilungsblocks, der unmittelbar vor einem Leerblock ist und nicht leer ist, als die Letzter-Block-Nummer in dem Statusspeicher 112a gespeichert. In dem Schritt 1406, der ein Bestimmungsschritt ist, wird bestimmt, ob oder nicht nur ein Aufteilungsblock unter den Aufteilungsblöcken existiert, in dem der Prüfbereich S0 eine vorbestimmte spezifizierte Konstante und eine maximale Häufigkeit bzw. Anzahl einer Kollektivlöschung enthält; in dem Fall, dass der nur eine Aufteilungsblock existiert, wird das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1406 der Schritt 1407; in dem Fall, dass der nur eine Aufteilungsblock nicht existiert, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1406 der Schritt 1408.
  • In dem Schritt 1407 wird die Nummer des Aufteilungsblocks, in dem der Prüfbereich S0 eine vorbestimmte spezifizierte Konstante und eine maximale Häufigkeit bzw. Anzahl einer Kollektivlöschung enthält, als die Letzter-Block-Nummer in dem Statusspeicher 112a gespeichert. In dem Schritt 1408 wird in dem Statusspeicher 112a gespeichert, dass sämtliche der Aufteilungsblöcke Daten enthalten und daher ein abnormaler Zustand existiert, in dem die Letzter-Block-Nummer nicht identifiziert werden kann. Den Schritten 1404, 1405, 1407 und 1408 folgt der Normal-Beendigungsschritt 1410.
  • 15 ist ein Flussdiagramm, das die Letzter-Abschnitt-Suchverarbeitung für einen nicht-flüchtigen Datenspeicher in einem Steuergerät gemäß Ausführungsform 1 der vorliegenden Erfindung darstellt. In 15 ist der Schritt 1501 ein Schritt, bei dem eine Letzter-Abschnitt-Suche startet. In dem Schritt 1502 werden die Nummern der Abschnitte N10, N20 und N300, die jeweils einen Bezug zu einem der Abschnitte in den jeweiligen Datenspeicherungsbereichen S10, S20 bzw. S300 haben, als die Maximumabschnittsnummern bzw. maximalen Abschnittsnummern in einem Arbeitsspeicher gespeichert; dann folgt dem Schritt 1502 der Schritt 1503. In dem Schritt 1503 wird mittels Durchführung einer Leerprüfung für den Abschnitt mit der gespeicherten Maximumabschnittsnummer sichergestellt bzw. vergewissert, ob oder nicht der Abschnitt ein wirksamer Abschnitt, der nicht ein Leerabschnitt ist, oder ein unwirksamer Abschnitt ist; dann folgt dem Schritt 1503 der Schritt 1504.
  • In dem Schritt 1504, der ein Bestimmungsschritt ist, wird bestimmt, ob oder nicht der in dem Schritt 1503 geprüfte Abschnitt ein wirksamer Abschnitt ist; in dem Fall, dass der in dem Schritt 1503 geprüfte Abschnitt ein wirksamer Abschnitt ist, wird das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1504 der Schritt 1505; in dem Fall, dass der in dem Schritt 1503 geprüfte Abschnitt nicht ein wirksamer Abschnitt ist, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1504 der Schritt 1506. In dem Schritt 1505 wird die Abschnittsnummer, die in dem Schritt 1503 gespeichert worden ist, als die Nummer des wirksamen Abschnitts in dem Statusspeicher 112a gespeichert; dann folgt dem Schritt 1505 der Schritt 1510.
  • In dem Schritt 1506, der ein Bestimmungsschritt ist, wird bestimmt, ob oder nicht die in dem Schritt 1503 gespeicherte Abschnittsnummer größer als die Kopfabschnittsnummer ist; in dem Fall, dass die in dem Schritt 1503 gespeicherte Abschnittsnummer größer als die Kopfabschnittsnummer ist, wird das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1506 der Schritt 1507; in dem Fall, dass die in dem Schritt 1503 gespeicherte Abschnittsnummer mit der Kopfabschnittsnummer übereinstimmt, wird das Ergebnis der Bestimmung ”Nein”, und dann folgt dem Schritt 1506 der Schritt 1508. In dem Schritt 1507 wird der Wert in dem Arbeitsspeicher durch einen Wert ersetzt, der durch Subtrahieren von ”1” von der Abschnittsnummer erhalten ist, die aktuell gespeichert wird; dann folgt dem Schritt 1507 der Schritt 1503. In dem Schritt 1503 wird eine Leerprüfung auf den Abschnitt mit der reduzierten Abschnittsnummer angewendet.
  • Während die Schritte 1503, 1504, 1506 und 1507 in einem Kreislauf ausgeführt werden, wird in dem Fall, dass ein wirksamer Abschnitt in dem Schritt 1504 gefunden wird, das Ergebnis der Bestimmung ”Ja”, und dann folgt dem Schritt 1504 der Schritt 1505; in dem Fall, dass, bevor das Ergebnis der Bestimmung in dem Schritt 1504 ”Ja” wird, das Ergebnis der Bestimmung in dem Schritt 1506 ”Nein” wird, wird der Schritt 1506 durch den Schritt 1508 gefolgt, und dann endet die Umlaufoperation. In dem Schritt 1508 wird in dem Statusspeicher 112a gespeichert, dass kein wirksamer Abschnitt existiert; dann folgt dem Schritt 1508 der Schritt 1510.
  • Der Operationsstart-Schritt in jedem der vorhergehenden Steuerflüsse in 7 bis 15 ist ein Subroutinenprogramm-Startschritt; in dem Fall, dass der Steuerfluss normal endet, folgt dem ursprünglichen Schritt, bei dem der Subroutinenaufruf implementiert bzw. verwirklicht ist, der nächste Schritt. In dem Fall, dass der Steuerfluss abnormal endet, wird jedoch eine Abnormalitätsverarbeitung in einem nicht-veranschaulichten Steuerfluss durchgeführt, der in einer höheren Hierarchie als der Steuerfluss angeordnet ist. Beispielsweise wird in dem Fall, dass sämtliche der Aufteilungsblöcke 113a bis 113d nicht Leerblöcke sind, eine Abnormalitätsverlaufsinformation (die Anzahl bzw. Häufigkeit eines Abnormalitätsauftritts) über eine vorbestimmte Abnormalitäts-Codenummer gespeichert, als spezifizierte separate Daten in der dritten Konstante 108a; dann wird eine Initialisierungsverarbeitung für den Aufteilungsblock durchgeführt.
  • Außerdem wird unten der nicht-veranschaulichte Steuerfluss erläutert werden, der in einer höheren Hierarchie als die vorhergehenden Steuerflüsse angeordnet ist. Zuerst wird ein Datentransfer von dem Abbildspeicherbereich 108 des RAM-Speichers 112a an den nicht-flüchtigen Datenspeicher 113A wie unten beschrieben gesteuert.
    • (1) Wenn sämtliche der Aufteilungsblöcke 113a bis 113d initialisiert sind und ein Schreiben in dem ersten Block 113a durchgeführt wird, können nicht nur die erste Konstante 108a von dem ersten Hilfsmittel 105A sondern auch der Anfangswert der zweiten Konstante 108b und der bzw. die dritte Konstante 108c, in dem Abbildspeicherbereich 108 gespeichert, transferiert werden; zu diesem Zeitpunkt ist das zweite Hilfsmittel 106A nicht angeschlossen.
    • (2) Wenn die zweite Konstante 108b von dem zweiten Hilfsmittel 106A an den nicht-flüchtigen Datenspeicher 113A transferiert wird, wird allein die zweite Konstante 108b transferiert; die erste Konstante 108a und die dritte Konstante 108c in dem Abbildspeicherbereich 108 werden nicht an den nicht-flüchtigen Datenspeicher 113A transferiert.
    • (3) Wenn weder das erste Hilfsmittel 105A noch das zweite Hilfsmittel 106A angeschlossen sind, werden die erste Konstante 108a und die zweite Konstante 108b in dem Abbildspeicherbereich 108 nicht an den nicht-flüchtigen Datenspeicher 113A transferiert, und nur die dritte Konstante 108c kann transferiert werden.
  • Der Datentransfer von dem nicht-flüchtigen Datenspeicher 113A an den Abbildspeicherbereich 108 der RAM-Speichers 112A wird wie unten beschrieben gesteuert.
    • (1) In dem Fall, dass bei dem Timing, wenn der Energieversorgungsschalter angeschaltet wird bzw. ist, eine abnormale Abnahme in der Spannung der externen Energiequelle 101A oder eine Unterbrechung der Energieversorgungsleitung erfasst wird, oder in dem Fall, dass die Steuerenergiequelle 109A nicht irgendeine Ausgabe der Hilfsspannung Vup hat, zu dem Timing, wenn das Energieversorgungsrelais 102 geschlossen ist bzw. wird und der Mikroprozessor 1110A seinen Betrieb startet, werden die Letzte-Daten-Stücke der ersten Konstante 108a, der zweiten Konstante 108b und der dritten Konstante 108c von dem ersten Konstantenbereich S10, dem zweiten Konstantenbereich S20 und dem dritten Konstantenbereich S300 des nicht-flüchtigen Datenspeichers 113A an den Abbildspeicherbereich 108 des RAM-Speichers 112A transferiert.
    • (2) Selbst in dem Fall, dass keine abnormale Abnahme in der Spannung der externen Energiequelle 101A verursacht wird, keine Unterbrechung der Energieversorgungsleitung erfasst wird, und die Steuerenergiequelle 109A die normale Hilfsspannung Vup erzeugt, werden, wenn irgendein Codefehler in den Daten in dem Abbildspeicherbereich 108 erfasst wird, die letzten Daten in dem Subjekt-Datenspeicherungsbereich bzw. dem betrachteten Datenspeicherungsbereich von dem nicht-flüchtigen Datenspeicher 113A an den Abbildspeicherbereich 108 transferiert, unmittelbar nachdem der Energieversorgungsschalter angeschaltet wird oder während des Fahrens.
    • (3) Unmittelbar nachdem der Energieversorgungsschalter angeschaltet wird, wird eine Zustandsprüfung für den nicht-flüchtigen Datenspeicher 113A durchgeführt, und bevor der Energieversorgungsschalter abgeschaltet wird, wird bestimmt, ob oder nicht eine Statusinformation, die in dem Statusspeicher 112a gespeichert worden ist, und eine neu geprüfte Statusinformation miteinander übereinstimmen; in dem Fall, dass die vorigen Statusinformationsstücke bzw. Statusinformationselemente nicht miteinander übereinstimmen, wird bestimmt, dass auch in den in dem Abbildspeicherbereich 108 gespeicherten Daten ein Fehler verursacht wird, und dann werden, unmittelbar nachdem der Energieversorgungsschalter angeschaltet wird, die letzten Daten von dem nicht-flüchtigen Datenspeicher 113A an den Abbildspeicherbereich 108 transferiert.
  • In der obigen Erläuterung ist beschrieben worden, dass das Steuergerät 100A ein Fahrzeugsteuergerät, so wie ein Motorsteuergerät, ist; jedoch kann das Steuergerät 100A auch auf ein dediziertes Steuergerät in einer kommerziell verfügbaren Automatisierungsvorrichtung angewendet werden. In diesem Fall wird es ermöglicht, dass die Inhalte der zweiten Konstante, die durch den Hersteller der Automatisierungsvorrichtung zu schreiben sind, an den Hersteller des Steuergerätes gemeldet werden, und dass der Hersteller des Steuergerätes sowohl die erste als auch die zweite Konstante dazu bringt, in dem ersten Konstantenbereich S10 gespeichert zu sein, um den zweiten Konstantenbereich S20 wegzulassen.
  • Es wird außerdem ermöglicht, dass als die externe Energiequelle 101A nicht eine Batterie sondern eine gewöhnliche kommerzielle Wechselspannungsenergiequelle genutzt wird, dass der Energieversorgungsschaltkreis 109A die Steuerspannung Vcc aus einer gelieferten Wechselspannung erzeugt, und dass die Haltespannung Vup aus einer integrierten Batterie erhalten wird. Alternativ wird es außerdem ermöglicht, dass keine externe Batterie oder keine integrierte Batterie, so wie eine Hilfsenergiequelle, bereitgestellt wird, dass Daten, die in dem Abbildspeicherbereich 108 des RAM-Speichers 112A gespeichert worden sind, in einem Stromausfallmodus in dem nicht-flüchtigen Datenspeicher 113A gespeichert werden, und dass, jedes Mal wenn der Betrieb startet, die Daten von dem nicht-flüchtigen Datenspeicher 113A an den Abbildspeicherbereich 108 transferiert werden.
  • (3) Idee und Merkmale der Ausführungsform 1
  • [Gemäß Anspruch 1]
  • Wie aus der vorhergehenden Erläuterung ersichtlich ist, ist ein Steuergerät 100A gemäß Ausführungsform 1 der vorliegenden Erfindung versehen mit einem Mikroprozessor 110A, mit dem ein Eingangssignal-Schaltkreis 103 und ein Ausgangssignal-Schaltkreis 104 verbunden sind, einem nicht-flüchtigen Programmspeicher 111A, der mit dem Mikroprozessor 110A zusammenarbeitet, einem flüchtigen RAM-Speicher 112A und einem nicht-flüchtigen Datenspeicher 113A; das Steuergerät 100A überträgt ein Steuerausgangssignal an den Ausgangssignal-Schaltkreis 104, in Ansprechen auf ein in den nicht-flüchtigen Programmspeicher 111A geschriebenes Eingabe/Ausgabe-Steuerprogramm 107A, Werte von Steuerkonstanten, die in dem nicht-flüchtigen Datenspeicher 113A gespeichert sind, und den Signalzustand des Eingangssignal-Schaltkreises 103; der nicht-flüchtige Datenspeicher 113A ist aus einem nicht-flüchtigen Speicher mit einer Vielzahl von Aufteilungsblöcken 113a bis 113d gebildet, von denen jeder separat und kollektiv gelöscht werden kann.
  • Jeder der Aufteilungsblöcke 113a bis 113d ist ferner in eine Vielzahl von Datenspeicherungsbereichen S10, S20 und S300 aufgeteilt, deren Schreibfrequenzen und Schreib-Timings bzw. Schreib-Zeitverhältnisse voneinander unterschiedlich sind.
  • Die Datenspeicherungsbereiche S10, S20 und S300 sind mit Abschnitten S11 und S12, S21 bis S24 bzw. S301 bis S320 ausgestaltet, von denen jeder eine Einheit zum Lesen und Schreiben ist; eine Vielzahl separater Datenstücke bzw. Datenelemente ist in einer vorbestimmten Reihenfolge in jeden der Abschnitte geschrieben; die jeweiligen Datenkapazitäten C10, C20 und C300 der Abschnitte S11 und S12, S21 bis S24, und S301 bis S320 sind die Anzahl von Bytes, die der Anzahl separater Datenstücke entspricht, die in einen einzelnen Abschnitt zu schreiben sind.
  • Nachdem der Subjekt-Aufteilungsblock bzw. der betrachtete Aufteilungsblock kollektiv gelöscht ist, werden neue Datenstücke bzw. Datenelemente sequentiell in Schritten eines Abschnitts in der Vielzahl von Abschnitten S11 und S12, S21 bis S24, und S301 bis S320 gespeichert; wenn irgendein Datenspeicherungsbereich des Subjekt-Aufteilungsblocks mit Daten aufgefüllt ist und kein Leerabschnitt bzw. leerer Abschnitt existiert, wo keine Daten geschrieben sind, werden neue Daten in den Kopfabschnitt dieses Datenspeicherungsbereiches des anderen Aufteilungsblocks geschrieben, der vorbereitend kollektiv gelöscht worden ist; die letzten Daten, die in den anderen Datenspeicherungsbereich des ursprünglichen Aufteilungsblocks geschrieben worden sind, werden an den Kopfabschnitt in dem Datenspeicherungsbereich des neuen Aufteilungsblocks übertragen und darin gespeichert.
  • Wenigstens nachdem die letzten Daten an den neuen Aufteilungsblock übertragen und darin gespeichert worden sind, werden Daten in dem ursprünglichen Aufteilungsblock kollektiv gelöscht; die Anzahl von Abschnitten N10, N20 und N300, an die Datenspeicherungsbereiche S10, S20 und S300 zugeteilt, sind in Proportion zu der Schreibfrequenz.
  • [Gemäß Anspruch 2]
  • In jedem der Aufteilungsblöcke 113a bis 113c ist das Verhältnis der Gesamtdatenkapazität B, die die Summe der Multiplikationsprodukte der jeweiligen Anzahlen von Abschnitten von Neben-Datenspeicherungsbereichen bzw. kleineren Datenspeicherungsbereichen und den entsprechenden Datenkapazitäten ist, zu der Summe der Gesamtdatenkapazität B und der Gesamtdatenkapazität A des Haupt-Datenspeicherungsbereiches bzw. des größeren Datenspeicherungsbereiches, in dem das Multiplikationsprodukt der Anzahl von Abschnitten (N10, N20, N300) und der Datenkapazität (C10, C20, C300) maximal wird, d. h. das Verhältnis [B/(A + B)], kleiner als der Kehrwert der Anzahl N der Aufteilungsblöcke.
  • Wie oben beschrieben, ist gemäß Anspruch 2 der vorliegenden Erfindung das Verhältnis der Gesamtdatenkapazität der Haupt-Datenspeicherungsbereiche bzw. größeren Datenspeicherungsbereiche zu der Gesamtdatenkapazität der anderen Neben-Datenspeicherungsbereiche bzw. kleineren Datenspeicherungsbereiche derart begrenzt, um einen Bezug zu dem Kehrwert der Anzahl der Aufteilungsblöcke zu haben.
  • Wenn der Haupt-Datenspeicherungsbereich aufgefüllt ist und ein Übergang zu dem nächsten Aufteilungsblock durchgeführt wird, kann Ausführungsform 1 demgemäß, obwohl es erforderlich ist, die letzten Daten in einen anderen Datenspeicherungsbereich zu bewegen, die Anzahl bzw. Häufigkeit einer Kollektivlöschung in einem einzelnen Aufteilungsblock reduzieren, als Bereitstellung eines dedizierten Aufteilungsblocks für einen anderen Datenspeicherungsbereich.
  • [Gemäß Anspruch 3]
  • Der Datenspeicherungsbereich, der in jedem der Aufteilungsblöcke 113a bis 113d des nicht-flüchtigen Datenspeichers 113A bereitgestellt ist, ist in erste, zweite und dritte Konstantenbereiche S10, S20 und S300 oder wenigstens den ersten und den zweiten Konstantenbereich aufgeteilt.
  • Der erste Konstantenbereich S10 ist ein Speicherungsbereich für eine erste Konstante 108a, die dorthin von einem als Verladungsjustierungsausrüstung (shipping adjustment equipment) vorbereiteten ersten Hilfsmittel 105A transferiert und darin geschrieben wird, wenn der Hersteller des Steuergerätes 100A eine Verladungsjustierung des Steuergerätes ausführt.
  • Die erste Konstante 108a enthält wenigstens ein Element aus der Gruppe von einer Steuerkonstante, die der Modellklassifizierung des Steuergerätes 100A selbst entspricht, einer Auswahlnummerninformation, die Teil des Eingabe/Ausgabe-Steuerprogramms 107A ist, einer Korrekturkonstante zum Korrigieren von Variationen in Eigenschaften einer Komponente in dem Steuergerät 100A, und der Produktionsnummer des Steuergerätes.
  • Der zweite Konstantenbereich S20 ist ein Speicherungsbereich für eine zweite Konstante 108b, die dorthin von einem als eine Inspektions-/Justierungsausrüstung vorbereiteten zweiten Hilfsmittel bzw. Tool 106A transferiert und darin geschrieben wird, wenn der Hersteller der Ausrüstungsverwaltungsabteilung (equipment management department) eines integrierten Produktes oder einer integrierten Ausrüstung, worin das Steuergerät 100A integriert ist, eine Testbetriebsjustierung des integrierten Produktes oder der integrierten Ausrüstung ausführt.
  • Die zweite Konstante 108b enthält wenigstens ein Element aus der Gruppe von einer Steuerkonstante, die dem Modellnamen/Modell eines integrierten Produktes/Ausrüstung entspricht, worin das Steuergerät 100A integriert ist, einer Auswahlnummerninformation, die Teil des Eingabe/Ausgabe-Steuerprogramms 107A ist, und einer Korrekturkonstante zum Korrigieren von Variationen in Eigenschaften einer Eingabe/Ausgabe-Komponente, die mit dem Steuergerät 100A verbunden ist.
  • Der dritte Konstantenbereich S300 ist ein Speicherungsbereich für eine dritte Konstante 108c, die in dem RAM-Speicher 112A während des tatsächlichen Betriebs des Steuergerätes 100A gespeichert worden ist und dorthin transferiert und darin gespeichert wird, wenigstens unmittelbar nachdem das Steuergerät 100A gestoppt wird oder zu einem passenden Zeitpunkt während des Betriebs des Steuergerätes 100A.
  • Die dritte Konstante 108c enthält wenigstens ein Element aus einer Gruppe von einer Eigenschaftsänderungsinformation über eine eingebaute Komponente oder eine Externe-Verbindung-Komponente bzw. Komponente einer externen Verbindung des Steuergerätes 100A, einer Lerninformation zum Erhalten verbesserter Fahreigenschaften, und einer Abnormalitätsauftritts-Verlaufsinformation.
  • Wie oben beschrieben, ist gemäß Anspruch 3 der vorliegenden Erfindung der in jedem der Aufteilungsblöcke des nicht-flüchtigen Datenspeichers bereitgestellte Datenspeicherungsbereich in erste, zweite und dritte Konstantenbereiche oder wenigstens den ersten und den zweiten Konstantenbereich aufgeteilt, und die Anzahl von Abschnitten in jedem Konstantenbereich und die Anzahl von Bytes, d. h. die Datenkapazität des Abschnitts, sind bzw. werden vorbereitend bestimmt.
  • Demgemäß können nicht nur Daten leicht in jeweilige Leerabschnitte der Konstantenbereiche zu unterschiedlichen Zeiten und Orten geschrieben werden, sondern es können auch die Schreibfrequenzen in den Konstantenbereichen leicht geschätzt werden, so dass die Anzahl von Abschnitten in jedem Konstantenbereich und die Anzahl von Bytes leicht bestimmt werden können.
  • [Gemäß Anspruch 4]
  • Der in jedem der Aufteilungsblöcke des nicht-flüchtigen Datenspeichers 113A bereitgestellte Datenspeicherungsbereich hat einen Abschnitt S1, der als ein Prüfbereich S0 dient, zusätzlich zu den ersten, zweiten und dritten Konstantenbereichen S10, S20 und S300, oder dem ersten und dem zweiten Konstantenbereich.
  • Wenn wirksame Daten bzw. Effektivdaten in wenigstens einen Abschnitt in sämtlichen der Datenspeicherungsbereiche S10, S20 und S300 geschrieben werden, nachdem die Aufteilungsblöcke 113a bis 113d kollektiv gelöscht sind, wird eine vorbestimmte spezifizierte Konstante in den ersten Halbbereich des Abschnitts S1 geschrieben, der einer der Abschnitte in dem Prüfbereich S0 ist; in dem Fall, dass wirksame Daten nicht in irgendeinen Abschnitt in den vorhergehenden Datenspeicherungsbereichen geschrieben sind, wird jeder Datenspeicherungsbereich ein Leerblock, wo die spezifizierte Konstante nicht geschrieben wird.
  • Wie oben beschrieben, wird gemäß Anspruch 4 der vorliegenden Erfindung ein Prüfbereich in jedem der Aufteilungsblöcke in dem nicht-flüchtigen Datenspeicher bereitgestellt, und in dem Prüfbereich wird eine Bestimmungsinformation darüber gespeichert, ob oder nicht wenigstens ein geschriebener Abschnitt in jedem Datenspeicherungsbereich des Aufteilungsblocks existiert.
  • Demgemäß wird in dem Prozess eines Aufteilungsblocksübergangs, nachdem die letzten Daten in jeden Datenspeicherungsbereichs des nächsten Blocks geschrieben sind, ein Schreiben in dem Prüfbereich des nächsten Blocks durchgeführt; in dem Fall, dass der Prüfbereich nicht leer ist, erfolgt deshalb eine Vergewisserung, dass letzte Daten in jedem Datenspeicherungsbereich geschrieben worden sind, und in dem Fall, dass der Prüfbereich eine große Anzahl von Aufteilungsblöcken hat, kann durch eine Überwachung der Inhalte des Prüfbereichs der letzte Block leicht gefunden werden.
  • [Gemäß Anspruch 5]
  • In dem zweiten Halbbereich des Abschnitts S1, der einer der Abschnitte in dem Prüfbereich S0 ist, werden Daten über die Häufigkeit bzw. Anzahl einer Kollektivlöschung für die Aufteilungsblöcke geschrieben, wenn die spezifizierte Konstante geschrieben wird; in dem Fall, dass ein Übergang des Aufteilungsblocks durchgeführt wird, wird die Häufigkeit einer Kollektivlöschung des Nach-Übergang-Aufteilungsblocks ein Wert, der erhalten wird durch Addieren von ”1” zu der Häufigkeit einer Kollektivlöschung, die in den Prüfbereich des aktuellen Aufteilungsblocks unmittelbar vor dem Übergang geschrieben worden ist.
  • Wie oben beschrieben, wird gemäß Anspruch 5 der vorliegenden Erfindung in dem Prüfbereich in dem Aufteilungsblock des nicht-flüchtigen Datenspeichers die Anzahl bzw. Häufigkeit einer Kollektivlöschung geschrieben.
  • Demgemäß kann die Lebensdauerverwaltung des nicht-flüchtigen Datenspeichers leicht durchgeführt werden, und es kann bestimmt werden, dass – unter einer Vielzahl von Aufteilungsblöcken – der Aufteilungsblock mit einer größten Häufigkeit einer Kollektivlöschung der letzte Aufteilungsblock ist.
  • [Gemäß Anspruch 6]
  • In dem Prüfbereich S0 ist wenigstens ein Reserveabschnitt S2 zu einem Abschnitt S1 hinzugefügt, in dem die spezifizierte Konstante und Daten über die Häufigkeit einer Kollektivlöschung geschrieben sind; in dem Fall, dass, wenn eine Kollektivlöschung in dem Aufteilungsblock durchgeführt wird, der Abschnitt S1, der einer der Abschnitte in dem Prüfbereich S0 ist, nicht gelöscht werden kann, wird die Kollektivlöschung erneut durchgeführt, und in dem Fall, dass der Abschnitt S1 immer noch nicht gelöscht werden kann, wird der Reserveabschnitt S2 anstelle des Abschnitts S1 genutzt.
  • Wie oben beschrieben wird gemäß Anspruch 6 der vorliegenden Erfindung in dem Prüfbereich in dem Aufteilungsblock des nicht-flüchtigen Datenspeichers ein Reserveabschnitt bei der Annahme bereitgestellt, dass ein Abschnitt nicht perfekt gelöscht wird.
  • Selbst wenn ein Abschnitt nicht perfekt gelöscht wird, kann demgemäß verhindert werden, dass alle von einem Aufteilungsblock nutzlos werden.
  • [Gemäß Anspruch 7]
  • Der nicht-flüchtige Datenspeicher 113A ist mit wenigstens drei Aufteilungsblöcken 113a bis 113d versehen; in dem Fall, dass kein Leerabschnitt in irgendeinem der Datenspeicherungsbereiche S10, S20 und S300 (z. B. der dritte Konstantenbereich S300) des Aufteilungsblocks 113a existiert, wo ein Schreiben aktuell durchgeführt wird, wird zuerst der dritte Aufteilungsblock 113c kollektiv gelöscht; dann wird als eine Vergewisserungsverarbeitung der zweite Aufteilungsblock 113b kollektiv gelöscht, und neue Daten werden in den Kopfabschnitt in dem Datenspeicherungsbereich (der dritte Konstantenbereich S300) des zweiten Aufteilungsblocks 113b geschrieben; die letzten Daten, die in andere Datenspeicherungsbereiche (die ersten und zweiten Konstantenbereiche S10 und S20) des ursprünglichen Aufteilungsblocks 113a geschrieben worden sind, werden an den Kopfabschnitt in dem Datenspeicherungsbereich (die ersten und zweiten Konstantenbereiche S10 und S20) des zweiten Aufteilungsblocks 113b übertragen und darin gespeichert; bezüglich des Übergangs der Aufteilungsblöcke 113a bis 113d bewegen sich die letzten Daten zu dem Aufteilungsblock, der ein Leerblock und vor dem Leerblock ist, der kollektiv gelöscht worden ist.
  • Wie oben beschrieben, ist gemäß Anspruch 7 der vorliegenden Erfindung der nicht-flüchtige Datenspeicher mit drei oder mehr Aufteilungsblöcken versehen, und wenn ein Übergang zwischen den Aufteilungsblöcken durchgeführt wird, wird der dritte Aufteilungsblock im Voraus kollektiv gelöscht.
  • In dem Fall, dass eine Stromunterbrechung auftritt, während Daten in dem zweiten Aufteilungsblock geschrieben werden, und dann der Energieversorgungsschalter erneut angeschaltet wird, wird demgemäß nach dem dritten Aufteilungsblock gesucht, der im Voraus gelöscht worden ist und ein Leerblock ist, und Daten können in dem Aufteilungsblock unmittelbar vor dem dritten Aufteilungsblock geschrieben werden; indem immer ein Leerblock sichergestellt bzw. gewährleistet wird, kann deshalb der Aufteilungsblock, in dem ein Schreiben durchgeführt werden soll, leicht gefunden werden.
  • In dem Fall, dass der Aufteilungsblock, in dem eine Kollektivlöschung nicht vollendet worden ist, der nächste Aufteilungsblock wird, wird außerdem eine Kollektivlöschung als Vergewisserungsverarbeitung durchgeführt, und dann wird ein Datenschreiben gestartet; deshalb kann ein Eingriff eines unwirksamen Abschnitts bzw. Ineffektivabschnitts verhindert werden.
  • In dem Fall, dass der Aufteilungsblock, der einmal kollektiv gelöscht worden ist, erneut kollektiv gelöscht wird, beeinträchtigt nichts die Lebensdauer; deshalb werden die Daten über die Häufigkeit einer Kollektivlöschung, die in einen Prüfbereich geschrieben sind, als eine Einzel-Kollektivlöschungsinstanz zu dem Zeitpunkt gezählt, wenn Daten in den Aufteilungsblock geschrieben werden, und dann wird eine spezifizierte Konstante in den Prüfbereich geschrieben.
  • [Gemäß Anspruch 8]
  • Der nicht-flüchtige Programmspeicher 111A enthält das Eingabe/Ausgabe-Steuerprogramm 107A, konstante und unveränderliche feste Konstanten für das Eingabe/Ausgabe-Steuerprogramm 107A, und eine Referenzkonstante 107a mit Bezug zu der ersten Konstante 108a, der zweiten Konstante 108b oder der dritten Konstante 108c.
  • Die Referenzkonstanten 107a sind Oberer/Unterer-Grenzwert-Daten, die eine zulässige Variationsspanne mit Bezug zu einem Teil variabler Informationselemente in der ersten Konstante 108a, der zweiten Konstante 108b und der dritten Konstante 108c oder einem Teil von Fahrcharakteristika-Lerninformationselementen darstellen, und Anfangswert-Einstellungsdaten, die auf unspezifizierte Konstanten in der ersten Konstante 108a, der zweiten Konstante 108b und der dritten Konstante 108c angewendet sind; die Anfangswert-Einstellungsdaten werden an die Kopfabschnitte der ersten, zweiten, dritten Konstantenbereich S10, S20 und S300 eines der Aufteilungsblöcke 113a bis 113d übertragen und darin gespeichert, wenigstens bevor das Steuergerät anfangs betrieben wird.
  • Wie oben beschrieben, sind gemäß Anspruch 8 der vorliegenden Erfindung feste Konstanten und Referenzkonstanten in dem nicht-flüchtigen Programmspeicher 111A gespeichert.
  • Weil konstante und unveränderliche feste Konstanten in dem nicht-flüchtigen Datenspeicher gespeichert sind, kann demgemäß die Kapazität des nicht-flüchtigen Datenspeichers reduziert werden; hinsichtlich einer Eigenschaftsänderungsinformation und einer Lerninformation, deren Konstanten sequentiell während des Betriebs des Steuergerätes bestimmt werden, kann durch vorbereitendes Speichern von Anfangseinstellungswerten in dem nicht-flüchtigen Datenspeicher der Betrieb des Steuergerätes mit nächstbesten bzw. zweitbesten Konstanten gestartet werden.
  • Hinsichtlich der Eigenschaftsänderungsinformation und der Lerninformation, deren Konstanten sequentiell während des Betriebs des Steuergerätes bestimmt werden, kann außerdem bestimmt werden, ob oder nicht bestimmte Konstanten innerhalb einer vorbestimmten Spanne sind, oder es kann bestimmt werden, ob oder nicht ein Fehler in den Konstanten aufgetreten ist, die in dem RAM-Speicher gespeichert sind.
  • Darüber hinaus können in dem Fall, dass ein Teil der ersten und zweiten Konstanten nicht spezifiziert worden ist, als temporäre Konstanten Anfangswertdaten in den Referenzkonstanten benutzt werden.
  • [Gemäß Anspruch 9]
  • Der Mikroprozessor 110A erzeugt ein Kollektivlöschungsbefehl-Signal für den nicht-flüchtigen Datenspeicher 113A und ein Leerprüfbefehl-Signal; der nicht-flüchtige Datenspeicher 113A empfängt den Leerprüfbefehl und überträgt dann wenigstens eine Bestimmungsinformation darüber, ob oder nicht jeder Abschnitt gelöscht worden ist.
  • Der Mikroprozessor 110A bestimmt einen Abschnitt, der durch eine Kollektivlöschung gelöscht worden ist, als einen Leerabschnitt bzw. leeren Abschnitt.
  • In dem Fall, dass ein Abschnitt existiert, der nicht durch die Kollektivlöschung gelöscht werden kann, oder in dem Fall, dass aufgrund einer Stromunterbrechung während einer Schreiboperation für den nicht-flüchtigen Datenspeicher 113A die Tatsache erfasst wird, dass ein Daten-beschriebenes Teilstück und ein Daten-unbeschriebenes Teilstück gleichzeitig in einem Abschnitt enthalten sind, bestimmt der Mikroprozessor 110A den vorhergehenden Abschnitt als einen unwirksamen Abschnitt, und bestimmt den Abschnitt, der Daten enthält und nicht ein unwirksamer Abschnitt ist, als einen wirksamen Abschnitt.
  • Beim Durchführen des Lesens in dem nicht-flüchtigen Datenspeicher 113A durchsucht der Mikroprozessor 110A den letzten Abschnitt durch den Kopfabschnitt jedes Datenspeicherungsbereiches nach einem wirksamen Abschnitt und liest Daten, die in einem wirksamen Abschnitt gespeichert sind, der zuerst erfasst wird.
  • Beim Durchführen des Schreibens in dem nicht-flüchtigen Datenspeicher 113A durchsucht der Mikroprozessor 110A den letzten Abschnitt durch den Kopfabschnitt jedes Datenspeicherungsbereiches (in einer Anfangsrichtung) nach einem wirksamen Abschnitt, führt eine Suche in der entgegengesetzten Richtung von einem wirksamen Abschnitt durch, der zuerst erfasst wird, und schreibt dann Daten in einen Leerabschnitt, der zuerst erfasst wird.
  • Wie oben beschrieben, durchsucht gemäß Anspruch 9 der vorliegenden Erfindung der Mikroprozessor, durch Bestimmen von Abschnitten als Leerabschnitte, unwirksame Abschnitte oder wirksame Abschnitte, sequentiell jeden Datenspeicherungsbereich von dem letzten Abschnitt, um einen Leseabschnitt und einen Schreibabschnitt zu bestimmen.
  • Selbst wenn ein unwirksamer Abschnitt existiert, wird demgemäß der Aufteilungsblock nicht unmittelbar aktualisiert oder kollektiv gelöscht, und Daten werden derart in den nächsten Abschnitt geschrieben, dass kein Leerabschnitt übrig bleibt; deshalb kann die Anzahl bzw. Häufigkeit einer Kollektivlöschung in dem nicht-flüchtigen Datenspeicher verringert werden.
  • Hinsichtlich des Lesens des nicht-flüchtigen Datenspeichers kann ein Lesen in einem wirksamen Abschnitt durchgeführt werden, wobei ein unwirksamer Abschnitt vernachlässigt wird.
  • [Gemäß Anspruch 10]
  • Beim Durchführen eines Schreibens in dem nicht-flüchtigen Datenspeicher 113A durchsucht der Mikroprozessor 110A den letzten Abschnitt durch den Kopfabschnitt jedes Datenspeicherungsbereiches (in einer Anfangsrichtung) nach einem wirksamen Abschnitt, führt eine Suche in der entgegengesetzten Richtung von einem wirksamen Abschnitt durch, der zuerst erfasst wird, und schreibt dann Daten in einen Leerabschnitt, der zuerst erfasst wird; in dem Fall, dass Daten nicht korrekt in dem Leerabschnitt geschrieben werden können, führt der Mikroprozessor 110A eine Suche in der Anfangsrichtung durch und schreibt Daten in einen neu erfassten Leerabschnitt.
  • Wie oben beschrieben, wird gemäß Anspruch 10 der vorliegenden Erfindung ein Schreiben in dem nächsten Abschnitt durchgeführt, wenn ein Schreiben in dem Abschnitt des nicht-flüchtigen Datenspeichers fehlschlägt.
  • Selbst in dem Fall, dass eine abnormale Zelle in einem Teil des Schreibabschnitts existiert, können demgemäß richtige Daten in den nächsten Abschnitt geschrieben werden.
  • [Gemäß Anspruch 11]
  • Der RAM-Speicher 112A enthält einen Statusspeicher 112a, in den Daten entsprechend dem Löschzustand/Schreibzustand des nicht-flüchtigen Datenspeichers 113A geschrieben sind.
  • In dem Statusspeicher 112a sind wenigstens eine Identifizierungsnummerninformation für den letzten Aufteilungsblock, unter den Aufteilungsblöcken 113a bis 113d, in dem ein Schreiben aktuell durchgeführt wird, und eine Abschnittsnummerninformation für den Abschnitt, unter den Abschnitten in jedem der Datenspeicherungsbereiche S10, S20 und S300 in dem letzten Aufteilungsblock, gespeichert, in dem letzte Daten geschrieben sind.
  • Wie oben beschrieben, enthält gemäß Anspruch 11 der vorliegenden Erfindung der RAM-Speicher 112A einen Statusspeicher 112a, in den/dem Daten entsprechend dem Löschzustand/Schreibzustand des nicht-flüchtigen Datenspeichers 113A geschrieben sind.
  • Demgemäß ist es erforderlich, eine Suche nach der Nummer eines Leseabschnitts, in dem letzte Daten gespeichert sind, oder eine Suche nach der Nummer eines Schreibabschnitts, in dem letzte Daten geschrieben sind, nur einmal durchzuführen, nachdem der Energieversorgungsschalter angeschaltet ist; deshalb wird die Verarbeitungsgeschwindigkeit hoch.
  • [Gemäß Anspruch 12]
  • Der Mikroprozessor 110A, der RAM-Speicher 112A, der nicht-flüchtige Programmspeicher 111A und der nicht-flüchtige Datenspeicher 113A werden mit elektrischer Energie von der externen Energiequelle 101A über den Ausgangskontakt des Energieversorgungsrelais 102, das vorgespannt ist, wenn der Ansteuerleistungsschalter geschlossen wird, und einen Ansteuerleistungsanschluss 102a versorgt.
  • Das Energieversorgungsrelais 102 wird in einer vorbestimmten Zeit entregt, nachdem der Energieversorgungsschalter geöffnet wird; der RAM-Speicher 112A wird mit elektrischer Energie von einer Hilfsenergiequelle versorgt, selbst während der Ansteuerleistungsanschluss 102a nicht mit elektrischer Energie versorgt wird, oder der RAM-Speicher 112A wird mit elektrischer Energie versorgt, während der Ansteuerleistungsanschluss 102a nicht mit elektrischer Energie versorgt wird.
  • Die Hilfsenergiequelle ist eine externe Batterie 101A, die direkt mit dem Hilfsenergiequellenanschluss 101a oder einer eingebauten Batterie verbunden ist.
  • In dem Fall, dass, während das Energieversorgungsrelais 102 nicht vorgespannt ist, die Versorgung mit elektrischer Energie für den RAM-Speicher 112A gestoppt wird, in dem Fall, dass, selbst wenn die Energieversorgung aufrecht erhalten wird, die Spannung der Hilfsenergiequelle abnormal abnimmt, oder der Hilfsenergiequellenschaltkreis abgetrennt wird und die Speicherungsinhalte des RAM-Speichers 112A verloren sind, in dem Fall, dass, während die Inhalte der Statusspeichers 112a abnormal sind, das Energieversorgungsrelais 102 vorgespannt ist und der Mikroprozessor 110A ”seinen Betrieb startet”, oder in dem Fall, dass der Mikroprozessor 110A ”tatsächlich arbeitet”, werden die Inhalte des letzten Abschnitts, die wenigstens in dem dritten Datenspeicherungsbereich S300 des nicht-flüchtigen Datenspeichers 113A geschrieben sind, an den Abbildspeicherbereich 108 des RAM-Speichers 112A übertragen, und der Mikroprozessor 110a steuert Eingaben und Ausgaben auf Grundlage der dritten Konstante 103c, die in dem Abbildspeicherbereich 108 geschrieben ist.
  • Wie oben beschrieben, kann gemäß Anspruch 12 der vorliegenden Erfindung, ungeachtet davon, ob oder nicht eine Hilfsenergiequelle zum Aufrechterhalten des Speicherungszustands des RAM-Speichers existiert, wenn eine Abnormalität in den Inhalten des RAM-Speichers existiert, oder wenn die Inhalte des RAM-Speichers nicht verlässlich sind, die in dem nicht-flüchtigen Datenspeicher gespeicherte dritte Konstante gelesen und genutzt werden.
  • Darüber hinaus können Lerndaten und eine Abnormalitätsauftritts-Verlaufsinformation, die in einer Aktualisierungsweise in dem RAM-Speicher während des Betriebs geschrieben sind, an den nicht-flüchtigen Datenspeicher transferiert und darin behalten werden während der verzögerten Energieversorgungsperiode des Energieversorgungsrelais.
  • Ausführungsform 2
  • (1) Detaillierte Beschreibung der Ausgestaltung
  • Nun wird die Ausgestaltung eines Steuergerätes gemäß Ausführungsform 2 der vorliegenden Erfindung auf Grundlage von 16, die ein Blockdiagramm ist, das die Gesamtausgestaltung des Steuergerätes veranschaulicht, und 17 beschrieben werden, die ein Abschnittsausgestaltungsdiagramm eines nicht-flüchtigen Datenspeichers ist. Dieselben Bezugszeichen in den jeweiligen Figuren geben dieselben oder äquivalente Bausteine an.
  • In 16 ist ein Steuergerät 100B hauptsächlich mit einem Mikroprozessor 110B, einem nicht-flüchtigen Programmspeicher 111B, einem flüchtigen RAM-Speicher 112B und einem nicht-flüchtigen Datenspeicher 113B ausgestaltet, der ein Flash-Speicher ist; in der Praxis bildet das Steuergerät 100B beispielsweise eine spezielle programmierbare Steuereinheit, die in Fabrikanlagen genutzt wird und mit elektrischer Energie von einer externen Energiequelle 101B, die eine gewöhnliche kommerzielle Wechselspannungsquelle ist, über ein Energieversorgungsrelais 102 versorgt wird. Wenn ein nicht-veranschaulichter Leistungsschalter bzw. Netzschalter angeschaltet wird, schließt das Energieversorgungsrelais 102 unmittelbar, und wenn der Leistungsschalter abgeschaltet wird, öffnet das Energieversorgungsrelais 102 nach einer vorbestimmten verzögerten Energieversorgungsperiode.
  • Ein Eingangssignal-Schaltkreis 103 ist ein Offen/Geschlossen-Sensor oder ein Analogsensor, der mit dem Steuergerät 100B über einen nicht-veranschaulichten Verbinder verbunden ist; der Eingangssignal-Schaltkreis 103 ist mit dem Mikroprozessor 110B über einen nicht-veranschaulichten Eingangsschnittstellen-Schaltkreis und einen Eingangssignalbus 130 verbunden. Ein Ausgangssignal-Schaltkreis 104 ist eine elektrische Last, so wie ein Antriebsgerät bzw. eine Ansteuervorrichtung oder eine Anzeigevorrichtung, die mit dem Steuergerät 100A über einen nicht-veranschaulichten Verbinder verbunden ist; der Ausgangssignal-Schaltkreis 104 ist mit dem Mikroprozessor 110B über einen nicht-veranschaulichten Ausgangsschnittstellen-Schaltkreis und einen Ausgangssignalbus 140 verbunden.
  • Ein erstes Hilfsmittel bzw. Tool 105B ist mit dem Mikroprozessor 110B über einen seriellen Signalbus 150 verbunden, wenn eine Verladungseinstellung/Inspektion oder eine Wartung/Inspektion auf das Steuergerät 100B angewendet wird; das erste Hilfsmittel 105B ist aus einer mobilen Vorrichtung mit einer nicht-veranschaulichten Tastatur und einer nicht-veranschaulichten Anzeigevorrichtung gebildet. Ein zweites Hilfsmittel 106B ist in Reihe mit dem Steuergerät 100B derart geschaltet, um das erste Hilfsmittel 105B zu ersetzen; das zweite Hilfsmittel 106B ist als ein Verladungseinstellungshilfsmittel hergerichtet, wenn der Hersteller eines integrierten Produktes, so wie einer Ausrüstung, in dem das Steuergerät 100B integriert ist, eine Verladungsjustierung auf das integrierte Produkt anwendet, oder das zweite Hilfsmittel 106B wird genutzt, wenn die Ausrüstungsverwaltungsabteilung eines Benutzers, der das Steuergerät 100B nutzt, eine Installationsjustierung auf die Ausrüstung anwendet; das zweite Hilfsmittel 106B ist aus einer mobilen Vorrichtung mit einer nicht-veranschaulichten Tastatur und einer nicht-veranschaulichten Anzeigevorrichtung gebildet. Außerdem sind die Ausrüstungsverwaltungsabteilung (equipment management department) und der Hersteller eines integrierten Produktes in derselben Kategorie; deshalb wird in den nachfolgenden Erläuterungen hier auf die Ausrüstungsverwaltungsabteilung und den Hersteller als einen ”Hersteller eines integrierten Produktes” verwiesen werden.
  • Ein Eingabe/Ausgabe-Steuerprogramm 107B, das in dem Steuergerät 100B genutzt wird, ist in dem zweiten Hilfsmittel 106B gespeichert; eine zur Sequenzsteuerung bzw. Ablaufsteuerung geeignete Benutzersprache wird für das Eingabe/Ausgabe-Steuerprogramm 107B genutzt. Durch ein Systemprogramm in einem Masken-ROM-Speicher 111b ersetzt der Mikroprozessor 110B das in der Benutzersprache programmierte Eingabe/Ausgabe-Steuerprogramm 107B durch eine für den Mikroprozessor 110B geeignete Maschinensprache, um eine Eingabe/Ausgabe-Steuerung durchzuführen.
  • Das Systemprogramm enthält ferner ein Kommunikationssteuerprogramm zum Steuern einer Kommunikation mit dem ersten Hilfsmittel 105B und dem zweiten Hilfsmittel 106B; durch das Systemprogramm transferiert der Mikroprozessor 110B eine in dem ersten Hilfsmittel 105B gespeicherte erste Konstante 108a an einen ersten Konstantenbereich S10 in dem nicht-flüchtigen Datenspeicher 113B. Durch das Systemprogramm in dem Masken-ROM-Speicher 111b transferiert der Mikroprozessor 110B ein in dem zweiten Hilfsmittel 106B gespeichertes Eingabe/Ausgabe-Steuerprogramm 107B an den nicht-flüchtigen Programmspeicher 111B und transferiert eine in dem zweiten Hilfsmittel 106B gespeicherte zweite Konstante 108b an einen zweiten Konstantenbereich S20 in dem nicht-flüchtigen Datenspeicher 113B.
  • Das Eingabe/Ausgabe-Steuerprogramm 107B enthält konstante und unveränderliche feste Konstanten für das Eingabe/Ausgabe-Steuerprogramm 107B und eine Referenzkonstante 107b mit Bezug zu der ersten Konstante 108a, der zweiten Konstante 108b oder der dritten Konstante 108c. Die Referenzkonstanten 107b sind Oberer/Unterer-Grenzwert-Daten, die eine zulässige Variationsspanne mit Bezug zu einem Teil variabler Informationselemente in der ersten Konstante 108a, der zweiten Konstante 108b und der dritten Konstante 108c oder einem Teil von Fahrcharakteristika-Lerninformationselementen darstellen, und Anfangswert-Einstellungsdaten, die auf unspezifizierte Konstanten in der ersten Konstante 108a, der zweiten Konstante 108b und der dritten Konstante 108c angewendet sind; die Anfangswert-Einstellungsdaten werden an die Kopfabschnitte der ersten, zweiten, dritten Konstantenbereiche S10, S20 und S300 eines der Aufteilungsblöcke 113a bis 113d, später beschrieben, übertragen und darin gespeichert, wenigstens bevor das Steuergerät anfangs betrieben wird.
  • Das erste Hilfsmittel 105B enthält ferner die erste Konstante 108a, die an den nicht-flüchtigen Datenspeicher 113B übertragen wird; die erste Konstante 108a enthält eine Steuerkonstante, die der Modellklassifizierung des Steuergerätes 100B selbst entspricht, eine Auswahlnummerninformation, die Teil des Eingabe/Ausgabe-Steuerprogramms 107B ist, eine Korrekturkonstante zum Korrigieren von Variationen in Eigenschaften einer Komponente in dem Steuergerät 100B, und eine Steuergerät-eigene bzw. Steuergerät-inhärente Information, so wie die Produktnummer des Steuergerätes.
  • Die erste Konstante 108a wird von dem ersten Hilfsmittel 105B an den nicht-flüchtigen Datenspeicher 113B oder an den flüchtigen RAM-Speicher 112B transferiert, wenn eine bereitgestellte Übertragungsoperationstaste gedrückt wird; die erste Konstante 108a wird von dem RAM-Speicher 112B an den nicht-flüchtigen Datenspeicher 113B zu dem Timing transferiert, wenn der Leistungsschalter für das Steuergerät 100B geöffnet wird und eine verzögerte Energieversorgung durch das Energieversorgungsrelais 102 durchgeführt wird.
  • Das zweite Hilfsmittel 106B enthält ferner die zweite Konstante 108b, die an den nicht-flüchtigen Datenspeicher 113B übertragen wird; die zweiten Konstante 108b bilden Steuerkonstanten entsprechend dem Modellnamen/Modell eines integrierten Produktes/Ausrüstung, worin das Steuergerät 100B integriert ist, oder einer dem integrierten Produkt eigenen Information, so wie eine Korrekturkonstante zum Korrigieren von Variationen in Eigenschaften einer mit dem Steuergerät 100B verbundenen Eingabe/Ausgabe-Komponente. Die zweite Konstante 108b wird zu dem Timing bzw. Zeitverhältnis transferiert, wenn die Übertragungsoperationstaste gedrückt wird, oder wenn der Energieversorgungsschalter für das Steuergerät 100B abgeschaltet wird.
  • Der Mikroprozessor 110B, der eine Ansteueroperation durch das in dem nicht-flüchtigen Programmspeicher 111B gespeicherte Eingabe/Ausgabe-Steuerprogramm 107B durchführt, erschafft die dritte Konstante 108c, so wie eine Eigenschaftsänderungsinformation über in dem Steuergerät 100B aufgenommene Komponenten oder Komponenten einer externen Verbindung, Lerninformation zum Erhalten verbesserter Fahrcharakteristika oder Abnormalitätsauftritts-Verlaufsinformation, und speichert sie in dem RAM-Speicher 112B. Der nicht-flüchtige Datenspeicher 113B ist ein Flash-Speicher, in dem eine Kollektivlöschung in Schritten eines Blocks durchgeführt wird, und enthält den ersten Aufteilungsblock 113e und den zweiten Aufteilungsblock 113f.
  • Als Nächstes ist in 17 die Ausgestaltung jedes Aufteilungsblocks dargestellt. In 17 hat jeder der Aufteilungsblöcke 113e und 113f einen ersten Konstantenbereich S10, einen zweiten Konstantenbereich S20 und einen dritten Konstantenbereich S300, die als Datenspeicherungsbereiche dienen, und einen Prüfbereich S0. Der Prüfbereich S0 ist mit einem Abschnitt S1 mit einer Datenkapazität C0 von beispielsweise 16 Bytes und einem Reserveabschnitt S2 ausgestaltet, der anstelle des Abschnitts S1 in dem Fall genutzt wird, dass der Abschnitt S1 abnormal ist.
  • Der erste Konstantenbereich S10 ist mit vier Abschnitten S11 bis S14 (die Anzahl von Abschnitten N10 ist 4) ausgestaltet, die jeweils eine Datenkapazität C10 von beispielsweise 32 Bytes haben; somit ist die Gesamtdatenkapazität 128 Bytes (C10 × N10 = 32 × 4 = 128). Der zweite Konstantenbereich S20 ist mit acht Abschnitten S21 bis S28 (die Anzahl der Abschnitte N20 ist 8) ausgestaltet, die jeweils eine Datenkapazität C20 von beispielsweise 96 Bytes haben; somit ist die Gesamtdatenkapazität 768 Bytes (C20 × N20 = 96 × 8 = 768).
  • Der dritte Konstantenbereich S300 ist mit vierzig Abschnitten S301 bis S340 (die Anzahl von Abschnitten N300 ist 40) ausgestaltet, die jeweils eine Datenkapazität C300 von beispielsweise 384 Bytes haben; somit ist die Gesamtdatenkapazität 15360 Bytes (C300 × N300 = 384 × 40 = 15360).
  • Jeder der Abschnitte ist eine Minimumeinheit bzw. minimale Einheit zum Schreiben/Lesen; eine Vielzahl separater Datenstücke bzw. Datenelemente ist in einer vorbestimmten Reihenfolge in jeden der Abschnitte geschrieben; die jeweiligen Wert der Datenkapazitäten C10, C20 und C300 sind die Anzahl von Bytes, die der Anzahl separater Datenstücke bzw. Datenelemente entspricht, die in einem einzelnen Abschnitt geschrieben sind. Außerdem sind in jedem der Abschnitte Summendaten zum Erfassen eines Codefehlers oder Fehlerkorrekturdaten zusätzlich zu einer Vielzahl separater Datenstücke geschrieben.
  • In Ausführungsform 2 ist in jedem der Aufteilungsblöcke 113e und 113f das Verhältnis der Gesamtdatenkapazität B (= N0 × C0 + N10 × C10 + N20 × C20 = 16 × 2 + 32 × 4 + 96 × 8 = 928), die das Multiplikationsprodukt der jeweiligen Anzahlen von Abschnitten von kleineren Datenspeicherungsbereichen bzw. Neben-Datenspeicherungsbereichen S0, S10 und S20 und den entsprechenden Datenkapazitäten ist, zu der Summe der Gesamtdatenkapazität B und der Gesamtdatenkapazität (A = N300 × C300 = 40 × 384 = 15360) des größeren Datenspeicherungsbereichs bzw. Haupt-Datenspeicherungsbereichs S300, in dem das Multiplikationsprodukt der Anzahl von Abschnitten (N10, N20, N300) und der Datenkapazität (C10, C20, C300) maximal wird, d. h. das Verhältnis [B/(A + B)] (= 928/(15360 + 928) = 0,057), kleiner als der Kehrwert der Anzahl N (= 2) der Aufteilungsblöcke.
  • In 16 empfängt wiederum ein Lösch/Schreib-Steuerschaltkreis 114 vielfältige Arten von Befehlssignalen COMn von dem Mikroprozessor 110B, steuert den nicht-flüchtigen Datenspeicher 113B, und sendet von dem nicht-flüchtigen Datenspeicher 113B erhaltene Antwortsignale ANSn an den Mikroprozessor 110B. Die Inhalte der Befehlssignale COM1 bis COM4 und die Inhalte der Antwortsignale ANS1 bis ANS4 sind denen in dem Fall von 1 ähnlich.
  • Der RAM-Speicher 112B ist mit einem Abbildspeicherbereich 108 versehen; der Abbildspeicher 108 wird als ein Weitergabespeicher genutzt, wenn die erste Konstante 108a von dem ersten Hilfsmittel 105B an den nicht-flüchtigen Datenspeicher 113B übertragen wird, oder als ein Weitergabespeicher, wenn die zweite Konstante 108b von dem zweiten Hilfsmittel 106b an den nicht-flüchtigen Datenspeicher 113B übertragen wird; die dritte Konstante 108c, die während des Betriebs des Mikroprozessors 110B erzeugt wird, wird in dem Abbildspeicher 108 gespeichert.
  • Der RAM-Speicher 112B enthält einen Statusspeicher 112b, in dem Daten entsprechend dem Löschzustand/Schreibzustand des nicht-flüchtigen Datenspeichers 113B geschrieben sind; in dem Statusspeicher 112b wird eine Identifizierungsnummerninformation für wenigstens den letzten Aufteilungsblock, unter den Aufteilungsblöcken 113e und 113f, in dem ein Schreiben aktuell durchgeführt wird, und eine Abschnittsnummerinformation für den Abschnitt, unter den Datenspeicherungsbereichen S10, S20 und S300 in dem letzten Aufteilungsblock gespeichert, in dem letzte Daten geschrieben sind.
  • Ein Energieversorgungsschaltkreis 109B wird mit elektrischer Energie von der externen Energiequelle 101B versorgt, die beispielsweise eine kommerzielle Wechselspannungsquelle ist, über den Ausgangskontakt des Energieversorgungsrelais 102, das vorgespannt ist, wenn der Energieversorgungsschalter geschlossen wird, und einen Ansteuerleistungsanschluss 102a; die eingebaute Batterie 109b liefert elektrische Energie an den RAM-Speicher 112B. Wenn das Energieversorgungsrelais 102 vorgespannt ist, erzeugt der Energieversorgungsschaltkreis 109B eine stabilisierte Steuerspannung Vcc von beispielsweise 5 V Gleichspannung und liefert die Steuerspannung Vcc an den Mikroprozessor 110B, den nicht-flüchtigen Programmspeicher 111B, den RAM-Speicher 112B und den nicht-flüchtigen Datenspeicher 113B. Wenn das Energieversorgungsrelais 102 nicht vorgespannt ist, liefert die eingebaute Batterie 109b, die als eine Backup-Energiequelle dient, elektrische Energie an den RAM-Speicher 112B.
  • In dem Fall, dass, während das Energieversorgungsrelais 102 nicht vorgespannt ist, die Spannung der eingebauten Batterie 109b, die als eine Hilfsenergiequelle diente, abnormal abnimmt, oder der Hilfsenergiequellenschaltkreis abgetrennt und die Speicherinhalte des RAM-Speichers 112B verloren sind, in dem Fall, dass, während die Inhalte des Statusspeichers 112b abnormal sind, das Energieversorgungsrelais 102 vorgespannt ist und der Mikroprozessor 110B seinen Betrieb startet, oder in dem Fall, dass der Mikroprozessor 110B arbeitet, werden die Inhalte des letzten Abschnitts, die wenigstens in dem dritten Datenspeicherungsbereich S300 des nicht-flüchtigen Datenspeichers 113B geschrieben sind, an den Abbildspeicherbereich 108 des RAM-Speichers 112B übertragen, und der Mikroprozessor 110B steuert Eingaben und Ausgaben auf Grundlage der in dem Abbildspeicherbereich 108 geschriebenen dritten Konstante 108c.
  • Wenn der Mikroprozessor 110B seinen Betrieb startet, werden in der Praxis nicht nur die dritte Konstante 108c sondern auch die erste und die zweite Konstante 108a und 108b von dem nicht-flüchtigen Datenspeicher 113B an den RAM-Speicher 112B übertragen und gelesen, so dass der Mikroprozessor 110B eine Steuerung mit Referenz auf den Abbildspeicherbereich 108 des RAM-Speichers 112B durchführt.
  • Eine Abnormalität des Statusspeichers 112b enthält den Fall, dass es keine gespeicherte Identifizierungsnummerninformation für den letzten Aufteilungsblock 113e oder 113f gibt, in dem ein Schreiben aktuell durchgeführt wird, den Fall, dass es keine gespeicherte Abschnittsnummerinformation gibt, worin letzte Daten geschrieben sind, in den Datenspeicherungsbereichen S10, S20 und S300 der letzten Aufteilungsblöcke, und den Fall, dass aufgrund eines Codefehlers in dem RAM-Speicher 112B als ein Ganzes ein Hinzukommen oder ein Verlust einer Bitinformation existiert.
  • (2) Detaillierte Beschreibung der Operation
  • Als Nächstes wird die Operation eines Steuergerätes gemäß Ausführungsform 2 der vorliegenden Erfindung hauptsächlich in der Form des Unterschieds zwischen Ausführungsform 1 und Ausführungsform 2 erläutert werden.
  • Hinsichtlich der Lösch/Schreibverarbeitung, die in 3A, 3B und 3C dargestellt ist, existieren in der in 16 und 17 dargestellten Ausführungsform 2 zwei Aufteilungsblöcke; wenn irgendeiner von den ersten, zweiten und dritten Konstantenbereichen S10, S20 und S300 des einen Aufteilungsblocks aufgefüllt ist (dort existiert kein Leerabschnitt), wird ein Übergang zu dem anderen Aufteilungsblock gemacht, und unmittelbar vor dem Übergang wird der Aufteilungsblock kollektiv gelöscht, zu dem der Übergang gemacht wird.
  • Selbst wenn eine Stromunterbrechung während einer kollektiven Löschung des einen Aufteilungsblocks auftritt, gehen demgemäß keine wertvollen Daten verloren, weil letzte Daten in dem anderen Aufteilungsblock gespeichert worden sind. Der Prüfbereich S0 wird auf dieselbe Weise wie in der in 1 und 2 dargestellten Ausführungsform 1 behandelt; nachdem Daten in jedem der Datenspeicherungsbereiche S10, S20 und S300 geschrieben sind, werden somit eine spezifizierte Konstante und die Häufigkeit einer Kollektivlöschung geschrieben.
  • Hinsichtlich der in 4A und 4B dargestellten Such/Leseverarbeitung kann bestimmt werden, dass unter einer Vielzahl von Aufteilungsblöcken der Aufteilungsblock mit einer größten Häufigkeit einer Kollektivlöschung der letzte Aufteilungsblock ist; der letzte Abschnitt in dem letzten Block wird bestimmt durch Durchführen einer Abschnittssuche, die von dem letzten Abschnitt gestartet wird, wie es der Fall für 4A und 4B ist. Die in 5A und 5B dargestellte Abnormalitätsverarbeitung ist dieselbe wie die in 16 und 17 dargestellte in Ausführungsform 2.
  • Im Gegensatz dazu wird das Steuerprogramm in Ausführungsform 2, das dem Steuerfluss, in 6 bis 15 dargestellt, in Ausführungsform 1 entspricht, in dem Masken-ROM-Speicher 111b gespeichert; wegen einer Abnahme in der Anzahl von Aufteilungsblöcken wird das Verfahren zum Suchen des letzten Blocks auf solch eine Weise wie oben beschrieben geändert. Im Besonderen ist hinsichtlich des in 6 dargestellten Gesamtflusses die Reihenfolge einer Implementierung in Ausführungsform 1 unterschiedlich von der in Ausführungsform 2.
  • Das Flussdiagramm in 6 soll vielfältige Arten von Verarbeitungen, die zu unterschiedlichen Timings ausgeführt sind, kombinieren und verallgemeinern. Zuerst werden als die erste Verarbeitung der Schritt 600a bis zum Schritt 605a, der Schrittblock 700 und der Schritt 600c ausgeführt, so dass die erste Konstante 108a an den nicht-flüchtigen Datenspeicher 113B transferiert wird; zu dieser Zeit werden hinsichtlich jeder von der zweiten und dritten Konstante Daten ”0”, ein imaginärer Anfangseinstellungswert, transferiert.
  • Als die zweite Verarbeitung werden der Schritt 600a, der Schrittblock 602, der Schrittblock 603b, der Schritt 605b, der Schrittblock 700 und der Schritt 600c ausgeführt, so dass der Transfer des Eingabe/Ausgabe-Steuerprogramms 107B, der Transfer der zweiten Konstante 108b an den nicht-flüchtigen Datenspeicher 113B, und der Transfer von Anfangseinstellungswerten für die zweiten und dritten Konstanten ausgeführt werden.
  • Als die dritte Verarbeitung werden der Schritt 600a, der Schritt 605c, der Schrittblock 700 und der Schritt 600c ausgeführt, so dass die dritte Konstante 108c an den nicht-flüchtigen Datenspeicher 113B transferiert wird; hinsichtlich der dritten Konstante 108c wird jedoch während des Umlaufs durch den Schritt 601, den Schritt 605c, den Schritt 606, den Schritt 609 und den Schritt 601, eine große Anzahl separater Datenstücke sequentiell in einer ansteigenden Weise in dem RAM-Speicher 112B gespeichert, und unmittelbar nachdem der Leistungsschalter abgeschaltet wird, werden die separaten Datenstücke kollektiv an den nicht-flüchtigen Datenspeicher 113B in dem Schrittblock 700 transferiert.
  • In der vorhergehenden Erläuterung ist es beschrieben worden, dass der RAM-Speicher 112B als Backup von der eingebauten Batterie 109b unterstützt wird; jedoch wird es auch ermöglicht, dass keine externe Batterie oder keine eingebaute Batterie, so wie eine Hilfsenergiequelle, bereitgestellt wird, dass Daten, die in dem Abbildspeicherbereich 108 des RAM-Speichers 112B gespeichert worden sind, in einem Stromausfallmodus in dem nicht-flüchtigen Datenspeicher 113B gespeichert werden, und dass jedes Mal, wenn der Betrieb startet, die Daten von dem nicht-flüchtigen Datenspeicher 113B an den Abbildspeicherbereich 108 transferiert werden.
  • Außerdem ist es möglich, immer die ersten und zweiten Konstanten 108a und 108b direkt von den nicht-flüchtigen Datenspeichern 113A bzw. 113B zu lesen, so dass Nicht-Daten in dem Abbildspeicher 108 nicht genutzt werden.
  • In der vorhergehenden Erläuterung ist es beschrieben worden, dass, unmittelbar nachdem der Energieversorgungsschalter ausgeschaltet wird, wenigstens die dritte Konstante 108c in dem Abbildspeicherbereich 108 an den nicht-flüchtigen Datenspeicher 113A oder 113B transferiert wird; jedoch ist es auch möglich, dass, wenn während des tatsächlichen Betriebs des Steuergerätes 100A oder 100B eine Abnormalität auftritt, die dritte Konstante 108c transferiert und behalten wird.
  • Das Steuergerät 100A oder 100B ist versehen mit einer eingebauten Batterie oder einer externen Batterie, die als eine Hilfsenergiequelle dient, und einem Zeitzähler mit niedrigem Leistungsverbrauch; das Steuergerät 100A, 100B ist außerdem fähig zum Messen einer verstrichenen Zeit einschließlich einer Zeit, in der die Energiequelle ausgeschaltet gewesen ist, und zum Transferieren, jede vorbestimmte Zeitperiode, der dritten Konstante 108c an den nicht-flüchtigen Datenspeicher 113A, 113B und zum Bewahren davon darin. In diesem Fall wird das Transferieren und Bewahren in einer verzögerten Energieversorgungsperiode durchgeführt, nachdem der Energieversorgungsschalter ausgeschaltet wird; in dem Fall, dass die Zeit zwischen dem Zeitpunkt, wenn der Energieversorgungsschalter das letzte Mal ausgeschaltet worden ist, und dem Zeitpunkt, wenn der Energieversorgungsschalter dieses Mal ausgeschaltet wird, kurz ist, kann der Transfer der dritten Konstante 108c an den nicht-flüchtigen Datenspeicher 113A, 113B und das Bewahren davon darin entfallen.
  • (3) Idee und Merkmale der Ausführungsform 2
  • [Gemäß Anspruch 1]
  • Wie aus der vorhergehenden Erläuterung klar ist, ist ein Steuergerät gemäß Ausführungsform 2 der vorliegenden Erfindung versehen mit einem Mikroprozessor 110B, mit dem ein Eingangssignal-Schaltkreis 103 und ein Ausgangssignal-Schaltkreis 104 verbunden sind, einem nicht-flüchtigen Programmspeicher 111B, der mit dem Mikroprozessor 110B zusammenarbeitet, einem flüchtigen RAM-Speicher 112B und einem nicht-flüchtigen Datenspeicher 113B; das Steuergerät 100B überträgt ein Steuerausgangssignal an den Ausgangssignal-Schaltkreis 104, in Ansprechen auf ein in dem nicht-flüchtigen Programmspeicher 111B geschriebenes Eingabe/Ausgabe-Steuerprogramm 107B, die Werte von Steuerkonstanten, die in dem nicht-flüchtigen Datenspeicher 113B gespeichert sind, und den Signalzustand des Eingangssignal-Schaltkreises 103; der nicht-flüchtige Datenspeicher 113B ist aus einem nicht-flüchtigen Speicher mit einer Vielzahl von Aufteilungsblöcken 113e und 113f gebildet, von denen jeder separat und kollektiv gelöscht werden kann.
  • Jeder der Aufteilungsblöcke 113e und 113f ist ferner in eine Vielzahl von Datenspeicherungsbereichen S10, S20 und S300 mit unterschiedlichen Schreibfrequenzen und unterschiedlichen Schreib-Timings aufgeteilt.
  • Die Datenspeicherungsbereiche S10, S20 und S300 sind mit Abschnitten S11 bis S14, S21 bis S28 bzw. S301 bis S340 ausgestaltet, von den jeder eine Einheit zum Lesen und Schreiben ist; eine Vielzahl separater Datenstücke bzw. Datenelemente ist in einer vorbestimmten Reihenfolge in jeden der Abschnitte geschrieben; die jeweiligen Werte von Datenkapazitäten C10, C20 und C300 sind die Anzahl von Bytes, die der Anzahl separater Datenstücke entspricht, die in einem einzelnen Abschnitt geschrieben sind.
  • Nachdem der Subjekt-Aufteilungsblock bzw. der betrachtete Aufteilungsblock kollektiv gelöscht ist, werden neue Datenstücke sequentiell in Schritten eines Abschnitts in der Vielzahl von Abschnitten S11 bis S14, S21 bis S28, und S301 bis S340 gespeichert; wenn irgendein Datenspeicherungsbereich des Subjekt-Aufteilungsblocks mit Daten aufgefüllt ist und dort kein Leerabschnitt existiert, wo keine Daten geschrieben sind, werden neue Daten in dem Kopfabschnitt von diesem Datenspeicherungsbereich des anderen Aufteilungsblocks geschrieben, der vorbereitend kollektiv gelöscht worden ist; die letzten Daten, die in den anderen Datenspeicherungsbereich des ursprünglichen Aufteilungsblocks geschrieben worden sind, werden an den Kopfabschnitt in dem Datenspeicherungsbereich des neuen Aufteilungsblocks übertragen und darin gespeichert.
  • Wenigstens nachdem die letzten Daten an den neuen Aufteilungsblock übertragen und darin geschrieben sind, werden Daten in dem ursprünglichen Aufteilungsblock kollektiv gelöscht; die Anzahl der Abschnitte N10, N20 und N300, zugeteilt an die Datenspeicherungsbereiche S10, S20 und S300, sind in Proportion zu der Schreibfrequenz.
  • [Gemäß Anspruch 2]
  • In jedem der Aufteilungsblöcke 113e und 113f ist das Verhältnis der Gesamtdatenkapazität B, die die Summe der Multiplikationsprodukte der jeweiligen Anzahlen von Abschnitten von Neben-Datenspeicherungsbereichen bzw. kleineren Datenspeicherungsbereichen und den entsprechenden Datenkapazitäten ist, zu der Summe der Gesamtdatenkapazität B und der Gesamtdatenkapazität A des Haupt-Datenspeicherungsbereichs bzw. größeren Datenspeicherungsbereichs, in dem das Multiplikationsprodukt der Anzahl von Abschnitten (N10, N20, N300) und der Datenkapazität (C10, C20, C300) maximal wird, d. h. das Verhältnis [B/(A + B)], kleiner als der Kehrwert der Anzahl N der Aufteilungsblöcke.
  • Wie oben beschrieben, ist gemäß Anspruch 2 der vorliegenden Erfindung das Verhältnis der Gesamtdatenkapazität der Haupt-Datenspeicherungsbereiche zu der Gesamtdatenkapazität der anderen Neben-Datenspeicherungsbereiche derart beschränkt, um einen Bezug zu dem Kehrwert der Anzahl der Aufteilungsblöcke zu haben.
  • Obwohl es erforderlich ist, wenn der Haupt-Datenspeicherungsbereich aufgefüllt ist und ein Übergang zu dem nächsten Aufteilungsblock durchgeführt wird, die letzten Daten in einen anderen Datenspeicherungsbereich zu bewegen, kann Ausführungsform 2 demgemäß die Häufigkeit einer Kollektivlöschung in einem einzelnen Aufteilungsblock reduzieren, als Bereitstellung eines dedizierten Aufteilungsblocks für einen anderen Datenspeicherungsbereich.
  • [Gemäß Anspruch 3]
  • Der Datenspeicherungsbereich, der in jedem der Aufteilungsblöcke 113e und 113f des nicht-flüchtigen Datenspeichers 113B bereitgestellt ist, ist in erste, zweite und dritte Konstantenbereiche S10, S20 und S300 oder wenigstens den ersten und den zweiten Konstantenbereich aufgeteilt.
  • Der erste Konstantenbereich S10 ist ein Speicherungsbereich für eine erste Konstante 108a, die dorthin von einem als Verladungsjustierungsausrüstung vorbereiteten ersten Hilfsmittel bzw. Tool 105B transferiert und darin geschrieben ist, wenn der Hersteller des Steuergerätes 100B eine Verladungsjustierung des Steuergerätes ausführt.
  • Die erste Konstante 108a enthält wenigstens ein Element aus der Gruppe von einer Steuerkonstante, die der Modellklassifizierung des Steuergerätes 100B selbst entspricht, einer Korrekturkonstante zum Korrigieren von Variationen in Eigenschaften einer Komponente in dem Steuergerät 100B, und der Produktionsnummer des Steuergerätes.
  • Der zweite Konstantenbereich S20 ist ein Speicherungsbereich für eine zweite Konstante 108b, die dorthin von einem als Inspektions-/Justierungsausrüstung vorbereiteten zweiten Hilfsmittel bzw. Tool 106B transferiert und darin geschrieben wird, wenn der Hersteller oder die Ausrüstungsverwaltungsabteilung eines integrierten Produktes oder einer integrierten Ausrüstung, worin das Steuergerät 100B integriert ist, eine Testbetriebsjustierung des integrierten Produktes oder der integrierten Ausrüstung ausführt.
  • Die zweite Konstante 108b enthält wenigstens ein Element aus der Gruppe von einer Steuerkonstante, die dem Modellnamen/Modell eines integrierten Produktes/Ausrüstung entspricht, worin das Steuergerät 100B integriert ist, einer Auswahlnummerninformation, die Teil des Eingabe/Ausgabe-Steuerprogramms 107B ist, und einer Korrekturkonstante zum Korrigieren von Variationen in Eigenschaften einer mit dem Steuergerät 100B verbundenen Eingabe/Ausgabe-Komponente.
  • Der dritte Konstantenbereich S300 ist ein Speicherungsbereich für eine dritte Konstante 108c, die in dem RAM-Speicher 112A während des tatsächlichen Betriebs des Steuergerätes 100B gespeichert worden ist und dorthin transferiert und darin gespeichert wird, wenigstens unmittelbar nachdem das Steuergerät 100B gestoppt wird oder zu einem passenden Zeitpunkt während des Betriebs des Steuergerätes 100B.
  • Die dritte Konstante 108c enthält wenigstens ein Element aus der Gruppe von einer Eigenschaftsänderungsinformation über eine eingebaute Komponente oder eine Komponente einer externen Verbindung des Steuergerätes 100B, einer Lerninformation zum Erhalten verbesserter Fahrcharakteristika, und einer Abnormalitätsauftritts-Verlaufsinformation.
  • Wie oben beschrieben, ist gemäß Anspruch 3 der vorliegenden Erfindung der in jedem der Aufteilungsblöcke des nicht-flüchtigen Datenspeichers bereitgestellte Datenspeicherungsbereich in erste, zweite und dritte Konstantenbereiche oder wenigstens den ersten und den zweiten Konstantenbereich aufgeteilt, und die Anzahl von Abschnitten in jedem Konstantenbereich und die Anzahl von Bytes, d. h. die Datenkapazität des Abschnitts, werden vorbereitend bestimmt.
  • Demgemäß können nicht nur Daten leicht in jeweilige Leerabschnitte der Konstantenbereiche zu unterschiedlichen Zeiten und Orten geschrieben werden, sondern es können auch Schreibfrequenzen in den Konstantenbereichen leicht geschätzt werden, so dass die Anzahl von Abschnitten in jedem Konstantenbereich und die Anzahl von Bytes leicht bestimmt werden können.
  • [Gemäß Anspruch 9]
  • Der Mikroprozessor 110B erzeugt ein Kollektivlöschungsbefehl-Signal für den nicht-flüchtigen Datenspeicher 113B und ein Leerprüfbefehl-Signal; der nicht-flüchtige Datenspeicher 113B empfängt den Leerprüfbefehl und überträgt dann wenigstens eine Bestimmungsinformation darüber, ob oder nicht jeder Abschnitt gelöscht worden ist.
  • Der Mikroprozessor 110B bestimmt einen Abschnitt, der durch eine Kollektivlöschung gelöscht worden ist, als einen Leerabschnitt.
  • In dem Fall, dass ein Abschnitt existiert, der nicht durch die Kollektivlöschung gelöscht werden kann, oder in dem Fall, dass aufgrund einer Stromunterbrechung während einer Schreiboperation für den nicht-flüchtigen Datenspeicher 113B die Tatsache erfasst wird, dass ein Daten-beschriebenes Teilstück und ein Daten-unbeschriebenes Teilstück gleichzeitig in einem Abschnitt enthalten sind, bestimmt der Mikroprozessor 110B den vorigen Abschnitt als einen unwirksamen Abschnitt und bestimmt den Abschnitt, der Daten enthält und nicht ein unwirksamer Abschnitt ist, als einen wirksamen Abschnitt.
  • Beim Durchführen des Lesens in dem nicht-flüchtigen Datenspeicher 113B durchsucht der Mikroprozessor 110B den letzten Abschnitt durch den Kopfabschnitt jedes Datenspeicherungsbereiches nach einem wirksamen Abschnitt und liest Daten, die in einem wirksamen Abschnitt gespeichert sind, der zuerst erfasst wird.
  • Beim Durchführen eines Schreibens in dem nicht-flüchtigen Datenspeicher 113B durchsucht der Mikroprozessor 110B den letzten Abschnitt durch den Kopfabschnitt jedes Datenspeicherungsbereichs (in einer Anfangsrichtung) nach einem wirksamen Abschnitt, führt eine Suche in der entgegengesetzten Richtung von einem wirksamen Abschnitt durch, der zuerst erfasst wird, und schreibt dann Daten in einen Leerabschnitt, der zuerst erfasst wird.
  • Wie oben beschrieben, durchsucht gemäß Anspruch 9 der vorliegenden Erfindung der Mikroprozessor, durch Bestimmen von Abschnitten als Leerabschnitte, unwirksame Abschnitte oder wirksame Abschnitte, sequentiell jeden Datenspeicherungsbereich von dem letzten Abschnitt, um einen Leseabschnitt und einen Schreibabschnitt zu bestimmen.
  • Selbst wenn ein unwirksamer Abschnitt existiert, wird Demgemäß der Aufteilungsblock nicht unmittelbar aktualisiert oder kollektiv gelöscht, und Daten werden in dem nächsten Abschnitt derart geschrieben, so dass kein Leerabschnitt übrig bleibt; deshalb kann die Häufigkeit einer Kollektivlöschung in dem nicht-flüchtigen Datenspeicher verringert werden.
  • Bezüglich des Lesens des nicht-flüchtigen Datenspeichers kann ein Lesen in einem wirksamen Abschnitt durchgeführt werden, wobei ein unwirksamer Abschnitt vernachlässigt wird.

Claims (12)

  1. Steuergerät, das einen Mikroprozessor (110A, 110B), mit dem ein Eingangssignal-Schaltkreis (103) und ein Ausgangssignal-Schaltkreis (104) verbunden sind, einen nicht-flüchtigen Programmspeicher (111A, 111B), der mit dem Mikroprozessor (110A, 110B) zusammenarbeitet, einen flüchtigen RAM-Speicher (112A, 112B) und einen nicht-flüchtigen Datenspeicher (113A, 113B) enthält und ein Steuerausgangssignal an den Ausgangssignal-Schaltkreis (104) überträgt, in Ansprechen auf ein in den nicht-flüchtigen Programmspeicher (111A, 111B) geschriebenes Eingabe/Ausgabe-Steuerprogramm, Werte von Steuerkonstanten, die in dem nicht-flüchtigen Datenspeicher gespeichert sind (113A, 113B), und einen Signalzustand des Eingangssignal-Schaltkreises (103), wobei das Steuergerät dadurch gekennzeichnet ist, dass der nicht-flüchtige Datenspeicher (113A, 113B) aus einem nicht-flüchtigen Speicher mit einer Vielzahl von Aufteilungsblöcken (113a, 113b, 113c, 113d, 113e, 113f) gebildet ist, von denen jeder separat oder kollektiv gelöscht werden kann, dass jeder der Aufteilungsblöcke (113a, 113b, 113c, 113d, 113e, 113f) in eine Vielzahl von Datenspeicherungsbereichen (S10, S20, S300) aufgeteilt ist, deren Schreibfrequenzen und Schreib-Timings voneinander unterschiedlich sind, dass jeder der Datenspeicherungsbereiche (S10, S20, S300) mit einer Vielzahl von Abschnitten (S11, S12, S21–S24, S301–S320, S11–S14, S21–S28, S301–S340) ausgestaltet ist, von denen jeder eine Lese/Schreibeinheit ist; eine Vielzahl separater Datenstücke in vorbestimmter Reihenfolge in jeden der Abschnitte geschrieben ist; und eine Datenkapazität von jedem Abschnitt mit der Anzahl von Bits übereinstimmt, die der Anzahl separater Datenstücke entspricht, die in diesen Abschnitt geschrieben sind, dass, nachdem der betrachtete Aufteilungsblock kollektiv gelöscht ist, neue Datenstücke sequentiell in der Vielzahl von Abschnitten in Schritten eines Abschnitts gespeichert werden; wenn irgendein Datenspeicherungsbereich des betrachteten Aufteilungsblocks mit Daten aufgefüllt ist und kein leerer Abschnitt existiert, wo keine Daten geschrieben sind, neue Daten in einen Kopfabschnitt in dem entsprechenden Datenspeicherungsbereich eines anderen Aufteilungsblocks geschrieben werden, der vorbereitend und kollektiv gelöscht worden ist; und letzte Daten, die in einen anderen Datenspeicherungsbereich des ursprünglichen Aufteilungsblocks geschrieben worden sind, an einen Kopfabschnitt in einem entsprechenden Datenspeicherungsbereich des neuen Aufteilungsblocks übertragen und darin gespeichert werden, und dass, wenigstens nachdem die letzten Daten an den neuen Aufteilungsblock übertragen und in diesen geschrieben sind, Daten in dem ursprünglichen Aufteilungsblock kollektiv gelöscht werden; und die Anzahl von Abschnitten, die dem Datenspeicherungsbereich zugeteilt sind, in Proportion zu einer Schreibfrequenz ist.
  2. Steuergerät gemäß Anspruch 1, dadurch gekennzeichnet, dass in jedem der Aufteilungsblöcke (113a, 113b, 113c, 113d, 113e, 113f) das Verhältnis der Gesamtdatenkapazität B, die die Summe der Multiplikationsprodukte der jeweiligen Anzahlen von Abschnitten von Neben-Datenspeicherungsbereichen und den entsprechenden Datenkapazitäten ist, zu der Summe der Gesamtdatenkapazität B und der Gesamtdatenkapazität A eines Haupt-Datenspeicherungsbereiches, in dem das Multiplikationsprodukt der Anzahl von Abschnitten und der Datenkapazität maximal wird, d. h. das Verhältnis [B/(A + B)], kleiner als der Kehrwert der Anzahl N der Aufteilungsblöcke ist.
  3. Steuergerät gemäß Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Datenspeicherungsbereich, der in jedem der Aufteilungsblöcke (113a, 113b, 113c, 113d, 113e, 113f) des nicht-flüchtigen Datenspeichers (113A, 113B) bereitgestellt ist, in erste, zweite und dritte Konstantenbereiche (S10, S20, S300) oder wenigstens die ersten und dritten Konstantenbereiche (S10, S300) aufgeteilt ist; der erste Konstantenbereich (S10) ein Speicherungsbereich für eine erste Konstante (108a, 108b) ist, die dorthin von einem als Verladungsjustierungsausrüstung vorbereiteten ersten Hilfsmittel (105A, 105B) transferiert und geschrieben wird, wenn der Hersteller des Steuergerätes eine Verladungsjustierung des Steuergerätes ausführt; die erste Konstante (108a, 108b) wenigstens eine enthält von einer Steuerkonstante, die der Modellklassifizierung des Steuergerätes selbst entspricht, einer Auswahlnummerninformation, die Teil des Eingabe/Ausgabe-Steuerprogramms (107A) ist, einer Korrekturkonstante zum Korrigieren von Variationen in Eigenschaften einer Komponente in dem Steuergerät, und der Produktionsnummer des Steuergerätes; der zweite Konstantenbereich (S20) ein Speicherungsbereich für eine zweite Konstante (108b) ist, die dorthin von einem als eine Inspektions-/Justierungsausrüstung vorbereiteten zweiten Hilfsmittel (106A, 106B) transferiert und geschrieben wird, wenn der Hersteller der Ausrüstungsverwaltungsabteilung eines integrierten Produktes oder einer integrierten Ausrüstung, worin das Steuergerät integriert ist, eine Testbetriebsjustierung des integrierten Produktes oder der integrierten Ausrüstung ausführt; die zweite Konstante (108b) wenigstens eine enthält von einer Steuerkonstante, die dem Modellnamen/Modell eines integrierten Produktes oder einer Ausrüstung entspricht, worin das Steuergerät integriert ist, einer Auswahlnummerninformation, die Teil des Eingabe/Ausgabe-Steuerprogramms (107A, 107B) ist, und einer Korrekturkonstante zum Korrigieren von Variationen in Eigenschaften einer Eingabe/Ausgabekomponente, die mit dem Steuergerät verbunden ist; der dritte Konstantenbereich (S300) ein Speicherungsbereich für eine dritte Konstante (108c) ist, die in dem RAM-Speicher (112A, 112B) während des tatsächlichen Betriebs des Steuergerätes gespeichert worden ist und dorthin transferiert und darin gespeichert wird, wenigstens unmittelbar nachdem der Betrieb des Steuergerätes gestoppt wird oder zu einem passenden Zeitpunkt während des Betriebs des Steuergerätes; und die dritte Konstante (108C) wenigstens eine enthält von einer Eigenschaftsänderungsinformation über eine eingebaute Komponente oder eine Externe-Verbindung-Komponente des Steuergerätes, einer Lerninformation zum Erhalten verbesserter Fahreigenschaften, und einer Abnormalitätsauftritts-Verlaufsinformation.
  4. Steuergerät gemäß Anspruch 3, dadurch gekennzeichnet, dass der Datenspeicherungsbereich, der in jedem der Aufteilungsblöcke (113a, 113b, 113c, 113d) des nicht-flüchtigen Datenspeichers (113A) bereitgestellt ist, mit einem Abschnitt versehen ist, der als ein Prüfbereich (S0) dient, zusätzlich zu den ersten, zweiten und dritten Konstantenbereichen (S10, S20, S300); wenn, nachdem die Aufteilungsblöcke kollektiv gelöscht sind, wirksame Daten in wenigstens einen Abschnitt in all den Datenspeicherungsbereichen geschrieben werden, eine vorbestimmte spezifizierte Konstante in den ersten Halbbereich des Abschnitts geschrieben wird, der einer der Abschnitte in dem Prüfbereich ist; und in dem Fall, wo Effektivdaten nicht in irgendeinen Abschnitt in den Datenspeicherungsbereichen geschrieben werden, jeder Datenspeicherungsbereich ein Leerblock wird, wo die spezifizierte Konstante nicht geschrieben wird.
  5. Steuergerät gemäß Anspruch 4, dadurch gekennzeichnet, dass in dem zweiten Halbbereich des Abschnitts, der einer der Abschnitte in dem Prüfbereich (S0) ist, dort Daten über die Häufigkeit einer Kollektivlöschung des Aufteilungsblocks (113a, 113b, 113c, 113d) geschrieben werden, wenn die spezifizierte Konstante geschrieben wird; und in dem Fall, wo ein Übergang des Aufteilungsblocks (113a, 113b, 113c, 113d) durchgeführt wird, die Häufigkeit einer Kollektivlöschung des Nach-Übergang-Aufteilungsblocks ein Wert wird, der erhalten wird durch Addieren von ”1” zu der Häufigkeit der Kollektivlöschung, die in den Prüfbereich des aktuellen Aufteilungsblocks unmittelbar vor dem Übergang geschrieben worden ist.
  6. Steuergerät gemäß Anspruch 4, dadurch gekennzeichnet, dass in dem Prüfbereich (S0) wenigstens ein Reserveabschnitt (S2) zusätzlich zu einem der Abschnitte bereitgestellt ist, worin die spezifizierte Konstante und Daten über die Häufigkeit einer Kollektivlöschung geschrieben werden; und in dem Fall, wo, wenn eine Kollektivlöschung des Aufteilungsblocks durchgeführt wird, der Abschnitt, der einer der Abschnitte in dem Prüfbereich (S0) ist, nicht gelöscht werden kann, die Kollektivlöschung erneut durchgeführt wird, und in dem Fall, wo der Abschnitt immer noch nicht gelöscht werden kann, der Reserveabschnitt (S2) anstelle des Abschnitts genutzt wird.
  7. Steuergerät gemäß Anspruch 4, dadurch gekennzeichnet, dass der nicht-flüchtige Datenspeicher (113A) mit wenigstens drei Aufteilungsblöcken (113a, 113b, 113c, 113d) versehen ist; in dem Fall, wo dort kein Leerabschnitt in einem der Datenspeicherungsbereiche des Aufteilungsblocks existiert, wo ein Schreiben aktuell durchgeführt wird, zuerst der übernächste Aufteilungsblock, der der zweite Aufteilungsblock von dem Aufteilungsblock ist, kollektiv gelöscht wird, und dann als Vergewisserungsverarbeitung der nächste Aufteilungsblock, der der erste Aufteilungsblock von dem Aufteilungsblock ist, kollektiv gelöscht wird, und neue Daten in den Kopfabschnitt des entsprechenden Datenspeicherungsbereiches des nächsten Aufteilungsblocks geschrieben werden, und dann letzte Daten, die in einen anderen Datenspeicherungsbereich des Aufteilungsblocks geschrieben worden sind, an den Kopfabschnitt in dem entsprechenden Datenspeicherungsbereich des nächsten Aufteilungsblocks übertragen und darin gespeichert werden; und in dem Übergang der Aufteilungsblocks die letzten Daten zu dem Aufteilungsblock verlagert werden, der ein Leerblock und vor dem Leerblock ist, der kollektiv gelöscht worden ist.
  8. Steuergerät gemäß Anspruch 3, dadurch gekennzeichnet, dass der nicht-flüchtige Programmspeicher (113A) das Eingabe/Ausgabe-Steuerprogramm (107A), eine feste Konstante, die für das Eingabe/Ausgabe-Steuerprogramm (107A) konstant ist, und eine Referenzkonstante (107a) mit Bezug zu der ersten Konstante (108a), der zweiten Konstante (108b) oder der dritten Konstante (108c) enthält, die in dem nicht-flüchtigen Datenspeicher (113A) gespeichert ist; die Referenzkonstante (107a) wenigstens eines aus der Gruppe von Oberer/Unterer-Grenzwert-Daten, die eine zulässige Variationsspanne mit Bezug zu einem Teil variabler Informationselemente in der ersten Konstante (108a), der zweiten Konstante (108b) und der dritten Konstante (108c) oder einem Teil von Fahrcharakteristika-Lerninformationselementen darstellen, und Anfangswert-Einstellungsdaten enthalten, die auf eine unspezifizierte Konstante in der ersten Konstante (108a), der zweiten Konstante (108b) und der dritten Konstante (108c) angewendet sind; und die Anfangswert-Einstellungsdaten an die Kopfabschnitte der ersten, zweiten, dritten Konstantenbereiche (S10, S20, S300) eines der Aufteilungsblöcke übertragen und darin gespeichert werden, wenigstens bevor das Steuergerät anfangs betrieben wird.
  9. Steuergerät gemäß Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Mikroprozessor (110A, 110B) ein Kollektivlöschungsbefehl-Signal für den nicht-flüchtigen Datenspeicher (113A, 113B) und ein Leerprüfbefehl-Signal erzeugt, und der nicht-flüchtige Datenspeicher (113A, 113B) den Leerprüfbefehl empfängt und dann wenigstens eine Bestimmungsinformation hinsichtlich dessen überträgt, ob oder nicht jeder Abschnitt gelöscht worden ist; der Mikroprozessor (110A, 110B) einen Abschnitt, der durch eine Kollektivlöschung gelöscht worden ist, als einen Leerabschnitt bestimmt; in dem Fall, wo dort ein Abschnitt existiert, der nicht durch die Kollektivlöschung gelöscht werden kann, oder in dem Fall, wo aufgrund einer Stromunterbrechung während einer Schreiboperation für den nicht-flüchtigen Datenspeicher (113A, 113B) die Tatsache erfasst wird, dass ein Daten-beschriebenes Teilstück und ein nicht-Daten-beschriebenes Teilstück gleichzeitig in einem Abschnitt enthalten sind, der Mikroprozessor (110A, 110B) den Abschnitt als einen unwirksamen Abschnitt bestimmt und den Abschnitt, der Daten enthält und nicht ein unwirksamer Abschnitt ist, als einen wirksamen Abschnitt bestimmt; beim Durchführen eines Lesens in dem nicht-flüchtigen Datenspeicher (113A, 113B) der Mikroprozessor (110A, 110B) den letzten Abschnitt durch den Kopfabschnitt jedes Datenspeicherungsbereiches nach einem wirksamen Abschnitt durchsucht und Daten liest, die in einem wirksamen Abschnitt gespeichert sind, der zuerst erfasst wird; und beim Durchführen eines Schreibens in dem nicht-flüchtigen Datenspeicher (113A, 113B) der Mikroprozessor (110A, 110B) den letzten Abschnitt durch den Kopfabschnitt jedes Datenspeicherungsbereiches in einer Anfangsrichtung nach dem wirksamen Abschnitt durchsucht, ein Suchen in einer Richtung entgegengesetzt zu der Anfangsrichtung von einem wirksamen Abschnitt durchführt, der zuerst erfasst wird, und dann Daten in einen Leerabschnitt schreibt, der zuerst erfasst wird.
  10. Steuergerät gemäß Anspruch 9, dadurch gekennzeichnet, dass beim Durchführen eines Schreibens in den nicht-flüchtigen Datenspeicher (113A) der Mikroprozessor (110A) den letzten Abschnitt durch den Kopfabschnitt jedes Datenspeicherungsbereichs in einer Anfangsrichtung nach dem wirksamen Abschnitt durchsucht, ein Suchen in einer Richtung entgegengesetzt zu der Anfangsrichtung von einem wirksamen Abschnitt durchsucht, der zuerst erfasst wird, und dann Daten in einen Leerabschnitt schreibt, der zuerst erfasst wird; und in dem Fall, wo Daten nicht korrekt in den Leerabschnitt geschrieben werden können, der Mikroprozessor ferner ein Suchen in der Anfangsrichtung durchführt und Daten in einen neu erfassten Leerabschnitt schreibt.
  11. Steuergerät gemäß Anspruch 9, dadurch gekennzeichnet, dass der RAM-Speicher (112A) einen Statusspeicher (112a) enthält, in den Daten entsprechend dem Löschzustand/Schreibzustand des nicht-flüchtigen Datenspeichers (113A) geschrieben sind; und in dem Statusspeicher (112a) wenigstens eine Identifizierungsnummerinformation für einen letzten Aufteilungsblock, in dem ein Schreiben aktuell durchgeführt wird, und eine Abschnittsnummerinformation für einen Abschnitt gespeichert sind, unter den Abschnitten in jedem der Datenspeicherungsbereiche (S10, S20, S300) in dem letzten Aufteilungsblock, in den letzte Daten geschrieben worden sind.
  12. Steuergerät gemäß Anspruch 11, dadurch gekennzeichnet, dass der Mikroprozessor (110A), der RAM-Speicher (112A), der nicht-flüchtigen Programmspeicher (111A) und der nicht-flüchtige Datenspeicher (113A) mit elektrischer Energie von der externen Energiequelle (101A) über einen Ausgangskontakt eines Energieversorgungsrelais (102), der vorgespannt ist, wenn ein Steuerleistungsschalter geschlossen ist, und einen Steuerleistungsanschluss (102a) versorgt werden; das Energieversorgungsrelais (102) in einer vorbestimmten Zeit entregt wird, nachdem der Energieversorgungsschalter geöffnet wird; der RAM-Speicher (112A) mit elektrischer Energie von einer Hilfsenergiequelle beliefert wird, selbst wenn der Steuerleistungsanschluss (102a) nicht mit elektrischer Energie versorgt wird, oder der RAM-Speicher (112a) nicht mit elektrischer Energie versorgt wird, wenn der Steuerleistungsanschluss (102a) nicht mit elektrischer Energie versorgt wird; die Hilfsenergiequelle eine eingebaute Batterie oder eine externe Batterie (101A) ist, die direkt mit einem Hilfsenergiequellenanschluss verbunden ist; in dem Fall, wo, während das Energieversorgungsrelais (102) nicht vorgespannt ist, die Versorgung des RAM-Speichers (112A) mit elektrischer Energie gestoppt wird, in dem Fall, wo, selbst wenn die Energieversorgung aufrecht erhalten wird, die Spannung der Hilfsenergiequelle abnormal abnimmt, oder der Hilfsenergiequellenschaltkreis abgeschaltet wird und die Speicherungsinhalte des RAM-Speichers verloren sind, in dem Fall, wo, während die Inhalte des Statusspeichers (112a) abnormal sind, das Energieversorgungsrelais (102) vorgespannt ist und der Mikroprozessor (110A) seinen Betrieb startet, oder in dem Fall, wo der Mikroprozessor (110A) tatsächlich arbeitet, die Inhalte des letzten Abschnitts, die wenigstens in den dritten Datenspeicherungsbereich des nicht-flüchtigen Datenspeichers geschrieben sind, an einen Abbildspeicherbereich (108) des RAM-Speichers (112A) übertragen werden; und der Mikroprozessor (110A) Eingaben und Ausgaben auf Grundlage der in den Abbildspeicherbereich (108) geschriebenen dritten Konstante (108c) steuert.
DE102009038641.6A 2009-01-28 2009-08-24 Steuergerät Expired - Fee Related DE102009038641B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009016665A JP4647010B2 (ja) 2009-01-28 2009-01-28 電子制御装置
JP2009-016665 2009-01-28

Publications (2)

Publication Number Publication Date
DE102009038641A1 DE102009038641A1 (de) 2010-08-05
DE102009038641B4 true DE102009038641B4 (de) 2015-05-21

Family

ID=42309052

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009038641.6A Expired - Fee Related DE102009038641B4 (de) 2009-01-28 2009-08-24 Steuergerät

Country Status (2)

Country Link
JP (1) JP4647010B2 (de)
DE (1) DE102009038641B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5643708B2 (ja) * 2011-03-30 2014-12-17 株式会社ケーヒン 電子制御装置
JP5930940B2 (ja) * 2012-10-31 2016-06-08 株式会社ケーヒン 車両用電子制御装置
CN103699030B (zh) * 2013-12-06 2016-04-06 中联重科股份有限公司 工程机械的工作机构的工作参数保存装置、系统和方法
CN114637469A (zh) * 2022-03-21 2022-06-17 上海美仁半导体有限公司 Flash存储器的数据读写方法、系统以及介质、设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007221A (ja) * 2000-06-26 2002-01-11 Matsushita Electric Ind Co Ltd フラッシュメモリの書込み保証回数の増加方法
JP2006072461A (ja) * 2004-08-31 2006-03-16 Mitsubishi Electric Corp 車載電子制御装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4686358B2 (ja) * 2005-12-26 2011-05-25 ジヤトコ株式会社 フラッシュメモリを備えた制御装置
JP2007179460A (ja) * 2005-12-28 2007-07-12 Denso Corp 電子制御装置
JP2008146254A (ja) * 2006-12-07 2008-06-26 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007221A (ja) * 2000-06-26 2002-01-11 Matsushita Electric Ind Co Ltd フラッシュメモリの書込み保証回数の増加方法
JP2006072461A (ja) * 2004-08-31 2006-03-16 Mitsubishi Electric Corp 車載電子制御装置

Also Published As

Publication number Publication date
JP2010176280A (ja) 2010-08-12
JP4647010B2 (ja) 2011-03-09
DE102009038641A1 (de) 2010-08-05

Similar Documents

Publication Publication Date Title
DE3807997C2 (de)
DE19740525C1 (de) Verfahren zur Abspeicherung und Wiedergewinnung von Daten in einem Steuersystem, insbesondere in einem Kraftfahrzeug
DE10040890C1 (de) System und Verfahren zum sicheren Hochtemperaturbetrieb eines Flash-Speichers
DE102005013285B4 (de) Verfahren zum Konfigurieren eines Steuergeräts und Steuergerät
EP0195885B1 (de) Verfahren und Anordnung zum nichtflüchtigen Speichern des Zählerstandes einer elektronischen Zählschaltung
DE19845295A1 (de) Zugriffsverfahren und Vorrichtung für Flash-Speicherfeld
DE3408674A1 (de) Steuerungsverfahren
DE102009038641B4 (de) Steuergerät
DE2844357A1 (de) Speichererweiterung
DE102005038850B4 (de) Elektronische Steuereinheit innerhalb eines Fahrzeugs
DE19511452A1 (de) Steuerungssystem für Fertigungsanlagen
DE102019110434A1 (de) Werkzeugwahlvorrichtung und Maschinenlernvorrichtung
DE102021106944A1 (de) Weiterleitungsvorrichtung
WO2000010061A2 (de) Steuergerät
DE4406258C2 (de) Informationsverarbeitungsvorrichtung
DE1191145B (de) Elektronische Zifferrechenmaschine
DE102017007986B4 (de) NC-Steuerung, Steuerungssystem, Steuerungsverfahren, und Steuerungsprogramm
DE602004008697T2 (de) Abnutzungsausgleich in einem nicht flüchtigen Flash-Speicher ohne die Notwendigkeit freier Blöcke
DE102017103214A1 (de) Verfahren und Vorrichtungen zur Verwaltung eines nichtflüchtigen digitalen Informationsspeichers
DE10234063B4 (de) Verfahren zum variantenspezifischen Programmieren eines Programm- und Datenspeichers eines Steuergeräts, insbesondere eines Steuergeräts eines Kraftfahrzeugs, sowie Vorrichtung zur Durchführung des Verfahrens
DE102017104698A1 (de) Elektroniksteuervorrichtung und Informationsspeicherverfahren dafür
DE3938517A1 (de) Verfahren zum laden eines steuerprogramms fuer eine numerische steuervorrichtung
EP0848843B1 (de) Verfahren zum erzeugen und abspeichern eines aus befehlen bestehenden anwenderprogramms für eine speicherprogrammierbare steuerung und betriebsverfahren für eine speicherprogrammierbare steuerung
DE10211426B4 (de) Verfahren zur Durchführung eines Updates von Software-Programmen oder Software-Programmteilen
DE102016011969A1 (de) Motorantrieb mit RF-Etikett

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee