Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR UPDATING SOFTWARE ON A TARGET DEVICE
Document Type and Number:
WIPO Patent Application WO/2019/242996
Kind Code:
A1
Abstract:
The invention relates to a method for updating software on a target device (100) by means of an update device (106). In a first step, an interface (116) to an external data processing device (118) receives distinction information (110) representing a difference between current software installed on the target device (100) and new software to be installed on the target device (100). In a second step the distinction information (110) is combined with a copy of the current software, which is saved in the update device (106), in order to create a data packet (302) representing the new software. Finally, in a third step the data packet (302) and/or the distinction information (110) are output to an interface (126) to the target device (100) in order to update the software on the target device (100).

Inventors:
PLISCHKE LARS (DE)
RUDOLPH GEORG (DE)
FISCHER WOLFGANG (DE)
Application Number:
PCT/EP2019/063602
Publication Date:
December 26, 2019
Filing Date:
May 27, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G06F8/658; G07C5/00
Foreign References:
US20160364230A12016-12-15
US20180095745A12018-04-05
Download PDF:
Claims:
Ansprüche

1. Verfahren (500) zum Aktualisieren von Software auf einem

Zielgerät (100) mittels einer Aktualisierungseinrichtung (106), wobei das Verfahren (500) folgende Schritte umfasst:

Empfangen (510) einer Unterscheidungsinformation (110), die einen Unterschied zwischen einer auf dem Zielgerät (100) installierten aktuellen Software und einer auf dem Zielgerät (100) zu installierenden neuen Software repräsentiert, von einer Schnittstelle (116) zu einer externen Datenverarbeitungseinrichtung (118);

Kombinieren (520) der Unterscheidungsinformation (110) mit einer in der Aktualisierungseinrichtung (106) hinterlegten Kopie (300) der aktuellen Software, um ein die neue Software repräsentierendes Datenpaket (302) zu erstellen; und

Ausgeben (530) des Datenpakets (302) und/oder der

Unterscheidungsinformation (110) an eine Schnittstelle (126) zum Zielgerät (100), um die Software auf dem Zielgerät (100) zu

aktualisieren.

2. Verfahren (500) gemäß Anspruch 1, mit einem Schritt des Überprüfens des Datenpakets (302) auf Fehler, wobei im Schritt des

Ausgebens (530) das Datenpaket (302) und/oder die

Unterscheidungsinformation (110) abhängig von einem Ergebnis des Überprüfens ausgegeben wird.

3. Verfahren (500) gemäß Anspruch 2, mit einem Schritt des

Unterdrückens des Ausgebens (530) des Datenpakets (302) und/oder der Unterscheidungsinformation (110), wenn sich beim Überprüfen ergibt, dass das Datenpaket (302) fehlerhaft ist.

4. Verfahren (500) gemäß einem der vorangegangenen Ansprüche, bei dem im Schritt des Kombinierens (520) eine Vollversion der neuen Software als das Datenpaket (302) erstellt wird.

5. Verfahren (500) gemäß einem der vorangegangenen Ansprüche, mit einem weiteren Schritt des Empfangens, in dem nach dem Ausgeben ein Ergebnis des Aktualisierens repräsentierende Ergebnisinformation von der Schnittstelle (126) zum Zielgerät (100) empfangen wird, wobei in einem Schritt des Kennzeichnens die neue Software als die aktuelle Software gekennzeichnet wird, wenn die Ergebnisinformation anzeigt, dass das Aktualisieren erfolgreich war, und/oder der Schritt des

Ausgebens (530) erneut ausgeführt wird, um das Datenpaket (302) und/oder die Kopie (300) und/oder eine Zurücksetzungsinformation zum Zurücksetzen des Zielgeräts (100) auf eine frühere Version der Software an die Schnittstelle (126) zum Zielgerät (100) auszugeben, wenn die Ergebnisinformation anzeigt, dass das Aktualisieren nicht erfolgreich war.

6. Verfahren (600) zum Verarbeiten eines Datenpakets (302) und/oder einer Unterscheidungsinformation (110) aus einem Verfahren (500) gemäß einem der Ansprüche 1 bis 5 mittels eines Zielgeräts (100), wobei das Verfahren (600) folgende Schritte umfasst:

Empfangen (610) des Datenpakets (302) und/oder der

Unterscheidungsinformation (110) über eine Schnittstelle (126) zur Aktualisierungseinrichtung (106); und

Aktualisieren (620) einer auf dem Zielgerät (100) aktuell installierten Software unter Verwendung des Datenpakets (302) und/oder der Unterscheidungsinformation (110).

7. Aktualisierungseinrichtung (106) mit Einheiten (108, 120, 122), die

ausgebildet sind, um das Verfahren (500) gemäß einem der Ansprüche 1 bis 5 auszuführen und/oder anzusteuern.

8. Zielgerät (100) mit Einheiten (128, 130; 400), die ausgebildet sind, um das Verfahren (600) gemäß Anspruch 6 auszuführen und/oder anzusteuern.

9. Computerprogramm, das ausgebildet ist, um das Verfahren (500) gemäß einem der Ansprüche 1 bis 5 und/oder das Verfahren (600) gemäß Anspruch 6 auszuführen und/oder anzusteuern. io. Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 9 gespeichert ist.

Description:
Beschreibung

Titel

VERFAHREN ZUM AKTUALISIEREN VON SOFTWARE AUF EINEM ZIELGERÄT

Stand der Technik

Die Erfindung geht aus von einem Verfahren oder einer Vorrichtung nach Gattung der unabhängigen Ansprüche. Gegenstand der vorliegenden Erfindung ist auch ein Computerprogramm.

