DE112018001315T5 - Steuervorrichtung, programmaktualisierungssystem und programmaktualisierungsverfahren - Google Patents

Steuervorrichtung, programmaktualisierungssystem und programmaktualisierungsverfahren Download PDF

Info

Publication number
DE112018001315T5
DE112018001315T5 DE112018001315.4T DE112018001315T DE112018001315T5 DE 112018001315 T5 DE112018001315 T5 DE 112018001315T5 DE 112018001315 T DE112018001315 T DE 112018001315T DE 112018001315 T5 DE112018001315 T5 DE 112018001315T5
Authority
DE
Germany
Prior art keywords
data
update
program
unit
decompression
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.)
Pending
Application number
DE112018001315.4T
Other languages
English (en)
Inventor
Koji URAWAKI
Hidetoshi Teraoka
Fumiharu Nakahara
Kenichi Kurosawa
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Publication of DE112018001315T5 publication Critical patent/DE112018001315T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3097Grammar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Stored Programmes (AREA)

Abstract

Eine Steuervorrichtung beinhaltet eine Empfangseinheit, die Verteilungsdaten empfängt, die komprimierte Aktualisierungsdaten und eine Kopfzeile enthalten, die Informationen beinhaltet, um ein beliebiges einer Mehrzahl von Aktualisierungssystemen auszuweisen, eine Dekompressionseinheit, die die Aktualisierungsdaten aus den von der Empfangseinheit empfangenen Verteilungsdaten dekomprimiert, und eine Wiederherstellungseinheit, die ein neues Programm nach Aktualisierung gemäß einem in der Kopfzeile ausgewiesenen Aktualisierungssystem unter Verwendung der von der Dekompressionseinheit dekomprimierten Aktualisierungsdaten wiederherstellt. Die Dekompressionseinheit wechselt ein Dekompressionsverfahren, wenn die Aktualisierungsdaten dekomprimiert werden, auf Basis des in der Kopfzeile ausgewiesenen Aktualisierungssystems.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf eine Steuervorrichtung, ein Programmaktualisierungssystem und ein Programmaktualisierungsverfahren.
  • Verwandter Stand der Technik
  • In den letzten Jahren wurden diverse elektronische Steuereinheiten (ECUs) in Fahrzeugen montiert. Jede ECU führt diverse Programme aus und führt eine Kommunikation durch ein fahrzeuginternes Netzwerk wie z. B. ein CAN (Controller Area Network) durch, um diverse Funktionen in Zusammenhang mit dem Betrieb des Fahrzeugs umzusetzen.
  • Üblicherweise wird als Umprogrammierungsverfahren zum Aktualisieren von Programmen dieser ECUs ein Verfahren vorgeschlagen, bei dem ein neues Programm durch das CAN an jede ECU gesendet und in einem nicht flüchtigen Speicher in jeder ECU gespeichert wird. Bei manchen der diversen ECUs, die in den Fahrzeugen montiert sind, steigt jedoch die Anzahl von Programmen durch die Multifunktionalität des Fahrzeugs und zunehmende Zahl diverser Sensortypen, die im Fahrzeug montiert sind. Eine solche ECU ist mit dem Problem verbunden, dass das Umprogrammieren lange dauert (im Folgenden als „Umprogrammierungszeit“ bezeichnet).
  • Um die Umprogrammierungszeit der ECU zu verkürzen, zieht die PTL 1 ein Verfahren zum Wechseln eines Aktualisierungssystems, das bei der Umprogrammierung jeder ECU anzuwenden ist, gemäß einem Unterschied des Aktualisierungssystems des Programms, das jede ECU bearbeiten kann, und gemäß einem Status jeder ECU in Betracht. Das Aktualisierungssystem beinhaltet ein „Kompressionsaktualisierungssystem“ zum Teilen von Daten eines neuen Programms durch fixe Größen und Komprimieren der jeweiligen geteilten Daten, die an die ECU zu senden sind, und ein „Differenzaktualisierungssystem“ zum Komprimieren von Differenzdaten zwischen einem alten Programm, das bereits in der ECU gespeichert ist, und dem neuen Programm, das an die ECU zu senden ist. Bei dem Verfahren der PTL 1 wird die Gesamtmenge an Daten, die an die ECU zu senden sind, durch Anwenden dieser Aktualisierungssysteme verringert, wodurch die Umprogrammierungszeit der ECU verkürzt wird.
  • Außerdem wird, was das Verkürzen der Umprogrammierungszeit der ECU betrifft, in der PTL 2 ein Ansatz zum Erhöhen der Kompressionsrate von Sendedaten vorgeschlagen. Eine Datenkompression mit einem sogenannten Wörterbuchkompressionsverfahren wie z. B. LZ77 erhöht die Kompressionsrate von Daten im Allgemeinen, da die Größe eines Referenzwörterbuchs erweitert wird, das aufgerufen wurde, um ein bestehendes Muster in einem Datenstrom zu finden. Bei dem Verfahren der PTL 2 wird die Kompressionsrate durch Teilen des Datenstroms in eine Reihe von Blockgruppen und Komprimieren eines Zielblocks unter Verwendung des zu komprimierenden Zielblocks und eines Kompressionsergebnisses der Blockgruppe vor dem Zielblock als Referenzwörterbuch verbessert.
  • Liste der Referenzschriften
  • Patentliteratur
    • PTL 1: JP 2016-170740 A
    • PTL 2: JP 4888566 B2
  • Kurzdarstellung der Erfindung
  • Technisches Problem
  • Es besteht ein Bedarf daran, einen Dekompressionspuffer zum vorübergehenden Speichern von dekomprimierten Daten auf einem flüchtigen Speicher bereitzustellen, um die komprimierten Daten in der Einrichtung, die die komprimierten Daten empfängt, zu dekomprimieren. Beim herkömmlichen Verfahren, das in der PTL 2 beschrieben ist, wird die Größe des bei der Kompression verwendeten Referenzwörterbuchs gemäß der Kapazität des Dekompressionspuffers eingestellt. Bei einer Einrichtung, die in einem Fahrzeug montiert ist, wie z. B. eine ECU, ist der Spielraum von Hardwareressourcen im Allgemeinen begrenzt und ist die Kapazität eines flüchtigen Speichers, der als Dekompressionspuffer verwendbar ist, gering. Aus diesem Grund kann die Größe des Referenzwörterbuchs nicht zu groß gewählt werden und ist es schwierig, die Kompressionsrate zu erhöhen. Bei einem solchen herkömmlichen Verfahren ist die Beschleunigung der Programmaktualisierung nicht ausreichend, wenn die Programmaktualisierung durch Wechseln einer Mehrzahl von Aktualisierungssystemen, wie in PTL 1 beschrieben, durchgeführt wird.
  • Lösung des Problems
  • Eine Steuervorrichtung gemäß einem ersten Aspekt der Erfindung beinhaltet eine Empfangseinheit, die Verteilungsdaten empfängt, die komprimierte Aktualisierungsdaten und eine Kopfzeile enthält, die Informationen beinhaltet, um ein beliebiges einer Mehrzahl von Aktualisierungssystemen auszuweisen, eine Dekompressionseinheit, die die Aktualisierungsdaten aus den von der Empfangseinheit empfangenen Verteilungsdaten dekomprimiert, und eine Wiederherstellungseinheit, die ein neues Programm nach Aktualisierung gemäß einem in der Kopfzeile ausgewiesenen Aktualisierungssystem unter Verwendung der von der Dekompressionseinheit dekomprimierten Aktualisierungsdaten wiederherstellt. Die Dekompressionseinheit wechselt ein Dekompressionsverfahren, wenn die Aktualisierungsdaten dekomprimiert werden, auf Basis des in der Kopfzeile ausgewiesenen Aktualisierungssystems.
  • Ein Programmaktualisierungssystem gemäß einem zweiten Aspekt der Erfindung beinhaltet einen Server und eine Steuervorrichtung, die über ein Netzwerk miteinander verbunden sind. Der Server beinhaltet eine Datenkompressionseinheit, die komprimierte Aktualisierungsdaten gemäß einem beliebigen einer Mehrzahl von Aktualisierungssystemen generiert, und eine Sendeeinheit, die Verteilungsdaten durch das Netzwerk an die Steuervorrichtung sendet, wobei die Verteilungsdaten die Aktualisierungsdaten und eine Kopfzeile enthalten, die Informationen beinhaltet, um das zum Generieren der Aktualisierungsdaten zu verwendende Aktualisierungssystem auszuweisen. Die Steuervorrichtung beinhaltet eine Empfangseinheit, die die Verteilungsdaten empfängt, eine Dekompressionseinheit, die die Aktualisierungsdaten aus den von der Empfangseinheit empfangenen Verteilungsdaten dekomprimiert, und eine Wiederherstellungseinheit, die ein neues Programm nach Aktualisierung gemäß dem in der Kopfzeile ausgewiesenen Aktualisierungssystem unter Verwendung der von der Dekompressionseinheit dekomprimierten Aktualisierungsdaten wiederherstellt. Die Dekompressionseinheit wechselt ein Dekompressionsverfahren, wenn die Aktualisierungsdaten dekomprimiert werden, auf Basis des in der Kopfzeile ausgewiesenen Aktualisierungssystems.
  • Ein Programmaktualisierungsverfahren gemäß einem dritten Aspekt der Erfindung ist ein Verfahren zum Aktualisieren eines Programms einer Steuervorrichtung. Bei dem Verfahren empfängt die Steuervorrichtung Verteilungsdaten, die komprimierte Aktualisierungsdaten und eine Kopfzeile enthalten, die Informationen enthält, um ein beliebiges einer Mehrzahl von Aktualisierungssystemen auszuweisen. Die Steuervorrichtung wechselt ein Dekompressionsverfahren auf Basis des Aktualisierungssystems, das in der Kopfzeile ausgewiesen ist, um die Aktualisierungsdaten aus den empfangenen Verteilungsdaten zu dekomprimieren. Die Steuervorrichtung stellt ein neues Programm nach Aktualisierung gemäß dem in der Kopfzeile ausgewiesenen Aktualisierungssystem unter Verwendung der dekomprimierten Aktualisierungsdaten wieder her.
  • Vorteilhafte Wirkungen der Erfindung
  • Gemäß der Erfindung kann ein Programm sogar dann mit hoher Geschwindigkeit aktualisiert werden, wenn eine Steuervorrichtung eine kleine Kapazität eines flüchtigen Speichers aufweist.
  • Figurenliste
    • [1] 1 ist ein Blockschaubild, das eine beispielhafte Konfiguration eines Programmaktualisierungssystems gemäß einer ersten Ausführungsform der Erfindung veranschaulicht.
    • [2] 2 ist ein Blockschaubild, das eine beispielhafte Hardwarekonfiguration eines Servers veranschaulicht.
    • [3] 3 ist ein Blockschaubild, das eine beispielhafte Konfiguration einer Funktion einer Programmverteilungssoftware veranschaulicht, die auf einer CPU des Servers arbeitet.
    • [4] 4 ist ein Blockschaubild, das eine beispielhafte interne Konfiguration einer Software einer Datenkompressionseinheit veranschaulicht, die auf dem Server arbeitet.
    • [5] 5 ist ein Blockschaubild, das eine beispielhafte Hardwarekonfiguration einer Programmaktualisierungsvorrichtung veranschaulicht.
    • [6] 6 ist ein Blockschaubild, das eine beispielhafte Konfiguration einer Funktion einer Programmaktualisierungsverwaltungssoftware veranschaulicht, die auf einem Mikrocomputer der Programmaktualisierungsvorrichtung arbeitet.
    • [7] 7 ist ein Blockschaubild, das eine beispielhafte Hardwarekonfiguration einer ECU veranschaulicht.
    • [8] 8 ist ein Blockschaubild, das eine beispielhafte Konfiguration einer Funktion einer Programmwiederherstellungssoftware gemäß einer ersten Ausführungsform der Erfindung veranschaulicht, die auf einem Mikrocomputer der ECU ausgeführt wird.
    • [9] 9 ist ein Sequenzschaubild, das den gesamten Ablauf eines Programmaktualisierungsprozesses im Programmaktualisierungssystem gemäß der ersten Ausführungsform der Erfindung veranschaulicht.
    • [10] 10 ist ein Ablaufplan, der einen Ablauf eines Aktualisierungsdatengenerierungsprozesses veranschaulicht, der vom Server durchgeführt wird.
    • [11] 11 ist ein Schaubild, das die Datenkompression in der Datenkompressionseinheit beschreibt.
    • [12] 12 ist ein Schaubild, das eine beispielhafte Struktur von Verteilungsdaten veranschaulicht, die vom Server verteilt werden.
    • [13] 13 ist ein Sequenzschaubild, das einen Ablauf eines Verteilungsdatenübertragungsvorbereitungsprozesses, eines Verteilungsdatenübertragungsprozesses und eines Verteilungsdatenübertragungsabschlussprozesses veranschaulicht, die von der Programmaktualisierungsvorrichtung und der ECU durchgeführt werden.
    • [14] 14 ist ein Schaubild, das eine beispielhafte Struktur von Daten eines Befehls veranschaulicht, der zwischen der Programmaktualisierungsvorrichtung und der ECU gesendet/empfangen wird.
    • [15] 15 ist ein Schaubild, das eine beispielhafte Konfiguration für den Fall veranschaulicht, dass die Verteilungsdaten geteilt und gesendet werden.
    • [16] 16 ist ein Ablaufplan, der einen Ablauf eines Dekompressions-/Wiederherstellungsprozesses veranschaulicht, der von der ECU durchgeführt wird.
    • [17] 17 ist ein Schaubild, das den Dekompressions-/Wiederherstellungsprozess eines Differenzaktualisierungssystems beschreibt.
    • [18] 18 ist ein Schaubild, das den Dekompressions-/Wiederherstellungsprozess gemäß einem Kompressionsaktualisierungssystem beschreibt.
    • [19] 19 ist ein Blockschaubild, das eine beispielhafte Konfiguration eines Programmaktualisierungssystems gemäß einer zweiten Ausführungsform der Erfindung veranschaulicht.
    • [20] 20 ist ein Blockschaubild, das eine beispielhafte Konfiguration einer Funktion einer Programmwiederherstellungssoftware gemäß der zweiten Ausführungsform der Erfindung veranschaulicht.
    • [21] 21 ist ein Sequenzschaubild, das den gesamten Ablauf eines Programmaktualisierungsprozesses im Programmaktualisierungssystem gemäß der zweiten Ausführungsform der Erfindung veranschaulicht.
  • Beschreibung von Ausführungsformen
  • Im Folgenden werden Ausführungsformen der Erfindung unter Verwendung der Zeichnungen beschrieben. Ferner indiziert das gleiche Symbol in den Zeichnungen den gleichen oder entsprechenden Abschnitt. Die Erfindung ist außerdem nicht auf die veranschaulichten Beispiele beschränkt.
  • (Erste Ausführungsform)
  • Eine erste Ausführungsform wird zu einem Programmaktualisierungsverfahren einer in einem fahrzeuginternen ECU der Erfindung beschrieben. Ferner behandelt die folgende Beschreibung den Fall, dass das Programm der ECU aktualisiert wird. Die vorliegende Technologie ist im Allgemeinen auf Informationen anwendbar, die zum Steuern der ECU erforderlich sind, darunter ein Programm wie z. B. diverse Typen von Parametern und Daten.
  • 1 ist ein Blockschaubild, das eine beispielhafte Konfiguration eines Programmaktualisierungssystems gemäß der ersten Ausführungsform der Erfindung veranschaulicht. Das Programmaktualisierungssystem, das in 1 veranschaulicht ist, ist durch einen Server 10 und eine Programmaktualisierungsvorrichtung 11 und eine Mehrzahl von ECUs 12, 13 und 14, die in einem Fahrzeug 1 montiert sind, konfiguriert. Der Server 10 und die Programmaktualisierungsvorrichtung 11 sind über ein fahrzeugexternes Netzwerk 20 (z. B. das Internet usw.) miteinander verbunden und die Programmaktualisierungsvorrichtung 11 und die ECUs sind über ein fahrzeuginternes Netzwerk 21 (z. B. CAN usw.) miteinander verbunden. Anders ausgedrückt sind der Server 10 und die ECUs über ein Netzwerk (im Folgenden als Verteilungsnetzwerk bezeichnet) miteinander verbunden, das durch ein fahrzeugexternes Netzwerk 20, die Programmaktualisierungsvorrichtung 11 und das fahrzeuginterne Netzwerk 21 konfiguriert ist.
  • Der Server 10 verteilt Verteilungsdaten DT10 an jede ECU im Fahrzeug 1, wobei es sich um Daten handelt, die zum Aktualisieren eines Steuerprogramms jeder ECU erforderlich sind. Die Programmaktualisierungsvorrichtung 11 ist eine Netzwerkrelaisvorrichtung zwischen dem Server 10 und den ECUs und dient als Teil des Verteilungsnetzwerks. Die Programmaktualisierungsvorrichtung 11 empfängt die vom Server 10 verteilten Verteilungsdaten DT10 über das fahrzeugexterne Netzwerk 20 und speichert die Daten vorübergehend. Danach werden die gespeicherten Verteilungsdaten DT10 über das fahrzeuginterne Netzwerk 21 an ECUs übertragen, die Verteilungsziele der Verteilungsdaten DT10 sind. Jede ECU empfängt die von der Programmaktualisierungsvorrichtung 11 übertragenen Verteilungsdaten DT10 und speichert die Daten in ihrem eigenen Speicher. Nachdem das Steuerprogramm aktualisiert wurde, wird ein aktualisiertes Programm zu einem vorab festgelegten Zeitpunkt wie z. B. beim Neustart angewandt.
  • 2 ist ein Blockschaubild, das eine beispielhafte Hardwarekonfiguration des Servers 10 veranschaulicht. Wie in 2 veranschaulicht, beinhaltet der Server 10 eine CPU 31, eine Speichereinheit 32, eine Anzeigeeinheit 33, eine Bedienungseingabeeinheit 34 und eine WAN-Kommunikationseinrichtung 35.
  • Die CPU 31 ist eine Berechnungsverarbeitungseinrichtung, die eine Programmverteilungssoftware 40 ausführt. Die Speichereinheit 32 ist durch einen flüchtigen Speicher und einen nicht flüchtigen Speicher konfiguriert und speichert diverse Daten, die für den Prozess der Programmverteilungssoftware 40 erforderlich sind. Die Anzeigeeinheit 33 und die Bedienungseingabeeinheit 34 ist eine Anzeige oder eine Eingabeschnittstelle, die verwendet wird, wenn ein Benutzer den Server 10 bedient. Die WAN-Kommunikationseinrichtung 35 kommuniziert über das fahrzeugexterne Netzwerk 20 mit dem Fahrzeug 1.
  • Ferner benötigt der Server 10 nicht zwingend eine Bedienung durch den Benutzer, sondern die Programmverteilungssoftware 40 kann automatisch aktiviert werden, um die Verteilungsdaten DT10 zum Aktualisieren des Programms jeder ECU des Fahrzeugs 1 zu erstellen und zu verteilen. Außerdem kann der Server 10 durch eine Einheit konfiguriert sein oder kann mit mehreren Einheiten zusammenwirken, um die gleiche Funktion umzusetzen.
  • 3 ist ein Blockschaubild, das eine beispielhafte Konfiguration einer Funktion der Programmverteilungssoftware 40 veranschaulicht, die auf der CPU 31 des Servers 10 ausgeführt wird. Ferner sind in diesem Blockschaubild die Funktionen der Programmverteilungssoftware 40 als Funktionsblöcke veranschaulicht, die gemäß den Typen der Funktionen aufgeteilt sind. Die Funktionsblöcke können jedoch noch weiter unterteilt werden oder eine Mehrzahl von Funktionsblöcken kann kombiniert werden. Außerdem ist die Programmverteilungssoftware 40 nicht zwingend durch ein Programm umgesetzt, sondern kann durch zwei oder mehr Programmkombinationen umgesetzt sein.
  • Die Programmverteilungssoftware 40 beinhaltet die Funktionsblöcke einer Verteilungssteuereinheit 41, einer Differenzdatengenerierungseinheit 42, einer Datenkompressionseinheit 43, einer Datenverteilungseinheit 44 und einer Datenübertragungseinheit 45. Am Server 10 werden die Funktionsblöcke, wenn die Programmverteilungssoftware 40 von der CPU 31 ausgeführt wird, durch die CPU 31 umgesetzt. Anders ausgedrückt kann der Server 10, wenn die Programmverteilungssoftware 40 von der CPU 31 ausgeführt wird, als die Verteilungssteuereinheit 41, die Differenzdatengenerierungseinheit 42, die Datenkompressionseinheit 43, die Datenverteilungseinheit 44 und die Datenübertragungseinheit 45 beinhaltend arbeiten.
  • In der Speichereinheit 32 werden Aktualisierungsverwaltungsdaten DT400, ECU-Funktionsdaten DT401, Programmdaten DT402, Differenzdaten DT403 und Aktualisierungsdaten DT100 als Daten gespeichert, die von der Programmverteilungssoftware 40 zu bearbeiten sind. Außerdem sind ein Kompressionseingabepuffer BF101 und ein Kompressionsausgabepuffer BF102 als Arbeitsbereiche bereitgestellt, die zum Zeitpunkt der Datenkompression verwendet werden. Die Programmdaten DT402 sind durch neue Programmdaten DT4021 und alte Programmdaten DT4022 konfiguriert. Die Funktionsblöcke der Programmverteilungssoftware 40 lesen und schreiben ihre Daten in Bezug auf die Speichereinheit 32.
  • Die Aktualisierungsverwaltungsdaten DT400 sind Informationen, mit denen ein Programmaktualisierungsstatus jeder ECU zu verwalten ist. Die Aktualisierungsverwaltungsdaten DT400 enthalten Informationen wie z. B. einen Generierungsstatus, einen Verteilungszeitplan und einen Verteilungsabschlussstatus der Aktualisierungsdaten jeder ECU. Die Programmverteilungssoftware 40 generiert die Differenzdaten DT403, generiert die Aktualisierungsdaten DT100 und bestimmt eine Ausführung wie z. B. eine Verteilung der Verteilungsdaten DT10 auf Basis der Aktualisierungsverwaltungsdaten DT400.
  • Die ECU-Funktionsdaten DT401 enthalten Informationen zu einem Aktualisierungssystem, das jeder ECU entspricht, und Ressourcen jeder ECU wie z. B. eine RAM-Kapazität und eine ROM-Kapazität, die verfügbar sind, wenn jede ECU die Aktualisierungsdaten dekomprimiert. Die Verteilungsdaten DT10 können vom Server 10 durch Prüfen dieser Ressourcen effizient verteilt werden.
  • Ferner wird beim Programmaktualisierungssystem dieser Ausführungsform davon ausgegangen, dass jede ECU zumindest einem beliebigen von drei Aktualisierungssystemen „eines Gesamtaktualisierungssystems“, „eines Differenzaktualisierungssystems“ und „eines Kompressionsaktualisierungssystems“ entspricht. Das Gesamtaktualisierungssystem ist ein Aktualisierungssystem, bei dem die neuen Programmdaten DT4021 wie sie sind ohne Kompression verwendet werden und die Verteilungsdaten DT10 auf Basis der Aktualisierungsdaten DT100 werden vom Server 10 an jede ECU verteilt. Das Differenzaktualisierungssystem ist ein Aktualisierungssystem, bei dem die Differenzdaten DT403 auf Basis einer Differenz zwischen den alten Programmdaten DT4022 und den neuen Programmdaten DT4021 komprimiert werden, um die Aktualisierungsdaten DT100 zu generieren, und die Verteilungsdaten DT10 auf Basis der Aktualisierungsdaten werden vom Server 10 an jede ECU verteilt. Das Kompressionsaktualisierungssystem ist ein Aktualisierungssystem, bei dem die neuen Programmdaten DT4021 komprimiert werden, um die Aktualisierungsdaten DT100 zu generieren, und die Verteilungsdaten DT10 auf Basis der Aktualisierungsdaten werden vom Server 10 an jede ECU verteilt. Das Differenzaktualisierungssystem und das Kompressionsaktualisierungssystem werden nachstehend ausführlich beschrieben.
  • Die Programmdaten DT402 enthalten die neuen Programmdaten DT4021, bei denen es sich um neue Programmdaten handelt, die an jede ECU zu verteilen sind, und die alten Programmdaten DT4022, bei denen es sich um Programmdaten vor der Aktualisierung handelt, die in jeder ECU bereits verwendet werden. Die Programmdaten können für jede ECU einzeln verwendet werden und können Daten sein, die unter der Mehrzahl von ECUs gemeinsam genutzt werden. Außerdem können andere Daten als das Programm (z. B. diverse Typen von Parametern, Daten und Einstellungsdaten) beinhaltet sein.
  • Die Differenzdaten DT403 extrahieren eine Datendifferenz zwischen den alten Programmdaten DT4022 und den neuen Programmdaten DT4021, wenn das Programm vom Differenzaktualisierungssystem aktualisiert wird. Wenn beim Vergleich der Programmdaten nur eine Differenz in spezifischen Daten vorhanden ist, wird die Differenz als Differenzdaten DT403 extrahiert und in Assoziation mit Positionsinformationen (z. B. einer Startposition und einer Datenlänge) des Datenstrings, in dem die Differenz vorliegt, gespeichert. Wenn die Differenz zwischen den alten Programmdaten DT4022 und den neuen Programmdaten DT4021 gering ist, werden vom Differenzaktualisierungssystem nur die Differenzdaten DT403 an die ECU des Aktualisierungsziels gesendet, anstatt dass die neuen Programmdaten DT4021 vom Kompressionsaktualisierungssystem an alle ECUs des Aktualisierungsziels gesendet werden, und wird die Differenz auf die alten Programmdaten DT4022 angewandt, die bereits in der ECU gespeichert sind, so dass die neuen Programmdaten DT4021 effizient wiederhergestellt werden können.
  • Die Aktualisierungsdaten DT100 sind Daten, die auf den Verteilungsdaten DT10 basieren, die vom Server 10 an jede ECU verteilt werden. Wie oben beschrieben, werden die neuen Programmdaten DT4021 beim Gesamtaktualisierungssystem mit Kompression zu den Aktualisierungsdaten DT100. Beim Kompressionsaktualisierungssystem hingegen werden die neuen Programmdaten DT4021 zwar komprimiert, sie werden jedoch als Aktualisierungsdaten DT100 generiert. Außerdem werden die Differenzdaten DT403 beim Differenzaktualisierungssystem komprimiert und als Aktualisierungsdaten DT100 generiert.
  • Im Folgenden wird jeder Funktionsblock des Servers 10, der von der Programmverteilungssoftware 40 umgesetzt wird, beschrieben.
  • Die Verteilungssteuereinheit 41 steuert die Betriebe der Funktionsblöcke in der Programmverteilungssoftware 40. Wenn die anderen Funktionsblöcke gemäß der Steuerung durch die Verteilungssteuereinheit 41 arbeiten, werden die Differenzdaten DT403 und die Aktualisierungsdaten DT100 generiert und werden die Verteilungsdaten DT10 vom Server 10 über das Verteilungsnetzwerk an jede ECU verteilt.
  • Die Differenzdatengenerierungseinheit 42 generiert die Differenzdaten DT403 aus den neuen Programmdaten DT4021 und den alten Programmdaten DT4022, die in der Speichereinheit 32 gespeichert sind.
  • Die Datenkompressionseinheit 43 komprimiert die neuen Programmdaten DT4021 oder die Differenzdaten DT403, die aus der Speichereinheit 32 gelesen wurden, und generiert die Aktualisierungsdaten DT100. Zu diesem Zeitpunkt komprimiert die Datenkompressionseinheit 43 die neuen Programmdaten DT4021 oder die Differenzdaten DT403 unter Verwendung des Kompressionseingabepuffers BF101 und des Kompressionsausgabepuffers BF102 als Arbeitsbereiche. Im Folgenden werden ferner die Details einer Datenkompression der Datenkompressionseinheit 43 unter Bezugnahme auf 12 beschrieben.
  • Die Datenverteilungseinheit 44 liest die Aktualisierungsdaten DT100, die in der Speichereinheit 32 gespeichert sind, generiert die Verteilungsdaten DT10 auf Basis der Aktualisierungsdaten und gibt die Verteilungsdaten an die Datenübertragungseinheit 45 aus.
  • Wenn die Verteilungsdaten DT10 von der Datenverteilungseinheit 44 ausgegeben werden, gibt die Datenübertragungseinheit 45 die Verteilungsdaten DT10 an die WAN-Kommunikationseinrichtung 35 aus und sendet sie an diese. Bei dieser Konfiguration sendet die Datenübertragungseinheit 45 die Verteilungsdaten DT10 über das fahrzeugexterne Netzwerk 20 unter Verwendung der WAN-Kommunikationseinrichtung 35 an das Fahrzeug 1.
  • 4 ist ein Blockschaubild, das eine beispielhafte interne Konfiguration einer Software der Datenkompressionseinheit 43 veranschaulicht, die auf dem Server 10 ausgeführt wird. Die Datenkompressionseinheit 43 ist durch eine Kompressionsverfahrenwechseleinheit 71, eine Differenzaktualisierungscodiereinheit 72, eine Kompressionsaktualisierungscodiereinheit 73 und eine Aktualisierungsdatenspeichereinheit 74 konfiguriert.
  • Die Kompressionsverfahrenwechseleinheit 71 ist eine Bestimmungseinheit, die ein Kompressionsverfahren auf Basis des Aktualisierungssystems ändert. Wenn eine Anweisung der Datenkompression von der Verteilungssteuereinheit 41 empfangen wird, liest die Kompressionsverfahrenwechseleinheit 71 die ECU-Funktionsdaten DT401 aus der Speichereinheit 32 und prüft, ob das Aktualisierungssystem, das der ECU des Aktualisierungsziels entspricht, eines des Differenzaktualisierungssystems und des Kompressionsaktualisierungssystems ist. Danach wird das Kompressionsverfahren durch Auswahl eines der Differenzaktualisierungscodiereinheit 72 und der Kompressionsverfahrencodiereinheit 73 auf Basis des bestätigten Aktualisierungssystems gewechselt. Wenn das Aktualisierungssystem, das der ECU des Aktualisierungsziels entspricht, das Gesamtaktualisierungssystem ist, ist ferner beim Generieren der Aktualisierungsdaten DT100 keine Kompression erforderlich und somit wird die Anweisung der Datenkompression von der Verteilungssteuereinheit 41 nicht ausgegeben. Aus diesem Grund wird weder die Differenzaktualisierungscodiereinheit 72 noch die Kompressionsaktualisierungscodiereinheit 73 ausgewählt.
  • Wenn das Aktualisierungssystem das Differenzaktualisierungssystem ist, wird die Differenzaktualisierungscodiereinheit 72 von der Kompressionsverfahrenwechseleinheit 71 ausgewählt und empfängt eine Kompressionscodieranweisung. Wenn die Kompressionscodieranweisung empfangen wird, liest die Differenzaktualisierungscodiereinheit 72 die Differenzdaten DT403 aus der Speichereinheit 32 und komprimiert und codiert die Daten.
  • Wenn das Aktualisierungssystem das Kompressionsaktualisierungssystem ist, wird die Kompressionsaktualisierungscodiereinheit 73 von der Kompressionsverfahrenwechseleinheit 71 ausgewählt und empfängt die Kompressionscodieranweisung. Wenn die Kompressionscodieranweisung empfangen wird, liest die Kompressionsaktualisierungscodiereinheit 73 die neuen Programmdaten DT4021 aus der Speichereinheit 32 und komprimiert und codiert die Daten.
  • Die Aktualisierungsdatenspeichereinheit 74 speichert die Differenzdaten DT403, die komprimiert und von der Differenzaktualisierungscodiereinheit 72 codiert wurden, oder die neuen Programmdaten DT4021, die komprimiert und von der Kompressionsaktualisierungscodiereinheit 73 codiert wurden, als Aktualisierungsdaten DT100 in der Speichereinheit 32.
  • In der Datenkompressionseinheit 43 werden die Aktualisierungsdaten DT100, die gemäß dem Aktualisierungssystem komprimiert wurden, durch die Ausführung jedes oben beschriebenen Funktionsblocks generiert.
  • 5 ist ein Blockschaubild, das eine beispielhafte Hardwarekonfiguration der Programmaktualisierungsvorrichtung 11 veranschaulicht. Wie in 5 veranschaulicht, beinhaltet die Programmaktualisierungsvorrichtung 11 einen Mikrocomputer 91, eine fahrzeugexterne Kommunikationseinrichtung 92 und eine fahrzeuginterne Kommunikationseinrichtung 93.
  • Der Mikrocomputer 91 ist eine Berechnungsverarbeitungseinrichtung, die eine Programmaktualisierungsverwaltungssoftware 1000 ausführt. Der Mikrocomputer 91 beinhaltet einen SRAM 9101 (flüchtiger Speicher) und einen FROM 9102 (nicht flüchtiger Speicher), die darin integriert sind. Die fahrzeugexterne Kommunikationseinrichtung 92 ist über das fahrzeugexterne Netzwerk 20 mit dem Server 10 verbunden, empfängt die Verteilungsdaten DT10, die vom Server 10 verteilt werden, und gibt die Verteilungsdaten an den Mikrocomputer 91 aus. Die fahrzeuginterne Kommunikationseinrichtung 93 ist mit jeder ECU über das fahrzeuginterne Netzwerk 21 verbunden und überträgt die Verteilungsdaten DT10 an jede ECU, die vom Server 10 verteilt und vom Mikrocomputer 91 ausgegeben werden. Bei dieser Konfiguration dient die Programmaktualisierungsvorrichtung 11 als Netzwerkrelaisvorrichtung zwischen dem Server 10 und jeder ECU.
  • 6 ist ein Blockschaubild, das eine beispielhafte Konfiguration einer Funktion der Programmaktualisierungsverwaltungssoftware 1000 veranschaulicht, die auf dem Mikrocomputer 91 der Programmaktualisierungsvorrichtung 11 ausgeführt wird. Ferner sind in diesem Blockschaubild die Funktionen der Programmaktualisierungsvorrichtung 11 als Funktionsblöcke veranschaulicht, die gemäß den Typen der Funktionen aufgeteilt sind. Die Funktionsblöcke können jedoch noch weiter unterteilt werden oder eine Mehrzahl von Funktionsblöcken kann kombiniert werden. Außerdem ist die Programmaktualisierungsverwaltungssoftware 1000 nicht zwingend durch ein Programm umgesetzt, sondern kann durch zwei oder mehr Programmkombinationen umgesetzt sein.
  • Die Programmaktualisierungsverwaltungssoftware 1000 beinhaltet die Funktionsblöcke einer Aktualisierungssteuereinheit 1001, einer fahrzeugexternen Datenübertragungseinheit 1002, einer Verteilungsdatenempfangsverwaltungseinheit 1003, einer Verteilungsdatenübertragungseinheit 1004 und einer fahrzeuginternen Datenübertragungseinheit 1005. In der Programmaktualisierungsvorrichtung 11 werden, wenn die Programmaktualisierungsverwaltungssoftware 1000 vom Mikrocomputer 91 ausgeführt wird, die Funktionsblöcke durch den Mikrocomputer 91 umgesetzt. Anders ausgedrückt kann die Programmaktualisierungsvorrichtung 11, wenn die Programmaktualisierungsverwaltungssoftware 1000 vom Mikrocomputer 91 ausgeführt wird, als die Aktualisierungssteuereinheit 1001, die fahrzeugexterne Datenübertragungseinheit 1002, die Verteilungsdatenempfangsverwaltungseinheit 1003, die Verteilungsdatenübertragungseinheit 1004 und die fahrzeuginterne Datenübertragungseinheit 1005 beinhaltend arbeiten.
  • Es werden die Funktionsblöcke der Programmaktualisierungsvorrichtung 11 beschrieben, die durch die Programmaktualisierungsverwaltungssoftware 1000 umgesetzt wird.
  • Die Aktualisierungssteuereinheit 1001 steuert die Betriebe der Funktionsblöcke in der Programmaktualisierungsverwaltungssoftware 1000. Wenn die anderen Funktionsblöcke gemäß der Steuerung durch die Aktualisierungssteuereinheit 1001 arbeiten, werden die Verteilungsdaten DT10, die vom Server 10 verteilt werden, weitergeleitet und an jede ECU übertragen.
  • Die fahrzeugexterne Datenübertragungseinheit 1002 empfängt die Verteilungsdaten DT10, die vom Server 10, der über die fahrzeugexterne Kommunikationseinrichtung 92 verbunden ist, an jede ECU (die ECU 12 usw.) gesendet werden.
  • Die Verteilungsdatenempfangsverwaltungseinheit 1003 zeichnet die Verteilungsdaten DT10 jeder ECU, die von der fahrzeugexternen Datenübertragungseinheit 1002 empfangen werden, im FROM 9102 auf.
  • Die Verteilungsdatenübertragungseinheit 1004 liest die Verteilungsdaten DT10, die im FROM 9102 gespeichert sind, gibt die Verteilungsdaten an die fahrzeuginterne Datenübertragungseinheit 1005 aus, um eine Datenübertragungsanweisung auszugeben.
  • Wenn die Verteilungsdaten DT10 von der Verteilungsdatenübertragungseinheit 1004 ausgegeben werden, gibt die fahrzeuginterne Datenübertragungseinheit 1005 die Verteilungsdaten DT10 an die fahrzeuginterne Kommunikationseinrichtung 93 aus und sendet sie an diese. Bei dieser Konfiguration überträgt die fahrzeuginterne Datenübertragungseinheit 1005 die Verteilungsdaten DT10 über das fahrzeuginterne Netzwerk 21 unter Verwendung der fahrzeuginternen Kommunikationseinrichtung 93 an die Ziel-ECU (Aktualisierungsziel).
  • 7 ist ein Blockschaubild, das eine beispielhafte Hardwarekonfiguration der ECU 12 veranschaulicht. Wie in 7 veranschaulicht, beinhaltet die ECU 12 einen Mikrocomputer 111, eine dedizierte IC 112 und eine CAN-Kommunikationseinrichtung 113 und ist mit einem Sensor 114 und einem Aktuator 115 verbunden. Ferner weisen die anderen ECUs 13 und 14 die gleiche Konfiguration wie die ECU 12 auf und somit wird die Konfiguration der ECUs im Folgenden unter Verwendung der ECU 12 als repräsentatives Beispiel beschrieben.
  • Der Mikrocomputer 111 ist eine Berechnungsverarbeitungseinrichtung, die eine Programmwiederherstellungssoftware 1200 ausführt. Der Mikrocomputer 111 beinhaltet einen SRAM 1111 (flüchtiger Speicher) und einen FROM 1112 (nicht flüchtiger Speicher), die darin integriert sind. Die dedizierte IC 112 ist eine Schaltung, die diverse Typen von Prozessen und Betrieben ausführt, um die Funktionen der ECU 12 in Zusammenwirkung mit dem Mikrocomputer 111 umzusetzen, und ist z. B. durch eine ASIC (anwendungsspezifische integrierte Schaltung) konfiguriert. Der Sensor 114 erfasst Sensorinformationen, um die Funktionen der ECU 12 umzusetzen, und gibt die Informationen an den Mikrocomputer 111 aus. Der Aktuator 115 ist z. B. durch einen Motor konfiguriert und arbeitet gemäß der Steuerung durch den Mikrocomputer 111. Ferner ist die ECU 12 ggf. nicht mit einer dedizierten IC 112 versehen und ggf. nicht mit dem Sensor 114 und dem Aktuator 115 verbunden. Die CAN-Kommunikationseinrichtung 113 ist über das fahrzeuginterne Netzwerk 21 mit der Programmaktualisierungsvorrichtung 11 und den anderen ECUs verbunden und empfängt die Verteilungsdaten DT10, die von der Programmaktualisierungsvorrichtung 11 übertragen werden, oder überträgt diverse Typen von Informationen zum Betrieb des Fahrzeugs 1 in Bezug auf die anderen ECUs.
  • 8 ist ein Blockschaubild, das eine beispielhafte Konfiguration einer Funktion einer Programmwiederherstellungssoftware 1200 gemäß einer ersten Ausführungsform der Erfindung veranschaulicht, die auf einem Mikrocomputer 111 der ECU 12 ausgeführt wird. Ferner sind in diesem Blockschaubild die Funktionen der ECU 12 als Funktionsblöcke veranschaulicht, die gemäß den Typen der Funktionen aufgeteilt sind. Die Funktionsblöcke können jedoch noch weiter unterteilt werden oder eine Mehrzahl von Funktionsblöcken kann kombiniert werden. Außerdem ist die Programmwiederhestellungssoftware 1200 nicht zwingend durch ein Programm umgesetzt, sondern kann durch zwei oder mehr Programmkombinationen umgesetzt sein.
  • Die Programmwiederherstellungssoftware 1200 beinhaltet die Funktionsblöcke einer Wiederherstellungssteuereinheit 1201, einer Datenübertragungseinheit 1202, einer Verteilungsdatenempfangsverwaltungseinheit 1203, einer Aktualisierungsdatendekompressionseinheit 1204 und einer Neues-Programm-Wiederherstellungseinheit 1205. In der ECU 12 werden diese Funktionsblöcke, wenn die Programmwiederherstellungssoftware 1200 vom Mikrocomputer 111 ausgeführt wird, durch den Mikrocomputer 111 umgesetzt. Anders ausgedrückt kann die ECU 12, wenn die Programmwiederherstellungssoftware 1200 vom Mikrocomputer 111 ausgeführt wird, als die Wiederherstellungssteuereinheit 1201, die Datenübertragungseinheit 1202, die Verteilungsdatenempfangsverwaltungseinheit 1203, die Aktualisierungsdatendekompressionseinheit 1204 und die Neues-Programm-Wiederherstellungseinheit 1205 beinhaltend arbeiten.
  • Jeder Funktionsblock der ECU 12, der von der Programmwiederherstellungssoftware 1200 umgesetzt wird, wird beschrieben.
  • Die Wiederherstellungssteuereinheit 1201 steuert die Betriebe der Funktionsblöcke in der Programmwiederherstellungssoftware 1200. Wenn die anderen Funktionsblöcke gemäß der Steuerung durch die Wiederherstellungssteuereinheit 1201 arbeiten, wird das Programm der ECU 12 unter Verwendung der Verteilungsdaten DT10 aktualisiert, die vom Server 10 verteilt werden und von der Programmaktualisierungsvorrichtung 11 in Beziehung gesetzt werden.
  • Die Datenübertragungseinheit 1202 betreibt die CAN-Kommunikationseinrichtung 113 gemäß der Anweisung von der Wiederherstellungssteuereinheit 1201 und überträgt die Daten in Bezug auf die anderen Einrichtungen, die über das fahrzeuginterne Netzwerk 21 verbunden sind (d. h. zwischen der Programmaktualisierungsvorrichtung 11 und den ECUs 13 und 14). Wenn die Verteilungsdaten DT10 von der Programmaktualisierungsvorrichtung 11 an die ECU 12 gesendet werden, werden die Verteilungsdaten DT10 von der Datenübertragungseinheit 1202 unter Verwendung der CAN-Kommunikationseinrichtung 113 empfangen.
  • Die Verteilungsdatenempfangsverwaltungseinheit 1203 speichert die Verteilungsdaten DT10, die von der Datenübertragungseinheit 1202 empfangen werden, in einem Empfangspuffer BF120, der auf dem SRAM 1111 bereitgestellt ist.
  • Die Aktualisierungsdatendekompressionseinheit 1204 dekomprimiert die Aktualisierungsdaten DT100 aus den Verteilungsdaten DT10, die im Empfangspuffer BF120 gespeichert sind, und speichert die Aktualisierungsdaten in einem Dekompressionspuffer BF121, der auf dem SRAM 1111 bereitgestellt ist.
  • Die Neues-Programm-Wiederherstellungseinheit 1205 stellt neue Programmdaten DT123 nach Aktualisierung unter Verwendung der Aktualisierungsdaten DT100 wieder her, die von der Aktualisierungsdatendekompressionseinheit 1204 dekomprimiert werden. Zu diesem Zeitpunkt werden nach Bedarf alte Programmdaten DT122 vor Aktualisierung, die bereits im FROM 1112 gespeichert sind, verwendet. Danach werden die wiederhergestellten neuen Programmdaten DT123 im FROM 1112 gespeichert, um das Programm der ECU 12 zu aktualisieren.
  • 9 ist ein Sequenzschaubild, das den gesamten Ablauf eines Programmaktualisierungsprozesses im Programmaktualisierungssystem gemäß der ersten Ausführungsform der Erfindung veranschaulicht. Ferner wird im Folgenden als repräsentatives Beispiel der Fall beschrieben, dass das Programm der ECU 12 aktualisiert wird, es kann gleichermaßen aber auch den Fall geben, dass die Programme der anderen ECUs 13 und 14 aktualisiert werden.
  • Zunächst führt der Server 10 einen Aktualisierungsdatengenerierungsprozess in Schritt ST21 durch, um die Aktualisierungsdaten DT100 zu generieren, die auf den an die ECU 12 verteilten Verteilungsdaten DT10 basieren. Ferner werden im Folgenden die Details des Aktualisierungsdatengenerierungsprozesses unter Bezugnahme auf 10 beschrieben.
  • Danach generiert der Server 10 die Verteilungsdaten DT10 in Schritt ST22 auf Basis der Aktualisierungsdaten DT100, die in Schritt ST21 von der Datenverteilungseinheit 44 generiert und in der Speichereinheit 32 gespeichert werden. Danach werden die Verteilungsdaten DT10 von der Datenübertragungseinheit 45 an das Fahrzeug 1 gesendet. Die Programmaktualisierungsvorrichtung 11 lädt die Verteilungsdaten DT10 vom Server 10 herunter und speichert die Verteilungsdaten im FROM 9102 der Programmaktualisierungsvorrichtung 11.
  • Danach führt die Programmaktualisierungsvorrichtung 11 einen Verteilungsdatenübertragungsvorbereitungsprozess in Schritt ST23 als Prozess durch, bevor die in Schritt ST22 heruntergeladenen Verteilungsdaten DT10 an die ECU 12 übertragen werden. Wenn der Verteilungsdatenübertragungsvorbereitungsprozess von Schritt ST23 abgeschlossen ist, führt die Programmaktualisierungsvorrichtung 11 sodann einen Verteilungsdatenübertragungsprozess in Schritt ST24 durch, um die Verteilungsdaten DT10 an die ECU 12 zu übertragen. Wenn all die Verteilungsdaten DT10 in Schritt ST24 vollständig übertragen wurden, führt die Programmaktualisierungsvorrichtung 11 einen Verteilungsdatenübertragungsabschlussprozess in Schritt ST25 als Nachprozess durch. Wenn der Prozess von Schritt ST25 endet, ist der Programmaktualisierungsprozess der ECU 12 abgeschlossen. Ferner werden im Folgenden die Details der Prozesse der Schritte ST23 bis ST25 unter Bezugnahme auf 13 beschrieben.
  • Hier werden die Details des Aktualisierungsdatengenerierungsprozesses beschrieben, der in Schritt ST21 von 9 durchgeführt wird. 10 ist ein Ablaufplan, der einen Ablauf des Aktualisierungsdatengenerierungsprozesses veranschaulicht, der vom Server 10 in Schritt ST21 durchgeführt wird.
  • In Schritt ST501 prüft die Verteilungssteuereinheit 41 Daten, die ein Kompressionsziel sind. Im Spezifischen liest die Verteilungssteuereinheit 41 die Aktualisierungsverwaltungsdaten DT400, die vorab in der Speichereinheit 32 gespeichert werden, und prüft, dass die ECU des Aktualisierungsziels die ECU 12 ist und das Aktualisierungssystem der ECU 12 entspricht.
  • In Schritt ST502 bestimmt die Verteilungssteuereinheit 41, ob das in Schritt ST501 geprüfte Aktualisierungssystem eines des Differenzaktualisierungssystems und des Kompressionsdatenaktualisierungssystems ist, die oben beschrieben sind. In der Folge wird in dem Fall, dass das Aktualisierungssystem das Differenzaktualisierungssystem ist, die Datengenerierungseinheit 42 angewiesen, die Differenzdaten DT403 zu generieren, und geht der Prozess zu Schritt ST503 über. Im Fall des Kompressionsaktualisierungssystems wird die Datenkompressionseinheit 43 hingegen zur Kompression der neuen Programmdaten DT4021 angewiesen und geht der Prozess zu Schritt ST505 über. In dem Fall, dass das Aktualisierungssystem weder das Differenzaktualisierungssystem noch das Kompressionsaktualisierungssystem ist (z. B. das Gesamtaktualisierungssystem), werden ferner die neuen Programmdaten DT4021 wie sie sind als die Aktualisierungsdaten DT100 gespeichert, da keine Datenkompression erforderlich ist. Der Aktualisierungsdatengenerierungsprozess von 10 endet. Außerdem wird in dem Fall, dass die ECU 12 einem des Differenzaktualisierungssystems und des Kompressionsaktualisierungssystems entspricht, vorab bestimmt, welches Aktualisierungssystem verwendet wird, und kann das Bestimmen von Schritt ST502 gemäß dem Aktualisierungssystem durchgeführt werden.
  • In Schritt ST503 empfängt die Differenzdatengenerierungseinheit 42 eine Anweisung der Verteilungssteuereinheit 41, die Differenzdaten DT403 auf Basis einer Differenz zwischen den neuen Programmdaten DT4021 und den alten Programmdaten DT4022 der ECU 12, die in der Speichereinheit 32 gespeichert sind, zu generieren. Danach weist die Verteilungssteuereinheit 41 die Datenkompressionseinheit 43 an, die Datenkompression der von der Differenzdatengenerierungseinheit 42 generierten Differenzdaten DT403 durchzuführen. In Schritt ST504 empfängt die Datenkompressionseinheit 43 eine Anweisung von der Verteilungssteuereinheit 41, die Datenkompression der in der Speichereinheit 32 gespeicherten Differenzdaten DT403 durchzuführen. Zu diesem Zeitpunkt komprimiert die Datenkompressionseinheit 43 die Differenzdaten DT403 unter Verwendung der Differenzdatencodiereinheit 72 von 4. Wenn die Kompression der Differenzdaten DT403 abgeschlossen ist, geht der Prozess zu Schritt ST506 über.
  • In Schritt ST505 empfängt die Datenkompressionseinheit 43 eine Anweisung von der Verteilungssteuereinheit 41, die Datenkompression der in der Speichereinheit 32 gespeicherten neuen Programmdaten DT4021 durchzuführen. Zu diesem Zeitpunkt komprimiert die Datenkompressionseinheit 43 die neuen Programmdaten DT4021 unter Verwendung der Kompressionsaktualisierungscodiereinheit 73 von 4. Wenn die Kompression der neuen Programmdaten DT4021 abgeschlossen ist, geht der Prozess zu Schritt ST506 über.
  • In Schritt ST506 speichert die Datenkompressionseinheit 43 die in Schritt ST504 oder ST505 komprimierten Daten unter Verwendung der Aktualisierungsdatenspeichereinheit 74 von 4 als Aktualisierungsdaten DT100 in der Speichereinheit 32. Wenn die Aktualisierungsdaten DT100 in Schritt ST506 vollständig gespeichert wurden, endet der Aktualisierungsdatengenerierungsprozess von 10.
  • 11 ist ein Schaubild, das die Datenkompression in der Datenkompressionseinheit 43 beschreibt. 11(a) ist ein Schaubild, das eine Kompressionscodierung der Differenzdaten DT403 in Schritt ST504 von 10 in dem Fall beschreibt, dass das Aktualisierungssystem das Differenzaktualisierungssystem ist. In diesem Fall liest in der Datenkompressionseinheit 43 zunächst die Differenzaktualisierungscodiereinheit 72 einen Teil des Datenstrings (einen Referenzabschnitt AR801 und einen Codierzielabschnitt AR802) der Differenzdaten DT403 (Kompressionsquelle) aus der Speichereinheit 32 und speichert den gelesenen Datenstring im Kompressionseingabepuffer BF101. Ferner wird hier ein Bereich des Datenstrings, der im Kompressionseingabepuffer BF101 gespeichert ist, „gleitendes Fenster“ genannt. Ein gleitendes Fenster WD10 von 11(a) stellt einen Bereich des Datenstrings dar. Anders ausgedrückt ist ein Bereich des gleitenden Fensters WD10 in den Referenzabschnitt AR801 und den Codierzielabschnitt AR802 unterteilt.
  • Bei der Datenkompression des Differenzaktualisierungssystems wird die Größe des gleitenden Fensters WD10 gemäß der Kapazität des Dekompressionspuffers BF121 eingestellt, der im SRAM 1111 in der ECU 12 bereitgestellt ist. Anders ausgedrückt bestimmt die Differenzaktualisierungscodiereinheit 72 die Größe des gleitenden Fensters WD10 so, dass es in die Größe des Bereichs des SRAM 1111 fällt, der als Dekompressionspuffer BF121 für die ECU 12 verfügbar ist. Ferner kann die Kapazität des Dekompressionspuffers BF121 unter Bezugnahme auf die ECU-Funktionsdaten DT401 geprüft werden, die vorab in der Speichereinheit 32 gespeichert werden.
  • Die Differenzaktualisierungscodiereinheit 72 komprimiert und codiert den Datenstring des Codierzielabschnitts AR802 unter Verwendung eines Codieralgorithmus wie z. B. LZ77. Zu diesem Zeitpunkt wird der Datenstring des Referenzabschnitts AR801 als Wörterbuch zum Komprimieren und Codieren des Datenstrings des Codierzielabschnitts AR802 verwendet. Im Spezifischen durchsucht die Differenzaktualisierungscodiereinheit 72 den Referenzabschnitt AR801 nach dem Datenstring (der als längster passender String bezeichnet wird), der mit einem längsten Teil des Datenstrings des Codierzielabschnitts AR802 abgeglichen wird. Wenn der längste übereinstimmende String gefunden wurde, ersetzt die Differenzdatencodiereinheit 72 den Datenstring, der dem längsten übereinstimmenden String im Codierzielabschnitt AR802 entspricht, auf einen Zeiger auf den längsten übereinstimmenden String und komprimiert und codiert den Datenstring. Der Zeiger enthält Informationen wie z. B. die Positionsinformationen und die Datenlänge des längsten übereinstimmenden Strings im Referenzabschnitt AR801. Während der längste übereinstimmendes String lang wird, wird die Datenmenge durch die Kompressionscodierung so verringert, dass sich die Kompressionsrate erhöht. Somit wird der Datenstring, der durch Komprimieren und Codieren des Codierzielabschnitts AR802 erzeugt wurde, als codierter Datenstring AR804 im Kompressionsausgabepuffer BF102 gespeichert. Ferner ist im Kompressionsausgabepuffer BF102 ein codierter Datenstring AR803, der vor dem codierte Datenstring AR804 komprimiert und codiert wurde, bereits gespeichert.
  • Die Aktualisierungsdatenspeichereinheit 74 speichert den Datenstring (die codierten Datenstrings AR803 und AR804), die im Kompressionsausgabepuffer BF102 bislang gesammelt wurden, als Teilaktualisierungsdaten AR806 (Teil der Aktualisierungsdaten DT100) in der Speichereinheit 32, z. B. zu einem vordefinierten Zeitpunkt, wenn die Kapazität des Kompressionsausgabepuffers BF102 erschöpft ist. Ferner sind Teilaktualisierungsdaten AR805, die vor den Teilaktualisierungsdaten AR806 generiert wurden, bereits in der Speichereinheit 32 gespeichert.
  • Die Differenzaktualisierungscodiereinheit 72 stellt zunächst das gleitende Fenster WD10 am Kopf der Differenzdaten DT403 bereit, um einen Kompressionscodierprozess und einen Speicherprozess, wie oben beschrieben, durchzuführen. Danach werden gleichermaßen der Kompressionscodierprozess und der Speicherprozess durchgeführt, während sich das gleitende Fenster WD10 bewegt. Auf diese Weise werden die Bewegung des gleitenden Fensters WD10, der Kompressionscodierprozess und der Speicherprozess wiederholt vom Kopf bis zum Ende der Differenzdaten DT403 durchgeführt. Bei dieser Konfiguration werden alle Differenzdaten DT403 komprimiert und codiert, so dass die Aktualisierungsdaten DT100 generiert werden können.
  • 11(b) ist ein Schaubild, das die Kompressionscodierung der neuen Programmdaten DT4021, die in Schritt ST505 von 10 durchgeführt wird, in dem Fall beschreibt, dass das Aktualisierungssystem das Kompressionsaktualisierungssystem ist. In diesem Fall liest in der Datenkompressionseinheit 43 zunächst die Kompressionsaktualisierungscodiereinheit 73 einen Teil des Datenstrings (einen Referenzabschnitt AR811, einen Referenzabschnitt AR812 und einen Codierzielabschnitt AR813) der neuen Programmdaten DT4021 (Kompressionsquelle) aus der Speichereinheit 32 und speichert den gelesenen Datenstring im Kompressionseingabepuffer BF101. Ein gleitendes Fenster WD20 von 11(b) stellt einen Bereich des Datenstrings dar, der zu diesem Zeitpunkt im Kompressionseingabepuffer BF101 gespeichert ist. Anders ausgedrückt ist ein Bereich des gleitenden Fensters WD20 in den Referenzabschnitt AR811, den Referenzabschnitt AR812 und den Codierzielabschnitt AR813 unterteilt.
  • Bei der Datenkompression des Kompressionsaktualisierungssystems wird die Größe des gleitenden Fensters WD20 so eingestellt, dass es größer als die Kapazität des Dekompressionspuffers BF121 ist, der im SRAM 1111 in der ECU 12 bereitgestellt ist. Anders ausgedrückt bestimmt die Kompressionsaktualisierungscodiereinheit 73 die Größe des gleitenden Fensters WD20 so, dass es größer als das gleitende Fenster WD10 ist, das von der Differenzaktualisierungscodiereinheit 72 eingestellt wird, und zwar unabhängig von der Größe der Region des SRAM 1111, der als Dekompressionspuffer BF121 für die ECU 12 verfügbar ist.
  • Der Referenzabschnitt AR811 ist ein Datenstring, der Teilaktualisierungsdaten AR816 entspricht, die bereits komprimiert, codiert und in der Speichereinheit 32 gespeichert wurden. Der Referenzabschnitt AR812 ist ein Datenstring, der einem codierten Datenstring AR814 entspricht, der bereits komprimiert und codiert, aber noch nicht in der Speichereinheit 32 gespeichert wurde. Alle Datenstrings werden als Wörterbuch zum Komprimieren und Codieren des Datenstrings des Codierzielabschnitts AR813 verwendet. Anders ausgedrückt wird in dem Fall, dass die Kompressionsaktualisierungscodiereinheit 73 die Aktualisierungsdaten DT100 gemäß dem Kompressionsaktualisierungssystem generiert, die Differenzaktualisierungseinheit 72, ein Bereich von Wörterbuchdaten eher erweitert als in dem Fall, dass die Aktualisierungsdaten DT100 gemäß dem Differenzaktualisierungssystem generiert werden.
  • Die Kompressionsaktualisierungscodiereinheit 73 komprimiert und codiert den Datenstring des Codierzielabschnitts AR813 unter Verwendung eines Codieralgorithmus wie z. B. LZ77, ähnlich dem Kompressionscodierprozess der Differenzaktualisierungscodiereinheit 72. Im Spezifischen durchsucht die Kompressionsaktualisierungseinheit 73 den Referenzabschnitt AR811 und den Referenzabschnitt AR812 im gleichen Fenster WD20 nach dem längsten übereinstimmenden String in Bezug auf den Datenstring des Codierzielabschnitts 813. Danach wird der Datenstring, der dem längsten übereinstimmenden String im Codierzielabschnitt 813 entspricht, auf den Zeiger auf den längsten übereinstimmenden String ersetzt und komprimiert und codiert. Somit wird der Datenstring, der durch Komprimieren und Codieren des Codierzielabschnitts AR813 erzeugt wurde, als codierter Datenstring AR815 im Kompressionsausgabepuffer BF102 gespeichert. Ferner ist im Kompressionsausgabepuffer BF102 der codierte Datenstring AR814, der vor dem codierte Datenstring AR815 komprimiert und codiert wurde, bereits gespeichert.
  • Die Kompressionsaktualisierungscodiereinheit 73 speichert den Datenstring (die codierten Datenstrings AR814 und AR815), die im Kompressionsausgabepuffer BF102 bislang gesammelt wurden, als Teilaktualisierungsdaten AR817 (Teil der Aktualisierungsdaten DT100) zu einem vordefinierten Zeitpunkt in der Speichereinheit 32, ähnlich der Aktualisierungsdatenspeichereinheit 74. Ferner sind die Teilaktualisierungsdaten AR816, die vor den Teilaktualisierungsdaten AR817 generiert wurden, bereits in der Speichereinheit 32 gespeichert.
  • Die Kompressionsaktualisierungscodiereinheit 73 stellt zunächst das gleitende Fenster WD20 am Kopf der neuen Programmdaten DT4021 bereit, um den Kompressionscodierprozess und den Speicherprozess, wie oben beschrieben, durchzuführen. Danach werden gleichermaßen der Kompressionscodierprozess und der Speicherprozess durchgeführt, während sich das gleitende Fenster WD20 bewegt. Auf diese Weise werden die Bewegung des gleitenden Fensters WD20, der Kompressionscodierprozess und der Speicherprozess wiederholt vom Kopf bis zum Ende der neuen Programmdaten DT4021 durchgeführt. Bei dieser Konfiguration werden alle neuen Programmdaten DT4021 komprimiert und codiert, so dass die Aktualisierungsdaten DT100 generiert werden können.
  • Hier wird in dem Fall, dass die Datengröße der neuen Programmdaten DT4021 größer als die Kapazität des Dekompressionspuffer BF121 der ECU 12 ist, die Größe des gleitenden Fensters WD20 größer als die Kapazität des Dekompressionspuffers BF121 bei der Kompressionscodierung, die von der Kompressionscodiereinheit 73 gemäß dem Kompressionsaktualisierungssystem durchgeführt wird. In der Folge wird die Erkennungsrate des längsten übereinstimmenden Strings erhöht und kann ein weiterer längster übereinstimmender String bei der Kompressionscodierung erkannt werden. Aus diesem Grund kann die Kompressionsrate im Vergleich zur Kompressionscodierung des Differenzaktualisierungssystems relativ erhöht werden.
  • 12 ist ein Schaubild, das eine beispielhafte Struktur der Verteilungsdaten DT10 veranschaulicht, die vom Server 10 in Schritt ST22 von 9 verteilt werden.
  • In 12 stellen Kompressionsquelldaten DT60 die ursprünglichen Daten dar, bevor die Datenkompressionseinheit 43 des Servers 10 den Kompressionscodierprozess durchführt. Der Inhalt der Kompressionsquelldaten DT60 unterscheidet sich je nach Aktualisierungssystem. Im Spezifischen entsprechen die Differenzdaten DT403 den Kompressionsquelldaten DT60 in dem Fall, dass die Datenkompressionseinheit 43 gemäß dem Differenzaktualisierungssystem komprimiert und codiert wird. Im Gegenteil dazu entsprechen die neuen Programmdaten DT4021 den Kompressionsquelldaten DT60 in dem Fall, dass die Datenkompressionseinheit 43 gemäß dem Kompressionsaktualisierungssystem komprimiert und codiert wird.
  • Die Aktualisierungsdaten DT100 werden durch Komprimieren und Codieren der Kompressionsquelldaten DT60 gemäß dem Kompressionscodieralgorithmus wie z. B. LZ77 erhalten. Die Verteilungsdaten DT10 werden durch Hinzufügen einer Kopfzeile DT101 zu den Aktualisierungsdaten DT100 konfiguriert. Die Kopfzeile DT101 beinhaltet z. B. das Aktualisierungssystem DT621 und Daten wie z. B. eine wiederhergestellte Größe DT622. Das Aktualisierungssystem DT621 stellt Identifikationsinformationen bereit, die das Aktualisierungssystem anzeigen, das beim Generieren der Aktualisierungsdaten DT100 verwendet wird, wobei es sich im Spezifischen um Informationen zum Ausweisen eines des Differenzaktualisierungssystems und des Kompressionsaktualisierungssystems handelt. Ferner kann das Gesamtaktualisierungssystem ausgewiesen werden. Die wiederhergestellte Größe DT622 ist eine Information, die eine Datengröße der neuen Programmdaten DT4021 indiziert, die aus den Aktualisierungsdaten DT100 wiederhergestellt werden. Ferner können andere Informationen als das Aktualisierungssystem DT621 und die wiederhergestellte Größe DT622 in der Kopfzeile DT101 beinhaltet sein.
  • Im Folgenden werden die Details zu dem Verteilungsdatenübertragungsvorbereitungsprozess, dem Verteilungsdatenübertragungsprozess und dem Verteilungsdatenübertragungsabschlussprozess in den Schritten ST23 bis ST25 von 9 beschrieben. 13 ist ein Sequenzschaubild, das einen Ablauf eines Verteilungsdatenübertragungsvorbereitungsprozesses, eines Verteilungsdatenübertragungsprozesses und eines Verteilungsdatenübertragungsabschlussprozesses veranschaulicht, die von der Programmaktualisierungsvorrichtung 11 und der ECU 12 in den Schritten ST23 bis ST25 durchgeführt werden.
  • <ST23: Verteilungsdatenübertragungsvorbereitungsprozess>
  • Zunächst sendet die Verteilungsdatenübertragungseinheit 1004 der Programmaktualisierungsvorrichtung 11 eine Datenübertragungsstartanfrage über die fahrzeuginterne Datenübertragungseinheit 1005 in Schritt ST1301 an die ECU 12. Die Datenübertragungsstartanfrage enthält Informationen zu einem Datenformat, einer Sendedatengröße und einer Schreibzieladresse, die ein Schreibziel der Sendedaten indiziert.
  • Wird die Datenübertragungsstartanfrage von der Programmaktualisierungsvorrichtung 11 empfangen, benachrichtigt die Datenübertragungseinheit 1202 der ECU 12 die Verteilungsdatenempfangsverwaltungseinheit 1203 über diese Tatsache. Wird die Benachrichtigung empfangen, sendet die Verteilungsdatenempfangsverwaltungseinheit 1203 eine Annahmeantwort über die Datenübertragungseinheit 1202 in Schritt ST1302 an die Programmaktualisierungsvorrichtung 11. Die Annahmeantwort enthält Informationen wie z. B. die Datengröße (Blockgröße) der Verteilungsdaten DT10, die auf einmal von der Programmaktualisierungsvorrichtung 11 übertragen werden kann. Bei dieser Konfiguration ist der Verteilungsdatenübertragungsvorbereitungsprozess abgeschlossen.
  • <ST24: Verteilungsdatenübertragungsprozess>
  • Wird die Annahmeantwort von der ECU 12 empfangen, teilt die Verteilungsdatenübertragungseinheit 1004 der Programmaktualisierungsvorrichtung 11 die Verteilungsdaten DT10 nach einer Blockgröße, die in der Annahmeantwort ausgewiesen ist. Danach werden die geteilten Verteilungsdaten DT10 in Schritt ST1303 über die fahrzeuginterne Datenübertragungseinheit 1005 an die ECU 12 gesendet.
  • Werden die geteilten Verteilungsdaten DT10 von der Programmaktualisierungsvorrichtung 11 empfangen, dekomprimiert die Datenübertragungseinheit 1202 der ECU 12 die Aktualisierungsdaten DT100, die in den Verteilungsdaten DT10 enthalten sind, in Schritt ST1304, um einen Dekompressions-/Wiederherstellungsprozess durchzuführen, so dass die neuen Programmdaten DT4021 wiederhergestellt werden. Ferner werden im Folgenden die Details des Dekompressions-/Wiederherstellungsprozess, der in Schritt ST1304 durchgeführt wird, unter Bezugnahme auf 16 beschrieben. Die neuen Programmdaten DT4021, die mit dem Dekompressions-/Wiederherstellungsprozess wiederhergestellt werden, werden im FROM 1112 gespeichert.
  • Wenn das Schreiben der neuen Programmdaten DT4021 in den FROM 1112 abgeschlossen wurde, sendet die Verteilungsdatenempfangsverwaltungseinheit 1203 der ECU 12 eine Empfangsantwort über die Datenübertragungseinheit 1202 in Schritt ST1305 an die Programmaktualisierungsvorrichtung 11.
  • Die Programmaktualisierungsvorrichtung 11 und die ECU 12 führen eine Reihe von Prozessen von Schritt ST1303 bis Schritt ST1305 wiederholt durch, bis alle Verteilungsdaten DT10 übertragen wurden (Schritt ST1306). Bei dieser Konfiguration ist der Verteilungsdatenübertragungsprozess abgeschlossen.
  • <ST25: Verteilungsdatenübertragungsabschlussprozess>
  • Wenn alle Verteilungsdaten DT10 übertragen wurden, sendet die Verteilungsdatenübertragungseinheit 1004 der Programmaktualisierungsvorrichtung 11 eine Übertragungsabschlussbenachrichtigung über die fahrzeuginterne Datenübertragungseinheit 1005 in Schritt ST1307 an die ECU 12.
  • Beim Empfangen der Übertragungsabschlussbenachrichtigung von der Programmaktualisierungsvorrichtung 11 sendet die Verteilungsdatenempfangsverwaltungseinheit 1203 der ECU 12 die Annahmeantwort über die Datenübertragungseinheit 1202 in Schritt ST1308 an die Programmaktualisierungsvorrichtung 11. Bei dieser Konfiguration ist der Verteilungsdatenübertragungsabschlussprozess abgeschlossen.
  • 14 ist ein Schaubild, das eine beispielhafte Struktur von Daten eines Befehls veranschaulicht, der zwischen der Programmaktualisierungsvorrichtung 11 und der ECU 12 in jedem Prozess, wie in 13 beschrieben, übertragen wird.
  • <Verteilungsdatenübertragungsvorbereitungsprozess-Befehl>
  • Ein Befehl CMD141 ist ein Datenübertragungsstartanfrage-Befehl, der von der Programmaktualisierungsvorrichtung 11 in Schritt ST1301 von 13 an die ECU 12 übertragen wird. Der Datenübertragungsstartanfrage-Befehl CDM141 enthält Befehlsdaten CMD1411 bis CMD1414. Die Befehlsdaten CDM1411 sind eine Befehls-ID zum Identifizieren des entsprechenden Befehls und werden mit einem Identifikator eingestellt, der den Datenübertragungsstartanfrage-Befehl indiziert. Die Befehlsdaten CMD1412 sind Informationen, die das Aktualisierungssystem indizieren, wenn die Aktualisierungsdaten DT100 komprimiert werden, und indizieren, ob die Aktualisierungsdaten DT100 vom Differenzaktualisierungssystem oder vom Kompressionsaktualisierungssystem komprimiert werden. Die Befehlsdaten CMD1413 sind Informationen, die die Datenlänge der Befehlsdaten CMD1414 und der Befehlsdaten CMD1415, wie danach durchgeführt, indizieren. Die Befehlsdaten CMD1414 sind Informationen, die eine Kopfadresse eines Aktualisierungszielblocks indizieren, in den die gesendeten Daten geschrieben sind. Die Befehlsdaten CMD1415 sind Informationen, die die Größe der Verteilungsdaten DT10 indizieren, die von der Programmaktualisierungsvorrichtung 11 an die ECU 12 gesendet werden.
  • Ein Befehl CMD142 ist ein Annahmeantwortbefehl zum Datenübertragungsstart, der von der ECU 12 in Schritt ST1302 von 13 an die Programmaktualisierungsvorrichtung 11 übertragen wird. Der Annahmeantwortbefehl CDM142 enthält Befehlsdaten CMD1421 bis CMD1423. Die Befehlsdaten CDM1421 sind eine Befehls-ID zum Identifizieren des entsprechenden Befehls und werden mit einem Identifikator eingestellt, der den Annahmedatumantwortbefehl zur Datenübertragungsstartanfrage indiziert. Die Befehlsdaten CMD1422 sind Informationen, die die Datenlänge der Befehlsdaten CMD1423 indizieren. Die Befehlsdaten CMD1423 sind Informationen, die die Datengröße (Blockgröße) indizieren, die von der Programmaktualisierungsvorrichtung 11 kontinuierlich auf einmal an die ECU 12 gesendet werden.
  • <Verteilungsdatenübertragungsprozess-Befehl>
  • Ein Befehl CMD143 ist ein Verteilungsdatenübertragungsbefehl, der von der Programmaktualisierungsvorrichtung 11 in Schritt ST1303 von 13 an die ECU 12 gesendet wird. Der Verteilungsdatenübertragungsbefehl CDM143 enthält Befehlsdaten CMD1431 bis CMD1433. Die Befehlsdaten CDM1431 sind eine Befehls-ID zum Identifizieren des entsprechenden Befehls und werden mit einem Identifikator eingestellt, der den Verteilungsdatenübertragungsbefehl indiziert. Die Befehlsdaten CMD1432 sind ein Befehlszähler, der die Anzahl von Malen, die der Verteilungsdatenübertragungsbefehl CMD143 gesendet wird, indiziert, und wird auf einen Wert eingestellt, der bei jeder Sendung eines Befehls erhöht wird. Die Befehlsdaten CMD1433 sind ein Körperabschnitt der Sendedaten und wird auf einen Wert eingestellt, der durch Teilen der Verteilungsdaten DT10 durch die ausgewiesene Blockgröße durch die Befehlsdaten CMD1423 des Annahmeantwortbefehls CMD142 als obere Größe erhalten wird.
  • Ein Befehl CMD144 ist ein Empfangsantwortbefehl, der von der ECU 12 in Schritt ST1305 von 13 an die Programmaktualisierungsvorrichtung 11 gesendet wird. Der Empfangsantwortbefehl CMD144 enthält Befehlsdaten CMD1441 bis CMD1442. Die Befehlsdaten CMD1441 sind eine Befehls-ID zum Identifizieren des entsprechenden Befehls und werden mit einem Identifikator eingestellt, der den Empfangsantwortbefehl zur Datenübertragung indiziert. Die Befehlsdaten CMD1442 sind ein Befehlszähler, der die Anzahl von Malen indiziert, die der Verteilungsdatenübertragungsbefehl CMD143 empfangen wird, und wird auf den gleichen Wert wie der Wert eingestellt, der in den Befehlsdaten CMD1432 im empfangenen Verteilungsdatenübertragungsbefehl CMD143 eingestellt ist.
  • Wie in 13 beschrieben, werden ferner in Schritt ST1306 der Verteilungsdatenübertragungsbefehl CMD143 und der Empfangsantwortbefehl CMD144 mehrmals zwischen der Programmaktualisierungsvorrichtung 11 und der ECU 12 wiederholt übertragen, bis alle geteilten Verteilungsdaten DT10 von der Programmaktualisierungsvorrichtung 11 zur ECU 12 übertragen wurden.
  • <Verteilungsdatenübertragungsabschlussprozess-Befehl>
  • Ein Befehl CMD145 ist ein Übertragungsabschlussbenachrichtigungsbefehl, der von der Programmaktualisierungsvorrichtung 11 in Schritt ST1307 von 13 an die ECU 12 übertragen wird. Der Übertragungsabschlussbenachrichtigungsbefehl CMD145 enthält Befehlsdaten CMD1451. Die Befehlsdaten CDM1451 sind eine Befehls-ID zum Identifizieren des entsprechenden Befehls und werden mit einem Identifikator eingestellt, der den Übertragungsabschlussbenachrichtigungsbefehl indiziert.
  • Ferner weist der Annahmeantwortbefehl, der von der ECU 12 in Schritt ST1308 von 13 an die Programmaktualisierungsvorrichtung 11 gesendet wird, die gleiche Befehlsstruktur wie jene des Übertragungsabschlussbenachrichtigungsbefehls CMD145 auf, der von der Programmaktualisierungsvorrichtung 11 in Schritt ST1307 an die ECU 12 gesendet wird. In diesem Fall werden die Befehlsdaten CMD1451 auf einen Identifikator eingestellt, der den Annahmeantwortbefehl indiziert, der vollständig übertragen wurde.
  • 15 ist ein Schaubild, das eine beispielhafte Konfiguration für den Fall veranschaulicht, dass die Verteilungsdaten DT10 geteilt und gesendet werden. Die Datengröße der Verteilungsdaten DT10 beträgt z. B. 2 MB. Wie in 15 veranschaulicht, werden die Verteilungsdaten z. B. durch 256 Bytes in Übertragungsdaten DT1501 und Übertragungsdaten DT1502 geteilt und werden von der Programmaktualisierungsvorrichtung 11 an die ECU 12 gesendet. In diesem Fall sind die Übertragungsdaten D1501 z. B. Teilungsdaten, die die Kopfzeile DT101 und einen Teil der Aktualisierungsdaten DT100 in den Verteilungsdaten DT10 enthalten. Ferner müssen in dem Fall, dass die Verteilungsdaten DT10 von der Programmaktualisierungsvorrichtung 11 ohne Teilung an die ECU 12 gesendet werden können, die Daten nicht geteilt werden.
  • Im Folgenden werden die Details des Dekompressions-/Wiederherstellungsprozesses beschrieben, der Schritt ST1304 von 13 durchgeführt wird. 16 ist ein Ablaufplan, der einen Ablauf des Dekompressions-/Wiederherstellungsprozesses veranschaulicht, der in Schritt ST1304 von der ECU 12 durchgeführt wird.
  • In Schritt ST1601 empfängt die Datenübertragungseinheit 1202 die Verteilungsdaten DT10, die in die Übertragungsdaten D1501 und die Übertragungsdaten D1502 von 15 geteilt und von der Programmaktualisierungsvorrichtung 11 über die CAN-Kommunikationseinrichtung 113 gesendet werden. Wenn die Datenübertragungseinheit 1202 die Verteilungsdaten D10 empfängt, speichert die Verteilungsdatenempfangsverwaltungseinheit 1203 die Verteilungsdaten DT10 im Empfangspuffer BF120 und benachrichtigt die Wiederherstellungssteuereinheit 1201 über den Empfang der Verteilungsdaten DT10. Wenn die Benachrichtigung empfangen wird, weist die Wiederherstellungssteuereinheit 1201 die Aktualisierungsdatendekompressionseinheit 1204 an, die Aktualisierungsdaten DT100 zu dekomprimieren.
  • Wenn die Dekompressionsanweisung für die Aktualisierungsdaten DT100 von der Wiederherstellungssteuereinheit 1201 empfangen wird, liest die Aktualisierungsdatendekompressionseinheit 1204 die Verteilungsdaten DT10, die im Empfangspuffer BF120 gespeichert sind, in Schritt ST1602 und prüft, ob das in der Kopfzeile DT101 ausgewiesene Aktualisierungssystem das Differenzaktualisierungssystem oder das Kompressionsaktualisierungssystem ist. In der Folge geht der Prozess in dem Fall, dass das Aktualisierungssystem das Differenzaktualisierungssystem ist, zu Schritt ST1603 über. Im Fall des Kompressionsaktualisierungssystems geht der Prozess zu Schritt ST1606 über.
  • In Schritt ST1603 richtet die Aktualisierungsdatendekompressionseinheit 1204 den Dekompressionspuffer BF121 im SRAM 1111 ein und speichert die Aktualisierungsdaten DT100 im Dekompressionspuffer BF121. Ferner ist die Kapazität des Dekompressionspuffers BF121, die im SRAM 1111 eingestellt ist, größer gleich der Größe des gleitenden Fensters WD10, die von der Differenzaktualisierungscodiereinheit 72 des Servers 10 eingestellt wird, wenn die Differenzdaten DT403 in Schritt ST504 von 10 komprimiert und codiert werden. Danach wird der Referenzabschnitt, der für die Dekompression zu verwenden ist, in den Aktualisierungsdaten DT100 eingestellt, die im Dekompressionspuffer BF121 gespeichert sind, und werden die Aktualisierungsdaten DT100 auf Basis des Datenstrings des Referenzabschnitts dekomprimiert. Wenn die Dekompression der Aktualisierungsdaten DT100 endet, weist die Wiederherstellungssteuereinheit 1201 die Neues-Programm-Wiederherstellungseinheit 1205 an, die neuen Programmdaten DT123 unter Verwendung der dekomprimierten Aktualisierungsdaten DT100 (d. h. der Differenzdaten DT403) wiederherzustellen.
  • Wenn die Wiederherstellungsanweisung der neuen Programmdaten DT123 von der Wiederherstellungssteuereinheit 1201 empfangen wird, führt die Neues-Programm-Wiederherstellungseinheit 1205 den Wiederherstellungsprozess der neuen Programmdaten DT123 gemäß dem Differenzaktualisierungssystem in Schritt ST1604 durch. Im Spezifischen liest die Neues-Programm-Wiederherstellungseinheit 1205 die alten Programmdaten DT122 aus dem FROM 1112 und wendet die Differenzdaten DT403 darauf an, so dass die alten Programmdaten DT122 in die neuen Programmdaten DT123 umgewandelt werden und die neuen Programmdaten DT123 wiederhergestellt werden. Danach speichert die Neues-Programm-Wiederherstellungseinheit 1205 in Schritt ST1605 die neuen Programmdaten DT123, die in Schritt ST1604 wiederhergestellt wurden, im FROM 1112.
  • Ähnlich Schritt ST1603 richtet die Aktualisierungsdatendekompressionseinheit 1204 in Schritt ST1606 den Dekompressionspuffer BF121 im SRAM 1111 ein und speichert die Aktualisierungsdaten DT100 im Dekompressionspuffer BF121. Danach wird der Referenzabschnitt, der für die Dekompression zu verwenden ist, in jeden der Aktualisierungsdaten DT100, die im Dekompressionspuffer BF121 gespeichert sind, und der neuen Programmdaten DT123, die bereits wiederhergestellt und im FROM 1112 gespeichert sind, eingestellt und werden die Aktualisierungsdaten DT100 auf Basis des Datenstrings jedes Referenzabschnitts dekomprimiert. Wenn die Dekompression der Aktualisierungsdaten DT100 endet, speichert die Neues-Programm-Wiederherstellungseinheit 1205 die dekomprimierten Aktualisierungsdaten DT100 (d. h. die neuen Programmdaten DT4021) im FROM 1112 als wiederhergestellte neue Programmdaten DT123.
  • Wenn die neuen Programmdaten DT123 in Schritt ST1605 oder ST1607 im FROM 1112 gespeichert werden, prüft die Wiederherstellungssteuereinheit 1201, ob alle neuen Programmdaten DT123 in Schritt ST1608 vollständig wiederhergestellt wurden. In der Folge kehrt der Prozess in dem Fall, dass nicht wiederhergestellte neue Programmdaten DT123 vorhanden sind, zu Schritt ST1601 zurück, um die nächsten Verteilungsdaten DT10 zu empfangen, und führt den Dekompressionsprozess der Aktualisierungsdaten DT100 und den Wiederherstellungsprozess der neuen Programmdaten DT123 wiederholt durch. In dem Fall, dass alle neuen Programmdaten DT123 vollständig wiederhergestellt wurden, endet der Dekompressions-/Wiederherstellungsprozess von 16 hingegen.
  • 17 ist ein Schaubild, das den Dekompressions-/Wiederherstellungsprozess eines Differenzaktualisierungssystems beschreibt, der in Schritt ST1603 und ST1604 von 16 durchgeführt wird. Zu diesem Zeitpunkt wird ein Teil der Aktualisierungsdaten DT100, die in der Programmaktualisierungsvorrichtung 11 gespeichert sind, in der ECU 12 als Übertragungsdaten AR1701 empfangen und im Empfangspuffer BF120 gespeichert. Ferner sind die Übertragungsdaten AR1702, die vor den Übertragungsdaten AR1701 empfangen wurden, bereits im Empfangspuffer BF120 gespeichert.
  • Im Dekompressions-/Wiederherstellungsprozess des Differenzaktualisierungssystems decodiert die Aktualisierungsdatendekompressionseinheit 1204 die Übertragungsdaten AR1701 und die Übertragungsdaten AR1702, die im Empfangspuffer BF120 gespeichert sind, um Differenzdaten AR1703 zu generieren, und speichert die Daten im Dekompressionspuffer BF121, der auf dem SRAM 1111 eingerichtet ist. Zu diesem Zeitpunkt stellt die Aktualisierungsdatendekompressionseinheit 1204 Differenzdaten AR1704, die im Dekompressionspuffer BF121 gespeichert sind, auf den Referenzabschnitt ein. Danach wird der entsprechende Datenstring (der längste übereinstimmende String AR1705) aus den Positionsinformationen und den Informationen zur Länge des Datenstrings, die in den Zeigern der Übertragungsdaten AR1701 und der Übertragungsdaten AR1702 beinhaltet sind, in die Differenzdaten AR1704 kopiert und durch den Zeiger ersetzt, um decodiert zu werden. Ferner sind die Differenzdaten AR1704, die vor den Differenzdaten AR1703 generiert wurden, bereits im Dekompressionspuffer BF121 gespeichert.
  • In dem Fall, dass der Dekompressions-/Wiederherstellungsprozess des Differenzaktualisierungssystems durchgeführt wird, stellt die Aktualisierungsdatendekompressionseinheit 1204 die Differenzdaten AR1704, die im Dekompressionspuffer BF121 im SRAM 1111 gespeichert sind, auf den Referenzabschnitt, wie oben beschrieben, ein und dekomprimiert die Übertragungsdaten AR1701 und die Übertragungsdaten AR1702. Bei dieser Konfiguration können die Aktualisierungsdaten DT100 unter Verwendung des SRAM 1111 ohne den FROM 1112 dekomprimiert werden.
  • Wenn die Differenzdaten AR1703 von der Aktualisierungsdatendekompressionseinheit 1204 generiert werden, stellt die Neues-Programm-Wiederherstellungseinheit 1205 die neuen Programmdaten DT123 unter Verwendung der Differenzdaten AR1703 und der Differenzdaten AR1704, die im Dekompressionspuffer BF121 gespeichert sind, und der alten Programmdaten DT122, die im FROM 1112 gespeichert sind, wieder her. Zu diesem Zeitpunkt liest die Neues-Programm-Wiederherstellungseinheit 1205 den Datenstring, der dem Bereich der Differenzdaten AR1703 und der Differenzdaten AR1704 entspricht, aus den alten Programmdaten DT122 und kombiniert den Datenstring mit den Differenzdaten, um die neuen Programmdaten DT123 wiederherzustellen. Wenn die Wiederherstellung der neuen Programmdaten DT123 abgeschlossen ist, werden die Daten im FROM 1112 gespeichert.
  • 18 ist ein Schaubild, das den Dekompressions-/Wiederherstellungsprozess des Kompressionsaktualisierungssystems beschreibt, der in Schritt ST1606 von 16 durchgeführt wird. Zu diesem Zeitpunkt wird ein Teil der Aktualisierungsdaten DT100, die in der Programmaktualisierungsvorrichtung 11 gespeichert sind, in der ECU 12 als Übertragungsdaten AR1711 empfangen und im Empfangspuffer BF120 gespeichert. Ferner sind die Übertragungsdaten AR1712, die vor den Übertragungsdaten AR1711 empfangen wurden, bereits im Empfangspuffer BF120 gespeichert.
  • Im Dekompressions-/Wiederherstellungsprozess des Kompressionsaktualisierungssystems decodiert die Aktualisierungsdatendekompressionseinheit 1204 die Übertragungsdaten AR1711 und die Übertragungsdaten AR1712, die im Empfangspuffer BF120 gespeichert sind, um decodierte Daten AR1713, die Teil der neuen Programmdaten DT123 sind, zu generieren, und speichert die Daten im Dekompressionspuffer BF121, der im SRAM 1111 eingerichtet ist. Zu diesem Zeitpunkt stellt die Aktualisierungsdatendekompressionseinheit 1204 decodierte Daten AR1714, die im Dekompressionspuffer BF121 gespeichert sind, und decodierte Daten AR1715, die im FROM 1112 gespeichert sind, auf den Referenzabschnitt ein. Ferner sind die decodierten Daten AR1714 und die decodierten Daten AR1715 ebenfalls Teil der neuen Programmdaten DT123, ähnlich den decodierten Daten AR1713. Danach werden die Datenstrings (der längste übereinstimmende String AR176 im Dekompressionspuffer BF121, der von einem ersten Zeiger indiziert wird, der längste übereinstimmende String AR1717 im FROM 1112, der von einem zweiten Zeiger indiziert wird, und AR1718 im FROM 1112, der von einem dritten Zeiger indiziert wird), die in den decodierten Daten AR1714 und den decodierten Daten AR1715 entsprechen, aus den Positionsinformationen und den Informationen zur Länge des Datenstrings, die in den Zeigern der Übertragungsdaten AR1711 und der Übertragungsdaten AR1712 enthalten sind, kopiert und durch die Zeiger ersetzt, um decodiert zu werden. Ferner sind die decodierten Daten AR1714, die vor den decodierten Daten AR1713 generiert wurden, bereits im Dekompressionspuffer BF121 gespeichert.
  • In dem Fall, dass der Dekompressions-/Wiederherstellungsprozess des Kompressionsaktualisierungssystems durchgeführt wird, stellt die Aktualisierungsdatendekompressionseinheit 1204 die decodierten Daten AR1714, die im Dekompressionspuffer BF121 im SRAM 1111 gespeichert sind, und die decodierten Daten AR1715, die im FROM 1112 gespeichert sind, auf den Referenzabschnitt, wie oben beschrieben, ein und dekomprimiert die Übertragungsdaten AR1711 und die Übertragungsdaten AR1712. Bei dieser Konfiguration können die Aktualisierungsdaten DT100 unter Verwendung des SRAM 1111 und des FROM 1112 dekomprimiert werden. Anders ausgedrückt werden die Daten des FROM 1112, die bereits wiederhergestellt und gespeichert wurden, zum Zeitpunkt der Dekompression ebenfalls auf den Referenzabschnitt eingestellt, so dass die Aktualisierungsdaten DT100, die in einer im Vergleich zum Dekompressions-/Wiederherstellungsprozess des Differenzaktualisierungssystems hohen Kompressionsrate komprimiert und codiert wurden, dekomprimiert werden können, ohne dabei die Größe des Dekompressionspuffers BF121 zu erhöhen.
  • Wenn die decodierten Daten AR1713 von der Aktualisierungsdatendekompressionseinheit 1204 generiert werden, speichert die Neues-Programm-Wiederherstellungseinheit 1205 die decodierten Daten AR1713 und die decodierten Daten AR1714, die im Dekompressionspuffer BF121 gespeichert sind, als Teil der neuen Programmdaten DT123 im FROM 1112.
  • Die Aktualisierungsdatendekompressionseinheit 1204 und die Neues-Programm-Wiederherstellungseinheit 1205 führen die Kompression der Aktualisierungsdaten DT100 und die Wiederherstellung der neuen Programmdaten DT123, wie in den 17 und 18 beschrieben, wiederholt durch. Bei dieser Konfiguration können alle neuen Programmdaten DT123 in jedem des Dekompressions-/Wiederherstellungsprozesses des Differenzaktualisierungssystems und des Dekompressions-/Wiederherstellungsprozesses des Kompressionsaktualisierungssystems wiederhergestellt werden.
  • Gemäß der ersten Ausführungsform der Erfindung, die oben beschrieben ist, werden die folgenden Betriebsvorteile erzielt.
  • (1) Das Programmaktualisierungssystem dieser Ausführungsform beinhaltet den Server 10 und die ECU 12, die über das fahrzeugexterne Netzwerk 20 und das fahrzeuginterne Netzwerk 21 miteinander verbunden sind. Der Server 10 beinhaltet die Datenkompressionseinheit 43, die die Aktualisierungsdaten DT100 generiert, die gemäß beliebigen einer Mehrzahl von Aktualisierungssystemen komprimiert wurden, und die Datenübertragungseinheit 45, die die Verteilungsdaten DT10 über das Verteilungsnetzwerk an die ECU 12 sendet. Die Verteilungsdaten DT10 enthalten die Kopfzeile DT101, die Informationen zum Ausweisen des Aktualisierungssystems enthält, die zum Generieren der Aktualisierungsdaten DT100 und der Aktualisierungsdaten DT100 zu verwenden sind. Die ECU 12 beinhaltet die Datenübertragungseinheit 1202, die die Verteilungsdaten DT10 empfängt, die Aktualisierungsdatendekompressionseinheit 1204, die die Aktualisierungsdaten DT100 aus den von der Datenübertragungseinheit 1202 empfangenen Verteilungsdaten DT10 dekomprimiert, und die Neues-Programm-Wiederherstellungseinheit 1205, die die neuen Programmdaten DT123 nach Aktualisierung gemäß dem in der Kopfzeile DT101 ausgewiesenen Aktualisierungssystem unter Verwendung der von der Aktualisierungsdatendekompressionseinheit 1204 dekomprimierten Aktualisierungsdaten DT100 wiederherstellt. Im Programmaktualisierungssystem wechselt die Aktualisierungsdatendekompressionseinheit 1204 der ECU 12 das Dekompressionsverfahren, um die Aktualisierungsdaten DT100 auf Basis des in der Kopfzeile DT101 ausgewiesenen Aktualisierungssystems zu dekomprimieren. Bei einer solchen Konfiguration ist es möglich, die Datenmenge der Aktualisierungsdaten DT100, die vom Server 10 an die ECU 12 gesendet werden, zu verringern, indem die Kompressionsrate der Aktualisierungsdaten DT100 erhöht wird, wenn das Programm der ECU 12, die der Mehrzahl von Aktualisierungssystemen entspricht, aktualisiert wird, trotz der Kapazität des Dekompressionspuffers BF121, der im Dekompressionsprozess verwendet wird, im SRAM 1111 (flüchtiger Speicher). In der Folge kann das Programm sogar dann mit hoher Geschwindigkeit aktualisiert werden, wenn die ECU 12 eine kleine Kapazität des flüchtigen Speichers aufweist.
  • (2) Das Aktualisierungssystem, das zum Generieren der Aktualisierungsdaten DT100 am Server 10 zu verwenden ist, beinhaltet das Differenzaktualisierungssystem, bei dem die Differenzdaten DT403 komprimiert werden, um die Aktualisierungsdaten DT100 zu generieren, und das Kompressionsaktualisierungssystem, bei dem die neuen Programmdaten DT4021 komprimiert werden, um die Aktualisierungsdaten DT100 auf Basis der alten Programmdaten DT4022 vor Aktualisierung und der neuen Programmdaten DT4021 zu generieren. Wenn das in der Kopfzeile DT101 ausgewiesene Aktualisierungssystem das Differenzaktualisierungssystem ist, dekomprimiert die Aktualisierungsdatendekompressionseinheit 1204 der ECU 12 die Aktualisierungsdaten DT100 unter Verwendung eines ersten Dekompressionsverfahrens (Schritte ST1602 und ST1603 von 16). Wenn hingegen das in der Kopfzeile DT101 ausgewiesene Aktualisierungssystem das Kompressionsaktualisierungssystem ist, werden die Aktualisierungsdaten DT100 unter Verwendung eines zweiten Dekompressionsverfahrens dekomprimiert, das sich vom ersten Dekompressionsverfahren unterscheidet (Schritte ST1602 und ST1606 von 16). Bei einer solchen Konfiguration können die Aktualisierungsdaten DT100 unter Verwendung eines geeigneten Dekompressionsverfahrens in Bezug auf jedes des Differenzaktualisierungssystems und des Kompressionsaktualisierungssystems dekomprimiert werden.
  • (3) Die ECU 12 beinhaltet den SRAM 1111 (flüchtiger Speicher) und den FROM 1112 (nicht flüchtiger Speicher). Beim ersten Dekompressionsverfahren, wie in 17 beschrieben, werden die Aktualisierungsdaten DT100 unter Verwendung des SRAM 1111 ohne den FROM 1112 dekomprimiert. Beim zweiten Dekompressionsverfahren werden die Aktualisierungsdaten DT100 hingegen unter Verwendung des SRAM 1111 und des FROM 1112, wie in 18 beschrieben, dekomprimiert. Wenn, wie in 11 beschrieben, die Aktualisierungsdaten DT100 hingegen gemäß dem Kompressionsaktualisierungssystem generiert werden, erweitert die Datenkompressionseinheit 43 des Servers 10 den Bereich der Wörterbuchdaten, die bei der Kompression verwendet werden, im Vergleich zu dem Fall, dass die Aktualisierungsdaten DT100 gemäß dem Differenzaktualisierungssystem generiert werden. Bei einer solchen Konfiguration können die Aktualisierungsdaten DT100, die in einer höheren Kompressionsrate als jene des Kompressionsaktualisierungssystems komprimiert wurden, sogar dann in der ECU 12 dekomprimiert werden, wenn die im Dekompressionsprozess im SRAM 1111 zu verwendende Kapazität gering ist.
  • (4) Das Verteilungsnetzwerk, das die Verteilungsdaten DT10 sendet, beinhaltet das fahrzeuginterne Netzwerk 21, das im Fahrzeug 1 bereitgestellt ist, und das fahrzeugexterne Netzwerk 20, das außerhalb des Fahrzeugs 1 bereitgestellt ist. Die ECU 12 ist im Fahrzeug 1 montiert und mit dem fahrzeuginternen Netzwerk 21 verbunden. Der Server 10 ist in der Lage, über das fahrzeugexterne Netzwerk 20 mit dem fahrzeuginternen Netzwerk 21 zu kommunizieren. Die Datenübertragungseinheit 45 des Servers 10 sendet die Verteilungsdaten DT10 über das fahrzeugexterne Netzwerk 20 und über das fahrzeuginterne Netzwerk 21 an die ECU 12. Die ECU 12 empfängt die Verteilungsdaten DT10 über das fahrzeuginterne Netzwerk 21. Bei einer solchen Konfiguration können die Verteilungsdaten DT10 auf einfache Weise zu einem beliebigen Zeitpunkt an die im Fahrzeug 1 montierte ECU 12 gesendet werden.
  • (Zweite Ausführungsform)
  • Eine zweite Ausführungsform wird zu einem Programmaktualisierungsverfahren der fahrzeuginternen ECU in der Erfindung beschrieben. Ferner wird bei dieser Ausführungsform auf eine Beschreibung der Teile, die mit der ersten Ausführungsform gemein sind, verzichtet, außer wenn eine Beschreibung besonders erforderlich ist.
  • 19 ist ein Blockschaubild, das eine beispielhafte Konfiguration des Programmaktualisierungssystems gemäß der zweiten Ausführungsform der Erfindung veranschaulicht. Das Programmaktualisierungssystem dieser Ausführungsform beinhaltet ECUs 15, 16 und 17 anstatt der ECUs 12, 13 und 14, die bei der ersten Ausführungsform beschrieben wurden. Diese ECUs führen ferner einen Prozess des Hochladens von ECU-Statusdaten DT180, die den Status jeder ECU indizieren, über die Programmaktualisierungsvorrichtung 11 auf den Server 10 durch, bevor die Verteilungsdaten DT10 übertragen werden, im Vergleich zu den ECUs 12, 13 und 14 bei der ersten Ausführungsform.
  • Die ECU-Statusdaten DT180 sind Daten, die den Status des SRAM 1111 in jeder ECU als Status jeder ECU enthalten (z. B. Informationen wie z. B. eine verfügbare Kapazität als Dekompressionspuffer BF121 zum Zeitpunkt des Aktualisierens eines Programms im SRAM 1111). Bei der ersten Ausführungsform wird die verfügbare Kapazität des SRAM 1111 als Dekompressionspuffer BF121, wenn jede ECU den Programmaktualisierungsprozess durchführt, vorab auf einen fixen Wert eingestellt. Die Größe des gleitenden Fensters WD10, das für die Kompressionscodierung des Differenzaktualisierungssystems zu verwenden ist, wird gemäß der Kapazität des Dekompressionspuffers BF121 bestimmt. Wenn die Kapazität des SRAM 1111 jeder ECU sich bei dieser Ausführungsform jedoch unterscheidet, ist die verfügbare Kapazität des SRAM 1111 jeder ECU in den ECU-Statusdaten DT180 beinhaltet und wird der Server 10 über diese benachrichtigt, bevor die Verteilungsdaten DT10 übertragen werden, und zwar auf Basis der Differenz in der verfügbaren Kapazität des SRAM 1111 gemäß dem Status der ECU. Der Server 10 bestimmt die Größe des gleitenden Fensters WD10 gemäß der verfügbaren Kapazität des SRAM 1111, über die die ECU-Statusdaten DT180 aus jeder ECU benachrichtigen, und stellt die Größe des Kompressionseingabepuffers BF101 gemäß der bestimmten Größe ein.
  • Jeder der ECUs 15, 16 und 17 ist ähnlich der ECU 12 konfiguriert, die in 7 der ersten Ausführungsform veranschaulicht ist. Der Mikrocomputer 111 führt eine andere Software als die Programmwiederherstellungssoftware 1200 aus, die bei der ersten Ausführungsform beschrieben wurde. Im Folgenden wird die Software, die vom Mikrocomputer 111 bei dieser Ausführungsform ausgeführt wird, als Programmwiederherstellungssoftware 2000 beschrieben.
  • 20 ist ein Blockschaubild, das eine beispielhafte Konfiguration einer Funktion der Programmwiederherstellungssoftware 1200 gemäß der zweiten Ausführungsform der Erfindung veranschaulicht. Die Programmwiederherstellungssoftware 2000 beinhaltet ferner eine ECU-Statussendeeinheit 2001 im Vergleich zur Programmwiederherstellungssoftware 1200 der ersten Ausführungsform, die in 8 beschrieben ist. Außerdem ist eine Aktualisierungsdatendekompressionseinheit 2002 anstatt der Aktualisierungsdatendekompressionseinheit 1204 beinhaltet. Die anderen Konfigurationen sind die gleichen wie jene der Programmwiederherstellungssoftware 1200, die bei der ersten Ausführungsform beschrieben ist.
  • Die ECU-Statussendeeinheit 2001 betreibt die CAN-Kommunikationseinrichtung 113 gemäß einer Anweisung von der Wiederherstellungssteuereinheit 1201 und sendet die ECU-Statusdaten DT180 an die Programmaktualisierungsvorrichtung 11. Ferner werden die ECU-Statusdaten DT180, die an die Programmaktualisierungsvorrichtung 11 gesendet werden, von der Programmaktualisierungsvorrichtung 11 an den Server 10 übertragen.
  • Die Aktualisierungsdatendekompressionseinheit 2002 dekomprimiert die Aktualisierungsdaten DT100 aus den Verteilungsdaten DT10, die im Empfangspuffer BF120 gespeichert sind, und speichert die Aktualisierungsdaten in einem Dekompressionspuffer BF121, der auf dem SRAM 1111 bereitgestellt ist, ähnlich der Aktualisierungsdatendekompressionseinheit 1204, die bei der ersten Ausführungsform beschrieben wurde. Zu diesem Zeitpunkt wird das Dekompressionsverfahren auf Basis des von der Kopfzeile DT101 der Verteilungsdaten DT10 ausgewiesenen Aktualisierungssystems gewechselt. Ferner weist die Aktualisierungsdatendekompressionseinheit 2002 eine Funktion des Einstellens eines Algorithmus und eines Parameters, die im Dekompressionsprozess zu verwenden sind, gemäß dem Algorithmus und dem Parameter, die verwendet werden, wenn der Server 10 die Aktualisierungsdaten DT100 komprimiert und codiert, auf. Ferner können die Benachrichtigung über den Algorithmus und den Parameter der Kompressionscodierung durch den Server 10 an jede ECU durch Kombinieren dieser Informationsstücke mit der Kopfzeile DT101 durchgeführt werden.
  • 21 ist ein Sequenzschaubild, das den gesamten Ablauf des Programmaktualisierungsprozesses im Programmaktualisierungssystem gemäß der zweiten Ausführungsform der Erfindung veranschaulicht. Ferner wird im Folgenden als repräsentatives Beispiel der Fall beschrieben, dass das Programm der ECU 15 aktualisiert wird, es kann gleichermaßen aber auch den Fall geben, dass die Programme der anderen ECUs 16 und 17 aktualisiert werden.
  • Zunächst lädt die ECU 15 die ECU-Statusdaten DT180 in Schritt ST190 auf den Server 10 hoch. Die aus der ECU 15 hochgeladenen ECU-Statusdaten DT180 werden in der Speichereinheit 32 auf dem Server 10 gespeichert.
  • Danach führt der Server 10 den Aktualisierungsdatengenerierungsprozess in Schritt ST201 durch, um die Aktualisierungsdaten DT100, die auf den an die ECU 15 verteilten Verteilungsdaten DT10 basieren, auf Basis der ECU-Statusdaten DT180 zu generieren, die in der Speichereinheit 32 gespeichert sind. Beim Aktualisierungsdatengenerierungsprozess liest die Verteilungssteuereinheit 41 des Servers 10 die ECU-Statusdaten DT180, um die verfügbare Kapazität des SRAM 1111 in der ECU 15 zu prüfen, und stellt die Größe des Kompressionseingabepuffers BF101 bei der Kompressionscodierung ein. Gemäß der Größe des Kompressionseingabepuffers BF101, die auf diese Weise eingestellt wird, stellt die Datenkompressionseinheit 43 die Größe des gleitenden Fensters WD10 ein und komprimiert und codiert die Differenzdaten DT403 als Kompressionsquelldaten, so dass die Datenkompression des Differenzaktualisierungssystems durchgeführt wird, um die Aktualisierungsdaten DT100 zu generieren. Zu diesem Zeitpunkt kann ein weiterer Codierungsalgorithmus wie z. B. LZ78 mit einer höheren Kompressionsrate zusätzlich zu dem Codierungsalgorithmus wie z. B. LZ77, wie bei der ersten Ausführungsform beschrieben, verwendet werden. Im Fall der Datenkompression des Kompressionsaktualisierungssystems können ferner die Aktualisierungsdaten DT100 in einem Verfahren ähnlich dem bei der ersten Ausführungsform beschriebenen generiert werden.
  • Wenn die Aktualisierungsdaten DT100 in Schritt ST201 generiert werden, werden die Verteilungsdaten DT10 vom Server 10 auf die Programmaktualisierungsvorrichtung 11 auf Basis der Aktualisierungsdaten DT100 ähnlich der ersten Ausführungsform heruntergeladen. Zu diesem Zeitpunkt werden in der Kopfzeile DT101 der Verteilungsdaten DT10 Informationen wie z. B. der Algorithmus und der Parameter der Kompressionscodierung, die zum Generieren der Aktualisierungsdaten DT100 verwendet wurden, am Server 10 als Aktualisierungssystem DT621 gespeichert. Bei dieser Konfiguration kann die ECU 15 die Aktualisierungsdaten DT100 aus den Verteilungsdaten DT10 dekomprimieren.
  • Nach Schritt ST23 führen die Programmaktualisierungsvorrichtung 11 und die ECU 15 die Prozesse ähnlich den bei der ersten Ausführungsform beschriebenen durch. Bei dieser Konfiguration kann das Programm der ECU 15 unter Verwendung der Verteilungsdaten DT10 aktualisiert werden.
  • Gemäß der zweiten Ausführungsform der Erfindung beinhaltet die ECU 15 ferner die ECU-Statussendeeinheit 2001, die die ECU-Statusdaten DT180 an den Server 10 sendet (die Sendequelle der Verteilungsdaten DT10), um über den Status des SRAM 1111 (flüchtiger Speicher) zu benachrichtigen. Die Datenkompressionseinheit 43 des Servers 10 stellt den Bereich des gleitenden Fensters WD10 als Wörterbuchdaten zum Zeitpunkt der Kompressionscodierung auf Basis des Status des SRAM 1111 ein, über den die ECU-Statussendeeinheit 2001 benachrichtigt. Bei einer solchen Konfiguration kann die Kompressionsrate der Aktualisierungsdaten 100 zusätzlich zu den Betriebseffekten ähnlich den bei der ersten Ausführungsform beschriebenen auch gemäß einer Betriebssituation des SRAM 1111 in der ECU 15 flexibel verändert werden.
  • Ferner können die Verteilungsdaten DT10 bei den Ausführungsformen direkt vom Server 10 an jede ECU gesendet werden, ohne die Programmaktualisierungsvorrichtung 11 zu montieren. Sogar bei einer solchen Konfiguration können die Betriebseffekte ähnlich den bei den Ausführungsformen beschriebenen erzielt werden.
  • Außerdem wurden die Ausführungsformen anhand der Beispiele für ein Programmaktualisierungssystem beschrieben, das das Programm der in einem Fahrzeug montierten ECU aktualisiert, die Erfindung ist jedoch nicht darauf beschränkt. Die Erfindung ist auf das Aktualisieren des Programms diverser Steuervorrichtungen anwendbar, die mit einem Netzwerk verbunden sind.
  • Der technische Umfang der Erfindung ist nicht auf die obigen Ausführungsformen beschränkt, sondern diverse Modifikationen können natürlich im Umfang der technischen Grundgedanken der Erfindung vorgenommen werden.
  • Die Offenbarung der nachstehenden Anmeldungen mit grundlegender Priorität wird hierin durch Bezugnahme berücksichtigt.
  • Japanische Patentanmeldung Nr. 2017-079821 , eingereicht am 13. April 2017.
  • Bezugszeichenliste
  • 1
    Fahrzeug
    10
    Server
    11
    Programmaktualisierungsvorrichtung
    12, 13, 14, 15, 16, 17
    ECU
    20
    fahrzeugexternes Netzwerk
    21
    fahrzeuginternes Netzwerk
    31
    CPU
    32
    Speichereinheit
    33
    Anzeigeeinheit
    34
    Bedienungseingabeeinheit
    35
    WAN-Kommunikationseinrichtung
    40
    Programmverteilungssoftware
    41
    Verteilungssteuereinheit
    42
    Differenzdatengenerierungseinheit
    43
    Datenkompressionseinheit
    44
    Datenverteilungseinheit
    45
    Datenübertragungseinheit
    91
    Mikrocomputer
    9101
    SRAM
    9102
    FROM
    92
    fahrzeugexterne Kommunikationseinrichtung
    93
    fahrzeuginterne Kommunikationseinrichtung
    1000
    Programmaktualisierungsverwaltungssoftware
    1001
    Aktualisierungssteuereinheit
    1002
    fahrzeugexterne Datenübertragungseinheit
    1003
    Verteilungsdatenempfangsverwaltungseinheit
    1004
    Verteilungsdatenübertragungseinheit
    1005
    fahrzeuginterne Datenübertragungseinheit
    111
    Mikrocomputer
    1111
    SRAM
    1112
    FROM
    112
    dedizierte IC
    113
    CAN-Kommunikationseinrichtung
    114
    Sensor
    115
    Aktuator
    1200
    Programmwiederherstellungssoftware
    1201
    Wiederherstellungssteuereinheit
    1202
    Datenübertragungseinheit
    1203
    Verteilungsdatenempfangsverwaltungseinheit
    1204, 2002
    Aktualisierungsdatendekompressionseinheit
    1205
    Neues-Programm-Wiederherstellungseinheit
    2001
    ECU-Statussendeeinheit
  • 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 2016170740 A [0005]
    • JP 4888566 B2 [0005]
    • JP 2017079821 [0140]

