Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR UPDATING VEHICLE SOFTWARE
Document Type and Number:
WIPO Patent Application WO/2019/096840
Kind Code:
A1
Abstract:
The invention relates to a method for updating software stored in a control device of a vehicle, in which a software package is transferred to the control device and the software that is stored in said control device is at least partly updated using the transferred software package.

Inventors:
NAFFATI MALEK (DE)
Application Number:
PCT/EP2018/081215
Publication Date:
May 23, 2019
Filing Date:
November 14, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
AUDI AG (DE)
International Classes:
G06F8/65; H04L29/08
Foreign References:
KR20150072809A2015-06-30
US20160041820A12016-02-11
US20140282470A12014-09-18
US20170195459A12017-07-06
US20160196132A12016-07-07
DE102012001047A12013-07-25
DE102016210511A12016-12-15
DE102012001048A12012-08-16
Download PDF:
Claims:
PATENTANSPRÜCHE:

1. Verfahren zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs (10) gespeicherten Software, bei dem ein Softwarepaket (20) in das Steuergerät übertragen wird, die in dem Steuergerät gespeicherte Software mittels des übertragenen Softwarepakets (20) mindestens teilweise aktualisiert wird, und bei dem mindestens ein Paketsegment (25) des Softwarepakets (20) von einem Steuergerät eines von dem Fahrzeug (10) verschiedenen weiteren Fahrzeugs (11 ) übertragen wird, wenn das Fahrzeug (10) in einer Umgebung des weiteren Fahrzeugs (11 ) angeordnet ist.

2. Verfahren nach Anspruch 1 , bei dem ein Paketsegment (25) des Softwarepakets (20) von einem Replikationsserver (30) übertragen wird, wenn das Fahrzeug (10) in einer Umgebung des

Replikationsservers (30) angeordnet ist.

3. Verfahren nach einem der Ansprüche 1 oder 2, bei dem ein

Softwarepaket (20) mit einer hohen Priorität und/oder einer allgemeinen Anwendbarkeit in einer Vielzahl von Fahrzeugen (10, 11 ) übertragen wird.

4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem das

Softwarepaket (20) oder ein Paketsegment (25) des Softwarepakets (20) von einem Spiegelserver (40, 41 ) übertragen wird.

5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem das

Softwarepaket (20) von einem Backendserver (60) auf einen Spiegelserver (40, 41 ) übertragen wird und/oder von einem Spiegelserver (40) auf einen von dem Spiegelserver (40) verschiedenen weiteren Spiegelserver (41 ) übertragen wird und/oder von einem Spiegelserver (40, 41 ) auf einen Replikationsserver (30) übertragen wird. Verfahren nach einem der Ansprüche 1 bis 5, bei dem das Softwarepaket (20) mittels eines bestimmten in dem Verfahren einheitlichen Übertragungsprotokolls, welches insbesondere für eine Lastverteilung ausgebildet ist, übertragen wird.

Verfahren nach einem der Ansprüche 1 bis 6, bei dem zum Übertragen des Softwarepakets (20)

eine Paketliste (26) mit mindestens einem bereitgestellten Softwarepaket (20) angefordert und übertragen wird,

die Paketliste (26) insbesondere gefiltert wird, falls sie von dem Fahrzeug (10) angefordert wird,

jedes in der Paketliste (26) fehlende gespeicherte Softwarepaket (20) gelöscht wird, falls die Paketliste (26) von einem Backendserver (60) oder einem Spiegelserver (40, 41 ) übertragen wird,

ein in der Paketliste (26) enthaltenes Softwarepaket (20) angefordert und eine Hashliste (24) und eine Quellenliste (27) für jedes in der Hashliste (24) referenzierte Paketsegment (25) des Softwarepakets (20) übertragen wird,

eine Quelle aus der Quellenliste (27) für jedes Paketsegment (25) ausgewählt und das Paketsegment (25) von der ausgewählten Quelle übertragen wird,

die Quellenliste (27) von dem Backendserver (60) jeweils entsprechend ergänzt wird, falls das Paketsegment (25) von dem Backendserver (60) oder von einem Spiegelserver (40, 41 ) übertragen wird.

System zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs (10) gespeicherten Software, welches ein Fahrzeug (10) mit einem Steuergerät, in dem die Software gespeichert ist, umfasst und konfiguriert ist, ein Softwarepaket (20) in das Steuergerät zu übertragen, um die in dem Steuergerät gespeicherte Software mittels des übertragenen Softwarepakets (20) mindestens teilweise zu aktualisieren, und welches ein von dem Fahrzeug (10) verschiedenes weiteres Fahrzeug (11 ) umfasst und konfiguriert ist, mindestens ein Paketsegment (25) des Softwarepakets (20) von einem Steuergerät des weiteren Fahrzeugs (11 ) zu übertragen, wenn das Fahrzeug (10) in einer Umgebung des weiteren Fahrzeugs (11 ) angeordnet ist.

