DE102017119418A1 - Betriebssicheres systemkonstruktionsmuster basierend auf softwarecode-migration - Google Patents

Betriebssicheres systemkonstruktionsmuster basierend auf softwarecode-migration Download PDF

Info

Publication number
DE102017119418A1
DE102017119418A1 DE102017119418.5A DE102017119418A DE102017119418A1 DE 102017119418 A1 DE102017119418 A1 DE 102017119418A1 DE 102017119418 A DE102017119418 A DE 102017119418A DE 102017119418 A1 DE102017119418 A1 DE 102017119418A1
Authority
DE
Germany
Prior art keywords
controller
software code
migration
fail
primary
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
DE102017119418.5A
Other languages
English (en)
Inventor
Soheil Samii
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.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations 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 GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102017119418A1 publication Critical patent/DE102017119418A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0286Modifications to the monitored process, e.g. stopping operation or adapting control
    • 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
    • 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/16Error detection or correction of the data by redundancy in hardware
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24065Real time diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • Hardware Redundancy (AREA)
  • Safety Devices In Control Systems (AREA)

Abstract

Ein betriebssicheres Steuersystem beinhaltet einen Migrationscontroller mit einem nichtflüchtigen Speicher, einem RAM und einer CPU. Der Migrationscontroller enthält Softwarecode, der im nichtflüchtigen Speicher des Migrationscontrollers gespeichert ist. Der im nichtflüchtigen Speicher des Migrationscontrollers gespeicherte und von der CPU des Migrationscontrollers ausgeführte Softwarecode ist einem jeweiligen System fest zugeordnet. Das jeweilige System befindet sich nicht unter der Steuerung eines primären Controllers eines anderen Systems. In Reaktion auf eine Aktivierung eines Systembetriebes des primären Controllers eines anderen Systems, der während der Ausführung des Systembetriebes einen Backup-Controller erfordert, wird betriebssicherer Softwarecode, der im nichtflüchtigen Speicher des primären Controllers des anderen Systems gespeichert ist, in den RAM des Migrationscontrollers übertragen. Der Migrationscontroller arbeitet während der Ausführung des Systembetriebs im primären Controller des anderen Systems vorübergehend als Backup-Controller.

