-
ALLGEMEINER STAND DER TECHNIK
-
Die Fahrzeugkommunikation findet gemäß verschiedenen Signalwegen statt. Redundante Kommunikationspfade ermöglichen Kommunikation aus dann, wenn einer der Kommunikationspfade ausfällt. Redundante Steuerungen gestatten es dem Fahrzeugteilsystem, dass es betriebsfähig bleiben, wenn eine der Steuerungen ausfallen sollte.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 veranschaulicht ein beispielhaftes Fahrzeug mit einem Signalleitsystem zum Umleiten der Signalkommunikation über unterschiedliche Kommunikationspfade.
-
2 veranschaulicht beispielhafte Fahrzeugteilsysteme in Kommunikation mit den Komponenten des Signalleitsystems.
-
3 ist eine Tabelle, die beispielhafte Kommunikationsgeschwindigkeiten für unterschiedliche Kommunikationsverbindungen veranschaulicht, die verschiedene Kommunikationspfade ausbilden können.
-
4A–4B veranschaulichen unterschiedliche mögliche Kommunikationspfade zwischen einem primären Lenkteilsystem und einem sekundären Bremsteilsystem.
-
5 ist ein Ablaufdiagramm eines beispielhaften Verfahrens, das durch das Signalleitsystem ausgeführt werden kann, um sie Signalkommunikation über unterschiedliche Kommunikationspfade umzuleiten.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ein Fahrzeugprozessor kann Teilsystemvorgänge überwachen Teilsystemausfälle regeln. Das Regeln von Teilsystemausfällen könnte das Umleiten von Kommunikation von einem Teilsystem zu einem anderen Teilsystem beinhalten. Jedoch sind nicht alle Kommunikationspfade gleich. Zum Beispiel kann das Übertragen von Nachrichten von einem Teilsystem an ein anderes über einen Kommunikationspfad langsamer sein, als wenn die Nachricht über einen anderen Kommunikationspfad übertragen worden wäre. Ferner kann sich die Geschwindigkeit, mit welcher Nachrichten über einen Kommunikationspfad übertragen werden, periodisch ändern.
-
Eine Lösung ist ein Fahrzeugsystem, das nachfolgend als ein Signalleitsystem bezeichnet wird, welches Signale gemäß den Geschwindigkeiten der unterschiedlichen möglichen Kommunikationspfade über unterschiedliche Kommunikationspfade umleiten kann. Ein beispielhaftes Fahrzeugsystem beinhaltet einen ersten Kommunikationspfad und einen zweiten Kommunikationspfad. Das Fahrzeugsystem beinhaltet ferner einen Prozessor, der programmiert ist, um eine erste Kommunikationsgeschwindigkeit, die mit einem Kommunizieren über den ersten Kommunikationspfad assoziiert ist, und eine sekundäre Kommunikationsgeschwindigkeit, die mit einem Kommunizieren über den zweiten Kommunikationspfad assoziiert ist, zu bestimmen. Der Prozessor befiehlt dem ersten Fahrzeugteilsystem, über den ersten Kommunikationspfad oder den zweiten Kommunikationspfad mindestens teilweise auf der Grundlage der ersten Kommunikationsgeschwindigkeit und der sekundären Kommunikationsgeschwindigkeit zu kommunizieren.
-
Die gezeigten Elemente können viele unterschiedliche Formen annehmen und mehrere und/oder alternative Komponenten und Ausstattungen beinhalten. Die veranschaulichten beispielhaften Komponenten sollen nicht einschränkend sein. Tatsächlich können zusätzliche oder alternative Komponenten und/oder Umsetzungen verwendet werden. Ferner sind die gezeigten Elemente nicht zwingend maßstabsgetreu gezeichnet, es sei denn, dies wird ausdrücklich angegeben.
-
Wie in 1 veranschaulicht, beinhaltet ein Hostfahrzeug 100 ein Signalleitsystem 105, welches Kommunikationsgeschwindigkeiten, die mit unterschiedlichen Kommunikationspfaden assoziiert sind, periodisch bestimmt und Fahrzeugteilsysteme anweist, gemäß dem schnellsten Kommunikationspfad zu kommunizieren, unter der Voraussetzung, dass das Teilsystem aus der Kommunikation und dem Zielempfänger der Kommunikation hervorgeht. Das Signalleitsystem 105 kann die Teilsysteme anweisen, über bestimmte Pfade als Reaktion auf das Detektieren, dass ein zuvor verfügbarer Pfad nicht länger verfügbar ist, was passieren kann, wenn ein Teilsystem ausfällt, zu kommunizieren.
-
Obwohl es als eine Limousine veranschaulicht ist, kann das Hostfahrzeug 100 jedes beliebige Passagier- oder Nutzfahrzeug, wie zum Beispiel ein Auto, einen Truck, einen SUV, ein Crossover-Fahrzeug, einen Van, einen Minivan, ein Taxi, einen Bus usw. beinhalten. In einigen möglichen Umsetzungen ist das Hostfahrzeug 100 ein autonomes Fahrzeug, das in einem autonomen (z. B. fahrerlosen) Modus, einem teilweise autonomen Modus und/oder einem nicht autonomen Modus betrieben werden kann.
-
Unter Bezugnahme auf 2 kann das Signalleitsystem 105 nun verschiedene Kommunikationspfade überwachen, die mit Kommunikation von einem primären Antriebsstrangteilsystem 110, einem sekundären Antriebsstrangteilsystem 115, einem primären Lenkteilsystem 120, einem sekundären Lenkteilsystem 125, einem primären Bremsteilsystem 130 und einem sekundären Bremsteilsystem 135 assoziiert sind. Das Signalleitsystem 105 beinhaltet einen Prozessor 140 in Kommunikation mit den vorstehenden Teilsystemen, obwohl die Kommunikationsverbindungen zwischen dem Prozessor 140 und jedem Teilsystem in den Figuren der Übersichtlichkeit und Einfachheit halber weggelassen wurden.
-
Das primäre Antriebsstrangteilsystem 110 und das sekundäre Antriebsstrangteilsystem 115 werden jeweils über Schaltungen, Chips, Aktoren, Steuerungen oder andere elektronische Komponenten umgesetzt, welche den Betrieb der verschiedenen Antriebsstrangkomponenten überwachen und steuern können. Der Antriebsstrang des Hostfahrzeugs 100 kann sich auf einen Verbrennungsmotor und ein Getriebe beziehen. In einigen Fällen kann sich der Antriebsstrang ferner oder alternativ auf einen Elektromotor und einen Batteriepack beziehen. Das primäre Antriebsstrangteilsystem 110 und das sekundäre Antriebsstrangteilsystem 115 können Signale zum Steuern des Verbrennungsmotors, des Getriebes, des Elektromotors usw. ausgeben. In einigen Fällen ist das sekundäre Antriebsstrangteilsystem 115 relativ zu dem primären Antriebsstrangteilsystem 110 redundant. Wenn das primäre Antriebsstrangteilsystem 110 ausfallen sollte oder wenn ein Kommunikationspfad zwischen dem primären Antriebsstrangteilsystem 110 und einem anderen Teilsystem oder einer anderen Fahrzeugkomponente ausfallen sollte, kann das sekundäre Antriebsstrangteilsystem 115 somit die Signale ausgeben, die normalerweise durch das primäre Antriebsstrangteilsystem 110 ausgegeben worden wären.
-
Das primäre Lenkteilsystem 120 und das sekundäre Lenkteilsystem 125 werden jeweils über Schaltungen, Chips, Aktoren, Steuerungen oder andere elektronische Komponenten umgesetzt, welche den Betrieb der verschiedenen Lenkkomponenten überwachen oder steuern können. Zum Beispiel können das primäre Lenkteilsystem 120 und das sekundäre Lenkteilsystem 125 Signale ausgeben, die den Drehwinkel eines Lenkrads angeben. Darüber hinaus können das primäre Lenkteilsystem 120 und das sekundäre Lenkteilsystem 125 Steuersignale an einen Servolenkungsmotor ausgeben.
-
Das primäre Bremsteilsystem 130 und das sekundäre Bremsteilsystem 135 werden jeweils über Schaltungen, Chips, Aktoren, Steuerungen oder andere elektronische Komponenten umgesetzt, welche den Betrieb der verschiedenen Komponenten, die mit dem Bremsen des Fahrzeugs assoziiert sind, überwachen und steuern können. Zum Beispiel können das primäre Bremsteilsystem 130 und das sekundäre Bremsteilsystem 135 separat Steuersignale ausgeben, welche die Bremsen als Reaktion auf z. B. ein Signal von einem virtuellen Fahrer (z. B. eine Steuerung des autonomen Modus) oder darauf, dass der Fahrer das Bremspedal drückt, betätigen. Ferner können das primäre Bremsteilsystem 130 und das sekundäre Bremsteilsystem 135 Signale ausgeben, welche den Zustand oder die Position der Bremsen angeben. Zum Beispiel können die Signale zum Beleuchten der Rücklichter verwendet werden, sodass Fahrer anderer Fahrzeuge wissen, wenn das Hostfahrzeug 100 bremst.
-
Der Prozessor 140 ist über Schaltungen, Chips oder anderen elektronische Komponenten umgesetzt, die es den konkreten Teilsystemen, wie zum Beispiel den vorstehend identifizierten, befehlen, gemäß der Kommunikationsgeschwindigkeit, die mit jedem Kommunikationspfad assoziiert ist, über verschiedene Kommunikationspfade zu kommunizieren. Somit kann der Prozessor 140 die Kommunikation zwischen verschiedenen Teilsystemen regeln, besonders in Fällen, bei welchen ein Teilsystem ausgefallen ist.
-
Zum Beispiel kann der Prozessor 140 programmiert sein, um die Kommunikationsgeschwindigkeit für die Kommunikation zwischen bestimmten Teilsystemen periodisch zu bestimmen. Nicht alle Teilsysteme können sich in direkter Kommunikation miteinander befinden. In der beispielhaften Anordnung aus 2 befindet sich zum Beispiel das primäre Lenkteilsystem 120 in direkter Kommunikation mit dem sekundären Lenkteilsystem 125, dem primären Antriebsstrangteilsystem 110 und dem primären Bremsteilsystem 130. Das primäre Lenkteilsystem 120 befindet sich mit dem sekundären Antriebsstrangteilsystem 115 und dem sekundären Bremsteilsystem 135 jedoch nicht in direkter Kommunikation. Allerdings kann das primäre Lenkteilsystem 120 indirekt mit dem sekundären Antriebsstrangteilsystem 115 durch das primäre Antriebsstrangteilsystem 110 oder das sekundäre Lenkteilsystem 125 kommunizieren.
-
Der Prozessor 140 kann programmiert sein, um die Signalkommunikation periodisch oder z. B. als Reaktion auf ein ausgefallenes Teilsystem oder eine ausgefallene Kommunikationsverbindung umzuleiten. Der Begriff „Kommunikationsverbindung“ kann sich auf die direkte Verbindung zwischen bestimmten Teilsystemen beziehen. Jede Verbindung kann individuell oder kollektiv einen Kommunikationspfad ausbilden. Zum Beispiel kann die Kommunikationsverbindung zwischen dem primären Lenkteilsystem 120 und dem primären Antriebsstrangteilsystem 110 einen Kommunikationspfad ausbilden, während die Kommunikationsverbindung zwischen dem primären Lenkteilsystem 120 und die Kommunikationsverbindung zwischen dem primären Antriebsstrangteilsystem 110 und dem sekundären Antriebsstrangteilsystem 115 einen anderen Kommunikationspfad ausbilden kann.
-
Der Prozessor 140 kann programmiert sein, um die Kommunikationsgeschwindigkeit für jeden Kommunikationspfad bestimmen und die Kommunikationsgeschwindigkeiten für jeden Pfad oder mindestens für jede Verbindung in dem Pfad in der Lookup-Tabelle (siehe 4) zu speichern. Zum Beispiel kann der Prozessor 140 programmiert sein, um die Kommunikationsgeschwindigkeiten zwischen den verschiedenen Teilsystemen zu messen. Das Messen der Kommunikationsgeschwindigkeiten kann das Überwachen einer Buslast und einer Übertragungsrate der Daten für jede Verbindung beinhalten. Die Kommunikationsgeschwindigkeiten für jede Verbindung können in der Lookup-Tabelle gespeichert sein. Der Prozessor 140 kann die Kommunikationsgeschwindigkeiten periodisch (von etwa z. B. alle 5 oder 10 Sekunden oder so) messen und die Lookup-Tabelle jedes Mal aktualisieren, wenn die Kommunikationsgeschwindigkeiten gemessen werden.
-
Nach dem Aktualisieren der Lookup-Tabelle oder als Reaktion auf das Detektieren eines Ausfalls von einem oder mehreren Teilsystemen oder einer Kommunikationsverbindung zwischen Teilsystemen kann der Prozessor 140 programmiert sein, zu bestimmen, welche(r) Kommunikationspfad(e) für jedes Teilsystem verwendet werden sollten, um mit jedem anderen Teilsystem zu kommunizieren. Das Bestimmen, welche Kommunikationspfade verwendet werden sollten, kann beinhalten, dass der Prozessor 140 programmiert ist, um zu bestimmen, welche Anordnung von Verbindungen einen Kommunikationspfad zwischen Teilsystemen ausbildet, und dass er programmiert ist, um die Lookup-Tabelle für die Geschwindigkeit abzufragen, die mir jeder Verbindung zwischen Teilsystemen assoziiert ist. Der Prozessor 140 kann dies für alle möglichen Kommunikationspfade zwischen Teilsystemen wiederholen. Der Prozessor 140 kann programmiert sein, um den schnellsten Kommunikationspfad auszuwählen, das heißt den Kommunikationspfad mit der höchsten Geschwindigkeit, und den Teilsystemen zu befehlen, über die schnellsten Kommunikationspfade zwischen dem Teilsystem, das die Nachricht überträgt, und ihres intendierten Ziels zu kommunizieren. Um zu bestimmen, welcher Kommunikationspfad der schnellste ist, kann der Prozessor 140 die Kommunikationsgeschwindigkeiten für jeden Pfad zwischen zwei Teilsystemen vergleichen und den Pfad auswählen, der mit der höchsten Geschwindigkeit (geringste Gesamtkommunikationszeit) assoziiert ist. Da mindestens zwei Kommunikationspfade zwischen jedem Teilsystem vorhanden sind, wenn jede Kommunikationsverbindung und jedes Teilsystem ordnungsgemäß funktionieren, kann das Auswählen des schnellsten Kommunikationspfads das Vergleichen der Geschwindigkeiten mehrerer Pfade beinhalten. Au dann, wenn eine Kommunikationsverbindung oder ein Teilsystem ausfällt, ist es wahrscheinlich, dass mindestens zwei mögliche Kommunikationspfade zwischen Teilsystemen übrigbleiben werden. Somit kann der Prozessor 140 unter diesen Umständen noch immer die Geschwindigkeiten von mindestens zwei Kommunikationspfaden vergleichen.
-
Nach dem Bestimmen des schnellsten Kommunikationspfads zwischen zwei Teilsystemen kann der Prozessor 140 den Teilsystemen befehlen, gemäß diesem Kommunikationspfad zu kommunizieren. Es kann möglich sein, dass die Kommunikationsrichtung wichtig ist. Zum Beispiel kann der Prozessor 140 programmiert sein, um einen Kommunikationspfad zwischen einem ersten und sekundären Teilsystem als den schnellsten zu identifizieren, wenn das erste Teilsystem Nachrichten an das sekundäre Teilsystem überträgt, aber einen anderen Kommunikationspfad als den schnellsten, wenn das sekundäre Teilsystem Nachrichten an das erste Teilsystem überträgt.
-
3 veranschaulicht eine beispielhafte Lookup-Tabelle (als eine Kommunikationsgeschwindigkeitstabelle bezeichnet) 300, die durch den Prozessor 140 zum Bestimmen der Geschwindigkeiten der unterschiedlichen möglichen Kommunikationspfade verwendet werden kann. Darüber hinaus kann der Prozessor 140 die Geschwindigkeiten durch das Messen von z. B. der Buslast und der Übertragungsrate bei jeder Verbindung periodisch aktualisieren. Die in der Tabelle 300 gezeigten Werte sind in Millisekunden angegeben und dienen nur zum Zwecke der Veranschaulichung. Ein unendlichkeitswert gibt an, dass keine direkte Kommunikationsverbindung zwischen den Teilsystemen vorhanden ist. Ein Wert von null gibt eine Position in der Tabelle an, bei welcher ein Teilsystem sich selbst schneidet, das bedeutet, dass keine Kommunikationsverbindung vorhanden ist.
-
Die 4A und 4B veranschaulichen ein beispielhaftes Szenario, bei welchem das primäre Bremsteilsystem 130 ausfällt. Vor dem Ausfall kommunizierte das primäre Lenkteilsystem 120 direkt mit dem primären Bremsteilsystem 130. Nach dem Ausfall muss das primäre Bremsteilsystem 130 mit dem sekundären Bremsteilsystem 135 kommunizieren, es weist jedoch keine direkte Verbindung mit dem sekundären Bremsteilsystem 135 auf. Somit kann der Prozessor 140 den besten Kommunikationspfad zwischen dem primären Lenkteilsystem 120 und dem sekundären Bremsteilsystem 135 bestimmen.
-
Wie in den 4A und 4B gezeigt, zieht der Prozessor 140 zwei mögliche Kommunikationspfade in Betracht. Das Beispiel in den 4A und 4B wurde der Übersichtlichkeit halber vereinfacht. Der Prozessor 140 könnte programmiert sein, um andere mögliche Kommunikationsverbindungen außer den beiden, die in den 4A und 4B gezeigt sind, in Betracht zu ziehen. Unter Bezugnahme auf 4A wurde das primäre Lenkteilsystem 120 mit dem sekundären Lenkteilsystem 125 über einen Kommunikationspfad 405 (z. B. ein „erster Kommunikationspfad“) kommunizieren, welches dann Nachrichten an das sekundäre Bremsteilsystem 135 übertragen würde. Über einen weiteren möglichen Kommunikationspfad 410 (z. B. ein „zweiter Kommunikationspfad“), der in 4B gezeigt ist, würde das primäre Lenkteilsystem 120 mit dem primären Antriebsstrangteilsystem 110 kommunizieren, welches dann Nachrichten an das sekundäre Antriebsstrangteilsystem 115 übertragen würde, welches dann Nachrichten an das sekundäre Bremsteilsystem 135 übertragen würde. Der Prozessor 140 kann die Kommunikationsgeschwindigkeit für jede Verbindung in dem ersten und dem zweiten Kommunikationspfad 405, 410 bestimmen.
-
Unter Bezugnahme auf die Kommunikationsgeschwindigkeitstabelle 300 aus 3 würde die Kommunikation über die erste Kommunikationsverbindung 30 ms dauern (Kommunikation vom primären Lenkteilsystem 120 zu dem sekundären Lenkteilsystem 125 dauert 10 ms und Kommunikation von dem sekundären Lenkteilsystem 125 zu dem sekundären Bremsteilsystem 135 dauert 20 ms). Kommunikation über die sekundäre Kommunikationsverbindung würde 50 ms dauern (Kommunikation von dem primären Lenkteilsystem 120 zu dem primären Antriebsstrangteilsystem 110 dauert 20 ms, Kommunikation von dem primären Antriebsstrangteilsystem 110 zu dem sekundären Antriebsstrangteilsystem 115 dauert 10 ms und Kommunikation von dem sekundären Antriebsstrangteilsystem 115 zu dem sekundären Bremsteilsystem 135 dauert 20 ms). Somit kann der Prozessor 140 bestimmen, dass der erste Kommunikationspfad 405 schneller als der zweite Kommunikationspfad 410 ist, da 30 ms (die Zeit zum Kommunizieren über den ersten Kommunikationspfad) schneller als 50 ms (die Zeit zum Kommunizieren über den zweiten Kommunikationspfad) ist. Daher kann der Prozessor 140 dem primären Lenkteilsystem 120 befehlen, über den ersten Kommunikationspfad 405 mit dem sekundären Bremsteilsystem 135 zu kommunizieren.
-
5 ist ein Ablaufdiagramm eines beispielhaften Verfahrens 500, das durch das Signalleitsystem 105 umgesetzt werden kann, um Signale zwischen oder unter Teilsystemen umzuleiten. Der Prozess 500 kann jederzeit beginnen, während das Hostfahrzeug 100 in Betrieb ist und kann weiter ablaufen, bis das Hostfahrzeug 100 ausgeschaltet wird.
-
Bei Block 505 misst das Signalleitsystem 105 die Kommunikationsgeschwindigkeit für jede Kommunikationsverbindung zwischen jedem der Teilsysteme. Das Messen der Kommunikationsgeschwindigkeit kann beinhalten, dass der Prozessor 140 eine Buslast und eine Übertragungsrate überwacht, die mir jeder Kommunikationsverbindung assoziiert sind. Der Prozessor 140 braucht die Buslast und die Übertragungsrate nicht immer für jede Kommunikationsverbindung zu messen, wenn Block 505 ausgeführt wird. Zum Beispiel kann der Prozessor 140 die Kommunikationsgeschwindigkeiten für einen Teilsatz von Kommunikationsverbindungen messen.
-
Bei Block 510 aktualisiert das Signalleitsystem 105 die Kommunikationsgeschwindigkeits-Lookup-Tabelle. Das Aktualisieren der Kommunikationsgeschwindigkeits-Lookup-Tabelle beinhaltet, dass der Prozessor 140 den Prozessor 140 mit den Geschwindigkeiten aktualisiert, die bei Block 505 gemessen wurden. Zum Beispiel kann der Prozessor 140 die Lookup-Tabelle aktualisieren, wobei die Übertragungsraten für jede Kommunikationsverbindung bei Block 505 gemessen werden. Da der Prozessor 140 die Buslast und die Übertragungsrate nicht immer für jede Kommunikationsverbindung zu messen braucht, wenn Block 505 ausgeführt wird, muss die gesamte Lookup-Tabelle nicht immer aktualisiert werden, wenn Block 510 ausgeführt wird.
-
Bei Entscheidungsblock 515 bestimmt das Signalleitsystem 105, ob ein oder mehrere Teilsysteme ausgefallen sind oder ob eine Kommunikationsverbindung zwischen zwei Teilsystemen ausgefallen ist. Wenn keine Teilsystem- oder Kommunikationsverbindungsausfälle detektiert werden, kann das Verfahren 500 mit Block 520 fortfahren. Wenn der Prozessor 140 einen Teilsystemausfall oder einen Kommunikationsverbindungsausfall detektiert, der Kommunikation zwischen bestimmten Teilsystemen verhindert, kann das Verfahren 500 mit Block 525 fortfahren.
-
Bei Block 520 wartet das Signalleitsystem 105 für einen vorbestimmten Zeitraum ab. Der vorbestimmte Zeitraum kann damit assoziiert sein, wie oft die Lookup-Tabelle periodisch aktualisiert wird. Zum Beispiel kann der Prozessor 140 etwa 5 oder 10 Sekunden abwarten, bevor er mit Block 505 fortfährt.
-
Bei Block 525 identifiziert das Signalleitsystem 105 alternative Kommunikationspfade für ein Arbeitsteilsystem, das durch den bei Block 515 identifizierten Ausfall beeinträchtigt wird. Zum Beispiel bestimmt der Prozessor 140, welche Kommunikationsverbindungen zum Umleiten von Signalen angesichts des ausgefallenen Teilsystems oder der ausgefallenen Kommunikationsverbindung verwendet werden können. In einigen Fällen kann das Umleiten beinhalten, dass ein Teilsystem mit einem sekundären Teilsystem kommuniziert, welches wiederum mit einem dritten Teilsystem kommuniziert. Zum Beispiel veranschaulichen die 4A und 4B beide Beispiele, bei welchen ein Teilsystem (das primäre Lenkteilsystem 120) mit seinem Ziel (dem sekundären Bremsteilsystem 135) durch ein oder mehrere andere Teilsysteme (das sekundäre Lenkteilsystem 125 im Beispiel aus 4A und das primäre Antriebsstrangteilsystem 110 und das sekundäre Antriebsstrangteilsystem 115 im Beispiel aus 4B) kommuniziert. Der Prozessor 140 kann eine beliebige Anzahl an alternativen Kommunikationspfaden identifizieren. Zum Beispiel kann der Prozessor 140 mindestens zwei alternative Kommunikationspfade identifizieren (z. B. einen ersten Kommunikationspfad und einen zweiten Kommunikationspfad).
-
Bei Block 530 fragt das Signalleitsystem 105 die Lookup-Tabelle für die Kommunikationsgeschwindigkeiten des ersten Kommunikationspfads und des zweiten Kommunikationspfads ab. Zum Beispiel kann der Prozessor 140 die Lookup-Tabelle abfragen, um den Zeitraum zu bestimmen, der benötigt wird, um über jede Verbindung in einem Kommunikationspfad zu kommunizieren. Der Prozessor 140 kann jeden der relevanten Werte aus der Lookup-Tabelle addieren, um die Kommunikationsgeschwindigkeit für jeden der alternativen Kommunikationspfade zu bestimmen, die bei Block 525 bestimmt wurden.
-
Bei Block 535 bestimmt das Signalleitsystem 105, welcher alternative Kommunikationspfad die höchste Kommunikationsgeschwindigkeit aufweist. Das heißt, der Prozessor 140 kann bestimmen, welcher alternative Kommunikationspfad die niedrigste Gesamtzeit zum Kommunizieren von einem Teilsystem zu dem Zielteilsystem aufweist. Wenn zum Beispiel der erste Kommunikationspfad mit einer Kommunikationsgeschwindigkeit von 30 ms assoziiert ist (z. B. dauert Kommunikation über den ersten Kommunikationspfad 30 ms) und der zweite Kommunikationspfad mit einer Kommunikationsgeschwindigkeit von 50 ms assoziiert ist (z. B. dauert Kommunikation über den zweiten Kommunikationspfad 50 ms), kann der Prozessor 140 bestimmen, dass der erste Kommunikationspfad schneller als der zweite Kommunikationspfad ist.
-
Bei Block 540 wählt das Signalleitsystem 105 den schnellsten Kommunikationspfad aus. Mit dem obigen Beispiel fortsetzend wählt der Prozessor 140 den ersten Kommunikationspfad als den schnellsten Kommunikationspfad aus, da die erste Kommunikationsgeschwindigkeit (30 ms) schneller als die zweite Kommunikationsgeschwindigkeit (50 ms) ist.
-
Bei Block 545 befiehlt das Signalleitsystem 105 dem durch den Ausfall beeinträchtigten Teilsystem, gemäß dem bei Block 540 ausgewählten Kommunikationspfad zu kommunizieren. Mit dem vorstehenden Beispiel fortsetzend kann der Prozessor 140 dem Teilsystem zum Beispiel befehlen, über den ersten Kommunikationspfad zu kommunizieren, da der erste Kommunikationspfad mit einer höheren Geschwindigkeit als der zweite Kommunikationspfad assoziiert ist. Wenn der zweite Kommunikationspfad schneller als der erste gewesen wäre, würde der Prozessor 140 dem Teilsystem befehlen, über den zweiten Kommunikationspfad zu kommunizieren.
-
Nach Block 545 kann das Verfahren 500 mit Block 520 fortfahren, sodass die Kommunikationsgeschwindigkeiten erneut bewertet werden können und zusätzliche Teilsystemausfälle oder Kommunikationsverbindungsausfälle detektiert werden können.
-
Im Allgemeinen können die beschriebenen Rechensysteme und/oder -vorrichtungen ein beliebiges aus einer Reihe von Computerbetriebssystemen einsetzen, einschließlich unter anderem Versionen und/oder Varianten der Sync®-Anwendung von Ford, AppLink/Smart Device Link Middleware, der Betriebssysteme Microsoft Automotive®, Microsoft Windows®, Unix (z. B. das Betriebssystem Solaris®, vertrieben durch die Oracle Corporation in Redwood Shores, Kalifornien), AIX UNIX, vertrieben durch International Business Machines in Armonk, New York, Linux, Mac OSX und iOS, vertrieben durch die Apple Inc. in Cupertino, Kalifornien, BlackBerry OS, vertrieben durch Blackberry, Ltd. in Waterloo, Kanada, und Android, entwickelt von Google, Inc. und der Open Handset Alliance, oder der Plattform QNX® CAR für Infotainment, angeboten von QNX Software Systems. Zu Beispielen für Rechenvorrichtungen gehören unter anderem ein im Fahrzeug integrierter Computer, ein Arbeitsplatzcomputer, ein Server, ein Schreibtisch-, ein Notebook-, ein Laptop- oder Handcomputer oder ein anderes Computersystem und/oder eine andere Rechenvorrichtung.
-
Zu Rechenvorrichtungen gehören im Allgemeinen computerausführbare Anweisungen, wobei die Anweisungen durch eine oder mehrere Rechenvorrichtungen ausgeführt werden können, wie etwa durch die vorstehend aufgeführten. Computerausführbare Anweisungen können von Computerprogrammen zusammengestellt oder ausgewertet werden, die unter Verwendung einer Vielzahl von Programmiersprachen und/oder -technologien erstellt wurden, einschließlich unter anderem und entweder für sich oder in Kombination JavaTM, C, C++, Visual Basic, Java Script, Perl etc. Einige dieser Anwendungen können auf einer virtuellen Maschine zusammengestellt und ausgeführt werden, wie beispielsweise der Java Virtual Machine, der Dalvik Virtual Machine oder dergleichen. Im Allgemeinen empfängt ein Prozessor (z. B. ein Mikroprozessor) Anweisungen, z. B. von einem Speicher, einem computerlesbaren Medium usw., und führt diese Anweisungen aus, wodurch er einen oder mehrere Verfahren durchführt, einschließlich eines oder mehrere der hier beschriebenen Verfahren. Derartige Anweisungen und sonstige Daten können unter Verwendung einer Vielzahl von computerlesbaren Medien gespeichert und übertragen werden.
-
Ein computerlesbares Medium (auch als vom Prozessor lesbares Medium bezeichnet) schließt ein beliebiges nicht transitorisches (z. B. materielles) Medium ein, das an der Bereitstellung von Daten (z. B. Anweisungen) beteiligt ist, die von einem Computer (z. B. von einem Prozessor eines Computers) gelesen werden können. Ein solches Medium kann viele Formen annehmen, einschließlich unter anderem nicht flüchtige Medien und flüchtige Medien. Nicht flüchtige Medien können zum Beispiel optische oder Magnetplatten und sonstige dauerhafte Speicher einschließen. Flüchtige Medien können zum Beispiel einen dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory – DRAM) einschließen, der in der Regel einen Hauptspeicher darstellt. Derartige Anweisungen können durch ein oder mehrere Übertragungsmedien übertragen werden, darunter Koaxialkabel, Kupferdraht und Glasfaser, darunter die Drähte, die einen mit einem Prozessor eines Computers gekoppelten Systembus umfassen. Gängige Formen computerlesbarer Medien schließen zum Beispiel eine Diskette, eine Folienspeicherplatte, eine Festplatte, ein Magnetband, ein beliebiges anderes magnetisches Medium, eine CD-ROM, eine DVD, ein beliebiges anderes optisches Medium, Lochkarten, Lochstreifen, ein beliebiges anderes physikalisches Medium mit Lochmustern, einen RAM, einen PROM, einen EPROM, einen FLASH-EEPROM, einen beliebigen anderen Speicherchip oder eine beliebige andere Speicherkassette oder ein beliebiges anderes Medium ein, welches von einem Computer gelesen werden kann.
-
Datenbanken, Datenbestände oder sonstige Datenspeicher, die hier beschrieben sind, können unterschiedliche Arten von Mechanismen zum Speichern von, Zugreifen auf und Abrufen von unterschiedlichen Arten von Daten einschließen, darunter eine hierarchische Datenbank, eine Gruppe von Dateien in einem Dateisystem, eine Anwendungsdatenbank in einem proprietären Format, ein relationales Datenbankverwaltungssystem (Relational Database Management System – RDBMS) usw. Jeder dieser Datenspeicher ist im Allgemeinen in einer Rechenvorrichtung enthalten, welche ein Computerbetriebssystem, wie beispielsweise eines der oben aufgeführten, verwendet, und es wird auf eine oder mehrere mögliche Weisen über ein Netzwerk darauf zugegriffen. Auf ein Dateisystem kann von einem Computerbetriebssystem zugegriffen werden, und es kann in unterschiedlichen Formaten gespeicherte Dateien einschließen. Ein RDBMS verwendet im Allgemeinen die strukturierte Abfragesprache (Structured Query Language – SQL) zusätzlich zu einer Sprache zum Erstellen, Speichern, Bearbeiten und Ausführen gespeicherter Vorgänge, wie etwa die obengenannte PL/SQL-Sprache.
-
In einigen Beispielen können Systemelemente als computerlesbare Anweisungen (z. B. Software) auf einer oder mehreren Rechenvorrichtungen (z. B. Servern, PCs usw.) umgesetzt sein, die auf computerlesbaren Medien in Zusammenhang damit gespeichert sind (z. B. Platten, Speicher usw.). Ein Computerprogrammprodukt kann solche Anweisungen umfassen, die zum Ausführen der hier beschriebenen Funktionen auf computerlesbaren Medien gespeichert sind.
-
Hinsichtlich der hier beschriebenen Prozesse, Systeme, Verfahren, Heuristiken usw. versteht es sich, dass die Schritte solcher Prozesse usw. zwar als gemäß einer bestimmten Reihenfolge erfolgend beschrieben worden sind, derartige Prozesse aber mit den beschriebenen Schritten in einer Reihenfolge durchgeführt werden könnten, die von der hier beschriebenen Reihenfolge abweicht. Es versteht sich zudem, dass bestimmte Schritte gleichzeitig durchgeführt, andere Schritte hinzugefügt oder bestimmte hier beschriebene Schritte weggelassen werden könnten. Mit anderen Worten dienen die Beschreibungen von Prozessen hier dem Zwecke der Veranschaulichung bestimmter Ausführungsformen und sollten keinesfalls dahingehend ausgelegt werden, dass sie die Patentansprüche einschränken.
-
Dementsprechend versteht es sich, dass die obenstehende Beschreibung veranschaulichend und nicht einschränkend sein soll. Viele Ausführungsformen und Anwendungen, bei denen es sich nicht um die vorgestellten Beispiele handelt, werden beim Lesen der obenstehenden Beschreibung ersichtlich. Der Schutzumfang der Erfindung sollte nicht unter Bezugnahme auf die vorstehende Beschreibung festgelegt werden, sondern stattdessen unter Bezugnahme auf die beigefügten Patentansprüche unter Hinzunahme des vollständigen Umfangs an Äquivalenten, zu denen solche Patentansprüche berechtigen. Es wird erwartet und beabsichtigt, dass es hinsichtlich der hier erläuterten Technologien künftige Entwicklungen geben wird und dass die offenbarten Systeme und Verfahren in derartige künftige Ausführungsformen aufgenommen werden. Insgesamt versteht es sich, dass die Anmeldung modifiziert und variiert werden kann.
-
Allen in den Patentansprüchen verwendeten Ausdrücken soll deren allgemeine Bedeutung zugeordnet werden, wie sie vom Fachmann der hier beschriebenen Technologien verstanden wird, sofern hier kein ausdrücklicher Hinweis auf das Gegenteil erfolgt. Insbesondere ist die Verwendung der Singularartikel, wie etwa „ein“, „einer“, „eine“, „der“, „die“, „das“ usw., dahingehend auszulegen, dass ein oder mehrere der aufgeführten Elemente genannt werden, sofern ein Anspruch nicht eine ausdrücklich gegenteilige Einschränkung enthält.
-
Die Zusammenfassung wird bereitgestellt, um dem Leser einen schnellen Überblick über den Charakter der technischen Offenbarung zu ermöglichen. Sie wird in der Auffassung eingereicht, dass sie nicht dazu verwendet wird, den Umfang oder die Bedeutung der Patentansprüche auszulegen oder einzuschränken. Zusätzlich geht aus der obenstehenden ausführlichen Beschreibung hervor, dass mehrere Merkmale in mehreren Ausführungsformen zum Zwecke der Vereinfachung der Offenbarung zusammengefasst sind. Dieses Offenbarungsverfahren soll nicht dahingehend ausgelegt werden, dass es eine Absicht widerspiegelt, dass die beanspruchten Ausführungsformen mehr Merkmale als ausdrücklich in jedem Patentanspruch genannt erfordern. Stattdessen liegt der Gegenstand der Erfindung in weniger als allen Merkmalen einer einzelnen offenbarten Ausführungsform, wie die folgenden Patentansprüche widerspiegeln. Daher werden die folgenden Patentansprüche hiermit in die ausführliche Beschreibung aufgenommen, wobei jeder Patentanspruch für sich als separat beanspruchter Gegenstand steht.