Zur Aktualisierung der Software von Komponenten können sogenannte Delta- Verfahren eingesetzt werden. Dabei werden Unterschiede zwischen zwei Softwareversionen berechnet und an die jeweiligen Komponenten übertragen.

Offenbarung der Erfindung

Vor diesem Hintergrund werden mit dem hier vorgestellten Ansatz ein Verfahren zum Aktualisieren von Software auf einem Zielgerät mittels einer

Aktualisierungseinrichtung, eine entsprechende Aktualisierungseinrichtung, ein Verfahren zum Verarbeiten eines Datenpakets und/oder einer

Unterscheidungsinformation mittels eines Zielgeräts, ein entsprechendes Zielgerät sowie schließlich ein entsprechendes Computerprogramm gemäß den Hauptansprüchen vorgestellt. Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen der im unabhängigen Anspruch angegebenen Vorrichtung möglich. Es wird ein Verfahren zum Aktualisieren von Software auf einem Zielgerät mittels einer Aktualisierungseinrichtung vorgestellt, wobei das Verfahren folgende Schritte umfasst:

Empfangen einer Unterscheidungsinformation, die einen Unterschied zwischen einer auf dem Zielgerät installierten aktuellen Software und einer auf dem Zielgerät zu installierenden neuen Software repräsentiert, von einer Schnittstelle zu einer externen Datenverarbeitungseinrichtung;

Kombinieren der Unterscheidungsinformation mit einer in der

Aktualisierungseinrichtung hinterlegten Kopie der aktuellen Software, um ein die neue Software repräsentierendes Datenpaket zu erstellen; und

Ausgeben des Datenpakets und/oder der Unterscheidungsinformation an eine Schnittstelle zum Zielgerät, um die Software auf dem Zielgerät zu aktualisieren. Das Zielgerät und/oder die Aktualisierungseinrichtung kann beispielsweise in einem Fahrzeug oder in einer Industrieanlage oder einer Maschine oder in diversen anderen Software umfassenden und miteinander verbundenen Geräten genutzt werden und/oder angeordnet sein.

Unter einem Zielgerät oder Zieleinheit kann ein elektrisches Gerät verstanden werden, beispielsweise, ein Steuergerät das Sensorsignale verarbeitet und in Abhängigkeit davon Steuer- und/oder Datensignale ausgibt. Das Zielgerät kann eine Schnittstelle aufweisen, die hard- und/oder softwaremäßig ausgebildet sein kann.

In einer Ausgestaltung erfolgt durch das Zielgerät eine Steuerung des

Fahrzeugs. Hierzu kann das Zielgerät beispielsweise auf Sensorsignale wie Beschleunigungs-, Druck-, Lenkwinkel- oder Umfeldsensorsignale zugreifen. Die Ansteuerung kann über entsprechende Aktoren wie beispielsweise Brems- oder Lenkaktoren erfolgen.

Unter einer Aktualisierungseinrichtung kann eine, beispielsweise im Fahrzeug verbaute, Einrichtung zum Speichern von Backups und Steuern von

Aktualisierungsprozessen in einem Delta-Verfahren verstanden werden. Beispielsweise kann es sich bei der ersten Schnittstelle um eine Funkschnittstelle zur drahtlosen Kommunikation, beispielsweise mit dem Fahrzeug, handeln. Alternativ oder zusätzlich kann die Kommunikation über die erste Schnittstelle kabelgebunden erfolgen. Bei der zweiten Schnittstelle kann es sich

beispielsweise um einen Fahrzeugbus, etwa einen CAN-Bus, handeln. Unter einer externen Datenverarbeitungseinrichtung kann beispielsweise ein Server oder ein mobiles Endgerät verstanden werden. Unter einer

Unterscheidungsinformation kann beispielsweise eine sogenannte Delta-Datei verstanden werden. Unter einer solchen Delta-Datei, auch als Delta-Update- Datei bezeichnet, kann etwa ein Software- Update- Paket zum Software-Update auf eine neue Version verstanden werden. Die Unterscheidungsinformation kann im Vergleich zu einer Vollversion der neuen Software eine deutlich geringere Datenmenge repräsentieren. Beispielsweise kann es sich bei dem Datenpaket um ein komprimiertes oder unkomprimiertes Update- Paket zum Installieren der Vollversion der neuen Software handeln.

Der Schritt des Ausgebens kann in Abhängigkeit davon erfolgen, ob das

Zielgerät lediglich einen Software- Updater oder zusätzlich eine

Aktualisierungseinheit, beispielsweise mit einem Delta-Installer, zum Durchführen eines Delta-Verfahrens aufweist. So kann beispielsweise im ersten Fall das Datenpaket ausgegeben werden, während es im zweiten Fall ausreicht, lediglich die Unterscheidungsinformation auszugeben.

Der hier vorgestellte Ansatz betrifft Geräte, die über Software- Updates verfügen oder aus mehreren Komponenten bestehen, die je ein Software-Update unterstützen, aber einen eigenen Speicher haben und untereinander verbunden sind. Dabei können einzelne Komponenten aufgrund ihrer Ressourcensituation eingeschränkt sein. Der hier vorgestellte Ansatz beruht auf der Erkenntnis, dass zur Aktualisierung von Software einzelner Komponenten beispielsweise eines Fahrzeugs auf eine neue Version eine sogenannte Delta-Datei, die Unterschiede zwischen einer aktuell installierten Version und der neuen Version beinhaltet, und eine beispielsweise im Fahrzeug hinterlegte Kopie der aktuell installierten Version verwendet werden können, um die neue Version beispielsweise im Fahrzeug selbst zu berechnen und zu überprüfen, bevor die neue Version auf die betreffende Komponente aufgespielt wird. Somit können die Sicherheit beispielsweise des Fahrzeugs beeinträchtigende Fehler beim Aktualisieren auf ein Minimum beschränkt werden. Ferner hat ein derartiges