Description

  • HINTERGRUND DER ERFINDUNG
  • Eine Ausführungsform betrifft fehlertolerante Steuerungssysteme.
  • Systeme, die Sicherheitsfunktionen bereitstellen, verwenden in der Regel redundante Controller, um die Sicherheit zu gewährleisten, indem sie Funktionen beenden, die einen Fehler oder einen Ausfall erfahren haben. Solche Systeme werden als fehlerstumme Systeme bezeichnet. Wenn ein Fehler erkannt wird, werden die Steuerungen für die Funktion abgeschaltet und die Funktion ist im System nicht mehr betriebsbereit.
  • Einige Systeme versuchen, Steuersysteme zu implementieren, die ein betriebssicheres System verwenden, bei dem zusätzliche Controller verwendet werden, um sicherzustellen, dass ein sicherer Betrieb für eine Zeitdauer fortgesetzt werden kann, wie beispielsweise Dual-Duplex-Controller. Wenn ein erster Controller ausfällt und stumm wird, wird ein zweiter Controller aktiviert und alle Stellglieder schalten um, um sich auf Anfragen vom zweiten Controller zu verlassen. Andere Arten von Systemen, die eine nicht-symmetrische Implementierung von Controllern nutzen, können doppelte Hardware- und Softwarefehler vermeiden. Jedoch ist in jedem Fall die Verwendung eines zweiten Controllers, der ausschließlich für den Zweck bestimmt ist, nur ein Backup-Controller für den primären Controller zu sein, ineffizient und potentiell kostspieliger in Bezug auf die Ressourcennutzung (z. B. Speicher- oder CPU-Nutzung).
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Vorteil einer Ausführungsform ist die Verwendung eines Backup-Controllers, der den nichtflüchtigen Speicher des Backup-Controllers reduziert, indem Software für die Ausführung vom nichtflüchtigen Speicher des primären Controllers in den RAM des Backup-Controllers migriert wird. Die Migration von Softwarecode zum Backup-Controller reduziert die Verwendung von nichtflüchtigen Speicheranforderungen in betriebssicheren Architekturen für elektronische Steuergeräte, was wiederum die Kosten reduziert und die Wirkungsgrade im Prozessordesign erhöht. Diese Technik optimiert das nichtflüchtige Element, während es die Controller-Konsolidierung ermöglicht und erhöht, wodurch die Komponentenkosten gesenkt werden.
  • Eine Ausführungsform sieht ein betriebssicheres Steuersystem vor. Ein primärer Controller beinhaltet einen nichtflüchtigen Speicher und eine zentrale Verarbeitungseinheit zum Ausführen von Softwarecode, der im nichtflüchtigen Speicher des primären Controllers gespeichert ist. Der im nichtflüchtigen Speicher des primären Controllers gespeicherte Softwarecode enthält eine nicht-kritische Software und eine betriebssichere Software, die von der zentralen Verarbeitungseinheit des primären Controllers während Nicht-Fehlerzuständen und Fehlerzuständen ausgeführt wird. Ein Migrationscontroller enthält einen nichtflüchtigen Speicher, einen RAM und eine zentrale Verarbeitungseinheit. Der Migrationscontroller enthält Softwarecode, der im nichtflüchtigen Speicher des Migrationscontrollers gespeichert ist. Der im nichtflüchtigen Speicher des Migrationscontrollers gespeicherte und von der zentralen Verarbeitungseinheit des Migrationscontrollers ausgeführte Softwarecode ist einem jeweiligen System fest zugeordnet. Das jeweilige System befindet sich nicht unter der Steuerung des primären Controllers. In Reaktion auf eine Aktivierung eines Systembetriebes des primären Controllers, der während der Ausführung des Systembetriebes einen Backup-Controller erfordert, wird betriebssicherer Softwarecode, der im nichtflüchtigen Speicher des primären Controllers, der den Systembetrieb betrifft, gespeichert ist, in den RAM des Migrationscontrollers übertragen. Der Migrationscontroller arbeitet während der Ausführung des Systembetriebs im primären Controller vorübergehend als Backup-Controller.
  • Eine Ausführungsform sieht ein betriebssicheres Steuersystem vor. Ein Migrationscontroller enthält einen nichtflüchtigen Speicher, einen RAM und eine zentrale Verarbeitungseinheit. Der Migrationscontroller enthält Softwarecode, der im nichtflüchtigen Speicher des Migrationscontrollers gespeichert ist. Der im nichtflüchtigen Speicher des Migrationscontrollers gespeicherte und von der zentralen Verarbeitungseinheit des Migrationscontrollers ausgeführte Softwarecode ist einem jeweiligen System fest zugeordnet. Das jeweilige System befindet sich nicht unter der Steuerung eines primären Controllers eines anderen Systems. In Reaktion auf eine Aktivierung eines Systembetriebes des primären Controllers eines anderen Systems, der während der Ausführung des Systembetriebes einen Backup-Controller erfordert, wird betriebssicherer Softwarecode, der im nichtflüchtigen Speicher des primären Controllers des anderen Systems gespeichert ist, in den RAM des Migrationscontrollers übertragen. Der Migrationscontroller arbeitet während der Ausführung des Systembetriebs im primären Controller des anderen Systems vorübergehend als Backup-Controller.
  • Verfahren zur Rekonfiguration eines Controllers für betriebssichere Bedingungen. Ein Migrationscontroller wird ausgewählt, um betriebssicheren Softwarecode während eines Ausfalls eines primären Controllers eines anderen Systems zu übertragen. Der Migrationscontroller steht nicht unter der Steuerung des primären Controllers eines anderen Systems, das der primäre Controller steuert. Ein Systembetrieb des primären Controllers, der einen Backup-Controller benötigt, wird während der Ausführung des Systembetriebs im primären Controller aktiviert. Betriebssicherer Softwarecode in einem nichtflüchtigen Speicher des primären Controllers wird in einen RAM des Migrationscontrollers übertragen. Der Migrationscontroller enthält Softwarecode, der im nichtflüchtigen Speicher des Migrationscontrollers gespeichert ist, der einem anderen System zugeordnet ist, das sich vom System unterscheidet, das durch den primären Controller gesteuert wird. Im primären Controller wird ein Fehler erkannt. Der betriebssichere Softwarecode wird im RAM des Migrationscontrollers in Reaktion auf die Erkennung des Fehlers im primären Controller ausgeführt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein architektonisches Blockdiagramm eines integrierten fehlerstummen und betriebssicheren Steuerungssystems.
  • 2 ist ein Ablaufdiagramm für die Migration betriebssicherere Funktionssoftware vom primären Controller zum anderen Funktionscontroller.
  • 3 veranschaulicht ein Blockdiagramm, das die Softwaremigration in den RAM des anderen Funktionscontrollers zeigt.
  • 4 zeigt eine Zeitachse der Software-Migration und Rekonfiguration in den beiden Controllern.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die nachfolgende ausführliche Beschreibung dient lediglich zum besseren Verständnis der Ausführungsformen und ist nicht dazu bestimmt, die Ausführungsformen des hierin beschriebenen Gegenstands oder die Anwendung und Verwendungen dieser erwähnten Ausführungsformen zu beschränken. Jeder Gebrauch des Wortes „exemplarisch“ ist auszulegen als „dient als Beispiel, Sachverhalt oder zur Veranschaulichung“. Hierin beschriebene Anwendungen sind exemplarisch und nicht als bevorzugt oder vorteilhaft gegenüber anderen Anwendungen zu verstehen. Die Beschreibungen in diesem Dokument sind nicht als gebunden durch eine ausdrückliche oder implizierte Theorie zu verstehen, die vor dem vorstehenden Hintergrund, der ausführlichen Beschreibung oder den ausführlichen Beschreibungen, der Zusammenfassung oder der folgenden ausführlichen Beschreibung vorgestellt wird.
  • Die Techniken und Technologien können hierin in Bezug auf die funktionellen und/oder logischen Blockkomponenten und unter Bezugnahme auf symbolische Darstellungen von Vorgängen, Programmverarbeitungen und Funktionen beschrieben werden, die von verschiedenen Computerkomponenten oder Vorrichtungen durchgeführt werden können. Diese Vorgänge, Programme und Funktionen werden zuweilen als Computer-ausgeführt, computerisiert, Software-implementiert oder Computer-implementiert bezeichnet. Es sollte beachtet werden, dass derartige Blockkomponenten aus einer beliebigen Anzahl an Hardware, Software und/oder Firmware-Komponenten aufgebaut sein können, die dafür konfiguriert sind, die spezifischen Funktionen auszuführen. So kann zum Beispiel eine Ausführungsform eines Systems oder einer Komponente verschiedene integrierte Schaltungskomponenten, beispielsweise Speicherelemente, digitale Signalverarbeitungselemente, Logikelemente, Nachschlagetabellen oder dergleichen einsetzen, die eine Vielzahl von Funktionen unter der Steuerung eines oder mehrerer Mikroprozessoren oder anderer Steuervorrichtungen durchführen können.
  • Wenn in Software oder Firmware implementiert, sind verschiedene Elemente der hierin beschriebenen Systeme im Wesentlichen die Codesegmente oder Anweisungen, die die verschiedenen Aufgaben ausführen. In bestimmten Ausführungsformen sind die Programm- oder Codesegmente auf einem physischen, prozessorlesbaren Medium gespeichert, bei dem es sich um jedes Medium handeln kann, das in der Lage ist, Informationen zu speichern oder zu übertragen. Beispiele für nichtflüchtige, Prozessor-lesbare Medien beinhalten einen elektronischen Schaltkreis, einen Mikrocontroller, einen anwendungsspezifischen integrierten Schaltkreis (ASIC), ein Halbleiter-Speicherelement, einen ROM-Speicher, einen Flash-Speicher, einen löschbaren ROM-Speicher (EROM), eine Floppy-Disk, eine CD-ROM, eine optische Speicherplatte, eine Festplatte oder dergleichen.
  • Das hierin beschriebene System und die Methodik können verwendet werden, um Sicherheitssteuerungsfunktionen in Controllern aufrechtzuerhalten, die Softwarefunktionen in Steuersystemen ausführen. Während der Ansatz und die Methodik bezüglich der Fahrzeugkommunikation nachstehend beschrieben sind, versteht sich für Experten, dass eine Automobilanwendung lediglich exemplarisch ist und dass die hierin offenbarten Konzepte auch auf jedes andere geeignete Kommunikationssystem angewendet werden kann, wie beispielsweise allgemeine industrielle Automatisierungsanwendungen, Fertigungs- und Montageanwendungen, Avionik, Luft- und Raumfahrt und Gaming.
  • Der Begriff „Fahrzeug“, wie hierin beschrieben, kann im weitesten Sinne so ausgelegt werden, dass er nicht nur einen PKW betrifft, sondern alle anderen Fahrzeuge, beinhaltet, ohne jedoch darauf beschränkt zu sein, Schienenverkehrssysteme, Flugzeuge, Geländesportfahrzeuge, Roboterfahrzeuge, Motorräder, LKW, Sportnutzfahrzeuge (SUV), Wohnmobile (RV), Wasserfahrzeuge, Luftfahrzeuge, landwirtschaftliche Fahrzeuge, selbstfahrende Fahrzeuge, gemeinsam genutzte Fahrzeuge und Baufahrzeuge.
  • In 1 ist ein architektonisches Blockdiagramm eines exemplarischen integrierten Steuersystems dargestellt. Derartige Steuersysteme verwenden häufig zwei Controller, sodass wenn ein Hardwarefehler bei einem primären Controller auftritt, auf einfache Weise ein Backup-Controller aktiviert werden kann, um eine Funktion des Steuersystems zu steuern oder einen Controller für eine begrenzte Funktionalität des Merkmals im Fehlerfall bereitzustellen.
  • In 1 ist ein architektonisches Blockdiagramm eines integrierten betriebssicheren Steuersystems dargestellt. Steuerungssysteme, einschließlich, jedoch nicht beschränkt auf Fahrzeuge, Flugzeuge und Schiffe, die sicherheitskritische Systeme oder autonome Systeme verwenden, erfordern fehlertolerante Gegenmaßnahmen, wenn ein Fehler innerhalb des Steuersystems auftreten sollte. Derartige Steuersysteme verwenden häufig zwei Controller, sodass, wenn ein Fehler (der aus einem Fehler resultiert) mit einem primären Controller auftritt, auf einfache Weise ein Backup-Controller aktiviert werden kann, um eine Funktion des Steuersystems zu steuern oder eine Steuerung für eine begrenzte Funktionalität der fehlerhaften Funktion bereitzustellen.
  • In 1 ist ein jeweiliges System gezeigt, das einen primären Controller 12 und einen anderen Funktionscontroller 14 (z. B. einen Migrationscontroller) enthält. Das hierin beschriebene exemplarische System ist fahrzeugbasiert, aber wie zuvor beschrieben, kann die Architektur auf Nicht-Fahrzeugsysteme anwendbar sein. Der primären Controller 12 beinhaltet mindestens eine zentrale Verarbeitungseinheit (CPU) 16 zum Ausführen der Software. Der primären Controller 12 beinhaltet ferner einen nichtflüchtigen Speicher (NVM, Non-volatile Memory) 18 zum Speichern unkritischen Software 19, fehlerstummer Software 20 und betriebssicherer Software 21. Alle Betriebsanleitungen für die Ausführung von Software während eines Nicht-Fehlerzustandes und während eines Fehlerzustandes sind im NVM 18 des primären Controllers 12 gespeichert. Der primäre Controller 12 enthält ferner einen RAM 22, um auf andere Daten oder Befehle zuzugreifen, die vorübergehend gespeichert werden.
  • Der andere Funktionscontroller 14 enthält eine ähnliche Architektur, die mindestens eine CPU 23, einen NVM 24 und einen RAM 26 umfasst. Der andere Funktionscontroller 14 ist ein Controller, der einem anderen System gewidmet ist oder von mehreren Systemen gemeinsam genutzt wird. In einem herkömmlichen System, bei dem es einen Backup-Controller gibt, der dem aktuellen System gewidmet ist, würde der dedizierte Backup-Controller dieselbe Betriebssoftware als auch die nicht-kritische Software, die fehlerstumme Software und die betriebssichere Software im NVM für die Ausführung von Operationen während eines Nicht-Fehlerzustandes und eines Fehlerzustandes haben. Wie hierin beschrieben ist der andere Funktionscontroller 14 einem anderen System gewidmet oder wird von einem anderen System gemeinsam genutzt. Wenn der NVM des primären Controllers nicht in der Lage wäre, zusätzliche Anweisungen zu speichern (d. h. die betriebssichere Backup-Software), dann wäre ein zusätzlicher bezeichneter Controller erforderlich, oder ein anderer Funktionscontroller müsste mit einem zusätzlichen NVM-Speicher aufgerüstet werden, was ineffizient wäre.
  • Um dieses Problem zu überwinden, wird Softwarecode-Migration und Rekonfiguration auf dem anderen Funktionscontroller 14 ausgeführt. Die betriebssichere Software des primären Controllers 12 wird in den RAM 26 des anderen Funktionscontrollers 14 übertragen, um es dem anderen Funktionscontroller 14 zu ermöglichen, Operationen des ausgefallenen Systems zu steuern, falls ein Fehler im primären Controller 12 auftritt.
  • Es wird ein Kommunikationsnetzwerk 27 verwendet, das es dem primären Controller 12 und dem anderen Funktionscontroller 14 ermöglicht, miteinander zu kommunizieren und den Softwarecode vom NVM 18 des primären Controllers 12 in den RAM 26 des anderen Funktionscontrollers 14 zu übertragen. Es versteht sich, dass das Kommunikationsnetzwerk Kommunikationsbereichsnetz (CAN), CAN-FD, FlexRay, Switched Networking mit Ethernet, drahtlose Kommunikation oder mehrere Netzwerke mit Gates beinhalten kann, ist aber nicht darauf beschränkt. Das Kommunikationsnetz 27 ermöglicht es jedem der Controller und Sensoren/Stellgliedern, miteinander zu kommunizieren. Der primäre Controller 12 und der andere Funktionscontroller 14 verwenden das Kommunikationsnetzwerk 27 auch, um Daten zwischen den Sensoren 28 und den Stellgliedern 29 zu empfangen und zu übertragen.
  • 2 zeigt ein Flussdiagramm, das sich auf die Migration von Software auf den anderen Funktionscontroller bezieht. In Block 51 wird eine Systemfunktion aktiviert, bei der ein Backup-Controller erforderlich ist. Beispiele solcher Systeme beinhalten, sind aber nicht beschränkt auf, adaptiven Fahrgeschwindigkeitsregelung, autonome Einparkunterstützung und Spurzentrierung.
  • In Block 52 wird in Reaktion auf die Freigabe eines Systembetriebs, der einen Backup-Controller erfordert, falls ein Fehler mit dem primären Controller auftritt, der Softwarecode vom primären Controller in den RAM des anderen Funktionscontrollers migriert. Der nichtflüchtige Speicher des anderen Funktionscontrollers verfügt über Softwarecode, der für ein anderes dediziertes System verwendet wird. Der Softwarecode, der vom primären Controller an den anderen Funktionscontroller übertragen und im RAM des anderen Funktionscontrollers gespeichert wird, bleibt im RAM des anderen Funktionscontrollers gespeichert, bis der gegenwärtig aktivierte Funktionsbetrieb deaktiviert ist.
  • In Schritt 53 wird die Rekonfiguration des anderen Funktionscontrollers für die Systemfunktion durchgeführt. Dies kann das Stoppen einiger oder aller Ausführungen der anderen Funktionen beinhalten, um zu ermöglichen, dass das betriebssichere Backup betriebsbereit wird und als Hot-Standby arbeitet. Dies ist akzeptabel, solange die andere Funktion keine kritische Software ist, die ausgeführt werden muss, während die im RAM gespeicherte und ausgeführte Systemfunktion aktiviert betriebsbereit gemacht wird.
  • In Schritt 54 wird eine Bestimmung durchgeführt, ob ein Fehler im primären Controller auftritt. Wenn kein Fehler auftritt, geht die Routine zu Schritt 56 über, andernfalls geht die Routine zu Schritt 55 über.
  • In Schritt 55 führt der andere Funktionscontroller in Reaktion auf einen erkannten Fehler im primären Controller den Softwarecode aus, der im RAM des anderen Funktionscontrollers gespeichert ist. Der andere Funktionscontroller unterhält den Betrieb der Systemfunktion, bis die Systemfunktion abgeschlossen ist oder bis ein Fahrer die Kontrolle über den autonomen Betrieb fortsetzen kann. Wird im anderen Funktionscontroller zusätzlich zum primären Controller ein Fehler erkannt, so kann der primäre Controller ihn erkennen und sofortige Maßnahmen ergreifen, wie zum Beispiel das Alarmieren des Fahrers, um die Kontrolle über den Betrieb zu übernehmen, oder eine selbständige Bewegung in einen sicheren Bereich (z. B. Straßenrand) und Betätigen verschiedener Sicherheitsfunktionen, die Warnsignale einschließen, aber nicht darauf beschränkt sind.
  • In Schritt 56 wird, bei einer sicheren Deaktivierung der Systemfunkton, der Softwarecode aus dem RAM entfernt. Wird eine nächste Systemfunktion aktiviert, die einen Backup-Controller benötigt, kann der andere Funktionscontroller, falls verfügbar, als Backup-Controller verwendet werden, zum Software-Code migriert und im RAM gespeichert wird.
  • Es versteht sich, dass mehr als ein Funktionscontroller als Backup-Controller verwendet werden kann. In diesem Fall kann je nach Verfügbarkeit ein jeweiliger Controller ausgewählt werden. Das heißt, wenn ein Controller derzeit von seinem dedizierten System genutzt wird und nicht als Backup-Controller genutzt werden kann, dann kann zu diesem Zeitpunkt ein anderer Funktionscontroller ausgewählt werden, der verfügbar ist.
  • 3 zeigt ein Blockdiagramm, das den primären Controller 12, den anderen Funktionscontroller 14 und den jeweiligen Softwarecode zeigt, der im jeweiligen zugeordneten Speicher gespeichert ist.
  • Der primäre Controller 12 ist beispielsweise ein externes Objektberechnungsmodul (EOCM, External Object Calculating Module), das zum Erfassen von Objekten und zur Vermeidung von Kollisionen verwendet wird. Der Softwarecode ist permanent im NVM 18 des primären Controllers 12 gespeichert. Verschiedene Arten von Softwarecode, die jeweilige Funktionen regeln, werden als mit einer betriebssicheren Funktion oder einer fehlerstummen oder nicht kritischen Funktion verknüpft identifiziert. Beispiele für Software für fehlerstumme oder nicht kritische Funktionen umfassen die Kollisionsvermeidungssoftware 60 und die Karten/HMI-Software 62. Beispiele für Software für betriebssichere Funktionen umfassen die Situationsbewusstseinssoftware 64, die adaptive Geschwindigkeitssteuerungssoftware 66, die Fahrzeugdynamiksoftware 68 und die Spurzentrierungssteuerungssoftware 70.
  • Der andere Funktionscontroller 14 ist beispielsweise ein Videoverarbeitungsmodul(VPM-)Controller, der verwendet wird, um Video von verschiedenen Videogeräten eines Fahrzeugs zu verarbeiten. Der Softwarecode wird permanent im NVM 24 des primären Controllers 12 gespeichert, um Videoverarbeitungsoperationen zu steuern. Arten von Softwarecode, die im NVM 24 gespeichert sind, umfassen die Videoverarbeitungssoftware 72, die Fußgängererkennungssoftware 74, die Surround-View-Software 76, die Parkassistenzsoftware 78, die Nachtsichtsoftware 80 und die Spurerfassungssoftware 82. Diese Softwarecodes sind dem VPM für die Ausführung von Prozessen durch den VPM-Controller gewidmet. Während der NVM 24 eine dedizierte Software für die Videoverarbeitung enthält, wird Software vom EOCM-Controller über das Kommunikationsnetzwerk 27 zum RAM 26 des VPM-Controllers migriert und dort gespeichert. Wie gezeigt, wird nur die Software, die sich auf die betriebssicheren Funktionen des EOCM bezieht, in den RAM 26 des VPM-Controllers übertragen, was die Situationsbewusstseinssoftware 64, die adaptive Geschwindigkeitssteuerungssoftware 66, die Fahrzeugdynamiksoftware 68 und die Fahrspurzentrierungssteuerungssoftware 70 beinhaltet. Im Falle eines Ausfalls des primären Controllers 12 wird die Steuerung an den anderen Funktionscontroller 14 abgetreten, wobei der jeweilige Softwarecode, der sich auf im RAM 26 gespeicherte betriebssichere Funktionen bezieht, von der CPU 22 des anderen Funktionscontrollers 14 ausgeführt wird.
  • Infolgedessen können Kosten, Komponenten, einschließlich Kommunikationsleitungen und Komplexität reduziert werden, da kein Duplikat-Controller aufrechterhalten werden muss, der als Backup-Controller im Standby-Modus zugewiesen ist und auf einen Fehler im primären Controller wartet.
  • 4 zeigt eine Zeitachse zum Ausführen von Softwarecode in jedem Controller. Die Zeitachse 92 repräsentiert die Controllerverarbeitung für den primären Controller, während die Zeitachse 94 eine Controllerverarbeitung für den Backup-Controller darstellt. Zum Zeitpunkt t0 verarbeiten beide Controller Software, die in ihrem jeweiligen NVM gespeichert ist, um ihre jeweiligen Systeme zu überwachen und zu betreiben. Im primären Controller repräsentiert die auf der Zeitachse 92 gezeigte und durch 96 dargestellte Funktionsausführung einen Softwarecode, der sich auf eine nicht kritische Funktionssoftware bezieht, während die auf der Zeitachse 92 gezeigte und durch 98 dargestellte Funktionsausführung einen Softwarecode darstellt, der sich auf betriebssichere Funktionen bezieht. Im anderen Funktionscontroller wird die Funktionsausführungssoftware im NVM des anderen Funktionscontrollers durch 100 dargestellt. Dieser jeweilige Softwarecode führt Funktionsoperationen aus, für deren Verarbeitung der andere Funktionscontroller dediziert ist.
  • Zum Zeitpunkt t1 wird die Softwarecode-Migration 102 im primären Controller und dem anderen Funktionscontroller gestartet. Die Softwarecode-Migration wird ausgelöst, wenn eine entsprechende Funktion vom primären Controller aktiviert wird, der als betriebssichere Funktion identifiziert wird. Betriebssichere Funktionen erfordern einen Backup-Controller, falls ein Fehler im primären Controller auftritt. In Reaktion auf die Ausführung der jeweiligen Funktion im primären Controller wird der Softwarecode vom NVM des primären Controllers in den RAM des anderen Funktionscontrollers migriert. Wenn der Softwarecode in den RAM des anderen Funktionscontrollers übertragen wird, wird eine Rekonfiguration des anderen Funktionscontrollers durchgeführt, um als ein Backup-Controller zu arbeiten, der den Softwarecode im RAM verwendet.
  • Zum Zeitpunkt t2 hält der primäre Controller die Ausführung von Softwarecode sowohl der betriebssicheren Funktionsoperationen und der nicht kritischen Funktionsoperationen aufrecht. Der andere Funktionscontroller wird rekonfiguriert, um die im RAM des anderen Funktionscontrollers gespeicherten betriebssicheren Funktionsoperationen 98 auszuführen. Der andere Funktionscontroller kann weiterhin den in seinem NVM gespeicherten Softwarecode 104 ausführen, wenn er sich auf im RAM gespeicherte Funktionsoperationen bezieht, oder er kann weiterhin den gesamten Softwarecode ausführen, wenn für die Ausführung des gesamten Softwarecodes genügend CPU-Kapazität vorhanden ist. Alternativ kann andere Funktionssoftware im NVM ausgeschaltet oder ein Teil davon ausgeschaltet werden. Wenn zum Beispiel der Softwarecode für die Spurzentrierungssteuerung im RAM des anderen Funktionscontrollers gespeichert ist und der Softwarecode für die Spurabtastung im NVM des anderen Funktionscontrollers gespeichert ist, führt der andere Funktionscontroller weiterhin eine Spurabtastung aus, die sich auf die betriebssicheren Funktionsoperationen bezieht. Der andere Funktionscontroller führt weiterhin den in seinem RAM gespeicherten Softwarecode aus, bis die jeweilige Funktionsoperation, die einen Backup-Controller erfordert, abgeschlossen oder ausgeschaltet ist.
  • Während bestimmte Ausführungsformen der vorliegenden Erfindung in Einzelheiten beschrieben wurden, werden Fachleute auf dem Gebiet, auf das sich diese Erfindung bezieht, verschiedene alternative Entwürfe und Ausführungsformen für die Durchführung der Erfindung erkennen, wie durch die folgenden Patentansprüche bestimmt.

