-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Diese Anmeldung ist mit der US-Patentanmeldung mit der Nr. 13/596,250 verwandt, die am 28. August 2012 eingereicht wurde. Der Offenbarungsgehalt der vorstehenden Anmeldung ist durch Bezugnahme in seiner Gesamtheit hier mitaufgenommen.
-
GEBIET
-
Die vorliegende Offenbarung betrifft Fahrzeugsteuerungssysteme und insbesondere aktive Sicherheitssysteme von Fahrzeugen.
-
HINTERGRUND
-
Die hier bereitgestellte Hintergrundbeschreibung dient dem Zweck einer allgemeinen Darstellung des Kontexts der Offenbarung. Die Arbeit der gegenwärtig genannten Erfinder, sofern sie in diesem Hintergrundabschnitt beschrieben ist, sowie Aspekte der Beschreibung, die zum Zeitpunkt des Einreichens nicht anderweitig als Stand der Technik ausgewiesen sind, werden weder explizit noch implizit als Stand der Technik gegen die vorliegende Offenbarung anerkannt.
-
Ein Fahrzeug enthält mehrere Systeme, etwa ein Antriebsstrangsystem, ein Bremsensystem, ein Kraftstoffsystem usw. Jedes System enthält mehrere Hardwarekomponenten und Sicherheitsmechanismen. Ein Sicherheitsmechanismus kann ein physikalischer Sicherheitsmechanismus oder ein Stück einer Software sein, die von einem Prozessor ausgeführt wird, um als Sicherheitsmechanismus zu wirken. Ein Sicherheitsmechanismus für eine Hardwarekomponente kann eine Gegenmaßnahme durchführen, um ein Sicherheitsniveau bereitzustellen, wenn die Hardwarekomponente ausfällt.
-
Es kann gefordert sein, dass Systeme aus elektrischen Komponenten des Fahrzeugs einer oder mehrerer Anforderungen zur Integrität von Kraftfahrzeughardware entsprechen, etwa dem Standard 26262 der internationalen Standardisierungsorganisation (ISO). Nur als Beispiel kann gefordert sein, dass eine Gefährdung, die auftreten könnte, wenn ein oder mehrere Elemente eines Systems ausfallen, eine Auftretenswahrscheinlichkeit aufweist, die geringer als eine vorbestimmte Wahrscheinlichkeit ist, um dem ISO 26262-Standard zu entsprechen.
-
Die Druckschrift
DE 10 2012 205 731 A1 offenbart ein Fahrzeugsystem mit einem Kraftmaschinensteuerungsmodul, das Kraftmaschinenaktoren auf der Grundlage von Fahrereingaben an ein Lenkrad, an ein Gaspedal, an ein Bremspedal und an ein Geschwindigkeitsregelungssystem steuert, mit einem ersten Prozessormodul, das einen ersten Mikroprozessor enthält und das einen elektrischen Servolenkungsmotor, Reibungsbremsen und/oder ein Drosselklappenventil auf der Grundlage von verarbeiteten Daten selektiv betätigt, mit einem zweiten Prozessormodul, das einen zweiten Mikroprozessor enthält und das die verarbeiteten Daten auf der Grundlage von Daten von den Sensoren erzeugt, und mit einem dritten Prozessormodul, das einen dritten Mikroprozessor enthält und das eine Anzeige darüber erzeugt, ob ein Fehler im zweiten Prozessormodul vorhanden ist.
-
In der Druckschrift
US 7 920 071 B2 ist ein Augmented-Reality-System offenbart, das zur Steuerung unbemannter Fahrzeuge in einer Umgebung geeignet ist, bei dem ein Prozessorsystem Sensordaten des Fahrzeugs wie Aufenthaltsort und Statusinformationen des Fahrzeugs empfängt und grafisch aufbereitet, sodass sie einer Echtzeitansicht der Umgebung überlagert werden können.
-
Die Druckschrift US 2009 / 0 182 991 A1 offenbart einen Prozessor mit effizienter Signaturgenerierung zum Schutz vor Logikfehlern, bei dem zwei Recheneinheiten eines Prozessorkerns des Prozessors Rechenschritte zeitlich parallel durchführen und die Ergebnisse vergleichen.
-
ZUSAMMENFASSUNG
-
Ein System eines Fahrzeugs enthält ein Kraftmaschinensteuerungsmodul (ECM), ein erstes Prozessormodul, Sensoren, ein zweites Prozessormodul und ein drittes Prozessormodul. Das ECM steuert Kraftmaschinenaktoren auf der Grundlage von Fahrereingaben an ein Lenkrad, an ein Gaspedal, an ein Bremspedal und an ein Geschwindigkeitsregelungssystem. Das erste Prozessormodul enthält einen ersten Mikroprozessor und betätigt selektiv einen elektrischen Servolenkungsmotor, Reibungsbremsen und/oder ein Drosselklappenventil auf der Grundlage von verarbeiteten Daten. Die Sensoren erfassen Merkmale außerhalb des Fahrzeugs. Das zweite Prozessormodul enthält einen zweiten Mikroprozessor und erzeugt die verarbeiteten Daten auf der Grundlage von Daten von den Sensoren. Der zweite Mikroprozessor ist ein Graphik-Mikroprozessor. Das dritte Prozessormodul enthält einen dritten Mikroprozessor und erzeugt eine Anzeige darüber, ob ein Fehler im zweiten Prozessormodul vorhanden ist. Das System enthält zudem ein externes Objektberechnungsmodul, das enthält: ein viertes Prozessormodul, das einen vierten Mikroprozessor enthält und das selektiv den elektrischen Servolenkungsmotor, die Reibungsbremsen und/oder das Drosselklappenventil auf der Grundlage von zweiten verarbeiteten Daten betätigt; ein fünftes Prozessormodul, das einen fünften Mikroprozessor enthält und das die zweiten verarbeiteten Daten auf der Grundlage der Daten von den Sensoren erzeugt, wobei der fünfte Mikroprozessor der gleiche wie der Graphik-Mikroprozessor ist; und ein sechstes Prozessormodul, das einen sechsten Mikroprozessor enthält und das eine Anzeige darüber erzeugt, ob ein Fehler im fünften Prozessormodul vorhanden ist.
-
Bei anderen Merkmalen enthält der erste Mikroprozessor mindestens zwei Prozessorkerne und der zweite Mikroprozessor enthält mindestens vier Prozessorkerne.
-
Bei noch anderen Merkmalen arbeitet der zweite Mikroprozessor mit einer Geschwindigkeit von mindestens 1 Gigahertz (GHz).
-
Bei weiteren Merkmalen enthält der zweite Mikroprozessor eine Klassifizierung von mindestens 9600 DMIPS (Dhrystone-Millionen Anweisungen pro Sekunde).
-
Bei noch weiteren Merkmalen bestimmt das dritte Prozessormodul, ob der Fehler im zweiten Prozessormodul vorhanden ist, auf der Grundlage dessen, ob das zweite Prozessormodul Funktionen in einer vorbestimmten Reihenfolge aufruft.
-
Bei anderen Merkmalen bestimmt das dritte Prozessormodul, dass der Fehler im zweiten Prozessormodul vorhanden ist, wenn das zweite Prozessormodul Funktionen in einer Reihenfolge aufruft, die sich von der vorbestimmten Reihenfolge unterscheidet.
-
Bei noch anderen Merkmalen bestimmt das dritte Prozessormodul, ob der Fehler im zweiten Prozessormodul vorhanden ist, auf der Grundlage dessen, ob das zweite Prozessormodul die Ausführung einer Funktion innerhalb einer vorbestimmten Zeitspanne abschließt.
-
Bei weiteren Merkmalen bestimmt das dritte Prozessormodul, dass der Fehler im zweiten Prozessormodul vorhanden ist, wenn das zweite Prozessormodul entweder die Ausführung der Funktion in einer Zeitspanne abschließt, die größer als die vorbestimmte Zeitspanne ist, oder die Ausführung der Funktion nicht abschließt.
-
Bei noch weiteren Merkmalen gibt das dritte Prozessormodul eine Aufforderung an das zweite Prozessormodul aus und bestimmt auf der Grundlage dessen, ob das zweite Prozessormodul eine vorbestimmte Antwort auf die Aufforderung erzeugt, ob der Fehler im zweiten Prozessormodul vorhanden ist.
-
Bei anderen Merkmalen bestimmt das dritte Prozessormodul, dass der Fehler im zweiten Prozessormodul vorhanden ist, wenn das dritte Prozessormodul eine Antwort erzeugt, die sich von der vorbestimmten Antwort unterscheidet.
-
Bei noch weiteren Merkmalen enthält der zweite Mikroprozessor mindestens vier Prozessorkerne und das dritte Prozessormodul bestimmt, dass der Fehler im zweiten Prozessormodul vorhanden ist, wenn die mindestens vier Prozessorkerne nicht synchronisiert sind.
-
Bei weiteren Merkmalen erzeugt das dritte Prozessormodul eine Aufforderung, der zweite Mikroprozessor enthält mindestens vier Prozessorkerne, ein erster Prozessorkern der mindestens vier Prozessorkerne erzeugt ein erstes Ergebnis auf der Grundlage der Aufforderung, ein zweiter Prozessorkern der mindestens vier Prozessorkerne erzeugt ein zweites Ergebnis auf der Grundlage der Aufforderung, und ein dritter Prozessorkern der mindestens vier Prozessorkerne vergleicht das erste und das zweite Ergebnis. Der erste, zweite und dritte Prozessorkern sind verschiedene Kerne.
-
Bei noch weiteren Merkmalen zeigt der dritte Prozessorkern an, ob das erste und zweite Ergebnis gleich sind, und das dritte Prozessormodul bestimmt, ob der Fehler im zweiten Prozessormodul vorhanden ist, auf der Grundlage der Anzeige dessen, ob das erste und zweite Ergebnis gleich sind.
-
Bei anderen Merkmalen bestimmt das dritte Prozessormodul, dass der Fehler im zweiten Prozessormodul vorhanden ist, wenn der dritte Prozessorkern anzeigt, dass das erste und zweite Ergebnis nicht gleich sind.
-
Bei weiteren Merkmalen enthält der vierte Mikroprozessor mindestens zwei Prozessorkerne und der fünfte Mikroprozessor enthält mindestens vier Prozessorkerne.
-
Bei noch weiteren Merkmalen arbeitet der fünfte Mikroprozessor mit einer Geschwindigkeit von mindestens 1 Gigahertz (GHz).
-
Bei weiteren Merkmalen enthält der fünfte Mikroprozessor eine Klassifizierung von mindestens 9600 DMIPS (Dhrystone-Millionen Anweisungen pro Sekunde).
-
Bei noch weiteren Merkmalen verhindert das dritte Prozessormodul, wenn der Fehler im zweiten Prozessormodul vorhanden ist, dass das erste Prozessormodul den elektrischen Servolenkungsmotor, die Reibungsbremsen und das Drosselklappenventil betätigt.
-
Bei weiteren Merkmalen betätigt das vierte Prozessormodul nur in Ansprechen auf eine Anzeige, dass der Fehler im ersten Prozessormodul vorhanden ist, den elektrischen Servolenkungsmotor, die Reibungsbremsen und/oder das Drosselklappenventil auf der Grundlage der zweiten verarbeiteten Daten.
-
Weitere Anwendungsgebiete der vorliegenden Offenbarung werden sich aus der hier nachstehend bereitgestellten genauen Beschreibung ergeben. Es versteht sich, dass die genaue Beschreibung und spezielle Beispiele nur zur Veranschaulichung gedacht sind und den Umfang der Offenbarung nicht einschränken sollen.
-
Figurenliste
-
Die vorliegende Offenbarung wird anhand der genauen Beschreibung und der beiliegenden Zeichnungen besser verstanden werden, in denen:
- 1 ein Funktionsblockdiagramm eines beispielhaften Fahrzeugsystems gemäß der vorliegenden Anmeldung ist;
- 2 ein Funktionsblockdiagramm eines beispielhaften externen Objektberechnungsmoduls gemäß der vorliegenden Anmeldung ist; und
- 3 ein Funktionsblockdiagramm von beispielhaften Prozessormodulen des externen Objektberechnungsmoduls gemäß der vorliegenden Anmeldung ist.
-
GENAUE BESCHREIBUNG
-
Ein Fahrzeug kann ein oder mehrere aktive Sicherheitssysteme enthalten, die selektiv einen oder mehrere Aktoren des Fahrzeugs steuern. Aktive Sicherheitssysteme enthalten Systeme, die die Lenkung des Fahrzeugs, das Bremsen des Fahrzeugs und/oder die Beschleunigung/Verzögerung des Fahrzeugs justieren. Die Lenkung des Fahrzeugs, das Bremsen des Fahrzeugs und die Beschleunigung/Verzögerung des Fahrzeugs werden allgemein auf der Grundlage einer Eingabe von einem Fahrer gesteuert. Aktive Sicherheitssysteme sind Systeme, welche die Lenkung des Fahrzeugs, das Bremsen des Fahrzeugs und/oder die Beschleunigung/Verzögerung des Fahrzeugs selektiv justieren, um die Fahrereingabe zu ergänzen, um der Fahrereingabe entgegenzuwirken, oder die unabhängig von der Fahrereingabe sind. Aktive Sicherheitssysteme können auch als sicherheitskritische eingebettete Steuerungssysteme (SCEC-Systeme) und halbautonome Fahrsysteme bezeichnet werden.
-
Zum Beispiel kann ein Fahrzeug ein aktives Sicherheitssystem enthalten, das die Lenkung des Fahrzeugs selektiv justiert, zum Beispiel, um ein Fahrzeug in einer Spur zu positionieren (z. B. zu zentrieren), um die Spur zu wechseln, um Objekten auszuweichen und/oder aus einem oder mehreren anderen Gründen. Ein Fahrzeug kann zusätzlich oder alternativ ein aktives Sicherheitssystem enthalten, das selektiv ein Bremsen des Fahrzeugs und/oder die Beschleunigung/Verzögerung des Fahrzeugs justiert, zum Beispiel zum Vermeiden einer Kollision, zur adaptiven Geschwindigkeitsregelung, zur Vorbereitung auf einen Zusammenstoß und/oder aus einem oder mehreren anderen Gründen.
-
Ein Fahrzeughersteller entwickelt einen vorläufigen Bericht für ein Fahrzeug, bevor das Fahrzeug der Öffentlichkeit zum Kauf zur Verfügung gestellt wird. Der vorläufige Bericht kann eine Gefährdung anzeigen, die auftreten könnte, wenn ein oder mehrere Elemente eines Systems des Fahrzeugs ausfallen. Eine Klassifizierung für das System kann durch einen Kraftfahrzeughardware-Integritätsstandard definiert werden, etwa den 26262-Standard, der von der internationalen Standardisierungsorganisation (ISO) erzeugt wurde. Aktive Sicherheitssysteme können beispielsweise in das Kraftfahrzeugsicherheits-Integritätsniveau (ASIL) D des ISO 26262-Standards eingestuft sein.
-
Kraftfahrzeug-Mikroprozessoren wurden speziell entwickelt, um einer oder mehreren der ASIL-Klassifizierungen des ISO 26262-Standards zu entsprechen. Ein aktives Sicherheitssystem kann einen Kraftfahrzeug-Mikroprozessor enthalten, der die Verarbeitung für und den Betrieb des aktiven Sicherheitssystems durchführt. Für sich alleine jedoch kann der eine Kraftfahrzeug-Mikroprozessor eine oder mehrere Anforderungen der ASIL D-Klassifizierung nicht erreichen. Zudem sind Kraftfahrzeug-Mikroprozessoren kostspielig und groß und es kann komplex sein, mehrere (z.B. drei) Kraftfahrzeug-Mikroprozessoren zusammen mit der zugehörigen Funktionalität eines aktiven Sicherheitssystems entsprechend der ASIL D-Klassifizierung zu implementieren.
-
Die vorliegende Offenbarung beschreibt aktive Sicherheitssysteme, die einen Kraftfahrzeug-Mikroprozessor und mindestens einen Graphik-Mikroprozessor enthalten. Graphik-Mikroprozessoren werden typischerweise bei der Verarbeitung intensiver eingebetteter Systeme mit einer oder mehreren Anzeigen verwendet, etwa bei Smartphones, bei Tablet-Computern, bei Navigationssystemen usw. Graphik-Mikroprozessoren werden in aktiven Sicherheitssystemen aufgrund ihrer fehlenden Kompatibilität mit allen ASIL-Klassifizierungen nicht verwendet.
-
Mit Bezug nun auf 1 ist ein Funktionsblockdiagramm eines Fahrzeugsystems 100, das ein aktives Sicherheitssystem enthält, dargestellt. Ein Kraftmaschinensteuerungsmodul (ECM) 104 steuert Kraftmaschinenaktoren auf der Grundlage einer oder mehrerer Fahrereingaben 108. Die Fahrereingaben 108 können eine Gaspedalposition (APP), eine Bremspedalposition (BPP), eine Lenkradposition (auch Lenkwinkel genannt), Eingaben an eine Geschwindigkeitsregelung und andere Fahrereingaben umfassen.
-
Das ECM 104 kann beispielsweise auf der Grundlage einer oder mehrerer der Fahrereingaben 108 eine gewünschte Öffnung eines Drosselklappenventils 112 bestimmen. Ein Drosselklappenaktormodul 116 kann das Drosselklappenventil 112 auf der Grundlage der gewünschten Öffnung betätigen. Obwohl es nicht gezeigt ist, umfassen andere Kraftmaschinenaktoren Kraftstoffeinspritzventile, Zündkerzen, Abgasrückführungsventile (AGR-Ventile), Schubvorrichtungen, Ventilaktoren und/oder Phasensteller usw., sind aber nicht darauf beschränkt.
-
Das ECM 104 kann auch einen oder mehrere andere Aktoren auf der Grundlage einer oder mehrerer der Fahrereingaben 108 steuern, etwa einen Servolenkungsmotor 120 und (Reibungs-)Bremsen 124. Das ECM 104 kann beispielsweise einen gewünschten Lenkwinkel auf der Grundlage der Lenkradposition bestimmen und es kann eine gewünschte Bremskraft auf der Grundlage der BPP bestimmen. Ein Lenkungsaktormodul 128 kann den Servolenkungsmotor 120 auf der Grundlage des gewünschten Lenkwinkels betätigen. Ein Bremsenaktormodul 132 kann die Bremsen 124 auf der Grundlage der gewünschten Bremskraft betätigen.
-
Zusätzlich zu oder als eine Alternative zu den Fahrereingaben 108 kann das ECM 104 einen oder mehrere der Aktoren auf der Grundlage eines oder mehrerer Parameter steuern, die von Sensoren 136 gemessen werden. Die Sensoren 136 können beispielsweise einen Ansauglufttemperatursensor, einen Luftmassendurchsatzsensor (MAF-Sensor), einen Krümmerdrucksensor, Temperatursensoren für Öl und Kühlmittel, Raddrehzahlsensoren und verschiedene andere Sensoren für Temperatur, Position, Druck und Geschwindigkeit/Drehzahl enthalten.
-
Das ECM 104 und andere Module des Fahrzeugs können Daten über einen oder mehrere Controllerbereichsnetzwerkbusse (CAN-Busse), etwa einen CAN-Bus 140, übertragen und empfangen. Das ECM 104 und andere Module des Fahrzeugs können zusätzlich oder alternativ Daten über einen oder mehrere andere Datenbusse, etwa einen FlexRay-Bus 144, übertragen und empfangen. Der FlexRay-Bus 144 ist ein Datenbus, bei dem die Kommunikation gemäß einem FlexRay-Kommunikationsprotokoll durchgeführt wird.
-
Daten von Sensoren 148, die verwendet werden können, um Beziehungen zwischen dem Fahrzeug und Merkmalen außerhalb des Fahrzeugs zu bestimmen, können über den FlexRay-Bus 144 empfangen werden. Daten von anderen Dingen, etwa von einem globalen Positionierungssystem (GPS) 150, können ebenfalls über den FlexRay-Bus 144 oder einen anderen geeigneten Bus empfangen werden. Das GPS 150 bestimmt einen Aufenthaltsort des Fahrzeugs. Die Sensoren 148 können beispielsweise einen oder mehrere Lidar-Sensoren (Sensoren zur Lichtdetektion und Abstandsmessung), einen oder mehrere auf Radar basierende Sensoren, einen oder mehrere auf Laser basierende Sensoren, optische Sensoren, eine oder mehrere Kameras und/oder einen oder mehrere andere Sensoren umfassen, die verwendet werden können, um Beziehungen zwischen dem Fahrzeug und Merkmalen (z.B. Fahrspuren, Objekten usw.) außerhalb des Fahrzeugs (d.h. die sich außerhalb des Fahrzeugs befinden) zu bestimmen.
-
Das Fahrzeug kann ein oder mehrere aktive Sicherheitssysteme enthalten, die selektiv eine Fahrzeuglenkung, ein Bremsen des Fahrzeugs und/oder eine Beschleunigung/Verzögerung des Fahrzeugs auf der Grundlage eines oder mehrerer gemessener Parameter steuern, um die Fahrereingaben 108 zu ergänzen, um den Fahrereingaben 108 entgegenzuwirken, oder die unabhängig von den Fahrereingaben 108 sind. Ein beispielhaftes aktives Sicherheitssystem justiert selektiv die Fahrzeuglenkung mit Hilfe des Servolenkungsmotors 120, beispielsweise, um ein Fahrzeug in einer Fahrspur zu positionieren (z.B. zu zentrieren), um die Spur zu wechseln, um Objekten auszuweichen und/oder aus einem oder mehreren anderen Gründen. Ein anderes beispielhaftes aktives Sicherheitssystem justiert selektiv ein Bremsen des Fahrzeugs mit Hilfe der Bremsen 124 und/oder eine Beschleunigung/Verzögerung des Fahrzeugs mit Hilfe des Drosselklappenventils 112, beispielsweise zur Vermeidung von Zusammenstößen, zur adaptiven Geschwindigkeitsregelung, zur Vorbereitung auf einen Zusammenstoß und/oder aus einem oder mehreren anderen Gründen.
-
Ein aktives Sicherheitssystem ist ein System, welches das Drosselklappenventil 112, den Servolenkungsmotor 120 und/oder die Bremsen 124 selektiv betätigt, um die Fahrereingaben 108 zu ergänzen, um den Fahrereingaben 108 entgegenzuwirken oder das unabhängig von den Fahrereingaben 108 ist. Das beispielhafte aktive Sicherheitssystem enthält ein primäres externes Objektberechnungsmodul (EOCM) 152. Das primäre EOCM 152 (siehe auch 2) betätigt selektiv das Drosselklappenventil 112, den Servolenkungsmotor 120 und/oder die Bremsen 124, um die Fahrereingaben 108 zu ergänzen, um den Fahrereingaben 108 entgegenzuwirken oder unabhängig von den Fahrereingaben 108.
-
Das beispielhafte aktive Sicherheitssystem enthält auch ein redundantes EOCM 156. Das redundante EOCM 156 und das primäre EOCM 152 sind identisch. Im Fall, dass im primären EOCM 152 ein Fehler detektiert wird, wird die Steuerung vom primären EOCM 152 auf das redundante EOCM 156 übertragen und das redundante EOCM 156 betätigt selektiv das Drosselklappenventil 112, den Servolenkungsmotor 120 und/oder die Bremsen 124. Da das primäre und das redundante EOCM 152 und 156 identisch sind, wird nur das primäre EOCM 152 erörtert.
-
Mit Bezug nun auf 2 ist ein Funktionsblockdiagramm des primären EOCM 152 dargestellt. Das primäre EOCM 152 enthält ein erstes Prozessormodul 204, ein zweites Prozessormodul 208, ein drittes Prozessormodul 212, ein CAN-Bus-Deaktivierungsmodul 216, ein FlexRay-Bus-Deaktivierungsmodul 220, einen CAN-Sender/Empfänger 224 und einen FlexRay-Sender/Empfänger 228. 3 enthält Funktionsblockdiagramme des ersten Prozessormoduls 204, des zweiten Prozessormoduls 208 und des dritten Prozessormoduls 212.
-
Mit Bezug nun auf 2 und 3 enthält das erste Prozessormodul 204 einen Prozessor 304, einen Speicher 308, gemeinsame Ressourcen 312, eine erste serielle Paketschnittstelle (SPI) 316 und eine zweite SPI 320. Das erste Prozessormodul 204 enthält außerdem einen Can-Sender/Empfänger 324, einen FlexRay-Sender/Empfänger 328 und einen Ethernet-Sender/Empfänger 332. Der Speicher 308 kann beispielsweise einen externen Speicher mit wahlfreiem Zugriff (RAM), einen externen elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM) und/oder andere geeignete Arten von Speicher enthalten.
-
Das erste Prozessormodul 204 kann ein Kraftfahrzeug-Prozessormodul sein, etwa ein Kimodo, der von Freescale hergestellt wird. Das erste Prozessormodul 204 erfüllt jede der folgenden Minimaleigenschaften:
- Dual-core-Mikroprozessor mit 180 Megahertz (MHz);
- 900 DMIPS (Dhrystone-Millionen Anweisungen pro Sekunde);
- 1 Megabyte (MB) Flash-Speicher; und
- 0,5 MB RAM
-
Das erste Prozessormodul 204 empfängt Daten von den Sensoren 136 über den CAN-Sender/Empfänger 324. Das erste Prozessormodul 204 überträgt Daten an die CAN-Busse und empfängt Daten von den CAN-Bussen über den CAN-Sender/Empfänger 324. Das erste Prozessormodul 204 überträgt Daten an den FlexRay-Bus 144 und empfängt Daten vom FlexRay-Bus 144 über den FlexRay-Sender/Empfänger 328. Das erste Prozessormodul 204 kann Daten von einem oder mehreren der Sensoren 148 über den FlexRay-Sender/Empfänger 328 empfangen.
-
Das erste Prozessormodul 204 kann Daten von einem oder mehreren der Sensoren 148 über den Ethernet-Sender/Empfänger 332 empfangen. Das erste Prozessormodul 204 kann den Aufenthaltsort des Fahrzeugs über den CAN-Sender/Empfänger 324, den FlexRay-Sender/Empfänger 328, den Ethernet-Sender/Empfänger 332 oder auf eine andere geeignete Weise empfangen. Das erste Prozessormodul 204 überträgt Daten an das zweite Prozessormodul 208 und empfängt Daten vom zweiten Prozessormodul 208 über den Ethernet-Sender/Empfänger 332. Zum Beispiel kann das erste Prozessormodul 204 Daten, die es von Sensoren (z.B. den Sensoren 136 und/oder den Sensoren 148) und/oder von dem GPS 150 empfangen hat, über den Ethernet-Sender/Empfänger 332 an das zweite Prozessormodul 208 übertragen. Das erste Prozessormodul 204 überträgt auch über die zweite SPI 320 Daten an das zweite Prozessormodul 208 und empfängt Daten vom zweiten Prozessmodul 208. Zum Beispiel kann das erste Prozessormodul 204 Daten, die es von den Sensoren (z.B. den Sensoren 136 und/oder den Sensoren 148), und/oder dem GPS 150 empfangen hat, über die zweite SPI 320 an das zweite Prozessormodul 208 übertragen. Das erste Prozessormodul 204 überträgt Daten über die erste SPI 316 an das dritte Prozessormodul 212 und empfängt Daten vom dritten Prozessormodul 212.
-
Das zweite Prozessormodul 208 enthält einen Prozessor 340, einen Speicher 344, gemeinsame Ressourcen 348, eine SPI 352 und einen Ethernet-Sender/Empfänger 356. Der Speicher 344 kann beispielsweise RAM, Flash und/oder andere geeignete Arten von Speicher enthalten. Das zweite Prozessormodul 208 enthält einen Graphik-Mikroprozessor, etwa einen Cortex-A9, der von ARM hergestellt wird, oder einen Integra 4, der von Nvidia hergestellt wird. Das zweite Prozessormodul 208 erfüllt jede der folgenden Minimaleigenschaften:
- Quad-Core-Mikroprozessor mit 1 Gigahertz (GHz);
- 9600 DMIPS;
- 10 MB Flashspeicher und ROM;
- 0,5 Gigabyte (GB) RAM;
- einen Temperaturmonitor;
- einen Watchdog; und
- eine Uhr und einen Reset.
-
Das zweite Prozessormodul 208 ist in das aktive Sicherheitssystem leicht eingebettet. „Leicht eingebettet“ kann bedeuten, dass das zweite Prozessormodul 208 nicht in Systemen mit harten zeitlichen Anforderungen verwendet wird und eine Antwortzeit von einer Sekunde oder mehr akzeptabel ist. Im Gegensatz dazu ist das erste Prozessormodul 204 eingebettet, was bedeuten kann, dass Antwortzeiten von mehr als einer Sekunde nicht akzeptabel sind und auch Antwortzeiten, die kleiner als eine Sekunde sind, nicht akzeptabel sein können.
-
Das zweite Prozessormodul 208 kann Daten von einem oder mehreren der Sensoren 148 über den Ethernet-Sender/Empfänger 356 empfangen. Das zweite Prozessormodul 208 überträgt Daten an das erste Prozessormodul 204 und empfängt Daten vom ersten Prozessormodul 204 über den Ethernet-Sender/Empfänger 356. Auch über die SPI 352 überträgt das zweite Prozessormodul 208 Daten an das erste Prozessormodul 204 und empfängt Daten vom ersten Prozessormodul 204. Das zweite Prozessormodul überträgt Daten über die SPI 352 an das dritte Prozessormodul 212 und empfängt Daten vom dritten Prozessormodul 212.
-
Das dritte Prozessormodul 212 enthält einen Prozessor 370, einen Speicher 374, gemeinsame Ressourcen 378, eine SPI 382, einen CAN-Bus-Sender/Empfänger 386 und einen FlexRay-Sender/Empfänger 390. Über die SPI 382 überträgt das dritte Prozessormodul 212 Daten an das erste Prozessormodul 204 und empfängt Daten vom ersten Prozessormodul 204. Das dritte Prozessormodul 212 überträgt Daten auch über die SPI 382 an das zweite Prozessormodul 208 und empfängt Daten vom zweiten Prozessormodul 208.
-
Das zweite Prozessormodul 208 verarbeitet Daten von den Sensoren, etwa den Sensoren 136 und 148. Auf der Grundlage von Daten, die es von den Sensoren 148 und dem GPS 150 empfangen hat, kann das zweite Prozessormodul 208 beispielsweise die verarbeitungsintensiven Funktionen durchführen, etwa das Identifizieren von Spurlinien, das Bestimmen einer Beziehung zwischen dem Fahrzeug und den Spurlinien (z.B. die Position des Fahrzeugs zwischen den Spurlinien), das Identifizieren von Objekten, die sich außerhalb des Fahrzeugs befinden, das Bestimmen von Beziehungen zwischen dem Fahrzeug und identifizierten Objekten, das Bestimmen von Formen und Größen der Objekte, das Bestimmen eines Zielwegs des Fahrzeugs, das Bestimmen eines tatsächlichen Wegs des Fahrzeugs, das Bestimmen von Hindernissen in einem Weg des Fahrzeugs usw.
-
Das erste Prozessormodul 204 bestimmt, ob das Drosselklappenventil 112, der Servolenkungsmotor 120 und/oder die Bremsen 124 betätigt werden sollen, auf der Grundlage von Daten, die aus der Verarbeitung resultieren, die von dem zweiten Prozessormodul 208 durchgeführt wird. Wenn entschieden wird, dass das Drosselklappenventil 112, der Servolenkungsmotor 120 und/oder die Bremsen 124 betätigt werden sollen, bestimmt das erste Prozessormodul 204 das Ausmaß der Betätigung, die Rate bzw. Geschwindigkeit, mit der die Betätigung durchgeführt werden soll, die Länge (Zeitdauer) der Betätigung usw. Das erste Prozessormodul 204 gibt entsprechend Befehle an das bzw. die Aktormodule aus. Das erste Prozessormodul 204 kann Befehle an das bzw. die Aktormodule ausgeben, um gewünschte Werte, die auf der Grundlage der Fahrereingaben 108 bestimmt wurden, zu ergänzen, um gewünschten Werten, die auf der Grundlage der Fahrereingaben 108 bestimmt wurden, entgegenzuwirken, oder unabhängig von den Fahrereingaben 108. Auf diese Weise kann das erste Prozessormodul 204 ein semiautonomes Fahren bereitstellen.
-
Das dritte Prozessormodul 212 führt verschiedene Funktionen durch, um das Sicherheitsintegritätsniveau des zweiten Prozessormoduls 208 kompatibel zu dem ASIL B-Standard zu machen. Auf der Grundlage des Sicherheitsintegritätsniveaus des zweiten Prozessormoduls 208 (z.B. ASIL B) und des Sicherheitsintegritätsniveaus des ersten Prozessormoduls 204 wird das primäre EOCM 152 ein Sicherheitsintegritätsniveau von ASIL D aufweisen.
-
Beispielsweise verifiziert das dritte Prozessormodul 212, dass das zweite Prozessormodul 208 Funktionen in einer vordefinierten Reihenfolge aufruft, und es verifiziert, dass das zweite Prozessormodul 208 jede Funktion innerhalb einer vorbestimmten Zeitspanne abschließt. Das dritte Prozessormodul 212 stellt außerdem sicher, dass die Daten von den Sensoren, die gerade von dem zweiten Prozessormodul 208 verarbeitet werden, die gleichen Daten sind, die gerade von einem oder mehreren anderen Modulen verwendet werden oder verwendet werden können. Dies kann als Rahmenzählen bezeichnet werden.
-
Das dritte Prozessormodul 212 verifiziert außerdem, dass das zweite Prozessormodul 208 funktionsfähig ist. Das Verifizieren, dass das zweite Prozessormodul 208 funktionsfähig ist, kann umfassen, dass eine Aufforderung (z.B. ein „Samen“ oder ein Token) an das zweite Prozessormodul 208 gesendet und verifiziert wird, dass eine Antwort des zweiten Prozessormoduls 208, die aus der Aufforderung bestimmt wird, gleich einer erwarteten Antwort ist. Das Verifizieren, dass das zweite Prozessormodul 208 funktionsfähig ist, kann auch umfassen, dass das zweite Prozessormodul 208 aufgefordert wird, zu berichten, dass es funktionsfähig ist. Das dritte Prozessormodul 212 kann auch verifizieren, dass das erste Prozessormodul 204 funktionsfähig ist, das erste Prozessormodul 204 kann auch verifizieren, dass das dritte Prozessormodul 212 funktionsfähig ist, und/oder das zweite Prozessormodul 208 kann verifizieren, dass das dritte Prozessormodul 212 funktionsfähig ist.
-
Das dritte Prozessormodul 212 kann auch verifizieren, dass das zweite Prozessormodul 208 in Ansprechen auf eine Aufforderung vom dritten Prozessormodul 212 weniger als eine vorbestimmte Zeitspanne lang aussetzt. Das dritte Prozessormodul 212 kann auch verifizieren, dass die Prozessorkerne des zweiten Prozessormoduls 208 synchronisiert sind.
-
Das dritte Prozessormodul 212 kann auch verifizieren, dass zwei der Kerne des zweiten Prozessormoduls 208 redundante/identische Funktionen ausführen, die in separaten Blöcken des Speichers 344 gespeichert sind. Diese Verifizierung kann beispielsweise durchgeführt werden, indem Ergebnisse, die von zweien der Kerne ermittelt werden, bei einem dritten Kern verglichen werden und verifiziert wird, dass der dritte Kern berichtet, dass der Vergleich der Ergebnisse anzeigt, dass die Ergebnisse gleich sind.
-
Das dritte Prozessormodul 212 kann auch verifizieren, dass das zweite Prozessormodul 208 Anforderungen an eine serielle Datenübertragung zur Integrität serieller Daten erfüllt, die unter der ASIL B-Klassifizierung definiert sind. Das dritte Prozessormodul 212 kann verifizieren, dass Prüfsummenwerte, die auf der Grundlage von Daten berechnet werden, die in Speicherblöcken eines nichtflüchtigen Speichers (NVM) des zweiten Prozessormoduls 208 gespeichert sind, gleich erwarteten Prüfsummenwerten sind. Das dritte Prozessormodul 212 kann auch eine oder mehrere Verifizierungen durchführen, die unter der ASIL B-Klassifizierung definiert sind. Das dritte Prozessormodul 212 kann feststellen, dass ein Fehler in dem primären EOCM 152 vorhanden ist, wenn eine oder mehrere der vorstehenden nicht verifiziert werden.
-
Wenn das dritte Prozessormodul 212 einen Fehler in dem primären EOCM 152 identifiziert (z.B. in dem ersten Prozessormodul 204 oder in dem zweiten Prozessormodul 208), setzt das dritte Prozessormodul 212 erste und zweite Deaktivierungssignale 400 und 404 in einen aktiven Zustand. Wenn von dem dritten Prozessormodul 212 kein Fehler in dem primären EOCM 152 identifiziert wurde, kann das dritte Prozessormodul 212 das erste und zweite Deaktivierungssignal 400 und 404 in einen inaktiven Zustand setzen.
-
Wenn das erste Prozessormodul 204 einen Fehler in dem primären EOCM 152 identifiziert (z.B. in dem zweiten Prozessormodul 208 oder in dem dritten Prozessormodul 212), setzt das erste Prozessormodul dritte und vierte Deaktivierungssignale 408 und 412 in einen aktiven Zustand. Wenn von dem ersten Prozessormodul 204 kein Fehler in dem primären EOCM 152 identifiziert wurde, kann das erste Prozessormodul 204 das dritte und vierte Deaktivierungssignal 408 und 412 in einen inaktiven Zustand setzen.
-
Das CAN-Bus-Deaktivierungsmodul 216 deaktiviert selektiv eine Kommunikation von dem primären EOCM 152 zu dem CAN-Bus 140, wenn sich das erste Deaktivierungssignal 400 und/oder das dritte Deaktivierungssignal 408 im aktiven Zustand befindet bzw. befinden. Das CAN-Bus-Deaktivierungsmodul 216 kann beispielsweise den bzw. die CAN-Sender/Empfänger 224 deaktivieren, wenn sich das erste Deaktivierungssignal 400 und/oder das dritte Deaktivierungssignal 408 im aktiven Zustand befindet bzw. befinden. Das CAN-Bus-Deaktivierungsmodul 216 kann den bzw. die CAN-Sender/Empfänger 224 aktivieren, wenn sich sowohl das erste Deaktivierungssignal 400 als auch das dritte Deaktivierungssignal 408 im inaktiven Zustand befinden. Das CAN-Bus-Deaktivierungsmodul 216 kann den bzw. die CAN-Sender/Empfänger 224 über ein Aktivierungs-/DeaktivierungsSignal 416 aktivieren und deaktivieren.
-
Das FlexRay-Bus-Deaktivierungsmodul 220 deaktiviert eine Kommunikation von dem primären EOCM 152 an den FlexRay-Bus 144, wenn sich das zweite Deaktivierungssignal 404 und/oder das vierte Deaktivierungssignal 412 in dem aktiven Zustand befindet bzw. befinden. Das FlexRay-Bus-Deaktivierungsmodul 220 kann beispielsweise den FlexRay-Sender/Empfänger 228 deaktivieren, wenn sich das zweite Deaktivierungssignal 404 und/oder das vierte Deaktivierungssignal 412 in dem aktiven Zustand befindet bzw. befinden. Das FlexRay-Bus-Deaktivierungsmodul 220 kann den FlexRay-Sender/Empfänger 228 aktivieren, wenn sowohl das zweite Deaktivierungssignal 404 als auch das vierte Deaktivierungssignal 412 im inaktiven Zustand sind. Das FlexRay-Bus-Deaktivierungsmodul 220 kann den FlexRay-Sender/Empfänger 228 über ein Aktivierungs-/Deaktivierungs-Signal 420 aktivieren und deaktivieren.
-
Auf diese Weise wird verhindert, dass das primäre EOCM 152 den Servolenkungsmotor 120, das Drosselklappenventil 112 und/oder die Bremsen 124 betätigt. Wenn in dem primären EOCM 152 ein Fehler vorhanden ist, kann das redundante EOCM 156 die Steuerung des aktiven Sicherheitssystems übernehmen und den Servolenkungsmotor 120, das Drosselklappenventil 112 und/oder die Bremsen 124 selektiv betätigen, um die Fahrereingaben 108 zu ergänzen, um den Fahrereingaben 108 entgegenzuwirken oder unabhängig von den Fahrereingaben 108.
-
Die vorstehende Beschreibung ist nur veranschaulichend und ist keinesfalls dazu gedacht, die Offenbarung, ihre Anwendung oder Verwendungsmöglichkeiten einzuschränken. Die weit gefassten Lehren der Offenbarung können in einer Vielfalt von Formen implementiert werden. Obwohl diese Offenbarung spezielle Beispiele enthält, soll daher der tatsächliche Umfang der Offenbarung nicht auf diese begrenzt sein, da sich bei einem Studium der Zeichnungen, der Beschreibung und der folgenden Ansprüche andere Modifikationen offenbaren werden. Der Klarheit halber werden in den Zeichnungen gleiche Bezugszeichen verwendet, um ähnliche Elemente zu bezeichnen. Bei der Verwendung hierin soll der Ausdruck A, B und/oder C so aufgefasst werden, dass er ein logisches (A oder B oder C) unter Verwendung eines nicht exklusiven logischen Oder bedeutet. Es versteht sich, dass ein oder mehrere Schritte in einem Verfahren in einer anderen Reihenfolge (oder gleichzeitig) ausgeführt werden können, ohne die Prinzipien der vorliegenden Offenbarung zu verändern.
-
Der Begriff „Modul“ kann, so wie er hier verwendet wird, eine anwendungsspezifische integrierte Schaltung (ASIC), eine elektronische Schaltung, eine kombinatorische Logikschaltung, ein im Feld programmierbares Gatearray (FPGA), einen Prozessor (gemeinsam genutzt, dediziert oder Gruppe), der einen Code ausführt, andere geeignete Hardwarekomponenten, welche die beschriebene Funktionalität bereitstellen, oder eine Kombination aus einigen oder allen vorstehenden, etwa bei einem System-on-Chip, bezeichnen, ein Teil davon sein oder diese enthalten. Der Begriff Modul kann einen Speicher (gemeinsam genutzt, dediziert, oder Gruppe) enthalten, der einen Code speichert, der von dem Prozessor ausgeführt wird.
-
Der Begriff „Code“ kann, so wie er vorstehend verwendet wird, Software, Firmware und/oder Mikrocode enthalten und kann Programme, Routinen, Funktionen, Klassen und/oder Objekte bezeichnen. Der Begriff „gemeinsam genutzt“ bedeutet, so wie er vorstehend verwendet wird, dass ein Teil oder der gesamte Code von mehreren Modulen unter Verwendung eines einzigen (gemeinsamen genutzten) Prozessors ausgeführt werden kann. Zudem kann ein Teil oder der gesamte Code von mehreren Modulen von einem einzigen (gemeinsam genutzten) Speicher gespeichert werden. Der Begriff „Gruppe“ bedeutet, so wie er vorstehend verwendet wird, das sein Teil oder der gesamte Code von einem einzigen Modul unter Verwendung einer Gruppe von Prozessoren ausgeführt werden kann. Zudem kann ein Teil oder der gesamte Code von einem einzigen Modul unter Verwendung einer Gruppe von Speichern gespeichert werden.
-
Die hier beschriebenen Vorrichtungen und Verfahren können von einem oder mehreren Computerprogrammen implementiert werden, die von einem oder mehreren Prozessoren ausgeführt werden. Die Computerprogramme enthalten von einem Prozessor ausführbare Anweisungen, die in einem nicht vorübergehenden konkreten computerlesbaren Medium gespeichert sind. Die Computerprogramme können auch gespeicherte Daten enthalten. Beispiele ohne Einschränkung des nicht vorübergehenden konkreten computerlesbaren Mediums sind nichtflüchtiger Speicher, magnetischer Massenspeicher und optischer Massenspeicher.