DE102018103209A1 - Verfahren und vorrichtung zur handhabung der übereinstimmung von mehrzyklischen fahrzeugsoftwareaktualisierungen - Google Patents

Verfahren und vorrichtung zur handhabung der übereinstimmung von mehrzyklischen fahrzeugsoftwareaktualisierungen Download PDF

Info

Publication number
DE102018103209A1
DE102018103209A1 DE102018103209.9A DE102018103209A DE102018103209A1 DE 102018103209 A1 DE102018103209 A1 DE 102018103209A1 DE 102018103209 A DE102018103209 A DE 102018103209A DE 102018103209 A1 DE102018103209 A1 DE 102018103209A1
Authority
DE
Germany
Prior art keywords
ecu
processor
software version
modules
new software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018103209.9A
Other languages
English (en)
Inventor
Daniel Joseph Madrid
Sangeetha Sangameswaran
Jason Michael Miller
John William SCHMOTZER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ford Global Technologies LLC
Original Assignee
Ford Global Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ford Global Technologies LLC filed Critical Ford Global Technologies LLC
Publication of DE102018103209A1 publication Critical patent/DE102018103209A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

Ein System beinhaltet einen Prozessor, der dazu konfiguriert ist, eines oder mehrere elektronische Fahrzeugsteuereinheits(ECU-)module abzufragen, um aktuelle Softwareversionen, die auf den ECU-Modulen installiert sind, als Reaktion auf Fortsetzen eines mehrzyklischen Aktualisierungsprozesses zu bestimmen. Der Prozessor ist außerdem dazu konfiguriert, den Aktualisierungsprozess als Reaktion auf die Abfrage zu pausieren, die eine Änderung von mindestens einer Softwareversion in eine andere Version ab dem Zeitpunkt identifiziert, an dem der Aktualisierungsprozess erstmals gestartet wurde. Der Prozessor ist zusätzlich konfiguriert, die Änderung an eine entfernten Quelle zu berichten.