Aktualisierungsverfahren den Vorteil, dass statt einer Vollversion der Software lediglich die der betreffenden Komponente zugeordnete Delta-Datei

beispielsweise an das Fahrzeug übermittelt zu werden braucht, um die

Aktualisierung durchzuführen. Dadurch kann die Aktualisierung besonders schnell und effizient erfolgen, insbesondere wenn das Update beispielsweise über eine Funkschnittstelle eingespielt wird.

Dadurch, dass beispielsweise im Fahrzeug sowohl die alte als auch die neue Software als zentral hinterlegtes Backup vorhanden ist, ist es beispielsweise im Fehlerfall möglich, je nach Bedarf ein Vollupdate oder ein Rollback

durchzuführen, zumal diverse Komponenten aufgrund ihrer Ressourcensituation oftmals nicht in der Lage sind, eine Backup-Version ihrer jeweiligen Software zu speichern. Somit kann verhindert werden, dass die betreffenden Komponenten im Fall eines Update- Fehlers funktionsunfähig werden und einen

Werkstattbesuch erfordern. Es kann also sichergestellt werden, dass die

Komponenten auch bei einem Softwareupdate im Feld weiterhin funktionieren.

Der hier vorgestellte Ansatz umfasst ein systemweites Delta-Update-Verfahren, das in einer Aktualisierungseinrichtung, etwa einem zentralen Delta-Installer mit integriertem Backup-Server, neue Versionen aus einer Delta-Datei berechnet, speichert und verifiziert, um die neue Software in einem zweiten Schritt an die entsprechenden Zieleinheiten im Gesamtsystem zu verteilen. Dabei sollte immer nur eine Delta-Update-Version übertragen werden, sei es drahtlos oder im internen System, etwa über einen Fahrzeugbus. Wobei Delta- Update- Dateien nur dann übertragen werden können wenn auch die Zieleinheit über ein Delta- Update verfügt.

In der Aktualisierungseinrichtung muss eine Backup-Software für die einzelnen Zieleinheiten vorliegen oder diese zumindest geladen werden können..

Die Aktualisierungseinrichtung kann beispielsweise mit einer oder mehreren zentralen Installationseinheiten mit einem oder mehreren Delta-Installer mit entsprechenden Speicherressourcen angelegt sein, obwohl es eher üblich ist nur eine zentrale Stelle zu haben, die ggf. mehrere Delta Installer unterstützt. Diese zentralen Installationseinheiten mit Delta- Installer können über ein oder mehrere Delta-Update-Verfahren verfügen und müssen ebenfalls die jeweilige aktuelle Software der Zieleinheit als Backup besitzen oder zumindest Zugriff drauf haben. Es ist unabhängig ob die Zieleinheiten eine Aktualisierungseinheit mit oder ohne Delta-Installer verwendet. Die Sicherheit beim Update-Prozess wird also nicht alleine durch die Einzelkomponenten, sondern primär zentral durch die

Aktualisierungseinrichtung gewährleistet. Ein weiterer Punkt ist, dass die

Aktualisierungseinheiten mit Delta-Installer der Einzelkomponenten nur minimale zusätzliche Ressourcen erfordern und auch weniger Speicherzugriffe als bei einem Vollupdate stattfinden.

Ein wesentlicher Vorteil des hier vorgestellten Ansatzes besteht somit darin, dass eine ressourcentechnische Erweiterung der Zieleinheiten, etwa von RAM oder Flashspeicher, entfallen kann und trotzdem ein sicheres Update einschließlich Rollback unterstützt werden kann. So können auch kleine Zielsysteme Delta- Update-Verfahren nutzen.

Ein weiterer Vorteil ist, dass die beispielsweise drahtlose Datenübertragung zum Gesamtsystem durch das Delta-Update-Verfahren grundsätzlich minimiert werden kann. Dies gilt auch für Einzelkomponenten, die selbst keine Delta- Updates unterstützen, und auch für den Fall, dass über den internen Bus ein Vollupdate stattfinden soll.

Des Weiteren kann die Bus-Auslastung im Zielsystem minimiert werden, falls die Zieleinheiten selbst über eine Aktualisierungseinheit mit Delta-Installer verfügt.

Zudem können die Zieleinheiten ein Delta-Update-Verfahren sehr schnell ausführen, da keine zusätzlichen Speicherzugriffe erforderlich sind.

Vorteilhaft ist ferner, dass die Installationseinheit der Zieleinheiten mit Delta- Installer je Komponente keine Rollback- Funktionalität erfordert, da diese zentral in der Aktualisierungseinrichtung implementiert werden kann. Optional kann der Schutz der Delta-Installer je Komponente gegen

Unterbrechung entfallen, falls dieser Fall als selten eingestuft werden kann und dann durch ein Vollupdate, angestoßen durch den zentralen Delta-Installer, repariert werden kann.

Da die Aktualisierungseinrichtung mit zentralen Delta-Installer autark laufen und die empfangene Software ohne Einfluss auf die Zieleinheit prüfen und in einer neuen Version als Backup abspeichern können, kann geprüft werden, ob die Software korrekt ist, bevor der Nutzer überhaupt durch ein Software-Update beeinträchtigt werden kann.