Claims (10)

  1. Betriebssicheres Steuersystem, umfassend: einen primären Controller, der einen nichtflüchtigen Speicher und eine zentrale Verarbeitungseinheit zum Ausführen von Softwarecode beinhaltet, der im nichtflüchtigen Speicher des primären Controllers gespeichert ist, wobei der im nichtflüchtigen Speicher des primären Controllers gespeicherte Softwarecode eine nicht-kritische Software und eine betriebssichere Software enthält, die von der zentralen Verarbeitungseinheit des primären Controllers während Nicht-Fehlerzuständen und Fehlerzuständen ausgeführt wird; einen Migrationscontroller, der einen nichtflüchtigen Speicher, einen RAM und eine zentrale Verarbeitungseinheit beinhaltet, wobei der Migrationscontroller Softwarecode enthält, der im nichtflüchtigen Speicher des Migrationscontrollers gespeichert ist, wobei der von der zentralen Verarbeitungseinheit des Migrationscontrollers ausgeführte, im nichtflüchtigen Speicher gespeicherte Softwarecode einem jeweiligen System gewidmet ist, wobei das jeweilige System nicht unter der Steuerung des primären Controllers steht; wobei in Reaktion auf eine Aktivierung eines Systembetriebes des primären Controllers, der während der Ausführung des Systembetriebes einen Backup-Controller erfordert, betriebssicherer Softwarecode, der im nichtflüchtigen Speicher des primären Controllers, der den Systembetrieb betrifft, gespeichert ist, in den RAM des Migrationscontrollers übertragen wird, wobei der Migrationscontroller vorübergehend als Backup-Controller während der Ausführung des Systembetriebs im primären Controller arbeitet.
  2. Betriebssicheres Steuersystem nach Anspruch 1, ferner umfassend ein Kommunikationsnetzwerk, wobei der betriebssichere Softwarecode, der im nichtflüchtigen Speicher des primären Controllers gespeichert ist, über das Kommunikationsnetzwerk in den RAM des Migrationscontrollers übertragen wird.
  3. Betriebssicheres Steuersystem nach Anspruch 1, worin das Übertragen des betriebssicheren Softwarecodes vom nichtflüchtigen Speicher des primären Controllers in den RAM Speicher Migrationscontrollers übertragen wird, wenn der Systembetrieb im primären Controller aktiviert ist.
  4. Betriebssicheres Steuersystem nach Anspruch 1, worin der als Backup-Controller rekonfigurierte Migrationscontroller den betriebssicheren Softwarecode nach der Deaktivierung des Systembetriebs aus dem RAM entfernt.
  5. Betriebssicheres Steuersystem nach Anspruch 1, worin der Migrationscontroller in Reaktion auf einen Ausfall im primären Controller durch Ausführen des in den RAM gespeicherten migrierten betriebssicheren Softwarecodes als ein zugewiesener primärer Controller fungiert.
  6. Betriebssicheres Steuersystem nach Anspruch 1, worin der Migrationscontroller, auf den der betriebssichere Softwarecode migriert wird, aus einer Vielzahl von Controllern ausgewählt wird.
  7. Betriebssicheres Steuersystem nach Anspruch 6, worin der Migrationscontroller basierend darauf ausgewählt wird, ob der Migrationscontroller gegenwärtig Softwarecode für das System ausführt, dem der Migrationscontroller gewidmet ist.
  8. Betriebssicheres Steuersystem nach Anspruch 6, worin der Migrationscontroller basierend darauf ausgewählt wird, ob der im nichtflüchtigen Speicher des Migrationscontrollers gespeicherte Softwarecode mit dem betriebssicheren Softwarecode des primären Controllers zusammenhängt.
  9. Betriebssicheres Steuersystem nach Anspruch 1, worin ferner der Migrationscontroller den vom primären Controller übertragenen und im RAM gespeicherten Softwarecode in Reaktion auf einen erkannten Fehler im primären Controller ausführt.
  10. Betriebssicheres Steuersystem nach Anspruch 9, worin der Migrationscontroller mindestens einen Teil des im nichtflüchtigen Speicher des Migrationscontrollers gespeicherten Softwarecodes ausführt, der sich auf das designierte System des Migrationscontrollers bezieht, während gleichzeitig Softwarecode, der im RAM des primären Controllers gespeichert ist, in Reaktion auf den erkannten Fehler ausgeführt wird