Description

  • TECHNISCHES GEBIET
  • Die veranschaulichten Ausführungsformen betreffen im Allgemeinen ein Verfahren und eine Vorrichtung zur Handhabung der Übereinstimmung von mehrzyklischen Fahrzeugsoftwareaktualisierungen.
  • ALLGEMEINER STAND DER TECHNIK
  • Fahrzeughersteller haben angefangen, eine Vielzahl von Computermikroprozessoren in modernen Fahrzeugmodellen einzuschließen. Von umfangreichen Betriebssystemen, die das Infotainment und die Telematik im Fahrzeug steuern, zu kleinen Systemsteuerungen, wie etwa Fenstern oder digitalen Wegmessern, befindet sich ein breites Spektrum von Software auf Speichern, die diesen Mikroprozessoren zugeordnet sind. Da die Fahrzeugrechensysteme verbunden sind und die Systeme sowohl miteinander interagieren als auch sich eine Datenleitung teilen, die Fahrzeugbus genannt wird, gibt es die ständige Sorge, ob die Software auf einem System mit Software auf anderen Modulen funktioniert.
  • Der Fahrzeugbus ist eine geteilte Datenleitung, die der Beeinflussung durch jedes verbundene Modul unterliegt. Da alle Module in einem Controller-Area-Network-(CAN)System, die einen Fahrzeugbus verwenden, Daten mehrfach auf den Bus übertragen, gibt es eine Möglichkeit, dass fehlerhafte oder ungeeignete Software die Datenübertragung durch andere Module über den Bus negativ beeinflussen kann. Gleichzeitig gibt es einen erhöhten Bedarf von Kunden, dass ihre Fahrzeuge die aktualisierteste und am vollständigsten eingebundene Software aufweisen, die verfügbar ist. Diese Kombination führt dazu, dass Druck auf Originalgerätehersteller (original equipment manufacturers - OEMs) entsteht, um sowohl stabile als auch kontinuierlich Softwareaktualisierungen bereitzustellen.
  • Dieses Paradigma wäre möglicherweise überschaubarer, wenn die gesamte Software einen Hauptprozessor und ein einheitliches Betriebssystem verwenden würde, da es aber Dutzende oder sogar Hunderte von elektronischen Steuereinheiten (electronic control units - ECUs) gibt, die alle ihre eigene Software ausführen, und die jeweils mögliche Abhängigkeiten von anderen ECUs aufweisen, kann das Aktualisieren der Software von lediglich einer einzelnen ECU erhebliche Probleme in einem Fahrzeugnetzwerk verursachen, wenn es nicht mit Sorgfalt und Überlegung durchgeführt wird.
  • Aktualisierungen über Luftschnittstellen (over the air - OTA) sind zunehmend als ein Verfahren zum Aktualisieren von Fahrzeugsoftware beliebt geworden. Ein Fahrzeug lädt eine Aktualisierung herunter, wenn eine Internet- oder andere Fernverbindung verfügbar ist, und dann, wenn sich dem Fahrzeug eine angemessene Gelegenheit bietet, verarbeitet das Fahrzeug die Aktualisierung. Ursprünglich wurden die meisten OTA-Aktualisierungen durchgeführt, während sich ein Fahrzeug in einem geparkten Zustand befand, aber neue Modelle stellen bessere Verfahren zum Durchführen von OTA-Aktualisierungen bereit, während ein Fahrzeug gefahren wird. In beiden Fällen kann das Fahrzeug mehrere Zyklen benötigen, um die Aktualisierung abzuschließen, die typischerweise vor dem Verwenden aufgrund von möglichem Einfluss auf eine Fahrsituation vollständig abgeschlossen und verifiziert sein muss.
  • Das ältere Verfahren zum Aktualisieren von Software beinhaltete, dass ein Fahrzeug zu einem Händler gebracht wurde und die neuesten Versionen beliebiger benötigter Aktualisierungen vom Händler installiert wurden. Während dieses Modell noch immer häufig verwendet wird, weisen OTA-Aktualisierungen den naheliegenden Vorteil auf, dass sie ohne jegliche ausdrückliche Maßnahme durch den Kunden im Hintergrund auftreten. Es kann jedoch ein Problem auftreten, wenn der Kunde das Fahrzeug zu einem Händler fährt und Teile oder Softwareaktualisierungen austauschen oder modifizieren lässt. In diesem Fall können sich Kompatibilitätsprobleme ergeben, wenn eine vorherige Aktualisierung noch immer verarbeitet wird, und der Händler versucht, aktualisierte Software auf demselben oder einem zusammenhängenden Modul zu installieren.
  • KURZDARSTELLUNG
  • In einer ersten veranschaulichenden Ausführungsform beinhaltet ein System einen Prozessor, der dazu konfiguriert ist, eines oder mehrere elektronische Fahrzeugsteuereinheits(ECU-)module abzufragen, um aktuelle Softwareversionen, die auf den ECU-Modulen installiert sind, als Reaktion auf das Fortsetzen eines mehrzyklischen Aktualisierungsprozesses zu bestimmen. Der Prozessor ist außerdem dazu konfiguriert, den Aktualisierungsprozess als Reaktion auf die Abfrage zu pausieren, die eine Änderung von mindestens einer Softwareversion in eine andere Version ab dem Zeitpunkt identifiziert, an dem der Aktualisierungsprozess erstmals gestartet wurde. Der Prozessor ist zusätzlich konfiguriert, die Änderung an eine entfernten Quelle zu berichten.
  • In einer zweiten veranschaulichenden Ausführungsform beinhaltet ein System einen Prozessor, welcher dazu konfiguriert ist, eine Vielzahl von Softwareversionsbezeichnungen für elektronische Steuereinheits(ECU-)module von einem Fahrzeug zu empfangen. Der Prozessor ist außerdem dazu konfiguriert, auf Grundlage der Bezeichnungen zu bestimmen, dass eine neue Softwareversion für mindestens ein ECU-Modul verfügbar ist. Der Prozessor ist ferner dazu konfiguriert, die Kompatibilität der neuen Softwareversion mit den empfangen ECU-Modul-Softwareversionen zu bestimmen, die durch die Bezeichnungen identifiziert wurden, und das Fahrzeug anzuweisen, das mindestens eine ECU-Modul, als Reaktion auf das Bestimmen, dass die neue Softwareversion kompatibel ist, auf die neue Softwareversion zu aktualisieren.
  • In einer dritten veranschaulichenden Ausführungsform beinhaltet ein durch einen Computer umgesetztes Verfahren als Reaktion auf eine Bestimmung, dass versucht wird, eine mehrzyklische Softwareaktualisierung fortzusetzen, das Abfragen, um elektronische Steuereinheits(ECU-)modulsoftwareversionen zu erhalten. Das Verfahren beinhaltet außerdem das Senden einer Liste von geänderten ECU-Modulsoftwareversionen an eine entfernte Quelle und das Verhindern des Fortsetzens einer mehrzyklischen Softwareaktualisierung als Reaktion auf eine Bestimmung aus einer Abfrage, dass sich eine ECU-Modulsoftwareversion geändert hat. Das Verfahren beinhaltet ferner als Reaktion auf das Empfangen von Anweisungen von der entfernten Quelle, die Aktualisierung fortzusetzen, das Fortsetzen der mehrzyklischen Aktualisierung, wobei jegliche Änderungen integriert werden, die von der entfernten Quelle empfangen wurden.
  • Figurenliste
    • 1 veranschaulicht ein repräsentatives Fahrzeugrechensystem;
    • 2 veranschaulicht einen Aktualisierungsprozess;
    • 3 veranschaulicht einen Verifikationsprozess für das Verarbeiten einer OTA-Aktualisierung;
    • 4 veranschaulicht einen zweiten Prozess zur Aktualisierungsverarbeitung und Kompatibilitätsprüfung; und
    • 5 veranschaulicht einen Prozess zur Modulkompatibilitätsprüfung.
  • DETAILLIERTE BESCHREIBUNG
  • Detaillierte Ausführungsformen sind in der vorliegenden Schrift nach Bedarf offenbart; dennoch versteht es sich, dass die offenbarten Ausführungsformen lediglich veranschaulichend sind und in verschiedenen und alternativen Formen ausgeführt sein können. Die Figuren sind nicht unbedingt maßstabsgetreu; einige Merkmale können vergrößert oder verkleinert dargestellt sein, um Details bestimmter Komponenten zu zeigen. Dementsprechend sind hierin offenbarte konkrete strukturelle und funktionelle Einzelheiten nicht als einschränkend auszulegen, sondern lediglich als eine repräsentative Grundlage, um einen Fachmann eine vielfältige Ausführung des beanspruchten Gegenstands zu lehren.
  • 1 veranschaulicht eine beispielhafte Blockstruktur für ein fahrzeugbasiertes Rechensystem 1 (vehicle based computing system - VCS) für ein Fahrzeug 31. Ein Beispiel für ein derartiges fahrzeugbasiertes Rechensystem 1 ist das SYNC-System, hergestellt durch THE FORD MOTOR COMPANY. Ein mit einem fahrzeugbasierten Rechensystem ausgestattetes Fahrzeug kann eine visuelle Front-End-Schnittstelle 4 enthalten, welche sich im Fahrzeug befindet. Der Benutzer kann zudem in der Lage sein, mit der Schnittstelle zu interagieren, wenn diese zum Beispiel mit einem berührungsempfindlichen Bildschirm bereitgestellt ist. In einer anderen veranschaulichenden Ausführungsform erfolgt die Interaktion durch das Betätigen von Tasten, ein Sprachdialogsystem mit automatischer Spracherkennung und Sprachsynthese. Während SYNC ein Beispiel eines fahrzeugbasierten Rechensystems bereitstellt, kann es hilfreicher sein, das Fahrzeugrechensystem als ein oder mehrere elektronische Steuereinheiten anzusehen, von denen jeder eine verschiedene Aufgabe zugewiesen werden kann. Dies kann zum Beispiel eine Telematiksteuereinheit (telematics control unit - TCU), Verbindungsmodule, Gatewaymodule und verschiedenste andere beauftragte und wiederbeauftragbare Mikroprozessoreinheiten beinhalten, die im Fahrzeug installiert sind.
  • In der in 1 gezeigten veranschaulichenden Ausführungsform 1 steuert ein Prozessor 3 mindestens einen Teil des Betriebs des fahrzeugbasierten Rechensystems. Der in dem Fahrzeug bereitgestellte Prozessor ermöglicht die fahrzeuginterne Verarbeitung von Befehlen und Routinen. Ferner ist der Prozessor sowohl mit nicht dauerhaften 5 als auch dauerhaften Speichern 7 verbunden. In dieser veranschaulichenden Ausführungsform handelt es sich bei dem nicht dauerhaften Speicher um einen Direktzugriffsspeicher (random access memory - RAM) und bei dem dauerhaften Speicher um einen Festplattenspeicher (hard disk drive - HDD) oder Flash-Speicher. Im Allgemeinen kann der dauerhafte (nichtflüchtige) Speicher alle Speicherformen beinhalten, die Daten behalten, wenn ein Computer oder eine andere Vorrichtung abgeschaltet wird. Diese beinhalten unter anderem HDDs, CDs, DVDs, Magnetbänder, Festkörperlaufwerke, tragbare USB-Laufwerke und jede andere geeignete Form von dauerhaftem Speicher.
  • Der Prozessor ist zudem mit einer Reihe unterschiedlicher Eingänge ausgestattet, die dem Benutzer ermöglichen, eine Schnittstelle mit dem Prozessor zu bilden. In dieser veranschaulichenden Ausführungsform sind ein Mikrofon 29, ein Hilfseingang 25 (zur Eingabe 33), ein USB-Eingang 23, ein GPS-Eingang 24, Bildschirm 4, der eine Touchscreen-Anzeige sein kann, und ein BLUETOOTH-Eingang 15 alle bereitgestellt. Eine Eingangswähleinheit 51 ist ebenfalls bereitgestellt, damit ein Benutzer zwischen verschiedenen Eingängen wechseln kann. Eingaben sowohl an das Mikrofon als auch den Hilfsanschluss werden durch einen Wandler 27 von analog zu digital umgewandelt, bevor sie zum Prozessor weitergeleitet werden. Wenngleich nicht gezeigt, können zahlreiche Fahrzeugkomponenten und Hilfskomponenten, die mit dem VCS in Kommunikation stehen, ein Fahrzeugnetzwerk (wie etwa unter anderem ein CAN-Bus) verwenden, um Daten an das und von dem VCS (oder Komponenten davon) weiterzuleiten.
  • Ausgänge des Systems können unter anderem eine visuelle Anzeige 4 und einen Lautsprecher 13 oder eine Stereosystemausgang beinhalten. Der Lautsprecher ist mit einem Verstärker 11 verbunden und empfängt dessen Signal durch einen Digital-Analog-Wandler 9 von dem Prozessor 3. Eine Ausgabe kann zudem an eine entfernte BLUETOOTH-Vorrichtung, wie etwa PND 54, oder eine USB-Vorrichtung, wie etwa die Fahrzeugnavigationsvorrichtung 60, entlang der bidirektionalen Datenströme, die bei 19 bzw. 21 gezeigt sind, erfolgen.
  • In einer veranschaulichenden Ausführungsform verwendet das System 1 den BLUETOOTH-Sendeempfänger 15, um mit der Mobilvorrichtung 53 eines Benutzers zu kommunizieren 17 (z. B. Mobiltelefon, Smartphone, PDA oder jede andere WLAN-fähige Vorrichtung). Die Mobilvorrichtung kann anschließend verwendet werden, um beispielsweise durch Kommunikation 55 mit einem Mobilfunkmast 57 mit einem Netzwerk 61 außerhalb des Fahrzeugs 31 zu kommunizieren 59. In einigen Ausführungsformen kann es sich bei dem Mast 57 um einen WLAN-Zugangspunkt handeln.
  • Eine beispielhafte Kommunikation zwischen der Mobilvorrichtung und dem BLUETOOTH-Sendeempfänger wird durch das Signal 14 dargestellt.
  • Das Koppeln einer Mobilvorrichtung 53 mit dem BLUETOOTH-Sendeempfänger 15 kann durch eine Taste 52 oder eine ähnliche Eingabe angewiesen werden. Dementsprechend wird die CPU angewiesen, dass der fahrzeuginterne BLUETOOTH-Sendeempfänger mit einem BLUETOOTH-Sendeempfänger in einer Mobilvorrichtung gekoppelt wird.
  • Zwischen der CPU 3 und dem Netzwerk 61 können Daten beispielsweise unter Verwendung eines Datentarifs, Daten über Sprache oder DTMF-Töne kommuniziert werden, welche der Mobilvorrichtung 53 zugeordnet sind. Alternativ kann es wünschenswert sein, ein fahrzeuginternes Modem 63 zu beinhalten, das eine Antenne 18 aufweist, um Daten zwischen der CPU 3 und dem Netzwerk 61 über das Sprachband zu kommunizieren 16. Die Mobilvorrichtung 53 kann anschließend verwendet werden, um beispielsweise durch Kommunikation 55 mit einem Mobilfunkmast 57 mit einem Netzwerk 61 außerhalb des Fahrzeugs 31 zu kommunizieren 59. In einigen Ausführungsformen kann das Modem 63 eine Kommunikation 20 mit dem Mast 57 herstellen, um mit dem Netzwerk 61 zu kommunizieren. Als nicht einschränkendes Beispiel kann es sich beim Modem 63 um ein USB-Mobilfunkmodem und bei der Kommunikation 20 um eine Mobilfunkkommunikation handeln.
  • In einer veranschaulichenden Ausführungsform ist der Prozessor mit einem Betriebssystem bereitgestellt, das eine API zum Kommunizieren mit einer Modemanwendungssoftware beinhaltet. Die Modemanwendungssoftware kann auf ein eingebettetes Modul oder eine Firmware auf dem BLUETOOTH-Sendeempfänger zugreifen, um die drahtlose Kommunikation mit einem entfernten BLUETOOTH-Sendeempfänger (wie etwa dem in einer Mobilvorrichtung) abzuschließen. Bei Bluetooth handelt es sich um eine Teilmenge der IEEE-802-PAN-(Personal Area Network)Protokolle. IEEE-802-LAN-(Local Area Network)Protokolle beinhalten WLAN und weisen eine beträchtliche Kreuzfunktionalität mit IEEE 802 PAN auf. Beide eignen sich für die drahtlose Kommunikation in einem Fahrzeug. Ein weiteres Kommunikationsmittel, welches in diesem Bereich eingesetzt werden kann, sind die optische Freiraumkommunikation (wie beispielsweise IrDA) und nicht standardisierte Verbraucher-IR-Protokolle.
  • In einer anderen Ausführungsform beinhaltet die Mobilvorrichtung 53 ein Modem zur Sprachband- oder Breitbanddatenkommunikation. Bei der Daten-über-Sprache-Ausführungsform kann eine Technik umgesetzt werden, welche als Frequenzmultiplexverfahren bekannt ist, wenn der Besitzer der Mobilvorrichtung bei gleichzeitiger Datenübertragung über die Vorrichtung sprechen kann. Zu anderen Zeitpunkten, wenn der Besitzer der Vorrichtung nicht verwendet, kann für die Datenübertragung die ganze Bandbreite (300 Hz bis 3,4 kHz in einem Beispiel) verwendet werden. Während das Frequenzmultiplexverfahren bei der analogen Mobilfunkkommunikation zwischen dem Fahrzeug und dem Internet geläufig sein kann und nach wie vor verwendet wird, wurde es weitgehend durch Hybriden mit Codemultiplexverfahren (CDMA), Zeitmultiplexverfahren (TDMA), Raummultiplexverfahren (SDMA) für eine digitale Mobilfunkkommunikation ersetzt. Ist das Mobilgerät des Benutzers einem Datentarif zugeordnet, besteht die Möglichkeit, dass der Datentarif eine Breitbandübertragung ermöglicht und das System eine wesentlich größere Bandbreite nutzen könnte (wodurch sich die Datenübertragungsgeschwindigkeit erhöht). In noch einer anderen Ausführungsform wird die Mobilvorrichtung 53 durch eine Mobilfunkkommunikationsvorrichtung (nicht gezeigt) ersetzt, welche in dem Fahrzeug 31 verbaut ist. In noch einer weiteren Ausführungsform kann es sich bei der ND 53 eine Vorrichtung eines drahtlosen lokalen Netzwerks (LAN) handeln, die zum Beispiel (und ohne Beschränkung) über ein 802.11g-Netzwerk (d.h. WLAN) oder ein WiMax-Netzwerk kommunizieren kann.
  • In einer Ausführungsform können ankommende Daten durch die Mobilvorrichtung über Daten-über-Sprache oder einen Datentarif durch den fahrzeuginternen BLUETOOTH-Sendeempfänger und in den internen Prozessor 3 des Fahrzeugs weitergeleitet werden. Im Falle bestimmter temporärer Daten können die Daten zum Beispiel auf dem HDD oder einem anderen Speichermedium 7 gespeichert werden, bis die Daten nicht mehr benötigt werden.
  • Zusätzliche Quellen, welche eine Schnittstelle mit dem Fahrzeug herstellen können, beinhalten ein persönliches Navigationsgerät 54, die zum Beispiel einen USB-Anschluss 56 und/oder eine Antenne 58 aufweisen, ein bordseitiges Navigationsgerät 60 das einen USB- 62 oder einen anderen Anschluss aufweist, ein bordseitiges GPS-Gerät 24 oder ein separates Navigationssystem (nicht gezeigt), die Konnektivität zum Netzwerk 61 aufweisen. Bei USB handelt es sich um eines einer Klasse serieller Netzwerkprotokolle. Die seriellen Protokolle IEEE 1394 (FireWire™ (Apple), i.LINK™ (Sony) und Lynx™ (Texas Instruments)), 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 Einrichtung-zu-Einrichtung-Standards. Die Mehrheit der Protokolle kann entweder für die elektrische oder die optische Kommunikation umgesetzt werden.
  • Ferner könnte die CPU mit einer Vielfalt von anderen Hilfsvorrichtungen 65 in Kommunikation stehen. Diese Vorrichtungen können über eine drahtlose 67 oder drahtgebundene 69 Verbindung verbunden sein. Die Hilfsvorrichtungen 65 können unter anderem persönliche Medienwiedergabegeräte, drahtlose Gesundheitsvorrichtungen, tragbare Computer und dergleichen beinhalten.
  • Zudem oder alternativ dazu könnte die CPU mit einem fahrzeugbasierten drahtlosen Router 73 verbunden sein, zum Beispiel unter Verwendung eines WLAN-Sendeempfängers 71 (IEEE 803.11). Dies könnte der CPU ermöglichen, sich mit Fernnetzwerken in Reichweite des lokalen Routers 73 zu verbinden.
  • Neben der Ausführung beispielhafter Prozesse durch ein sich in einem Fahrzeug befindliches Fahrzeugrechensystem können die beispielhaften Prozesse in bestimmten Ausführungsformen durch ein Rechensystem ausgeführt werden, welches mit einem Fahrzeugrechensystem in Kommunikation steht. Ein derartiges System kann unter anderem eine drahtlose Vorrichtung (z. B. unter anderem ein Mobiltelefon) oder ein entferntes Rechensystem (z. B. unter anderem einen Server) beinhalten, welches über die drahtlose Vorrichtung verbunden ist. Zusammen können derartige Systeme als dem Fahrzeug zugeordnete Rechensysteme (vehicle associated computing systems - VACS) bezeichnet werden. In bestimmten Ausführungsformen können bestimmte Komponenten des VACS bestimmte Teile eines Prozesses ausführen, wobei dies von der konkreten Umsetzung des Systems abhängt. Wenn ein Prozess beispielsweise und nicht einschränkend einen Schritt des Sendens oder Empfangens von Informationen mit einer gekoppelten drahtlosen Vorrichtung aufweist, ist es wahrscheinlich, dass die drahtlose Vorrichtung den Teil des Prozesses nicht durchführt, da die drahtlose Vorrichtung Informationen nicht sich selbst bzw. von sich selbst „senden und empfangen“ würde. Ein Durchschnittsfachmann wird verstehen, wann es unangemessen ist, ein bestimmtes Rechensystem auf eine bestimmte Lösung anzuwenden.
  • Bei jeder hierin erörterten veranschaulichenden Ausführungsform wird ein beispielhaftes nicht einschränkendes Beispiel eines Prozesses gezeigt, der von einem Rechensystem durchführbar ist. Bezüglich jedes Prozesses kann das Rechensystem den Prozess ausführen, um, für den beschränkten Zweck der Ausführung des Prozesses, als ein Spezialprozessor konfiguriert zu werden, um den Prozess durchzuführen. Alle Prozesse müssen nicht in ihrer Gesamtheit durchgeführt werden und werden als Beispiele von Arten von Prozessen verstanden, die durchgeführt werden können, um Elemente der Erfindung zu erreichen. Zusätzliche Schritte können nach Bedarf zu den beispielhaften Prozessen hinzugefügt oder daraus entfernt werden.
  • In Bezug auf die veranschaulichenden Ausführungsformen, die in den Figuren beschrieben sind, die veranschaulichende Prozessabläufe zeigen, ist anzumerken, dass ein Universalprozessor temporär als ein Spezialprozessor zum Zwecke des Ausführens einiger oder aller der beispielhaften Verfahren, welche durch diese Figuren gezeigt werden, aktiviert werden kann. Wenn Code ausgeführt wird, der Anweisungen zum Durchführen einiger oder aller Schritte des Verfahrens bereitstellt, kann der Prozessor temporär erneut als ein Spezialprozessor eingesetzt werden, und zwar solange, bis das Verfahren abgeschlossen ist. In einem anderen Beispiel kann, bis zu einem angemessenen Grad, Firmware, die in Übereinstimmung mit einem vorkonfigurierten Prozessor agiert, veranlassen, dass der Prozessor als ein Spezialprozessor agiert, der zum Zwecke des Durchführens des Verfahrens oder einer angemessenen Variation davon bereitgestellt ist.
  • Während die gezeigten veranschaulichenden Beispiele im Hinblick auf eine Mehrfahrtzyklenaktualisierung erörtert werden, kann dasselbe Konzept für jede mehrzyklische (z. B. mehrfache außerzyklische usw.) Aktualisierung auftreten, bei der eine vorherige Aktualisierung noch immer lediglich teilweise zu einem Zeitpunkt verarbeitet ist, wenn eine weitere Quelle (z. B. Benutzer, Händler usw.) eine Aktualisierung des laufenden Moduls oder eines zusammenhängenden Moduls versucht.
  • Die veranschaulichenden Ausführungsformen schlagen einen Prozess vor, der es der Telematiksteuereinheit (TCU), die in diesen Beispielen die OTA-Aktualisierungen handhabt, ermöglicht, bei einem Ereignis „Zündung an“ alle Module abzufragen, die aktualisiert werden. Andere Auslösezeitpunkte (außer „Zündung an“) wären angemessen, wenn andere Aktualisierungsparadigmen verwendet würden (z. B. unter Verwendung des Ereignisses „Zündung aus“ zur Abfrageauslösung, wenn die Zyklen „Zündung aus“ für Aktualisierungen verwendet würden). Wenn sich Parameter auf den abgefragten Modulen geändert haben, wenn zum Beispiel ein weiterer Prozess, wie etwa ein Händler, ein Modul aktualisiert hat, kann die TCU alle Aktualisierungen unterbrechen und die Änderungen an die Cloud berichten. Die Cloud kann dann verifizieren, dass es keine Konflikte beim Fortsetzen der Aktualisierung geben wird. Wenn Konflikte bestehen, kann das TCU die Aktualisierung einfach einstellen und/oder ein neues Aktualisierungsmodul empfangen, das mit der aktuellen Konfiguration kompatibel ist, die durch die Abfrage bestimmt wurde.
  • Es ist erwähnenswert, dass die TCU-Abfrage Module einschließen kann, die mit Modulen zusammenhängen, die aktualisiert werden, selbst wenn diese zusammenhängenden Module im Augenblick nicht aktualisiert werden, da die Module, die aktualisiert werden, eine gewisse Abhängigkeit von den zusammenhängenden Modulen oder eine gewisse notwendige Kompatibilität mit diesen aufweisen.
  • Die TCU ist außerdem in einigen Fällen in der Lage zu bestimmen, wie fortgefahren werden soll, ohne die Cloud zu kontaktieren. Zum Beispiel könnte die TCU mit einer aktualisierbaren Kompatibilitätsliste bereitgestellt sein, so dass, zum Beispiel, wenn ein Händler ein Modul aktualisiert hat, die TCU-Liste mit den Kompatibilitätsversionen für andere Module aktualisiert würde, die möglicherweise vom Modul abhängen, das vom Händler aktualisiert wurde. In anderen Fällen kann die TCU beschließen, wenn Änderungen erfasst werden, die keine Module betreffen, die mit laufenden Aktualisierungen zusammenhängen, fortzufahren, da die Kompatibilität nicht betroffen sein sollte.
  • 2 veranschaulicht einen Aktualisierungsprozess. In diesem veranschaulichenden Beispiel empfängt die TCU einen OTA-Aktualisierungsbefehl von der Cloud 201, der anzeigt, dass die TCU eine OTA-Aktualisierung verarbeiten sollte. Als Reaktion auf den Befehl beginnt die TCU die Aktualisierung 203 während eines Zyklus „Zündung an“ (das für dieses Beispiel verwendete Modell).
  • Wenn die Aktualisierung während des Zyklus „Zündung an“ abgeschlossen wird, kann der Prozess einfach abgebrochen werden, da Kompatibilitätsprobleme, die während des Zyklus „Zündung an“ auftraten, unwahrscheinlich sind (da die Kompatibilität vermutlich vom Server in der Cloud verifiziert wurde, bevor die Aktualisierung gesendet wurde). Wenn der Prozess nicht abgeschlossen wird 205, wird der Prozess letztendlich einen Zustand „Zündung aus“ 207 erfassen, der das Verarbeiten der Aktualisierung beendet. Solange der Prozess keinen Zustand „Zündung aus“ erfasst, fährt die Aktualisierung fort 215.
  • Wenn der Zustand „Zündung aus“ erfasst wird, speichern 209 die aktualisierenden ECU und die TCU jegliche Statusdaten, die benötigt werden, um die Aktualisierung beim nächsten Zyklus „Zündung an“ 211 fortzufahren. Sobald der Zustand „Zündung an“ erfasst wird 211, ruft der Prozess jegliche gespeicherten Zustandsdaten 213 ab und die Aktualisierung fährt fort 215. Dieser veranschaulichende Prozess zeigt das Aktualisierungsmodell, wie es aktuell besteht, ohne die Verifizierung von Moduländerungen während des Zustands „Zündung aus“. Dieses Aktualisierungsmodell unterliegt den möglichen hierin beschriebenen Problemen, nämlich, dass ein Modul, von dem ein Aktualisierungsmodul abhängt, während des Zustands „Zündung aus“ geändert wird, und das Aktualisierungsmodul die Aktualisierung abschließt, und der TCU dann zwei möglicherweise inkompatible Module geboten werden, obwohl beide gerade aktualisiert wurden.
  • 3 veranschaulicht einen Verifikationsprozess für das Verarbeiten einer OTA Aktualisierung. In diesem veranschaulichenden Beispiel empfängt der Prozess ein OTA-Aktualisierungsereignis von einer entfernten Quelle 301. Wieder verzögert der Prozess die OTA-Aktualisierung, bis der Prozess einen Zustand „Zündung an“ 303 erfasst.
  • Sobald der Prozess einen Zustand „Zündung an“ 303 erfasst, fragt der Prozess ein Aktualisierungsmodul 305 an (ein Modul, das aktualisiert wird), um zu sehen, ob es Änderungen am Aktualisierungsmodul 307 gibt, die während des Zustand „Zündung aus“ erfolgten. Zum Beispiel könnte ein Händler die auf dem Aktualisierungsmodul installierte Software vollständig überschrieben haben, wodurch die laufende Aktualisierung unnötig würde. Aber selbst in diesem Fall kann der Händler das Modul mit einer falschen Version (bezüglich der Kompatibilität) oder einer älteren Softwareversion als der aktuell bestehenden aktualisiert haben. Dementsprechend unterbricht der Prozess die laufende Aktualisierung 309.
  • Der Prozess berichtet dann die erfasste Änderung zurück an die Cloud 311 und empfängt eine Antwort 313 von der Cloud, die den Prozess anweist, wie er fortfahren soll. Das Unterbrechen und Berichten wird in diesem Beispiel auf aufeinanderfolgende Weise gezeigt, es ist aber vertretbar, dass alle Daten gesammelt werden können/werden, bevor das Berichten und das Antworten erfolgt.
  • Zusätzlich zum Bestimmen, ob sich die Parameter des Aktualisierungsmoduls geändert haben, kann der Prozess außerdem bestimmen, ob es andere Module gibt, die auf Softwareänderungen 319 überprüft werden müssen. Dies kann eine Bestimmung im Hinblick auf alle Module am Fahrzeug sein oder lediglich im Hinblick auf Module, die eine bekannte bestehende Beziehung zu einem Aktualisierungsmodul aufweisen. Wenn Module zum Abfragen verbleiben, wird der Prozess zu einem nächsten Modul 321 übergehen und den Abfrageprozess für jedes relevante Modul wiederholen.
  • Sobald keine Module zum Aktualisieren verbleiben und der Prozess eine Anweisung zum Fortfahren 315 von der Cloud empfangen hat, insoweit, dass der Prozess jegliche geänderten Module erfasst und berichtet hat, kann der Prozess mit der Aktualisierung für den aktuellen Zyklus „Zündung an“ 323 fortfahren.
  • Wenn die Cloud den Prozess angewiesen hat, nicht fortzufahren 315, kann der Prozess das Aktualisieren der identifizierten Module 317 einstellen. Wenn der Prozess keine Änderungen an relevanten Modulen erfasst hat, kann der Prozess ohne ausdrückliche Anweisung von der Cloud bestimmen, dass das Fortfahren zulässig ist.
  • Das folgende veranschaulichende Szenario zeigt ein Beispiel von zwei Modulen, ECU1 und ECU2, die beide unterschiedliche mögliche Softwarekonfigurationen aufweisen. In diesem Beispiel ist ECU1 über OTA aktualisierbar und ECU2 ist nicht über OTA aktualisierbar. Das bedeutet, dass eine direkte Schnittstelle notwendig ist, um ECU2 durch einen Besitzer, einen Händler usw. zu aktualisieren. In diesem Beispiel führt ECU1 die Softwareversion C aus und ECU2 führt die Softwareversion 3 aus und ein Kunde würde es bevorzugen, dass die neuesten und kompatiblen Versionen auf jedem Modul installiert würden. ECU1 und ECU2 weisen derartig gewisse Kreuzkompatibilitätsanforderungen auf, dass die ECU2-Versionen 1-3 mit den ECU1-Versionen A-F kompatibel sind, aber die ECU2-Versionen 4-9 lediglich mit den ECU1-Versionen A-D und G-H kompatibel sind (E und F ausnehmend und G und H hinzufügend). Das bedeutet, dass die ECU2-Version 4 und die ECU1-Version E ein Inkompatibilitätsproblem darstellen würden.
  • Dieses Beispiel wird im Hinblick auf 4 beschrieben, die einen zweiten Prozess zur Aktualisierungsverarbeitung und Kompatibilitätsprüfung veranschaulicht. In diesem Beispiel erhält die TCU zuerst die aktuelle Konfiguration 401 der Module ECU1 und ECU2 (C bzw. 3). Die TCU sendet eine Liste der Softwareversionen der unterschiedlichen Module an die Cloud 403 und empfängt als Reaktion darauf OTA-Aktualisierungsanweisungen 405. In diesem Beispiel sendet die Cloud Anweisungen, um ECU1 auf die neueste Version zu aktualisieren, die ebenfalls mit der ECU2-Version 3 kompatibel ist, da lediglich ECU1 über OTA aktualisierbar ist. In diesem Fall besagen diese Anweisungen, dass die TCU ECU1 auf Version F aktualisieren soll.
  • In diesem Beispiel wird das Fahrzeug ebenfalls betrieben, so dass die Aktualisierung unmittelbar beginnen kann, sofern die Zündung nicht ausgeschaltet wurde 407. Die Aktualisierung wird verarbeitet 415 und sobald ECU1 das Verarbeiten abgeschlossen hat, wird ECU1 auf die neu installierte Version F wechseln. Wenn das System bereit ist, auf die neue Software 417 zu wechseln, kann eine letzte Kompatibilitätsprüfung vorgenommen werden 419. Wenn das Wechseln nicht bereit ist 417, dann wird die Aktualisierung noch immer verarbeitet und wird damit fortfahren, bis der Prozess einen Zustand „Zündung aus“ erfasst oder die Aktualisierung abgeschlossen wird.
  • Die letzte Kompatibilitätsprüfung stellt sicher, dass die derzeitig installierte Software noch immer mit allen anderen Modulen gemäß der definierten Kompatibilität kompatibel ist. Wenn die installierte Software noch immer kompatibel ist 421, wird der Prozess auf ECU1 auf die neue Version der Software wechseln und diese Software (Version F) für ECU1 verwenden. Wenn es eine Änderung in letzter Minute gab, wenn zum Beispiel ECU2 auf Version 9 geschaltet wurde, und Version F nicht länger kompatibel ist, dann kann der Prozess ein neues Versionsverzeichnis an die Cloud schicken, so dass die Cloud bestimmen kann, welche Software tatsächlich auf ECU1 installiert werden soll (in diesem Fall Version H, was die neueste Software ist und auch mit der jetzigen Version 4 auf ECU2 kompatibel ist).
  • Während des Aktualisierungsprozesses wird der Prozess die Aktualisierung unterbrechen, bis der Prozess einen Zustand „Zündung an“ 409 erfasst, wenn ein „Zündung aus“ auftritt. Sobald ein Zustand „Zündung an“ während eines unterbrochenen Aktualisierungsprozesses erfasst wird, prüft der Prozess das vorliegende Modul (das in diesem Beispiel noch immer aktualisiert wird) und alle zugeordneten Module, wie etwa ECU2.
  • In diesem Beispiel fuhr der Kunde zu einem Händler und „Zündung aus“ trat beim Händler auf. Beim Versuch, den Bedarf des Kunden zu erfüllen, installierte der Händler ECU2-Version 9, was die neueste ECU2-Version ist und ebenfalls mit Version C auf ECU1 kompatibel ist, da ECU1 noch immer Version C ausführte (da es die Aktualisierung auf Version D noch nicht abgeschlossen hatte). Also wurden aus Sicht des Händlers alle Kompatibilitätsprüfungen erfüllt und der Kunde weist nun Version C auf ECU1 und Version 9 auf ECU2 auf.
  • Beim nächsten Zustand „Zündung an“ 409 erfasst der Prozess, dass das Modul ECU2 auf Version 9 geändert wurde 413. Da dies ein Kompatibilitätsproblem darstellen könnte (und es in diesem Fall auch so ist), unterbricht der Prozess die Aktualisierung und berichtet die Änderung zurück an die Cloud 403. Die Cloud kann dann bestimmen, dass die Aktualisierung auf Version D auf ECU1 eingestellt wird, da D und 9 inkompatibel sind, und kann stattdessen eine Aktualisierung auf Version H anweisen, was sowohl die neueste Version für ECU1 ist als auch mit Version 9 kompatibel ist.
  • Die Cloud hätte in diesem Beispiel das Aktualisieren auf Version H nicht unmittelbar zu Beginn anweisen können, da H und Version 3 (auf ECU2) inkompatibel sind. Das Beste, was die Cloud hätte unternehmen können, wäre das Anweisen einer Aktualisierung auf Version F. Das Aktualisieren auf Version F hätte allerdings zum selben Problem geführt, sobald ECU2 auf eine der Versionen 4-9 aktualisiert worden wäre, da keine dieser Versionen mit der Version F kompatibel ist.
  • Dieses Beispiel verdeutlicht die Komplexität des erfolgreichen Aktualisierens eines Systems mit einer Reihe von unabhängigen und voneinander abhängenden ECUs. Da bestimmte ECUs aktualisiert werden können, während eine andere ECU-Aktualisierung unterbrochen ist, sind Probleme vorprogrammiert. Durch die dargestellten veranschaulichenden Beispiele helfen Kompatibilitätsprüfungen sicherzustellen, dass die Systemintegrität aufrechterhalten bleibt, wenn Aktualisierungen von sowohl OTA als auch anderen Quellen laufen.
  • 5 veranschaulicht einen Prozess zur Modulkompatibilitätsprüfung, der zum Beispiel in der Cloud oder an jedem Ort auftreten kann, an dem das Aktualisierungsverzeichnis zusammengeführt wird. In diesem veranschaulichenden Beispiel empfängt der Prozess ECU-Software-/Firmwareversionen für alle relevanten Module (unter anderem alle Module beinhaltend, die sowohl über OTA als auch nicht über OTA aktualisierbar sind). Das Empfangen der Modulversionsdaten für nicht über OTA aktualisierbare Module kann noch immer wichtig sein, da die Kompatibilität neuer OTA-Aktualisierungsversionen zum Teil von nicht über OTA aktualisierbaren Modulen abhängen kann.
  • In diesem Beispiel bestimmt der Prozess für jede empfangene über OTA aktualisierbare ECU-Modulversion, ob eine aktualisierte Version der Software für dieses konkrete Modul verfügbar ist 503. Wenn es eine aktualisierte Version gibt 503, dann führt der Prozess eine Kompatibilitätsprüfung durch.
  • Der Prozess kann eine neueste Version auswählen (und rückwärts arbeiten bis die Kompatibilität gefunden wurde) oder er kann eine neueste Version auswählen, von der bekannt ist, dass sie mit mindestens einem anderen Modul kompatibel ist 507. In der anfänglichen Auswahl kann eine schnelle Datenbanksortierung unter Verwendung der empfangenen Modulversionen die Kompatibilität 505 der anfänglichen Auswahl sicherstellen.
  • Der Prozess führt ein Verzeichnis, das Anweisungen und/oder Daten zum Verarbeiten der Aktualisierung beinhaltet, zusammen und sendet 511 es an die TCU. Die TCU verarbeitet die Aktualisierung über möglicherweise mehrere Zündungszyklen und berichtet zurück an die Cloud, wenn Änderungen der anfänglichen ECU-Konfiguration durch die TCU erfasst werden.
  • Wenn die TCU die Aktualisierung nicht als abgeschlossen berichtet 513 und stattdessen einen neuen Satz von ECU-Versionen gesendet hat 517, was eine Änderung einer oder mehrerer ECU-Softwareversionen anzeigt, prüft der Prozess nochmals, um zu sehen, ob die aktuell angewiesene (und unterbrochene) Aktualisierung mit den neuen Versionen kompatibel ist 505.
  • Wenn die Aktualisierung kompatibel ist, kann der Prozess das anfängliche Verzeichnis erneut senden oder einfach eine Anweisung senden, dass die TCU mit dem Aktualisierungsverarbeiten fortfahren soll. Wenn die vorher angewiesene Aktualisierung nun inkompatibel ist (wie es in dem vorhergehenden Beispiel der Fall war), kann der Prozess eine andere kompatible Version auswählen, die mit der bestehenden Konfiguration kompatibel ist 507.
  • Wenn es keine neue Version gibt, das heißt, wenn die neueste kompatible Version bereits auf der ECU installiert ist, die aktualisiert wird, kann der Prozess abbrechen (und möglicherweise eine Anweisung zum Einstellen der Aktualisierung senden). Wenn es eine neuere (neuer als die aktuell installierte) Version gibt 509, die auch kompatibel ist, kann der Prozess ein neues Verzeichnis senden, das die TCU anweist, die Aktualisierung auf die neueste kompatible Version zu ändern, die durch den Prozess identifiziert wurde.
  • Die veranschaulichenden Ausführungsformen stellen eine Kompatibilitätsprüfung dar, die zum mehrfachen Ändern von Aktualisierungsanweisungen für ein einzelnes Modul führen kann, bevor eine Aktualisierung für das Modul abgeschlossen ist. Trotzdem helfen die Kompatibilitätsprüfungen dabei, Kundenprobleme zu vermeiden, und stellen die Systemintegrität sicher, während gleichzeitig dem Kunden ermöglicht wird, ständig Nutzen aus den neuesten kompatiblen verfügbaren Softwareversionen für mindestens die über OTA aktualisierbaren Module am Fahrzeug zu ziehen.
  • Während vorstehend beispielhafte Ausführungsformen beschrieben sind, sollen diese Ausführungsformen nicht alle möglichen Formen der Erfindung beschreiben. Die in der Beschreibung verwendeten Ausdrücke sind vielmehr beschreibende Ausdrücke als einschränkende Ausdrücke, und es versteht sich, dass unterschiedliche Änderungen vorgenommen werden können, ohne vom Geist und Schutzumfang der Erfindung abzuweichen. Zusätzlich können die Merkmale verschiedener implementierender Ausführungsformen auf logische Weise kombiniert werden, um situationsgerechte Variationen von hier beschriebenen Ausführungsformen zu bilden.