Claims (14)

  1. Steuervorrichtung, die umfasst: eine Empfangseinheit, die Verteilungsdaten empfängt, wobei die Verteilungsdaten komprimierte Aktualisierungsdaten und eine Kopfzeile enthalten, die Informationen beinhaltet, um ein beliebiges einer Mehrzahl von Aktualisierungssystemen auszuweisen; eine Dekompressionseinheit, die die Aktualisierungsdaten aus den von der Empfangseinheit empfangenen Verteilungsdaten dekomprimiert; und eine Wiederherstellungseinheit, die ein neues Programm nach Aktualisierung gemäß einem in der Kopfzeile ausgewiesenen Aktualisierungssystem unter Verwendung der von der Dekompressionseinheit dekomprimierten Aktualisierungsdaten wiederherstellt, wobei die Dekompressionseinheit ein Dekompressionsverfahren wechselt, wenn die Aktualisierungsdaten dekomprimiert werden, auf Basis des in der Kopfzeile ausgewiesenen Aktualisierungssystems.
  2. Steuervorrichtung nach Anspruch 1, wobei das Aktualisierungssystem ein Differenzaktualisierungssystem, bei dem eine Differenz zwischen einem alten Programm vor Aktualisierung und dem neuen Programm komprimiert wird, um die Aktualisierungsdaten zu generieren, und ein Kompressionsaktualisierungssystem, bei dem das neue Programm komprimiert wird, um die Aktualisierungsdaten zu generieren, beinhaltet, und die Dekompressionseinheit konfiguriert ist zum: Dekomprimieren der Aktualisierungsdaten unter Verwendung eines ersten Dekompressionsverfahrens, wenn das in der Kopfzeile ausgewiesene Aktualisierungssystem das Differenzaktualisierungssystem ist, und Dekomprimieren der Aktualisierungsdaten unter Verwendung eines zweiten Dekompressionsverfahrens, das sich vom ersten Dekompressionsverfahren unterscheidet, wenn das in der Kopfzeile ausgewiesene Aktualisierungssystem das Kompressionsaktualisierungssystem ist.
  3. Steuervorrichtung nach Anspruch 2, wobei die Steuervorrichtung einen flüchtigen Speicher und einen nicht flüchtigen Speicher beinhaltet, das erste Dekompressionsverfahren ein Verfahren zum Dekomprimieren der Aktualisierungsdaten unter Verwendung des flüchtigen Speichers ohne den nicht flüchtigen Speicher ist, und das zweite Dekompressionsverfahren ein Verfahren zum Dekomprimieren der Aktualisierungsdaten unter Verwendung des flüchtigen Speichers und des nicht flüchtigen Speichers ist.
  4. Steuervorrichtung nach Anspruch 3, die ferner umfasst: eine Benachrichtigungseinheit, die eine Sendequelle der Verteilungsdaten über einen Status des flüchtigen Speichers benachrichtigt.
  5. Steuervorrichtung nach einem der Ansprüche 1 bis 4, wobei die Steuervorrichtung mit einem fahrzeuginternen Netzwerk verbunden ist, das in einem Fahrzeug montiert und im Fahrzeug installiert ist, und die Empfangseinheit die Verteilungsdaten über das fahrzeuginterne Netzwerk empfängt.
  6. Programmaktualisierungssystem, das umfasst: einen Server und eine Steuervorrichtung, die über ein Netzwerk miteinander verbunden sind, wobei der Server beinhaltet: eine Datenkompressionseinheit, die komprimierte Aktualisierungsdaten gemäß einem beliebigen einer Mehrzahl von Aktualisierungssystemen generiert, und eine Sendeeinheit, die Verteilungsdaten über das Netzwerk an die Steuervorrichtung sendet, wobei die Verteilungsdaten die Aktualisierungsdaten und eine Kopfzeile enthalten, die Informationen beinhaltet, um das zum Generieren der Aktualisierungsdaten zu verwendende Aktualisierungssystem auszuweisen, die Steuervorrichtung beinhaltet: eine Empfangseinheit, die die Verteilungsdaten empfängt, eine Dekompressionseinheit, die die Aktualisierungsdaten aus den von der Empfangseinheit empfangenen Verteilungsdaten dekomprimiert, und eine Wiederherstellungseinheit, die ein neues Programm nach Aktualisierung gemäß dem in der Kopfzeile ausgewiesenen Aktualisierungssystem unter Verwendung der von der Dekompressionseinheit dekomprimierten Aktualisierungsdaten wiederherstellt, und wobei die Dekompressionseinheit ein Dekompressionsverfahren, wenn die Aktualisierungsdaten dekomprimiert werden, auf Basis des in der Kopfzeile ausgewiesenen Aktualisierungssystems wechselt.
  7. Programmaktualisierungssystem nach Anspruch 6, wobei das Aktualisierungssystem ein Differenzaktualisierungssystem, bei dem eine Differenz zwischen einem alten Programm vor Aktualisierung und dem neuen Programm komprimiert wird, um die Aktualisierungsdaten zu generieren, und ein Kompressionsaktualisierungssystem, bei dem das neue Programm komprimiert wird, um die Aktualisierungsdaten zu generieren, beinhaltet, und die Dekompressionseinheit konfiguriert ist zum: Dekomprimieren der Aktualisierungsdaten unter Verwendung eines ersten Dekompressionsverfahrens, wenn das in der Kopfzeile ausgewiesene Aktualisierungssystem das Differenzaktualisierungssystem ist, und Dekomprimieren der Aktualisierungsdaten unter Verwendung eines zweiten Dekompressionsverfahrens, das sich vom ersten Dekompressionsverfahren unterscheidet, wenn das in der Kopfzeile ausgewiesene Aktualisierungssystem das Kompressionsaktualisierungssystem ist.
  8. Programmaktualisierungssystem nach Anspruch 7, wobei die Steuervorrichtung einen flüchtigen Speicher und einen nicht flüchtigen Speicher beinhaltet, das erste Dekompressionsverfahren ein Verfahren zum Dekomprimieren der Aktualisierungsdaten unter Verwendung des flüchtigen Speichers ohne den nicht flüchtigen Speicher ist, das zweite Dekompressionsverfahren ein Verfahren zum Dekomprimieren der Aktualisierungsdaten unter Verwendung des flüchtigen Speichers und des nicht flüchtigen Speichers ist, und die Datenkompressionseinheit den Bereich der Wörterbuchdaten, die bei der Kompression zu verwenden sind, in dem Fall erweitert, dass die Aktualisierungsdaten gemäß dem Kompressionsaktualisierungssystem generiert werden, im Vergleich zu dem Fall, dass die Aktualisierungsdaten gemäß dem Differenzaktualisierungssystem generiert werden.
  9. Programmaktualisierungssystem nach Anspruch 8, wobei die Steuervorrichtung ferner eine Benachrichtigungseinheit beinhaltet, die den Server über einen Status des flüchtigen Speichers benachrichtigt, und die Datenkompressionseinheit den Bereich der Wörterbuchdaten auf Basis des Status des flüchtigen Speichers, über den durch die Benachrichtigungseinheit benachrichtigt wurde, einstellt.
  10. Programmaktualisierungssystem nach einem der Ansprüche 6 bis 9, wobei das Netzwerk ein fahrzeuginternes Netzwerk, das in einem Fahrzeug installiert ist, und ein fahrzeugexternes Netzwerk, das außerhalb des Fahrzeugs installiert ist, beinhaltet, die Steuervorrichtung im Fahrzeug montiert ist, um mit dem fahrzeuginternen Netzwerk verbunden zu werden, der Server in der Lage ist, über das fahrzeugexterne Netzwerk mit dem fahrzeuginternen Netzwerk zu kommunizieren, und die Sendeeinheit die Verteilungsdaten über das fahrzeugexterne Netzwerk und das fahrzeuginterne Netzwerk an die Steuervorrichtung sendet.
  11. Programmaktualisierungsverfahren, das ein Programm einer Steuervorrichtung aktualisiert, das umfasst: Empfangen von Verteilungsdaten durch die Steuervorrichtung, wobei die Verteilungsdaten komprimierte Aktualisierungsdaten und eine Kopfzeile enthalten, die Informationen beinhaltet, um ein beliebiges einer Mehrzahl von Aktualisierungssystemen auszuweisen; Wechseln eines Dekompressionsverfahrens durch die Steuervorrichtung auf Basis des Aktualisierungssystems, das in der Kopfzeile ausgewiesen ist, um die Aktualisierungsdaten aus den empfangenen Verteilungsdaten zu dekomprimieren; und Wiederherstellen eines neuen Programms nach Aktualisierung gemäß dem in der Kopfzeile ausgewiesenen Aktualisierungssystem durch die Steuervorrichtung unter Verwendung der dekomprimierten Aktualisierungsdaten.
  12. Programmaktualisierungsverfahren nach Anspruch 11, wobei das Aktualisierungssystem ein Differenzaktualisierungssystem, bei dem eine Differenz zwischen einem alten Programm vor Aktualisierung und dem neuen Programm komprimiert wird, um die Aktualisierungsdaten zu generieren, und ein Kompressionsaktualisierungssystem, bei dem das neue Programm komprimiert wird, um die Aktualisierungsdaten zu generieren, beinhaltet, die Aktualisierungsdaten von der Steuervorrichtung unter Verwendung eines ersten Dekompressionsverfahrens dekomprimiert werden, wenn das in der Kopfzeile ausgewiesene Aktualisierungssystem das Differenzaktualisierungssystem ist, und die Aktualisierungsdaten von der Steuervorrichtung unter Verwendung eines zweiten Dekompressionsverfahrens dekomprimiert werden, das sich vom ersten Dekompressionsverfahren unterscheidet, wenn das in der Kopfzeile ausgewiesene Aktualisierungssystem das Kompressionsaktualisierungssystem ist.
  13. Programmaktualisierungsverfahren nach Anspruch 12, wobei Steuervorrichtung einen flüchtigen Speicher und einen nicht flüchtigen Speicher beinhaltet, das erste Dekompressionsverfahren ein Verfahren zum Dekomprimieren der Aktualisierungsdaten unter Verwendung des flüchtigen Speichers ohne den nicht flüchtigen Speicher ist, und das zweite Dekompressionsverfahren ein Verfahren zum Dekomprimieren der Aktualisierungsdaten unter Verwendung des flüchtigen Speichers und des nicht flüchtigen Speichers ist.
  14. Programmaktualisierungsverfahren nach Anspruch 13, wobei die Steuervorrichtung eine Sendequelle der Verteilungsdaten vor Empfang der Verteilungsdaten über einen Status des flüchtigen Speichers benachrichtigt.
