-
HINTERGRUND DER ERFINDUNG
-
Eine Ausführungsform bezieht sich auf fehlertolerante Steuersysteme.
-
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. Wurde ein Fehler erkannt, wird der Controller abgeschaltet oder der Controller schlägt stillschweigend fehl (Fail-Silent), wobei keine Signale durch den Controller erzeugt werden, und einen sekundären Controller neu konfiguriert wird, um zum primären 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. Wenn ein primärer Controller ausfällt und geräuschlos ist, kann je nach Systemauslegung ein zweiter Controller aktiv sein und muss eventuell aktiviert werden. Wenn dies geschieht, werden alle Stellantriebe umschalten, um sich auf Anforderungen des zweiten Controllers 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.) vorhanden, wenn auch nicht auf ein Maß an Kritikalität von Softwarefehlern, Software-Designfehler beide Controller gleich beeinflussen würden, wird typischerweise selbstständig ausfallen, und der sekundäre Controller, während er nicht typischerweise denselben Defekt aufweist, kann danach ordnungsgemäß arbeiten.
-
Typischerweise beinhaltet eine Steuereinheit entweder zwei Prozessoren oder zwei Kerne, wobei Funktionen unabhängig und gleichzeitig auf einem entsprechenden Controller ausgeführt werden. Als Ergebnis weisen sowohl der primäre Controller und der sekundäre Controller dieselbe Funktion auf, die von zwei Prozessoren oder zwei Kerne innerhalb jedes Controllers ausgeführt wird. Infolgedessen wird, wenn ein Dual-Duplex-Design verwendet wird, eine gleiche Funktion unabhängig viermal ausgeführt. Die Ergebnisse von jedem Controller werden verglichen, um zu bestimmen, ob ein Fehler in einem der Controller vorhanden ist. Während das Dual-Duplex-Design zusätzliche Robustheit bietet, erfordert der Redundanzbetrieb zusätzliche Ressourcen (z. B. Prozessoren, Kerne), da jede Funktion unabhängig voneinander zweimal in jedem Controller ausgeführt wird. Redundanzbetriebe erfordern die parallele Ausführung mehrerer Kopien zusätzliche Hardwareressourcen, sodass es folglich Kostenvorteile für die Bereitstellung dieser Hardwareressourcen gibt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Ein Vorteil einer Ausführungsform ist eine Verringerung der Verarbeitungszeit von Controllern, sodass Verarbeitungsressourcen für andere Operationen freigegeben werden können und eine Gesamtverarbeitungslast des Prozessors verringern können. Durch die Nutzung der Ergebnisse und die Datenintegrität eines früheren Controllers zur Fehlererkennung und Realisierung von Fail-Silence-Eigenschaften ist in einem nachfolgenden Controller nur eine Ausführung der Funktion erforderlich. Infolgedessen wird die Verarbeitung reduziert, indem sie nicht zwei Funktionen für jeden Controller ausführen muss. Ein Steuersystem mit zwei Controllern kann eine Verringerung der Verarbeitung um 25 % erreichen, während ein Steuersystem mit drei Controllern bei normalen Betriebsbedingungen eine Reduzierung um 33 % erreichen kann (d. h. wen kein Fehler vorliegt). Die Einsparungen bei der Verarbeitung können durch die folgende Formel ermittelt werden: N/(2 + 2N) wobei N die Anzahl der Ausfälle ist, die das Steuersystem zu bewältigen hat.
-
Eine Ausführungsform sieht ein modifiziertes Dual-Duplex-Fail-Betriebssteuersystem vor. Ein primärer Controller steuert die Funktionen von Geräten, während er unter Nicht-Fehler-Betriebsbedingungen arbeitet. Der primäre Controller umfasst eine erste Verarbeitungseinheit, die eine Funktion ausführt, die Eingangsdaten von Erfassungsvorrichtungen verwendet, und eine zweite Verarbeitungseinheit, die gleichzeitig die Funktion ausführt, die die Eingangsdaten von den Erfassungsvorrichtungen verwendet. Ein erstes Vergleichsmodul vergleicht das Funktionsergebnis von der ersten Verarbeitungseinheit mit dem Funktionsergebnis der zweiten Verarbeitungseinheit, um zu ermitteln, ob ein Fehler im ersten Controller vorliegt. Ein zweiter Controller umfasst eine erste Verarbeitungseinheit, die die Funktion ausführt, die die Eingangsdaten von Erfassungsvorrichtungen verwendet, und eine zweite Verarbeitungseinheit, die in einem nicht-redundanten Status arbeitet. Die zweite Verarbeitungseinheit führt die Funktion nicht im nicht redundanten Zustand aus. Ein zweites Vergleichsmodul ermittelt, ob im zweiten Controller ein Fehler vorliegt. Ein übereinstimmendes Funktionsergebnis, das durch das erste Vergleichsmodul des ersten Controllers identifiziert wird, wird in das zweite Vergleichsmodul des zweiten Controllers eingegeben. Das zweite Vergleichsmodul ermittelt, ob ein Fehler im zweiten Controller vorhanden ist, wobei nur das durch das erste Vergleichsmodul identifizierte Matching-Funktionsergebnis und das durch die erste Verarbeitungseinheit des zweiten Controllers ermittelte Funktionsergebnis verwendet werden.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein architektonisches Blockdiagramm eines exemplarischen integrierten Steuersystems.
-
2 ist eine erste Ausführungsform einer modifizierten Duplexarchitektur zur Durchführung von Redundanzprüfungen.
-
3 ist eine zweite Ausführungsform einer modifizierten Duplexarchitektur zur Durchführung von Redundanzprüfungen.
-
4 veranschaulicht ein Beispiel eines ausgefallenen primären Controllers und einer Rekonfiguration eines Backup-Controllers.
-
5 veranschaulicht ein Beispiel eines ausgefallenen sekundären Controllers und einer Rekonfiguration eines Backup-Controllers.
-
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 durch eine ausdrückliche oder implizierte Theorie nicht als gebunden 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. Derartige 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 dem Controller 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 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 beschränkt zu sein auf, 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 wird ein architektonisches Blockdiagramm eines exemplarischen integrierten Steuersystems gezeigt. 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 herkömmliches Dual-Duplex-System dargestellt, um einen primären Controller 12 und einen Backup-Controller 14 (nachfolgend als sekundärer Controller bezeichnet) zu beinhalten. Darüber hinaus ist das exemplarische System, wie es hierin beschrieben ist, fahrzeugbezogen, aber die Architektur kann auch auf Nicht-Fahrzeugsysteme anwendbar sein. Der primäre Controller 12 beinhaltet zwei Verarbeitungseinheiten, die eine erste Verarbeitungseinheit 16 und eine zweite Verarbeitungseinheit 18 zum Ausführen von primären Steuerelementen beinhalten. Der sekundäre Controller 14 beinhaltet zwei Verarbeitungseinheiten, die eine erste Verarbeitungseinheit 20 und eine zweite Verarbeitungseinheit 22 beinhalten. Es sollte verstanden werden, dass die Begriffsverarbeitungseinheit unabhängige Prozessoren oder unabhängige Kerne beinhalten kann. Alternativ kann die Prozessoreinheit, falls gewünscht, einen Dual-Core-Prozessor mit zwei Kerne auf demselben Chip beinhalten. Zur Veranschaulichungszwecken hierin sind der primäre Controller 12 und der sekundäre Controller 14 identisch mit derselben Hardware und derselben Software. Jedoch können bestimmte Vorrichtungen in der Architektur verschiedene Vorrichtungen, wie z. B. unterschiedliche Stromversorgungen, verwenden, so dass, wenn ein Fehler bei einem Steuergerät als Ergebnis einer Stromversorgung auftritt, der andere Controller nicht beeinflusst wird. Der primäre Controller 12 wird als Master-aktiver Controller bezeichnet und empfängt Eingangssignale und führt Funktionen basierend auf den Eingangssignalen aus und gibt Steuersignale an die anderen Vorrichtungen über ein Kommunikationsnetzwerk 24 aus, wenn sie in einem Betriebs- und Nicht-Fail-Zustand sind. 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 sekundäre Controller 14 empfängt Daten und führt Funktionen aus, die sekundäre Steuerelemente verwenden, die mit den primären Steuerelementen identisch sind, aber Ausgangssteuersignale werden von den Geräten auf dem Kommunikationsnetzwerk nicht verwendet, wenn der primäre Controller 12 unter normalen Betriebsbedingungen arbeitet.
-
Der primäre Controller 12 und der sekundäre Controller 14 kommunizieren über das 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 Anforderung ist, dass jeder der Controller und Sensoren/Aktoren miteinander kommunizieren können. Der primäre Controller 12 und der sekundäre Controller 14 verwenden das Kommunikationsnetzwerk 24, um Daten zwischen den Sensoren 26 und den Aktuatoren 28 zu empfangen und zu übertragen.
-
Die Sensoren 26 erfassen für eine jeweilige Bedingung und senden Eingangssignale an die Controller, die der jeweiligen Bedingung zugeordnet sind. Wenn der primäre Controller 12 die Eingangssignale von den Sensoren 26 empfängt, führt jede Verarbeitungseinheit 16 und 18 des primären Controllers 12 gleichzeitig eine Softwarefunktion aus, die Eingangsdaten verwendet. Der primäre Controller 12 gibt ein Steuersignal auf der Grundlage der ausgeführten Funktion an die Stellglieder 28 aus. Der Begriff Stellglied kann, aber nicht beschränkt auf, Empfänger und andere Vorrichtungen, die Steuersignale von den Controllern empfangen, einschließen. Die Stellglieder 28 weisen Vorrichtungen zur Betätigung eines Merkmals des Fahrzeugsystems auf. Typischerweise sind derartige Merkmale, die entweder kritisch sind oder vom Fahrzeug benötigt werden, um wenigstens einen sicheren Betrieb des Fahrzeugs aufrechtzuerhalten. Derartige Steuervorrichtungen können beinhalten, sind aber nicht beschränkt auf Bremssteuerungen, Lenksteuerungen und Antriebssteuerungen. Unter einer Fail-Operation-Bedingung ist die Funktionalität für kritische Geräte, obwohl begrenzt, ermöglicht, dass der Fahrer das Fahrzeug sicher betreiben kann, bis das Fahrzeug an einen Ort zur Inspektion gefahren werden kann, um den Betrieb zu behalten, bis der Bediener die Bedienung übernehmen und eine Funktion manuell ausführen oder den Betrieb für eine kurze Zeitdauer beibehalten kann, bis das Fahrzeug sicher zum Stillstand gebracht werden kann.
-
Während der Zeit, in der der primäre Controller 12 Funktionen basierend auf den Eingangsdaten ausführt, spiegelt der sekundäre Controller 14 den primären Controller 12 und führt gleichzeitig dieselben Funktionen auf der Grundlage derselben Daten aus. Dies wird als Redundanz bezeichnet. Der sekundäre Controller 14 spiegelt den primären Controller 12 durch Ausführen von Funktionen in einem gleichen Zustand wie der primäre Controller 12. Dies wird durchgeführt, falls ein Fehler im primären Controller 12 auftritt, wobei der sekundäre Controller 14 bereit sein muss, die Operationen des primären Controllers 12 sofort zu übernehmen. Um sofort zu übernehmen, muss der sekundäre Controller 14 in demselben Zustand sein wie der sekundäre Controller 12. Dies bedeutet, die beiden Controller implementieren und führen eine identische Funktionalität aus, um einen Controllerausfall zu tolerieren, und diese Sicherheitskonfigurationssoftware wird in jedem Controller redundant ausgeführt, um Fehler zu erkennen (d. h. Fehler, die im Controller erkannt werden) und schaltet jede Kommunikation vom primären Controller aus, falls der primäre Controller ausfällt (d. h. Fail-Silent), oder um Fehler im sekundären Controller zu erkennen, die zu latenten Fehlern führen können.
-
Der primäre Controller 12 beinhaltet ein Vergleichsmodul 25 und der sekundäre Controller 14 beinhaltet ein Vergleichsmodul 27 zum Durchführen einer Vergleichsüberprüfung zwischen den Ausgängen der jeweiligen Verarbeitungseinheiten eines jeweiligen Controllers. Jedes jeweilige Vergleichsmodul führt eine Vergleichsoperation durch, um zu bestimmen, ob die Ergebnisse jeder ausgeführten Funktion von jeder Verarbeitungseinheit innerhalb des jeweiligen Controllers übereinstimmen, da jede Verarbeitungseinheit dieselbe Funktion ausführt, die dieselben Eingangsdaten verwendet. Wenn die Verarbeitungseinheiten fehlerfrei arbeiten, sollten die Ergebnisse übereinstimmen. 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 Funktionsergebnisse vergleichen, um zu bestimmen, ob ein Fehler in ihrem jeweiligen Controller aufgetreten ist. Die Ergebnisse werden auf dem Kommunikationsnetzwerk 24 an andere Geräte wie andere Controller und Aktoren im Kommunikationsnetz 24 übertragen. Beide Controller können eine Diagnosefunktion zur Überwachung von Fehlerzuständen in den anderen Controllern beinhalten, basierend auf der Beobachtung der Nachrichten, die der andere Controller im Netzwerk zur Rekonfiguration der Controller sendet, falls ein Fehler vorliegt.
-
Dieses traditionelle Dual-Duplex-Design, das die Redundanzausführung von kritischer Software im fehlerspezifischen System nutzt, verbraucht Systemressourcen und erhöht die Kosten durch teure rechnerische Ressourcen, die es verlangt. Das Dual-Duplex-Muster, wie es hier dargestellt ist, kann höchstens einen Controller-Ausfall verarbeiten und skaliert nicht mit steigenden Anforderungen an die Anzahl an Controller-Ausfällen, die in demselben Antriebszyklus toleriert werden müssen, was eine erhöhte Hardware (d.h. Redundanz) erfordern würde, was zu erhöhten Kosten führt. Darüber hinaus werden Ressourcen, die verwendet werden, entweder im Leerlauf verlassen oder können verwendet werden, um andere Funktionen auszuführen, die die vorhandene Hardware effizient nutzen können.
-
2 veranschaulicht eine erste Ausführungsform einer modifizierten Duplexarchitektur zur Durchführung von Redundanzprüfungen. Die Hardwarearchitektur ist ähnlich derer in 1 und ähnliche Elementnummern werden genutzt. Der primäre Controller 12 beinhaltet die erste Verarbeitungseinheit 16 und die zweite Verarbeitungseinheit 18 und der sekundäre Controller 14 beinhaltet die erste Verarbeitungseinheit 20 und die zweite Verarbeitungseinheit 22. Die erste Verarbeitungseinheit 16 und die zweite Verarbeitungseinheit 18 führen die Funktion aus und die Funktionsergebnisse von jeder Verarbeitungseinheit werden in das Vergleichsmodul 25 eingegeben, um zu bestimmen, ob die von jeder Verarbeitungseinheit ausgeführten Funktionsergebnisse übereinstimmen. Wenn die Funktion aus jeder Verarbeitungseinheit stammt, wird die Bestimmung durchgeführt, dass der primäre Controller 12 unter normalen Betriebsbedingungen arbeitet. Es versteht sich, dass der Begriff „Übereinstimmung“ eine genaue Übereinstimmung oder eine im Wesentlichen enge Übereinstimmung beinhalten kann. Eine genaue Übereinstimmung ist definiert als die Vergleichsergebnisse identisch sind. Eine im Wesentlichen enge Übereinstimmung wird als die Vergleichsergebnisse definiert, wenn nicht gleich nahe genug, sodass eine maximale Abweichung zwischen den Vergleichsergebnissen erlaubt ist.
-
Der sekundäre Controller 14 arbeitet unter dieser Technik nicht unter den gleichen Bedingungen wie der primäre Controller 12. Wie in 2 gezeigt, wird nur die erste Verarbeitungseinheit 20 im sekundären Controller 14 zur Ausführung der Funktion verwendet. Die zweite Verarbeitungseinheit 22 befindet sich in einem nicht redundanten Zustand. Der Begriff nicht-redundanter Zustand ist definiert, als dass die Verarbeitungseinheit entweder im Leerlauf ist oder eine andere Funktion als die ausführt, die durch die von der ersten Verarbeitungseinheit ausgeführte Funktion ausgeführt wird. Infolgedessen wird die Funktion nicht von der zweiten Verarbeitungseinheit 22 des sekundären Controllers 14 ausgeführt, und daher wird keine Eingabe von der zweiten Verarbeitungseinheit 22 an das Vergleichsmodul 27 geliefert. Wie hierin dargelegt, kann die zweite Verarbeitungseinheit 22 des sekundären Controllers 14, wenn sie nicht verwendet wird, für andere Aufgaben verwendet werden oder kann alternativ nicht einmal als Teil des Systems vorhanden sein. Um eine Redundanzprüfung im Vergleichsmodul 27 des sekundären Controllers 14 durchzuführen, sind zum Vergleich zwei Funktionsergebnisse erforderlich. Da die zweite Verarbeitungseinheit 22 im sekundären Controller 14 nicht aktiv ist, muss anstelle des von der zweiten Verarbeitungseinheit 22 typischerweise erzeugten Funktionsergebnisses ein zweites Funktionsergebnis ergänzt werden. Um dem Vergleichsmodul 27 einen zweiten Eingang zu liefern, ist eine Kommunikationsverbindung 30 zwischen dem Vergleichsmodul 25 des primären Controllers 12 und dem Vergleichsmodul 27 des sekundären Controllers 14 gekoppelt. Es versteht sich, dass die Kommunikationsverbindung 30, wie sie zur Veranschaulichung als Kommunikationskanal zwischen den Controllern dargestellt ist. Für jede der hierin beschriebenen Ausführungsformen ist jeder der jeweiligen Controller direkt miteinander in Verbindung mit dem Kommunikationsnetzwerk 24 oder einzelnen Kommunikationsnetzen, um es den jeweiligen Controllern zu ermöglichen, direkt miteinander zu kommunizieren. Als Ergebnis kann jeder Controller ein jeweiliges funktionales Ergebnis direkt mit irgendeinem anderen Controller innerhalb des Steuersystems unter Verwendung des Kommunikationsnetzes wie gezeigt oder anderer Kommunikationsnetze kommunizieren. Die Kommunikationsverbindung 30 kann einen Switch, einen Broadcast-Bus, drahtlose (z. B. WiFi, Bluetooth) oder mehrere einzelne Netzwerke, wie beispielsweise ein überbrücktes lokales Netzwerk, beinhalten, ist aber nicht darauf beschränkt. kann die Kommunikationsverbindung 30 als ein dedizierter Kommunikationskanal implementiert werden, der direkt den primären Controller 12 und den sekundären Controller 14 zur Kommunikation koppelt; jedoch ist eine bevorzugte Kommunikationsmethode das Kommunikationsnetzwerk, da die Kommunikation zwischen den Controllern bereits über das Netzwerk im Steuersystem erfolgt und es sich um den kundenspezifischen Kommunikationsmodus zwischen den Controllern handelt. Es sei daran erinnert, dass ein Funktionsergebnis durch die erste Verarbeitungseinheit 16 des primären Controllers 12 mit einem Funktionsergebnis durch die zweite Verarbeitungseinheit 18 des sekundären Controllers 14 verglichen wird. Wenn die Funktionsergebnisse miteinander übereinstimmen, wird das Ergebnis der passenden Funktion identifiziert und als zweite Eingabe für das Vergleichsmodul 27 verwendet. Daher wird das Term-Matching-Funktionsergebnis hierin als das Funktionsergebnis von einem jeweiligen vorangehenden Controller verwendet, wobei beide Funktionsergebnis-Eingaben in das vorangehende Vergleichsmodul zueinander passen. Als Ergebnis wird das Matching-Funktionsergebnis als Eingang für einen nachfolgenden Controller verwendet.
-
Unter erneuter Bezugnahme auf 2 wird das Matching-Funktionsergebnis aus dem Vergleichsmodul 25 des primären Controllers 12 in das Vergleichsmodul 27 des sekundären Controllers 14 eingegeben. Das durch das Vergleichsmodul 25 des ersten Controllers ermittelte Matching-Funktionsergebnis liefert nicht nur Funktionsergebnisse, die überprüft werden, sondern auch die Datenintegrität wird durch das Vergleichsmodul 25 ermittelt. In dem sekundäre Controller 14 vergleicht das Vergleichsmodul 27 das von der ersten Verarbeitungseinheit 20 erzeugte Funktionsergebnis und das vom Vergleichsmodul 25 des primären Controllers 12 gelieferte Anpassungsfunktionsergebnis zur Bestimmung, ob ein Fehler vorliegt, basierend darauf, ob die jeweiligen Eingaben des zweiten Vergleichsmoduls 27 einander entsprechen. In Fällen, in denen ein Ergebnis nicht aus dem Vergleichsmodul 25 aufgrund eines Controller-Problems oder einer Kommunikationsproblematik gesendet wird (z. B. der Controller 12 ausfällt), dann wird ermittelt, ob die jeweiligen Eingaben zum zweiten Vergleichsmodul 27 verfügbar sind und/oder eine Übereinstimmung vorhanden ist. So kann beispielsweise das Ergebnis der ersten Verarbeitungseinheit 20 als Ausgabe des Vergleichsmoduls 27 verwendet werden, da eine maximale Anzahl an Ausfällen aufgetreten ist und daher keine zweite Berechnung erforderlich ist. Es sei daran erinnert, dass jede der Verarbeitungseinheiten dieselbe Softwarefunktion unter Verwendung der gleichen Sensordaten ausführt und wenn kein Fehler in einem jeweiligen Controller vorhanden ist, dann sollten die von jeder Verarbeitungseinheit ausgeführten Funktionsergebnisse übereinstimmen. Das durch ein jeweiliges Vergleichsmodul ermittelte Matching-Funktionsergebnis ist grundsätzlich die Funktionsergebnis-Eingabe zu dem jeweiligen Vergleichsmodul, da die Ergebnisse im Wesentlichen ähnlich sein sollten, wenn eine Übereinstimmung vorliegt. Durch die Verwendung des passenden Funktionsergebnisses des primären Controllers 12 als zweiter Eingang zum Vergleichsmodul 27 des sekundären Controllers 14 ist eine Ausführung durch die zweite Verarbeitungseinheit 22 des sekundären Controllers 14 nicht erforderlich. Infolgedessen wird die Nutzung der Systemressourcen reduziert und eine Verringerung der Verarbeitung um 25 % im Vergleich zum herkömmlichen Dual-Duplex-Ansatz erreicht.
-
3 veranschaulicht eine zweite Ausführungsform einer modifizierten Duplexarchitektur zur Durchführung von Redundanzprüfungen. Die folgende Architektur bietet eine Verallgemeinerung von drei Controllern, die verwendet werden, um bis zu zwei Controller-Ausfälle zu tolerieren. Der primäre Controller 12, der sekundäre Controller 14 und ein Backup-Controller 32 (nachfolgend als der dritte Controller bezeichnet) werden in dem Steuersystem verwendet. Der dritte Controller 32 beinhaltet eine identische Architektur wie die anderen Controller. Der dritte Controller 32 beinhaltet eine erste Verarbeitungseinheit 34, eine zweite Verarbeitungseinheit 36 in einem Vergleichsmodul 38. Eine Kommunikationsverbindung 40 verbindet das Vergleichsmodul 27 des sekundären Controllers 14 und das Vergleichsmodul 38 des dritten Controllers 32. Wie zuvor dargelegt, sind die Kommunikationsverbindungen 30 und 40 vorzugsweise Teil des Kommunikationsnetzes 24 oder einzelner Kommunikationsnetze und sind zu illustrativen Zwecken dargestellt. Die jeweiligen Verarbeitungseinheiten und das Vergleichsmodul 38 im dritten Controller 32 funktionieren identisch mit den jeweiligen Verarbeitungseinheiten und dem Vergleichsmodul im sekundären Controller 14, wobei nur die erste Verarbeitungseinheit 34 die Funktion im dritten Controller 32 ausführt, während die zweite Verarbeitungseinheit 36 in einem nicht redundanten Zustand ist und für andere Aufgaben verwendet werden kann. Im dritten Controller 32 wird das Vergleichsfunktionsergebnis, das von dem Vergleichsmodul 27 des sekundären Controllers 14 erhalten wird, dem Vergleichsmodul 38 und dem dritten Controller 32 zur Verfügung gestellt. Das von der ersten Verarbeitungseinheit 34 des dritten Controllers 32 ermittelte Funktionsergebnis wird mit dem aus dem Vergleichsmodul 27 des sekundären Controllers 14 erhaltenen Matching-Funktionsergebnis verglichen, um zu bestimmen, ob eine Übereinstimmung vorliegt. Wenn eine Übereinstimmung vorliegt, wird ermittelt, dass der dritte Controller 32 unter normalen Betriebsbedingungen arbeitet. Wenn die jeweiligen Ergebnisse nicht übereinstimmen, wird festgestellt, dass ein Fehler im dritten Controller 32 vorliegt. Ähnlich der Konfiguration in 2 wird eine Verringerung der Verarbeitung erreicht, indem keine entsprechenden Verarbeitungseinheiten im sekundären Controller 14 und im dritten Controller 32 verwendet werden. Das heißt, für einen herkömmlichen Dual-Duplex-Ansatz würden alle sechs Verarbeitungseinheiten verwendet, wenn drei Controller verwendet würden. Bei der Nutzung des modifizierten Dual-Duplex-Ansatzes werden nur vier Verarbeitungseinheiten aus den sechs möglichen Verarbeitungseinheiten genutzt. Als Ergebnis wird eine Verringerung der Verarbeitung um 33 % im Vergleich zum herkömmlichen Dual-Duplex-Ansatz erzielt.
-
Unter Verwendung der hierin beschriebenen Technik erfordert die Bewältigung der N-Anzahl an Ausfällen N + 1-Controller, wobei N die Anzahl der Ausfälle ist, für deren Bewältigung das Steuersystem konzipiert ist. Im herkömmlichen Dual-Duplex-Ansatz müssen 2 + 2N-Ausführungen durchgeführt werden, während der modifizierte Dual-Duplex-Ansatz nur 2 + N-Ausführungen erfordert. Die Verringerung der Verarbeitung kann als N/(2 + 2N) verallgemeinert werden, wobei N die maximale Anzahl an Fehlern ist, die bewältigt werden müssen.
-
Wie zuvor beschrieben, kann jeder der jeweiligen Controller über das Kommunikationsnetzwerk 24 oder einzelne Kommunikationsnetze miteinander verbunden sein. Infolgedessen werden mehr Kommunikationskanäle verwendet, als tatsächlich in der Figur gezeigt sind, sodass jeder Controller direkt mit allen anderen Controllern in Verbindung steht, falls ein Zwischen-Backup-Controller ausfällt. Wenn daher zum Beispiel der sekundäre Controller 14 ausfällt oder ein nicht übereinstimmendes Ergebnis im sekundären Controller 14 identifiziert wird, stellt das Kommunikationsnetzwerk 24 oder einzelne Kommunikationsnetze eine direkte Kommunikation zwischen dem primären Controller 12 und dem dritten Controller 32. In einem derartigen Fall werden beispielsweise die Ergebnisse des Vergleichsmoduls 25 direkt dem Vergleichsmodul 38 des dritten Controllers 32 mitgeteilt und über ein jeweiliges Kommunikationsnetz als Eingabe verwendet. Zusätzlich kann eine andere Technik zum Übermitteln von Ergebnissen jeden Controller beinhalten, der sein Berechnungsergebnis auf dem Kommunikationsnetzwerk sendet, so dass jeder der anderen Controller mindestens eine Berechnungsberechnung aufweist, wenn der lokale Controller seine lokale Berechnung mit Ergebnissen seiner ersten Verarbeitungseinheit ausführt.
-
Das System beinhaltet einen Algorithmus zur Rekonfiguration von Controllern als primäre Controller oder Backup-Controller. Das heißt, wenn eine Bestimmung gemacht wird, dass der Fehler, der in einem der Controller auftritt, eine vorbestimmte Reihenfolge identifiziert wird, welcher Controller entweder als primärer Controller oder als designierter Backup-Controller bezeichnet wird. Wenn zum Beispiel der primäre Controller, der aktiv ist, ausfällt, wird ein Algorithmus ausgeführt, der identifiziert, welcher alternative Nicht-Fail-Controller rekonfiguriert ist, um als primärer Controller zu funktionieren. In ähnlicher Weise wird, wenn die Bestimmung durchgeführt wird, dass der sekundäre Controller 14, wie in 2 ausgefallen ist, identifiziert der Algorithmus, welcher jeweilige Controller als Backup-Controller an den primären Controller konfiguriert ist, wenn eine Vielzahl von Controllern verwendet wird.
-
Sollte ein Fehler auftreten, bei dem nur einer der drei Controller ausfällt, wird der nicht ausgefallene Controller als primärer Controller rekonfiguriert und es werden keine Backup-Controller verwendet. In diesem Szenario, da eine maximale Anzahl an Ausfällen, die toleriert wurden, erreicht worden ist, dann muss die Matching-Funktion nicht verwendet werden, sodass diese Funktion auf beide Kerne nicht erforderlich ist.
-
4 veranschaulicht ein Beispiel eines ausgefallenen primären Controllers und einer Rekonfiguration eines Backup-Controllers. In 4 wird durch das Vergleichsmodul 25 ermittelt, dass ein Fehler im primären Controller 12 vorliegt, da die Funktionsergebnisse der ersten Verarbeitungseinheit 16 und der zweiten Verarbeitungseinheit 18 nicht übereinstimmen. Der primäre Controller 12 schlägt stillschweigend fehl und es wird kein Signal von dem primären Controller 12 ausgegeben, und daher ermitteln die anderen Controller auf diese Weise, dass der primäre Controller aufgrund eines Fehlens eines Signals oder einer Kommunikation ausgefallen ist. In anderen Fällen wird die Kommunikation an andere Controller und Vorrichtungen auf dem Kommunikationsnetzwerk 24 gesendet, dass ein Fehler im primären Controller 12 aufgetreten ist und dass der primäre Controller 12 stillschweigend ausfallen sollte. Infolgedessen kommunizieren keine anderen Controller Signale vom primären Controller 12. Weiterhin führt das hierin beschriebene Steuersystem auf jedem Betriebscontroller einen Algorithmus aus, um zu bestimmen, welcher Backup-Controller als nächster primärer Controller rekonfiguriert werden soll. Wie in 4 ist der sekundäre Controller 14 als primärer Controller rekonfiguriert. Daher sind die erste Verarbeitungseinheit 20 und die zweite Verarbeitungseinheit 22 betriebsbereit, um Daten von Sensoren zu erhalten und Funktionen auszuführen. In 4 werden die Funktionsergebnisse aus jeder jeweiligen Verarbeitungseinheit dem Vergleichsmodul 27 zur Verfügung gestellt. Die zuvor auf das Funktionsergebnis des Vergleichsmoduls 25 angewiesene Funktion ist nicht mehr angewiesen, und daher sind die Kommunikationen vom vorherigen primären Controller 12 ausgefallen. Der rekonfigurierte Controller 14 fungiert nun als primärer Controller und nutzt somit beide Funktionsergebnisse von beiden Verarbeitungseinheiten im sekundären Controller 14. Der dritte Controller 32 arbeitet weiterhin als Backup-Controller, wo nur die erste Verarbeitungseinheit 34 verwendet wird, um Funktionen auszuführen. Die Matching-Funktion ergibt sich aus dem nun als primärer Controller bezeichneten Vergleichsmodul 27 des rekonfigurierten Controllers 14 zum Vergleichsmodul 38 des dritten Controllers 32 zum Vergleich mit den von der ersten Verarbeitungseinheit 34 ermittelten Funktionsergebnissen. Es sollte verstanden werden, dass mehr Controller verwendet werden können, als hierin beschrieben, und dass diese Technik auf so viele Controller angewendet werden kann, wie das Steuersystem verwendet, wobei der ausgefallene primäre Controller in einem fehlersicheren Modus ausfällt und ein entsprechend designierter Sicherungscontroller als primärer Controller rekonfiguriert wird, und dass beide Verarbeitungseinheiten darin zur Ausführung von Funktionen verwendet werden. Alle anderen Controller setzen typische Operationen fort, bei denen nur eine Verarbeitungseinheit zur Ausführung von Funktionen verwendet wird und das übereinstimmende Funktionsergebnis von einem anderen sekundären Controller als Eingabe für das Vergleichsmodul verwendet wird. Dies geschieht, um Fehler in Backup-Controllern zu erkennen, um latente Fehler im System zu vermeiden. Sollte ein Fehler auftreten, bei dem nur einer der drei Controller ausfällt, wird der nicht ausgefallene Controller als primärer Controller rekonfiguriert und es werden keine Backup-Controller verwendet. In diesem Szenario, da eine maximale Anzahl an Ausfällen toleriert wurde, wurde erreicht, dass dann muss die passende Funktion nicht so ausgeführt werden, dass diese Funktion auf beiden Kerne nicht erforderlich ist.
-
5 veranschaulicht ein Beispiel eines ausgefallenen Backup-Controllers. Unter Verwendung der gleichen Elementnummern arbeitet der primäre Controller 12 in einem nicht ausgefallenen Zustand. Der sekundäre (Backup-)Controller 14 fällt aus. Die ausgefallene Backup-Controller 14 wird ausfallen. Die Kommunikation vom ausgefallenen Backup-Controller 14 ist nicht verfügbar und wird praktisch aus dem Steuersystem entfernt. Wie zuvor beschrieben, steht jeder der Controller über das Kommunikationsnetzwerk 24 oder über separate Kommunikationsnetze in direkter Kommunikation miteinander. Infolgedessen steht der primäre Controller 12 in direkter Kommunikation mit dem dritten Controller 32 zum direkten Übertragen von Vergleichsergebnissen. Der dritte Controller 32 verwendet das Ergebnis der Eingaben von dem Vergleichsmodul 25 und der ersten Verarbeitungseinheit 34 zur Fehlererfassung. Dies geschieht, damit der dritte Controller 32 in der Lage ist, Fehler in seiner eigenen Berechnung zu erkennen, und in diesem ausgefallenen Zustand, für den der sekundäre Controller 14 ausgefallen ist und für den das Berechnungsform-Vergleichsmodul 27 nicht mehr verfügbar ist, stillschweigend auszufallen. Sollte ein Fehler auftreten, wenn zwei der drei Controller ausfallen, wird der nicht ausgefallene Controller als primärer Controller rekonfiguriert und es werden keine Backup-Controller verwendet. In diesem Szenario, da eine maximale Anzahl an Ausfällen, die toleriert wurden, erreicht worden ist, muss die Matching-Funktion nicht verwendet werden, sodass diese Funktion auf beide Kerne nicht erforderlich 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.