Claims (16)

  1. System, umfassend: einen Prozessor, der dazu konfiguriert ist: das Abfragen von einem oder mehreren elektronischen Steuereinheitsmodulen (Electronic Control Unit modules - ECU-Module) eines Fahrzeugs, um zu bestimmen, ob aktuelle Softwareversionen auf den ECU-Modulen installiert sind, als Reaktion auf Fortsetzen eines mehrzyklischen Aktualisierungsprozesses; das Pausieren des Aktualisierungsprozesses als Reaktion darauf, dass die Abfrage eine Änderung von mindestens einer Softwareversion in eine andere Version von dem Zeitpunkt, zu dem der Aktualisierungsprozess erstmals gestartet wurde, identifiziert; und das Berichten der Änderung an einer entfernten Quelle.
  2. System nach Anspruch 1, wobei der mehrzyklische Aktualisierungsprozess nach einer Änderung des Zündzustandes fortgesetzt wird.
  3. System nach Anspruch 1, wobei der Prozessor konfiguriert ist, um mindestens ECU-Module abzufragen, die durch den mehrzyklischen Aktualisierungsprozess geändert werden.
  4. System nach Anspruch 1, wobei der Prozessor konfiguriert ist, um mindestens ECU-Module abzufragen, die eine vordefinierte Kompatibilitätsanforderungen mit den ECU-Modulen aufweisen, die durch den mehrzyklischen Aktualisierungsprozess geändert werden.
  5. System nach Anspruch 1, wobei der Prozessor konfiguriert ist, um alle ECU-Module abzufragen.
  6. System nach Anspruch 1, wobei der Prozessor in einer Telematiksteuereinheit (telematics control unit - TCU) beinhaltet ist.
  7. System nach Anspruch 1, wobei der Prozessor zu Folgendem konfiguriert ist: das Empfangen von Anweisungen von der entfernten Quelle bezüglich einer Änderung des mehrzyklischen Aktualisierungsprozesses als Reaktion darauf, dass die Abfrage ferner eine neue Softwareversion zur Installation auf mindestens einer der ECU-Module identifiziert, die vorangehend durch den mehrzyklischen Aktualisierungsprozess modifiziert wurden; das Modifizieren des mehrzyklischen Aktualisierungsprozesses, um die Änderung zu integrieren; und das Fortsetzen des modifizierten mehrzyklischen Aktualisierungsprozesses als Reaktion auf die Anweisungen.
  8. System nach Anspruch 1, wobei der Prozessor zu Folgendem konfiguriert ist: das Empfangen von Anweisungen von der entfernten Quelle, um den mehrzyklischen Aktualisierungsprozess unverändert fortzusetzen, als Reaktion auf das Berichten; und das Fortsetzen des mehrzyklischen Aktualisierungsprozesses als Reaktion auf die Anweisungen.
  9. System, umfassend: einen Prozessor, der dazu konfiguriert ist: das Empfangen einer Vielzahl von Softwareversionsbezeichnungen für elektronische Steuereinheitsmodule (Electronic Control Unit module - ECU-Modul) von einem Fahrzeug; das Bestimmen auf Grundlage der Bezeichnungen, dass eine neue Softwareversion für mindestens ein ECU-Modul verfügbar ist; das Bestimmen der Kompatibilität der neuen Softwareversion mit den empfangen ECU-Modul-Softwareversionen, die durch die Bezeichnungen identifiziert wurden; und das Anweisen des Fahrzeugs, das mindestens eine ECU-Modul, als Reaktion auf das Bestimmen, dass die neue Softwareversion kompatibel ist, auf die neue Softwareversion zu aktualisieren.
  10. System nach Anspruch 9, wobei der Prozessor konfiguriert ist, um Daten zum Verarbeiten der Aktualisierung zu übermitteln.
  11. System nach Anspruch 9, wobei der Prozessor zu Folgendem konfiguriert ist: das Bestimmen, dass die entsprechenden neuen Softwareversionen für eine Vielzahl von ECU-Modulen verfügbar sind; und das Bestimmen der Kompatibilität der neuen Softwareversion für jede von den neuen Softwareversionen sowohl mit den empfangenen ECU-Softwareversionen als auch mit anderen der neuen Softwareversionen.
  12. System nach Anspruch 11, wobei der Prozessor konfiguriert ist, um zu bestimmen, dass eine andere neue Softwareversion für eines von den ECU-Modulen verfügbar ist, für das eine vorangehend bestimmte neue Softwareversion zu einer Inkompatibilität mit entweder den empfangenen ECU-Softwareversionen oder den anderen der neuen Softwareversionen geführt hat.
  13. System nach Anspruch 12, wobei der Prozessor konfiguriert ist, um die Kompatibilitätsbestimmung für die andere neue Softwareversion zu wiederholen.
  14. System nach Anspruch 9, wobei der Prozessor konfiguriert ist, um zu bestimmen, dass eine andere neue Softwareversion für mindestens eines von den ECU-Modulen verfügbar ist, als Reaktion auf eine Bestimmung, dass eine Inkompatibilität der neuen Softwareversion mit einer empfangenen ECU-Modul-Softwareversion besteht.
  15. System nach Anspruch 14, wobei der Prozessor konfiguriert ist, um die Kompatibilitätsbestimmung für die andere neue Softwareversion zu wiederholen.
  16. System nach Anspruch 9, wobei der Prozessor zu Folgendem konfiguriert ist: das Empfangen einer Angabe, das eine vorangehend angewiesene Aktualisierung durch das Fahrzeug pausiert wurde; das Empfangen einer Liste von aktualisierten ECU-Modul-Softwareversionen von dem Fahrzeug; das Bestimmen der Kompatibilität der neuen Softwareversion mit den aktualisierten ECU-Modul-Softwareversionen; und das Bestimmen, dass eine andere neue Softwareversion für das mindestens eine von den ECU-Modulen verfügbar ist, als Reaktion auf eine Bestimmung, dass eine Inkompatibilität der neuen Softwareversion mit einer aktualisierten ECU-Modul-Softwareversion besteht.
