DE102020123091A1 - Verbesserte fahrzeug-ecu-flash-programmierung - Google Patents

Verbesserte fahrzeug-ecu-flash-programmierung Download PDF

Info

Publication number
DE102020123091A1
DE102020123091A1 DE102020123091.5A DE102020123091A DE102020123091A1 DE 102020123091 A1 DE102020123091 A1 DE 102020123091A1 DE 102020123091 A DE102020123091 A DE 102020123091A DE 102020123091 A1 DE102020123091 A1 DE 102020123091A1
Authority
DE
Germany
Prior art keywords
flash
electronic control
vehicle
control unit
memory
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.)
Withdrawn
Application number
DE102020123091.5A
Other languages
English (en)
Inventor
Hafiz Shafeek Khafagy
Ali Badreddine
Abdalla Artail
Tomas Bacci
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 DE102020123091A1 publication Critical patent/DE102020123091A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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 
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0208Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
    • G05B23/0213Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/44Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/48Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

Eine elektronische Steuereinheit in einem Fahrzeug wird bereitgestellt. Eine elektronische Steuereinheit beinhaltet einen Prozessor und einen Speicher. Der Speicher speichert Anweisungen, die durch den Prozessor ausführbar sind, um eine Softwareaktualisierung zu empfangen, eine Flash-Initiierungsnachricht über ein Fahrzeugkommunikationsnetzwerk zu senden, die Softwareaktualisierung zu flashen und ein Flash-Ergebnis zu senden, das einen Flash-Erfolg oder einen Flash-Misserfolg beinhaltet.