Zudem können Defekte von Zieleinheiten vermieden werden, da die Software vorgeprüft wird bzw. im der Aktualisierungseinrichtung mit zentralem Delta- Installer ein Backup einer Vollversion von alter wie auch von neuer Software vorliegt.

Ein solches Verfahren kann einfach in bestehende zentrale Einheiten, etwa in ein zentrales Gateway, integriert werden. Außerdem kann ein solches Verfahren auf beliebig viele Komponenten angewendet werden, sofern genügend Speicherplatz vorhanden ist.

Durch die Anwendung weniger komplexer Delta-Update-Mechanismen kann schließlich auch die Fehlerhäufigkeit beim Aktualisieren reduziert werden.

Gemäß einer Ausführungsform kann das Verfahren einen Schritt des

Überprüfens des Datenpakets auf Fehler umfassen. Dabei kann im Schritt des Ausgebens das Datenpaket und/oder die Unterscheidungsinformation abhängig von einem Ergebnis des Überprüfens ausgegeben werden. Beispielsweise kann im Schritt des Überprüfens die Integrität des Datenpakets anhand einer

Prüfsumme überprüft werden, um Bitfehler im Datenpaket zu erkennen. Dadurch können Fehler im Datenpaket frühzeitig erkannt oder auch korrigiert werden. Somit kann eine fehlerhafte Aktualisierung der Software auf dem Zielgerät vermieden werden. Alternativ können Bitfehler bereits durch den Software- Update- Prozess behandelt werden. Gemäß einer weiteren Ausführungsform kann in einem Schritt des

Unterdrückens das Ausgeben des Datenpakets und/oder der

Unterscheidungsinformation unterdrückt werden, wenn sich beim Überprüfen ergibt, dass das Datenpaket fehlerhaft ist. Dadurch kann verhindert werden, dass fehlerhafte Aktualisierungsdaten auf das Zielgerät überspielt werden. Somit können Funktionsausfälle des Zielgeräts infolge einer fehlerhaften Aktualisierung vermieden werden.

Gemäß einer weiteren Ausführungsform kann das von der

Aktualisierungseinrichtung empfangene Datenpaket ohne vorherige Berechnung direkt an das Zielgerät weitergeleitet werden. Im zweiten Schritt berechnen das Zielgerät und die Aktualisierungseinrichtung parallel oder nacheinander die neue Software.

In einem Schritt des Kennzeichnens kann die neue Software als die aktuelle Software gekennzeichnet werden, wenn die Ergebnisinformation vom Zielgerät anzeigt, dass das Aktualisieren erfolgreich war. Zusätzlich oder alternativ kann der Schritt des Ausgebens von der Aktualisierungseinrichtung erneut ausgeführt werden, um die Kopie und/oder eine Zurücksetzungsinformation zum

Zurücksetzen des Zielgeräts auf eine frühere Version der Software an die Schnittstelle zum Zielgerät auszugeben, wenn die Ergebnisinformation des Zielgerätes anzeigt, dass das Aktualisieren nicht erfolgreich war. Dadurch kann das Risiko von Funktionsausfällen des Zielgeräts infolge einer Aktualisierung auf ein Minimum reduziert werden.

Gemäß einer weiteren Ausführungsform kann im Falle eines Zurücksetzen des Zielgeräts auf eine frühere Version der Software auch die

Aktualisierungseinrichtung mit zentralen Delta-Installer eine Delta Version zwischen neuer und alter Version berechnen um von der neuen SW wieder auf die alte zu kommen, dazu benötig die Installationseinheiten mit zentralen Delta- Installer auch einen Delta Generator.

Zusätzlich schafft der hier vorgestellte Ansatz eine Aktualisierungseinrichtung mit Einheiten, die ausgebildet sind, um das Verfahren gemäß einer der vorstehenden Ausführungsformen auszuführen und/oder anzusteuern. Der hier vorgestellte Ansatz schafft darüber hinaus ein Verfahren zum

Verarbeiten eines Datenpakets und/oder einer Unterscheidungsinformation aus einem Verfahren gemäß einer der vorstehenden Ausführungsformen mittels eines Zielgeräts beispielweise eines Fahrzeugs, wobei das Verfahren folgende Schritte umfasst:

Empfangen des Datenpakets und/oder der Unterscheidungsinformation über eine Schnittstelle zur Aktualisierungseinrichtung; und

Aktualisieren einer auf dem Zielgerät aktuell installierten Software unter

Verwendung des Datenpakets und/oder der Unterscheidungsinformation.

Gegenstand des hier vorgestellten Ansatzes ist auch ein Zielgerät mit Einheiten, die ausgebildet sind, um das Verarbeitungsverfahren gemäß der vorstehenden Ausführungsform auszuführen und/oder anzusteuern.

Die genannten Verfahren können beispielsweise in Software oder Hardware oder in einer Mischform aus Software und Hardware, beispielsweise in einem

Zielgerät oder einer Aktualisierungseinrichtung, implementiert sein.

Von Vorteil ist auch ein Computerprogrammprodukt oder Computerprogramm mit Programmcode, der auf einem maschinenlesbaren Träger oder Speichermedium wie etwa einem Halbleiterspeicher, einem Festplattenspeicher oder einem optischen Speicher gespeichert sein kann und zur Durchführung, Umsetzung und/oder Ansteuerung der Schritte eines Verfahrens nach einer der

vorstehenden Ausführungsformen verwendet wird, insbesondere wenn das Programmprodukt oder Programm auf einem Computer oder einer Vorrichtung ausgeführt wird.

Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt: Fig. 1 eine schematische Darstellung eines Datenflusses bei der

