-
Die vorliegende Erfindung betrifft ein Steuergerät für ein Kraftfahrzeug. Die vorliegende Erfindung betrifft darüber hinaus ein entsprechendes Kraftfahrzeug und ein entsprechendes Verfahren.
-
Stand der Technik
-
Der Begriff des hochautomatisierten Fahrens (highly automated driving, HAD) bezeichnet gemeinhin eine Entwicklungsstufe zwischen dem assistierten Fahren, bei welchem der Fahrer durch zahlreiche (oft getrennte) Fahrerassistenzsysteme bei der Fahraufgabe unterstützt wird, und dem autonomen Fahren, bei welchem das Fahrzeug gänzlich selbsttätig und ohne Einwirkung des Fahrers fährt. Beim hochautomatisierten Fahren verfügt das Fahrzeug gewissermaßen über eine eigene Intelligenz, die vorausplant und die Fahraufgabe zumindest in den meisten Situationen übernehmen könnte. Fahrer und Steuergeräte (electronic control units, ECUs) führen zusammen das Fahrzeug, wobei der menschliche Fahrer jederzeit bestimmt, wie stark er in das Fahrverhalten des Fahrzeuges eingreift.
-
US 2013/0145482 A1 beschreibt ein Fahrzeug, das ein oder mehrere Verarbeitungsmodule implementiert. Diese Module sind konfiguriert, um eine Verbindung zu den verschiedenen Bussen im Fahrzeug herzustellen, wobei die verschiedenen Busse mit den verschiedenen Komponenten des Fahrzeugs verbunden sind, um eine Informationsübertragung zwischen den Fahrzeugkomponenten zu erleichtern. Jedes Verarbeitungsmodul ist weiter modularisiert mit der Fähigkeit, andere Funktionsmodule jetzt oder zukünftig hinzuzufügen und zu ersetzen. Diese Funktionsmodule können selbst als eigenständige Fahrzeugkomponenten agieren. Jedes Verarbeitungsmodul kann die Verarbeitung an andere Module abhängig von seiner Gesundheit, Verarbeitungslast oder durch Fremdsteuerung übergeben. Somit hilft die Vielzahl von Verarbeitungsmodulen, einen Middleware-Steuerpunkt für das Fahrzeug mit Redundanz in der Verarbeitung und dem Sicherheits- und Sicherheitsbewusstsein in ihren Anwendungen zu implementieren.
-
US 2007/076593 A1 offenbart ein Fahrzeugsteuerungssystem mit mehreren Knoten, die mit einem Kommunikationsnetz verbunden sind, um koordinierte Vorgänge auf der Grundlage von Daten, die über das Kommunikationsnetz gesendet werden, zum Steuern des Fahrzeugs durchzuführen, wobei jeder der Knoten Folgendes umfasst: einen Knotenstatus-Bestimmungsabschnitt, der Knotenstatusdaten von anderen Knoten über das Kommunikationsnetz empfängt und Knotenstatus bestimmt, die einen oder mehrere eines Ausfallzustands und eines Nichtausfallzustands der mehreren Knoten anzeigen, einen Knotenstatus-Auswertungsergebnis-Sende-/-Empfangsabschnitt zum Senden von Knotenstatusdaten einschließlich Knotenstatus des eigenen Knotens und der anderen Knoten, die von dem Knotenstatus-Bestimmungsabschnitt bestimmt wurden, an die anderen Knoten und zum Empfangen von Knotenstatusdaten einschließlich Knotenstatus des eigenen Knotens und der anderen Knoten, die von anderen Knoten bestimmt und über das Kommunikationsnetz gesendet wurden und einen Ausfallknoten-Identifikationsabschnitt, der einen mit dem Kommunikationsnetz verbundenen ausgefallenen Knoten auf der Grundlage der Knotenstatusdaten identifiziert, die Knotenstatus des eigenen Knotens und der anderen Knoten einschließen, die von dem Knotenstatus-Bestimmungsabschnitt bestimmt und von den anderen Knoten gesendet wurden, wobei die Vorgänge in dem Knotenstatus-Bestimmungsabschnitt, dem Knotenstatus-Auswertungsergebnis-Sende-/-Empfangsabschnitt und dem Ausfallknoten-Identifikationsabschnitt synchron mit Kommunikationen zwischen dem eigenen Knoten und den anderen Knoten über das Kommunikationsnetz ausgeführt werden und der Ausfallknoten-Identifikationsabschnitt mit einer Middleware, die eine Anwendungsprogrammschnittstelle einschließt, umgesetzt wird, die das Ergebnis der Ausfallknoten-Identifikation einem Steuerungsanwendungsprogramm bereitstellt, das auf dem eigenen Knoten läuft.
-
Offenbarung der Erfindung
-
Die Erfindung stellt ein Steuergerät für ein Kraftfahrzeug sowie ein entsprechendes Kraftfahrzeug und Verfahren gemäß den unabhängigen Ansprüchen bereit.
-
Dem erfindungsgemäßen Ansatz liegt hierbei die Erkenntnis zugrunde, dass zahlreiche Fahrerassistenzsysteme für hochautomatisiertes Fahren aktuell in der Entstehungsphase sind. Die Realisierung erfordert das Beherrschen von großen Systemen. Speziell die Verteilung der Teilaufgaben auf verschiedene Steuergeräte stellt erhöhte Anforderungen bezüglich der Kommunikation zwischen den Teilaufgaben. Eine Dienste-Schicht von Zwischenanwendungen (middleware) soll hier das flexible Verteilen von Teilaufgaben ermöglichen.
-
Es wird daher ein effizienter Middleware-Ansatz vorgestellt. Basis dieses Ansatzes sind Interprozesskommunikation (inter-process communication, IPC) und gemeinsam genutzter Speicher (shared memory). Eine derart beschaffene Dienste-Schicht verzichtet auf ein unnötiges Kopieren von Daten oder Blockieren von Anwendungen und erweist sich somit als in höchstem Maße rationell.
-
Der nachfolgend erörterte Ansatz mag etwa zur Gestaltung einer Referenzplattform-Softwarearchitektur für HAD dienen und gestattet insbesondere eine Echtzeitverarbeitung großer Datenmengen von mehreren Sensoren sowie die Kommunikation des Fahrzeuges mit seiner Umgebung (Car2X) bei höchster Betriebssicherheit, Zuverlässigkeit und Absicherung gegen unbefugte Manipulation. Unterstützt werden auf diesem Wege auch moderne Mehrkern- und insbesondere Vielkern-Controller und - aufgrund deren erhöhten Leistungspotenziales - unterschiedlichste der Unterhaltungselektronik (consumer electronics, CE) entliehene Komponenten. Insgesamt erfüllt die vorgeschlagene Lösung somit höchste Anforderungen hinsichtlich Effizienz, Skalier- und Wartbarkeit, Portabilität, Datenkapselung, Standardkonformität und Austauschbarkeit beispielsweise von Software und insbesondere Firmware über die Luftschnittstelle (software over the air, SOTA; firmware over the air, FOTA).
-
Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im unabhängigen Anspruch angegebenen Grundgedankens möglich. So kann vorgesehen sein, dass Steuergerät und Betriebssystem zwischen den Anwendungen eine Separation dergestalt vornehmen, dass bestimmte Anwendungen nicht zu einem Zugriff auf den gemeinsam nutzbaren Speicher berechtigt sind. Besonders vorteilhaft ist dabei, dass die Lösung eine flexible Methode zur Separation enthält. Dabei wird die Effizienz der Realisierung weitgehend erhalten.
-
Gemäß einem weiteren Aspekt kann vorgesehen sein, dass das Steuergerät ferner eine Speicherverwaltungseinheit (memory management unit, MMU) umfasst, um die Separation vorzunehmen. Eine Trennung unterschiedlicher Speicherbereiche lässt sich somit vorteilhaft in entsprechender Hardware abbilden.
-
Gemäß einem weiteren Aspekt kann vorgesehen sein, dass die Anwendungen über eine Zwischenanwendungsschnittstelle auf die Zwischenanwendungen zugreifen, die sich ihrerseits über standardisierte Schnittstellen auf Betriebssystem, Datenverbindungen, Steuergerätabstraktionsschicht, Mikrocontrollerabstraktionsschicht, komplexe Treiber oder sonstige Dienste der Basissoftware zugreifen. Der Datenverkehr wird auf diese Weise vollständig durch die Dienste-Schicht abstrahiert. Selbst eine Verteilung von Anwendungen auf unterschiedliche Steuergeräte wird so möglich, sofern Latenz und Dienstgüte gewährleistet werden können.
-
Gemäß einem weiteren Aspekt schließlich kann ein POSIX-konformes Betriebssystem wie QNX für das Steuergerät vorgesehen sein. Im letzteren Fall mag die besagte Separation zwischen einzelnen Anwendungen durch adaptive Partitionierung (AP) der Anwendungssoftware erfolgen. Ein entsprechender Scheduler ermöglicht es dem Entwerfer des Echtzeitsystems festzulegen, dass ein gewisser Anteil von Verarbeitungsressourcen für eine bestimmte Partition - also Gruppe von Aktivitätsträgern bzw. Ausführungssträngen (threads) oder Prozessen, die ein Subsystem bilden - reserviert ist.
-
Figurenliste
-
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:
- 1 einen zwischenanwendungsorientierten Ansatz gemäß der vorgeschlagenen Lösungsstrategie.
- 2 den Datenverkehr zwischen Steuergeräten mittels einer erfindungsgemäßen Dienste-Schicht.
- 3 den steuergerätinternen Datenverkehr mittels der erfindungsgemäßen Dienste-Schicht.
- 4 eine Lösungsstrategie zur Verwendung gemeinsam genutzten Speichers im Rahmen eines effizienten Zwischenanwendungsansatzes zur Interprozesskommunikation.
- 5 Grundlagen der Separation.
- 6 die Wirkung der Separation im Zusammenhang mit Zwischenanwendungen.
- 7 eine Lösungsstrategie zur Interprozesskommunikation unter Beibehaltung der Trennung von Bereichen mit unterschiedlichen Sicherheitsanforderungen.
- 8 die Interprozesskommunikation über gemeinsam genutzten Speicher unter Beibehaltung der Trennung von Bereichen mit unterschiedlichen Sicherheitsanforderungen.
-
Ausführungsformen der Erfindung
-
1 illustriert einen zwischenanwendungsorientierten Ansatz gemäß der vorgeschlagenen Lösungsstrategie. Anwendungen (11) bedienen sich hier der Anwendungsprogrammierschnittstelle (application programming interface, API) besonderer Zwischenanwendungen (12). Datenverkehr wird dabei ausschließlich über die Zwischenanwendungen (12) abgewickelt, was Portabilität, Skalier- und Wiederverwendbarkeit, Datenkapselung usw. ermöglicht. Ein derartiger Ansatz ließe sich beispielsweise im Rahmen einer zukünftig zu definierenden anpassungsfähigen und offenen Fahrzeugsystemarchitektur (automotive open system architecture, AUTOSAR) verfolgen.
-
2 veranschaulicht den Datenverkehr zwischen Steuergeräten mittels einer erfindungsgemäßen Dienste-Schicht. Jedes Steuergerät (10) betreibt hierbei neben der AUTOSAR-Basissoftware (15) die spezifische HAD-Anwendungssoftware (14). Die Basissoftware (15) umfasst erfindungsgemäß auch die Zwischenanwendungen (12) der Dienste-Schicht, während die Anwendungssoftware (14) die einzelnen Anwendungen (11) im engeren Sinne umfasst. Wie die Anwendungen (11) über eine Zwischenanwendungsschnittstelle (13) auf die Zwischenanwendungen (12) zugreifen, so greifen letztere ihrerseits über standardisierte Schnittstellen (16) auf Betriebssystem (17), Datenverbindung (18), Steuergerätabstraktionsschicht (19), Mikrocontrollerabstraktionsschicht (20), komplexe Treiber (21) oder sonstige Dienste der Basissoftware (15) zu.
-
3 zeigt in entsprechender Darstellung den Datenverkehr mittels der erfindungsgemäßen Dienste-Schicht innerhalb eines einzelnen Steuergerätes (10). Eine derart effiziente steuergerätinterne Interprozesskommunikation (29) wird durch ausgewählte Elemente beispielsweise im Rahmen von AUTOSAR in Kombination mit einer geeigneten API für gemeinsam genutzten Speicher (23) ermöglicht und stellt eine Schlüsselfähigkeit eingebetteter HAD-Systeme dar.
-
4 beleuchtet eine Lösungsstrategie zur Verwendung gemeinsam genutzten Speichers (23) im Rahmen des diskutierten Ansatzes. Das Steuergerät (10) umfasst solch einen durch verschiedene Anwendungen (11) und Zwischenanwendungen (12) gemeinsam nutzbaren Speicher (23), über welchen eine der Zwischenanwendungen (31) die Interprozesskommunikation (29) zwischen den Anwendungen A und B abwickelt. Letztere unterliegen in diesem Fall den gleichen Sicherheitsanforderungen, die durch eine gemeinsame Sicherheitsanforderungsstufe (automotive safety integrity level, ASIL) mit der Bezeichnung A, B, C, D oder QM festgelegt werden. (Diese gegebene Sicherheitsanforderungsstufe trägt im Folgenden stellvertretend das Bezugszeichen X.)
-
Die Grundlagen der Separation (25) seien nunmehr anhand der 5 erläutert. POSIX-konforme Betriebssysteme wie QNX erlauben eine solche Trennung von Anwendungen (11) auf Prozessebene, die somit voraussichtlich auch im Rahmen einer künftigen, anpassungsfähigen AUTOSAR-Implementierung umgesetzt werden kann. (Dies gilt natürlich auch für nicht POSIX-konforme Systeme, die entsprechende Mechanismen enthalten.) Das Steuergerät (10) umfasst zu diesem Zweck eine - als solche nicht abgebildete - Speicherverwaltungseinheit. Bei Verwendung eines entsprechenden Betriebssystems (17) wie QNX unterstützt dessen Mikrokern zur Laufzeit die Separation (25) durch eine adaptive Partitionierung der Anwendungssoftware (14). Einzelne Ausführungsstränge (24) innerhalb eines Prozesses lassen sich auf diesem Wege nicht ohne Weiteres trennen.
-
Es sei bemerkt, dass das exemplarisch angeführte QNX lediglich eines von zahlreichen denkbaren Ziel-Betriebssystemen darstellt. Die beschriebenen Mechanismen sind gleichwohl auch im Umfeld anderweitiger Betriebssysteme denkbar. Sogar ein Ansatz mit Hypervisor kann von einer erfindungsgemäßen Ausgestaltung profitieren.
-
Die Funktion der erfindungsgemäßen Zwischenanwendungen (12) in diesem Zusammenhang erschließt sich aus 6. Betrachtet man den durch die gegebene Sicherheitsanforderungsstufe (X) definierten Bereich, so kann die Separation (25) innerhalb dieses Bereiches durch den Entwicklungsprozess der Software und insbesondere eine stringente Schichtenbildung erzwungen werden. Wo dies nicht möglich ist - etwa in der bereichsübergreifenden Kommunikation mit Anwendungen (11) auf geringerer Sicherheitsanforderungsstufe (Y) - sind ausdrückliche Mechanismen erforderlich.
-
7 illustriert einen solchen Mechanismus zur Interprozesskommunikation (29) unter Beibehaltung der Trennung von Bereichen mit unterschiedlichen Sicherheitsanforderungen. Während eine erste Zwischenanwendung (31) auf der besagten Sicherheitsanforderungsstufe (X) operiert, greifen einige Anwendungen (11) auf eine zweite Zwischenanwendung geringerer Sicherheitsanforderungsstufe (Y) zu. Diejenigen Anwendungen (11), welche sowohl auf die erste Zwischenanwendung (31) als auch auf die zweite Zwischenanwendung (32) zugreifen, dienen dabei zugleich als Sicherheitsbegrenzer (26) zwischen den Sicherheitsanforderungsstufen (X, Y).
-
Die Funktion des gemeinsam nutzbaren Speichers (23) in dieser Konstellation veranschaulicht 8: Im Gegensatz zur privilegierten Anwendung A ist die nichtprivilegierte Anwendung C in diesem Szenario nicht zu einem Zugriff auf den gemeinsam nutzbaren Speicher (23) berechtigt (28). Die auf höchster Sicherheitsstufe betriebene und entsprechend privilegierte Anwendung A fungiert zudem als Sicherheitsbegrenzer (27) beim bereichsübergreifenden Zugriff auf den Speicher (23) mittels der zweiten Zwischenanwendung (32).
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 2013/0145482 A1 [0003]
- US 2007076593 A1 [0004]