9. System nach Anspruch 8, welches einen Replikationsserver (30), welcher insbesondere an einer Tankstelle oder einer Ladestation (33) für das Fahrzeug (10), in einem Parkhaus (32), in einem Supermarkt (31 ) oder in einem Einkaufszentrum angeordnet ist, umfasst und konfiguriert ist, ein Paketsegment (25) des Softwarepakets (20) von dem Replikationsserver (30) zu übertragen, wenn das Fahrzeug (10) in einer Umgebung des Replikationsservers (30) angeordnet ist und/oder welches einen Spiegelserver (40, 41 ), welcher einem Kontinent zugeordnet und in einem Gebiet des Kontinents angeordnet ist, umfasst und konfiguriert ist, ein Paketsegment (25) des Softwarepakets (20) von dem Spiegelserver (40, 41 ) zu übertragen, wenn das Fahrzeug (10) in dem Gebiet des Kontinents angeordnet ist, und/oder welches einen Backendserver (60) umfasst und konfiguriert ist, ein Paketsegment (25) des Softwarepakets (20) von dem Backendserver (60) auf einen Spiegelserver (40, 41 ) zu übertragen. 10. System nach einem der Ansprüche 8 oder 9, bei dem das

Softwarepaket (20) mehrere Metadaten (21 ), eine Prüfsumme (22), eine Authentisierungsinformation (23), mehrere Paketsegmente (25), welche jeweils Daten und/oder mindestens ein Anwendungsprogramm umfassen, und eine die mehreren Paketsegmente (25) referenzierende Hashliste (24) aufweist.

Description:
Verfahren und System zum Aktualisieren einer Fahrzeugsoftware

BESCHREIBUNG: Die vorliegende Erfindung betrifft ein Verfahren zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs gespeicherten Software, bei dem ein Softwarepaket in das Steuergerät (Electronic Control Device, ECU) übertragen wird und die in dem Steuergerät gespeicherte Software mittels des übertragenen Softwarepakets mindestens teilweise aktualisiert wird.

Moderne Fahrzeuge weisen eine Vielzahl von Sicherheitssystemen und Komfortsystemen auf, welche jeweils mindestens eine in dem Fahrzeug angeordnete Vorrichtung und ein zu der mindestens einen Vorrichtung korrespondierendes Betriebssystem (Operating System, OS) umfassen. Das Betriebssystem ist in Form einer Software vorgesehen und bildet daher eine Software im Sinne der Erfindung. Die Software weist gewöhnlich mindestens ein Anwendungsprogramm sowie von dem Anwendungsprogramm benötigte Daten auf, ist in einem Steuergerät des Fahrzeugs gespeichert und wird von diesem ausgeführt.

Mit einem zunehmenden Umfang, einer wachsenden Komplexität und immer kürzeren Entwicklungszyklen der Funktionssysteme und Komfortsysteme erhöht sich auch der Aktualisierungsbedarf für die in dem Steuergerät gespeicherte Software. Gerade mit Blick auf eine künftige weitgehende oder vollständige Selbstfahrfunktion (autonomes Fahren) von Fahrzeugen kommt einer zuverlässigen zeitnahen Aktualisierung der Software eine besondere Bedeutung zu. Üblicherweise wird die Software eines Fahrzeugs mittels eines sogenannten Prüfstands aktualisiert, wenn sich das Fahrzeug beispielsweise zu einer Inspektion in einer Werkstatt eines Vertragshändlers eines Fierstellers des Fahrzeugs befindet. Dabei wird in der Regel die in dem Steuergerät des Fahrzeugs gespeicherte Software vollständig durch ein Speicherabbild (image) einer aktualisierten Version der Software ersetzt, was mit einem großen Zeitbedarf und hohen Kosten einhergeht. Folglich gehen Überlegungen dahin, Aktualisierungsverfahren für eine Software eines Fahrzeugs ähnlich wie für Computer oder Smartphones inkrementeil oder differentiell (incremental or differential update) auszugestalten, um das bei einem Aktualisieren jeweils zu übertragende Datenvolumen zu verringern.

Allerdings meiden manche Fahrzeughalter die Werkstätten von Vertragshändlern, so dass deren Fahrzeuge von einer Aktualisierung der in ihren Steuergeräten gespeicherten Software grundsätzlich abgeschnitten sind. Eine veraltete Software ist aber gerade bei Fahrzeugen mit einer Selbstfahrfunktion aus Gründen der Sicherheit nicht hinnehmbar. Zum Vermeiden dieses Problems können drahtlose Kommunikations- einrichtungen, beispielsweise Mobilfunkschnittstellen in den Fahrzeugen genutzt werden, um die in den Steuergeräten gespeicherte Software über das mobile Internet zu aktualisieren.