DE102017119418.5A 2016-08-25 2017-08-24 Betriebssicheres systemkonstruktionsmuster basierend auf softwarecode-migration Pending DE102017119418A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/246,793 2016-08-25
US15/246,793 US10324636B2 (en) 2016-08-25 2016-08-25 Fail-operational system design pattern based on software code migration

Publications (1)

Publication Number Publication Date
DE102017119418A1 true DE102017119418A1 (de) 2018-03-01

Family

ID=61166748

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017119418.5A Pending DE102017119418A1 (de) 2016-08-25 2017-08-24 Betriebssicheres systemkonstruktionsmuster basierend auf softwarecode-migration

Country Status (3)

Country Link
US (1) US10324636B2 (de)
CN (1) CN107783530B (de)
DE (1) DE102017119418A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110531678B (zh) * 2019-09-16 2020-10-02 珠海格力电器股份有限公司 自控系统及其运维方法
JP7496756B2 (ja) * 2020-10-16 2024-06-07 株式会社日立製作所 制御システム及びその制御方法
CN115328065A (zh) * 2022-09-16 2022-11-11 中国核动力研究设计院 一种应用于工业控制系统的控制单元功能自动迁移的方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5646843A (en) * 1990-02-05 1997-07-08 Caterpillar Inc. Apparatus and method for surface based vehicle control system
EP1672505A3 (de) * 2004-12-20 2012-07-04 BWI Company Limited S.A. Fail-Silent-Knotenarchitektur
US8806295B2 (en) * 2012-05-24 2014-08-12 International Business Machines Corporation Mis-correction and no-correction rates for error control
US9740178B2 (en) * 2013-03-14 2017-08-22 GM Global Technology Operations LLC Primary controller designation in fault tolerant systems
US9519577B2 (en) * 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9195232B1 (en) * 2014-02-05 2015-11-24 Google Inc. Methods and systems for compensating for common failures in fail operational systems
CN105335254B (zh) * 2015-11-03 2018-07-24 烽火通信科技股份有限公司 虚拟化备份容错系统及方法

