-
Die
Erfindung betrifft ein Verfahren zum Konfigurieren einer Software
für ein
Steuergerät,
insbesondere ein Kfz-Steuergerät, gemäß dem Oberbegriff
des Patentanspruchs 1, sowie eine entsprechende Vorrichtung gemäß dem Oberbegriff
des Patentanspruchs 7.
-
Moderne
Software wird vielfach nach dem "Single-Source"-Prinzip programmiert. D.h. es wird eine
universelle Software programmiert, die mehrere anwendungsspezifische
Teile umfasst und eine Art Obermenge darstellt, aus der die für den jeweiligen Anwendungsfall
passende Untermenge ausgewählt wird.
Für verschiedene
Ausführungsformen
eines Gegenstands, wie z.B. eines Fahrzeugs, werden somit nicht
separate Programme entwickelt, sondern es wird eine einzige Software
programmiert, aus der dann die gewünschten Teile ausgewählt werden. Dies
wird im Folgenden anhand eines Beispiels aus dem Automobilbereich
näher erläutert:
Kraftfahrzeuge
lassen sich bezüglich
ihrer Antriebsart grundsätzlich
in drei verschiedene Gruppen unterteilen, nämlich Fahrzeuge mit Vorderradantrieb,
Hinterantrieb oder Allradantrieb. Unterschiedliche Antriebsarten
bedingen dabei naturgemäß auch unterschiedliche
fahrdynamische Eigenschaften der Fahrzeuge. Eine im Fahrzeug enthaltene
Fahrdynamikregelung (Software) muss daher jeweils für die vorliegende
Antriebsart des Fahrzeugs ausgelegt sein. Gemäß dem "Single-Source"-Prinzip wird üblicherweise eine einzige Regelungssoftware
entwickelt, die sämtliche
Antriebsarten umfasst.
-
Diese
Regelungssoftware ist i.A. sehr umfangreich und würde daher
relativ viel Speicherplatz und Rechenzeit im FDR-Steuergerät (FDR: Fahrdynamikregelung)
benötigen.
Um nicht die komplette Regelungssoftware kompilieren und im FDR-Steuergerät ablegen
zu müssen,
ist es bekannt, die für
den Anwendungsfall (Vorder-, Hinter- oder Allradantrieb) benötigten Softwareteile
mittels eines Funktionsschalters auszuwählen und nur diese Untermenge
zu kompilieren.
-
1 zeigt eine schematische
Darstellung eines Systems zum Konfigurieren einer FDR-Software für ein Kfz-Steuergerät. Das System
umfasst einen Wählschalter 1 mit
insgesamt drei Stellungen (FWD, RWD bzw. AWD), an dem die Antriebsart
des Fahrzeugs ausgewählt
werden kann. Ein mit dem Wählschalter 1 verbundener
Precompiler 2 erkennt die Auswahl und wählt den zugehörigen Softwareteil
aus der universellen Gesamtsoftware 5 aus. Diese Softwareteile
(z.B. für
den Vorderradantrieb) werden dann von einem Compiler 3 kompiliert,
gelinkt und es entsteht der ausführbare
Code 4, der im Kfz-Steuergerät ECU gespeichert und ausgeführt werden
kann. Die übrigen
Softwareteile RWD (Hinterradantrieb) bzw. AWD (Allradantrieb) der
Gesamtsoftware 5 werden dagegen nicht kompiliert. Die auf
diese Weise konfigurierte Steuergerätesoftware 5 enthält somit nur
denjenigen Teil der Fahrdynamikregelung für den Vorderradantrieb (FWD).
-
Gerade
in den letzten Jahren werden immer häufiger Fahrzeuge angeboten,
die gleichzeitig mit zwei unterschiedlichen Antriebsarten ausgestattet sind.
Bei solchen Fahrzeugen kann z.B. über einen Knopf 9 im
Fahrzeug zwischen Allrad- und Heckantrieb oder Allrad- und Frontantrieb
umgeschaltet werden. Mit einem Konfigurationssystem gemäß 1 kann die Steuergerätesoftware 5 jedoch
nur für
eine Antriebsart konfiguriert werden.
-
Es
ist daher die Aufgabe der vorliegenden Erfindung, ein Verfahren
zum Konfigurieren einer universellen Software zu entwickeln, bei
dem ein oder mehrere Ausprägungen
(z.B. Heck- und/oder
Allradantrieb) eines Konfigurationsmerkmals (z.B. Antriebsart) ausgewählt und
die zugehörigen
Softwareteile kompiliert und im Steuergerät hinterlegt werden können, wogegen
die anderen Teile nicht kompiliert werden.
-
Gelöst wird
diese Aufgabe gemäß der Erfindung
durch die im Patentanspruch 1 und im Patentanspruch 7 angegebenen
Merkmale. Weitere Ausgestaltungen der Erfindung sind Gegenstand
von Unteransprüchen.
-
Ein
wesentlicher Gedanke der Erfindung besteht darin, eine Auswähleinrichtung
vorzusehen, mittels der ein oder mehrere Ausprägungen eines Konfigurationsmerkmals
und zugehörige
Softwareteile aus der universellen Software ausgewählt werden
können,
wobei nur die ausgewählten
Teile kompiliert und im Steuergerät gespeichert werden ("statische Konfiguration"). Falls nur eine
einzige Ausprägung
aus der Gesamtsoftware ausgewählt
wird, wird der zugehörige
Softwareteil kompiliert und im Steuergerät gespeichert. Falls zwei oder
mehr Ausprägungen
bzw. Softwareteile ausgewählt
werden, werden diese so konfiguriert, dass sie im späteren Betrieb
separat aufgerufen werden können
("dynamische Konfiguration"). Vorzugsweise wird
den ausgewählten Softwareteilen
im letzteren Fall automatisch je eine Variable zugewiesen.
-
Die
Erfindung kann z.B. im Bereich der Automobiltechnik für die Konfiguration
einer Steuergerätesoftware
angewendet werden, die zur Fahrdynamikregelung dient. Dabei werden
in einem ersten Schritt zunächst
ein oder mehrere zum Automodell passende Ausprägungen (z. B. Vorderrad-, Hinterrad-
oder Allradantrieb) ausgewählt
und das bzw. die ausgewählten
Softwareteile kompiliert und auf das Steuergerät übertragen.
-
Zur
Auswahl der gewünschten
Softwareteile ist vorzugsweise eine Auswähleinrichtung mit je einem
Schalter pro Ausprägung
vorgesehen. Im Falle der Konfiguration eines Kfz-Steuergeräts sind
z.B. drei Schalter vorgesehen, mit denen jeweils eine Antriebsart
(Vorderrad-, Hinterrad- oder Allradantrieb) bzw. die zugehörigen Softwareteile
ausgewählt
werden können.
Die Schalter haben vorzugsweise je zwei Stellungen (z.B. yes, no)
zum Auswählen
bzw. nicht Auswählen
der zugehörigen
Ausprägung.
Die Auswahl wird von einem Softwaretool, wie z.B. einem Precompiler
erkannt. Die Gesamtreglersoftware wird dann vom Softwaretool für die nachfolgende
Kompilation vorbereitet, wobei den Softwareteilen, die zu einer
Ausprägung
gehören,
jeweils ein fester Wert (z.B. TRUE/FALSE) oder eine Variable zugewiesen
wird, je nachdem, ob sie ausgewählt
wurden oder nicht. Die so vorverarbeitete Software wird dann kompiliert und
in das Steuergerät übertragen.
-
Wenn
eine Ausprägung
nicht ausgewählt wurde,
wird dem zugehörigen
Softwareteil vorzugsweise ein fester Wert (z.B. FALSE) zugeordnet. Wenn
eine Ausprägung
als einzige ausgewählt
wurde, wird dem zugehörigen
Softwareteil vorzugsweise auch ein fester Wert (z.B. TRUE) zugeordnet.
Werden dagegen zwei oder mehr Ausprägungen ausgewählt, werden
den zugehörigen
Softwareteilen vorzugsweise jeweils eine Variable zugeordnet.
-
Die
Erfindung wird nachstehend anhand der beigefügten Zeichnungen beispielhaft
näher erläutert. Es
zeigen:
-
1 eine
schematische Darstellung eines Systems zur Konfiguration einer Software
für ein Steuergerät gemäß dem Stand
der Technik; und
-
2 eine
schematische Darstellung eines Systems zur Konfiguration einer Software
für ein Steuergerät gemäß einer
Ausführungsform
der Erfindung.
-
Bezüglich der
Erläuterung
von 1 wird auf die Beschreibungseinleitung verwiesen.
-
2 zeigt
ein System zur Konfiguration einer universellen Software 5,
mit dem eine oder mehrere Ausprägungen
eines Konfigurationsmerkmals der Software 5 ausgewählt werden
können.
Gleiche Elemente wie in 1 sind dabei mit dem gleichen Bezugszeichen
versehen.
-
Dieses
System umfasst eine Auswähleinrichtung 6 mit
mehreren Schaltern 7a–7c,
an denen jeweils eine der Ausprägungen
(A–C)
ausgewählt bzw.
nicht-ausgewählt
werden kann. Die Schalter 7a–7c stehen z.B. für die einzelnen
Antriebsarten eines Fahrzeugs und haben die Schalterstellungen "yes" (ausgewählt) und "no" (nicht-ausgewählt). Eine Vorverarbeitungssoftware 2,
wie z.B. ein Precompiler, erkennt diese Auswahl und weist den einzelnen Softwareteilen,
die zu einer Ausprägung
gehören,
in Abhängigkeit
von deren Auswahl Werte 8a–8c zu, die vom Compiler 3 berücksichtigt
werden. Diese Werte können
z.B. feste Werte (TRUE oder FALSE) oder eine Variable sein, die
den Compiler 3 dazu veranlassen, den entsprechenden Softwareteile
entweder zu kompilieren oder nicht zu kompilieren.
-
Für den Fall,
dass nur eine einzige der Ausprägungen
A–C ausgewählt wird
(z.B. A), wird dem zugehörigen
Softwareteil der Wert "TRUE" und den übrigen Softwareteilen
B, C der Wert "FALSE" zugewiesen. Der
Compiler 3 erkennt diese Werte und kompiliert entsprechend
nur die Teile mit dem Wert "TRUE".
-
Für den Fall,
dass zwei oder mehr Ausprägungen
(z.B. A und B) ausgewählt
werden, wird den zugehörigen
Softwareteilen (A, B) jeweils eine Variable Vi, und den nicht-ausgewählten Teilen
(C) der Wert "FALSE" zugewiesen. Dies
wird wiederum vom Compiler 3 erkannt und entsprechend nur
die ausgewählten
Teile (A, B) kompiliert und auf das Steuergerät ECU übertragen. Im späteren Betrieb
des Steuergeräts
kann dann durch Setzen der entsprechenden Variablen Vi gesteuert
werden, welche Teile aufgerufen werden.
-
In
einem Fahrzeug können
die Variablen Vi (i = 1, 2, 3) z.B. mittels eines Bedienelements 9,
wie z.B. eines Druckknopfes, gesetzt werden, mit dem z.B. der Allradantrieb
zugeschaltet werden kann. Das Steuergerät ECU erkennt eine Betätigung des
Bedienelements 9 und aktiviert in diesem Fall die Softwareteile
für den
Allradantrieb der Fahrdynamikregelung. Teile, die spezifisch für eine andere
Antriebsart sind, werden deaktiviert.
-
Der
Precompiler 2 kann z. B. folgende Änderungen an der Software 5 in
Abhängigkeit
von der Stellung der Schalter 7a–7c vornehmen. Ein
antriebsabhängiger
Reglerteil für
den Vorderradantrieb (die allgemeinen Ausprägungen A–C entsprechen im folgenden
den Antriebsarten) lautet z.B.:
if (DFS_FWD)
{antriebsabhängiger Anweisungsteil}.
-
Dieser
wird durch den Precompiler 2 zu:
if (TRUE)
{antriebsabhängiger Anweisungsteil}
falls
nur der Schalter 7a für
den Vorderradantrieb in Schaltstellung "yes" ist
oder zu:
if (FALSE)
{antriebsabhängiger Anweisungsteil}
falls
der Vorderradantrieb am Schalter 7a nicht ausgewählt ist
oder zu
if (V1)
{antriebsabhängiger Anweisungsteil}
falls
der Vorderradantrieb und wenigstens eine andere Antriebsart ausgewählt wurde.
-
Durch
die Optimierungseigenschaften des Compilers 3 wird hieraus
schließlich
{antriebsabhängiger Anweisungsteil}
oder
{ } oder unverändert
if
(V1)
{antriebsabhängiger
Anweisungsteil}.
-
Im
letzten Fall ist es durch geeignete Belegung der Variablen V1, V2,
V3 später
möglich,
den Programmablauf so zu steuern, dass nur die zur aktuellen Antriebsart
passende Regelung aktiv ist. Die Variablen können in beliebiger Weise gesetzt
werden. Dies kann z.B. bei der Zündung
des Fahrzeugs erfolgen oder in Abhängigkeit von der Stellung eines Hardwareknopfs 9,
den der Fahrer betätigen
kann, um verschiedene Antriebsarten einzustellen.
-
Die
Auswähleinrichtung 6 mit
den Schaltern 7a–7c und
die dynamischen Schalter 8a–8c sind üblicherweise
in Software realisiert.
-
- 1
- Wählschalter
- 2
- Precompiler
- 3
- Compiler
- 4
- kompilierte
Steuergerätesoftware
- 5
- gesamte
Quellsoftware
- 6
- Auswähleinrichtung
- 7a–7c
- Wählschalter
- 8
- dynamische
Funktionsschalter
- 9
- Bedienelement
- A–C
- Softwareteile
- ECU
- Steuergerät