So offenbart die DE 10 2012 001 047 A1 ein Verfahren zum Aktualisieren eines Softwarepakets, welches in einem Steuergerät eines Fahrzeugs gespeichert ist. Bei dem Verfahren wird ein aktualisiertes Softwarepaket in ein aktualisiertes Basispaket, welches Grundfunktionen betreffen kann, und mindestens ein aktualisiertes Zusatzpaket, welches optionale Funktionen betreffen kann, geteilt. Das Basispaket und das mindestens eine Zusatzpaket werden über separate drahtlose Verbindungen in das Steuergerät übertragen. Das aktualisierte Basispaket ist von dem Steuergerät ausführbar, bevor das mindestens eine aktualisierte Zusatzpaket vollständig übertragen ist. Auf diese Weise lassen sich jeweils begrenzte Bandbreiten der drahtlosen Verbindungen optimal nutzen. Demgegenüber ist in der DE 10 2016 210 511 A1 ein modulares Softwaresystem zum Aktualisieren eines in einer Speichereinheit eines Steuergeräts eines Fahrzeugs gespeicherten Speicherabbilds beschrieben. Mittels des modularen Softwaresystems wird von einem Hersteller des Fahrzeugs ein differentielles Speicherabbild für das Steuergerät des Fahrzeugs generiert und zum Herunterladen bereitgestellt. Das differentielle Speicherabbild umfasst einen oder mehrere aktualisierte Bereiche des gespeicherten Speicherabbilds. Das gespeicherte Speicherabbild wird aktualisiert, indem ein oder mehrere Bereiche des gespeicherten Speicherabbilds durch jeweils einen korrespondierenden aktualisierten Bereich ersetzt werden.

Diese und ähnliche Verfahren beruhen also jeweils auf einer Nutzung eines Mobilfunknetzes. In einem städtischen Gebiet mit sehr vielen Fahrzeugen können Basisstationen des Mobilfunknetzes oder über das mobile Internet zugängliche stationäre Serversysteme aber infolge eines hohen Aufkommens von Aktualisierungen überlastet sein, insbesondere wenn gleichzeitig die Software vieler Fahrzeuge aktualisiert wird. Zudem kann die Fahrt eines Fahrzeugs in einem städtischen Gebiet zu kurz sein, um die in dem Steuergerät gespeicherte Software vollständig zu aktualisieren. Außerhalb von städtischen Gebieten existiert überdies oftmals kein ausreichendes Mobilfunknetz, so dass die Software dortiger Fahrzeuge nicht zeitnah aktualisiert werden kann.

Zur Meldung solcher Schwierigkeiten offenbart die DE 10 2012 001 048 A1 ein Verfahren zum Aktualisieren eines Softwarepakets, welches in einem mobilen Endgerät, insbesondere einem Steuergerät eines Fahrzeugs gespeichert ist. Bei dem Verfahren wird ein aktualisiertes Softwarepaket als ein endloser Datenstrom kodiert und der kodierte Datenstrom zu einer Sendeeinrichtung übertragen, welche den kodierten Datenstrom fortlaufend sendet. Das mobile Endgerät empfängt den kodierten Datenstrom und dekodiert diesen, um das aktualisierte Softwarepaket zu erhalten. Auf diese Weise kann ein Softwarepaket in einer Vielzahl von mobilen Endgeräten gleichzeitig aktualisiert werden. Zwar kann auf diese Weise die Software vieler Fahrzeuge einer Modellreihe eines Herstellers gleichzeitig aktualisiert werden. Jedoch ist die Installation und der Betrieb eines solchen Systems für Fahrzeuge vieler Modellreihen und Hersteller sehr aufwändig.

Der Erfindung liegt daher die Aufgabe zugrunde, ein verbessertes Verfahren zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs gespeicherten Software vorzuschlagen, welches die beschriebenen Nachteile vermeidet. Darüber hinaus ist es Aufgabe der Erfindung, ein System zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs gespeicherten Software zu schaffen.

Ein Gegenstand der vorliegenden Erfindung ist ein Verfahren zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs gespeicherten Software, bei dem ein Softwarepaket in das Steuergerät übertragen wird und die in dem Steuergerät gespeicherte Software mittels des übertragenen Softwarepakets mindestens teilweise aktualisiert wird. Das Softwarepaket wird von einem Hersteller des Fahrzeugs erzeugt und bereitgestellt. Das in das Steuergerät übertragene Softwarepaket wird von dem Steuergerät angewendet, um mindestens Teile der gespeicherten Software zu aktualisieren, d. h. zu ersetzen. Jedes Anwenden des Softwarepakets liegt unabhängig von einem konkreten Ausführungsverfahren im Schutzbereich der Erfindung.

Bei dem erfindungsgemäßen Verfahren wird mindestens ein Paketsegment (data chunk) des Softwarepakets von einem Steuergerät eines von dem Fahrzeug verschiedenen weiteren Fahrzeugs übertragen, wenn das Fahrzeug in einer Umgebung des weiteren Fahrzeugs angeordnet ist. Das Softwarepaket umfasst demnach mehrere Paketsegmente, welche von einem Fahrzeug unmittelbar zu einem anderen Fahrzeug bevorzugt drahtlos übertragen werden. Die Erfindung macht sich den Umstand zunutze, dass jedes Fahrzeug naturgemäß bewegt wird und dabei einem weiteren Fahrzeug genügend nahekommt, um eine unmittelbare drahtlose Verbindung zwischen den beiden Fahrzeugen (car-to-car) herzustellen. Weiterhin wird ausgenutzt, dass das weitere Fahrzeug gewöhnlich bereits eine in dem Steuergerät gespeicherte vollständige Software und eine Kommunikationseinrichtung zum Flerstellen einer drahtlosen Verbindung aufweist. Es kann also als Replikator der Software wirken. Auf diese Weise wird eine dezentrale Verteilung des Softwarepakets erreicht, wodurch ein Mobilfunknetz und ein über das Mobilfunknetz zugängliches Serversystem entlastet ist.