DE112018001315.4T 2017-04-13 2018-03-19 Steuervorrichtung, programmaktualisierungssystem und programmaktualisierungsverfahren Pending DE112018001315T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017079821A JP6784636B2 (ja) 2017-04-13 2017-04-13 制御装置、プログラム更新システム、プログラム更新方法
JP2017-079821 2017-04-13
PCT/JP2018/010857 WO2018190080A1 (ja) 2017-04-13 2018-03-19 制御装置、プログラム更新システム、プログラム更新方法

Publications (1)

Publication Number Publication Date
DE112018001315T5 true DE112018001315T5 (de) 2019-12-24

Family

ID=63793251

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018001315.4T Pending DE112018001315T5 (de) 2017-04-13 2018-03-19 Steuervorrichtung, programmaktualisierungssystem und programmaktualisierungsverfahren

Country Status (5)

Country Link
US (1) US11513783B2 (de)
JP (1) JP6784636B2 (de)
CN (1) CN110494845B (de)
DE (1) DE112018001315T5 (de)
WO (1) WO2018190080A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5547701B2 (ja) * 2011-09-21 2014-07-16 日立オートモティブシステムズ株式会社 自動車用電子制御装置
JP7367359B2 (ja) * 2018-08-10 2023-10-24 株式会社デンソー 車両用電子制御システム、ファイルの転送制御方法、ファイルの転送制御プログラム及び装置
WO2020115818A1 (ja) * 2018-12-04 2020-06-11 三菱電機株式会社 更新管理装置、更新管理システム及び更新管理方法
JP7243217B2 (ja) * 2019-01-25 2023-03-22 株式会社富士通ゼネラル 空気調和機及び空気調和システム
JP7298427B2 (ja) * 2019-10-07 2023-06-27 トヨタ自動車株式会社 プログラム更新システムおよびプログラム更新方法
US11851853B2 (en) * 2019-10-16 2023-12-26 Deere & Company Wake up system to allow remote machine configuration of a work machine
KR20210140862A (ko) * 2020-05-14 2021-11-23 현대자동차주식회사 소프트웨어 업데이트 시스템 및 그 제어 방법
CN114095037B (zh) * 2022-01-17 2022-10-04 浙江地芯引力科技有限公司 应用程序的更新方法、更新数据的压缩方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4888566B2 (ja) 2007-10-30 2012-02-29 日本電気株式会社 データ圧縮方法
JP2016170740A (ja) 2015-03-16 2016-09-23 日立オートモティブシステムズ株式会社 ソフト更新装置、ソフト更新方法
JP2017079821A (ja) 2015-10-22 2017-05-18 有限会社ちょうりゅう 過屈曲過伸展防止用補助具

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08237208A (ja) * 1995-02-23 1996-09-13 Daihatsu Motor Co Ltd 情報送信装置及び情報受信装置
JP4285679B2 (ja) * 2002-03-11 2009-06-24 富士通株式会社 差分転送方法、プログラム及びシステム
JP2004170887A (ja) 2002-11-22 2004-06-17 Canon Inc データ処理システム及びデータ格納方法
US20060200658A1 (en) * 2005-03-07 2006-09-07 Bitfone Corporation Agent framework for mobile devices
US20080005733A1 (en) * 2006-06-29 2008-01-03 Balaji Ramachandran Method and apparatus for updating firmware and software
DE602009000944D1 (de) * 2008-04-11 2011-05-05 Innovative Sonic Ltd Verfahren und Vorrichtung zur Handhabung des Weiterleitungsverfahrens
CN102510409B (zh) * 2011-12-19 2017-02-22 厦门雅迅网络股份有限公司 一种利用无线网络对移动终端程序快速远程更新的方法及系统
US9558251B2 (en) * 2012-04-03 2017-01-31 Teradata Us, Inc. Transformation functions for compression and decompression of data in computing environments and systems
CN103677878B (zh) * 2012-09-12 2017-07-14 国际商业机器公司 一种打补丁的方法和装置
JPWO2014147672A1 (ja) * 2013-03-22 2017-02-16 富士通株式会社 圧縮装置、圧縮方法、辞書生成装置、辞書生成方法、伸長装置、伸長方法、伸長プログラムおよび情報処理システム
CN104714819B (zh) * 2013-12-16 2019-11-15 中兴通讯股份有限公司 文件系统升级包制作方法、升级方法及装置、终端
MX357454B (es) * 2015-07-16 2018-06-26 Inst Tecnologico Y De Estudios Superiores De Occidente A C Sistema y método para la reprogramación de dispositivos ecu (unidades electrónicas de control) en vehiculos, vía radio digital.
US11146401B2 (en) * 2016-08-10 2021-10-12 Ford Global Technologies, Llc Software authentication before software update

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4888566B2 (ja) 2007-10-30 2012-02-29 日本電気株式会社 データ圧縮方法
JP2016170740A (ja) 2015-03-16 2016-09-23 日立オートモティブシステムズ株式会社 ソフト更新装置、ソフト更新方法
JP2017079821A (ja) 2015-10-22 2017-05-18 有限会社ちょうりゅう 過屈曲過伸展防止用補助具

