DE102017106087A1 - Fehlertoleranz-muster und schaltprotokoll für mehrere hot- und cold-standby-redundanzen - Google Patents

Fehlertoleranz-muster und schaltprotokoll für mehrere hot- und cold-standby-redundanzen Download PDF

Info

Publication number
DE102017106087A1
DE102017106087A1 DE102017106087.1A DE102017106087A DE102017106087A1 DE 102017106087 A1 DE102017106087 A1 DE 102017106087A1 DE 102017106087 A DE102017106087 A DE 102017106087A DE 102017106087 A1 DE102017106087 A1 DE 102017106087A1
Authority
DE
Germany
Prior art keywords
controller
backup
status mode
controllers
master
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
DE102017106087.1A
Other languages
English (en)
Inventor
Soheil Samii
Thomas E. Fuhrman
Massimo Osella
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 DE102017106087A1 publication Critical patent/DE102017106087A1/de
Withdrawn 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/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • B60R16/0231Circuits relating to the driving or the functioning of the vehicle
    • 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/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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/2041Error 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 with more than one idle spare processing component
    • 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/2048Error 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 where the redundant components share neither address space nor persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Landscapes

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

Abstract

Ein Verfahren zur fehlertoleranten Controller-Bereitschaft. Ausführen von Funktionen durch einen ersten Controller, der in einem Primärstatusmodus arbeitet. Betreiben eines zweiten Controllers in einem Hot-Standby-Status-Modus und Spiegeln des ersten Controllers durch die Ausführung von Funktionen, für den Betrieb als redundante Controller. Betreiben in einem Cold-Standby-Status-Modus von mindestens einem Backup-Controller unter normalen Betriebsbedingungen. Der zweite Controller wird rekonfiguriert, während er unter normalen Betriebsbedingungen vom Hot-Standby-Status-Modus zum primären Standby-Status-Modus arbeitet, wenn im ersten Controller ein Fehler auftritt. Rekonfigurieren des mindestens einen Backup-Controllers, der unter normalen Betriebsbedingungen vom Cold-Standby-Statusmodus in den Hot-Standby-Statusmodus arbeitet, um als redundanter Controller als Reaktion auf die Rekonfiguration des zweiten Controllers vom Hot-Standby-Statusmodus zum Primärstatusmodus zu arbeiten.

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 Fehler erfahren haben. Wenn ein Fehler erkannt wird, wird der Controller abgeschaltet oder der Controller fällt stillschweigend aus, wenn keine Signale vom Controller erzeugt werden und ein sekundärer Controller neu konfiguriert wird, um der primäre Controller zu werden.
  • Einige Systeme versuchen, Steuersysteme zu implementieren, die ein fehlersicheres 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 oder ein dreifacher modularer Redundanzansatz. In einem Dual-Duplex-Ansatz, wenn ein erster Controller ausfällt und still ausfällt, wird ein zweiter Controller aktiviert und alle Stellglieder schalten um, um sich auf Anfragen vom zweiten Controller zu verlassen. Im Gegensatz zu Softwarefehlern, bei denen ein Fehler in einem Controller im Duplikat-Controller vorhanden wäre, sind Hardwarefehler (z. B. Stromversorgungsfehler, Kurzschluss nach Massefehlern usw.) sind typischerweise unabhängig und es besteht die Wahrscheinlichkeit, dass der sekundäre Controller nicht denselben Hardwarefehler aufweist, der mit dem primären Controller aufgetreten ist und danach ordnungsgemäß arbeiten kann. In bestimmten Operationen ist die Aufrechterhaltung der Funktionalität eines Controllers entscheidend, wobei das System entweder eine sofortige Übernahme der primären Controller-Zuständigkeiten erfordert, oder wobei ein Controller für eine Zeitspanne funktionieren muss, bis ein anderer Controller zur Übernahme rekonfiguriert werden kann. Als Ergebnis nutzen Systeme mehrere Controller als Backup-Controller. Bestimmte kritische Funktionen müssen möglicherweise auf drei oder mehr Controller repliziert werden, damit das System mehr als einen Ausfall im gleichen Antriebs-/Betriebs-/Zündzyklus toleriert. Das Skalieren eines Dual-Duplex-Musters zur Handhabung von mehr als einem Ausfall ist möglicherweise nicht kostengünstig, da mehr als ein Controller-Fehler möglicherweise in einem gleichen Fahrzyklus toleriert werden muss. Wenn also zwei Controllerausfälle toleriert werden müssen, dann wären vier Controller erforderlich, wenn ein herkömmliches Dual-Duplex-Design verwendet wird. Erinnern Sie sich, dass ein Controller entweder zwei Prozessoren oder zwei Kerne beinhaltet, in denen Funktionen unabhängig und gleichzeitig auf einem entsprechenden Controller ausgeführt werden. Alternativ kann das Steuersystem einen Prozessor und ein unabhängiges Überwachungsmodul beinhalten als. Als Ergebnis würde jeder Controller dieselbe Funktion aufweisen, die von jedem Prozessor oder Kern innerhalb jedes Controllers ausgeführt wird. Infolgedessen, wenn ein Dual-Duplex-Design verwendet wird und zwei Controller-Ausfälle toleriert werden müssen, müssen drei Controller verwendet werden und eine gleiche Funktion wird gleichzeitig und unabhängig sechsmal ausgeführt, was zu einem kostspieligen und ineffizienten Verbrauch von Systemressourcen führt.
  • Für einen dreifachen modularen Redundanzansatz führen alle Controller die gleiche Funktion aus, aber dieses Muster skaliert nicht gut. Eine Formel zum Bestimmen der Anzahl an Einheiten, um die Anzahl der Fehler zu behandeln, ist 2N + 1, wobei N die Anzahl der Ausfälle ist. Um zwei Fehler zu behandeln, sind fünf Einheiten erforderlich.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Vorteil einer Ausführungsform ist eine Verringerung der Verarbeitungslast auf Controller, sodass Verarbeitungsressourcen für andere Operationen freigegeben werden können und eine Gesamtverarbeitungslast eines weiteren Controllers verringert werden kann. Durch die Festlegung eines Controllers als primären Controller, eines Controllers im Hot-Standby-Zustand und einen anderen Controller im Cold-Standby-Zustand sind nur zwei Controller erforderlich, um gleichzeitig eine Funktion auszuführen. Das hierin beschriebene Steuersystem und die hierin beschriebene Technik behalten einen Controller im Primärstatusmodus sowie einen Controller im Hot-Standby-Zustand dergestalt, dass, wenn ein primärer Controller ausfällt, stets ein Controller in demselben oder in einem ähnlichen Zustand wie der primäre Controller vorhanden ist und die Operationen des ausgefallenen primären Controllers sofort wieder aufnehmen kann. Als Ergebnis wird ein Backup-Controller im Cold-Standby-Status-Modus niemals direkt vom Cold-Standby-Status zum Primärstatus wechseln.
  • Eine Ausführungsform sieht ein Verfahren zur fehlertoleranten Controller-Bereitschaft vor. Die Funktionen werden von einem ersten Prozessor ausgeführt, während sie unter Nicht-Fehler-Betriebsbedingungen arbeiten. Der erste Controller arbeitet in einem Primärstatusmodus. Der primäre Controller gibt Steuersignale über ein Kommunikationsnetzwerk aus, um Steuerungsaktionen auszuführen. Der sekundäre Controller arbeitet unter normalen Betriebsbedingungen in einem Hot-Standby-Status. Der zweite Controller spiegelt den ersten Controller durch Ausführen von Funktionen, um als redundanter Controller zu arbeiten. Mindestens ein Backup-Controller, der in einem Cold-Standby-Status-Modus unter normalen Betriebsbedingungen arbeitet. Der zweite Controller wird rekonfiguriert, während er unter normalen Betriebsbedingungen vom Hot-Standby-Status-Modus zum primären Standby-Status-Modus arbeitet, wenn im ersten Controller ein Fehler auftritt. Der mindestens eine Backup-Controller, der unter normalen Betriebsbedingungen arbeitet, wird vom Cold-Standby-Status-Modus in den Hot-Standby-Status-Modus rekonfiguriert, um als redundanter Controller als Reaktion auf die Rekonfiguration des zweiten Controllers vom Hot-Standby-Statusmodus zum Primärstatusmodus zu arbeiten.
  • Ein fehlertolerantes Steuersystem beinhaltet einen ersten Controller, der in einem Primärstatusmodus arbeitet. Der erste Controller führt die Funktion aus und steuert die Funktionen von Geräten, während er unter Nicht-Fehler-Betriebsbedingungen arbeitet. Ein zweiter Controller arbeitet in einem Hot-Standby-Modus. Der zweite Controller spiegelt den ersten Controller wider, indem er als Backup-Controller arbeitet, der redundante Funktionen ausführt. Ein dritter Controller arbeitet in einem Cold-Standby-Statusmodus. Der dritte Controller arbeitet in einem Standby-Modus, der die Funktionen nicht ausführt. Der zweite Controller während des Betriebs unter normalen Betriebsbedingungen wird von einem Hot-Standby-Status-Modus zu einem primären Standby-Status-Modus rekonfiguriert, wenn ein Fehler im ersten Controller auftritt. Der dritte Controller wird, während er unter normalen Betriebsbedingungen betrieben wird, von einem Cold-Standby-Statusmodus zu einem Hot-Standby-Status-Modus rekonfiguriert, wenn der zweite Controller vom Hot-Standby-Status-Modus in den primären Standby-Status-Modus rekonfiguriert wird oder wenn ein Fehler im zweiten Controller auftritt, während der Betrieb im Hot-Standby-Modus erfolgt.
  • Ein fehlertolerantes Steuersystem beinhaltet einen ersten Controller, der in einem Primärstatusmodus arbeitet. Der erste Controller steuert die Funktionen von Geräten, während er unter Nicht-Fehler-Betriebsbedingungen arbeitet. Ein zweiter Controller arbeitet in einem Hot-Standby-Modus. Der zweite Controller spiegelt den ersten Controller wider, indem er als Backup-Controller arbeitet, der redundante Funktionen ausführt. Eine Vielzahl von Backup-Controllern arbeitet in einem Cold-Standby-Statusmodus. Jeder der Vielzahl von Backup-Controllern hat eine priorisierte Reihenfolge. Die Vielzahl von Backup-Controllern während des Betriebs in einem Cold-Standby-Modus führt die Funktionen nicht aus. Der zweite Controller während des Betriebs unter normalen Betriebsbedingungen wird von einem Hot-Standby-Status-Modus zu einem primären Standby-Status-Modus rekonfiguriert, wenn ein Fehler im ersten Controller auftritt. Der Operations-Backup-Controller mit der höchsten Priorität zwischen den mehreren Backup-Controllern wird von einem Cold-Standby-Status-Modus zu einem Hot-Standby-Status-Modus rekonfiguriert, wenn der zweite Controller vom Hot-Standby-Status-Modus zum primären Standby-Status-Modus rekonfiguriert wird oder wenn ein Fehler im zweiten Controller auftritt, während er im Hot-Standby-Statusmodus arbeitet.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein architektonisches Blockdiagramm eines exemplarischen integrierten Steuerungssystems.
  • 2 ist eine anfängliche Konfiguration von Controllern, die in einem nicht fehlerhaften Zustand arbeiten.
  • 3 veranschaulicht ein Beispiel eines fehlgeschlagenen primären Controllers und einer Rekonfiguration eines Backup-Controllers.
  • 4 veranschaulicht ein Beispiel eines fehlgeschlagenen Backup-Controllers und eine Rekonfiguration eines nächsten Backup-Controllers.
  • 5 veranschaulicht ein Beispiel für einen Ausfall eines anderen Backup-Controllers und eine Rekonfiguration eines Backup-Controllers.
  • 6 stellt umfassendes Schaltflussdiagramm für ein exemplarisches Steuergerät mit drei Controllern.
  • 7 zeigt exemplarische Rekonfigurationen des Master-Controllers und des Backup-Master-Controllers für den zentralen Ansatz.
  • 8 zeigt exemplarische Rekonfigurationen des Master-Controllers und des Backup-Master-Controllers für den zentralen Ansatz.
  • 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 beschrieben werden und unter Bezugnahme auf symbolische Darstellungen von Vorgängen, Programmverarbeitungen und Funktionen, die von verschiedenen Computerkomponenten oder Vorrichtungen durchgeführt werden können. Solche Vorgänge, Programme und Funktionen werden manchmal 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 konfiguriert sind, um 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 materiellen, prozessorlesbaren Medium gespeichert, das jedes Medium sein kann, das Informationen speichern oder übertragen kann. 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 Fehler in Controllern zu identifizieren, die Softwarefunktionen in Steuersystemen ausführen. Während der Ansatz und die Methodik im Folgenden in Bezug auf die in Fahrzeuganwendungen verwendeten Controller beschrieben werden, erkennt der Fachmann, dass eine Automobilanwendung lediglich exemplarisch ist und dass die hierin offenbarten Konzepte auch auf jedes andere geeignete Kommunikationssystem angewendet werden können, wie beispielsweise allgemeine industrielle Automatisierungsanwendungen, Fertigungs- und Montageanwendungen und Spiele.
  • 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 werden oft zwei oder mehr Controller verwenden, sodass, wenn ein Hardwarefehler bei einem primären Controller auftritt, dann mindestens ein Backup-Controller leicht in die Lage versetzt werden kann, ein Merkmal des Steuersystems zu steuern oder eine Steuerung für eine begrenzte Funktionalität des Merkmals bereitzustellen Fehler.
  • In 1 beinhaltet das Steuersystem einen ersten Controller 12, einen zweiten Controller 14 und einen dritten Controller 15. Das hierin beschriebene exemplarische System ist fahrzeugbasiert, aber wie zuvor beschrieben, kann die Architektur auf Nicht-Fahrzeugsysteme anwendbar sein. Der erste Controller 12 ist als primärer Controller bezeichnet und beinhaltet einen Dual-Core-Prozessor, der einen ersten Kern 16 und einen zweiten Kern 18 zum Ausführen von primären Steuerungen verwendet. Der zweite Controller 14 ist ein Backup-Controller mit einem Dual-Core-Prozessor, der einen ersten Kern 19 und einen zweiten Kern 20 verwendet, der redundante Funktionen als den ersten Controller 12 ausführt. Der dritte Controller 15 ist auch ein Backup-Controller, der einen Dual-Core-Prozessor umfasst, der einen ersten Kern 21 und einen zweiten Kern 22 verwendet, der redundante Funktionen als den ersten Controller 12 ausführt. Alternativ kann jeder jeweilige Controller zwei Prozessoren verwenden, im Gegensatz zu Dual-Core-Prozessoren oder einem einzigen Prozessor mit einem unabhängigen Sicherheitsmonitor/-prüfer. Es versteht sich, dass die beispielhafte Architektur beispielhaft ist und die Verwendung der hierin beschriebenen Technik nicht auf Systeme beschränkt ist, bei denen der Controller Dual-Verarbeitungsansätze verwendet, um Fail-Silence zu implementieren. Zur Veranschaulichung hierin sind der erste Controller 12, der zweite Controller 14 und der dritte Controller 15 identisch mit derselben Hardware und derselben Software. Jedoch können bestimmte Vorrichtungen in der Architektur verschiedene Vorrichtungen, wie beispielsweise unterschiedliche Stromversorgungen, verwenden, so dass, wenn ein Fehler bei einem Steuergerät als Ergebnis einer Stromversorgung auftritt, der andere Controller nicht beeinflusst wird. Der erste Controller 12 wird als Master-aktiver Controller bezeichnet und empfängt Eingangssignale und führt auf der Grundlage der Eingangssignale Funktionen aus und gibt Steuersignale an die anderen Geräte über ein Kommunikationsnetzwerk 24 aus, wenn es sich in einem Betriebs- und Nicht-fehlgeschlagenen Zustand befindet. Der primäre Controller 12 arbeitet unter Nicht-Ausfall-Betriebsbedingungen (hierin als normale Betriebsbedingungen bezeichnet) und erzeugt und überträgt Steuersignale zum Steuern von Merkmalen einer Fahrzeugvorrichtung.
  • Der zweite Controller 14 und der dritte Controller 15, die als Backup-Controller arbeiten, empfangen Daten und führen Funktionen aus, aber die Ausgabesteuersignale werden von Geräten auf dem Steuersystem nicht genutzt, wenn der erste Controller 12 unter normalen Betriebsbedingungen arbeitet.
  • Der erste Controller 12, der zweite Controller 14 und der dritte Controller 15 kommunizieren über ein Kommunikationsnetzwerk 24. 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. Die Forderung ist, dass jedes der Steuermodule und Sensoren/ Aktuatoren können miteinander verbunden. Der erste Controller 12, der zweite Controller 14 und der dritte Controller 16 nutzen das Kommunikationsnetzwerk 24 zum Empfangen und Versenden von Daten zwischen den Sensoren 26 und den Aktuatoren 28.
  • Die Sensoren 26 zum Senden von Statuszustand und Eingabesignale an die Controller. Wenn der erste Controller 12 die Eingabesignale von den Sensoren 26 empfängt, führt jeder Kern 16 und 18 des primären Controllers 12 gleichzeitig eine Softwarefunktion aus, die Eingabedaten verwendet. Der erste Controller 12 gibt ein Steuersignal auf der Grundlage der ausgeführten Funktion an die Aktuatoren 28 aus. Die Aktuatoren 28 weisen Vorrichtungen zur Betätigung eines Merkmals des Fahrzeugsystems auf. Typischerweise sind Merkmale, die entweder kritisch sind oder vom Fahrzeug benötigt werden, um wenigstens einen sicheren Betrieb des Fahrzeugs aufrechtzuerhalten. Derartige Steuervorrichtungen können, sind aber nicht beschränkt darauf, Bremssteuerungen und Lenksteuerungen beinhalten. Unter einer Fail-Operation-Bedingung ist die Funktionalität für kritische Vorrichtungen, obwohl begrenzt, aktiviert, um dem Fahrer zu ermöglichen, das Fahrzeug sicher zu betreiben, bis das Fahrzeug an einen Ort zur Inspektion gefahren werden kann oder das Fahrzeug in die Lage versetzen kann, eine sichere oder minimale Gefahr zu erreichen.
  • Der erste Controller 12 beinhaltet ein Vergleichsmodul 30, der zweite Controller 14 enthält ein Vergleichsmodul 32 und der dritte Controller 15 beinhaltet ein Vergleichsmodul 34. Jedes der jeweiligen Vergleichsmodule führt eine Vergleichsoperation zwischen den Ausgängen der jeweiligen Kerne innerhalb eines jeweiligen Controllers durch. Die Vergleichsoperation bestimmt, ob die Ergebnisse jeder ausgeführten Funktion von jedem Kern innerhalb des jeweiligen Controllers gleich oder ähnlich sind, da jeder Kern eine gleiche Funktion ausführt, die dieselben Eingabedaten verwendet. Es versteht sich, dass, obwohl eine gleiche/genaue Ausführung durch die Controller optimal wäre, die Ausführung der Controller nicht genau oder gleichzeitig sein muss. Ob die Zustände exakt übereinstimmen und gleich sind, hängt von der Synchronisation im System ab (z. B. ein globaler Begriff der synchronisierten Zeit und alle Controller haben die gleiche Kenntnis der „aktuellen“ Zeit und der Primär- und Hot-Standby-Funktion zur gleichen Zeit und mit den gleichen Eingaben). Es versteht sich jedoch, dass das System nicht vollständig mit dem exakt gleichen Zustand jederzeit zwischen dem primären und dem warmen Standby-Zustand synchronisiert werden kann und dass diese Technik für Systeme gilt, die eine unvollkommene Synchronisation beinhalten, die ähnliche, aber nicht identische/genaue Zustände aufweist. Wenn die Kerne ohne Fehler arbeiten, dann sollten die Ergebnisse gleich sein. Wenn sich die Ergebnisse unterscheiden, kann in diesem jeweiligen Controller ein Fehler vorliegen. Als Ergebnis benötigt jedes Vergleichsmodul zwei Eingaben, die die ausgeführten funktionalen Ergebnisse durch jeden Kern innerhalb des jeweiligen Controllers vergleichen, um zu ermitteln, ob ein Fehler in ihrem jeweiligen Controller aufgetreten ist. Die Ergebnisse werden über das Kommunikationsnetzwerk 24 an andere Geräte, wie beispielsweise andere Controller und Aktoren im Kommunikationsnetz 24, übertragen. Beide Controller können ein Fail-Silence-Decoder/Decider-Modul zur Überwachung von Fehlerzuständen in den anderen Controllern zur Rekonfiguration der Controller beinhalten, falls ein Fehler vorliegt.
  • Während der Zeit, in der der erste Controller 12 auf der Grundlage der Eingangsdaten Funktionen ausführt, spiegeln der zweite Controller 14 und der dritte Controller 15 den ersten Controller 12 und führen gleichzeitig die gleichen Funktionen auf der Grundlage der gleichen Daten aus. Dies wird als Redundanz bezeichnet. Der zweite Controller 14 und der dritte Controller 15 spiegeln den ersten Controller 12, indem er Funktionen in demselben Zustand wie der erste Controller 12 ausführt. Dies wird in dem Fall durchgeführt, dass, wenn ein Fehler im ersten Controller 12 auftritt, der zweite Controller 14 und der dritte Controller 15 bereit sein müssen, um die Operationen des ersten Controllers 12 sofort zu übernehmen. Um den Betrieb des ersten Controllers 12 sofort zu übernehmen, muss entweder der zweite Controller 14 oder der dritte Controller 15 in demselben Zustand sein wie der primäre Controller 12. Das heißt, einer der beiden Backup-Controller implementiert sein und gleichzeitig eine identische Funktionalität ausführen wie der erste Controller 12, um einen Controller-Ausfall im ersten Controller 12 zu tolerieren. Daher ist es von Bedeutung, dass einer der Controller kritische Software redundant ausführt, um zu identifizieren, wann ein Fehler in dem ersten Controller 12 auftritt, und um sofort die Controller-Operationen zu übernehmen, falls der primäre Controller ausfällt (d. h. fehlschlägt). Dies erfordert, dass der Backup-Controller in einem gleichen Zustand arbeitet, sodass keine Latenzzeit bei der Rekonfiguration des Backup-Controllers als primärer Controller vorhanden ist. Latenzen würden auftreten, wenn ein jeweiliger Backup-Controller nicht in demselben Zustand wie der primäre Controller arbeitet, wenn ein Fehler auftritt. Derartige Vorkommen würde erfordern, dass der Backup-Controller bestimmt, in welchem Zustand der primäre Controller in Betrieb ist, und dann beginnen, Funktionen auszuführen, um aufzuholen, wo der primäre Controller war, wenn der Fehler erkannt wurde. Eine derartige Verzögerung bei einer kritischen Operation (z. B. autonomer Fahrbetrieb) ist unerwünscht und kann zu einem unsicheren Betrieb führen, wenn der primäre Controller die Funktionalität nicht beibehalten kann, bis der Backup-Controller auf die Geschwindigkeit kommen kann und die Operationen übernehmen kann.
  • Die folgenden 25 werden ähnliche Elementnummern verwenden, wie in 1 für Konsistenzzwecke. Wie in 2 gezeigt, während das Steuersystem unter normalen Betriebsbedingungen arbeitet, arbeitet der erste Controller 12 im Primärstatusmodus (P), der zweite Controller 14 arbeitet unter dem Hot-Standby-Statusmodus (HS) und der dritte Controller 15 arbeitet unter Cold-Standby-Status-Modus (CS). Der dritte Controller 15, während er im Cold-Standby-Statusmodus (CS) arbeitet, ist nicht redundant im Sinne der nicht aktiven Spiegelung des ersten Controllers 12. Vielmehr kann der dritte Controller 15 bis zum Stillstand ruhen oder für eine andere Verwendung durch ein anderes System zugeteilt werden, wenn dies gewünscht wird, während die anderen Controllern unter normalen Betriebsbedingungen arbeiten. Als Ergebnis werden die Systemressourcen für eine effizientere Nutzung des dritten Controllers 15 gespeichert oder neu zugeordnet. Daher empfängt der erste Controller 12 Eingangssignale von den Sensoren 26 und führt aktiv Funktionen aus und liefert Steuersignale an die Aktuatoren 28 und andere Vorrichtungen in dem Steuersystem über das Kommunikationsnetzwerk 24, während der zweite Controller 14 in einem redundanten Modus arbeitet, der den ersten Controller 12 spiegelt. Wenn der erste Controller 12 oder der zweite Controller 14 einen Fehler aufweist, wird der dritte Controller 15 in einen anderen Statusmodus rekonfiguriert, wie nachfolgend erläutert wird.
  • 3 veranschaulicht einen exemplarischen Zustand eines Fehlers, der in dem ersten Controller 12 auftritt, der ursprünglich als der primäre Controller vorgesehen ist. Wenn die Fehlerbedingung als kritisch bestimmt wird, wechselt der erste Controller 12 vorzugsweise in einen fehlersicheren Zustand, in dem keine Kommunikation vom ersten Controller 12 übertragen wird. Wenn der zweite Controller 14 feststellt, dass der erste Controller 12 fehlerhaft ist und sich im Fail-Silent-Modus befindet, wird der zweite Controller 14 als primärer Controller rekonfiguriert. Da sich der zweite Controller 14 im Hot-Standby-Status-Modus (HS) befindet, arbeitet der zweite Controller 14 im selben/ähnlichen Zustand, in dem der erste Controller 12 bei einem Fehler aufgetreten ist. Als Ergebnis kann der zweite Controller 14 rekonfiguriert werden, um sofort die Ausführung der Funktionen des primären Controllers zu übernehmen. Die Stellglieder 28 und andere Vorrichtungen auf dem Kommunikationsnetzwerk 24 identifizieren den zweiten Controller 14 als den primären Controller zum Empfangen von Steuersignalen daraus. Der erste Controller 12 tritt in einen fehlersicheren Modus ein und kommuniziert nicht mehr mit den Aktuatoren 28 und anderen Vorrichtungen.
  • Unter erneuter Bezugnahme auf 3, wird darauf, dass der erste Controller 12 fehlerhaft ist und in einen Fail-Silent-Modus eintritt und der zweite Controller 14 als primärer Controller rekonfiguriert wird, der dritte Controller 15 vom Cold-Standby-Statusmodus (CS) in den Hot-Standby-Statusmodus (HS) rekonfiguriert. Der dritte Controller 15 bestimmt dann den Zustand, in dem der zweite Controller 14, der nun als primärer Controller fungiert, in Betrieb ist und beginnt, den zweiten Controller 14 zum Ausführen von Funktionen zu spiegeln. Der dritte Controller 15 wird zu einem dedizierten Controller, indem er Funktionen redundant und gleichzeitig mit dem zweiten Controller 14 ausführt. Als Ergebnis wird der dritte Controller 15 zu einem aktiven Backup-Controller 15 des zweiten Controllers 14. Danach, sollte der zweite Controller 14, wie in 4 gezeigt, ausfallen, fällt der zweite Controller 14 stillschweigend aus, und der dritte Controller wird, wenn er den Fehler im zweiten Controller 14 erkennt, als primärer Controller (P) rekonfiguriert. Als Ergebnis werden der erste Controller 12 und der zweite Controller 14 im Wesentlichen aus dem Steuersystem genommen und der dritte Controller 15 übernimmt sofort Operationen und die Steuerung, die zuvor vom zweiten Controller 14 ausgeübt wurden.
  • 5 ist ein Beispiel eines Fehlers, der in dem zweiten Controller 14 auftritt, der gegenwärtig in einem Hot-Standby-Statusmodus (HS) arbeitet. In 5 arbeiten der erste Controller 12 und der dritte Controller 15 unter normalen Betriebsbedingungen, und ein Fehler wird im zweiten Controller 14 erkannt. Der zweite Controller 14 wechselt in einen Fail-Silent-Modus. Wenn der erste Controller 12 ausfällt, während der dritte Controller 15 momentan im Cold-Standby-Statusmodus (CS) ist, würde es zu einer Verzögerung bei der Rekonfiguration des dritten Controllers 15 aus dem Cold-Standby-Statusmodus (CS) zu einem Primärstatusmodus (P) kommen. Da der dritte Controller 15 nicht den ersten Controller 12 spiegelt, muss der dritte Controller 15 den Zustand bestimmen, in dem der erste Controller 12 arbeitet, wenn der Fehler aufgetreten ist. Daher wäre eine Zeitspanne erforderlich, um den dritten Controller 15 neu zu konfigurieren, um Parameter einzustellen und denselben Zustand wie der erste Controller 12 einzugeben, wenn ein Fehler in dem ersten Controller 12 auftritt. Um sicherzustellen, dass es keine Latenz bei der Rekonfiguration des dritten Controllers 15 gibt, sollte diese Bedingung auftreten, sobald der Fehler in dem zweiten Controller 14 erkannt wird, wird der dritte Controller 15 zu einem Hot-Standby-Statusmodus (HS) rekonfiguriert. Es kann eine gewisse Zeit erforderlich sein, den dritten Controller 15 in diesen jeweiligen Statusmodus zu rekonfigurieren, diese Rekonfiguration wird jedoch durchgeführt, während der erste Controller 12 als primärer Controller unter normalen Betriebsbedingungen arbeitet. Nachdem der dritte Controller 15 erfolgreich in den Hot-Standby-Statusmodus (HS) rekonfiguriert worden ist, spiegelt der dritte Controller 15 den ersten Controller 12 redundant und gleichzeitig die gleichen Funktionen wie der erste Controller 12 aus.
  • 6 veranschaulicht ein umfassendes Schaltungsdiagramm, das eine Kombination und Sequenzen zur Rekonfiguration jedes Status des Steuergeräts bereitstellt, wenn drei Controller verwendet werden.
  • In Block 40 arbeiten alle entsprechenden Controller unter normalen Betriebsbedingungen, in denen sich der erste Controller 12 im Primärstatusmodus (P) befindet, der zweite Controller 14 befindet sich im Hot-Standby-Statusmodus (HS) und der dritte Controller 15 ist im Cold-Standby Statusmodus (CS).
  • In Block 41 schlägt der erste Controller 12 fehl und der erste Controller 12 wechselt in einen Fail-Silent-Modus. Der zweite Controller 14 erkennt den Ausfall des ersten Controllers 12 und wird in Reaktion auf die Erkennung des Fehlers in den Primärstatusmodus (P) rekonfiguriert. Die Rekonfiguration ist sofort oder hat eine minimale Latenzzeit, da der zweite Controller 14 den ersten Controller 12 spiegelt. Zusätzlich wird der dritte Controller 15 vom Cold-Standby-Statusmodus (CS) in den Hot-Standby-Statusmodus (HS) rekonfiguriert, wobei der dritte Controller 15 den zweiten Controller 14 spiegelt.
  • In Block 42 wird nach der in Block 41 gezeigten Rekonfiguration ein Fehler in dem zweiten Controller 14 detektiert, und der zweite Controller 14 tritt in einen Fail-Silent-Modus ein. Der dritte Controller 15 erkennt den Ausfall des zweiten Controllers 14 und wird von dem Hot-Standby-Statusmodus (HS) zum Primärstatusmodus (P) als Reaktion auf die Erkennung des Fehlers rekonfiguriert. Die Rekonfiguration ist sofort oder hat eine minimale Latenz, da der dritte Controller 15 den zweiten Controller 14 spiegelt. Es sind keine Backup-Controller verfügbar, nachdem zwei der drei Controller ausfallen.
  • In Block 43 wird nach der in Block 41 gezeigten Rekonfiguration ein Fehler in dem dritten Controller 15 erkannt, und der dritte Controller 15 tritt in einen Fail-Silent-Modus ein. Sowohl der erste Controller 15 als auch der dritte Controller 15 gelangen in einen Fail-Silent-Modus. Der bereits im Primärstatusmodus (P) betriebene zweite Controller 14 fungiert weiterhin als primärer Controller. Es sind keine Backup-Controller verfügbar, nachdem zwei der drei Controller ausfallen.
  • Unter erneuter Bezugnahme auf Block 40 wird ein Fehler in dem zweiten Controller 14 erkannt, und das Flussdiagramm fährt mit Block 44 fort. Block 44 stellt die Rekonfiguration als Reaktion auf die zweite Steuerung 15 dar, die fehlerhaft ist, nachdem jeder der Controller unter normalen Betriebsbedingungen betrieben wurde. Der zweite Controller 14 fällt aus und tritt in einen Fail-Silent-Modus ein. Der erste Controller 12 arbeitet weiterhin als primärer Controller, da normale Betriebsbedingungen darin vorhanden sind. Der dritte Controller 15 erkennt den Ausfall des zweiten Controllers 14 und wird vom Cold-Standby-Statusmodus (CS) in den Hot-Standby-Statusmodus (HS) rekonfiguriert. Nach der Rekonfiguration spiegelt der dritte Controller 15 den ersten Controller 12.
  • In Block 45 wird nach der in Block 44 gezeigten Rekonfiguration ein Fehler im ersten Controller 12 erkannt, und der erste Controller 12 wechselt in einen Fail-Silent-Modus. Der dritte Controller 15 erkennt den Ausfall des ersten Controllers 12 und wird von dem Hot-Standby-Statusmodus (HS) zum Primärstatusmodus (P) als Antwort auf die Erkennung des Fehlers rekonfiguriert. Die Rekonfiguration erfolgt sofort, da der dritte Controller 15 den ersten Controller 14 spiegelt. Es sind keine Backup-Controller verfügbar, nachdem zwei der drei Controller ausfallen.
  • In Block 46 wird nach der in Block 44 gezeigten Rekonfiguration ein Fehler in dem dritten Controller 15 detektiert, und der dritte Controller 15 tritt in einen Fail-Silent-Modus ein. Sowohl der zweite Controller 14 als auch der dritte Controller 15 befinden sich nun im Fail-Silent-Modus. Der erste Controller 12, der bereits im Primärstatusmodus (P) arbeitet, fungiert weiterhin als primärer Controller. Es sind keine Backup-Controller verfügbar, nachdem zwei der drei Controller ausfallen.
  • Unter erneuter Bezugnahme auf Block 40 wird ein Fehler in dem dritten Controller 15 erkannt, und das Flussdiagramm fährt mit Block 47 fort. Der Block 47 veranschaulicht die Rekonfiguration in Reaktion auf den dritten Controller 15, der ausfällt, nachdem jeder der Controller unter normalen Betriebsbedingungen betrieben wurde. Der dritte Controller 14 fällt aus und tritt in einen Fail-Silent-Modus ein. Der erste Controller 12 arbeitet weiterhin als primärer Controller, da normale Betriebsbedingungen darin vorhanden sind. Der zweite Controller 14 arbeitet weiterhin im Hot-Standby-Statusmodus (HS), da normale Betriebsbedingungen darin vorhanden sind.
  • In Block 48 wird nach der im Block 47 gezeigten Rekonfiguration ein Fehler im ersten Controller 12 erkannt und der erste Controller 12 wechselt in einen fehlersicheren Modus. Der zweite Controller 14 erkennt den Ausfall des ersten Controllers 12 und wird vom Hot-Standby-Statusmodus (HS) zum Primärstatusmodus (P) als Reaktion auf die Erkennung des Fehlers rekonfiguriert. Die Rekonfiguration ist augenblicklich, da der zweite Controller 14 den ersten Controller 12 spiegelt. Es sind keine Backup-Controller verfügbar, nachdem zwei der drei Controller ausfallen.
  • In Block 49 wird nach der im Block 47 gezeigten Rekonfiguration ein Fehler in dem zweiten Controller 14 detektiert, und der zweite Controller 14 tritt in einen Fail-Silent-Modus ein. Sowohl der zweite Controller 14 als auch der dritte Controller 15 befinden sich in einem Fail-Silent-Modus. Der erste Controller 12, der bereits im Primärstatusmodus (P) arbeitet, fungiert weiterhin als primärer Controller. Es sind keine Backups verfügbar, nachdem zwei der drei Controller ausfallen.
  • Es sollte verstanden werden, dass jede Menge von Backup-Controllern verwendet werden kann und dass der gewünschte Ansatz darin besteht, einen einzelnen primären Controller aufzuweisen, einen einzigen Backup-Controller, der im Hot-Standby-Statusmodus (HS) arbeitet, und einem oder mehreren Backup-Controllern, die im Cold-Standby-Statusmodus (CS) arbeiten, wobei die Backup-Controller, die im Cold-Standby-Statusmodus (CS) arbeiten, ruhen oder für andere Verarbeitungsressourcen verwendet werden können, bis ein Fehler auftritt und eine Rekonfiguration durch einen oder mehrere Controller erfolgt. Die Rekonfiguration erfolgt nach einem Controllerausfall, sodass einer der verbleibenden operativen Controller im Primärstatusmodus und ein anderer der verbleibenden operativen Controller in einem Hot-Standby-Modus arbeitet. Das heißt, eine Rekonfiguration in den Primärstatus ist nur mit einem Hot-Standby möglich, eine Rekonfiguration in den Hot-Standby-Modus ist nur mit einem Cold-Standby möglich.
  • Zwei alternative Ansätze zur Implementierung einer Rekonfiguration sind hier beschrieben. Der erste Ansatz ist ein dezentraler Ansatz und der zweite Ansatz ist ein zentraler Ansatz. Im dezentralisierten Ansatz implementiert jeder Controller die Logik, um den Ausfall eines anderen Controllers im System zu erkennen und gegebenenfalls den Primär- oder Hot-Standby-Status zu rekonfigurieren. Im zentralisierten Ansatz erkennt ein Master-Controller Ausfälle aller anderen Controller im System und bestimmt, welcher Controller den Primärstatus neu konfigurieren soll und welcher Controller den Hot-Standby-Status neu konfigurieren soll. Wenn diese Bestimmung durchgeführt wird, benachrichtigt der Master-Controller den jeweiligen Controller, um seinen Betriebszustand in den primären und den Hot-Standby umzuwandeln und zu ändern. Weiterhin überwacht in diesem zentralisierten Ansatz ein Backup-Master-Controller die Gesundheit des Master-Controllers und, falls der Master-Controller ausfällt, wird der Backup-Master Master-Controller und ordnet einen anderen Controller im System zu dem Backup-Master-Controller zu. Der Master-Controller kommuniziert seinen Status an den Backup-Master-Controller für Konsistenz.
  • Im Folgenden wird die Logik für den dezentralen Ansatz beschrieben, der für die Auswahl eines jeweiligen Primär- und/oder Backup-Controllers zur Rekonfiguration implementiert ist. Das heißt, wenn drei oder mehr Controller verwendet werden, muss jeder Controller seine Reihenfolge bestimmen, wann eine jeweilige Reihenfolge von einem Cold-Standby-Statusmodus (CS) zu einem Hot-Standby-Statusmodus (HS) und von einem Hot-Standby-Status wechselt der Modus (HS) in einen Primärstatusmodus (P).
  • Die Notationen für die folgende Beschreibung sind wie folgt. Angesichts einer Softwarekomponente der Funktion A, A wird ein Satz von Controllern zugeordnet Controller_A (die Anzahl der Controller ist bezeichnet mit N_Controllers_A und hängt von der Fehlertoleranz der Funktion A ab (z. B. N_Controller_A – 1 Ausfälle werden behandelt). Auch eine Eins-zu-Eins-Zuordnung zwischen Controller_A und {1, ..., N_Controller_A} ist gegeben und wird bezeichnet als Order_A. Order_A (Controllerx) = 1 bedeutet beispielsweise A ausgeführt auf Controllerx während des normalen, störungsfreien Betriebs. In einem anderen Beispiel bedeutet Order_A (Controllerx) = 3, dass A die zweite Sicherung ist und erst nach zwei Controller-Ausfällen primär sein wird. Der Modus von A auf einem gegebenen Controller Controllerx (d. h. der zu dem Satz von Controllern gehört Controllers_A) ist bezeichnet mit Modus (A, Controllerx) und ist ein Wert in der Menge (Primär, Hot, Cold}. Darüber hinaus weist jeder Controller Controllerx, der zu Controller_A gehört, die Fähigkeit auf, einen Ausfall aller anderen Controller in Controller_A zu erkennen. Während dieses Beispiels wird der Controller als Failing-Fail-Silent beschrieben und die hierin beschriebene Technik gilt für Systeme, bei denen Controller nicht stillschweigend ausfallen, sondern in denen Controller Ausfälle durch andere Mechanismen erkennen können, um so Controllerausfälle zu erkennen. Es sollte auch verstanden werden, dass diese Technik auf mehr als eine Funktion erweitert werden kann. Wenn beispielsweise eine andere Funktion hinzugefügt wird (z. B. Funktion B), werden die Werte den Variablen Controllers_B, N_Controllers_B, und Order_B zugeordnet. Infolgedessen kann eine beliebige Anzahl an Funktionen unterstützt werden, indem nur die Bereitstellung von Werten Controllers_X, N_Controllers_Xi, und Order_X für jede hinzugefügte Funktion X bereitgestellt wird. Die von den Controllern gepflegten Zustandsvariablen für die Funktion A, entsprechend den nachfolgenden Beschreibungen für den dezentralisierten und zentralisierten Ansatz, müssen für jede neue Funktion repliziert werden X. Bemerkenswerte Beispiele für derartige Zustandsvariablen für jede Funktion X sind Modus (X, Controllerx), Num_Controller_Failures_X, Num_HigherPrio_Controller_Failures_X, Operational_Controllers_X, und OperationalOrder_X.
  • Anfänglich werden, wenn jeder der Controller (z. B. ECUs) unter normalen Betriebsbedingungen betrieben wird, die folgenden Anfangsparameter in jedem Controller eingestellt Controllerx:
    • Modus (A, Controllerx) = Primär wenn Order_A (Controllerx) = 1
    • Modus (A, Controllerx) = Hot, wenn Order_A (Controllerx) = 2
    • Modus (A, Controllerx) = Cold, wenn Order_A (Controllerx) > 2
    • Zähler Num_Controller_failures_A initialisiert zu 0
    • Zähler Num_HigherPrio_Controller_Failures_A initialisiert ist 0.
  • Jedem der Controller ist eine vorgegebene Prioritätsnummer zugeordnet (gegeben durch die Reihenfolge, Order_A) die verwendet wird, um zu bestimmen, ob ein jeweiliger Controller seinen Statusmodus ändern soll. So wird beispielsweise dem primären Controller ein Controller mit einer Prioritätsnummer gleich 1 zugeordnet. Ein Controller mit einer Prioritätsnummer gleich 2 ist der Backup-Controller im Hot-Standby-Status-Modus. Alle anderen Nummern mit einer Prioritätszahl größer als 2 sind Backup-Controller, die im Cold-Standby-Statusmodus arbeiten. Zusätzlich wird der Zähler für Gesamt-Controllerausfälle auf 0 gesetzt. Jeder Controller unterhält einen Prioritätsfehlerzähler, der die Controller mit Ausfällen verfolgt, deren Priorität größer ist als die des aktuellen Controllers, der den Vorgang derzeit verfolgt. Dieser Prioritätszähler wird auch auf null gesetzt. Vergegenwärtigen Sie sich, dass jeder Controller seine eigenen Zählungen der Gesamtzahl der Controller-Ausfälle und Controller-Ausfälle mit einer höheren Priorität als er selbst unterhält. Infolgedessen sollte die Zählung für die Anzahl der Gesamtausfälle für alle zu überwachenden Steuerungen gleich sein; jedoch variiert die Zählung für den ausgefallenen Controller mit einer Prioritätszahl größer als der Überwachungs-Controller Überwachungssteuerung.
  • Die folgende Logiksequenz beschreibt einen dezentralisierten Ansatz, bei dem jede der Logikfunktionen zur Bestimmung, wann ein Controller sich selbst rekonfigurieren soll, lokal von jedem Controller ausgeführt wird, bezeichnet als Controllerx, da jeder Controller die alle Controller-Ausfälle im Steuerungssystem kennt. In der Erkennung eines Fehlers in einem jeweiligen Controller für einen Satz von Controllern (dargestellt durch den Satz Controllers_A – {Controllerx}) mit zugeordneten Prioritäten wird die folgende Logik verwendet (der fehlgeschlagene Controller wird bezeichnet als Controller_failed):
    • (a) Steigerung Num_Controller_failures_A;
    • (b) Wenn zum ausgefallenen Controller Controller_failed, Order_A(Controller_failed) < Order_A (Controllerx), dann Steigerung Num_HigherPrio_Controller_Failures;
    • (c) Ist Order_A (Controllerx) – Num_HigherPrio_Controller_failures_A = 1, wird dann gesetzt auf Modus (A, Controllerx) bis primär;
    • (c) Ist Order_A (ECUx) – Num_HigherPrio_Controller_failures_A = 2, wird dann gesetzt auf Modus (A, Controllerx) bis Hot;
    • (e) Report Num_Controller_failures zur Anwendungsschicht.
  • In Schritt (a) wird bei Erkennung eines Fehlers die Gesamtzählung erhöht. Darüber hinaus wird auch der Controller ausgegeben.
  • In Schritt (b), wenn der Controller, der fehlgeschlagen ist, eine Prioritätsnummer aufweist, die kleiner ist als die Prioritätsnummer des Überwachungscontrollers, der die Zählung bestimmt (vergegenwärtigen Sie sich, dass alle Controller jeden dieser Schritte ausführen und ihre eigenen Zählungen beibehalten), erhöht diese Überwachungssteuerung eine höhere Priorität Ausfallzählung Das heißt, eine Prioritätszahl, die kleiner als eine andere Prioritätszahl ist, zeigt an, dass die erstere eine höhere Priorität hat (d. h. sie hat Vorrang in Bezug auf den Primär- oder Hot-Standby). Die höhere Prioritätsfehlerzählung unterstützt den aktuellen Controller bei der Identifizierung der Anzahl an Controllern, die noch unter normalen Betriebsbedingungen arbeiten, die eine höhere Priorität aufweisen (d. h. eine frühere Prioritätsreihenfolge) als die Überwachungssteuerung. Damit kann der Überwachungscontroller feststellen, ob er in den Hot Standby-Statusmodus (HS) oder den Primärstatusmodus (P) rekonfiguriert werden soll.
  • In Schritt (c) ist die Differenz zwischen der Prioritätsnummer des Überwachungscontrollers und der höheren Prioritätsfehlerzählung, wie sie vom aktuellen Controller aufrechterhalten wird, gleich 1, so wird der aktuelle Controller in den Primärstatusmodus (P) rekonfiguriert.
  • Ist die Zählung nicht gleich 1, so wird in Schritt (d) geprüft, ob die Differenz gleich 2 ist. Ist die Zählung gleich 2, so wird der Überwachungscontroller in den Hot-Standby-Statusmodus (HS) rekonfiguriert. Ist die Differenz größer als 2, bleibt der Überwachungscontroller im Cold-Standby-Statusmodus (CS).
  • In Schritt (e) wird der Anwendungsschicht eine Benachrichtigung über den Controller-Ausfall gemeldet. Darüber hinaus kann die Benachrichtigung in Form eines Berichts erfolgen, der erzeugt wird, oder ein Benutzer (z. B. Fahrer) kann durch eine Warnung (visuell, hörbar, haptisch) auf den Fehler hingewiesen werden, eine Telematiknachricht kann an einen Dritten weitergegeben werden, der Störungen auf dem Steuersystem überwacht, Registerwerte schreibt, um Informationen über den Fehler zu liefern, der für eine Softwareanwendung verfügbar ist, oder eine Nachricht, die über das Kommunikationsnetzwerk an andere Controller gesendet wird. Die korrekte Systemreaktion auf die Controller-Fehlermeldung ist anwendungsabhängig.
  • Im Folgenden wird ein zentraler Ansatz zur Ausführung der Logik zur Bestimmung einer sequentiellen Reihenfolge von Rekonfigurationscontrollern dargestellt. Für den zentralisierten Ansatz werden folgende zusätzliche Notationen und Annahmen angewandt:
    • (1) Eins-zu-Eins-Zuordnung Order_Master_Controllers von einem Satz von Controllern Master_Controllers (von Kardinalität N_Master_Controllers) zu {1, ..., N_Master_Controllers) (die inverse Zuordnung ist bezeichnet als Order_Master_ECUs’);
    • (2) Jeder Master-Controller Controller_m ist in der Lage, den Ausfall eines Controllers in der Vereinigung zu erkennen Controllers_A und Master_Controllers (mit Ausnahme von Controller_m selbst);
    • (3) Der aktuelle Master-Controller ist bezeichnet als Current_Master_Controller;
    • (4) Der aktuelle Backup--Master Controller ist bezeichnet als Current_Backup_Master_Controller.
  • Der Ansatz ist wie folgt: Die Variablen Current_Master_Controller und Current_Backup_Master_Controller, identifizieren den Master-Controller und den aktuellen Backup-Master-Controller zu jedem Zeitpunkt des Systembetriebs. Anfänglich, wenn keine Fehler/Ausfälle vorhanden sind, Current_Master_ist der Controller der gegebene Controller Order_Master_Controllers’(1) (d. h. die erste in der Reihenfolge). Der Current_Master_Controller macht die folgenden Initialisierungen (wenn keine Fehler/Ausfälle vorhanden sind) für jeden Controller Controllerx in dem Satz Controllers_A:
    • Modus (A, Controllerx) = primär wenn Order_A (Controllerx) = 1
    • Modus (A, Controllerx) = Hot, wenn Order_A (Controllerx) = 2
    • Modus (A, Controllerx) = Cold, wenn Order_A (Controllerx) > 2.
  • Zusätzlich werden für den Master-Controller die folgenden Anfangsparameter gesetzt, wenn im System keine Störungen/Fehler vorliegen:
    • Zähler Num_Contrller_Failures_A initialisiert zu 0;
    • Satz FailedControllers_A ist der leere Satz;
    • Initialisieren Num_Master_Controller_Failures = 0;
    • Initialisieren Current_Backup_Master_Controller = Order_Master_Controllers’(2).
  • Die Rekonfigurations-Subroutine (RS) wird wie folgt durch Current_Master_Controller bei der Fehlererkennung eines Controllers (bezeichnet mit Controller_failed) in dem Satz Controllers_A – {Current_Master_Controller}:
    Figure DE102017106087A1_0002
    Figure DE102017106087A1_0003
  • Die Rekonfigurations-Subroutine RS arbeitet wie folgt. Ein Zähler wird inkrementiert, um die Anzahl der Controller zu verfolgen, die während des Systembetriebs ausgefallen sind. Dieser Zähler berücksichtigt nur die Controller, die die Funktion A hosten. Danach wird die Reihenfolge des ausgefallenen Controllers auf der Grundlage der vorgegebenen statischen Rangfolge aufgezeichnet. Dann wird eine neue Prioritätsreihenfolge unter Berücksichtigung der verbleibenden Operationscontroller (d. h. der Reihenfolge, die verbleibt, nachdem der Controller ausgefallen ist) aufgebaut. Wenn der ausgefallene Controller im Primärstatusmodus betrieben wurde, wird dieser neu konstruierte Auftrag vom aktuellen Mastercontroller verwendet, um zu bestimmen, welcher Controller im Primärstatusmodus sein soll und welcher Controller im Hot Standby Modus sein soll. Wenn andererseits der ausgefallene Controller im Hot-Standby-Modus betrieben wurde, muss der Master-Controller nur den neu konstruierten Auftrag überprüfen, um den Controller zu ermitteln, der in den Hot-Standby-Modus gelangen soll. Nach diesen Bestimmungen wird der aktuelle Master-Controller die Anzahl der Controller-Ausfälle an die Applikationsschicht melden und dann die Zustandsvariablen an den aktuellen Backup-Master-Controller übermitteln. Diese letzte Kommunikation ist erforderlich, damit der aktuelle Backup-Master-Controller die Rolle als Master-Controller korrekt übernehmen kann, falls der aktuelle Master-Controller ausfällt. Diese Fehlermodi und Handhabung sind in den folgenden Abschnitten beschrieben.
  • Die normalen Betriebsbedingungen dar, die als der Master-Controller definiert sind, der fehlerfrei arbeitet und Störungen anderer Controller, die die Funktion A informiert andere Controller, wenn sie ihren Ausführungsmodus im Falle eines Controllerausfalls umschalten.
  • Zur Erkennung von Master-Controller- und Backup-Master-Controller-Ausfällen sorgen zusätzliche Routinen dafür, dass der aktuelle Backup-Master die Kontrolle übernimmt, falls ein aktueller Master-Controller ausfällt und auch, dass es immer mindestens einen Backup-Master-Controller bereit zu übernehmen, wenn ein jeweiliger Master-Controller ausfällt.
  • Die folgende Logik wird von Current_Master_Controller ausgeführt, um Backup-Master-Controller zu überwachen und Verantwortlichkeiten zwischen den Backup-Master-Controllern neu zuzuordnen. In Erkennung des Ausfalls eines Controllers im eingestellten Master_Controllers – (Current_Master_Controller}, wird folgende Logik angewendet:
    • (a1) Inkrementzähler Num_Master_Controller_Failures;
    • (a2) wenn der ausgefallene Controller Current_Backup_Master_Controller ist, dann Zuordnen von Current_Backup_Master_Controllerum als ersten operativen (d. h. nicht ausgefallenen) Controller im angeforderten Satz {Order_Master_Controllers’(Num_Master_Controller_Failures+2), Order_Master_Controllers’(Num_Master_Controller_Failures+3), ..., Order_Master_Controllers’(N_Master_Controllers)};
    • (a3) Kommunizieren zu Current_Backup_Master_Controller, den folgenden Zustand: Modus, Controllers_A, Order_A, Num_Controller_Failures, Num_Master_Controller_Failures.
  • In Schritt (a1) wird in Reaktion auf die Erfassung durch den aktuellen Master-Controller eines Fehlers eines Backup-Controllers die Gesamtzahl der Ausfälle von Master-Controllern innerhalb eines Zählers erhöht, der durch den aktuellen Master-Controller aufrechterhalten wird.
  • In Schritt (a2) wird eine Bestimmung durch den aktuellen Master-Controller vorgenommen, ob der Fehler im aktuellen Backup-Master-Controller passiert ist (Current_Backup_Master_Controller). Wenn ja, dann übergibt der aktuelle Master-Controller die Verantwortung des Backup-Master-Controllers einem nächsten Controller mit der nächsthöheren Priorität bei Backup-Master-Controllern. Dieser Controller ist jetzt der Current_Backup_Master_Controller.
  • In Schritt (a3) informiert der aktuelle Master-Controller den neuen aktuellen Backup-Master-Controller über den Wert der Zählung der Gesamtausfälle (Num_Master_Controller_Failures), da der neue aktuelle Backup-Master-Controller auch eine Zählung beibehalten muss, falls der Master-Controller ausfällt. Alle anderen Zustandsvariablen werden auch mitgeteilt.
  • Zusätzlich zu den aktuellen Master-Controller-Monitoring-Ausfällen aller Backup-Master-Controller muss der aktuelle Backup-Master-Controller den aktuellen Master-Controller für Ausfälle überwachen. Im Folgenden finden Sie eine Routine zur Erkennung eines Ausfalls des aktuellen (Current_Master_Controllers), der durch die Auswahl neuer Master- und Backup-Master-Controller ausgegeben wird. Die folgende Routine wird vom aktuellen Backup-Master-Controller bei Erkennung des Ausfalls von Current_Master_Controller angewendet:
    • (b1) Bezeichnet den ausgefallenen Controller durch Controller_failed = Current_Master_Controller, um der neue aktuelle Master-Controller zu werden
    • (b2) Inkrementzähler Num_Master_Controller_Failures;
    • (b3) Zuordnen Current_Backup_Master_Controller zum ersten operativen Controller im angeforderten Satz; Order_Master_Controllers’(Num_Master_Controller_Failures+2); Order_Master_Controllers’(Num_Master_Controller_Failures+3); Order_Master_Controllers’(N_Master_Controllers);
    • (b4) Rekonfigurations-Subroutine (RS) ausführen.
  • In Schritt (b1) wird eine Erkennung eines aktuellen Master-Controller-Fehlers erkannt und der aktuelle Backup-Master-Controller wird zum neuen Master-Controller. In Schritt (b2) wird in Reaktion auf eine Erfassung des ausgefallenen Master-Controllers der Zähler des Num_Master_Controller_Failures inkrementiert. Dies belegt die Anzahl der Master- und Backup-Master-Controller, die fehlgeschlagen sind. In Schritt (b3) wird der nächste operative (nicht fehlgeschlagene) Backup-Master-Controller in der vorgegebenen Vorrangreihenfolge zugeordnet, um die Rolle des aktuellen Backup-Master-Controllers zu übernehmen. In Schritt (b4) wird die Rekonfigurations-Subroutine ausgeführt, um sicherzustellen, dass eine entsprechende Rekonfiguration durchgeführt wird, falls der ausgefallene Controller die Funktion A im Primär, Hot- oder Cold-Standby-Modus gehostet hat, sowie um sicherzustellen, dass der neue Backup-Master-Controller den aktuellen Zustand des Master-Controllers empfängt.
  • 7 zeigt exemplarische Rekonfigurationen des Master-Controllers und des Backup-Master-Controllers für den zentralen Ansatz. Wie in 7 gezeigt, in dem ersten Zeitintervall wird ein erster Controller der Hauptsteuerung bezeichnet durch M. zugewiesen. Der zweite Controller wird als der von BM bezeichnete Backup-Master-Controller bezeichnet.
  • Im zweiten Zeitintervall tritt ein Fehler in Bezug auf den aktuellen Backup-Master-Controller BM auf. Als Reaktion auf den Ausfall weist der Master-Controller M die Rolle des Backup-Master-Controllers dem nächsten Operationscontroller des geordneten Satzes zu. Der dritte Controller wird nun als neuer aktueller Backup Master Controller BM bezeichnet.
  • Im dritten Zeitintervall tritt ein Ausfall in Bezug auf den ersten Controller auf, der als Master-Controller M fungiert. In Reaktion auf den Master-Controller-Ausfall wird der dritte Controller, der als der aktuelle Backup-Master-Controller BM fungiert, rekonfiguriert, um als neuer Master-Controller P zu funktionieren. Zusätzlich wird dem nächsten Operationscontroller des geordneten Satzes der Backup-Controller der aktuelle Backup-Master-Controller BM zugeordnet. Dies kann für so viele Backup-Master-Controller, die im System verfügbar sind, fortsetzen.
  • 8 veranschaulicht eine weitere exemplarische Rekonfiguration des Master-Controllers und des Backup-Master-Controllers für den zentralen Ansatz. In 8 wird im ersten Zeitintervall ein erster Controller dem mit M bezeichneten Mastercontroller zugeordnet. Der zweite Controller wird als Backup-Master-Controller bezeichnet und mit BM bezeichnet.
  • Im zweiten Zeitintervall tritt ein Fehler in Bezug auf den ersten Controller auf, der als Master-Controller M fungiert. Als Reaktion auf den Master-Controller-Fehler wird der zweite Controller, der als der aktuelle Backup-Master-Controller BM fungiert, rekonfiguriert, um als neuer Master-Controller M zu funktionieren. Zusätzlich wird der aktuelle Operationscontroller des geordneten Satzes der Backup-Master-Controller (d. h. der dritte Controller in diesem Beispiel) dem aktuellen Backup-Master-Controller BM zugeordnet.
  • Im dritten Zeitintervall tritt ein Fehler in Bezug auf den dritten Controller auf, der als der aktuelle Backup-Master-Controller BM arbeitet. Als Reaktion auf diesen Fehler wird der nächste Betriebscontroller des geordneten Satzes der Backup-Master-Controller (d. h. der vierte Controller) als der aktuelle Backup-Master-Controller BM rekonfiguriert. Dies kann so für viele Backup-Master-Controller, die im System verfügbar sind, fortgesetzt werden. 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. Verfahren zur fehlertoleranten Controller-Bereitschaft, umfassend die Schritte: Ausführen von Funktionen durch einen ersten Prozessor, während er unter Nicht-Fehler-Betriebsbedingungen arbeitet, wobei der erste Controller in einem Primärstatusmodus arbeitet, wobei der primäre Controller Steuersignale über ein Kommunikationsnetzwerk ausgibt, um Steuerungsaktionen auszuführen; das Betreiben in einem Hot-Standby-Status-Modus durch einen zweiten Controller unter normalen Betriebsbedingungen, wobei der zweite Controller den ersten Controller durch Ausführen von Funktionen zum Betrieb als redundanten Controller widerspiegelt, Betreiben in einem Cold-Standby-Status-Modus durch mindestens einen Backup-Controller unter normalen Betriebsbedingungen; Rekonfigurieren des zweiten Controllers unter normalen Betriebsbedingungen vom Hot-Standby-Status-Modus zum primären Standby-Status-Modus, wenn im ersten Controller ein Fehler auftritt; Rekonfigurieren des mindestens einen Backup-Controllers, der unter normalen Betriebsbedingungen vom Cold-Standby-Statusmodus in den Hot-Standby-Statusmodus arbeitet, um als redundanter Controller als Reaktion auf die Rekonfiguration des zweiten Controllers vom Hot-Standby-Statusmodus zum Primärstatusmodus zu arbeiten.
  2. Verfahren nach Anspruch 1, worin, falls irgendein jeweiliger Controller ausfällt, der jeweilige ausgefallene Controller in einen fehlersicheren Modus übergeht.
  3. Verfahren nach Anspruch 1, ferner folgende Schritte umfassend: das Erfassen eines Fehlers im zweiten Controller, während des Betriebs im Hot-Standby-Statusmodus, worin der mindestens eine Backup-Controller vom Cold-Standby-Statusmodus in den Hot-Standby-Statusmodus rekonfiguriert wird, wenn ein Fehler im zweiten Controller auftritt.
  4. Verfahren nach Anspruch 2, worin der mindestens eine Backup-Controller eine Vielzahl von Backup-Controllern beinhaltet, worin jede der Vielzahl von Backup-Controllern eine priorisierte Nummer aufweist.
  5. Verfahren nach Anspruch 4, worin ein jeweiliger Backup-Controller mit einer höchsten Priorität unter den mehreren Backup-Controllern aus dem Cold-Standby-Statusmodus in den Hot-Standby-Statusmodus als Reaktion auf die Erkennung eines Fehlers in dem zweiten Controller rekonfiguriert wird.
  6. Verfahren nach Anspruch 5, worin der jeweilige Backup-Controller, der so konfiguriert ist, dass er im Hot-Standby-Statusmodus arbeitet, rekonfiguriert wird, um im Primärstatusmodus zu arbeiten, wenn ein Fehler in einem aktuellen Controller erfasst wird, der im Primärstatusmodus arbeitet.
  7. Verfahren nach Anspruch 6, worin ein nächster jeweiliger Backup-Controller, der im Cold-Standby-Statusmodus arbeitet, mit einer nächsthöheren Priorität unter den mehreren, unter normalen Betriebsbedingungen arbeitenden Backup-Controllern rekonfiguriert ist, um im Hot-Standby-Statusmodus zu arbeiten.
  8. Verfahren nach Anspruch 7, worin das Beibehalten einer priorisierten Reihenfolge jeder der Vielzahl von Backup-Controllern auf einem dezentralisierten Ansatz basiert, worin jeder der Vielzahl von Backup-Controllern unabhängig bestimmt, ob eine Statusmodusänderung erforderlich ist.
  9. Verfahren nach Anspruch 7, worin jede der Vielzahl von Backup-Controllern, die unabhängig ermitteln, ob die Statusmodusänderung erforderlich ist, unter Verwendung einer Priorisierungstechnik durchgeführt wird, die Priorisierungstechnik die folgenden Schritte umfasst: das Zuordnen einer ersten Priorisierungsnummer zu jedem Backup-Controller; das Erfassen eines Ausfalls eines Controllers durch jeden operativen Backup-Controller; das Ermitteln, ob eine aktuelle Priorisierungsnummer des ausgefallenen Controllers eine höhere Priorität hat als ein Überwachungs-Backup-Controller; das Inkrementieren eines Priorisierungsfehlerzählers für den Überwachungssicherungszähler in Reaktion auf den ausgefallenen Controller mit einer höheren Priorität als der Überwachungs-Backup-Controller; das Ermitteln, ob eine Differenz zwischen der zugeordneten Prioritätsnummer des Überwachungs-Backup-Controllers und einem Wert des Priorisierungs-Ausfallzählers gleich Eins ist; und das Ändern des Statusmodus des Überwachungs-Backup-Controllers in den Primärstatusmodus als Reaktion auf die Differenz gleich eins.
  10. Verfahren nach Anspruch 7, worin das Beibehalten der priorisierten Anzahl jeder der Vielzahl von Backup-Controllern auf einem zentralisierten Ansatz basiert, worin der jeweilige Controller, der im Primärstatusmodus arbeitet, eine priorisierte Auflistung der Backup-Controller auf der Grundlage der ausgefallenen Controller aufrechterhält, wobei der jeweilige Controller, der im Primärstatusmodus arbeitet, festlegt, ob eine Statusmodusänderung für den jeweiligen Backup-Controller erforderlich ist, und worin eine Nachricht vom jeweiligen Controller, der im Primärstatusmodus arbeitet, an den jeweiligen Backup-Controller übermittelt wird, um von einem Cold-Standby-Statusmodus zu einem Backup-Standby-Statusmodus zu rekonfigurieren.
DE102017106087.1A 2016-03-23 2017-03-21 Fehlertoleranz-muster und schaltprotokoll für mehrere hot- und cold-standby-redundanzen Withdrawn DE102017106087A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/078,233 US9952948B2 (en) 2016-03-23 2016-03-23 Fault-tolerance pattern and switching protocol for multiple hot and cold standby redundancies
US15/078233 2016-03-23

Publications (1)

Publication Number Publication Date
DE102017106087A1 true DE102017106087A1 (de) 2017-09-28

Family

ID=59814264

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017106087.1A Withdrawn DE102017106087A1 (de) 2016-03-23 2017-03-21 Fehlertoleranz-muster und schaltprotokoll für mehrere hot- und cold-standby-redundanzen

Country Status (3)

Country Link
US (1) US9952948B2 (de)
CN (1) CN107229221A (de)
DE (1) DE102017106087A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021205914A1 (de) 2021-06-10 2022-06-30 Zf Friedrichshafen Ag Achsen-Antriebssystem eines Fahrzeugs
DE112018008018B4 (de) 2018-10-29 2022-11-10 Mitsubishi Electric Corporation Kommunikationssystem, Kommunikationsgerät und Programm

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3172630B1 (de) * 2014-07-22 2020-08-26 TTTech Industrial Automation AG Fehlertolerantes, wartbares automatisierungssystem
US10416630B2 (en) * 2017-03-07 2019-09-17 Uop Llc System and method for industrial process automation controller farm with flexible redundancy schema and dynamic resource management through machine learning
US10701484B2 (en) * 2017-03-22 2020-06-30 Synaptics Incorporated Non-linear feedback control for temperature and power protection of loudspeakers
EP3614216B1 (de) * 2017-06-15 2022-11-23 Hitachi, Ltd. Steuergerät
CN108008624B (zh) * 2017-12-08 2021-05-28 北京交大思诺科技股份有限公司 抢权逻辑控制单元
DE102017223814A1 (de) * 2017-12-27 2019-06-27 Robert Bosch Gmbh Lenkvorrichtung
CN108196547B (zh) * 2018-01-08 2020-06-23 北京图森未来科技有限公司 一种自动驾驶***
US10726645B2 (en) 2018-02-16 2020-07-28 Ford Global Technologies, Llc Vehicle diagnostic operation
CN108515928A (zh) * 2018-04-28 2018-09-11 安徽江淮汽车集团股份有限公司 用于车身控制器的冗余控制方法及***
WO2019217315A1 (en) * 2018-05-07 2019-11-14 Lam Research Corporation Configurable distributed-interlock-system
CN109849684A (zh) * 2018-12-06 2019-06-07 北京长城华冠汽车科技股份有限公司 用于车辆的控制器组件及车辆
JP7111606B2 (ja) * 2018-12-19 2022-08-02 日立Astemo株式会社 電子制御装置および車載システム
KR20210140779A (ko) 2019-04-15 2021-11-23 램 리써치 코포레이션 가스 전달을 위한 모듈형 컴포넌트 시스템
CN110095977B (zh) * 2019-04-29 2023-06-16 重庆川仪控制***有限公司 冗余设备、主从模块判定方法、拓扑***及通信决策方法
US11184705B2 (en) 2019-11-01 2021-11-23 Synaptics Incorporated Protection of speaker from excess excursion
US11749122B1 (en) * 2019-12-12 2023-09-05 Amazon Technologies, Inc. Multi-device redundant flight controller
EP4068696A4 (de) * 2019-12-16 2022-12-21 Huawei Technologies Co., Ltd. Notrufverfahren, vorrichtung und system
DE102020203420B4 (de) * 2020-01-15 2021-11-04 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs in einem Fehlerfall
US11662715B2 (en) * 2020-02-13 2023-05-30 Honeywell International Inc. Multi-synch of a primary automation device with multiple secondaries
US11673274B2 (en) * 2020-03-11 2023-06-13 Verb Surgical Inc. Redundant robot power and communication architecture
EP3879400A1 (de) * 2020-03-12 2021-09-15 Volkswagen Ag Verfahren und vorrichtung zur konfigurierung einer systemarchitektur eines autonomen fahrzeugs
US11762742B2 (en) 2020-03-31 2023-09-19 Honeywell International Inc. Process control system with different hardware architecture controller backup
US11215378B2 (en) * 2020-05-06 2022-01-04 Trane International Inc. Systems and methods for controlling a climate control system
WO2021232237A1 (zh) * 2020-05-19 2021-11-25 华为技术有限公司 控制方法和装置
US11589931B2 (en) * 2020-08-04 2023-02-28 Verb Surgical Inc. Surgical robotic system and method for transitioning control to a secondary robot controller
US11989084B2 (en) 2020-09-23 2024-05-21 Honeywell International Inc. Self-healing process control system
US11874938B2 (en) 2020-11-03 2024-01-16 Honeywell International Inc. Admittance mechanism
US11667393B2 (en) 2020-12-14 2023-06-06 Honeywell International Inc. Systems and methods for power management and control of multiple power sources
US11214271B1 (en) * 2021-03-10 2022-01-04 Aurora Operations, Inc. Control system interface for autonomous vehicle
CN113246884B (zh) * 2021-05-26 2022-11-22 三一汽车制造有限公司 工程车辆的控制方法、工程车辆和可读存储介质
WO2023250014A1 (en) * 2022-06-22 2023-12-28 Afiniti, Ltd. Fault management in a communication system
CN116500886B (zh) * 2023-06-28 2023-09-08 中国船舶集团有限公司第七〇七研究所 一种多机热备控制方法
CN117111438A (zh) * 2023-10-23 2023-11-24 成都科江科技有限公司 一种工业控制器的冗余控制方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085333A (en) * 1997-12-19 2000-07-04 Lsi Logic Corporation Method and apparatus for synchronization of code in redundant controllers in a swappable environment
US7114109B2 (en) * 2004-03-11 2006-09-26 International Business Machines Corporation Method and apparatus for customizing and monitoring multiple interfaces and implementing enhanced fault tolerance and isolation features
JP2005267111A (ja) * 2004-03-17 2005-09-29 Hitachi Ltd 記憶制御システム及び記憶制御システムの制御方法
US8538622B2 (en) * 2005-02-18 2013-09-17 GM Global Technology Operations LLC Redundant device positioning sensing system for a vehicle
US7644299B2 (en) * 2007-03-02 2010-01-05 Proprietary Controls Systems Corporation Fault tolerant security system, method and apparatus
CN101132314B (zh) * 2007-09-21 2010-09-29 中兴通讯股份有限公司 实现冗余备份的方法
CN100595353C (zh) * 2008-03-17 2010-03-24 中国电子科技集团公司第四十八研究所 一种多晶硅铸锭炉控温热偶故障处理方法
CN100555234C (zh) * 2008-05-12 2009-10-28 北京邮电大学 双机冗余容错***及其冗余切换方法
US8510402B2 (en) * 2008-08-20 2013-08-13 Schneider Automation Inc. Management of redundant addresses in standby systems
US8245233B2 (en) * 2008-12-16 2012-08-14 International Business Machines Corporation Selection of a redundant controller based on resource view
CN102508746A (zh) * 2011-11-15 2012-06-20 北京控制工程研究所 一种用于三机变结构容错计算机***管理方法
US9853453B2 (en) * 2012-04-20 2017-12-26 Siemens Aktiengesellschaft Wind park control system
JP6179101B2 (ja) * 2013-01-16 2017-08-16 日本電気株式会社 管理装置、管理方法、および管理プログラム
US9740178B2 (en) * 2013-03-14 2017-08-22 GM Global Technology Operations LLC Primary controller designation in fault tolerant systems
US9432252B2 (en) * 2013-07-08 2016-08-30 Nicira, Inc. Unified replication mechanism for fault-tolerance of state
US9667498B2 (en) * 2013-12-20 2017-05-30 Facebook, Inc. Self-adaptive control system for dynamic capacity management of latency-sensitive application servers

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112018008018B4 (de) 2018-10-29 2022-11-10 Mitsubishi Electric Corporation Kommunikationssystem, Kommunikationsgerät und Programm
DE102021205914A1 (de) 2021-06-10 2022-06-30 Zf Friedrichshafen Ag Achsen-Antriebssystem eines Fahrzeugs

Also Published As

Publication number Publication date
US9952948B2 (en) 2018-04-24
US20170277607A1 (en) 2017-09-28
CN107229221A (zh) 2017-10-03

Similar Documents

Publication Publication Date Title
DE102017106087A1 (de) Fehlertoleranz-muster und schaltprotokoll für mehrere hot- und cold-standby-redundanzen
DE102014102582B4 (de) Strategie für fehlertolerante Controller
EP2550599B1 (de) Kontrollrechnersystem, verfahren zur steuerung eines kontrollrechnersystems, sowie verwendung eines kontrollrechnersystems
EP2641176B1 (de) Mikroprozessorsystem mit fehlertoleranter architektur
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
DE102015110958A1 (de) Ausfallverwaltung in einem Fahrzeug
DE102012102173A1 (de) Re-konfigurierbare Schnittstellen-basierende elektrische Architektur
DE102015003194A1 (de) Verfahren und Vorrichtung zum Handhaben von sicherheitskritischen Fehlern
DE10324380B4 (de) Programmierbare Steuerung mit CPU und Kommunikationseinheiten sowie Verfahren zur Steuerung derselben
DE102016102259A1 (de) Rechner- und Funktionsarchitektur zur Erhöhung der Ausfallsicherheit einer Hilfskraftlenkung
DE60312041T2 (de) Tcet-expander
WO2016030324A1 (de) Mikrocontrollersystem und verfahren für sicherheitskritische kraftfahrzeugsysteme sowie deren verwendung
DE102017119418A1 (de) Betriebssicheres systemkonstruktionsmuster basierend auf softwarecode-migration
EP2418580B1 (de) Verfahren zum Betreiben eines Netzwerkes und Netzwerk
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
DE102021124495A1 (de) Elektronische parkbremssteuervorrichtung und -verfahren
EP4091054A1 (de) Verfahren und vorrichtung zum rekonfigurieren eines automatisiert fahrenden fahrzeugs in einem fehlerfall
DE102017119447A1 (de) Koordinierte Multi-Modus-Zuordnung und Laufzeitumschaltung für Systeme mit dynamischen Fehlertoleranz-Anforderungen
DE102012212680A1 (de) Verfahren und System zur fehlertoleranten Steuerung von Stellgliedern für eine begrenzte Zeit auf der Grundlage von vorberechneten Werten
DE102020200414A1 (de) Verfahren und Vorrichtung zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs in einem Fehlerfall
DE112020000249T5 (de) Neuzuordnung von reglerphasen innerhalb einer phasenredundanten spannungsregler-vorrichtung
DE102017212560A1 (de) Verfahren zum ausfallsicheren Durchführen einer sicherheitsgerichteten Funktion
DE112020007774T5 (de) Fahrzeugsteuersystem
DE102018000726B4 (de) Steuereinheit zur Verwendung in einem Fahrzeug und Verfahren zum Bereitstellen von Notstrom für die Steuereinheit

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

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