In einer bevorzugten Ausführungsform wird ein Paketsegment des Softwarepakets von einem Replikationsserver übertragen, wenn das Fahrzeug in einer Umgebung des Replikationsservers angeordnet ist. Replikationsserver bilden ein weiteres Mittel für eine dezentrale Verteilung des Softwarepakets. Sie sind bevorzugt an Orten installiert, in deren Umgebung sich gewöhnlich viele Fahrzeuge befinden. Das Fahrzeug kann zu dem Replikationsserver eine drahtlose Verbindung (ca r-to-i nf rastru ctu re) hersteilen, wenn es sich in der Umgebung des Replikationsservers befindet.

In einer weiteren Ausführungsform wird ein Softwarepaket mit einer hohen Priorität und/oder einer allgemeinen Anwendbarkeit in einer Vielzahl von Fahrzeugen übertragen. Softwarepakete, welche die Sicherheit des Fahrzeugs oder den Schutz der Software betreffen, genießen bei dem Aktualisieren eine hohe Priorität. Demgegenüber sind beispielsweise Softwarepakete mit hochpräzisen digitalen Karten in vielen Fahrzeugen auch unterschiedlicher Modellreihen eines Fierstellers anwendbar.

In anderen Ausführungsformen wird das Softwarepaket oder ein Paketsegment des Softwarepakets von einem Spiegelserver (mirror) übertragen. Auf dem Spiegelserver sind sämtliche, insbesondere solche mit niedriger Priorität oder ausschließlich für das Fahrzeug anwendbare Softwarepakete bereitgestellt. Das Fahrzeug kann zu dem Spiegelserver über ein Mobilnetz eine Mobilfunkverbindung (car-to-internet) aufbauen, wenn es sich in einer Mobilfunkzelle eines Mobilnetzes befindet. In einer weiteren Ausführungsform wird das Softwarepaket von einem Backendserver (distributor) auf einen Spiegelserver übertragen und/oder von einem Spiegelserver auf einen von dem Spiegelserver verschiedenen weiteren Spiegelserver übertragen und/oder von einem Spiegelserver auf einen Replikationsserver übertragen. Der Backendserver kann von einem Hersteller des Fahrzeugs bereitgestellt sein. Auf dem Backendserver sind sämtliche Softwarepakete für das Fahrzeug bereitgestellt. Das Fahrzeug stellt jedoch keine Verbindung zu dem Backendserver her, um ein in dem Steuergerät gespeichertes Softwarepaket zu aktualisieren. Der Backendserver ist ausschließlich konfiguriert, Softwarepakete an einen Spiegelserver zu übertragen.

In einer bevorzugten Ausführungsform wird das Softwarepaket mittels eines bestimmten in dem Verfahren einheitlichen Übertragungsprotokolls, welches insbesondere für eine Lastverteilung ausgebildet ist, übertragen. Durch das einheitliche Übertragungsprotokoll wird sichergestellt, dass das Softwarepaket von einem Spiegelserver, von einem Replikationsserver oder von einem weiteren Fahrzeug auf dieselbe Weise in das Steuergerät des Fahrzeugs übertragen werden kann. Das einheitliche Übertragungsprotokoll ermöglicht einerseits ein Unterbrechen und ein Fortsetzen einer Übertragung. Andererseits unterstützt es ein Übertragen unterschiedlicher Paketsegmente eines Softwarepakets auch von verschiedenen Quellen. Dadurch kann eine Lastverteilung (load balancing) auf die verschiedenen Quellen erreicht werden. Eine Quelle einer Übertragung kann beispielsweise zufällig (random selection) oder umlaufend (round-robin) ausgewählt werden.

In einer weiteren Ausführungsform wird zum Übertragen des Softwarepakets eine Paketliste mit mindestens einem bereitgestellten Softwarepaket angefordert und übertragen,

die Paketliste insbesondere gefiltert, falls sie von dem Fahrzeug angefordert wird,

jedes in der Paketliste fehlende gespeicherte Softwarepaket gelöscht, falls die Paketliste von einem Backendserver oder einem Spiegelserver übertragen wird, ein in der Paketliste enthaltenes Softwarepaket angefordert und eine Hashliste und eine Quellenliste für jedes in der Hashliste referenzierte Paketsegment des Softwarepakets übertragen,

eine Quelle aus der Quellenliste für jedes Paketsegment ausgewählt und das Paketsegment von der ausgewählten Quelle übertragen, die Quellenliste von dem Backendserver jeweils entsprechend ergänzt, falls das Paketsegment von dem Backendserver oder von einem Spiegelserver übertragen wird.