Aktualisierung von Software auf Zielgeräten in einem Verfahren gemäß einem Ausführungsbeispiel;

Fig. 2 eine schematische Darstellung einer Erstellung eines Datenpakets aus Fig. 1;

Fig. 3 eine schematische Darstellung einer Aktualisierungseinrichtung aus Fig. 1 zu drei aufeinanderfolgenden Zeitpunkten eines

Aktualisierungsprozesses;

Fig. 4 eine schematische Darstellung eines Datenflusses bei der

Aktualisierung von Software auf einem Zielgerät aus Fig. 1;

Fig. 5 ein Ablaufdiagramm eines Verfahrens zum Aktualisieren von Software gemäß einem Ausführungsbeispiel;

Fig. 6 ein Ablaufdiagramm eines Verfahrens zum Verarbeiten eines

Datenpakets und/oder einer Unterscheidungsinformation gemäß einem Ausführungsbeispiel; und

Fig. 7 eine schematische Darstellung eines Fahrzeugs gemäß einem

Ausführungsbeispiel.

In der nachfolgenden Beschreibung günstiger Ausführungsbeispiele der vorliegenden Erfindung werden für die in den verschiedenen Figuren dargestellten und ähnlich wirkenden Elemente gleiche oder ähnliche

Bezugszeichen verwendet, wobei auf eine wiederholte Beschreibung dieser Elemente verzichtet wird.

Fig. 1 zeigt eine schematische Darstellung eines Datenflusses bei der

Aktualisierung von Software auf drei Zielgeräten 100, 102, 104, hier lediglich beispielhaft Steuergeräten einer Maschine, hier lediglich beispielhaft eines Fahrzeugs, in einem Verfahren gemäß einem Ausführungsbeispiel. Gezeigt ist ein beispielhafter Ablauf eines Over-the-Air-Updateprozesses mit einer Aktualisierungseinrichtung 106, die eine Installationseinheit 120 mit zentralem Delta-Installer für Zielgeräte 100, 102 mit und für ein Zielgerät 104 ohne Delta- Update umfasst. Die drei Zielgeräte 100, 102, 104 sind je mit einer zentralen Aktualisierungseinrichtung 106, beispielsweise des Fahrzeugs, gekoppelt. Die Aktualisierungseinrichtung 106 umfasst eine Empfangseinheit 108 zum

Empfangen einer dem ersten Zielgerät 100 zugeordneten ersten Unterscheidungsinformation 110, einer dem zweiten Zielgerät 102 zugeordneten zweiten Unterscheidungsinformation 112 sowie einer dem dritten Zielgerät 104 zugeordneten dritten Unterscheidungsinformation 114 über eine erste

Schnittstelle 116, hier beispielhaft einer Funkschnittstelle, zu einer externen Datenverarbeitungseinrichtung 118, wobei diese unter anderen auch eine Kabelverbindung oder ein USB-Medium sein kann. Bei den

Unterscheidungsinformationen 110, 112, 114 handelt es sich beispielsweise je um eine Delta- Update- Datei zur Software-Aktualisierung in einem sogenannten Delta-Verfahren. Dabei repräsentieren die Unterscheidungsinformationen jeweils Unterschiede zwischen einer auf dem jeweiligen Zielgerät 100, 102, 104 installierten aktuellen Software und einer auf dem jeweiligen Zielgerät 100, 102, 104 zu installierenden neuen Software.

Die Aktualisierungseinrichtung 106 fungiert gemäß diesem Ausführungsbeispiel als OTA-Master (OTA = Over-the-Air) zum drahtlosen Empfangen der

Unterscheidungsinformationen 110, 112, 114 über die erste Schnittstelle 116. Eine in die Aktualisierungseinrichtung 106 integrierte Installationseinheit 120, auch zentraler Delta-Installer genannt, ist ausgebildet, um die von der

Empfangseinheit 108 empfangenen Unterscheidungsinformationen 110, 112, 114 jeweils mit einer in einer geeigneten Speichereinheit 122, etwa einem

Flashspeicher, hinterlegten Kopie der auf den jeweiligen Zielgeräten 100, 102, 104 installierten aktuellen Software zu je einem Datenpaket zu kombinieren. Insbesondere repräsentieren die drei Datenpakete dabei je eine Vollversion der auf den jeweiligen Zielgeräten 100, 102, 104 zu installierenden neuen Software.

Um eine fehlerhafte Aktualisierung zu vermeiden, ist es vorteilhaft, wenn die Installationseinheit 120 die Datenpakete auf ihre jeweilige Integrität hin überprüft, beispielsweise mittels Prüfsummen oder sonstiger geeigneter Prüfwerte. Nur wenn ein Datenpaket fehlerfrei ist und auch die Berechnung der Vollversion der neuen Software erfolgreich war, stößt die Installationseinheit 120 einen

Aktualisierungsprozess zum Aktualisieren des betreffenden Zielgeräts 100, 102, 104 an.

Gemäß dem in Fig. 1 gezeigten Ausführungsbeispiel gibt die Installationseinheit 120 beispielsweise die erste Unterscheidungsinformation 110 nach erfolgreicher Überprüfung des dem ersten Zielgerät 100 zugeordneten Datenpakets, die zweite Unterscheidungsinformation 112 nach erfolgreicher Überprüfung des dem zweiten Zielgerät 102 zugeordneten Datenpakets und ein dem dritten Zielgerät 104 zugeordnetes Datenpaket 124 nach dessen erfolgreicher Überprüfung je an eine zweite Schnittstelle 126 aus, hier beispielhaft an einen CAN-Bus des Fahrzeugs. Die Zielgeräte 100, 102, 104 umfassen je eine