DE102018103209.9A 2017-02-16 2018-02-13 Verfahren und vorrichtung zur handhabung der übereinstimmung von mehrzyklischen fahrzeugsoftwareaktualisierungen Pending DE102018103209A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/434,457 US10416985B2 (en) 2017-02-16 2017-02-16 Method and apparatus for multi cycle vehicle software update compliance handling
US15/434,457 2017-02-16

Publications (1)

Publication Number Publication Date
DE102018103209A1 true DE102018103209A1 (de) 2018-08-16

Family

ID=62982528

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018103209.9A Pending DE102018103209A1 (de) 2017-02-16 2018-02-13 Verfahren und vorrichtung zur handhabung der übereinstimmung von mehrzyklischen fahrzeugsoftwareaktualisierungen

Country Status (3)

Country Link
US (1) US10416985B2 (de)
CN (1) CN108446129B (de)
DE (1) DE102018103209A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10496469B2 (en) 2017-07-25 2019-12-03 Aurora Labs Ltd. Orchestrator reporting of probability of downtime from machine learning process
JP7010049B2 (ja) * 2018-02-16 2022-01-26 トヨタ自動車株式会社 車両制御装置、プログラムの更新確認方法および更新確認プログラム
CN109358867B (zh) * 2018-08-30 2022-06-03 阿波罗智能技术(北京)有限公司 无人车应用自动升级方法、装置、***及存储介质
CN109144553A (zh) * 2018-09-13 2019-01-04 绿驰汽车科技(上海)有限公司 一种车载电控单元软件更新方法
CN111385191B (zh) * 2018-12-28 2022-03-15 联合汽车电子有限公司 车载互联网关、车辆ota升级***和方法、计算机存储介质
JP2022109039A (ja) * 2021-01-14 2022-07-27 トヨタ自動車株式会社 センタ、更新管理方法及び更新管理プログラム
US11271971B1 (en) * 2021-03-19 2022-03-08 King Saud University Device for facilitating managing cyber security health of a connected and autonomous vehicle (CAV)
JP7406522B2 (ja) * 2021-03-25 2023-12-27 本田技研工業株式会社 制御装置、及び、端末装置
US11853100B2 (en) * 2021-04-12 2023-12-26 EMC IP Holding Company LLC Automated delivery of cloud native application updates using one or more user-connection gateways
JP7464013B2 (ja) * 2021-07-05 2024-04-09 トヨタ自動車株式会社 センタ、otaマスタ、方法、プログラム、及び車両
US11829748B1 (en) 2021-09-29 2023-11-28 Geotab Inc. Systems and methods for safe over-the-air update of electronic control units in vehicles
US11681518B2 (en) * 2021-09-29 2023-06-20 Geotab Inc. Systems and methods for safe over-the-air update of electronic control units in vehicles

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9443358B2 (en) * 1995-06-07 2016-09-13 Automotive Vehicular Sciences LLC Vehicle software upgrade techniques
US6282709B1 (en) * 1997-11-12 2001-08-28 Philips Electronics North America Corporation Software update manager
JP4286633B2 (ja) * 2003-10-28 2009-07-01 富士通テン株式会社 ソフトウェア更新装置およびソフトウェア更新方法
US7017040B2 (en) 2003-12-04 2006-03-21 Intel Corporation BIOS update file
US20060259207A1 (en) * 2005-04-20 2006-11-16 Denso Corporation Electronic control system for automobile
US8151257B2 (en) * 2007-05-29 2012-04-03 Sap Ag Managing different versions of server components regarding compatibility with collaborating servers
US20100228404A1 (en) * 2009-03-06 2010-09-09 Link Ii Charles M Method and system for configuring and provisioning a vehicle
JP5629927B2 (ja) * 2010-11-12 2014-11-26 クラリオン株式会社 車載機のオンライン更新方法
ES2902644T3 (es) 2011-02-11 2022-03-29 Siemens Healthcare Diagnostics Inc Sistema y método para actualización segura de software
US8505004B2 (en) * 2011-05-20 2013-08-06 Xerox Corporation Methods and systems for providing software updates using a cloud administration system
US9015837B1 (en) 2011-09-29 2015-04-21 Google Inc. Systems and methods for verifying an update to data of an electronic device
US20140006555A1 (en) * 2012-06-28 2014-01-02 Arynga Inc. Remote transfer of electronic images to a vehicle
WO2014181472A1 (ja) * 2013-05-10 2014-11-13 三菱電機株式会社 空調システム
US8918775B1 (en) * 2013-07-12 2014-12-23 Ca, Inc. Dynamic release control of software application version changes
US9767655B2 (en) * 2013-10-31 2017-09-19 GM Global Technology Operations LLC Methods, systems and apparatus for providing notification that a wireless communication device has been left inside a vehicle
US10140109B2 (en) * 2014-02-25 2018-11-27 Ford Global Technologies, Llc Silent in-vehicle software updates
US9436456B2 (en) * 2014-04-17 2016-09-06 Myine Electronics, Inc. System and method for management of software updates at a vehicle computing system
US10402184B2 (en) * 2014-05-20 2019-09-03 Ford Global Technologies, Llc Module interface for vehicle updates
JP6333977B2 (ja) * 2014-06-19 2018-05-30 日立オートモティブシステムズ株式会社 車載プログラム書込み装置
JP6227794B2 (ja) * 2014-09-26 2017-11-08 日立オートモティブシステムズ株式会社 車両制御装置、リプログラミングシステム
US9639344B2 (en) * 2014-12-11 2017-05-02 Ford Global Technologies, Llc Telematics update software compatibility
WO2016196106A1 (en) * 2015-05-29 2016-12-08 Nike, Inc. Athletic activity data device firmware update
US9916151B2 (en) * 2015-08-25 2018-03-13 Ford Global Technologies, Llc Multiple-stage secure vehicle software updating
US10880404B2 (en) * 2015-09-29 2020-12-29 Hitachi Automotive Systems, Ltd. On-vehicle control device and on-vehicle control device information update system
KR101792046B1 (ko) * 2015-10-29 2017-11-20 현대자동차주식회사 단말기, 차량 및 그 제어 방법
DE102015221330A1 (de) * 2015-10-30 2017-05-04 Robert Bosch Gmbh Verfahren und Vorrichtung zum robusten Aktualisieren von Firmware eines Fahrzeuges über eine Luftschnittstelle
US12001825B2 (en) * 2016-02-19 2024-06-04 Ford Global Technologies, Llc Method and apparatus for vehicle software update installation
US11782691B2 (en) * 2016-02-19 2023-10-10 Ford Global Technologies, Llc Method and apparatus for over the air updates
US10002082B2 (en) * 2016-02-19 2018-06-19 Ford Global Technologies, Llc Method and apparatus for cyclical key-off file replacement
KR20170127138A (ko) * 2016-05-11 2017-11-21 현대자동차주식회사 업데이트 소프트웨어 제공 시스템 및 그 방법
US20180024826A1 (en) * 2016-07-19 2018-01-25 Ford Global Technologies, Llc Vehicle region-specific software updates distribution
US10782955B2 (en) * 2017-01-03 2020-09-22 Ford Global Technologies, Llc Pre-shutdown swap verification