Die von einem Spiegelserver übertragene Paketliste umfasst sämtliche von dem Hersteller des Fahrzeugs auf dem Backendserver bereitgestellten Softwarepakete. Die von einem Replikationsserver oder einem weiteren Fahrzeug übertragene Paketliste umfasst jedes auf dem Replikationsserver bzw. in dem Steuergerät des weiteren Fahrzeugs bereitgestellte Softwarepaket.

Das Filtern der Paketliste dient dem Entfernen solcher Softwarepakete, welche auf das Fahrzeug nicht anwendbar sind. Das Filtern kann auf dem die Quelle bildenden Spiegelserver oder Replikationsserver erfolgen. Dazu muss bei dem Anfordern der Paketliste ein entsprechendes Filterkriterium übermittelt werden. Alternativ kann die Paketliste in dem Steuergerät des Fahrzeugs gefiltert werden. In diesem Fall wird eine vollständige übertragene Paketliste durch nachträgliches Anwenden des Filterkriteriums reduziert.

Da von einem Spiegelserver übertragene Paketlisten vollständig sind, können Softwarepakete, welche in dem Steuergerät gespeichert, aber nicht in einer von einem Spiegelserver übertragenen Paketliste enthalten sind, als obsolet interpretiert und gelöscht werden. Dies gilt nicht für von einem Replikationsserver übertragene Paketlisten, da diese nur Softwarepakete mit hoher Priorität oder allgemeiner Anwendbarkeit enthalten.

Die Quellenliste umfasst jeden Spiegelserver oder Replikationsserver, von dem das Paketsegment bereitgestellt wird und übertragen werden kann, nicht aber den Backendserver. Eine von einem Replikationsserver übertragene Quellenliste enthält ausschließlich den Replikationsserver selbst. Auf diese Weise wird eine Dezentralität des Verfahrens gewährleistet, wodurch die Last für den Backendserver und die Spiegelserver verringert ist. Wenn ein Paketsegment übertragen ist, wird das Steuergerät des Fahrzeugs, der Replikationsserver oder der Spiegelserver dem Backendserver als neue Quelle mitgeteilt und von diesem in die zu dem Paketsegment korrespondierende Quellenliste eingefügt. Entsprechend vergrößert sich mit jeder erfolgreichen Übertragung des Paketsegments die Zahl der nutzbaren das Paketsegment bereitstellenden Quellen.

Gegenstand der Erfindung ist auch ein System zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs gespeicherten Software, welches ein Fahrzeug mit einem Steuergerät, in dem die Software gespeichert ist, umfasst und konfiguriert ist, ein Softwarepaket in das Steuergerät zu übertragen, um die in dem Steuergerät gespeicherte Software mittels des übertragenen Softwarepakets mindestens teilweise zu aktualisieren.

Das erfindungsgemäße System umfasst ein von dem Fahrzeug verschiedenes weiteres Fahrzeug und ist konfiguriert, mindestens ein Paketsegment des Softwarepakets von einem Steuergerät des weiteren Fahrzeugs zu übertragen, wenn das Fahrzeug in einer Umgebung des weiteren Fahrzeugs angeordnet ist. Wenn ein Fahrzeug einem weiteren Fahrzeug genügend nahekommt, kann eine unmittelbare drahtlose Verbindung zwischen den beiden Fahrzeugen (car-to-car) hergestellt werden. Da das weitere Fahrzeug gewöhnlich eine in dem Steuergerät gespeicherte vollständige Software aufweist, können ein oder mehrere Paketsegmente von dem weiteren Fahrzeug in das Steuergerät des Fahrzeugs übertragen werden. Auf diese Weise wird ein dezentrales Verteilen des Softwarepakets erreicht, wodurch ein Mobilfunknetz und ein über das Mobilfunknetz zugängliches Serversystem entlastet ist.

In einer bevorzugten Ausführungsform umfasst das System einen Replikationsserver, welcher insbesondere an einer Tankstelle oder einer Ladestation für das Fahrzeug, in einem Parkhaus, in einem Supermarkt oder in einem Einkaufszentrum angeordnet ist, und ist konfiguriert, ein Paketsegment des Softwarepakets von dem Replikationsserver zu übertragen, wenn das Fahrzeug in einer Umgebung des Replikationsservers angeordnet ist. Ein Ort, an dem eine Dienstleistung erbracht wird, wird mit einem Fahrzeug häufig angefahren. Das Fahrzeug wird gewöhnlich für die Dauer der Inanspruchnahme der Dienstleistung in der Umgebung des Orts abgestellt. Während dieser Zeit kann seine Software durch einen am Ort der Dienstleistung angeordneten Replikationsserver aktualisiert werden.