Zielgeräteempfangseinheit 128 zum Einlesen von Daten über die zweite

Schnittstelle 126 sowie eine Aktualisierungseinheit 130 zum Aktualisieren ihrer jeweiligen Software. Die Aktualisierungseinheiten 130 umfassen je einen geeigneten Software- Updater. Zusätzlich zum Software-Updater umfassen das erste Zielgerät 100 und das zweite Zielgerät 102 je eine Aktualisierungseinheit mit einem Delta-Installer zum Durchführen eines Delta-Updates mittels der ersten Unterscheidungsinformation 110 im Fall des ersten Zielgeräts 100 oder mittels der zweiten Unterscheidungsinformation 112 im Fall des zweiten Zielgeräts 104. Die Aktualisierungseinheit 130 des dritten Zielgeräts 104 ist in diesem Beispiel hingegen ausgebildet, um die Aktualisierung ausschließlich als Vollupdate mittels des dritten Datenpakets 124 durchzuführen. Unter einem Delta-Installer ist hier eine Software- Komponente als Erweiterung zu einem Software-Updater zu verstehen. Unter einem Software-Updater ist hingegen eine Software- Komponente in einem Zielgerät, das für sein eigenes Software-Update zuständig ist, zu verstehen.

Fig. 2 zeigt eine schematische Darstellung einer Erstellung eines Datenpakets aus Fig. 1. Gezeigt sind die Empfangseinheit 108 und die Installationseinheit 120. Zur Berechnung einer neuen Version einer zu aktualisierenden Software empfängt die Aktualisierungseinrichtung 106 zunächst die entsprechende Delta- Datei von der Empfangseinheit 108, hier beispielsweise die erste

Unterscheidungsinformation 110, sucht dann in einem Schritt 200 in der

Speichereinheit nach der entsprechenden Kopie der aktuellen Software, erstellt in einem nachfolgenden Schritt 202 das Datenpaket durch Berechnung der Vollversion der neuen Software unter Verwendung der

Unterscheidungsinformation 110 und hinterlegt schließlich nach erfolgreicher Überprüfung des Datenpakets in einem weiteren Schritt 204 die Vollversion der neuen Software in der Speichereinheit. Fig. 3 zeigt eine schematische Darstellung einer Aktualisierungseinrichtung 106 aus Fig. 1 zu drei aufeinanderfolgenden Zeitpunkten eines

Aktualisierungsprozesses. Als Beispiel soll hier eine Version 1.0 auf eine Version 1.1 aktualisiert werden. Zu Beginn des Aktualisierungsprozesses, dargestellt im linken Bild, befindet sich auf der Speichereinheit 122 lediglich eine Kopie 300 einer aktuellen Version 1.0 der Software eines Zielgeräts, hier beispielhaft des ersten Zielgeräts. Nach dem Empfangen der Unterscheidungsinformation 110 weist die Speichereinheit 122 zusätzlich zur Kopie 300 die erste

Unterscheidungsinformation 110 auf, die ein Delta zwischen der Version 1.0 und einer neuen Version 1.1 der Software repräsentiert, wie es im mittleren Bild dargestellt ist. Das rechte Bild zeigt den Inhalt der Speichereinheit 122 nach der Berechnung der Vollversion 1.1.

Fig. 4 zeigt eine schematische Darstellung eines Datenflusses bei der

Aktualisierung von Software auf einem Zielgerät aus Fig. 1, hier beispielhaft auf dem ersten Zielgerät 100. Auf der Speichereinheit 122 der

Aktualisierungseinrichtung 106 befinden sich, wie in Fig. 3 gezeigt, die Kopie 300, die erste Unterscheidungsinformation 110 und das Datenpaket 302. Je nach Ausführungsbeispiel erfolgt die Aktualisierung des Zielgeräts 100 auf drei Arten.

Bei einem regulären Update stellt die Aktualisierungseinrichtung 106 dem Zielgerät 100 lediglich die Unterscheidungsinformation 110 bereit. Das Zielgerät 100 führt dann die Aktualisierung der aktuellen Software mittels Delta-Installer durch und speichert abschließend die Version der neuen Software in einer Zielgerätespeichereinheit 400 ab, beispielsweise einem Flashspeicher.

Alternativ stellt die Aktualisierungseinrichtung 106 dem Zielgerät 100 das Datenpaket 302 mit der Vollversion 1.1 zur Aktualisierung der aktuellen Software bereit, etwa wenn die Aktualisierung mittels Delta-Installer fehlschlägt.

Drittens wird etwa im Fall einer fehlerhaften Aktualisierung die Software des Zielgeräts 100 auf eine frühere Version zurückgesetzt, was auch als Rollback bezeichnet wird. Hierzu stellt die Aktualisierungseinrichtung 106 dem Zielgerät 100 beispielsweise die Kopie 300 der Version 1.0 bereit. Fig. 5 zeigt ein Ablaufdiagramm eines Verfahrens 500 zum Aktualisieren von Software gemäß einem Ausführungsbeispiel. Das Verfahren 500 kann beispielsweise mittels einer Aktualisierungseinrichtung, wie sie vorangehend anhand der Figuren 1 bis 4 beschrieben ist, ausgeführt werden. Dabei wird zunächst in einem Schritt 510 die Unterscheidungsinformation oder, je nach Anzahl der zu aktualisierenden Zielgeräte, mehrere je einem Zielgerät zugeordnete Unterscheidungsinformationen über die erste Schnittstelle zur beispielsweise fahrzeugexternen Datenverarbeitungseinrichtung empfangen. In einem zweiten Schritt 520 werden die Unterscheidungsinformationen je mit einer in der Aktualisierungseinrichtung gespeicherten Kopie einer auf den jeweiligen Zielgeräten vorhandenen aktuellen Softwareversion kombiniert. Die