Also Published As

Publication number Publication date
CN108446129A (zh) 2018-08-24
US20180232223A1 (en) 2018-08-16
CN108446129B (zh) 2023-10-24
US10416985B2 (en) 2019-09-17

Similar Documents

Publication Publication Date Title
DE102018103209A1 (de) Verfahren und vorrichtung zur handhabung der übereinstimmung von mehrzyklischen fahrzeugsoftwareaktualisierungen
DE102017100751A1 (de) Verfahren und vorrichtung für fahrzeug-software-updateinstallation
DE102015107189A1 (de) Modulschnittstelle für Fahrzeugaktualisierungen
DE102014204222A1 (de) Verfahren und vorrichtung für die umprogrammierung mehrerer fahrzeugsoftwaremodule
DE102017100750A1 (de) Verfahren und vorrichtung für over-the-air-updates
DE102011079875A1 (de) Bereitstellung von daten an ein fahrzeug-infotainment-datenverarbeitungssystem
DE102015116703A1 (de) Verfahren und Systeme zur Aktualisierung eines Fahrzeugdatenverarbeitungssystems
DE102015108793A1 (de) Fahrzeugdownload mittels entfernter Mobilvorrichtung
DE102016100430A1 (de) Verfahren und Systeme zur Aktualisierung von Fahrzeugsteuerungen
DE102015201448A1 (de) Verfahren und Gerät für bleibende übertragbare persönlich anpassbare Fahrzeugeinstellungen
DE102016100203A1 (de) Verfahren und Systeme zur Aktualisierung von Fahrzeugsteuerungen
DE102012106791A1 (de) Verfahren und vorrichtung zur automatischen modulaufrüstung
DE102013216055A1 (de) Verfahren und Vorrichtungen für Fahrzeugrechensystem-Softwareaktualisierungen
DE102019109672A1 (de) Rückgängigmachung nach einem teilausfall in mehreren elektronischen steuergeräten mittels over-the-air-updates
DE102018100095A1 (de) Softwareaktualisierungs-verwaltung
DE102015108349A1 (de) Verfahren und vorrichtung für das dynamische aktualisieren einer fahrzeugmodulkonfigurationsaufzeichnung
DE102015206764A1 (de) System und Verfahren zum Verwalten von Softwareaktualisierungen an einem Fahrzeugrechensystem
DE102016102509A1 (de) Verfahren und Vorrichtung zur Anwendungsverwaltung und -steuerung
DE102012213027A1 (de) Verfahren und vorrichtungen zur softwareaktualisierung
DE102015208750A1 (de) Over-the-air-fahrzeugproblembehebung
DE112018001894T5 (de) Steuervorrichtung, Übertragungsverfahren und Computerprogramm
DE102014219540A1 (de) Verfahren und eine Einrichtung zur bedarfsgerechten drahtlosen Modulaktualisierung
DE102014118953A1 (de) Verfahren und System für eine Haupteinheit zum Empfangen einer Anwendung
DE102015200893A1 (de) Vorrichtung und Verfahren zur Softwareimplementierung zwischen einem Fahrzeug und Mobilgerät
DE102017125568A1 (de) Verfahren und anordnung zur verwaltung von verbindungen zur datenübertragung

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: LORENZ SEIDLER GOSSEL RECHTSANWAELTE PATENTANW, DE

R084 Declaration of willingness to licence