In weiteren Ausführungsformen umfasst das System einen Spiegelserver, welcher einem Kontinent zugeordnet und in einem Gebiet des Kontinents angeordnet ist, und ist konfiguriert, ein Paketsegment des Softwarepakets von dem Spiegelserver zu übertragen, wenn das Fahrzeug in dem Gebiet des Kontinents angeordnet ist. Wenn sich das Fahrzeug in einer Mobilfunkzelle eines in dem Gebiet des Kontinents vorgesehenen Mobilfunknetzes befindet, kann seine Software über das mobile Internet von dem Spiegelserver aktualisiert werden. Alternativ oder zusätzlich kann ein Spiegelserver auch einem einzigen Staat oder mehreren Staaten eines Kontinents zugeordnet und in einem Gebiet des einzigen Staats oder der mehreren Staaten angeordnet sein, wodurch eine Last der Spiegelserver verringert und eine Lastverteilung auf die Spiegelserver erleichtert wird.

In einer Ausführungsform umfasst das System einen Backendserver und ist konfiguriert, ein Paketsegment des Softwarepakets von dem Backendserver auf einen Spiegelserver zu übertragen. Der Backendserver kann von einem Hersteller des Fahrzeugs bereitgestellt sein und stellt sämtliche Softwarepakete für das Fahrzeug bereit. Der Backendserver ist aber nicht konfiguriert, Softwarepakete an das Fahrzeug zu übertragen.

In noch einer Ausführungsform weist das Softwarepaket mehrere Metadaten, eine Prüfsumme (checksum), eine Authentisierungsinformation (signature), mehrere Paketsegmente, welche jeweils Daten und/oder mindestens ein Anwendungsprogramm umfassen, und eine die mehreren Paketsegmente referenzierende Hashliste auf. Die Metadaten können beispielsweise Informationen darüber enthalten, für welches Fahrzeug das Softwarepaket anwendbar ist oder welche Priorität es besitzt. Zudem können die Metadaten eine Vorhaltedauer für das Softwarepaket enthalten. Die Vorhaltedauer bestimmt, wie lange das Softwarepaket nach dem Übertragen in einem Cache-Speicher des Steuergeräts des Fahrzeugs vorgehalten wird, um es zu weiteren Fahrzeugen zu übertragen. Mittels der Prüfsumme lässt sich die Integrität des Softwarepakets einfach feststellen. Die Authentisierungsinformation weist das Softwarepaket als von einem bestimmten Fiersteller stammend aus. Die Unterteilung des Softwarepakets in mehrere Paketsegmente ermöglicht eine Nutzung mehrerer unterschiedlicher Quellen zum Übertragen des Softwarepakets.

Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird unter Bezugnahme auf die Zeichnungen weiter beschrieben. Es zeigt:

Figur 1 in einer schematischen Darstellung eine Ausführungsform des

erfindungsgemäßen Systems zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs gespeicherten Software;

Figur 2 in einer schematischen Darstellung eine Detailansicht eines in Figur

1 gezeigten Softwarepakets;

Figur 3 in einer schematischen Darstellung ein erstes Teilsystem des in

Figur 1 gezeigten Systems;

Figur 4 in einem Ablaufdiagramm einen zu dem in Figur 3 gezeigten ersten

Teilsystem korrespond ierenden ersten Verfahrensteil einer Ausführungsform des erfindungsgemäßen Verfahrens;

Figur 5 in einer schematischen Darstellung ein zweites Teilsystem des in

Figur 1 gezeigten Systems; Figur 6 in einem Ablaufdiagramm einen zu dem in Figur 5 gezeigten zweiten Teilsystem korrespondierenden zweiten Verfahrensteil einer Ausführungsform des erfindungsgemäßen Verfahrens; Figur 7 in einer schematischen Darstellung ein drittes Teilsystem des in

Figur 1 gezeigten Systems;

Figur 8 in einem Ablaufdiagramm einen zu dem in Figur 7 gezeigten dritten

Teilsystem korrespond ierenden dritten Verfahrensteil einer

Ausführungsform des erfindungsgemäßen Verfahrens.

Figur 1 zeigt in einer schematischen Darstellung eine Ausführungsform des erfindungsgemäßen Systems zum Aktualisieren einer Software. Das System umfasst mehrere Fahrzeuge 10 mit einem Steuergerät (nicht dargestellt), in dem die Software gespeichert ist. Ferner umfasst das System mehrere von dem Fahrzeug 10 verschiedene weitere Fahrzeuge 11.

Das System umfasst weiterhin mehrere Replikationsserver 30, welche in einem Supermarkt 31 oder einem Parkhaus 32 angeordnet sind, mehrere Spiegelserver 40, 41 , welche jeweils einem Staat 42 zugeordnet und in einem Gebiet des Staats 42 angeordnet sind, und einen Backendserver 60, welcher von einem Fiersteller 61 bereitgestellt ist. Das System umfasst darüber hinaus mehrere nicht dargestellte Spiegelserver, welche jeweils einem Kontinent zugeordnet sind.