resultierenden Datenpakete repräsentieren dabei beispielsweise jeweils eine Vollversion der zu installierenden neuen Software je Zielgerät. Schließlich erfolgt in einem dritten Schritt 530 je nach Ausführungsbeispiel die Ausgabe des entsprechenden Datenpakets oder aber der entsprechenden

Unterscheidungsinformationen über die zweite Schnittstelle zu den Zielgeräten. Verfügt das zu aktualisierende Zielgerät beispielsweise über einen geeigneten Delta- Installer, so kann die Aktualisierung auf die neue Softwareversion besonders ressourcenschonend allein mittels der an das Zielgerät übertragenen Unterscheidungsinformation und der aktuellen Version auf dem Zielgerät stattfinden.

Fig. 6 zeigt ein Ablaufdiagramm eines Verfahrens 600 zum Verarbeiten eines Datenpakets und/oder einer Unterscheidungsinformation gemäß einem

Ausführungsbeispiel. Das Verfahren 600 kann beispielsweise unter Verwendung eines der Zielgeräte, wie sie vorangehend anhand der Figuren 1 bis 5 beschrieben sind, ausgeführt werden. Dabei wird in einem ersten Schritt 610 je nach Ausführungsbeispiel das entsprechende Datenpaket oder aber die entsprechende Unterscheidungsinformation über die zweite Schnittstelle, etwa einen CAN-Bus, empfangen. In einem zweiten Schritt 620 erfolgt die

Aktualisierung der auf dem betreffenden Zielgerät vorhandenen aktuellen Software unter Verwendung des Datenpakets, das beispielsweise eine

Vollversion der zu installierenden neuen Software repräsentiert, bzw. unter Verwendung der Unterscheidungsinformation, sofern das Zielgerät zur

Durchführung eines Delta-Verfahrens ausgebildet ist. Die Unterscheidungsinformation repräsentiert im Gegensatz zum Datenpaket lediglich die Unterschiede zwischen der aktuellen und der neuen

Softwareversion.

Nachfolgend werden verschiedene Ausführungsbeispiele des hier vorgestellten Ansatzes nochmals mit anderen Worten beschrieben.

Mittels des in Fig. 1 dargestellten Aktualisierungsprozesses soll die Software innerhalb eines Gesamtsystems, etwa eines Fahrzeugs, durch ein Software- Update auf eine aktuelle Version gebracht werden. Dabei ist es unerheblich, ob das Update in einer Werkstatt oder drahtlos im Feld stattfindet. Jede Zieleinheit im Fahrzeug, in Fig. 1 die in diesem Beispiel drei Zielgeräte 100, 102, 104, besitzt hierzu je einen Software-Updater 128 mit Vollupdate- Funktionalität und gegebenenfalls einen Delta-Installer 130. Im Unterschied zu Software-Updatern mit Delta-Installer empfangen Software-Updater ohne Delta-Installer keine Delta- Datei, sondern eine Vollversion zur Software-Aktualisierung.

Zusätzlich zu den standardmäßig im Fahrzeug befindlichen Modulen weist das Fahrzeug einen zentralen Delta-Installer auf. Dieser zentrale Delta-Installer, vorangehend Installationseinheit 120 genannt, ist entweder Teil einer bereits bestehenden Komponente, etwa eines zentralen Gateways oder eines Over-the- Air-Masters, oder ist als eigenständige Einheit realisiert. Bei einer Erweiterung einer bestehenden Zentralkomponente ist beispielsweise die Installationseinheit 120 oder die Zentralkomponente der Update-Master.

Die Installationseinheit 120 hat über die Speichereinheit 122 direkten Zugriff auf Backups sämtlicher Software im System, die durch dieses Verfahren aktualisiert werden sollen. Insbesondere sollten Versionen der aktuell genutzten Software aller Komponenten als Vollversionen vorliegen und in einer entsprechend großen persistenten Speichereinheit 122 hinterlegt sein. Diese Software- Backups werden beispielsweise schon bei der Produktion einmalig geflasht oder sogar vorgeflasht.

Die Installationseinheit 120 nimmt die Delta-Update-Datei jeder einzelnen Zieleinheit entgegen, sucht das entsprechende Backup in der Speichereinheit 122 und wendet diese Kombination mittels Delta- Installer in der Speichereinheit 122 an, wie dies schematisch in Fig. 2 dargestellt ist. Die Installationseinheit 120 prüft jetzt die berechnete neue Software auf Korrektheit und speichert diese lokal als neue Backup-Version 302 ab. Somit verfügt die Aktualisierungseinrichtung 106 über die Vollversion der aktuellen Software einer jeden Zieleinheit, die Vollversion der neuen Software einer jeden Zieleinheit und über die jeweilige Delta-Update-Datei einer jeden Zieleinheit. Dies ist aus den Figuren 3 und 4 ersichtlich.

Nach erfolgreicher Berechnung und Prüfung aller voneinander abhängigen Versionen wird das Gesamt- oder Teilsystem in den Update-Modus versetzt. Dabei wird den einzelnen Software-Updatern der Zieleinheiten je nach deren Ausstattung die zuvor empfangene Delta-Update-Datei oder die Vollversion der neuen Software als Update-Paket angeboten. Die Software-Updater der

Zieleinheiten wenden nun beispielsweise ebenfalls das Delta-Update-Verfahren an und bestätigen der Installationseinheit 120 das jeweilige Ergebnis.

