-
TECHNISCHES GEBIET
-
Die beispielhaften Ausführungsformen betreffen im Allgemeinen ein Verfahren und eine Vorrichtung zum Durchführen von Softwareaktualisierungen.
-
HINTERGRUND
-
Zum Aktualisieren einer Softwareversion einer Komponente eines Fahrzeugs kann das Fahrzeug zu einem Vertragshändler gefahren und von einem Techniker gewartet werden. Der Techniker kann ein System verwenden, das die einzelnen Softwarestufen jeder Komponente im Fahrzeug sowie verfügbare Softwareaktualisierungen verfolgt. Der Techniker kann die durch das System angezeigten Softwareaktualisierungen manuell anwenden und jegliche Änderungen zurück in das System eintragen.
-
ZUSAMMENFASSUNG
-
In einer ersten beispielhaften Ausführungsform umfasst ein computerimplementiertes Verfahren ein Abonnieren eines ersten Themenbaumthemas, das mit einer installierten Fahrzeug-Softwarekomponentenversion assoziiert ist, und ein Identifizieren einer gewünschten Softwarekomponentenversion basierend auf einer Benachrichtigung, die im Thema veröffentlicht wird. Das Verfahren umfasst ferner, wenn sich die gewünschte Version und die installierte Version unterscheiden, ein Aktualisieren einer Softwarekomponente unter Verwendung einer Softwareaktualisierung in einem zweiten Themenbaumthema, das mit einer aktualisierten Version der installierten Version assoziiert ist.
-
In einer zweiten beispielhaften Ausführungsform umfasst ein Fahrzeug ein fahrzeugbasiertes Computersystem, das so konfiguriert ist, dass es ein erstes Themenbaumthema abonniert, das mit einer installierten Fahrzeug-Softwarekomponentenversion assoziiert ist, und eine gewünschte Softwarekomponentenversion basierend auf einer Benachrichtigung identifiziert, die vom ersten Thema abgerufen wird. Das fahrzeugbasierte Computersystem ist ferner so konfiguriert, dass es, wenn sich die gewünschte Version und die installierte Version unterscheiden, eine Softwarekomponente unter Verwendung einer Softwareaktualisierung aktualisiert, die von einem zweiten Themenbaumthema abgerufen wird, das mit Softwareaktualisierungen für die installierte Version assoziiert ist.
-
In einer dritten beispielhaften Ausführungsform speichert ein nichtflüchtiges computerlesbares Speichermedium Anweisungen, die bei Ausführung durch einen Prozessor den Prozessor so konfigurieren, dass er ein erstes Themenbaumthema abonniert, das mit einer installierten Fahrzeug-Softwarekomponentenversion assoziiert ist, und eine gewünschte Softwarekomponentenversion basierend auf einer Benachrichtigung identifiziert, die vom ersten Thema abgerufen wird. Das computerlesbare Speichermedium speichert ferner Anweisungen, die bei Ausführung durch einen Prozessor den Prozessor so konfigurieren, dass er, wenn sich die gewünschte Version und die installierte Version unterscheiden, eine Softwarekomponente unter Verwendung einer Softwareaktualisierung aktualisiert, die von einem zweiten Themenbaumthema abgerufen wird, das mit Softwareaktualisierungen für die installierte Version assoziiert ist.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 veranschaulicht eine beispielhafte Blocktopologie für ein fahrzeugbasiertes Computersystem für ein Fahrzeug;
-
2 veranschaulicht ein beispielhaftes globales Aktualisierungssystem in Kommunikation mit einem fahrzeugbasierten Computersystem
-
3 veranschaulicht einen beispielhaften Themenbaum für Softwareversionen eines fahrzeugbasierten Computersystems;
-
4A veranschaulicht einen beispielhaften Themenbaum für eine Softwarekomponente eines Fahrzeugs 31, in welchem im praktischen Einsatz mehrere Versionen installiert werden;
-
4B veranschaulicht einen beispielhaften Themenbaum zum inkrementellen Aktualisieren von Versionen einer Softwarekomponente eines Fahrzeugs; und
-
5 veranschaulicht einen beispielhaften Prozess zum Aktualisieren einer Softwareversion einer Komponente des fahrzeugbasierten Computersystems.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Wie erforderlich, werden hier detaillierte Ausführungsformen der vorliegenden Erfindung offenbart; es versteht sich jedoch, dass die offenbarten Ausführungsformen rein beispielhaft für die Erfindung sind, die in verschiedenen und alternativen Formen ausgestaltet werden kann. Die Figuren sind nicht notwendigerweise maßstabsgetreu; einige Merkmale können übertrieben oder minimiert sein, um Details von bestimmten Komponenten zu zeigen. Die speziellen strukturellen und funktionalen Details, die hier offenbart werden, sollen daher nicht als einschränkend interpretiert werden, sondern lediglich als eine repräsentative Basis, um einem Fachmann zu lehren, wie die vorliegende Erfindung auf verschiedene Weise anzuwenden ist.
-
Ein Fahrzeug-Softwareaktualisierungssystem kann ein Veröffentlichen/-Abonnieren-Modell zum Veröffentlichen von Softwareaktualisierungen verwenden, die von Fahrzeug-Abonnenten konsumiert werden. Das Veröffentlichen-/Abonnieren-Modell kann Themen verwenden, die auch als logische Kanäle bekannt sind, durch welche Herausgeber Nachrichten senden können und Abonnenten Nachrichten empfangen können. In einigen Fällen kann ein Fahrzeug ein Herausgeber sein und Fahrzeugmeldungen an ein Dienstbereitstellungsnetz senden, auf Befehle vom Dienstbereitstellungsnetz reagieren oder das Dienstbereitstellungsnetz über den Fahrzeugkonnektivitätsstatus benachrichtigen. In anderen Fällen kann ein Fahrzeug ein Abonnent sein und Steuernachrichten oder Softwareaktualisierungen von einem Dienstbereitstellungsnetz empfangen.
-
Eine Themenbaumstruktur kann durch das Fahrzeug-Softwareaktualisierungssystem verwendet werden, um eine Struktur der Themen und Unterthemen zu definieren, die beim Senden von Nachrichten zwischen den Fahrzeugen und dem Dienstbereitstellungsnetz verwendet werden. Ein fahrzeugbasiertes Computersystem (VCs), wie beispielsweise eine Telematikeinheit eines Fahrzeugs, kann Knoten des Themenbaums abonnieren, die den installierten Software-/Firmwareversionen des Fahrzeugs entsprechen.
-
Ein Herausgeber von Softwareaktualisierungen (z. B., ohne Einschränkung, ein entfernter Server eines Originalgeräteherstellers (OEM) usw.) kann eine Benachrichtigungsnachricht in einem Themenknoten bereitstellen, der einem zu aktualisierenden Fahrzeug oder einer zu aktualisierenden Softwareversion entspricht. Der Herausgeber kann ferner eine Softwareaktualisierung in einem Themenknoten veröffentlichen, der mit einer durch die Softwareaktualisierung zu aktualisierenden Version der Software assoziiert ist. In einigen Beispielen kann die Benachrichtigungsnachricht eine globale Konfigurationsdatei, die eine gewünschte Softwareversion spezifiziert, auf welche die globale Konfigurationsdatei anwendbar ist, umfassen oder die Form einer solchen annehmen. Das Fahrzeug kann ferner die Nachricht abrufen und bestimmen, ob es seine Softwareversion auf die durch die Benachrichtigung spezifizierte Version aktualisieren soll. Wenn zum Beispiel die gewünschte Softwareversion neuer als die installierte Softwareversion des Fahrzeugs ist, kann das Fahrzeug planen, auf die gewünschte Softwareversion zu aktualisieren. Zum Durchführen der Aktualisierung kann das Fahrzeug den Themenknoten abonnieren, der seiner installierten Softwareversion entspricht, und die in diesem Themenknoten veröffentlichte Softwareaktualisierung installieren. Demnach kann ein Herausgeber von Softwareaktualisierungen zum Aktualisieren von VCSs einer bestimmten Softwareversion eine Softwareaktualisierung bereitstellen und eine Konfigurationsdatei in einem Thema der jeweiligen Softwareversion veröffentlichen, die aktualisiert werden soll.
-
1 veranschaulicht eine beispielhafte Blocktopologie für ein fahrzeugbasiertes Computersystem 1 (VCS für engl. vehicle-based computing system) für ein Fahrzeug 31. Ein Beispiel für solch ein fahrzeugbasiertes Computersystem 1 ist das von der FORD MOTOR COMPANY hergestellte SYNC-System. Ein mit einem fahrzeugbasierten Computersystem ausgestattetes Fahrzeug kann eine visuelle Front-End-Schnittstelle 4 umfassen, die sich im Fahrzeug 31 befindet. Der Benutzer ist möglicherweise außerdem in der Lage, mit der Schnittstelle zu interagieren, wenn sie zum Beispiel mit einem berührungsempfindlichen Bildschirm versehen ist. In einer anderen beispielhaften Ausführungsform erfolgt die Interaktion durch Tastendrücke, Sprachdialogsystem mit automatischer Spracherkennung und Sprachsynthese.
-
In der in 1 dargestellten beispielhaften Ausführungsform 1 steuert ein Prozessor 3 oder eine zentrale Verarbeitungseinheit (CPU für engl. central processing unit) 3 wenigstens einen Teil des Betriebs des fahrzeugbasierten Computersystems. Der Prozessor 3, der innerhalb des Fahrzeugs 31 vorgesehen ist, ermöglicht Onboard-Verarbeitung von Befehlen und Routinen. Ferner ist der Prozessor 3 sowohl mit einem flüchtigen 5 als auch mit einem nichtflüchtigen Speicher 7 verbunden. In dieser beispielhaften Ausführungsform ist der flüchtige Speicher 5 ein Direktzugriffspeicher (RAM für engl. random acces memory) und der nichtflüchtige Speicher 7 ist ein Festplattenlaufwerk (HDD für engl. hard disk drive) oder Flash-Speicher. Im Allgemeinen kann ein nichtflüchtiger Speicher 7 alle Arten von Speicher umfassen, welche Daten speichern, wenn ein Computer oder ein anderes Gerät ausgeschaltet wird. Diese umfassen, ohne darauf beschränkt zu sein, HDDs, CDs (compact disks), DVDs (digital versatile disks), Magnetbänder, Festkörperlaufwerke, tragbare USB(universal serial bus)-Laufwerke und andere geeignete Arten von nichtflüchtigen Speicher 7.
-
Der Prozessor 3 ist außerdem mit einer Anzahl von unterschiedlichen Eingängen versehen, die es dem Benutzer ermöglichen, über eine Schnittstelle mit dem Prozessor 3 in Verbindung zu treten. In dieser beispielhaften Ausführungsform sind ein Mikrofon 29, ein Zusatzeingang 25 (für Eingang 33), ein USB-Eingang 23, ein GPS(globales Positionsbestimmungssystem)-Eingang 24, ein Bildschirm 4, der ein berührungsempfindlicher Bildschirm sein kann, und ein BLUETOOTH-Eingang 15 vorgesehen. Es ist auch ein Eingangswähler 51 vorgesehen, der es einem Benutzer ermöglicht, zwischen verschiedenen Eingängen zu wechseln. Sowohl die Eingaben in das Mikrofon als auch in den Zusatzanschluss werden von einem Wandler 27 von analog in digital umgewandelt, bevor sie an den Prozessor 3 weitergeleitet wird. Obwohl nicht dargestellt, können zahlreiche der Fahrzeugkomponenten und Zusatzkomponenten in Kommunikation mit dem VCS 1 ein Fahrzeugnetz (wie beispielsweise, ohne darauf beschränkt zu sein, einen CAN(car area network)-Bus) verwenden, um Daten zum und vom VCS 1 (oder Komponenten davon) weiterzuleiten.
-
Ausgaben an das VCS-System 1 können eine visuelle Anzeige 4 und einen Lautsprecher 13 oder einen Stereo-Systemausgang umfassen, ohne darauf beschränkt zu sein. Der Lautsprecher 13 ist mit einem Verstärker 11 verbunden und empfängt sein Signal vom Prozessor 3 durch einen Digital-Analog-Wandler 9. Außerdem kann entlang der bei 19 bzw. 21 dargestellten bidirektionalen Datenströme auch eine Ausgabe an ein entferntes BLUETOOTH-Gerät, wie beispielsweise ein persönliches Navigationsgerät (PND für engl. personal navigation device) 54, oder ein USB-Gerät, wie beispielsweise ein Fahrzeug-Navigationsgerät 60, erfolgen.
-
In einer beispielhaften Ausführungsform verwendet das System 1 den BLUETOOTH-Transceiver 15 zum Kommunizieren 17 mit einem mobilen Gerät (ND für engl. nomadic device) 53 (z. B. einem Mobiltelefon, Smartphone, PDA oder einem beliebigen anderen Gerät mit drahtloser Fernnetzkonnektivität). Das mobile Gerät 53 kann dann verwendet werden, um mit einem Netz 61 außerhalb des Fahrzeugs 31 zum Beispiel durch Kommunikation 55 mit einem Mobilfunkmast 57 zu kommunizieren 59. In einigen Ausführungsformen kann der Mast 57 ein WiFi-Zugangspunkt sein.
-
Eine beispielhafte Kommunikation zwischen dem mobilen Gerät 53 und dem BLUETOOTH-Transceiver ist durch Kommunikation 14 dargestellt.
-
Das Koppeln eines mobilen Geräts 53 und des BLUETOOTH-Transceivers 15 kann durch eine Taste 52 oder eine ähnliche Eingabe angewiesen werden. Dementsprechend wird die CPU davon unterrichtet, dass der Onboard-BLUETOOTH-Transceiver 15 mit einem BLUETOOTH-Transceiver in einem mobilen Gerät 53 gekoppelt werden wird.
-
Daten können zum Beispiel unter Verwendung eines Datentarifs, Data-over-Voice oder von Zweiton-Mehrfrequenz(DTMF für engl. two-tone multiple frequency)-Tönen, die mit der mobilen Einrichtung 53 assoziiert sind, zwischen der CPU 3 und dem Netz 61 kommuniziert werden. Alternativ kann es wünschenswert sein, ein Onboard-Modem 63 mit einer Antenne 18 einzubauen, um Daten zwischen der CPU 3 und dem Netz 61 über das Sprachband zu kommunizieren 16. Das mobile Gerät 53 kann dann verwendet werden, um mit einem Netz 61 außerhalb des Fahrzeugs 31 zum Beispiel durch Kommunikation 55 mit einem Mobilfunkmast 57 zu kommunizieren 59. In einigen Ausführungsformen kann das Modem (Mdm) 63 Kommunikation 20 mit dem Mast 57 zum Kommunizieren mit dem Netz 61 aufbauen. Als ein nicht einschränkendes Beispiel kann das Modem 63 ein USB-Mobilfunk-Modem 63 sein, und die Kommunikation 20 kann Mobilfunk-Kommunikation sein.
-
In einer beispielhaften Ausführungsform ist der Prozessor 3 mit einem Betriebssystem versehen, das eine API zum Kommunizieren mit Modem-Anwendungssoftware umfasst. Die Modem-Anwendungssoftware kann auf ein eingebettetes Modul oder eine eingebettete Firmware auf dem BLUETOOTH-Transceiver zugreifen, um drahtlose Kommunikation mit einem entfernten BLUETOOTH-Transceiver (wie zum Beispiel einem, der in einem mobilen Gerät vorzufinden ist) herzustellen. Bluetooth (BTT) ist ein Teilsatz der Kurzstreckennetz-Protokolle (PAN für engl. personal area network) gemäß IEEE (Institute of Electrical and Electronics Engineers) 802. IEEE 802 LAN(local area network)-Protokolle umfassen WiFi (wireless fidelity) und weisen erhebliche Kreuzfunktionalität mit IEEE 802 PAN auf. Beide sind zur drahtlosen Kommunikation innerhalb eines Fahrzeugs 31 geeignet. Andere Kommunikationsmittel, die auf diesem Gebiet verwendet werden können, sind optische Freiraumkommunikation (wie zum Beispiel Infrarot-Datenassoziation (IrDA für engl. infrared data association) und nicht-standardisierte IR(Infrarot)-Protokolle aus dem Bereich der Unterhaltungselektronik.
-
In einer anderen Ausführungsform umfasst das mobile Gerät 53 ein Modem für Sprachband- oder Breitband-Datenkommunikation. In der Data-over-Voice-Ausführungsform kann eine als Frequenzmultiplex bekannte Technik implementiert sein, wenn der Besitzer des mobilen Geräts 53 über das Gerät sprechen kann, während Daten übertragen werden. Zu anderen Zeitpunkten, wenn der Besitzer das Gerät nicht verwendet, kann die Datenübertragung die gesamte Bandbreite verwenden (in einem Beispiel 300 Hz bis 3,4 kHz). Obwohl Frequenzmultiplex möglicherweise für analoge Mobilfunk-Kommunikation zwischen dem Fahrzeug 31 und dem Internet üblich ist und immer noch verwendet wird, wurde es für digitale Mobilfunk-Kommunikation weitgehend durch Mischformen aus Codemultiplexzugriff (CDMA für engl. Code Division Multiple Access, Zeitmultiplexzugriff (TDMA für engl. Time Division Multiple Access) und Raummultiplexzugriff (SDMA für engl. Space Division Multiple Access) ersetzt. Diese sind allesamt ITU IMT-2000(G3)-konforme Standards und bieten Datenraten bis zu 2 Mbit/s für stationäre oder gehende Benutzer und 385 kbit/s für Benutzer in einem fahrenden Fahrzeug 31. 3G-Standards werden jetzt durch IMT-Advanced (4G) ersetzt, der 200 Mbit/s für Benutzer in einem Fahrzeug 31 und 1 Gbit/s für stationäre Benutzer bietet. Falls der Benutzer über einen mit dem mobilen Gerät 53 assoziierten Datentarif verfügt, ist es möglich, dass der Datentarif Breitband-Übertragung ermöglicht und das System eine viel breitere Bandbreite verwenden könnte (was die Datenübertragung beschleunigt). In noch einer anderen Ausführungsform ist das mobile Gerät 53 durch ein zellulares Kommunikationsgerät (nicht dargestellt) ersetzt, das im Fahrzeug 31 installiert ist. In einer weiteren anderen Ausführungsform kann das ND 53 ein drahtloses LAN-Gerät sein, das zum Beispiel (und ohne Beschränkung) zur Kommunikation über ein 802.11 g-Netz (d. h. WiFi) oder ein WiMax-Netz in der Lage ist.
-
In einer Ausführungsform können eingehende Daten durch das mobile Gerät über Data-over-Voice oder Datentarif, durch den Onboard-BLUETOOTH-Transceiver und in den internen Prozessor 3 des Fahrzeugs 31 weitergeleitet werden. Im Falle bestimmter temporärer Daten zum Beispiel können die Daten bis zu einem Zeitpunkt, zu dem die Daten nicht mehr benötigt werden, auf der HDD oder anderen Speichermedien 7 gespeichert werden.
-
Zusätzliche Quellen, die über eine Schnittstelle mit dem Fahrzeug 31 verbunden sein können, umfassen ein PND 54 zum Beispiel mit einem USB-Anschluss 56 und/oder einer Antenne 58, ein Fahrzeug-Navigationsgerät 60 mit einem USB 62- oder einem anderen Anschluss, ein Onboard-GPS-Gerät 24 oder ein Fernnavigationssystem (nicht dargestellt) mit Konnektivität zum Netz 61. USB ist eines aus einer Klasse von seriellen Netzwerkprotokollen. IEEE 1394 (FireWireTM (Apple), i.LINKTM (Sony) und LynxTM (Texas Instruments)), serielle Protokolle der EIA (Electronics Industry Association), IEEE 1284 (Centronics Port), S/PDIF (Sony/Philips Digital Interconnect Format) und USB-IF (USB Implementers Forum) bilden das Rückgrat der seriellen Standards von Gerät zu Gerät. Die meisten der Protokolle können entweder für elektrische oder optische Kommunikation implementiert werden.
-
Ferner könnte die CPU 3 mit einer Vielzahl anderer Zusatzgeräte 65 in Kommunikation sein. Diese Geräte 65 können durch eine drahtlose 67 oder eine drahtgebundene 69 Verbindung verbunden sein. Die Zusatzgeräte 65 können Personal Media Player, drahtlose medizinische Geräte, tragbare Computer und dergleichen umfassen, ohne darauf beschränkt zu sein.
-
Außerdem oder alternativ könnte die CPU 3 zum Beispiel unter Verwendung eines WiFi-Transceivers (IEEE 803.11) 71 mit einem fahrzeugbasierten drahtlosen Router 73 verbunden sein. Dies könnte es der CPU ermöglichen, sich mit Fernübertragungsnetzwerken innerhalb des Bereichs des lokalen Routers 73 zu verbinden.
-
Zusätzlich dazu, dass in bestimmten Ausführungsformen beispielhafte Prozesse von einem Fahrzeug-Computersystem ausgeführt werden, das sich in einem Fahrzeug 31 befindet, können die beispielhaften Prozesse wenigstens zum Teil von einem oder mehreren Computersystemen außerhalb eines Fahrzeug-Computersystems und in Kommunikation damit ausgeführt werden. Solch ein System kann, ohne darauf beschränkt zu sein, ein drahtloses Gerät (z. B. und ohne Beschränkung ein Mobiltelefon) oder ein entferntes Computersystem (z. B. und ohne Beschränkung einen Server) umfassen, die durch das drahtlose Gerät verbunden sind. Zusammen können solche Systeme als fahrzeugassoziierte Computersysteme (VACS für engl. vehicle associated computing system) bezeichnet werden. In bestimmen Ausführungsformen können bestimmte Komponenten des VACS abhängig von der jeweiligen Implementierung des Systems bestimmte Teile eines Prozesses ausführen. Falls ein Prozess als Beispiel und ohne Beschränkung einen Schritt des Sendens oder Empfangens von Informationen an ein gekoppeltes Gerät bzw. von einem gekoppelten Gerät umfasst, dann ist es wahrscheinlich, dass das drahtlose Gerät den Prozess nicht durchführt, weil das drahtlose Gerät keine Informationen an und von sich selbst senden und empfangen würde. Ein Durchschnittsfachmann weiß, wann es unangemessen ist, ein bestimmtes VACS auf eine gegebene Lösung anzuwenden. Bei allen Lösungen wird in Betracht gezogen, dass wenigstens das VCS 1, das sich innerhalb des Fahrzeugs 31 selbst befindet, zum Durchführen der beispielhaften Prozesse in der Lage ist.
-
2 veranschaulicht ein beispielhaftes Dienstbereitstellungsnetz 200 in Kommunikation über das Netzwerk 61 mit einem Fahrzeug 31 durch ein drahtloses Gerät in drahtloser Kommunikation mit dem Netzwerk und dem Fahrzeug. Wenn ein Fahrzeug 31 zusammengebaut wird, kann das Fahrzeug 31 verschiedene Hardware- und Softwarekomponenten umfassen. Ein VCS 1 des Fahrzeugs 31 kann so konfiguriert sein, dass es bei oder nach dem Zusammenbau Existenz- und Versionsinformationen für mindestens einen Teil dieser Hardware- und Softwarekomponenten des Fahrzeugs 31 abfragt. Unter Verwendung der abgefragten Informationen und von zusätzlichen Informationen, die das spezifische Fahrzeug 31 identifizieren (z. B. auf dem CAN-Bus veröffentlichte FIN-Informationen, Teilnehmerkennungsmodul(SIM für engl. subscriber identity module)-Informationen des Modems 63, wie beispielsweise eine internationale Mobilgerätekennung (IMEI für engl. international mobile station equipment identity) usw.), kann das VCS 1 über das Netz 61 kommunizieren, um ein Konto beim Dienstbereitstellungsnetz 200 zu erstellen. Das Dienstbereitstellungsnetz 200 kann diese Kommunikationen von den Fahrzeugen 31 empfangen und einen Datenspeicher der mit Kennungen der Fahrzeuge 31 verbundenen Hardwarekonfigurationen und Software(z. B. Firmware- usw.)-Versionen unterhalten.
-
Das Dienstbereitstellungsnetz 200 kann außerdem Veröffentlichen-/Abonnieren-Nachrichtenübermittlungsfunktionalität zur Kommunikation zwischen dem Dienstbereitstellungsnetz 200 und den Fahrzeugen 31 bereitstellen. Das Veröffentlichen-/Abonnieren-Modell kann ein oder mehrere Themen 202 verwenden, wobei die Themen 202 logische Kanäle genannt werden, durch welche Herausgeber Nachrichten 204 senden können und Abonnenten Nachrichten 204 empfangen können. Statt alle Nachrichten 204 zu empfangen, empfangen Abonnenten der Themen 202 die Nachrichten 204, die in den von ihnen abonnierten Themen 202 veröffentlicht werden, und alle Abonnenten eines Themas 202 empfangen im Wesentlichen die gleichen Themennachrichten 204. Ein Herausgeber der Nachrichten 204 kann für das Bereitstellen von Nachrichten 204 in den Themen 202 verantwortlich sein, die mit dem Thema 202 im Einklang stehen. Der Herausgeber kann zum Beispiel einen Originalgerätehersteller (OEM für engl. original equipment manufacturer) oder eine andere Instanz umfassen, der/die für die Verwaltung und/oder Aktualisierung von Fahrzeugsoftware/-firmware verantwortlich ist.
-
In einigen Fällen kann ein Fahrzeug 31 ein Herausgeber sein und Fahrzeugmeldungen an ein Thema 202 des Dienstbereitstellungsnetzes 200 senden, auf Nachrichten 204 vom Dienstbereitstellungsnetz 200 antworten oder das Dienstbereitstellungsnetz 200 über den Konnektivitätsstatus des Fahrzeugs 31 zum Netz 61 benachrichtigen. In anderen Fällen kann ein Fahrzeug 31 ein Abonnentsein und Steuernachrichten 204 oder andere Informationen von einem Dienstbereitstellungsnetz 200 empfangen.
-
Um das Veröffentlichen von Nachrichten 204 in entsprechenden Themen 202 zu erleichtern, können die Themen 202 in einem Themenbaum 206 angeordnet sein. Der Themenbaum 206 kann durch das Dienstbereitstellungsnetz 200 definiert werden, um eine Struktur der Themen 202 und Unterthemen 202 bereitzustellen, die beim Senden von Nachrichten 204 zwischen den Fahrzeugen 31 und dem Dienstbereitstellungsnetz 200 verwendet werden.
-
3 veranschaulicht einen beispielhaften Themenbaum 206 zur Verwendung beim Aktualisieren von Softwareversionen eines VCSs 1. Der Themenbaum 206 kann zum Beispiel verwendet werden, um es dem Dienstbereitstellungsnetz 200 zu ermöglichen, eine Themen-202-Struktur zum Durchführen von Aktualisierungen der Software des Fahrzeugs 31 zu definieren. Ein VCS 1, wie beispielsweise eine Telematikeinheit eines Fahrzeugs 31, kann Knoten des Themenbaums 206 abonnieren, die der installierten Region, Software-/Firmwareversion, den installierten Merkmalen, der installierten Konfigurationsdateiversion des Fahrzeugs 31 usw. entsprechen. Es ist zu erwähnen, dass die konkrete Gestaltung des beispielhaften Themenbaums 206 nur der Veranschaulichung dient und auch andere Gestaltungen des Themenbaums 206 verwendet werden können. Zum Beispiel können durch das Dienstbereitstellungsnetz 200 andere Themenbäume 206 verwendet werden, die mehr, weniger oder verschiedene Kategorisierungsstufen aufweisen.
-
Unter Bezugnahme auf den Themenbaum 206 von 3 kann ein Regionsknoten 300 des Themenbaums 206 eine Region anzeigen, auf welche sich die Unterthemen-202-Knoten unter dem Regionsknoten 300 beziehen können. In einigen Fällen können die Regionsknoten 300 verschiedene regionale Marktbereiche darstellen, in welchen Fahrzeuge 31 verkauft werden können, wie beispielsweise Nordamerika, Europa und den Asien-Pazifik-Raum. In anderen Beispielen können sich die Regionsknoten 300 auf andere geografische Bereiche wie Länder, Staaten, Postleitzahlen, und Telefon-Vorwahlnummern als einige andere Beispiele beziehen. Durch Segmentieren des Themenbaums 206 nach Region kann das Dienstbereitstellungsnetz 200 dementsprechend verschiedene Informationen für Fahrzeuge 31 veröffentlichen, die mit verschiedenen Regionen assoziiert sind.
-
Unter jedem Regionsknoten 300 kann der Themenbaum 206 einen oder mehrere fahrzeugspezifische Knoten 302 enthalten, wobei sich jeder fahrzeugspezifische Knoten 302 auf ein Fahrzeug 31 bezieht, das mit dem Stamm-Regionsknoten 300 assoziiert ist. Als eine Möglichkeit kann das Dienstbereitstellungsnetz 200 fahrzeugspezifische Knoten 302 für Fahrzeuge 31 gemäß der Fahrgestellnummer (FIN, Fahrzeugidentifikationsnummer, engl. VIN, vehicle identification number) oder einer anderen eindeutigen Kennung von Fahrzeugen 31 erstellen, die beim Dienstbereitstellungsnetz 200 als zur jeweiligen Region gehörig registriert sind. Unterknoten der fahrzeugspezifischen Knoten 302 können verwendet werden, um die Themen 202, die zur Kommunikation an die und von den einzelnen Fahrzeugen 31 konfiguriert sind, weiter zu organisieren.
-
Zum Beispiel kann der Themenbaum 206 unter den fahrzeugspezifischen Knoten 302 ferner einen oder mehrere Fahrzeugthemenknoten 304 zur Kommunikation an die spezifischen Fahrzeuge 31 umfassen. Ein Fahrzeug 31 kann den Fahrzeugthemenknoten 304 abonnieren, welcher der FIN oder einer anderen eindeutigen Kennung des Fahrzeugs 31 entspricht, so dass das Fahrzeug 31 möglicherweise in der Lage ist, Nachrichten 204 in Themen 202 zu empfangen, die spezifisch das Fahrzeug 31 selbst betreffen.
-
Als ein Beispiel kann ein Fahrzeug 31 einen zeitsensiblen Aktualisierungs-Fahrzeugthemenknoten 304-A zum Empfangen von Nachrichten 204 für das jeweilige Fahrzeug 31 abonnieren, die von einer zeitsensiblen Beschaffenheit sind. Aufgrund ihrer zeitsensiblen Beschaffenheit können Nachrichten 204, die im zeitsensiblen Aktualisierungs-Fahrzeugthemenknoten 304-A gepostet werden, ablaufen und aus dem Thema 202 entfernt werden, wenn sie nicht innerhalb einer Zeitdauer (z. B. durch die Nachricht 204 spezifiziert, allen zeitsensiblen Nachrichten 204 gemeinsam usw.) vom Fahrzeug 31 empfangen werden. Als ein anderes Beispiel kann ein Fahrzeug 31 einen nicht-zeitsensiblen Fahrzeugthemenknoten 304-B zum Empfangen von Nachrichten 204 für das jeweilige Fahrzeug 31 abonnieren, die nicht von einer zeitsensiblen Beschaffenheit sind.
-
Aktualisierungen, wie beispielsweise Kalenderaktualisierungen, können im nicht-zeitsensiblen Fahrzeugthemenknoten 304-B gepostet werden und im Thema 202 bleiben, bis sie vom abonnierenden Fahrzeug 31 empfangen werden. Als ein weiteres Beispiel kann ein Fahrzeug 31 einen Merkmalsaktualisierungs-Fahrzeugthemenknoten 304-C zum Empfangen von Nachrichten 204 in einem Thema 202 abonnieren, die an bestimmte Fahrzeuge 31 gerichtet sind und Aktualisierungen der Merkmale 31 des Fahrzeugs 31 betreffen. In diesem Zusammenhang kann sich ein Merkmal auf ein Gruppieren von Konfigurationsparametern beziehen, die auf das spezifizierte Fahrzeug 31 anwendbar und im Themenbaum 206 enthalten sind. Ein Merkmal kann zum Beispiel Einstellungen zum Implementieren eines verfügbaren angeschlossenen Dienstes (z. B. MY FORD MOBILE) oder eine kundenspezifische Sammlung von Einstellungen (z. B. ein Paket von Merkmalen, die angefordert werden, um zur Verwendung durch einen bestimmten Fuhrparkkäufer aktiviert und/oder deaktiviert zu werden) darstellen. Als noch ein weiteres Beispiel kann ein Fahrzeug 31 einen Firmwareaktualisierungs-Fahrzeugthemenknoten 304-D zum Empfangen von Nachrichten 204 in einem Thema 202 abonnieren, die an bestimmte Fahrzeuge 31 gerichtet sind und Aktualisierungen der Firmware des Fahrzeugs 31 betreffen.
-
Die fahrzeugspezifischen Knoten 302 des Themenbaums 206 können ferner einen oder mehrere Fahrzeugthemenknoten 306 zur Kommunikation von den spezifischen Fahrzeugen 31 umfassen. Zum Beispiel kann ein Allgemeinmeldungs-Themenknoten 306-A durch ein Fahrzeug 31 zum Veröffentlichen von Nachrichten 204, wie beispielsweise Anzeigen von niedrigem Kraftstofffüllstand, Irrfahrt des Fahrzeugs 31 oder periodischen aktuellen GPS-Standorten des Fahrzeugs 31, verwendet werden. Als ein anderes Beispiel kann ein Verbindungsstatus-Themenknoten 306-B durch ein Fahrzeug 31 zum Veröffentlichen von Nachrichten 204, wie beispielsweise Verbindungsstatus des Fahrzeugs 31 (z. B. ob das Fahrzeug 31 vom Netz 61 getrennt und dann wieder daran angeschlossen wurde), verwendet werden. Als noch ein weiteres Beispiel kann ein Befehlsreaktionsmeldungs-Themenknoten 306-C durch ein Fahrzeug 31 zum Veröffentlichen von Nachrichten 24, wie beispielsweise Anzeigen von Erfolg oder Misserfolg von durch das Dienstbereitstellungsnetz 200 angeforderten Aktionen, verwendet werden.
-
Darüber hinaus kann der Themenbaum 206 unter jedem Regionsknoten 300 einen oder mehrere Hardwareversions-Themenknoten 308 umfassen, wobei sich jeder Hardwareversions-Themenknoten 308 auf eine in einem Fahrzeug 31 installierte Hardwareversion bezieht, die möglicherweise von mehreren Fahrzeugen 31 gemeinsam genutzt wird (z. B. eine Version der Hardware des VCSs 1). Diese Hardwareversions-Themenknoten 308 und Unterthemenknoten können demgemäß zur Bezugnahme auf Fahrzeuge 31 gemäß der Hardwareversion und nicht gemäß dem einzelnen Fahrzeug 31 verwendet werden.
-
Unter jedem Hardwareversions-Themenknoten 308 kann der Themenbaum 206 eine oder mehrere Firmwareversionsknoten 310 umfassen. Jeder Firmwareversionsknoten 310 kann Knoten des Themenbaums 206 organisieren, die mit einer Firmwareversion assoziiert sind, die auf der Stammhardware des Fahrzeugs 31 für eine bestimmte Region installiert werden kann.
-
Der Firmwareversionsknoten 310 kann ferner Merkmalsknoten 312 umfassen, welche Knoten des Themenbaums 206 organisieren, die mit einem bestimmten Merkmal assoziiert sind. Wie bereits erwähnt, kann ein Merkmal Einstellungen zum Implementieren eines verfügbaren angeschlossenen Dienstes oder eine kundenspezifische Sammlung von Einstellungen darstellen. Demnach kann eine Firmwareversion mehrere verschiedene Merkmale unterstützen, wobei verschiedene Teile der Funktionalität der Firmware für die verschiedenen Merkmale ein- oder ausgeschaltet werden.
-
Die Merkmalsknoten 312 können ferner Konfigurationsversionsknoten 314 umfassen, die jeweils ein Thema 202 in Bezug auf eine Konfigurationsdatei für das assoziierte Merkmal, die assoziierte Firmwareversion, Hardwareversion und Region darstellen. Die Konfigurationsdateien können Einstellungen und andere Informationen in Bezug auf Stammmerkmale umfassen, die sie konfigurieren (z. B. für die Version der Firmware, die auf der Hardwareversion für die jeweilige Region installiert ist). Da sich Einstellungen und andere Optionen von Version zu Version ändern können, können die Konfigurationsdateien außerdem eine Versionsnummer der Firmware umfassen, mit welcher sie kompatibel sind.
-
Ein Fahrzeug 31 kann Themen 202 des Themenbaums 206 abonnieren, welche die Konfiguration des Fahrzeugs 31 betreffen. Als ein Beispiel kann das Fahrzeug einen Fahrzeugthemenknoten 304 abonnieren, welcher der FIN des Fahrzeugs 31 entspricht, um Aktualisierungen zu empfangen, die für das spezifische Fahrzeug 31 bestimmt sind. Als ein anderes Beispiel kann ein VSC 1 eines Fahrzeugs 31 einen Konfigurationsversionsknoten 314 des Themenbaums 206 abonnieren, um Konfigurations- oder andere Aktualisierungen zu empfangen, die der installierten Region, Hardwareversion, Firmwareversion, einem installierten Merkmal und der installierten globalen Konfigurationsversion des Fahrzeugs 31 entsprechen. Das abonnierende Fahrzeug 31 kann Nachrichten 204, die in den abonnierten Themen 202 veröffentlicht werden, prüfen oder anderweitig darüber informiert werden.
-
Das Dienstbereitstellungsnetz 200 kann Nachrichten 204 in den Themen 202 des Themenbaums 206 veröffentlichen, für welche Aktualisierungen durchgeführt werden sollen. Als eine Möglichkeit kann das Dienstbereitstellungsnetz 200 eine Nachricht 204 in einem Fahrzeugthemenknoten 304 veröffentlichen, um zu bewirken, dass ein bestimmtes Fahrzeug 31 informiert wird, dass eine Aktualisierung für das Fahrzeug 31 durchgeführt werden sollte. Als eine andere Möglichkeit kann das Dienstbereitstellungsnetz 200 eine Nachricht 204 im Konfigurationsversionsknoten 314 veröffentlichen, um zu bewirken, dass jedes abonnierende Fahrzeug 31 mit einer bestimmten, Region, Hardwareversion, Firmwareversion, einem bestimmten Merkmal und einer bestimmten globalen Konfigurationsversion eine Aktualisierung durchführt.
-
In einigen Beispielen kann eine Aktualisierung durch ein Dienstbereitstellungsnetz 200, das eine neue Konfigurationsdatei im abonnierten Thema 202 veröffentlicht, als die Nachricht 204 angezeigt werden, wobei die neue Konfigurationsdatei mit einer aktualisierten Version der Software oder Firmware assoziiert sein kann. Ein Fahrzeug 31, das die Konfigurationsdatei empfängt, kann die Version der Konfigurationsdatei identifizieren und eine gewünschte Software- oder Firmwareversion für das Fahrzeug 31 so festlegen, dass sie die der Version der Konfigurationsdatei ist. Bei Gewahrwerden einer Aktualisierungsbenachrichtigungsnachricht 204 in einem abonnierten Knoten des Themenbaums 206 kann das Fahrzeug 31 daher erkennen, dass es seine Softwareversion auf die durch die Benachrichtigung spezifizierte Version aktualisieren sollte.
-
Das Fahrzeug 31 kann ferner den Themenbaum 206 verwenden, um Aktualisierungsnachrichten 204 in Bezug auf den Status der Softwareaktualisierung an das Dienstbereitstellungsnetz 200 zu übermitteln. Zum Beispiel kann das Fahrzeug 31 Meldungsnachrichten 204 in einem Meldungs-Fahrzeugthemenknoten 304 veröffentlichen, die anzeigen, ob die Softwareaktualisierung erfolgreich war oder nicht, und außerdem die neu installierte Version der Software des Fahrzeugs 31 an das Dienstbereitstellungsnetz 200 melden. Demgemäß ist das Dienstbereitstellungsnetz 200 durch Verwenden des Themenbaums 206 möglicherweise in der Lage, Aktualisierungen für einzelne Fahrzeuge 31 oder für Fahrzeuge 31 mit spezifischen Konfigurationen anzufordern.
-
Eine Softwareanwendung kann von einer älteren Version auf eine neuere Version aktualisiert werden, indem jene Teile, die sich von der früheren Version geändert haben, aktualisiert werden, statt dass die alte Version deinstalliert und die neue Version installiert wird. Diese inkrementellen Aktualisierungen werden als Delta- oder Differenzialaktualisierungen bezeichnet. Eine inkrementelle Aktualisierung kann angewendet werden, um ein Softwaremodul oder eine Softwareanwendung von einer Version auf eine nächste Version zu aktualisieren. In einigen Fällen kann die Software mehrere Version veraltet älter als die neueste sein und iteratives Aktualisieren von der alten installierten Version auf die aktuelle Version durch die geordnete Anwendung von mehreren inkrementellen Aktualisierungen erfordern. Der inkrementelle Ansatz kann bestimmte Vorteile gegenüber Vollaktualisierungen aufweisen, wie beispielsweise reduzierten Netzwerkverkehr für heruntergeladene Versionsaktualisierungen sowie einfacheres Testen von Versionsaktualisierungen von der früheren Version im Vergleich zum Testen von allen früheren Versionen der Software. Jeder Ansatz kann so verwendet werden, wie es für eine bestimmte Situation angebracht ist.
-
4A veranschaulicht einen beispielhaften Themenbaum für eine Softwarekomponente eines Fahrzeugs 31, in welchem im praktischen Einsatz mehrere Versionen installiert werden. Zum Beispiel kann ein Softwaremodul im praktischen Einsatz einige Fahrzeuge 31 mit Version 1, andere mit Version 2 und noch andere mit Version 3 aufweisen. Es wird möglicherweise ein Fehler oder ein anderes Problem identifiziert, der/das die Softwareversionen 1 und 2 betrifft, aber nicht Version 3, Eine neue Version der Software, Version 4, kann erstellt werden, um das Problem in Version 1 und 2 zu beheben (und möglicherweise alle Probleme zu beheben, die durch das Problem möglicherweise verursacht wurden). Da Fahrzeuge 31 mit Software mit Version 3 nicht betroffen sind, ist es für diese Fahrzeuge 31 möglicherweise nicht wünschenswert, Version 4 herunterzuladen und sie auf Version 4 zu aktualisieren. Es kann jedoch sein, dass Fahrzeuge 31 mit Version 1 und 2 unter Verwendung eines inkrementellen Aktualisierungsansatzes durch Version 3 aktualisiert werden müssen, um Version 4 zu erreichen.
-
4B veranschaulicht einen beispielhaften Themenbaum 206 zum inkrementellen Aktualisieren von Versionen einer Softwarekomponente eines Fahrzeugs 31. Das Dienstbereitstellungsnetz 200 kann den Themenbaum 206 verwenden, um die Fahrzeuge mit Version 1 und 2 auf Version 4 zu aktualisieren, während die Fahrzeuge 31 mit Version 3 nicht aktualisiert werden.
-
Zum Beispiel kann das Dienstbereitstellungsnetz 200 Aktualisierungsbenachrichtigungen in Konfigurationsversionsknoten-314-Themen 202 für Fahrzeuge 31, welche Version 1 und 2 installiert haben, veröffentlichen, aber nicht in den Konfigurationsknoten-314-Themen 202 für Fahrzeuge 31, welche Version 3 installiert haben. Die Aktualisierungsbenachrichtigungen können Konfigurationsdateien 208 umfassen, die mit Version 4 der Software assoziiert sind, so dass die Fahrzeuge 31 mit Version 1 und 2, welche die Benachrichtigungen empfangen, eine gewünschte Software- oder Firmwareversion für das Fahrzeug 31 auf Version 4 festlegen könnent. Das Dienstbereitstellungsnetz 200 kann ferner inkrementelle Softwareaktualisierungen 400 in den Firmwareversionsknoten 310 veröffentlichen. Zum Beispiel kann das Dienstbereitstellungsnetz 200 eine inkrementelle Softwareaktualisierung 400-A von Version 1 auf Version 2 im Firmwareversionsknoten 310 für Version 1, eine inkrementelle Softwareaktualisierung 400-B von Version 2 auf Version 3 im Firmwareversionsknoten 310 für Version 2 und eine inkrementelle Softwareaktualisierung 400-C von Version 3 auf Version 4 im Firmwareversionsknoten 310 für Version 3 veröffentlichen.
-
Da die Fahrzeuge 31 bei Version 3 keine Konfigurationsdateien 208 empfangen, die mit Version 4 assoziiert sind, legen die Fahrzeuge 31 bei Version 3 ihre gewünschte Version nicht auf 4 fest. Demgemäß versuchen die Fahrzeuge 31, die ursprünglich bei Version 3 sind, in diesem Beispiel nicht, auf Version 4 zu aktualisieren, auch wenn eine Softwareaktualisierung von Version 3 auf Version 4 veröffentlicht wird.
-
Ein Fahrzeug 31 bei Version 1, das die Benachrichtigungen empfängt, erkennt möglicherweise, dass sich die gewünschte Softwareversion (d. h. Version 4) und die installierte Softwareversion (d. h. Version 1) unterscheiden. Wenn dies der Fall ist, kann das Fahrzeug 31 das Firmwareversionsknoten-310-Thema 202 des Themenbaums 206 abonnieren, welcher der Region und der installierten Firmwareversion der Fahrzeugs 31 (d. h. Version 1) entspricht. Das Fahrzeug 31, das den Firmwareversionsknoten 310 für Version 1 abonniert, kann die veröffentlichte Benachrichtigung der inkrementellen Softwareaktualisierung 400-A von Version 1 auf Version 2 empfangen und die inkrementelle Aktualisierung 400-A herunterladen und installieren. Bei erfolgreicher Installation kann das Fahrzeug 31 nun bei Version 2 der Software sein. Da das Fahrzeug nun bei Version 2 ist, kann das Fahrzeug 31 das Abonnement für Konfigurationsversionsknoten 314 des Themenbaums 206, der mit Version 1 in Beziehung steht, und den Firmwareversionsknoten 310 für Version 1 beenden und den Konfigurationsversionsknoten 314 des Themenbaums 206 abonnieren, der mit Version 2 in Beziehung steht.
-
Das Fahrzeug 31, das nun bei Version 2 ist (oder ein anderes Fahrzeug 31, das im Beispiel ursprünglich bei Version 2 war), erkennt möglicherweise, dass sich die gewünschte Softwareversion (d. h. Version 4) und die installierte Softwareversion (d. h. Version 2) weiterhin unterscheiden. Wenn dies der Fall ist, kann das Fahrzeug 31 das Firmwareversionsknoten-310-Thema 202 des Themenbaums 206 abonnieren, welcher der Region und der installierten Firmwareversion der Fahrzeugs 31 (d. h. Version 2) entspricht. Das Fahrzeug 31 kann demgemäß die veröffentlichte Benachrichtigung der inkrementellen Softwareaktualisierung 400-B von Version 2 auf Version 3 empfangen und die inkrementelle Aktualisierung 400-B herunterladen und installieren. Bei erfolgreicher Installation kann das Fahrzeug 31 nun bei Version 3 der Software sein. Da das Fahrzeug nun bei Version 3 ist, kann das Fahrzeug 31 das Abonnement für den Konfigurationsversionsknoten 314 des Themenbaums 206, der mit Version 2 in Beziehung steht, und den Firmwareversionsknoten 310 für Version 2 beenden und den Konfigurationsversionsknoten 314 des Themenbaums 206 abonnieren, der mit Version 3 in Beziehung steht.
-
Das Fahrzeug 31, das nun bei Version 3 ist, erkennt möglicherweise, dass sich die gewünschte Softwareversion (d. h. Version 4) und die installierte Softwareversion (d. h. Version 3) weiterhin unterscheiden. Wenn dies der Fall ist, kann das Fahrzeug 31 den Firmwareversionsknoten-310-Thema 202 des Themenbaums 206 abonnieren, welcher der Region und der installierten Firmwareversion der Fahrzeugs 31 (d. h. Version 3) entspricht. Das Fahrzeug 31 kann demgemäß die veröffentlichte Benachrichtigung der inkrementellen Softwareaktualisierung 400-B von Version 3 auf Version 4 empfangen und die inkrementelle Aktualisierung 400-B herunterladen und installieren. Bei erfolgreicher Installation kann das Fahrzeug 31 nun bei Version 4 der Software sein. Da das Fahrzeug nun bei Version 4 ist, kann das Fahrzeug 31 das Abonnement für den Konfigurationsversionsknoten 314 des Themenbaums 206, der mit Version 3 in Beziehung steht, und den Firmwareversionsknoten 310 für Version 3 beenden und den Konfigurationsversionsknoten 314 des Themenbaums 206 abonnieren, der mit Version 4 in Beziehung steht.
-
Da die gewünschte Softwareversion und die installierte Softwareversion jetzt übereinstimmen, ist das Fahrzeug 31 nun aktualisiert. In einigen Fällen kann das VCS 1 ferner so konfiguriert sein, dass es eine Veröffentlichung einer Nachricht 204 in einem Befehlsreaktionsmeldungs-Themenknoten 306-C des Fahrzeugs 31 bereitstellt, um dem Dienstbereitstellungsnetz 200 den Erfolg der Softwareaktualisierung zu melden.
-
Die Fahrzeuge 31, die ursprünglich bei Version 3 waren, erkennen möglicherweise, dass die gewünschte Softwareversion (d. h. Version 3) und die installierte Softwareversion (d. h. Version 3) gleich sind, und können wählen, keine Softwareaktualisierung durchzuführen. Wenn jedoch die Fahrzeuge 31 bei Version 3 zu einem späteren Zeitpunkt eine aktualisierte Konfigurationsdatei empfangen, die zu einer Aktualisierung auf Version 4 oder höher auffordert, können die Fahrzeuge 31 das Firmwareversionsknoten-310-Thema 202 des Themenbaums 206 abonnieren, das der Region und der installierten Firmwareversion des Fahrzeugs 31 (d. h. Version 3) entspricht und die Aktualisierung installieren.
-
5 veranschaulicht einen beispielhaften Prozess 500 zum Aktualisieren einer Softwareversion einer Komponente des VCSs 1. Der Prozess 500 kann zum Beispiel durch ein VCS 1 eines Fahrzeugs 31 in Kommunikation mit einem Dienstbereitstellungsnetz 200 über ein Netz 61 durchgeführt werden.
-
Bei Block 502 abonniert das VCS 1 ein Thema 202 eines Themenbaums 206, das mit einer Softwareversion einer Komponente der Fahrzeuge 31 assoziiert ist. Zum Beispiel kann das VCS 1 für eine Firmwarekomponente des Fahrzeugs 31 einen Konfigurationsversionsknoten 314 abonnieren, der ein Thema 202 des Themenbaums 206 darstellt, das vom Dienstbereitstellungsnetz 200 bedient wird und mit der installierten Version, installierten Merkmalen und der installierten Region der Firmwarekomponente des Fahrzeugs 31 in Beziehung steht.
-
Bei Entscheidungspunkt 504 bestimmt das VCS 1, ob eine Benachrichtigungsnachricht 204 im abonnierten Thema 202 empfangen wird. Zum Beispiel kann das Dienstbereitstellungsnetz 200 eine Benachrichtigungsnachricht 204 im Konfigurationsversionsknoten 314 veröffentlichen, und das Fahrzeug 31 kann von der Benachrichtigungsnachricht 204 benachrichtigt werden oder diese anderweitig empfangen. Wenn eine Benachrichtigungsnachricht 204 empfangen wird, geht die Steuerung zu Block 506 weiter. Andernfalls bleibt die Steuerung bei Entscheidungspunkt 504.
-
Bei Block 506 identifiziert das VCS 1 eine gewünschte Softwareversion für die Softwarekomponente basierend auf der Benachrichtigungsnachricht 204. Zum Beispiel kann die Benachrichtigungsnachricht 204 eine neue Konfigurationsdatei sein oder umfassen, wobei die neue Konfigurationsdatei mit einer aktualisierten Version der Firmware assoziiert sein kann. Die Konfigurationsdatei kann eine Versionsnummer der Firmware oder eine andere Versionsanzeige umfassen, mit welcher die Datei kompatibel ist. Ein Fahrzeug 31, das die Konfigurationsdatei empfängt, kann die Version der Konfigurationsdatei identifizieren und eine gewünschte Softwareversion für das Fahrzeug 31 so festlegen, dass sie die der Version der Konfigurationsdatei ist.
-
Bei Entscheidungspunkt 508 bestimmt das VCS 1, ob sich die gewünschte Softwareversion und die installierte Softwareversion unterscheiden. Zum Beispiel kann das VCS 1 bestimmen, dass die Version der Konfigurationsdatei höher als die installierte Version der Firmware ist. Wenn dies der Fall ist, geht die Steuerung zu Block 510 weiter, um eine Softwareaktualisierung durchzuführen. Wenn nicht, dann ist keine Softwareaktualisierung erforderlich, und die Steuerung geht zu Entscheidungspunkt 504 über. Wenn die Version der Konfigurationsdatei niedriger als die installierte Version ist, dann kann das VCS 1 die Konfigurationsdatei verwerfen, gegebenenfalls einen Fehler an das Dienstbereitstellungsnetz 200 zurück übermitteln und die Steuerung entweder zu Entscheidungspunkt 504 übergehen lassen oder den Prozess 500 beenden.
-
Bei Block 510 ruft das VCS 1 eine nächste inkrementelle Softwareaktualisierung ab. Zum Beispiel kann das Fahrzeug 31 das Firmwareversionsknoten-310-Thema 202 des Themenbaums 206 abonnieren, das der installierten Firmwareversion des Fahrzeugs 31 entspricht. Das Dienstbereitstellungsnetz 200 kann eine Softwareaktualisierung im Firmwareversionsknoten 310 veröffentlichen, und das abonnierende Fahrzeug 31 kann die Softwareaktualisierung herunterladen.
-
Bei Block 512 installiert das VCS 1 die Softwareaktualisierung. Zum Beispiel kann die VCS 1 die Firmwareaktualisierung ausführen oder anderweitig auf die installierte Firmwareversion anwenden, um die Firmwareversion zu aktualisieren. In einigen Fällen kann das VCS 1 ferner so konfiguriert sein, dass es eine Veröffentlichung einer Nachricht 204 in einem Befehlsreaktionsmeldungs-Themenknoten 306-C des Fahrzeugs 31 bereitstellt, um dem Dienstbereitstellungsnetz 200 den Erfolg oder Misserfolg der Softwareaktualisierung zu melden. Bei Empfang einer Nachricht 204, die den Erfolg der Softwareaktualisierung anzeigt, kann das Dienstbereitstellungsnetz 200 seine Aufzeichnungen des installierten Konfigurationsstatus des Fahrzeugs 31 aktualisieren. Als eine andere Möglichkeit kann das VCS 1, wenn die Softwareaktualisierung fehlschlägt, eine Fehlernachricht 204 im Befehlsreaktionsmeldungs-Themenknoten 306-C veröffentlichen, und der Prozess 500 kann enden oder möglicherweise die Steuerung zu Block 510 übergehen lassen, um den Download und die Installation erneut zu versuchen.
-
Bei Block 514 aktualisiert das Fahrzeug 1 die Themen-202-Abonnements des Fahrzeugs 31. Zum Beispiel kann das VCS 1 das Fahrzeug 31 veranlassen, das Abonnement für den Konfigurationsversionsmodus 314 des Themenbaums 206 und den Firmwareversionsknoten 310 für die alte Version abzubestellen, und den Konfigurationsversionsknoten 314 des Themenbaums 206 zu abonnieren, der mit neuen installierten Version der Firmware in Beziehung steht. Nach Block 514 geht die Steuerung zu Entscheidungspunkt 508 über.
-
Demnach kann ein Dienstbereitstellungsnetz 200 einen Themenbaum 206 zum selektiven Bereitstellen von Aktualisierungen für Fahrzeuge 31 gemäß einer installierten Softwareversion, wie beispielsweise einer Firmwareversion eines Moduls des Fahrzeugs 31 oder einer Softwareversion einer im VCS 1 installierten Anwendung, verwenden, ohne die Fahrzeug-31-Installationen von Softwareversionen auf Fahrzeugen 31 von verschiedenen Versionen zu beeinträchtigen. Außerdem können diese Aktualisierungen für die Fahrzeuge 31 inkrementell und automatisch über den Äther bereitgestellt werden, ohne dass Kosten für Techniker des Herstellers oder Händlers entstehen.
-
Obgleich oben beispielhafte Ausführungsformen beschrieben werden, ist nicht beabsichtigt, dass diese Ausführungsformen alle möglichen Formen der Erfindung beschreiben. Stattdessen dienen die in der Beschreibung verwendeten Ausdrücke der Beschreibung und nicht der Einschränkung, und es versteht sich, dass verschiedene Änderungen durchgeführt werden können, ohne von dem Gedanken und Schutzbereich der Erfindung abzuweichen. Darüber hinaus können die Merkmale verschiedener Implementierungsausführungsformen kombiniert werden, um weitere Ausführungsformen der Erfindung zu bilden.
-
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 Nicht-Patentliteratur
-
- IEEE (Institute of Electrical and Electronics Engineers) 802 [0024]
- IEEE 802 LAN(local area network)-Protokolle [0024]
- IEEE 802 [0024]
- IEEE 1394 [0027]
- IEEE 1284 [0027]