Das System ist konfiguriert, ein Softwarepaket 20 in die Steuergeräte der Fahrzeuge 10 zu übertragen, um die in den Steuergeräten gespeicherte Software mittels des übertragenen Softwarepakets 20 mindestens teilweise zu aktualisieren. Konfigurationsgemäß können dazu Paketsegmente 25 des Softwarepakets 20 von den Steuergeräten der weiteren Fahrzeuge 11 in die Steuergeräte der Fahrzeuge 10 übertragen werden, wenn ein Fahrzeug 10 in einer Umgebung eines weiteren Fahrzeugs 11 angeordnet ist. Ferner ist das System konfiguriert, Paketsegmente 25 des Softwarepakets 20 von den Replikationsservern 30 in die Steuergeräte der Fahrzeuge 10, 11 zu übertragen, wenn ein Fahrzeug 10, 11 in einer Umgebung eines Replikationsservers 30 angeordnet ist, Paketsegmente 25 des Softwarepakets 20 von den Spiegelservern 40, 41 in die Steuergeräte der Fahrzeuge 11 zu übertragen, wenn ein Fahrzeug 11 in dem Gebiet des Kontinents oder des Staats 42 des Spiegelservers 40, 41 angeordnet ist, und Paketsegmente 25 des Softwarepakets 20 von dem Backendserver 60 auf die Spiegelserver 40, 41 zu übertragen.

Bei dem erfindungsgemäßen Verfahren zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs 10 gespeicherten Software wird das Softwarepaket 20 zunächst von dem Backendserver 60 auf die Spiegelserver 40, 41 übertragen. Ebenso kann das Softwarepaket 20 von einem Spiegelserver 40 auf einen von dem Spiegelserver 40 verschiedenen weiteren Spiegelserver 41 , d. h. zwischen den Spiegelservern 40, 41 übertragen werden.

Wenn das Softwarepaket 20 eine hohe Priorität und/oder eine allgemeine Anwendbarkeit in einer Vielzahl von Fahrzeugen 10, 11 aufweist, wird es von den Spiegelservern 40, 41 auf die Replikationsserver 30 übertragen. Daneben wird das Softwarepaket 20 oder ein Paketsegment 25 des Softwarepakets 20 von den Spiegelservern 40, 41 unmittelbar in die Steuergeräte der Fahrzeuge 11 übertragen (direct distribution).

In einem weiteren Schritt wird ein Paketsegment 25 des Softwarepakets 20 von den Replikationsservern 30 in die Steuergeräte der Fahrzeuge 10 übertragen, wenn ein Fahrzeug 10 in einer Umgebung eines Replikationsservers 30 angeordnet ist, oder von Steuergeräten von von den Fahrzeugen 10 verschiedenen weiteren Fahrzeugen 11 in die Steuergeräte der Fahrzeuge 10 übertragen, wenn ein Fahrzeug 10 in einer Umgebung eines weiteren Fahrzeugs 1 1 angeordnet ist (indirect distribution). Jede Übertragung eines Softwarepakets 20 oder eines Paketsegments 25 eines Softwarepakets erfolgt mittels eines bestimmten in dem gesamten Verfahren einheitlichen Übertragungsprotokolls, welches für eine Lastverteilung bzgl. der jeweils möglichen Quellen ausgebildet ist.

Auf diese Weise wird das Softwarepaket 20 in die Steuergeräte der Fahrzeuge 10 übertragen und wird die in den Steuergeräten gespeicherte Software mittels des übertragenen Softwarepakets 20 aktualisiert.

Figur 2 zeigt in einer schematischen Darstellung eine Detailansicht eines in Figur 1 gezeigten Softwarepakets 20. Das Softwarepaket 20 weist mehrere Metadaten 21 , eine Prüfsumme 22 und eine Authentisierungsinformation 23 auf. Zudem weist das Softwarepaket 20 mehrere Paketsegmente 25, welche jeweils Daten und/oder mindestens ein Anwendungsprogramm umfassen, und eine Flashliste 24 auf, welche die mehreren Paketsegmente 25 referenziert.

Figur 3 zeigt in einer schematischen Darstellung ein erstes Teilsystem des in Figur 1 gezeigten Systems. Das erste Teilsystem umfasst den Backendserver 60 und drei Spiegelserver 40, 41 , welche jeweils unterschiedlichen Staaten 42 zugeordnet und in den Gebieten der jeweiligen Staaten 42 angeordnet sind.

Figur 4 zeigt in einem Ablaufdiagramm einen zu dem in Figur 3 gezeigten ersten Teilsystem korrespondierenden ersten Verfahrensteil einer Ausführungsform des erfindungsgemäßen Verfahrens. Bei dem ersten Verfahrensteil wird zum Übertragen des Softwarepakets 20 von einem Spiegelserver 40, 41 zunächst eine Paketliste 26, welche sämtliche von dem Backendserver 60 bereitgestellten Softwarepakete 20 enthält, angefordert und auf den Spiegelserver 40, 41 übertragen. Dann wird jedes in der Paketliste 26 fehlende, aber auf dem Spiegelserver 40, 41 gespeicherte Softwarepaket 20 gelöscht. In einem nächsten Schritt werden nacheinander aktualisierungsbedürftige in der Paketliste 26 enthaltene Softwarepakete 20 von dem Backendserver 60 angefordert. Auf jede Anforderung wird eine Hashliste 24 und eine Quellenliste 27 für jedes in der Hashliste 24 referenzierte Paketsegment 25 des jeweiligen Softwarepakets 20 übertragen. Die Quellenliste 27 kann jeden Spiegelserver 40, 41 und/oder den Backendserver 60 enthalten. Dann wird für jedes Paketsegment 25 eine Quelle aus der Quellenliste 27 ausgewählt und das Paketsegment 25 von der ausgewählten Quelle übertragen. Anschließend wird die Quellenliste 27 von dem Backendserver 60 entsprechend ergänzt und regelmäßig an die Spiegelserver 40, 41 übertragen.