Also Published As

Publication number Publication date
JP6784636B2 (ja) 2020-11-11
WO2018190080A1 (ja) 2018-10-18
JP2018180948A (ja) 2018-11-15
CN110494845A (zh) 2019-11-22
US20210089294A1 (en) 2021-03-25
CN110494845B (zh) 2023-07-14
US11513783B2 (en) 2022-11-29

Similar Documents

Publication Publication Date Title
DE112018001315T5 (de) Steuervorrichtung, programmaktualisierungssystem und programmaktualisierungsverfahren
DE2264090C3 (de) Datenverdichtung
DE3606869C2 (de) Vorrichtung zur Datenkompression
DE19740525C1 (de) Verfahren zur Abspeicherung und Wiedergewinnung von Daten in einem Steuersystem, insbesondere in einem Kraftfahrzeug
DE102009020807B4 (de) Verfahren zur effizienten Komprimierung für Messdaten
WO2016045863A1 (de) Gerät mit kommunikationsschnittstelle und verfahren zur steuerung eines datenbankzugriffs
DE3416939A1 (de) Verfahren zur steuerung von betriebseinrichtungen
DE112018001894T5 (de) Steuervorrichtung, Übertragungsverfahren und Computerprogramm
DE112019002411T5 (de) Fahrzeuggebundene Aktualisierungseinrichtung, Aktualisierungsprozessverfahren und Aktualisierungsprozessprogramm
DE10018993B4 (de) Datenbank-Verwaltungsvorrichtung und Datenbank-Datensatzabfragevorrichtung sowie Verfahren zum Verwalten einer Datenbank und zum Abfragen eines Datenbank-Datensatzes
EP3707854A1 (de) Verfahren zum verknuepfen eines ersten datenblocks mit einem zweiten datenblock, verfahren zum ueberpruefen der integritaet einer blockchain-struktur, vorrichtung und computerprogrammprodukt
DE112017007370T5 (de) Verfahren zur Erzeugung einer Netzwerkkonfigurationsinformation und Kommunikationsgerät
DE112018008095T5 (de) Aktualisierungsverwaltungsvorrichtung, Aktualisierungsverwaltungssystem und Aktualisierungsverwaltungsverfahren
EP2057538B1 (de) Verfahren zur erzeugung eines grössenoptimierten delta-files
EP2927818B1 (de) Verfahren zur automatischen verarbeitung einer anzahl von protokolldateien eines automatisierungssystems
DE112012006045B4 (de) Analog-Wandler und speicher-programmierbares Steuerungssystem
DE112014003082T5 (de) Programmierbares Steuerungssystem, programmierbare Steuerung, Programmanzeigevorrichtung und Programmanzeigeverfahren
DE112019000179T5 (de) Fahrzeugsteuervorrichtung und programmaktualisierungssystem
DE112014003067T5 (de) Speicherprogrammierbare Steuerung
EP3603010B1 (de) Verfahren und korrespondierendes system zur datenübertragung von einem gerät an ein datenverwaltungsmittel
EP0427884B1 (de) Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten
EP2646670B1 (de) Verfahren zum reversiblen, manipulationssicheren codieren eines motorsteuergeräts für ein kraftfahrzeug und motorsteuergerät
DE102016115792A1 (de) Verfahren zur Übertragung einer Differenz-Datei
DE102018105847A1 (de) Datenwiederherstellung und Datenregeneration mittels Paritätscode
DE102018003777A1 (de) Verfahren zur Aktualisierung einer Software zumindest eines Steuergeräts eines Fahrzeugs

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: HITACHI ASTEMO, LTD., HITACHINAKA-SHI, JP

Free format text: FORMER OWNER: HITACHI AUTOMOTIVE SYSTEMS, LTD., HITACHINAKA-SHI, IBARAKI, JP