Also Published As

Publication number Publication date
CN107783530A (zh) 2018-03-09
CN107783530B (zh) 2020-12-01
US10324636B2 (en) 2019-06-18
US20180059963A1 (en) 2018-03-01

Similar Documents

Publication Publication Date Title
DE102017106087A1 (de) Fehlertoleranz-muster und schaltprotokoll für mehrere hot- und cold-standby-redundanzen
DE102018124499A1 (de) Dreifache Ausfallsicherheitsredundanz für Lenksysteme
DE102020118412A9 (de) Unabhängige sicherheitsüberwachung eines automatisierten fahrsystems
DE112017007616T5 (de) Fahrzeug-Steuerungseinrichtung
DE102013205285A1 (de) Systeme und Verfahren für die ECU-Aufgaben-Rekonfiguration
DE102017106086A1 (de) Hybrid-dual-duplex fail-betriebsmuster und verallgemeinerung einer beliebigen anzahl an ausfällen
EP3211533B1 (de) Fehlertolerante systemarchitektur zur steuerung einer physikalischen anlage, insbesondere einer maschine oder eines kraftfahrzeugs
DE102017119418A1 (de) Betriebssicheres systemkonstruktionsmuster basierend auf softwarecode-migration
DE102018126270A1 (de) Dezentralisierte fahrzeugsteuerung der minimalen risikobedingung
DE102017116883A1 (de) Ununterbrochene Verfügbarkeit von Daten während eines Fehlers in einem redundanten Mikrocontrollersystem
DE112019003262T5 (de) Elektronische Steuereinheit
EP3642717A1 (de) Vorrichtung und verfahren zum ansteuern eines fahrzeugmoduls
DE112019005243T5 (de) Fahrzeugsteuervorrichtung und fahrzeugsteuerverfahren
DE102017218438A1 (de) Verfahren und System zum Betreiben eines Fahrzeugs
DE112019007432B4 (de) Elektronische steuereinheit und programm
WO2007025816A2 (de) Speicheranordnung und betriebsverfahren dafür
DE102019201607A1 (de) Steuerungssystem für ein Kraftfahrzeug
DE102015202326A1 (de) Verfahren zum Betreiben einer Datenverarbeitungseinheit eines Fahrerassistenzsystems und Datenverarbeitungseinheit
EP3341843B1 (de) Verfahren und vorrichtung zum überwachen eines zustandes einer elektronischen schaltungseinheit eines fahrzeugs
DE102012212680A1 (de) Verfahren und System zur fehlertoleranten Steuerung von Stellgliedern für eine begrenzte Zeit auf der Grundlage von vorberechneten Werten
DE112020006919T5 (de) Fahrzeugsteuersystem, integrierte fahrzeugsteuervorrichtung, elektronische steuervorrichtung, netzkommunikationsvorrichtung, fahrzeugsteuerverfahren und fahrzeugsteuerprogramm
EP4091054A1 (de) Verfahren und vorrichtung zum rekonfigurieren eines automatisiert fahrenden fahrzeugs in einem fehlerfall
DE102018210733A1 (de) Verfahren zum Überwachen wenigstens einer Recheneinheit
DE102017119447A1 (de) Koordinierte Multi-Modus-Zuordnung und Laufzeitumschaltung für Systeme mit dynamischen Fehlertoleranz-Anforderungen
DE102017212560A1 (de) Verfahren zum ausfallsicheren Durchführen einer sicherheitsgerichteten Funktion

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MANITZ FINSTERWALD PATENT- UND RECHTSANWALTSPA, DE

Representative=s name: MANITZ FINSTERWALD PATENTANWAELTE PARTMBB, DE