Figur 5 zeigt in einer schematischen Darstellung ein zweites Teilsystem des in Figur 1 gezeigten Systems. Das zweite Teilsystem umfasst die drei Spiegelserver 40, 41 , welche jeweils unterschiedlichen Staaten 42 zugeordnet und in den Gebieten der jeweiligen Staaten 42 angeordnet sind, und ein Fahrzeug 11.

Figur 6 zeigt in einem Ablaufdiagramm einen zu dem in Figur 5 gezeigten zweiten Teilsystem korrespondierenden zweiten Verfahrensteil einer Ausführungsform des erfindungsgemäßen Verfahrens. Der zweite Verfahrensteil (direct distribution) stimmt überwiegend mit dem zu Figur 4 beschriebenen Verfahrensteil überein, wobei jeweils der Backendserver 60 durch die Spiegelserver 40, 41 und die Spiegelserver 40, 41 durch das weitere Fahrzeug 11 zu ersetzen sind. Darüber hinaus bestehen die folgenden weiteren Unterschiede.

Die Paketliste 26 wird gefiltert, um nicht auf das Fahrzeug 10 anwendbare Softwarepakete 20 aus der Paketliste 26 zu entfernen. Die Filterung kann vor dem Übertragen auf dem Spiegelserver 40, 41 oder nach dem Übertragen in dem Steuergerät des Fahrzeugs 10 erfolgen. Ferner enthält die Quellenliste 27 nicht den Backendserver 60. Nach dem Übertragen sämtlicher aktualisierungsbedürftiger Softwarepakete 20 werden die korrespondierenden in dem Steuergerät gespeicherten Softwarepakete 20 gelöscht und die übertragenen Softwarepakete 20 installiert. Wenn in den Metadaten eines übertragenen Softwarepakets 20 eine Vorhaltedauer für das Softwarepaket 20 bestimmt ist, wird das übertragene Softwarepaket 20 für die jeweils bestimmte Vorhaltedauer in einem Cache-Speicher des Steuergeräts vorgehalten, um zu weiteren Fahrzeugen 10 übertragen zu werden.

Figur 7 zeigt in einer schematischen Darstellung ein drittes Teilsystem des in Figur 1 gezeigten Systems. Das dritte Teilsystem umfasst die drei Spiegelserver 40, 41 , welche jeweils unterschiedlichen Staaten 42 zugeordnet und in den Gebieten der jeweiligen Staaten 42 angeordnet sind, drei Replikationsserver 30, welche jeweils in einem Supermarkt 31 , einer Vertragswerkstatt 34 und an einer Ladestation 33 angeordnet sind, ein als ein Replikationsserver wirkendes weiteres Fahrzeug 1 1 und ein Fahrzeug 10.

Figur 8 zeigt in einem Ablaufdiagramm einen zu dem in Figur 7 gezeigten dritten Teilsystem korrespondierenden dritten Verfahrensteil einer Ausführungsform des erfindungsgemäßen Verfahrens. Der dritte Verfahrensteil (indirect distribution) stimmt überwiegend mit dem zu Figur 6 beschriebenen Verfahrensteil überein, wobei die Spiegelserver 40, 41 durch die Replikationsserver 30 zu ersetzen sind. Außerdem abweichend enthält die Quellenliste 27 ausschließlich den jeweiligen Replikationsserver 30 und findet kein regelmäßiges Übertragen der Quellenliste 27 statt.

Das erfindungsgemäße Verfahren bietet den Vorteil, ein Aktualisieren des Softwarepakets 20 in den Steuergeräten vieler Fahrzeuge 10, 11 deutlich zu beschleunigen und auch solche Fahrzeuge 10, 11 zu erreichen, welche überwiegend keinen Zugang zum mobilen Internet haben. Zudem wird die Last auf ein Mobilfunknetz und über das mobile Internet zugängliche Serversysteme verringert. Mit einem über das gesamte Verfahren einheitlichen Protokoll kann ein Aktualisieren des Softwarepakets 20 jederzeit unterbrochen und später fortgesetzt werden. Dabei können die Paketsegmente 25 des Softwarepakets 20 von unterschiedlichen Quellen übertragen werden.

BEZUGSZEICHENLISTE:

10 Fahrzeug

11 weiteres Fahrzeug

20 Softwarepaket

21 Metadaten

22 Prüfsumme

23 Authentisierungsinformation

24 Hashliste

25 Paketsegment

26 Paketliste

27 Quellenliste

30 Replikationsserver

31 Supermarkt

32 Parkhaus

33 Ladestation

34 Vertragswerkstatt

40 Spiegelserver

41 weiterer Spiegelserver

42 Staat

60 Backendserver

61 Hersteller