-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft eine elektronische Steuereinheit und ein Aktualisierungssoftware-Verteilungssystem.
-
STAND DER TECHNIK
-
Eine elektronische Steuereinheit, die einen Motor oder ein Getriebe eines Fahrzeuges, wie beispielsweise eines Automobils, steuert, weist beispielsweise einen nichtflüchtigen Speicher auf, dessen gespeicherte Inhalte umgeschrieben bzw. wiederbeschrieben werden können. Eine derartige elektronische Steuereinheit ist so konfiguriert, dass es möglich ist, ein in einem nicht-flüchtigen Speicher gespeichertes Anwendungsprogramm umzuschreiben bzw. neu zu schreiben (d.h. eine Umprogrammierung durchzuführen).
JP 2013-254264 A offenbart beispielsweise eine Konfiguration für eine Umprogrammierung bzw. Neuprogrammierung; eine derartige Konfiguration dient dazu einen Lesebereich zum Ausführen eines Programms und einen Schreibbereich für eine Umprogrammierung vorzubereiten bzw. bereitzustellen und den Lesebereich und den Schreibbereich miteinander zu wechseln, nachdem eine Umprogrammierung erfolgreich oder normal abgeschlossen ist.
JP 2006-301960 A offenbart beispielsweise ferner eine andere Konfiguration; eine andere derartige Konfiguration dient dazu, einen Hauptbereich zum Ausführen eines Programms und einen Hilfsbereich für eine Umprogrammierung jeweils mit Bezug auf die Anwendungsprogramme vorzubereiten und den Hauptbereich und den Hilfsbereich miteinander zu wechseln, nachdem eine Umprogrammierung erfolgreich oder normal abgeschlossen ist. Den Konfigurationen aus
JP 2013 -
254264 A und
JP 2006-301960 A ist es möglich, eine Umprogrammierung während einer Ausführung eines Programms durchzuführen.
-
PATENTLITERATUR
-
- Patentliteratur 1: JP 2013-254264 A
- Patentliteratur 2: JP 2006-301960 A
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die Konfigurationen aus
JP 2013-254264 A und
JP 2006-301960 A benötigen jedoch einen nicht-flüchtigen Speicher, der eine doppelt so große als die zum Speichern eines Anwendungsprogramms benötige Speicherkapazität, die hohe Kosten aufgrund einer Erhöhung der Speicherkapazität darstellt, aufweist.
-
In Hinblick auf die oben erwähnte Situation ist es eine Aufgabe der vorliegenden Erfindung, eine elektronische Steuereinheit und ein Aktualisierungssoftware-Verteilungssystem bereitzustellen, die hohe Kosten aufgrund einer Erhöhung einer Speicherkapazität eines nicht-flüchtigen Speichers vermeiden können, während eine Umprogrammierung während einer Ausführung eines Anwendungsprogramms durchgeführt wird.
-
Gemäß einem Beispiel der vorliegenden Erfindung ist eine elektronische Steuereinheit so bereitgestellt, dass sie (i) einen nicht-flüchtigen Speicher, der ein Anwendungsprogramm speichert, um ein Steuerziel zu steuern, und (ii) eine Verarbeitungseinheit, die das Anwendungsprogramm ausführt, um das Steuerziel zu steuern, aufweist. Ein gespeicherter Inhalt des nichtflüchtigen Speichers ist umschreibbar. Der nicht-flüchtige Speicher weist drei physikalische Bereiche bzw. Regionen aus einem ersten physikalischen Bereich, einem zweiten physikalischen Bereich und einem dritten physikalischen Bereich auf.
-
Die elektronische Steuereinheit weist ferner einen Zuweisungsverarbeitungsabschnitt, einen Steuerverarbeitungsabschnitt, einen Schreibverarbeitungsabschnitt und einen Wechselverarbeitungsabschnitt auf. Der Zuweisungsverarbeitungsabschnitt ist so konfiguriert, dass der den drei physikalischen Bereichen mit einem ersten logischen Bereich, einem zweiten logischen Bereich und einem dritten logischen Bereich zuweist, wobei er den ersten logischen Bereich als einen logischen Bereich zum Speichern eines im Anwendungsprogramm vorhandenen Steuerprogramms zuweist, den zweiten logischen Bereich als einen logischen Bereich zum Speichern von im Anwendungsprogramm vorhandenen Kalibrierdaten zuweist und den dritten logischen Bereich als einen logischen Bereich zum Arbeiten zuweist. Der Steuerverarbeitungsabschnitt ist so konfiguriert, dass er eine Steuerung des Steuerziels unter Verwendung des im ersten logischen Bereich gespeicherten Steuerprogramms und der im zweiten logischen Bereich gespeicherten Kalibrierdaten durchführt. Der Schreibverarbeitungsabschnitt ist so konfiguriert, dass er eine Aktualisierungssoftware, die das als ein Umschreibziel dienende Anwendungsprogramm aufweist, in den dritten logischen Bereich schreibt. Der Wechselverarbeitungsabschnitt ist so konfiguriert, dass er den ersten logischen Bereich und den dritten logischen Bereich miteinander als Antwort, dass das Steuerprogramm geschrieben wird, und den zweiten logischen Bereich und den dritten logischen Bereich miteinander als Antwort, dass die Kalibierdaten geschrieben werden, wechselt.
-
Das Steuerziel wird unter Verwendung des ersten logischen Bereichs, der als ein logischer Bereich zum Speichern eines Steuerprogramms zugewiesen ist, und dem zweiten logischen Bereich, der als ein logischer Bereich zum Speichern von Kalibrierdaten zugewiesen ist, gesteuert. Der dritte logische Bereich ist anders als der erste logische Bereich und der zweite logische Bereich als ein logischer Bereich zum Arbeiten zugewiesen. Der erste logische Bereich und der zweite logische Bereich werden verwendet, um ein Anwendungsprogramm auszuführen, während der dritte logische Bereich verwendet wird, um eine Umprogrammierung durchzuführen; dies kann die Umprogrammierung während der Ausführung des Anwendungsprogramms durchführen. Der dritte logische Bereich wird ferner von einem Steuerprogramm und Kalibierdaten so geteilt, dass entweder ein Steuerprogramm oder Kalibrierdaten selektiv bzw. ausgewählt in den dritten logischen Bereich geschrieben werden. Eine derartige Konfiguration beseitigt den Bedarf, einen nicht-flüchtigen Speicher vorzubereiten, der eine doppelt so große als die zum Speichern eines Anwendungsprogramms benötige Speicherkapazität aufweist.
-
Das heißt, ein Verfahren im Stand der Technik benötigt eine Vorbereitung eines Speicherbereichs eines alten Steuerprogramms, eines Speicherbereichs von alten Kalibrierdaten, eines Speicherbereichs eines neuen Steuerprogramms und eines Speicherbereichs von neuen Kalibrierdaten. Im Gegensatz dazu benötigt das obige Beispiel der vorliegenden Erfindung nur die Vorbereitung eines Speicherbereichs eines alten Steuerprogramms, eines Speicherbereichs von alten Kalibrierdaten und eines Speicherbereichs, der von einem neuen Steuerprogramm und neuen Kalibrierdaten geteilt wird, wobei die Speicherkapazität verglichen mit dem Verfahren im Stand der Technik auf ungefähr Dreiviertel (3/4) verringert wird. Diese Konfiguration kann hohe Kosten aufgrund der Erhöhung einer Speicherkapazität eines nicht-flüchtigen Speichers vermeiden, während eine Umprogrammierung während einer Ausführung eines Anwendungsprogramms durchgeführt wird.
-
Figurenliste
-
Die obigen und andere Objekte, Merkmale und Vorteile der vorliegenden Erfindung werden durch die folgende detaillierte Beschreibung unter Bezugnahme auf die beigefügten Figuren verdeutlicht. Es zeigen:
- 1 ein Funktionsblockdiagramm, das eine Konfiguration einer ersten Ausführungsform der vorliegenden Erfindung darstellt;
- 2 ein Diagramm, das eine Bestimmungstabelle eines logischen Bereichs darstellt;
- 3 ein Ablaufdiagramm, das einen Aktivierungsvorgang darstellt;
- 4 ein Ablaufdiagramm, das einen Umschreibvorgang darstellt;
- 5 ein Beispiel eines Umschreibens eines Steuerprogramms;
- 6 ein Beispiel eines Löschens eines Steuerprogramms;
- 7 ein Beispiel eines Umschreibens von Kalibrierdaten;
- 8 ein Beispiel eines Löschens von Kalibrierdaten; und
- 9 ein Beispiel eines Umschreibens von Daten.
-
AUSFÜHRUNGSFORMEN ZUM AUSFÜHREN DER ERFINDUNG
-
Im Folgenden wird eine Ausführungsform, die die vorliegende Erfindung für eine elektronische Steuereinheit in einem Fahrzeug zum Steuern eines Motors eines Fahrzeuges, wie beispielsweise eines Automobils, anwendet, mit Bezug auf die Figuren beschrieben. Die elektronische Steuereinheit 1, die auch als ECU 1 bezeichnet werden kann, weist eine CPU 2 (die äquivalent zu einer Verarbeitungseinheit ist), eine Flash-ROM-Steuereinheit 3, ein RAM 4, ein EEPROM 5, einen Kommunikationsschnittstellen-Schaltkreis 6 und einen Eingabe/Ausgabe-Schaltkreis 7 bzw. Input/Output-Schalkreis auf, die über einen internen Bus 8 miteinander verbunden sind.
-
Die Flash-ROM-Steuereinheit 3 ist mit einem Flash-ROM 9 (der äquivalent zu einem nicht-flüchtigem Speicher ist) verbunden und führt ein Lesen und ein Schreiben von Daten bezogen auf das Flash-ROM 9 gemäß einer von der CPU 2 eingegebenen Anweisung durch. Das RAM 4 ist ein flüchtiger Speicher zum temporären Speichern von Betriebsergebnissen durch die CPU 2. Das EEPROM 5 ist ein nicht-flüchtiger Speicher, in dem es möglich ist gespeicherte Inhalte (d.h. Speicherinhalte) umzuschreiben.
-
Der Kommunikationsschnittstellen-Schaltkreis 6 führt Datenkommunikationen mit im Fahrzeug angebrachten verschiedenen Vorrichtungen bzw. Geräten über ein LAN 10 im Fahrzeug durch. Das LAN 10 im Fahrzeug ist mit einem kabellosen Kommunikator 12 verbunden, der kabellose Kommunikationen mit einem in einem Netzwerk außerhalb des Fahrzeuges angeordneten Server 11 durchführt. Der kabellose Kommunikator 12 kann eine für kabellose Kommunikationen dediziere bzw. bestimmte Vorrichtung oder eine andere elektronische Steuereinheit, die eine kabellose Kommunikationsfunktion aufweist, sein. Der Server 11 verteilt ein Anwendungsprogramm, mit dem die elektronische Steuereinheit 1 einen Motor 14 (der äquivalent zu einem Steuerziel ist), wie später erwähnt, steuert. Nach Empfangen einer Anfrageanweisung von der CPU 2 gibt der Kommunikationsschnittstellen-Schaltkreis 6 eine Übertragungsanweisung eines Anfragesignals an den kabellosen Kommunikator 12 aus. Nach Empfangen der Übertragungsanweisung des Anfragesignals vom Kommunikationsschnittstellen-Schaltkreis 6, überträgt der kabellose Kommunikator 12 ein Anfragesignal an den Server 11.
-
Nach Empfangen des Anfragesignals vom kabellosen Kommunikator 12 bestimmt der Server 11, ob eine Aktualisierung eines Anwendungsprogramms für die elektronische Steuereinheit 1, die als eine Übertragungsquelle des Anfragesignals dient, benötigt wird. Auf Grundlage des vom kabellosen Kommunikator 12 empfangenen Anfragesignals vergleicht der Server 11 die Version eines durch die elektronische Steuereinheit 1 als die Übertragungsquelle des Anfragesignals gehaltenen neuesten Anwendungsprogramms mit der Version eines durch den Server 11 selbst gehaltenen neuesten Anwendungsprogramms, um dadurch zu bestimmen, ob eine Aktualisierung eines Anwendungsprogramms für die elektronische Steuereinheit 1 als die Übertragungsquelle des Anfragesignals benötigt wird. Wenn bestimmt wird, dass die Versionen der zwei Anwendungsprogramme einander entsprechen, bestimmt der Server 11, dass irgendeine Aktualisierung des Anwendungsprogramms nicht erforderlich ist; der Server 11 überträgt eine Nachricht, die anzeigt, dass irgendeine Aktualisierung nicht erforderlich ist, an die elektronische Steuereinheit 1 als die Übertragungsquelle.
-
Wenn im Gegensatz dazu bestimmt wird, dass die Versionen der zwei Anwendungsprogramme einander aufgrund einer Versionsverbesserung, wie beispielsweise einer Fehlermodifikation bzw. Bugmodifikation oder eines Leistungsfortschritts, nicht entsprechen, bestimmt der Server 11, dass eine Aktualisierung des Anwendungsprogramms erforderlich ist; der Server 11 überträgt eine Nachricht, die anzeigt, dass eine Aktualisierung erforderlich ist, an die elektronische Steuereinheit 1 als die Übertragungsquelle, während er eine Aktualisierungssoftware verteilt, die das neueste Anwendungsprogramm aufweist.
-
Die durch den Server 11 verteilte Aktualisierungssoftware ist so konfiguriert, dass sie ein Steuerprogramm und Kalibrierdaten aufweist; die Aktualisierungssoftware weist die Versionsinformation und die Informationsart, die entweder die Art eines Steuerprogramms oder von Kalibrierdaten anzeigt, auf. Der Server 11 überträgt darüber hinaus ein Steuerprogramm und Kalibrierdaten separat, wenn er die Aktualisierungssoftware verteilt. Nach Empfangen der vom Server 11 verteilten Aktualisierungssoftware gibt der kabellose Kommunikator 12 die empfangene Aktualisierungssoftware an den Kommunikationsschnittstellen-Schaltkreis 6 aus. Das Aktualisierungssoftware-Verteilungssystem 13 ist so konfiguriert, dass es die elektronische Steuereinheit 1, den kabellosen Kommunikator 12 und den Server 11 aufweist.
-
Der mit dem oben erwähnten Motor 14 verbundene Eingabe/Ausgabe-Schaltkreis 7 empfängt Sensorsignale von verschiedenen Sensoren, die einen Betriebszustand des Motors 14 erfassen und führt eine Signalverarbeitung, wie beispielsweise eine Wellenformverarbeitung, des empfangenen Signals durch, wobei er die das Ergebnis der Signalverarbeitung anzeigenden Daten an die CPU 2 ausgibt. Nach Empfangen der Daten vom Eingabe/Ausgabe-Schaltkreis 7 bestimmt die CPU 2 einen Betriebszustand des Motors 14 unter Verwendung der Daten und berechnet die zum Steuern des Motors 14 erforderlichen Daten, wie beispielsweise einen Ventilöffnungszeitpunkt oder einen Ventilöffnungszeitraum des Injektors, der den Kraftstoff injiziert, wobei sie eine Antriebsanweisung an den Eingabe/Ausgabe-Schaltkreis 7 gemäß dem Berechnungsergebnis ausgibt. Nach Empfangen der Antriebsanfrage von der CPU 2 gibt der Eingabe/Ausgabe-Schaltkreis 7 ein Antriebssignal an den Motor 14 gemäß der Antriebsanfrage aus und steuert beispielsweise die Kraftstoffinjektion des Injektors.
-
Das Flash-ROM 9, das ein nicht-flüchtiger Speicher ist, dessen gespeicherter Inhalt umschreibbar ist, weist einen Bootbereich 15 und einen Benutzerbereich 16 auf. Der Bootbereich 15 speichert ein Bootprogramm zum Aktivieren (d.h. zum Durchführen eines Startes) der elektronischen Steuereinheit 1, wenn Energie zugeführt wird. Der Benutzerbereich 16 speichert ein Anwendungsprogramm zum Steuern des Motors 14. Der Benutzerbereich 16 weist drei physikalische Bereiche 16a, 16b und 16c aus einem ersten physikalischen Bereich 16a, einem zweiten physikalischen Bereich 16b und einem dritten physikalischen Bereich 16c als Speicherbereiche für ein Anwendungsprogramm auf. Die CPU 2 führt das im Bootbereich 15 gespeicherte Bootprogramm aus und das Bootprogramm führt das im Benutzerbereich 16 gespeicherte Anwendungsprogramm zum Steuern des Motors 14 aus.
-
Die CPU 2 erfasst eine Zündung, die gemäß einem von einer Quelle außerhalb der elektronischen Steuereinheit 1 eingegebenen Zündungssignal angeschaltet wird. Die CPU 2 weist einen Zuweisungsverarbeitungsabschnitt 2a, einen Steuerverarbeitungsabschnitt 2b, einen Schreibverarbeitungsabschnitt 2c und einen Wechselverarbeitungsabschnitt 2d auf, die unterschiedliche Funktionen aufweisen. Das heißt, die CPU 2 funktioniert als die betreffenden Verarbeitungsabschnitte 2a bis 2d durch Ausführen des im Flash-ROM 9 gespeicherten Programms.
-
Der Zuweisungsverarbeitungsabschnitt 2a weist einen ersten logischen Bereich, einen zweiten logischen Bereich und einen dritten logischen Bereich so zu, dass sie den drei physikalischen Bereichen 16a bis 16c des Flash-ROM 9 entsprechen. Der Zuweisungsverarbeitungsabschnitt 2a weist den ersten logischen Bereich als einen logischen Bereich zum Speichern eines in einem Anwendungsprogramm vorhandenen Steuerprogramms zu, weist den zweiten logischen Bereich als einen logischen Bereich zum Speichern von im Anwendungsprogramm vorhandenen Kalibrierdaten zu und weist den dritten logischen Bereich als logischen Bereich zum Arbeiten zu. Die Steuerverarbeitungsabschnitt 2b steuert den Motor 14 unter Verwendung des im ersten logischen Bereich gespeicherten Steuerprogramms und den im zweiten logischen Bereich gespeicherten Kalibrierdaten.
-
Als Antwort, dass der kabellose Kommunikator 12 eine vom Server 11 verteile Aktualisierungssoftware empfängt und die empfangene Aktualisierungssoftware in den Kommunikationsschnittstellen-Schaltkreis 6 eingibt, schreibt der Schreibverarbeitungsabschnitt 2c die eingegebene Aktualisierungssoftware in den dritten logischen Bereich. Falls die vom Server 11 verteilte Aktualisierungssoftware ein Steuerprogramm ist, schreibt der Schreibverarbeitungsabschnitt 2c das Steuerprogramm in den dritten logischen Bereich. Falls die vom Server 11 verteilte Aktualisierungssoftware Kalibrierdaten sind, schreibt der Schreibverarbeitungsabschnitt 2c die Kalibrierdaten in den dritten logischen Bereich.
-
Als Antwort, dass das Steuerprogramm durch den Schreibverarbeitungsabschnitt 2c in den dritten logischen Bereich geschrieben wird, wechselt der Wechselverarbeitungsabschnitt 2d den ersten logischen Bereich und den dritten logischen Bereich miteinander. Als Antwort darauf, dass die Kalibrierdaten durch den Schreibverarbeitungsabschnitt 2c in den dritten logischen Bereich geschrieben werden, wechselt der Wechselverarbeitungsabschnitt 2d den zweiten logischen Bereich und den dritten logischen Bereich miteinander.
-
Die CPU 2 speichert eine in 2 dargestellte Bestimmungstabelle für einen logischen Bereich. Die Bestimmungstabelle für einen logischen Bereich stellt die Verbindungen zwischen den Arten (K1 bis K2) der drei physikalischen Bereiche 16a bis 16c, den Versionen (V1 bis V3) und die Nummer der zurzeit zugewiesenen logischen Bereichen dar. Beispielsweise stellt der Zustand 1 folgendes dar: der erste physikalische Bereich 16a speichert ein altes Steuerprogramm; der zweite physikalische Bereich 16b speichert alte Kalibrierdaten; der dritte physikalische Bereich 16c ist in einem gelöschten Zustand; der erste physikalische Bereich 16a ist mit dem ersten logischen Bereich zugewiesen; der zweite physikalische Bereich 16b ist mit dem zweiten logischen Bereich zugewiesen; der dritte physikalische Bereich 16c ist mit dem dritten logischen Bereich zugewiesen.
-
Nachfolgend wird ein Betrieb der obigen Konfiguration mit Bezug auf die 3 bis 9 beschrieben. Nachdem erfasst wird, dass eine Zündung gemäß einem von einer Quelle außerhalb der elektronische Steuereinheit 1 eingegebenen Zündungssignal angeschaltet wird, startet die CPU 2 in der elektronische Steuereinheit 1 einen Aktivierungsvorgang (d.h. einen Startvorgang). Beim Start des Aktivierungsvorgans referenziert die CPU 2 die Bestimmungstabelle auf einen logischen Bereich, bestimmt die logischen Bereiche zu diesem Zeitpunkt (S1) und bestimmt, ob beide Bereiche, erster logischer Bereich und zweiter logischer Bereich, einem physikalischen Bereich zugewiesen sind (S2). Die CPU 2 startet darüber hinaus beim Start des Aktivierungsvorgangs einen Umschreibvorgang und führt dann den Aktivierungsvorgang und den Umschreibvorgang parallel durch.
-
Wenn bestimmt wird, dass beide Bereiche, erster logischer Bereich und zweiter logischer Bereich, den physikalischen Bereichen zugewiesen sind (S2: JA), aktiviert de CPU 2 ein im ersten logischen Bereich gespeichertes Kommunikationssteuerprogramm, referenziert das aktivierte Steuerprogramm auf die im zweiten logischen Bereich gespeicherten Kalibrierdaten und startet die Steuerung des Motors 14 (S3). Nach Starten des Motors 14, steht die CPU 2 zum Beenden der Steuerung des Motors 14 bereit und bestimmt, ob die Steuerung des Motors 14 normal beendet wird (S4). Wenn bestimmt wird, dass die Steuerung des Motors 14 normal beendet wird (S4: JA), beendet die CPU 2 den Aktivierungsvorgang.
-
Wenn bestimmt wird, dass die Steuerung des Motors 14 nicht normal beendet wird (S4: NEIN), bestimmt die CPU 2, ob der zurzeit im dritten logischen Bereich geschriebene Inhalt das Steuerprogramm oder die Kalibrierdaten ist (S5, S6). Wenn bestimmt wird, dass der zurzeit im dritten logischen Bereich geschriebene Inhalt das Steuerprogramm ist (S5: JA), löscht die CPU 2 das zu diesem Zeitpunkt im ersten logischen Bereich gespeicherte Kommunikationssteuerprogramm (S7), wechselt den ersten logischen Bereich und den dritten logischen Bereich (S8) miteinander, kehrt zu S2 zurück und wiederholt die Verarbeitung nach S2. Wenn bestimmt wird, dass der zurzeit im dritten logischen Bereich geschriebene Inhalt die Kalibrierdaten ist (S6: JA), löscht die CPU 2 die zu diesem Zeitpunkt im zweiten logischen Bereich gespeicherten Kalibrierdaten (S9), wechselt den zweiten logischen Bereich und den dritten logischen Bereich miteinander (S10), kehrt zu S2 zurück und wiederholt die Verarbeitung nach S2. Wenn bestimmt wird, dass beide Bereiche, erster logischer Bereich und zweiter logischer Bereich, keinen physikalischen Bereichen zugewiesen sind (S2: NO), beendet die CPU 2 den Aktivierungsvorgang ohne Starten der Steuerung des Motors 14.
-
Die CPU 2 startet einen Umschreibvorgang. Falls die Aktualisierung eines Anwendungsprogramms erforderlich ist, aktualisiert die CPU 2 das Anwendungsprogramm wie folgt. Die elektronische Steuereinheit 1, die den Motor eines Fahrzeuges, wie beispielsweise eines Automobils, steuert, führt ein einziges Anwendungsprogramm aus. Der Umschreibvorgang aktualisiert das Anwendungsprogramm über alle Bereiche des Benutzerbereichs 16 des Flash-ROM 9.
-
Das heißt, nach Starten des Umschreibvorgangs, gibt die CPU 2 eine Anfrageanweisung an den Kommunikationsschnittstellen-Schaltkreis 6 aus, überträgt ein Anfragesignal über den kabellosen Kommunikator 12 an den Server 11 (S11) und steht für den Empfang des Antwortsignals vom Server 11 bereit (S12). Nach Empfangen des vom kabellosen Kommunikator 12 übertragenen Anfragesignals bestimmt der Server 11, ob eine Aktualisierung des Anwendungsprogramms für die elektronische Steuereinheit 1 als eine Übertragungsquelle des Anfragesignals benötigt wird. Nachdem bestimmt wird, dass irgendeine Aktualisierung des Anwendungsprogramms nicht erforderlich ist, überträgt der Server 11 ein Antwortsignal, das anzeigt, dass irgendeine Aktualisierung nicht erforderlich ist, an die elektronische Steuereinheit 1 als die Übertragungsquelle des Anfragesignals. Nachdem im Gegensatz dazu bestimmt wird, dass die Aktualisierung eines Anwendungsprogramms, beispielsweise für die Versionsverbesserung aufgrund von fortschrittlichen Merkmalen oder einer Fehlermodifikation, erforderlich ist, überträgt der Server 11 ein Antwortsignal, dass anzeigt, dass eine Aktualisierung erforderlich ist, an die elektronische Steuereinheit 1 als die Übertragungsquelle des Anfragesignals, während er eine Aktualisierungssoftware verteilt, die ein Anwendungsprogramm aufweist.
-
Nachdem bestimmt wird, dass der kabellose Kommunikator 12 das vom Server 11 übertragene Antwortsignal empfängt (S12: JA), bestimmt die CPU 2, ob die Aktualisierung des Anwendungsprogramms erforderlich ist, auf Grundlage des empfangenen Antwortsignals (S13). Wenn bestimmt wird, dass die Aktualisierung des Anwendungsprogramms nicht erforderlich ist (S13: NEIN), beendet die CPU 2 den Umschreibvorgang.
-
Wenn im Gegensatz dazu bestimmt wird, dass die Aktualisierung des Anwendungsprogramms erforderlich ist (S13: JA), kennzeichnet die CPU 2 den dritten logischen Bereich als einen Schreibbereich (S14), startet ein Schreiben der vom Server 11 in den dritten logischen Bereich verteilten Aktualisierungssoftware (S15) und steht bis zum Ende des vollständigen Schreibens der Aktualisierungssoftware bereit (S16). Wenn bestimmt wird, dass das vollständige Schreiben der Aktualisierungssoftware beendet ist (S16: JA), wechselt die CPU 2 die logischen Bereiche gemäß der Art der Aktualisierungssoftware (S17) und beendet den Umschreibvorgang.
-
Das heißt, falls die vom Server 11 verteilte Aktualisierungssoftware, wie in 5, ein Steuerprogramm ist, startet die CPU 2 das Schreiben des Steuerprogramms in den dritten logischen Bereich. Wenn das Schreiben des Steuerprogramms in den dritten logischen Bereich beendet wird, wechselt die CPU 2 den ersten logischen Bereich und den dritten logischen Bereich miteinander. Die CPU 2 aktiviert dann ein im ersten logischen Bereich gespeichertes Kommunikationssteuerprogramm, referenziert das aktivierte Steuerprogramm auf die im zweiten logischen Bereich gespeicherten Kalibrierdaten und startet die Steuerung des Motors 14. Das heißt, die CPU 2 startet die Steuerung des Motors 14 unter Verwendung der Kombination des Steuerprogramms der Version 2 und den Kalibrierdaten der Version 1.
-
Falls das im ersten logischen Bereich gespeicherte Kommunikationssteuerprogramm (d.h. das vor dem Wechseln der logischen Bereiche in den dritten logischen Bereich geschriebene Steuerprogramm) dann normal ist, beendet oder schließt die CPU 2 die Steuerung des Motors 14 normal ab. Falls das vor dem Wechseln der logischen Bereiche im dritten logischen Bereich geschriebene Steuerprogramm im Gegensatz dazu nicht normal ist, versagt die CPU 2, die Steuerung des Motors 14 normal abzuschließen. Die CPU 2 löscht, wie in 6 dargestellt, das zu diesem Zeitpunkt im ersten logischen Bereich gespeicherte Steuerprogramm, wechselt den ersten logischen Bereich und den dritten logischen Bereich miteinander und startet die Steuerung des Motors 14 wieder. Das heißt, die CPU 2 startet die Steuerung des Motors 14 unter Verwendung der Kombination des Steuerprogramms der Version 1 und der Kalibrierdaten der Version 1. Es ist ein Fall anzunehmen, bei dem die Steuerung des Motors 14 nicht normal beendet wird, obwohl das vor einem Wechseln der logischen Bereiche in den dritten Bereich geschriebene Steuerprogramm zum Starten der Steuerung des Motors 14 aktiviert ist. In einem derartigen Fall führt die CPU 2 das Steuerprogramm in den Zustand zurück, bevor es umgeschrieben wurde, und startet die Steuerung des Motors 14 wieder.
-
Falls die vom Server 11 verteilte Aktualisierungssoftware ferner, wie in 7 dargestellt, Kalibrierdaten sind, startet die CPU 2 das Schreiben der Kalibrierdaten in den dritten logischen Bereich. Wenn das Schreiben der Kalibrierdaten in den dritten logischen Bereich beendet wird, wechselt die CPU 2 den zweiten logischen Bereich und den dritten logischen Bereich miteinander. Die CPU 2 aktiviert dann das im ersten logischen Bereich gespeicherte Steuerprogramm, referenziert die im zweiten logischen Bereich gespeicherten Kalibrierdaten mit dem aktivierten Steuerprogramm, und startet die Steuerung des Motors 14 wieder.
-
Das heißt, die CPU 2 startet die Steuerung des Motors 14 unter Verwendung der Kombination des Steuerprogramms der Version 1 und den Kalibrierdaten der Version 2.
-
Falls dann die im zweiten logischen Bereich gespeicherten Kalibrierdaten (d.h. die vor dem Wechseln der logischen Bereiche im dritten logischen Bereich geschriebenen Kalibrierdaten) normal sind, beendet oder schließt die CPU 2 die Steuerung des Motors 14 normal ab. Falls die vor dem Wechseln der logischen Bereiche im dritten logischen Bereich geschriebenen Kalibrierdaten im Gegensatz dazu nicht normal sind, versagt die CPU 2, die Steuerung des Motors 14 normal abzuschließen. Die CPU 2 löscht, wie in 8 dargestellt, die zu diesem Zeitpunkt im zweiten logischen Bereich gespeicherten Kalibrierdaten, wechselt den zweiten logischen Bereich und den dritten logischen Bereich miteinander und startet die Steuerung des Motors 14 wieder. Das heißt, die CPU 2 startet die Steuerung des Motors 14 unter Verwendung der Kombination des Steuerprogramms der Version 1 und der Kalibrierdaten der Version 1. Es ist ein Fall anzunehmen, bei dem die Steuerung des Motors 14 nicht normal beendet wird, obwohl die vor einem Wechseln der logischen Bereiche in den dritten Bereich geschriebenen Kalibrierdaten zum Starten der Steuerung des Motors 14 aktiviert sind. In einem derartigen Fall führt die CPU 2 die Kalibrierdaten in den Zustand zurück, bevor sie umgeschrieben wurden, und startet die Steuerung des Motors 14 wieder.
-
Es ist ferner ein Fall anzunehmen, in dem die Steuerung des Motors 14 versagt, dass sie abgeschlossen oder beendet wird, obwohl die Steuerung des Motors 14 gestartet wird. In einem derartigen Fall überträgt die CPU 2 die Information, die die Kombination des Steuerprogramms und der Kalibrierdaten zu diesem Zeitpunkt identifiziert, als die Fehlerinformation über den kabellosen Kommunikator 12 an den Server 11. Wenn die über den kabellosen Kommunikator 12 übertragene Fehlerinformation empfangen wird, handhabt bzw. managet der Server 11 die empfangene Fehlerinformation.
-
Die CPU 2 arbeitet wie folgt, wenn beide, Steuerprogramm und Kalibrierdaten, umgeschrieben werden. Die Kalibrierdaten weisen (i) einen Adressteil, der eine Startadresse von Daten speichert, und (ii) einen Datenteil, der die Daten speichert, auf. Eine Referenz auf die Daten erfolgt über die im Adressteil gespeicherten Adressen. Die CPU 2 schreibt die alten Kalibrierdaten in Adressen in einen nicht verwendeten Bereich im Datenteil und schreibt die neuen Kalibrierdaten in die Adressen der alten Kalibrierdaten. Die CPU 2 schreibt die auf die Kalibrierdaten referenzierende Referenzzieladresse von einer auf die alten Kalibrierdaten referenzierenden Referenzzieladresse in eine auf die neuen Kalibrierdaten referenzierende Referenzzieladresse im Speicherprogramm um.
-
Im Folgenden wird der in 9 dargestellte Fall, in dem die Adressen 100 bis 299 einem Steuerprogramm entsprechen, die Adressen 300 bis 329 einem Adressteil von Kalibrierdaten entsprechen und die Adressen 330 bis 400 einem Datenteil der Kalibrierdaten entsprechen, erklärt.
-
Vor einem Schreiben der neuen Kalibrierdaten werden alte Kalibrierdaten „10 bis 19“ in den Adressen „330 bis 339“ im Datenteil gespeichert. Eine Referenzzieladresse „330“, die eine Startadresse der alten Kalibrierdaten „10 bis 19“ ist, wird in der Adresse „300“ im Adressteil gespeichert. Die Referenzzielinformation wird in der Adresse „100“ im Steuerprogramm gespeichert; die Referenzzielinformation zeigt eine Referenzzieladresse „300“ an, die eine Startadresse „330“ der alten Kalibrierdaten „10 bis 19“ speichert, um dadurch die alten Kalibrierdaten zu referenzieren.
-
Wenn neue Kalibrierdaten geschrieben werden, schreibt die CPU 2 die alten Kalibrierdaten „10 bis 19“ in die Adressen „380 bis 389“ in einen nicht verwendeten Bereich und schreibt die neuen Kalibrierdaten „20 bis 29“ in die Adressen „330 bis 339“, in denen vorhergehend die alten Kalibrieren gespeichert waren. Die CPU 2 schreibt die Referenzzieladresse „330“, die in der Adresse „300“ gespeichert war, in die Adresse „320“ in einen nicht verwendeten Bereich und schreibt eine Referenzzieladresse „380“, die den Start der alten Kalibrierdaten referenziert, in die Adresse „300“. Die CPU 2 schreibt die in der Adresse „100“ gespeicherte Referenzzieladresse im Steuerprogramm um, und schreibt die auf die Kalibrierdaten referenzierende Referenzzieladresse von der auf die alten Kalibrierdaten referenzierenden (Referenzziel-)Adresse „300“ in die auf die neuen Kalibrierdaten referenzierende (Referenzziel-)Adresse „320“ um.
-
Wie oben beschrieben kann die vorliegende Ausführungsform die folgenden vorteilhaften Effekte bereitstellen. Drei physikalische Bereiche 16a bis 16c sind in einem Flash-ROM 9 in einer elektronischen Steuereinheit vorbereitet, wobei ein erster logischer Bereich, ein zweiter logischer Bereich und ein dritter logischer Bereich so zugewiesen sind, dass sie den drei physikalischen Bereichen 16a bis 16c entsprechen. Der erste logische Bereich ist als ein logischer Bereich zum Speichern des Steuerprogramms zugewiesen und der zweite logische Bereich ist als ein logischer Bereich zum Speichern der zum Steuern des Motors 14 verwendeten Kalibrierdaten zugewiesen. Der dritte logische Bereich ist im Gegensatz dazu als ein logischer Bereich zum Arbeiten zugewiesen. Der erste logische Bereich und der zweite logische Bereich werden verwendet, um ein Anwendungsprogramm auszuführen, während der dritte logische Bereich verwendet wird, um eine Umprogrammierung durchzuführen. Dies kann die Umprogrammierung während der Ausführung des Anwendungsprogramms durchführen. Der dritte Bereich wird darüber hinaus durch ein Steuerprogramm und von Kalibrierdaten einer Aktualisierungssoftware geteilt, wobei entweder das Steuerprogramm oder die Kalibrierdaten selektiv im dritten logischen Bereich gespeichert werden. Dies beseitigt den Bedarf eines nicht-flüchtigen Speichers, der eine doppelt so große als die zum Speichern eines Anwendungsprogramms benötige Speicherkapazität aufweist.
-
Das heißt, ein Verfahren im Stand der Technik benötigt einen Speicherbereich für ein altes Steuerprogramm, einen Speicherbereich für alte Kalibrierdaten, einen Speicherbereich für ein neues Steuerprogramm und einen Speicherbereich für neue Kalibrierdaten. Die vorliegende Erfindung benötigt im Gegensatz dazu einen Speicherbereich für ein altes Steuerprogramm, einen Speicherbereich für alte Kalibrierdaten und einen Speicherbereich entweder für ein neues Steuerprogramm oder neue Kalibrierdaten; dies reduziert die Speicherkapazität auf ungefähr dreiviertel (3/4) verglichen mit dem konventionellen Verfahren. Eine Umprogrammierung kann somit während einer Ausführung eines Anwendungsprogramms durchgeführt werden, während die hohen Kosten aufgrund der Erhöhung der Speicherkapazität des Flash-ROM 9 verhindert werden. Da die Differenz zwischen der Kapazität eines Steuerprogramms und der Kapazität von Kalibrierdaten kleiner ist, kann der durch das Steuerprogramm und die Kalibrierdaten gemeinsam verwendete dritte logische Bereich effizienter verwendet werden.
-
Es ist darüber hinaus ein Fall anzunehmen, in dem die elektronische Steuereinheit 1 nach einem Schreiben eines Steuerprogramms die Steuerung des Motors 14 startet, aber die Steuerung des Motors 14 nicht normal beendet wird. In einem derartigen Fall, wechselt die elektronische Steuereinheit 1 den ersten logischen Bereichs und den dritten logischen Bereich miteinander und startet die Steuerung des Motors 14 unter Verwendung des ersten logischen Bereichs und des zweiten logischen Bereich nach einem Wechseln des ersten logischen Bereichs und des dritten logischen Bereichs miteinander wieder. Das Steuerprogramm wird in den Zustand, bevor es geschrieben wird, zurückgeführt und die Steuerung des Motors 14 wird wieder gestartet, sogar wenn beispielsweise die Fehlanpassung zwischen dem geschriebenen Steuerprogramm und den originalen Kalibrierdaten verursacht, dass die Steuerung des Motors 14 versagt, normal beendet zu werden. Die Steuerung des Motors 14 kann somit annäherungsweise normal beendet werden. Ein Zurückführen des Steuerprogramms in den Zustand, bevor es geschrieben wird, kann somit im Voraus eine Situation vermeiden, in der eine Fehlfunktion vorhanden ist, sogar falls (i) ein geschriebenes Steuerprogramm fehlerhaft bzw. defekt ist oder (ii) ein Fehler auftritt, wenn ein Steuerprogramm geschrieben wird.
-
Es ist darüber hinaus ein Fall anzunehmen, in dem die elektronische Steuereinheit 1 die Steuerung des Motors 14 nach Schreiben der Kalibrierdaten startet, aber die Steuerung des Motors 14 nicht normal beendet wird. In einem derartigen Fall, wechselt die elektronische Steuereinheit 1 den zweiten logischen Bereich und den dritten logischen Bereich miteinander und startet die Steuerung des Motors 14 unter Verwendung des ersten logischen Bereichs und des zweiten logischen Bereichs nach Wechseln des zweiten logischen Bereichs und des dritten logischen Bereichs miteinander wieder. Das Steuerprogramm wird in den Zustand, bevor es geschrieben wird, zurückgeführt und die Steuerung des Motors 14 wird wieder gestartet, sogar wenn beispielsweise die Fehlanpassung zwischen den geschriebenen Kalibrierdaten und dem originalen Steuerprogramm verursacht, dass die Steuerung des Motors 14 versagt, normal beendet zu werden. Die Steuerung des Motors 14 kann somit annäherungsweise normal beendet werden. Ein Zurückführen der Kalibrierdaten in den Zustand, bevor sie geschrieben werden, kann somit im Voraus eine Situation vermeiden, in der eine Fehlfunktion vorhanden ist, sogar falls (i) geschriebene Kalibrierdaten fehlerhaft bzw. defekt sind oder (ii) ein Fehler auftritt, wenn Kalibrierdaten geschrieben werden.
-
Die alten Kalibrierdaten werden darüber hinaus in die Adressen in einem nicht verwendeten Bereich im Datenteil geschrieben und die neuen Kalibrierdaten werden in die Adressen im Datenteil geschrieben, in denen vorhergehend die alten Kalibrierdaten gespeichert waren. Dies kann den nicht verwendeten Bereich in einen Teil des Bereichs aufnehmen, nachdem beide, Steuerprogramm und Kalibrierdaten, geschrieben werden; dies kann im Voraus die Situation vermeiden, die verursacht, dass nicht verwendete Bereiche aufgeteilt bzw. fragmentiert werden. Des Weiteren wird die die Kalibrierdaten in einem Steuerprogramm referenzierende Referenzzieladresse von einer auf die alten Kalibrierdaten referenzierenden (Referenzziel-)Adresse auf eine auf die neuen Kalibrierdaten referenzierende (Referenzziel-) Adresse umgeschrieben. Dies beseitigt den Bedarf einen Speicherbereich für Referenzzieladressen, die auf beide Kalibrierdaten, alte Kalibrierdaten und neue Kalibrierdaten, referenzieren, vorzubereiten, wodurch die Erhöhung der Speicherkapazität vermieden wird.
-
Es ist ferner ein Fall anzunehmen, in dem die Steuerung des Motors 14 nicht normal beendet wird, obwohl die Steuerung des Motors 14 in der elektronischen Steuereinheit gestartet wird. Die Fehlerinformation erlaubt es in diesem Fall, dass die Identifikation der Kombination des Steuerprogramms und der Kalibrierdaten zu diesem Zeitpunkt an den Server 11 übertragen wird. Dies erlaubt es dem Server 11, die Kombination des Steuerprogramms und der Kalibrierdaten, die einen Fehler darstellen, zu handhaben, um die Qualität zu verbessern.
-
Während die vorliegende Erfindung mit Bezug auf Ausführungsformen davon beschrieben wurde, ist es zu verstehen, dass die Erfindung bzw. Offenbarung nicht auf die Ausführungsformen und Konstruktionen begrenzt ist. Die vorliegende Erfindung ist dafür vorgesehen, verschiedene Modifikationsbeispiele und äquivalente Anordnungen abzudecken. Zusätzlich sind verschiedene Kombinationen und Konfigurationen, und andere Kombinationen und Konfigurationen, die mehrere, weniger oder nur ein einziges Element aufweisen, auch innerhalb des Geistes und des Umfangs der vorliegenden Erfindung.
-
Die vorliegende Erfindung kann nicht nur auf die elektronische Steuereinheit, die den Motor eines Fahrzeuges, wie beispielsweise eines Automobils, steuert, sondern auch auf eine elektronische Steuereinheit, die eine sich unterscheidende Vorrichtung steuert, wie beispielweise ein Getriebe, angewandt werden. Die vorliegende Erfindung kann darüber hinaus nicht nur für eine in einem Fahrzeug verwendete elektronische Steuereinheit, sondern auch für eine elektronische Steuereinheit, die anders als im Fahrzeug genutzt wird, angewandt werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- JP 2013254264 A [0002, 0003]
- JP 2006301960 A [0002, 0003]
- JP 2013 [0002]
- JP 254264 A [0002]