Im Falle eines Fehlers, was aufgrund der Vorprüfung eher selten Vorkommen sollte, sendet die Installationseinheit 120 die zuvor selbst berechnete neue Vollversion in Form des Datenpakets 302 als Vollupdate komprimiert oder unkomprimiert an die betreffende Zieleinheit, wie es in Fig. 4 gezeigt ist. Im Falle eines Rollback auf die alte Version wird beispielsweise die alte Backup-Version in Form der Kopie 300 als Vollupdate übermittelt. Nach erfolgreichem Update wird in der Installationseinheit 120 die neue Version 302 der Software als aktuell gültige Version vermerkt, sodass diese als Referenz für weitere Updates nutzbar ist.

Wann und ob alte Versionen in der Installationseinheit 120 gelöscht werden, hängt unter anderem von der Größe der Speichereinheit 122 ab. Wichtig ist, dass das Backup der aktuellen Software einer zu aktualisierenden Komponente nicht gelöscht wird.

Bedingung für die Aktualisierung mittels Delta-Verfahren ist ferner, dass der Delta-Installer in der Installationseinheit 120 und der Delta-Installer in der zu aktualisierenden Zieleinheit kompatibel sind. Bei einem direkten Update, etwa über den Fahrzeugbus, sollte die

Installationseinheit 120 zusätzlich aktualisiert werden, damit die Versionen identisch bleiben. Ansonsten wäre ein späteres Over-the-Air-Update im Feld nur per Vollupdate möglich.

Gemäß einem Ausführungsbeispiel liegt die Kopie 300 der jeweils aktuellen Software nicht dauerhaft in der Speichereinheit 122 vor, sondern wird erst bei Bedarf von der betreffenden Zieleinheit geladen. Somit kann ein initales Flashen der Speichereinheit 122 entfallen.

Um die Gesamtzeit der Aktualisierung weiter zu reduzieren, ist es beispielsweise auch möglich, die Unterscheidungsinformation 110 direkt, d. h. ohne vorherige Überprüfung oder sonstige Zwischenschritte, an die Zieleinheit weiterzuleiten.

Gemäß einem weiteren Ausführungsbeispiel umfasst die Installationseinheit 120 zusätzlich einen Delta-Generator, etwa um eine Rollback-Datei, welche durch die Pakete 302 und 300 berechnet wird, ebenfalls als Delta-Datei übertragen zu können.

Fig. 7 zeigt eine schematische Darstellung eines Fahrzeugs 700 gemäß einem Ausführungsbeispiel. Das Fahrzeug 700, beispielsweise ein Straßenfahrzeug zur Personenbeförderung, weist ein Zielgerät 100 auf. Bei dem Zielgerät 100 handelt es sich beispielweise um ein Motorsteuergerät oder ein Airbagsteuergerät mit einer Funktionalität, wie sie in bekannten Steuergeräten um gesetzt wird. Das Zielgerät 100 weist einen wiederbeschreibbaren Speicher zum Speichern einer Software zum Betreiben des Zielgeräts 100 auf. Um die Software zu

aktualisieren, ist in dem Fahrzeug 700 eine Aktualisierungseinrichtung 106 integriert, die ausgebildet ist, um ein Datenpaket 302 und zusätzlich oder alternativ eine Unterscheidungsinformation 110 umfassendes Signal an das Zielgerät 100 zu übermitteln. Das Datenpaket umfasst gemäß einem

Ausführungsbeispiel eine aktualisierte Version der Software zur Abspeicherung in dem Speicher des Zielgeräts 100. Die Unterscheidungsinformation 110 umfasst gemäß einem Ausführungsbeispiel Daten, die einen Unterschied zwischen der im Zielgerät 100 gespeicherten Software und der aktualisierten Version der Software definieren. Die Datenpaket 302 und die

Unterscheidungsinformation 110 werden gemäß einem Ausführungsbeispiel in Form elektrischer Signale übertragen. Die Aktualisierungseinrichtung 106 ist ausgebildet, um ein Signal, das die Unterscheidungsinformation 110 umfasst, von einer fahrzeugextern angeordneten Datenverarbeitungseinrichtung 118 zu empfangen und zum Generieren des Datenpakets 302 zu verwenden. Dazu weist die Datenverarbeitungseinrichtung 118 eine Kombiniereinrichtung auf, die ausgebildet ist, um die Unterscheidungsinformation 110 mit einer in einem Speicher der Aktualisierungseinrichtung 106 gespeicherten Kopie 300 der aktuell in dem Zielgerät 100 gespeicherten Software zu kombinieren. Optional weist die

Datenverarbeitungseinrichtung 118 eine Überprüfungseinrichtung auf, die ausgebildet ist, um das Datenpaket 302 auf Fehler zu überprüfen. Gemäß einem Ausführungsbeispiel ist die Aktualisierungseinrichtung 106 ausgebildet, um abhängig von einem Ergebnis der in der Überprüfungseinrichtung durchgeführten Überprüfung entweder das Datenpaket 302 oder die

Unterscheidungsinformation 110 an das Zielgerät 100 zu übermitteln.

Umfasst ein Ausführungsbeispiel eine„und/oder“-Verknüpfung zwischen einem ersten Merkmal und einem zweiten Merkmal, so ist dies so zu lesen, dass das Ausführungsbeispiel gemäß einer Ausführungsform sowohl das erste Merkmal als auch das zweite Merkmal und gemäß einer weiteren Ausführungsform entweder nur das erste Merkmal oder nur das zweite Merkmal aufweist.