Description

  • GEBIET DER TECHNIK
  • Die Offenbarung betrifft im Allgemeinen Fahrzeugdiagnosesysteme.
  • ALLGEMEINER STAND DER TECHNIK
  • Diagnosefehlercodes oder dergleichen sind zum Melden von Fahrzeugfehlern nützlich. Falsche Fehlercodes können jedoch die Fahrzeugentwicklung, die Fahrzeugproduktion, den Fahrzeugbetrieb und die Fahrzeugwartung stören. Eine Flash-Programmierung einer elektronischen Steuereinheit in einem Fahrzeug kann zu einem oder mehreren falschen Diagnosefehlercodes oder dergleichen führen.
  • KURZDARSTELLUNG
  • Eine erste elektronische Steuereinheit in einem Fahrzeug umfasst einen Prozessor und einen Speicher. Der Speicher speichert Anweisungen, die durch den Prozessor ausführbar sind, um eine Softwareaktualisierung zu empfangen, eine Flash-Initiierungsnachricht über ein Fahrzeugkommunikationsnetzwerk zu senden, die Softwareaktualisierung zu flashen und ein Flash-Ergebnis zu senden, das einen Flash-Erfolg oder einen Flash-Misserfolg beinhaltet. Die erste elektronische Steuereinheit kann ferner dazu programmiert sein, einen während des Flash generierten Diagnosefehlercode in dem Speicher zu speichern. Die erste elektronische Steuereinheit kann ferner dazu programmiert sein, einen vor dem Flashen im Speicher vorhandenen Diagnosefehlercode zu empfangen und in dem Speicher zu speichern. Die erste elektronische Steuereinheit kann ferner dazu programmiert sein, den Diagnosefehlercode in einem Speicherpartitionierungsabschnitt des Speichers vor dem Senden der Flash-Initiierungsnachricht zu sichern. Die erste elektronische Steuereinheit kann ferner dazu programmiert sein, den während des Flash generierten Diagnosefehlercode zu löschen. Die erste elektronische Steuereinheit kann ferner dazu programmiert sein zu bestimmen, ob der Speicher den Diagnosefehlercode, der während des Flash generiert wird, nach dem Senden des Flash-Erfolgs beinhaltet. Die erste elektronische Steuereinheit kann ferner dazu programmiert sein, den Diagnosefehlercode aus der Sicherung nach dem Senden des Flash-Misserfolgs, nach dem Löschen des während des Flash generierten Diagnosefehlercode oder nach der Bestimmung, dass der Speicher den während des Flash generierten Diagnosefehlercode nicht beinhaltet, wiederherzustellen.
  • Ein System in einem Fahrzeug umfasst eine erste elektronische Steuereinheit und eine zweite elektronische Einheit. Die zweite elektronische Steuereinheit ist über ein Fahrzeugkommunikationsnetzwerk kommunikativ an die erste elektronische Steuereinheit gekoppelt. Die erste elektronische Steuereinheit ist dazu programmiert, eine Softwareaktualisierung zu empfangen, eine Flash-Initiierungsnachricht über das Fahrzeugkommunikationsnetzwerk zu senden, die Softwareaktualisierung zu flashen und ein Flash-Ergebnis zu senden, das einen Flash-Erfolg oder einen Flash-Misserfolg beinhaltet. Die erste elektronische Steuereinheit ist ferner dazu programmiert, einen während des Flash generierten Diagnosefehlercode in dem Speicher zu speichern. Die erste elektronische Steuereinheit ist ferner dazu programmiert, einen im Speicher vor dem Flashen vorhandenen Diagnosefehlercode zu empfangen und in dem Speicher zu speichern. Die erste elektronische Steuereinheit ist ferner dazu programmiert, den Diagnosefehlercode in einem Speicherpartitionierungsabschnitt des Speichers vor dem Senden der Flash-Initiierungsnachricht zu sichern. Die erste elektronische Steuereinheit ist ferner dazu programmiert, den während des Flash generierten Diagnosefehlercode zu löschen. Die erste elektronische Steuereinheit bestimmt, ob der Speicher den Diagnosefehlercode, der während des Flash generiert wird, nach dem Senden des Flash-Erfolgs beinhaltet. Die erste elektronische Steuereinheit ist ferner dazu programmiert, den Diagnosefehlercode, der in dem Speicher vor dem Flash vorhanden war, aus der Sicherung nach dem Senden des Flash-Misserfolgs, nach dem Löschen des während des Flash generierten Diagnosefehlercode oder nach der Bestimmung, dass der Speicher den während des Flash generierten Diagnosefehlercode nicht beinhaltet, wiederherzustellen.
    Ein Verfahren umfasst Empfangen einer Softwareaktualisierung; Senden einer Flash-Initiierungsnachricht über ein Fahrzeugkommunikationsnetzwerk, Flashen der Softwareaktualisierung; und Senden eines Flash-Ergebnisses, das einen Flash-Erfolg oder einen Flash-Misserfolg beinhaltet, durch eine erste elektronische Steuereinheit in einem Fahrzeug. Die erste elektronische Steuereinheit speichert einen während des Flashen generierten Diagnosefehlercode in dem Speicher. Die erste elektronische Steuereinheit empfängt und speichert einen im Speicher vor dem Flashen vorhandenen Diagnosefehlercode in dem Speicher. Die erste elektronische Steuereinheit sichert den Diagnosefehlercode, der in dem Speicher vor dem Flashen vorhanden war, in einem Speicherpartitionierungsabschnitt vor dem Senden der Flash-Initiierung. Nach dem Senden des Flash-Erfolges löscht die erste elektronische Steuereinheit den Diagnosefehlercode, der während des Flash generiert wurde. Die erste elektronische Steuereinheit stellt den Diagnosefehlercode aus der Sicherung nach dem Senden des Flash-Misserfolgs, nach dem Löschen des während des Flash generierten Diagnosefehlercode oder nach der Bestimmung, dass der Speicher den während des Flash generierten Diagnosefehlercode nicht beinhaltet, wieder her.
  • Figurenliste
    • 1 ist ein Blockdiagramm, das ein beispielhaftes System für eine Fahrzeug-ECU-Flash-Programmierung veranschaulicht.
    • 2 veranschaulicht einen beispielhaften Prozess für eine Fahrzeug-ECU-Flash-Programmierung.
  • DETAILLIERTE BESCHREIBUNG
  • Elektronische Steuereinheiten (electronic control unit - ECU) an Bord eines Fahrzeugs können anfänglich, z. B. in einer Fertigungsanlage, mit Software programmiert werden, um den Betrieb einer ECU zu steuern, z. B. zum Verarbeiten verschiedener Sensoreingaben und Anforderungen von anderen elektronischen Steuereinheiten an Bord, zum Bereitstellen von Steuersignalen für Fahrzeugkomponenten usw. Nach der anfänglichen Programmierung, z. B. in der Fertigungsanlage oder sobald ein Fahrzeug die Fertigungsanlage verlassen hat, kann eine ECU in dem Fahrzeug mit Softwareaktualisierungen mittels Flash programmiert werden, um erweiterte Merkmale, Fehlerbehebungen usw. bereitzustellen. Gemäß den Techniken in dieser Schrift können falsche Fehlercodes, die aus der Flash-Programmierung einer elektronischen Steuereinheit (ECU) eines Fahrzeugs resultieren, reduziert werden.
    „Flash-Programmierung“ im hierin verwendeten Sinne hat die allgemein verstandene Bedeutung eines Überschreibens von Kernsoftware auf nichtflüchtigem Speicher (d. h. der typischerweise ansonsten nicht geändert werden kann) einer Rechenvorrichtung, wie etwa einer ECU. Die Begriffe „Aktualisierung“, „Softwareaktualisierung“, „aktualisierte Software“ oder dergleichen beziehen sich nicht nur auf das Herunterladen und Installieren von Patches und Verbesserungen an bereits bestehender Software, sondern auch auf das Herunterladen und Installieren von Softwareanwendungen, die vollständig neu sind, sowie Aktualisierungen von Firmware- und Konfigurationseinstellungen. Nach einer erfolgreichen Flash-Programmierung kann die elektronische Steuereinheit den normalen Betrieb mit der aktualisierten Software wiederaufnehmen. Die Flash-Programmierung kann bekanntermaßen manuell unter Verwendung eines Diagnose- oder Wartungswerkzeugs oder durch Over-the-Air (OTA)-Flashing erfolgen.
  • Beispielhafte Fehlercodes (auch als Störungscodes bezeichnet) beinhalten Diagnosefehlercodes (Diagnostic Trouble Code - DTC) oder OBD2-Fehlercodes und dergleichen. Im Allgemeinen sind Fehlercodes Codes, die eine elektronische Steuereinheit generieren und über das Fahrzeugkommunikationsnetzwerk, wie etwa einen Controller-Area-Network (CAN)-Kommunikationsbus, empfangen kann. Ein Diagnosefehlercode (DTC) ist typischerweise ein eindeutiger numerischer Code, der eine Fahrzeugstörungsbedingung spezifiziert und mit einer Fehlerbedingung, einer Diagnosebedingung, einem Diagnosestatus usw. verknüpft sein kann. Wenn die elektronische Steuereinheit einen Fehler in einer Fahrzeugkomponente erkennt, aktiviert sie den entsprechenden Diagnosefehlercode. Ein Fahrzeug speichert den Diagnosefehlercode im ECU-Speicher, wenn es eine Komponente oder ein System erkennt, die/das nicht innerhalb akzeptabler Grenzen arbeitet. Der Diagnosefehlercode hilft dabei, die Fahrzeugstörungsbedingung zu identifizieren, sodass diese diagnostiziert und repariert werden kann.
  • Fahrzeug-ECUs sind über ein Fahrzeugkommunikationsnetzwerk, wie etwa einen Controller-Area-Network (CAN)-Kommunikationsbus, wie weiter unten beschrieben, miteinander verbunden, wodurch eine Kommunikation miteinander ermöglicht wird. Somit kann eine elektronische Steuereinheit einen Diagnosefehlercode von einer verbundenen ECU über das Fahrzeugkommunikationsnetzwerk empfangen. Die Flash-Programmierung einer „Zielsoftware“ einer „elektronischen Zielsteuereinheit“ in einem Fahrzeug kann vorübergehend die Kommunikation zwischen dieser und einer verbundenen ECU unterbrechen und verursachen, dass die verbundene ECU einen Diagnosefehlercode generiert, weil zum Beispiel die verbundene ECU den Kommunikationsverlust als Folge des Flash erkennt. Die Flash-Programmierung kann auch bewirken, dass die elektronische Zielsteuereinheit selbst einen Diagnosefehlercode während der Flash-Programmierung als Nebeneffekt der Flash-Programmierung generiert. Eine „elektronische Zielsteuereinheit“ ist eine elektronische Steuereinheit, für die bestimmt wird, dass eine Softwareaktualisierung erforderlich ist. „Zielsoftware“ ist die Software-, Firmware- und Konfigurationseinstellungen in dem nichtflüchtigen Speicher der elektronischen Zielsteuereinheit, die durch Flash-Programmierung aktualisiert werden sollen.
  • Der während der Flash-Programmierung generierte Diagnosefehlercode ist ein „falscher Fehlercode“, da er anhand der Flash-Programmierung und nicht anhand der tatsächlichen Erkennung eines Fahrzeugfehlerzustands generiert wurde, wie nachstehend näher beschrieben. Das heißt, während der Flash-Programmierung können Steuereinheiten 108b, die normalerweise eine Schnittstelle mit der elektronischen Zielsteuereinheit 108a bilden, Fehlercodes generieren, da die Steuereinheiten 108b ein Nichtvorhandensein von Daten erkennen können, die von der Zielsteuereinheit 108a erwartet werden, die wegen des Flash-Prozesses nicht in der Lage ist, die fehlenden Daten bereitzustellen. Infolge einer Flash-Programmierung können Fehlercodes (wie etwa OBD2-U-Codes) aufgrund eines vorübergehenden Kommunikationsverlusts zwischen der elektronischen Zielsteuereinheit und einer elektronischen Steuereinheit, die kommunikativ an die elektronische Zieleinheit gekoppelt ist, fälschlicherweise gesetzt werden. Während des normalen Betriebs stellen die elektronischen Steuereinheiten 108 einander Nachrichten mit einer festgelegten Rate bereit. Auf der Empfangsseite werden die Intervalle zwischen Nachrichtenempfängen überwacht. Wenn eine bestimmte Nachricht für einen festgelegten Zeitraum nicht empfangen wird, wird ein Fehlercode (z. B. ein U-Code) gesetzt (d. h. durch die ECU 108 generiert und auf dem CAN-Bus des Fahrzeugs 101 oder dergleichen bereitgestellt). Die Flash-Programmierung unterbricht die Kommunikation zwischen der Ziel-ECU 108a und einer oder mehreren verbundenen elektronischen Steuereinheiten 108b, was zum Setzen (d. h. Generieren) eines Fehlercode führt; ein derartiger Fehlercode ist ein falscher Fehlercode, da der Kommunikationsverlust nur auf die Flash-Programmierung und nicht auf einen tatsächlichen Kommunikationsfehler oder -ausfall zurückzuführen ist.
  • Wenn zum Beispiel eine verbundene elektronische Steuereinheit 108b normalerweise eine Nachricht mit einer Drehmomentanforderung von der Ziel-ECU 108a empfängt und die verbundene ECU 108b die Nachricht für x Millisekunden (ms) (d. h. das spezifizierte Intervall zum Empfangen der Nachrichten) nicht empfangen hat, setzt die verbundene ECU 108b einen Fehlercode (z. B. einen U-Code), um die fehlende Drehmomentanforderung anzugeben. Während des normalen Betriebs ist ein Fehlercode in diesem Kontext wünschenswert, da er eine gültige Fehlerbedingung (d. h. einen Kommunikationsfehler oder -ausfall zwischen der Ziel-ECU 108a und der verbundenen ECU 108b) angibt, die möglicherweise durch einen externen Eingriff (ob aufgrund eines Problems mit dem CAN-Bus, eines Fehlers bei der Übertragung der Nachricht usw.) behoben werden muss. Der Fehlercode kann in dem internen Speicher 111 der ECU 108, die ihn generiert hat, gespeichert werden.
  • Falsche Fehlercodes können zu Beeinträchtigungen oder Änderungen des Fahrzeugbetriebs führen, z. B. könnte eine Steuereinheit 108 dazu programmiert sein, den Betrieb einer Komponente 120 auf Grundlage eines Fehlercodes zu begrenzen oder zu ändern, und/oder die Kommunikation zwischen den Steuereinheiten 108 könnte geändert oder verhindert werden. Somit kann sich ein falscher Fehlercode unnötig und/oder negativ auf die Entwicklung, Produktion, den Betrieb und/oder die Wartung des Fahrzeugs auswirken. Weitere falsche Fehlercodes können Benutzer irreführen und frustrieren, insbesondere, wenn sie eine Fehlfunktionsanzeigeleuchte (malfunction indicator light - MIL) auslösen, wie etwa eine Leuchte ,Motor prüfen'. Zusätzlich müssen falsche Fehlercodes gegenwärtig aus dem Speicher gelöscht werden, indem ein Leistungszyklus verwendet wird, oder es besteht die Gefahr, dass sie bei einem schnellen Schlüsselzyklus erneut bestätigt werden. Leistungszyklen sind zeitaufwändig.
  • 1 veranschaulicht ein beispielhaftes System 100 zum Reduzieren von falschen Fehlercodes, die aus Flash-Programmierung eines Fahrzeugs resultieren. Ein Fahrzeug 101 beinhaltet einen Computer 105, der einen Prozessor und einen Speicher umfasst. Das Fahrzeug 101 beinhaltet ferner elektronische Steuereinheiten 108a und 108b (allgemein als Steuereinheiten 108 bezeichnet), die Rechenvorrichtungen sind, die jeweils einen Prozessor 109 und einen Speicher 111 beinhalten. Während zur Vereinfachung der Veranschaulichung nur ein Computer 105 und zwei elektronische Steuereinheiten 108a und 108b gezeigt sind, versteht es sich, dass das Fahrzeug 101 eine Vielzahl von Computern 105 und/oder mehr als zwei elektronische Steuereinheiten 108a und 108b beinhalten kann. Tatsächlich beinhaltet ein Fahrzeug 101 typischerweise mehr als zwei fahrzeuginterne elektronische Steuereinheiten 108, die jeweils zum Überwachen und/oder Steuern entsprechender Komponenten 120 dienen. Der Speicher 111 der elektronischen Steuereinheiten 108 kann eine oder mehrere Anweisungen speichern, die durch den Prozessor ausführbar sind und den Betrieb des Fahrzeugs 101, der Komponente, eines Systems oder einer beliebigen Kombination davon betreffen. Der Speicher 111 der elektronischen Steuereinheiten 108 kann in Abschnitte (z. B. Speicher 111a—111c der elektronischen Steuereinheit 108a der 1) zur Verwendung durch residente Programme partitioniert sein. Zum Beispiel kann der Speicher 111 der elektronischen Steuereinheiten 108 einen Abschnitt (z. B. 111a, 111b oder 111c) beinhalten, der als Sicherungsspeicher dient. In den nachfolgend erörterten Beispielen ist die elektronische Steuereinheit 108a eine elektronische „Ziel“-Steuereinheit und ist die elektronische Steuereinheit 108b eine „verbundene“ elektronische Steuereinheit (wie diese Begriffe nachstehend definiert sind). Es versteht sich, dass die ECUs 108a, 108b als solche bezeichnet sind, um die aktuelle Veranschaulichung zu erleichtern; typischerweise könnte jede ECU 108 in dem Fahrzeug 101 zu verschiedenen Zeitpunkten eine Ziel-ECU 108a oder eine verbundene ECU 108b sein.
  • Der Computer 105 kann die elektronischen Steuereinheiten 108, die in dem Fahrzeug 101 beinhaltet sind, beinhalten oder kommunikativ daran gekoppelt sein (z. B. über ein Fahrzeugkommunikationsnetzwerk, wie etwa einen Kommunikationsbus, wie weiter unten beschrieben). Ein Computer 105 kann programmiert sein, um gesammelte Daten 115 von einem oder mehreren Sensoren 110 und/oder elektronischen Steuereinheiten zu empfangen. Die gesammelten Daten 115 sind typischerweise von einem Controller-Area-Network (CAN)-Bus des Fahrzeugs oder dergleichen verfügbar. Im Allgemeinen können die gesammelten Daten 115 Daten über den Betrieb des Fahrzeugs 101 beinhalten, z. B. Daten über eine oder mehrere Fahrzeugkomponenten 120 sowie Daten über einen Standort des Fahrzeugs 101, Daten über eine Umgebung um ein Fahrzeug, Daten über ein Objekt außerhalb des Fahrzeugs wie zum Beispiel ein anderes Fahrzeug usw. Ein Standort des Fahrzeugs 101 wird typischerweise in einer herkömmlichen Form bereitgestellt, z. B. Geokoordinaten wie Breiten- und Längenkoordinaten, die über ein Navigationssystem erhalten werden, das das globale Positionsbestimmungssystem (GPS) verwendet. Weitere Beispiele für Daten 115 können Messungen von Fahrzeugsystemen und -komponenten beinhalten, z. B. eine Fahrzeuggeschwindigkeit, eine Bewegungsbahn des Fahrzeugs usw. Im Allgemeinen können die gesammelten Daten 115 beliebige Daten beinhalten, die durch die Sensoren 110 erhoben und/oder aus solchen Daten berechnet werden können. Bei dem Datenspeicher 106 kann es sich um einen beliebigen Typ handeln, z. B. Festplattenlaufwerke, Festkörperlaufwerke, Server oder beliebige flüchtige oder nichtflüchtige Medien. Der Datenspeicher 106 kann die von den Sensoren 110 gesendeten gesammelten Daten 115 speichern. Die gesammelten Daten 115 können auch Diagnosedatenbeinhalten, die sich auf Fehlfunktionen oder andere Betriebsbedingungen der jeweiligen Fahrzeugkomponente 120 beziehen. Eine ECU 108 kann zudem Diagnosedaten bezüglich Fehlfunktionen oder anderen Betriebsbedingungen von anderen verbundenen ECU 108 empfangen. Die Diagnosedaten können Fehlercodes umfassen, wie etwa DTC, die in den Speicher 111 einer elektronischen Steuereinheit 108 gespeichert werden können.
  • Die Rechenvorrichtungen 105, 108 in dem Fahrzeug 101 sind im Allgemeinen zur Kommunikation auf einem Fahrzeugkommunikationsnetz programmiert, das z. B. einen herkömmlichen Fahrzeugkommunikationsbus beinhaltet. Über das Netzwerk (wie etwa ein Controller Area Network (CAN) oder dergleichen, einen Bus und/oder andere drahtgebundene oder drahtlose Mechanismen (z. B. ein drahtgebundenes oder drahtloses lokales Netzwerk in dem Fahrzeug 101) können die Vorrichtungen 105, 108 Nachrichten aneinander und/oder an andere verschiedene Vorrichtungen in einem Fahrzeug 101 übertragen oder senden und/oder Nachrichten von den verschiedenen Vorrichtungen, z.B. Aktoren, Sensoren 110 usw., empfangen. Alternativ oder zusätzlich dazu kann in Fällen, in denen eine Vorrichtung 105, 108 mehrere Vorrichtungen umfasst, das Fahrzeugnetzwerk zur Kommunikation zwischen Vorrichtungen verwendet werden, die in dieser Offenbarung als der Computer 105 oder die Steuerung 108 dargestellt sind. Darüber hinaus kann der Computer 105 dazu programmiert sein, mit dem Netzwerk 125 zu kommunizieren, das, wie nachstehend beschrieben, verschiedene drahtgebundene und/oder drahtlose Netzwerktechnologien beinhalten kann, z. B. Mobilfunk, Bluetooth®, Bluetooth® Low Energy (BLE), drahtgebundene und/oder drahtlose Paketnetze usw. „Senden“ oder dergleichen bezieht sich auf die Kommunikation über das Fahrzeugkommunikationsnetzwerk.
  • Wie zuvor erläutert, können elektronische Steuereinheiten 108 Fahrzeugkomponenten 120 überwachen und/oder steuern und sind typischerweise zur Selbstdiagnose in der Lage. Nicht einschränkende Beispiele für ECU 108 beinhalten eine Motorsteuereinheit, eine Türsteuereinheit, eine elektrische Servolenksteuereinheit, ein Antriebsstrangsteuermodul, eine Sitzsteuereinheit, eine Telematiksteuereinheit, eine Drehzahlsteuereinheit, eine Getriebesteuereinheit, ein Bremssteuermodul usw.
  • Verschiedene elektronische Steuereinheiten 108 in einem Fahrzeug 101 können dem Computer 105 und anderen elektronischen Steuereinheiten 108 über das Fahrzeugnetzwerk oder den Bus Daten 115 bereitstellen, z. B. Daten 115 in Bezug auf den Komponentenstatus usw. Zum Beispiel kanndie Fahrzeugkomponente 120 eine Störung aufweisen. Eine Störung ist ein Zustand, bei dem die Fahrzeugkomponente nicht arbeitet oder außerhalb eines oder mehrerer vordefinierter Parameter arbeitet (z. B. könnte ein vordefinierter Parameter eine physikalische Größe oder ein Bereich von Größen sein, wie etwa Temperatur, Drehmoment, Umdrehungen pro Minute, Druck usw.). Eine elektronische Steuereinheit 108 kann dazu programmiert sein, auf Grundlage von Daten, die z. B. von verschiedenen Fahrzeugsensoren 110, Aktoren, anderen elektronischen Steuereinheiten 108 usw. empfangen werden, zu bestimmen, ob sich eine Fahrzeugkomponente 120 in einem Störungszustand befindet. Ein Störungszustand kann Kommunikationsausfälle zwischen den elektronischen Steuereinheiten 108 beinhalten, z. B. eine Nachricht oder ein Signal mit falschen oder fehlenden Daten oder eine Nachricht oder ein Signal, die/das überhaupt nicht empfangen wird. Eine ECU 108 ist dazu programmiert, den Diagnosestatus in deren Speicher 111 aufzuzeichnen (d. h. zu speichern), wenn ein Störungszustand erkannt wird. Jeder Diagnosestatus kann durch einen Fehlercode, wie etwa ein DTC, identifiziert werden.
  • Die Sensoren 110 können viele unterschiedliche Vorrichtungen beinhalten, z.B. Kameras, Bewegungsmelder usw., d. h. Sensoren 110 zum Bereitstellen von Daten 115 zur Auswertung einer Position einer Komponente, einem Gefälle einer Straße usw. Die Sensoren 110 könnten ohne Einschränkung zudem Kurzstreckenradar, Langstreckenradar, LIDAR und/oder Ultraschallwandler beinhalten.
  • Das Fahrzeug 101 kann, wie oben erwähnt, eine Vielzahl von Fahrzeugkomponenten 120 beinhalten. In diesem Kontext beinhaltet jede Fahrzeugkomponente 120 eine oder mehrere Hardwarekomponenten, die dazu ausgelegt sind, eine mechanische Funktion oder einen mechanischen Vorgang durchzuführen - wie etwa Bewegen des Fahrzeugs 101, Verlangsamen oder Anhalten des Fahrzeugs 101, Lenken des Fahrzeugs 101 usw. Nicht einschränkende Beispiele für Komponenten 120 beinhalten eine Antriebskomponente (die z. B. eine Brennkraftmaschine und/oder einen Elektromotor usw. beinhaltet), eine Getriebekomponente, eine Lenkkomponente (die z. B. eines oder mehrere von einem Lenkrad, einer Lenkstange usw. beinhalten kann), eine Aufhängungskomponente, eine Bremskomponente (wie nachstehend beschrieben), eine Einparkhilfekomponente, eine Komponente für adaptive Geschwindigkeitsregelung, eine Komponente für adaptives Lenken, einen bewegbaren Sitz, eine Fahrzeugkarosserie und dergleichen. Die Sensoren 110 und die Aktoren können ebenfalls als Fahrzeugkomponenten 120 betrachtet werden.
  • Das System 100 kann ferner ein Weitverkehrsnetzwerk 125, das mit einem Server 130 verbunden ist, und einen Datenspeicher 135 beinhalten. Der Computer 105 kann ferner programmiert sein, um mit einem oder mehreren entfernten Standorten, wie etwa dem Server 130, über das Netzwerk 125 zu kommunizieren, wobei ein derartiger entfernter Standort möglicherweise einen Datenspeicher 135 einschließt. Das Netzwerk 125 repräsentiert einen oder mehrere Mechanismen, über die ein Fahrzeugcomputer 105 mit einem entfernten Server 130 kommunizieren kann. Dementsprechend kann es sich bei dem Netzwerk 125 um einen oder mehrere von verschiedenen drahtgebundenen oder drahtlosen Kommunikationsmechanismen handeln, einschließlich einer beliebigen gewünschten Kombination aus drahtgebundenen (z. B. Kabel und Glasfaser) und/oder drahtlosen (z. B. Mobilfunk, drahtlos, Satellit, Mikrowelle und Funkfrequenz) Kommunikationsmechanismen und einer beliebigen gewünschten Netztopologie (oder -topologien, wenn mehrere Kommunikationsmechanismen genutzt werden). Beispielhafte Kommunikationsnetzwerke beinhalten drahtlose Kommunikationsnetzwerke (z. B. unter Verwendung von Bluetooth®, Bluetooth® Low Energy (BLE), IEEE 802.11, Fahrzeug-zu-Fahrzeug (V2V), wie etwa Dedicated Short Range Communications (DSRC) usw.), lokale Netzwerke (local area network - LAN) und/oder Weitverkehrsnetzwerke (wide area network - WAN), einschließlich des Internets, die Datenkommunikationsdienste bereitstellen.
  • Unter Bezugnahme auf 2 ist nun ein beispielhafter Prozess 200 für die ECU-Flash-Programmierung eines Fahrzeugs veranschaulicht. Der Prozess 200 wird hierin als durch Programmanweisungen ausgeführt beschrieben, die in einem Speicher 111 gespeichert sind und durch einen Prozessor 109 einer elektronischen Zielsteuereinheit 108a ausgeführt werden können. Wie zuvor erläutert, können die Software-, Firmware- und Konfigurationseinstellungen der elektronischen Steuereinheiten durch Flash-Programmierung „aktualisiert“ werden, aber falsche Fehlercodes können sich aus der Flash-Programmierung ergeben. Wie nachstehend unter Bezugnahme auf den beispielhaften Prozess 200 (2) ausführlicher erläutert, kann eine elektronische Zielsteuereinheit 108a dazu programmiert sein, durch Flash-Programmierung generierte falsche Fehlercodes zu verhindern oder zumindest zu reduzieren.
  • Wie vorstehend erläutert, kann die Flash-Programmierung einer Steuereinheit 108 manuell unter Verwendung eines Diagnose- oder Wartungswerkzeugs oder durch Over-the-Air (OTA)-Flashing erfolgen. Zum Beispiel kann sich das Fahrzeug 101 in einem beispielhaften OTA-Flash-Prozess, der durch ein Fahrzeug, das eine Softwareaktualisierung anfordert, eingeleitet wurde, mit dem entfernten Server 130 für die Softwareaktualisierung verbinden. Verschiedene Validierungsprozesse können umgesetzt werden, um sicherzustellen, dass die Aktualisierungsanforderung realisierbar ist, und sobald diese Prozesse abgeschlossen sind, kann der entfernte Server 130 Fahrzeugdaten erlangen. Nicht einschränkende Beispiele für Fahrzeugdaten beinhalten Softwareversionen, verschiedene Komponenteninstallationen usw. Dies kann Kennungen für nachträglich eingebaute Komponenten sowie eine Bestätigung beinhalten, dass verschiedene OEM-installierte Komponenten noch installiert sind. Auch wenn der entfernte Server 130 eine Aufzeichnung der Konfiguration eines Fahrzeugs führen kann, kann es dennoch nützlich sein, diese Informationen zu verifizieren, bevor mit der Softwareaktualisierung fortgefahren wird. Sobald eine Softwareversion empfangen (und mit gespeicherten Daten bestätigt) wurde, kann die Version mit einer Datenbank verglichen werden, die die aktuellste Software für ein Fahrzeug einer bestimmten Konfiguration enthält. Der Prozess 200 beginnt in Block 205, wenn eine elektronische Zielsteuereinheit 108a eine Softwareaktualisierung oder eine Nachricht empfängt, die angibt, dass eine Softwareaktualisierung bevorsteht. Die elektronische Zielsteuereinheit 108a kann die Softwareaktualisierung über ein Diagnose- oder Wartungswerkzeug und/oder von Over-the-Air-Flashing-Prozessen empfangen, zum Beispiel unter Verwendung des entfernten Servers 130.
  • Als nächstes bestimmt die elektronische Zielsteuereinheit 108a in einem Entscheidungsblock 210, ob die Flash-Initialisierungsbedingungen erfüllt sind, z. B. gemäß einem herkömmlichen Flash-Initialisierungsprozess, bei dem eine Vorrichtung (z. B. die Steuereinheit 108a) eine Flash-Programmierungsaktualisierung empfangen soll. Beispielhafte Flash-Programmierungsbedingungen, die zu erfüllen sind, beinhalten typischerweise Verifizieren und Validieren der Ziel-ECU 108a, Verifizieren, dass der Ziel-ECU 108a eine Softwareaktualisierung erfordert (d. h., dass die Zielsoftware nicht aktuell ist), dass die elektronische Zielsteuereinheit 108a in einen Programmierungs-/Neuprogrammierungszustand eingetreten ist usw. Wenn die Flash-Initialisierungsbedingungen erfüllt sind, geht der Prozess 200 weiter zu Block 215. Andernfalls endet der Prozess 200.
  • Als nächstes bestimmt die elektronische Zielsteuereinheit 108a in einem Entscheidungsblock 215, ob bereits Fehlercodes im Speicher 111 der elektronischen Zielsteuereinheit 108a vorhanden sind. Vorhandene Fehlercodes sind solche, die vor der Flash-Programmierung der elektronischen Zielsteuereinheit 108a von einer oder mehreren verbundenen ECU 108 (wie etwa ECU 108b) über das Kommunikationsnetzwerk des Fahrzeugs 101 gesendet wurden. Wenn bestimmt wird, dass bereits Diagnosefehlercodes im Speicher 111 der elektronischen Zielsteuereinheit 108a vorhanden sind, geht der Prozess weiter zu einem Block 220. Anderenfalls fährt der Prozess mit einem Block 225 fort.
  • In dem Block 220, der dem Block 215 folgen kann, sichert die elektronische Zielsteuereinheit 108a den vorhandenen Diagnosefehlercode zum Beispiel in einem Sicherungsspeicher lila, 111b, 111c (1) des Speichers 111. Die elektronische Zielsteuereinheit 108a ist dazu programmiert, den vorhandenen Diagnosefehlercode zum Beispiel in dem Sicherungs-Speicherpartitionierungsabschnitt oder in einer anderen Speichervorrichtung zu sichern (zu speichern).
  • Als nächstes sendet die elektronische Zielsteuereinheit 108a in Block 225 eine Nachricht über die Flash-Initiierung (d. h. eine Absicht zum Flashen) über das Kommunikationsnetzwerk des Fahrzeugs 101, die z. B. durch eine oder mehreren verbundene elektronischen Steuereinheiten 108 empfangen werden soll. Nach dem Empfang der Flash-Initiierungsnachricht können andere Steuereinheiten 108 eine Programmierung ausführen, um in einen „Flash-Modus des Fahrzeugs“ einzutreten, wie weiter unten erörtert. Die Fahrzeugsteuereinheiten 108 können dazu programmiert sein, nach dem Empfang einer Nachricht, die angibt, dass ein Flash-Modus des Fahrzeugs begonnen hat, die Generierung von Fehlercodes, die sich aus der Flash-Programmierung ergeben, für einen bestimmten Zeitraum und/oder bis zum Empfangen einer Nachricht, dass der Flash-Modus des Fahrzeugs abgeschlossen oder beendet ist, zu unterdrücken. Fehlercodes, die aus Störungszuständen generiert werden, die die elektronische Zielsteuereinheit 108a nicht betreffen, werden nicht unterdrückt. Wenn zum Beispiel die elektronische Zielsteuereinheit 108a normal mit anderen Steuereinheiten 108b kommuniziert und die elektronische Zielsteuereinheit 108a geflasht wird, empfangen die anderen Steuereinheiten 108b eine Flash-Initiierungsnachricht, die sie benachrichtigt, keinen Fehlercode in Bezug auf die Kommunikation mit der elektronischen Zielsteuereinheit 108a zu setzen (d. h. da ein Fehlercode für eine Ziel-ECU 108a, während die ECU 108a geflasht wird, ein falscher Fehlercode wäre). Andere ECU 108b können jedoch einen Fehlercode generieren, der sich auf andere ECUs 108b als die Ziel-ECU 108a, die geflasht wird, bezieht, z. B. wenn ein Kommunikationsausgabeausfall oder -fehler zwischen den anderen ECU 108b vorliegt. Zusätzlich wird die Generierung von Fehlercodes durch die elektronische Zielsteuereinheit 108a selbst, falls vorhanden, als Ergebnis der Flash-Programmierung nicht unterdrückt.
  • Als nächstes, in Block 230, flasht die elektronische Zielsteuereinheit 108a die Zielsoftware in der elektronischen Zielsteuereinheit z. B. gemäß herkömmlichen Flash-Programmiertechniken.
  • Als nächstes bestimmt die elektronische Zielsteuereinheit 108a im Entscheidungsblock 235 ein Ergebnis des Flash durch Bestimmen, ob die Zielsoftware erfolgreich aktualisiert wurde (z. B. Flash-Erfolg) oder nicht aktualisiert werden konnte (z. B. Flash-Misserfolg). Zum Beispiel kann eine herkömmliche Flash-Programmierungsverarbeitung das Ergebnis ausgeben. Bei Erfolg geht der Prozess 200 weiter zu einem Block 240. Andernfalls fährt der Prozess mit einem Block 260 fort.
  • In Block 240 sendet die elektronische Zielsteuereinheit 108a über das Kommunikationsnetzwerk des Fahrzeugs 101, dass die Flash-Programmierung erfolgreich war (d. h. einen Flash-Erfolg). Wenn die Flash-Programmierung erfolgreich ist, wird die Kommunikation zwischen der Ziel-ECU 108a und der verbundenen ECU 108b wiederhergestellt.
  • Als nächstes bestimmt die elektronische Zielsteuereinheit 108a in Entscheidungsblock 245, ob während der Flash-Programmierung Fehlercodes generiert wurden, d. h. die Steuereinheit 108a kann bestimmen, ob nach der Initiierung des Flash-Modus des Fahrzeugs Fehlercodes in ihrem Speicher 111 gespeichert wurden. Wenn ein falscher Fehlercode im Speicher 111 der elektronischen Zielsteuereinheit 108a gespeichert wurde, geht der Prozess 200 weiter zu einem Block 250. Anderenfalls fährt der Prozess 200 mit einem Entscheidungsblock 275 fort. Wie zuvor erläutert, kann das Senden des Beginns des Flash-Modus des Fahrzeugs (Block 225) die Generierung falscher Fehlercodes durch andere elektronische Steuereinheiten 108 unterdrücken, da die Steuereinheiten 108 eine Programmierung ausführen können, um die Generierung von Fehlercodes, die die elektronische Zielsteuereinheit 108a betreffen, auszusetzen. Der Entscheidungsblock 245 führt zum Bestimmen, ob falsche Fehlercodes durch die elektronische Zielsteuereinheit 108a selbst generiert wurden.
  • In Block 250 löscht die elektronische Zielsteuereinheit 108a den falschen Fehlercode aus ihrem Speicher 111.
  • In Block 260, der dem Entscheidungsblock 235 folgen kann, wenn die Zielsoftware nicht aktualisiert werden konnte (ein Flash-Misserfolg), wird die Zielsoftware in einem vorherigen Zustand wiederhergestellt, z. B. gemäß herkömmlichen Flash-Techniken.
  • Als nächstes sendet die elektronische Zielsteuereinheit 108a in Block 265 das Ergebnis des Flash, dass die Software nicht aktualisiert werden konnte (d h. einen Flash-Misserfolg).
  • Im Entscheidungsblock 270, der auf Block 250 oder Block 265 folgen kann, bestimmt die elektronische Zielsteuereinheit 108a, ob im Sicherungsspeicher (z.B. Speicher 111a, 111b, 111c) vorhandene Diagnosefehlercodes gespeichert sind. Wenn ein oder mehrere Diagnosefehlercodes im Sicherungsspeicher gespeichert sind, geht der Prozess weiter zu einem Block 275. Andernfalls fährt der Prozess mit einem Block 280 fort.
  • In Block 275 stellt die elektronische Zielsteuereinheit 108a den einen oder die mehreren vorhandenen Diagnosefehlercodes aus dem Sicherungsspeicher wieder her. Der/die vorhandenen Diagnosefehlercode(s) können aus der Sicherung nach dem Senden des Flash-Misserfolgs, nach dem Löschen des falschen Fehlercodes oder nach der Bestimmung, dass der Speicher 111 den falschen Fehlercode nicht beinhaltet, wiederhergestellt werden. Infolgedessen bleiben die vorhandenen Diagnosefehlercodes erhalten.
  • Als Nächstes überträgt die elektronische Zielsteuereinheit 108a in Block 280 eine Benachrichtigung über das Flash-Ergebnis (z. B., dass die Zielsoftware erfolgreich aktualisiert wurde („Flash-Erfolg“) oder dass die Zielsoftware nicht aktualisiert werden konnte („Flash-Misserfolg“)). Nach Block 280 endet der Prozess 200.
  • Schlussfolgerung
  • Im hierin verwendeten Sinne bedeutet das ein Adjektiv modifizierende Adverb „im Wesentlichen“, dass eine Form, eine Struktur, ein Messwert, ein Wert, eine Berechnung usw. von einer genau beschriebenen Geometrie, einem genau beschriebenen Abstand, einem genau beschriebenen Messwert, einem genau beschriebenen Wert, einer genau beschriebenen Berechnung usw. aufgrund von Mängeln hinsichtlich der Materialien, Bearbeitung, Herstellung, Datensammlermessungen, Berechnungen, Verarbeitungszeit, Kommunikationszeit usw. abweichen kann.
  • Die Computer 105 beinhalten im Allgemeinen jeweils Anweisungen, die durch eine oder mehrere Rechenvorrichtungen, wie etwa die vorstehend beschriebenen, und zum Ausführen von vorstehend beschriebenen Blöcken oder Verfahren ausgeführt werden können.
  • Computerausführbare Anweisungen können von Computerprogrammen zusammengestellt oder interpretiert werden, die unter Verwendung einer Vielfalt von Programmiersprachen und/oder -techniken erstellt wurden, darunter unter anderem, entweder allein oder in Kombination, Java™, C, C++, Visual Basic, Java Script, Perl, HTML usw. Im Allgemeinen empfängt ein Prozessor (z. B. ein Mikroprozessor) Anweisungen z. B. von einem Speicher, einem computerlesbaren Medium usw. und führt diese Anweisungen aus, wodurch er einen oder mehrere Prozesse durchführt, darunter einen oder mehrere der hierin beschriebenen Prozesse. Derartige Anweisungen und andere Daten können unter Verwendung einer Vielfalt an computerlesbaren Medien gespeichert und übertragen werden. Eine Datei in dem Computer 105 ist im Allgemeinen eine Sammlung von Daten, die auf einem computerlesbaren Medium gespeichert sind, wie etwa einem Speichermedium, einem Direktzugriffsspeicher usw.
  • Ein computerlesbares Medium schließt jedes Medium ein, das am Bereitstellen von Daten (z. B. Anweisungen), die durch einen Computer ausgelesen werden können, beteiligt ist. Ein derartiges Medium kann viele Formen annehmen, einschließlich unter anderem nichtflüchtige Medien, flüchtige Medien usw. Nichtflüchtige Medien umfassen beispielsweise optische oder magnetische Platten und sonstige Dauerspeicher. Flüchtige Medien beinhalten einen dynamischen Direktzugriffsspeicher (dynamic random access memory - DRAM), der in der Regel einen Hauptspeicher darstellt. Gängige Formen von computerlesbaren Medien beinhalten zum Beispiel eine Diskette, eine Folienspeicherplatte, eine Festplatte, ein Magnetband, ein beliebiges anderes magnetisches Medium, eine CD-ROM, eine DVD, ein beliebiges anderes optisches Medium, Lochkarten, Lochstreifen, ein beliebiges anderes physisches Medium mit Lochmustern, einen RAM, einen PROM, einen EPROM, einen FLASH-EEPROM, einen beliebigen anderen Speicherchip oder eine beliebige andere Speicherkassette oder ein beliebiges anderes Medium, das durch einen Computer ausgelesen werden kann.
  • Hinsichtlich der hierin beschriebenen Medien, Prozesse, Systeme, Verfahren usw. sollte es sich verstehen, dass, obwohl die Schritte derartiger Prozesse usw. als in einer bestimmten geordneten Sequenz erfolgend beschrieben worden sind, die beschriebenen Schritte bei der Ausführung derartiger Prozesse in einer Reihenfolge durchgeführt werden könnten, bei der es sich nicht um die in dieser Schrift beschriebene Reihenfolge handelt. Es versteht sich ferner, dass bestimmte Schritte gleichzeitig durchgeführt, andere Schritte hinzugefügt oder bestimmte in dieser Schrift beschriebene Schritte weggelassen werden könnten. Zum Beispiel könnten in dem Prozess 200 einer oder mehrere der Schritte weggelassen werden oder die Schritte könnten in einer anderen Reihenfolge als der gezeigten ausgeführt werden. Anders ausgedrückt werden die Beschreibungen von Systemen und/oder Prozessen im vorliegenden Zusammenhang zu Zwecken der Veranschaulichung bestimmter Ausführungsformen bereitgestellt und sollten in keinster Weise dahingehend ausgelegt werden, dass sie den offenbarten Gegenstand einschränken.
  • Allen in den Patentansprüchen verwendeten Ausdrücken soll deren allgemeine und gewöhnliche Bedeutung zukommen, wie sie vom Fachmann verstanden wird, sofern in dieser Schrift nicht ausdrücklich etwas Anderes angegeben ist. Insbesondere ist die Verwendung der Singularartikel wie etwa „der“, „die“, „das“ usw. dahingehend auszulegen, dass eines oder mehrere der aufgeführten Elemente genannt werden, sofern ein Patentanspruch nicht eine ausdrückliche gegenteilige Einschränkung enthält. Die Ausdrücke „erste“ und „zweite“ sollten nicht so ausgelegt werden, dass sie nur zwei aufführen. Der Ausdruck „auf Grundlage von“ schließt teilweise oder vollständig auf Grundlage von ein.
  • Dementsprechend versteht es sich, dass die vorliegende Offenbarung, einschließlich der vorangehenden Beschreibung und der beigefügten Figuren und nachfolgenden Patentansprüche, veranschaulichend und nicht einschränkend sein soll. Viele Ausführungsformen und Anwendungen, bei denen es sich nicht um die bereitgestellten Beispiele handelt, werden dem Fachmann beim Lesen der vorstehenden Beschreibung ersichtlich sein. Der Umfang der Erfindung sollte nicht unter Bezugnahme auf die vorstehende Beschreibung, sondern stattdessen unter Bezugnahme auf die hier beigefügten Patentansprüche gemeinsam mit dem vollständigen Umfang von Äquivalenten, zu denen derartige Patentansprüche berechtigt sind, bestimmt werden. Es wird vorweggenommen und ist beabsichtigt, dass es zukünftige Entwicklungen im in dieser Schrift erörterten Stand der Technik geben wird und dass die offenbarten Systeme und Verfahren in derartige zukünftige Ausführungsformen aufgenommen werden. Zusammenfassend versteht es sich, dass der offenbarte Gegenstand modifiziert und variiert werden kann.
  • Gemäß der vorliegenden Erfindung wird eine erste elektronische Steuereinheit in einem Fahrzeug bereitgestellt, die einen Prozessor und einen Speicher aufweist, der Anweisungen speichert, die durch den Prozessor ausführbar sind, um: eine Softwareaktualisierung zu empfangen; eine Flash-Initiierungsnachricht über ein Fahrzeugkommunikationsnetzwerk zu übertragen; die Softwareaktualisierung zu flashen; und ein Flash-Ergebnis zu senden, das einen Flash-Erfolg oder einen Flash-Misserfolg beinhaltet.
  • Gemäß einer Ausführungsform ist die Erfindung ferner dazu programmiert, einen während des Flash generierten Diagnosefehlercode in dem Speicher zu speichern.
  • Gemäß einer Ausführungsform ist die Erfindung ferner dazu programmiert, einen im Speicher vor dem Flash vorhandenen Diagnosefehlercode zu empfangen und in dem Speicher zu speichern.
  • Gemäß einer Ausführungsform ist die Erfindung ferner dazu programmiert, den Diagnosefehlercode in einem Speicherpartitionierungsabschnitt des Speichers vor dem Senden der Flash-Initiierungsnachricht zu sichern.
  • Gemäß einer Ausführungsform ist die Erfindung ferner dazu programmiert, einen während des Flash generierten Diagnosefehlercode zu löschen.
  • Gemäß einer Ausführungsform ist die Erfindung ferner dazu programmiert zu bestimmen, ob der Speicher den Diagnosefehlercode, der während des Flash generiert wird, nach dem Senden des Flash-Erfolgs beinhaltet.
  • Gemäß einer Ausführungsform ist die Erfindung ferner dazu programmiert, den Diagnosefehlercode aus der Sicherung nach dem Senden des Flash-Misserfolgs, nach dem Löschen des während des Flash generierten Diagnosefehlercode oder nach der Bestimmung, dass der Speicher den während des Flash generierten Diagnosefehlercode nicht beinhaltet, wiederherzustellen.
  • Gemäß der vorliegenden Erfindung wird ein System bereitgestellt, das Folgendes aufweist: eine erste elektronische Steuereinheit in einem Fahrzeug, die programmiert ist, um: eine Softwareaktualisierung zu empfangen; eine Flash-Initiierungsnachricht über ein Fahrzeugkommunikationsnetzwerk zu senden; die Softwareaktualisierung zu flashen; und ein Flash-Ergebnis zu senden, das einen Flash-Erfolg oder einen Flash-Misserfolg beinhaltet; und eine zweite elektronische Steuereinheit, die über das Fahrzeugkommunikationsnetzwerk kommunikativ an die erste elektronische Steuereinheit gekoppelt ist.
  • Gemäß einer Ausführungsform ist die erste elektronische Steuereinheit ferner programmiert, um einen während des Flash generierten Diagnosefehlercode in dem Speicher zu speichern. Gemäß einer Ausführungsform ist die erste elektronische Steuereinheit ferner programmiert, um: einen im Speicher vor dem Flash vorhandenen Diagnosefehlercode zu empfangen und in dem Speicher zu speichern.
  • Gemäß einer Ausführungsform ist die erste elektronische Steuereinheit ferner programmiert, um den Diagnosefehlercode in einem Speicherpartitionierungsabschnitt des Speichers vor dem Senden der Flash-Initiierungsnachricht zu sichern.
  • Gemäß einer Ausführungsform ist die erste elektronische Steuereinheit ferner programmiert, um einen während des Flash generierten Diagnosefehlercode zu löschen.
  • Gemäß einer Ausführungsform bestimmt die erste elektronische Steuereinheit, ob der Speicher den Diagnosefehlercode, der während des Flash generiert wird, nach dem Senden des Flash-Erfolgs beinhaltet.
  • Gemäß einer Ausführungsform ist die erste elektronische Steuereinheit ist ferner programmiert, um: den Diagnosefehlercode, der in dem Speicher vor dem Flash vorhanden war, aus der Sicherung nach dem Senden des Flash-Misserfolgs, nach dem Löschen des während des Flash generierten Diagnosefehlercode oder nach der Bestimmung, dass der Speicher den während des Flash generierten Diagnosefehlercode nicht beinhaltet, wiederherzustellen.
  • Gemäß der vorliegenden Erfindung wird ein Verfahren bereitgestellt, das Folgendes aufweist: Empfangen einer Softwareaktualisierung; Senden einer Flash-Initiierungsnachricht über ein Fahrzeugkommunikationsnetzwerk, Flashen der Softwareaktualisierung; und Senden eines Flash-Ergebnisses, das einen Flash-Erfolg oder einen Flash-Misserfolg beinhaltet, durch eine erste Steuereinheit in einem Fahrzeug.
  • Gemäß einer Ausführungsform ist die Erfindung ferner durch Speichern eines während des Flash generierten Diagnosefehlercode in dem Speicher gekennzeichnet.
  • Gemäß einer Ausführungsform ist die Erfindung ferner durch Empfangen eines im Speicher vor dem Flashen vorhandenen Diagnosefehlercodes und Speichern in dem Speicher gekennzeichnet.
  • Gemäß einer Ausführungsform ist die Erfindung ferner durch Sichern des Diagnosefehlercode in einem Speicherpartitionierungsabschnitt vor dem Senden der Flash-Initiierung gekennzeichnet.
  • Gemäß einer Ausführungsform ist die Erfindung ferner durch Löschen des während des Flash generierten Diagnosefehlercode nach dem Senden des Flash-Erfolgs gekennzeichnet. Gemäß einer Ausführungsform ist die Erfindung ferner durch Wiederherstellen des Diagnosefehlercode, der in dem Speicher vor dem Flash vorhanden war, aus der Sicherung nach dem Senden des Flash-Misserfolgs, nach dem Löschen des während des Flash generierten Diagnosefehlercode oder nach dem Bestimmen, dass der Speicher den während des Flash generierten Diagnosefehlercode nicht beinhaltet, gekennzeichnet.

Claims (9)

  1. Verfahren, das durch eine erste elektronische Steuereinheit in einem Fahrzeug Folgendes umfasst: Empfangen einer Softwareaktualisierung; Senden einer Flash-Initiierungsnachricht über ein Fahrzeugkommunikationsnetzwerk; Flashen der Softwareaktualisierung; und Übertragen eines Flash-Ergebnisses, das einen Flash-Erfolg oder einen Flash-Misserfolg beinhaltet.
  2. Verfahren nach Anspruch 1, ferner umfassend Speichern eines während des Flashen generierten Diagnosefehlercode im Speicher.
  3. Verfahren nach Anspruch 1, ferner umfassend: Empfangen eines im Speicher vor dem Flashen vorhandenen Diagnosefehlercode und Speichern in dem Speicher.
  4. Verfahren nach Anspruch 3, ferner umfassend: Sichern des Diagnosefehlercode in einem Speicherpartitionierungsabschnitt vor dem Senden der Flash-Initiierung.
  5. Verfahren nach Anspruch 2, ferner umfassend Bestimmen, nach dem Senden des Flash-Erfolgs, ob der Speicher den Diagnosefehlercode, der während des Flash generiert wurde, beinhaltet.
  6. Verfahren nach Anspruch 5, ferner umfassend: Löschen des während des Flash generierten Diagnosefehlercode.
  7. Verfahren nach Anspruch 6, ferner umfassend: Wiederherstellen des Diagnosefehlercode, der in dem Speicher vor dem Flash vorhanden war, aus der Sicherung nach dem Senden des Flash-Misserfolgs, nach dem Löschen des während des Flash generierten Diagnosefehlercodes oder nach dem Bestimmen, dass der Speicher den während des Flash generierten Diagnosefehlercode nicht beinhaltet.
  8. Erste elektronische Steuereinheit in einem Fahrzeug, wobei die erste elektronische Steuereinheit einen Computer beinhaltet, der dazu programmiert ist, das Verfahren nach einem der Ansprüche 1-7 auszuführen.
  9. System, das einen Computer beinhaltet, der dazu programmiert ist, das Verfahren nach einem der Ansprüche 1-7 auszuführen.
DE102020123091.5A 2019-09-09 2020-09-03 Verbesserte fahrzeug-ecu-flash-programmierung Withdrawn DE102020123091A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/564,670 US20210072975A1 (en) 2019-09-09 2019-09-09 Vehicle ecu flash programming
US16/564,670 2019-09-09

Publications (1)

Publication Number Publication Date
DE102020123091A1 true DE102020123091A1 (de) 2021-03-11

Family

ID=74644837

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020123091.5A Withdrawn DE102020123091A1 (de) 2019-09-09 2020-09-03 Verbesserte fahrzeug-ecu-flash-programmierung

Country Status (3)

Country Link
US (1) US20210072975A1 (de)
CN (1) CN112462728A (de)
DE (1) DE102020123091A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113504771A (zh) * 2021-07-16 2021-10-15 东风小康汽车有限公司重庆分公司 一种控制器升级方法和系统
CN114265382A (zh) * 2021-11-12 2022-04-01 潍柴动力股份有限公司 Ecu刷写故障处理方法、装置、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366589B2 (en) * 2004-05-13 2008-04-29 General Motors Corporation Method and system for remote reflash
US7492726B2 (en) * 2005-12-20 2009-02-17 Palo Alto Research Center Incorporated Method and apparatus for optimizing convergecast operations in a wireless sensor network
US9557981B2 (en) * 2011-07-26 2017-01-31 Ford Global Technologies, Llc Method and apparatus for automatic module upgrade
US10061574B2 (en) * 2013-03-14 2018-08-28 Ford Global Technologies, Llc Method and apparatus for multiple vehicle software module reflash

Also Published As

Publication number Publication date
US20210072975A1 (en) 2021-03-11
CN112462728A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
EP2891264B1 (de) Verfahren zum durchführen einer sicherheitsfunktion eines fahrzeugs und system zum durchführen des verfahrens
DE102017118537A1 (de) Verwaltung von Störungszuständen autonomer Fahrzeuge
DE102013216444B4 (de) Aktive Sicherheitssysteme von Fahrzeugen mit Graphikmikroprozessoren
DE112018001402T5 (de) Elektronische steuervorrichtung für fahrzeug
DE102013216443A1 (de) Sicherheitssysteme und -verfahren mit zufälligen und mehreren Aufforderungs-Reaktions-Tests
DE102016122207A1 (de) Steuervorrichtung im fahrzeug und aufzeichnungssystem im fahrzeug
DE102014217389A1 (de) Autonomes fahren in gebieten für nichtfahrer
DE102017100380A1 (de) Diagnostiktest-durchführungssteuersystem und verfahren
DE102014220781A1 (de) Ausfallsichere E/E-Architektur für automatisiertes Fahren
EP2972607A1 (de) Verfahren zur behandlung von fehlern in einem zentralen steuergerät sowie steuergerät
EP3644148B1 (de) Testterminal für tests an einer fahrzeug-infrastruktur
DE102015107671A1 (de) Steuerung und Diagnose einer Steuerungs-Wakeup-Funktionalität
DE102016124352A1 (de) Kommunikationssystem und ein in dem Kommunikationssystem ausgeführtes Informationssammelverfahren
DE102020123091A1 (de) Verbesserte fahrzeug-ecu-flash-programmierung
DE102019103811A1 (de) Fahrzeugdiagnosevorgang
DE102019126804A1 (de) Fahrzeugsoftwareprüfung
DE102017102954A1 (de) System und verfahren zur minderung von fahrzeugsubsystemversagen
DE102018207339A1 (de) Verfahren, Vorrichtung und computerlesbares Speichermedium mit Instruktionen zum Überwachen und Validieren von Betriebsdaten in der Aktuatorik eines autonomen Kraftfahrzeugs
DE102017214661A1 (de) Verfahren zum Erkennen einer Manipulation zumindest eines Steuergeräts eines Kraftfahrzeugs sowie Prozessorvorrichtung für ein Kraftfahrzeug und Kraftfahrzeug
EP3945338A2 (de) Signalverarbeitungspfad, vorrichtung zur umfelderkennung und verfahren zur validierung eines automatisiert betreibbaren fahrsystems
DE102014212629A1 (de) Verfahren zum Betreiben eines Schienenfahrzeugs
EP3741094B1 (de) Steuerungssystem für ein kraftfahrzeug, verfahren zum betreiben des steuerungssystems sowie kraftfahrzeug mit einem derartigen steuerungssystem
WO2022167232A1 (de) Vorrichtung zum infrastrukturgestützten assistieren eines kraftfahrzeugs
DE102021208459B4 (de) Verfahren zur authentischen Datenübertragung zwischen Steuergeräten eines Fahrzeugs, Anordnung mit Steuergeräten, Computerprogramm und Fahrzeug
DE102009012887B4 (de) Verfahren zum Prüfen einer nicht korrekten Installation von Fahrzeugsensoren

Legal Events

Date Code Title Description
R082 Change of representative

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

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee