-
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Konfiguration eines Steuergeräts eines Fahrzeugs. Auch wird ein Fahrzeug mit mindestens einem derartigen Steuergerät vorgeschlagen.
-
Ein OSEK-OS ist ein Betriebssystem gemäß einer von dem OSEK-Konsortium verabschiedeten Spezifikation betreffend Echtzeitbetriebssysteme für eingebettete Systeme. Übliche Zielplattformen sind 16- und 32-Bit-Mikrocontroller für die Automobilindustrie. Das OSEK-OS ist statisch. Alle Betriebsmittel und Tasks werden vor dem Erstellen für genau die gewollte Anwendung definiert und konfiguriert. Das Betriebssystem wird mit der Anwendung zusammen kompiliert und gelinkt. Das System ist skalierbar und z. B. auf 8- bis 32-Bit-Mikroprozessoren nutzbar.
-
AUTomotive Open System ARchitecture (AUTOSAR) ist ein internationaler Verbund mit dem Ziel, einen offenen Standard für Software-Architekturen in Kraftfahrzeugen zu etablieren.
-
Ein Steuergerät, z. B. ein zentrales Gateway-Modul (ZGW), das in einem Fahrzeug eingesetzt wird, verfügt über ein statisches Betriebssystem, z. B. das genannte OSEK-OS. Der Speicherverbrauch und das Speicherlayout derartiger Steuergeräte wird statisch konfiguriert. Hierbei ist es von Nachteil, dass gleiche Applikationen bzw. Teile von Applikationen, die in unterschiedlichen Betriebsmodi eingesetzt werden, mehrfach in dem Speicher des Steuergeräts abgelegt sind. Dies führt zu einem hohen Speicherbedarf.
-
Die Aufgabe der Erfindung besteht darin, die vorstehend genannten Nachteile zu vermeiden und insbesondere eine Lösung anzugeben, anhand derer der Speicher eines Steuergeräts effizienter genutzt werden kann.
-
Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Patentansprüche gelöst. Weiterbildungen der Erfindung ergeben sich auch aus den abhängigen Ansprüchen.
-
Zur Lösung der Aufgabe wird ein Verfahren zur Konfiguration eines Steuergeräts eines Fahrzeugs vorgeschlagen,
- – bei dem Applikationen in einem Speicher des Steuergeräts abgespeichert sind,
- – bei dem das Steuergerät abhängig von einem Betriebsmodus konfiguriert wird, wobei anhand des Betriebsmodus die Applikationen geladen werden.
-
Hierbei sei angemerkt, dass die Applikation auch als ein Softwaremodul bezeichnet sein kann.
-
Der hier vorgeschlagene Ansatz hat den Vorteil, dass die Applikation nur einmal in dem Speicher des Steuergeräts abgespeichert sein muss und flexibel für unterschiedliche Betriebsmodi nutzbar ist.
-
Eine Weiterbildung ist es, dass anhand des Betriebsmodus eine Parametrierung der jeweiligen Applikation durchgeführt wird.
-
Somit kann mindestens ein Parameter der Applikation dynamisch vorgegeben werden. Beispielsweise kann es sich hierbei um einen der Applikation zugewiesenen Arbeitsspeicher handeln.
-
Durch die Parametrierung der Applikation kann eine flexible Nutzung der Applikation in Abhängigkeit von dem jeweiligen Betriebsmodus erreicht werden.
-
Eine andere Weiterbildung ist es, dass die Applikation ein ablauffähiges Softwaremodul ist.
-
Insbesondere handelt es sich bei der Applikation um ein bereits kompiliertes, ablauffähiges Softwaremodul. Somit kann das Betriebssystem des Steuergeräts dynamisch mittels statischer Softwaremodule konfiguriert werden. Durch die Parametrierung der Applikationen (Softwaremodule) wird abhängig von dem jeweiligen Betriebsmodus z. B. eine flexible Speicherzuweisung (betreffend einen Arbeitsspeicher, der der Applikation zur Laufzeit zur Verfügung steht) ermöglicht.
-
Insbesondere ist es eine Weiterbildung, dass der Betriebsmodus ein Bootloader-Modus ist, anhand dessen das Steuergerät programmierbar ist.
-
Auch ist es eine Weiterbildung, dass in dem Bootloader-Modus die Applikationen zumindest teilweise in einen anderen Speicherbereich umkopiert werden.
-
Ferner ist es eine Weiterbildung, dass in dem Bootloader-Modus der Speicher der Applikationen zumindest teilweise überschrieben wird.
-
Der Speicher, in dem die Applikationen (vor dem Umkopieren) abgespeichert sind, wird mit modifizierten Applikationen überschrieben. Somit kann effizient eine Aktualisierung der Applikationen und damit eine Programmierung des Steuergeräts durchgeführt werden.
-
Im Rahmen einer zusätzlichen Weiterbildung ist der Betriebsmodus ein Werkstattmodus zur Programmierung von mindestens einem an das Steuergerät angeschlossenen weiteren Steuergerät.
-
Somit ist es möglich, dass über das Steuergerät zentral alle Steuergeräte des Fahrzeugs programmiert werden.
-
Eine nächste Weiterbildung besteht darin, dass der Betriebsmodus ein normaler Fahrbetriebsmodus ist.
-
Eine Ausgestaltung ist es, dass das Steuergerät ein zentrales Steuergerät, insbesondere ein zentrales Gateway-Modul, ist.
-
Eine alternative Ausführungsform besteht darin, dass das Steuergerät ein Steuergerät in einem Fahrzeug ist.
-
Die oben genannte Aufgabe wird auch gelöst mittels einer Vorrichtung umfassend eine Verarbeitungseinheit, die derart eingerichtet ist, dass das hierin beschriebene Verfahren ausführbar ist.
-
Die Verarbeitungseinheit kann z. B. eine analoge oder digitale Verarbeitungseinheit sein, sie kann als ein Prozessor und/oder eine zumindest teilweise festverdrahtete Schaltungsanordnung ausgeführt sein, die derart eingerichtet ist, dass das Verfahren wie hierin beschrieben durchführbar ist.
-
Der Prozessor kann jede Art von Prozessor oder Rechner oder Computer mit entsprechend notwendiger Peripherie (Speicher, Input/Output-Schnittstellen, Ein-Ausgabe-Geräte, etc.) sein oder einen solchen umfassen. Weiterhin kann eine festverdrahtete Schaltungseinheit, z. B. ein FPGA oder ein ASIC oder eine sonstige integrierte Schaltung, vorgesehen sein.
-
Eine nächste Ausgestaltung ist es, dass die Vorrichtung ein Steuergerät oder Teil eines Steuergeräts eines Fahrzeugs ist.
-
Auch wird die oben genannte Aufgabe gelöst mittels eines Fahrzeugs umfassend mindestens eine der hierin beschriebenen Vorrichtungen.
-
Ausführungsbeispiele der Erfindung werden nachfolgend anhand der Zeichnungen dargestellt und erläutert.
-
Es zeigen:
-
1 schematisch einen Speicherbereich mit mehreren Softwaremodulen, wobei abhängig von einem Betriebsmodus einem LifeCycle-Manager (LCM) mitgeteilt werden kann, welche Softwaremodule konfiguriert werden sollen;
-
2 symbolisch einen Speicher des zentralen Gateway-Moduls (ZGW) umfassend einen Speicherbereich, in dem der LCM codiert ist, einen Speicher für Applikationen bzw. Softwaremodule sowie einen Speicher als Arbeitsspeicher für die Softwaremodule;
-
3 ein Blockdiagramm zur Visualisierung der Schritte eines Verfahrens zur effizienten Nutzung eines in einem (zentralen) Steuergerät vorhandenen Speichers.
-
Es wird vorgeschlagen, dass ein Steuergerät über mehrere Betriebsmodi verfügt, wobei ein jeweiliger Betriebsmodus bestimmte Module, insbesondere Softwaremodule, umfasst und die Module von unterschiedlichen Betriebsmodi genutzt werden können. Dies ist insbesondere auch deshalb möglich, weil die Betriebsmodi nicht gleichzeitig zur Anwendung kommen und sich üblicherweise gegenseitig ausschließen.
-
Somit kann die Funktion des Steuergeräts bei deutlich reduziertem Speicherbedarf (RAM und/oder ROM) sichergestellt werden.
-
In einem Fahrzeug ist ein Steuergerät, z. B. ein zentrales Gateway (ZGW), vorgesehen, das mit einer Vielzahl von Steuergeräten verbunden ist. Das ZGW verfügt über mehrere Softwaremodule, z. B.:
- – Treiber für unterschiedliche Bussysteme, z. B. CAN, MOST, Flexray;
- – eine TCP/IP Implementierung (Protokoll-Stapel);
- – ein universelles Gatewaymodul (UGW), das eine Routingfunktionalität bereitstellt;
- – ein Diagnosemodul betreffend die Funktion des ZGW, in dem insbesondere Anfragen implementiert sind, die ein externer Tester (z. B. eine Werkstatt) an dem ZGW aufrufen kann;
- – ein Fahrzeugzustands-Management (FZM), das insbesondere momentane Zustände des Fahrzeugs verwaltet (z. B. Zustand der Zündung (an/aus), Fahrzeug steht, Fahrzeug fährt, etc.);
- – ein diagnostisches Fehlermanagement (Diagnostic Error Management, DEM) umfassend z. B. einen Fehlerspeicher des ZGW;
- – einen Fahrzeugkonfigurationsmanager (Vehicle Configuration Manager, VCM), der eine Fahrzeugkonfiguration verwaltet (so ist mittels des VCM eine Information betreffend verbauter Sonderausstattungen verfügbar);
- – ein Master-Security Modul (MSM), das Sicherheitsfunktionen bereitstellt, z. B. Signaturprüfung, Verschlüsselung, Entschlüsselung, Signierung, etc.
-
Hierbei sei angemerkt, dass die vorliegenden Ausführungen für jedes Steuergerät eines Fahrzeugs anwendbar sind.
-
Der hier vorgeschlagene Ansatz ermöglicht es, dass ein statisches Betriebssystem dynamisch belegt wird.
-
Ein sogenannter LifeCycle kennzeichnet insbesondere eine Steuerung des Hochfahrens und/oder Herunterfahrens der Softwaremodule des ZGW. Ein dynamischer LifeCycle ermöglicht unterschiedliche Konfigurationen von Softwaremodulen für das ZGW, insbesondere ohne dass hierfür eine RESET des ZGW nötig ist.
-
Insbesondere wird vorgeschlagen, dass das ZGW einen LifeCycle-Manager (LCM, implementiert z. B. als Software insbesondere in Form einer aufrufbaren Funktion oder Methode) aufweist. Dem LCM kann ein Betriebsmodus des ZGW mitgeteilt werden; abhängig von dem Betriebsmodus erfolgt eine Konfiguration der Softwaremodule des ZGW.
-
Beispielsweise können die folgenden Betriebsmodi konfiguriert werden:
- a) Bootloader-Modus: Dieser Betriebsmodus wird zur Programmierung des ZGW gewählt. Hierzu wird z. B. zumindest ein Teil der Softwaremodule des ZGW verändert oder überschrieben mittels eines angeschlossenen Rechners. Die zur Programmierung benötigte Funktion des ZGW stellt der Bootloader-Modus bereit (z. B. Schnittstellentreiber zu dem angeschlossenen Rechner, etc.).
- b) Werkstatt-Modus: Dieser Betriebsmodus wird gewählt, um Steuergeräte des Fahrzeugs zu programmieren. Eine solche Programmierung erfolgt von einem angeschlossenen Rechner über das ZGW.
- c) Normalbetrieb: Dieser Betriebsmodus wird gewählt, um die Steuergeräte in ihrer ”normalen” Funktion zu aktivieren zum Betrieb bzw. zur Steuerung (von Teilen) des Fahrzeug. In diesem Betriebsmodus ist das Fahrzeug fahrbereit.
-
Entsprechend sind weitere Betriebsmodi möglich.
-
Über die Wahl des Betriebsmodus kann der LCM mittels verfügbarer Softwaremodule des ZGW das ZGW konfigurieren. Vorzugsweise wird dem LCM zusätzlich zu dem Betriebsmodus noch mindestens ein Parameter betreffend mindestens ein zu konfigurierendes Softwaremodul übergeben.
-
1 zeigt schematisch einen Speicherbereich 101 mit mehreren Softwaremodulen 102 bis 113. Abhängig von dem Betriebsmodus kann dem LCM mitgeteilt werden, welche Softwaremodule konfiguriert werden sollen. Dabei kann pro Softwaremodul mindestens ein Parameter übergeben werden, so dass abhängig von diesem Parameter das jeweilige Softwaremodul konfiguriert wird. In 1 ist ein Betriebsmodus 114 gezeigt, der die Softwaremodule 105, 108 und 111 umfasst. Ein alternativer Betriebsmodus 115 umfasst die Softwaremodule 105, 106, 107 und 110. Die von mehreren Betriebsmodi 114, 115 genutzten Softwaremodule (hier beispielhaft Softwaremodul 105) müssen nicht zweimal in dem Speicher vorhanden sein, sondern können abhängig von dem Betriebsmodus mehrfach genutzt werden.
-
Beispielsweise kann der LCM wie folgt aufgerufen werden:
LCM (114) bzw.
LCM (115)
-
Gemäß dem Beispiel aus 1 wird somit dem LCM der Betriebsmodus 114 übergeben. Mit dem Betriebsmodus 114 kann der LCM z. B. anhand einer abgespeicherten Liste feststellen, dass die Softwaremodule 105, 108 und 111 hochgefahren werden müssen. Insbesondere kann der LCM feststellen, mit welchen Parametern diese Softwaremodule zu initiieren sind, d. h. dem Softwaremodul 105 kann z. B. für den Betriebsmodus 114 ein Arbeitsspeicher von 20 kByte und für den Betriebsmodus 115 ein Arbeitsspeicher von 40 kByte zugewiesen werden. Somit kann die Information, welche Softwaremodule mit welchen Parametern (z. B. benötigter Arbeitsspeicher) zu konfigurieren sind, für den LCM anhand des Betriebsmodus eindeutig, z. B. mittels einer abgespeicherten Liste, ermittelbar sein.
-
Hierbei ist es von Vorteil, dass mehrfach benötigte Softwaremodule in dem Speicher des ZGW nur einmal vorhanden sein müssen.
-
Alternativ kann dem LCM anstatt des Betriebsmodus auch eine Liste mit zu ladenden Softwaremodulen und deren Parametern übergeben werden. In diesem Fall könnte die vorabgespeicherte Liste entfallen, die abhängig von dem Betriebsmodus eine Zuordnung zu den benötigten Softwaremodulen mit deren Parametern erlaubt.
-
Beispielsweise kann der Speicher 101 als ein Flashspeicher ausgeführt sein, so dass die Softwaremodule aktualisiert bzw. geändert werden können. Dies kann in dem Bootloader-Modus erfolgen, der eine Programmierung des ZGW ermöglicht.
-
Die Betriebsmodi können so organisiert sein, dass z. B. ein Basis-Betriebsmodus alle notwendigen Softwaremodule umfasst und aufbauend auf diesem Basis-Betriebsmodus ergänzend – abhängig vom jeweils gewählten Betriebsmodus – weitere Softwaremodule konfiguriert bzw. geladen werden. Beispielsweise kann der Basis-Betriebsmodus einer Minimalkonfiguration entsprechen, die der LCM bei jeder Konfiguration aktiviert, d. h. der LCM lädt bzw. konfiguriert die in der Basis-Konfiguration enthaltenen Softwaremodule.
-
2 zeigt symbolisch einen Speicher 201 des ZGW umfassend einen Speicherbereich 202, in dem der LCM (ggf. mit der vorstehend beschriebenen Liste) codiert ist, den Speicher 101 für Applikationen bzw. Softwaremodule (siehe 1) sowie einen Speicher 203 als Arbeitsspeicher für die Softwaremodule.
-
3 zeigt ein Blockdiagramm zur Visualisierung der Schritte eines Verfahrens zur effizienten Nutzung eines in einem (zentralen) Steuergerät vorhandenen Speichers. In einem Schritt 301 ist angedeutet, dass Applikationen und/oder Funktionen in Softwaremodulen abgelegt bzw. in solchen (als ablauffähiger Code) codiert sind. In einem Schritt 302 werden abhängig von einem Betriebsmodus Softwaremodule in das (zentrale) Steuergerät, z. B. ZGW, geladen und konfiguriert. Diese Konfiguration kann dabei eine entsprechende Parametrierung des jeweiligen Softwaremoduls umfassen. Demnach kann das Softwaremodul eine parameterabhängige Zuweisung eines Arbeitsspeichers erhalten. Somit ist es möglich, dass das Softwaremodul abhängig von dem Betriebsmodus mit unterschiedlicher Parametrierung, z. B. mit unterschiedlichem Arbeitsspeicher, konfiguriert wird.
-
Vorzugsweise wird also nur das Softwaremodul initialisiert, das von dem aktuellen Betriebsmodus benötigt wird. Nicht benötigte Softwaremodule werden nicht initialisiert und benötigen in diesem Betriebsmodus keinen Arbeitsspeicher. Ein gemäß Betriebsmodus erforderliches Softwaremodul wird initialisiert, indem z. B. variable Objekte für das Softwaremodul (Listen, Warteschlangen, etc.) angelegt werden. Hierzu wird der bereits ablauffähige Programmcode des Softwaremoduls abgearbeitet und die ggf. vorhandene Parametrierung (z. B. Größe des für dieses Softwaremodul bereitgestellten Speichers) berücksichtigt. Ergänzend sei angemerkt, dass die hier beschriebene Parametrierung optional ist und eine Initialisierung auch unabhängig von solch einer Parametrierung erfolgen kann (z. B. vorgegebener Wert für die Größe des benötigten Speichers). Auch ist es möglich, dass ein vorgegebener Wert des Softwaremoduls verwendet wird, sofern keine gesonderte Parametrierung erfolgt. Wird eine Parametrierung durchgeführt, kann z. B. der vorgegebene Wert durch den parametrierten Wert ersetzt werden.
-
Optional kann in einem Schritt 303 das Steuergerät zumindest teilweise geändert (programmiert oder rekonfiguriert) werden, insbesondere wird hierzu ein Betriebsmodus ”Bootloader-Modus” gewählt. In diesem Bootloader-Modus werden von dem LCM diejenigen Softwaremodule geladen, die zur Programmierung des Steuergeräts erforderlich sind. Vorzugsweise werden dabei diese Softwaremodule zumindest teilweise in einen Speicherbereich kopiert (oder verschoben), der von dem Speicherbereich der Softwaremodule verschieden ist. Im Beispiel gemäß 2 können also die Softwaremodule in den Speicher 203 kopiert werden und dort die Funktionen des Steuergeräts im Bootloader-Modus (z. B. Kommunikationsfunktion mit einem Programmierrechner) wahrnehmen. Nun kann der Speicherbereich der Softwaremodule neu beschrieben (”geflashed”) werden; somit werden in den Speicher 101 geänderte Softwaremodule geschrieben. Die Softwaremodule des noch funktionierenden Bootloader-Modus werden anschließend heruntergefahren und das Steuergerät kann in einem beliebigen Betriebsmodus unter Berücksichtigung der neuen Programmierung konfiguriert werden.
-
Hierbei sei angemerkt, dass dieses Prinzip auch zum teilweisen Überschreiben des Speichers 101 der Softwaremodule eingesetzt werden kann. In diesem Fall ist zu gewährleisten, dass die Softwaremodule des aktuellen Bootloader-Modus in einem Bereich abgelegt sind, der nicht überschrieben wird.