Vorrichtung und Verfahren zur Abarbeitung priorisierter Steuerungsprozesse
Die Erfindung betrifft ein Verfahren zur Steuerung mehrerer Komponenten in einem Verkehrsmittel, welches mit einem Steuergerät mit einem ersten Steuerprogramm für eine erste Komponente und mit einem zweiten Steuerprogramm für eine zweite Komponente versehen ist, wobei jedes Steuerprogramm einen zeitlich begrenzten Prozess durchführt, um die zugeordnete Komponente zu steuern, bei dem jeder Prozess durch einen Start- und einen Endzeitpunkt bestimmt wird. Die Vorrichtung ist ein Gerät zur Steuerung von Komponenten in einem Verkehrsmittel mit einer Schnittstelle zu einem externen Datenbus, einem Hardwaremodul und einem Speicher zur Bereitstellung der Daten.
Heute sind im Verkehrsmittel Steuergeräte eingesetzt, die unterschiedliche Komponenten, wie beispielsweise Fensterheber, Schiebedach und Motorkomponenten ansteuern. Die Steuergeräte sind untereinander zur Kommunikation mittels eines elektrischen Datenbusses vernetzt. Die elektronische Vernetzung im Verkehrsmittel wird immer komplexer mit bis zu 70 vernetzten Steuergeräten.
Bei den durch die Steuergeräte abgearbeiteten Prozessen handelt es sich um zeitlich begrenzte Steueraufgaben, so dass ein Steuergerät für Fensterheber und Schiebedach bezogen auf die Gesamtlaufzeit des Fahrzeugs nur in relativ geringem
zeitlichem Umfang Steueraufgaben durchführt. In den Zeiträumen, wo keine Ansteuerung der zugeordneten Komponenten erfolgt, bleibt die Datenverarbeitungs-Ressource des Steuergeräts ungenutzt. Andererseits führt die Verdichtung der Steueraufgaben auf einem einzigen Innenraum-Steuergerät zu Lauf- zeitproblemen, wobei wichtige Steuerungsaufgaben gegebenenfalls abwarten müssen, bis vorhergehende Steuerungsaufgaben durch den seriellen Datenverarbeitungsprozessor abgearbeitet sind. Dies hat in der Vergangenheit dazu geführt, dass häufig für weitere Funktionalitäten im Verkehrsmittel ein zusätzliches Steuergerät verbaut wird. Dies hat das Ergebnis zur Folge, dass im Innenraum selten mehrere Funktionen gleichzeitig benötigt werden, so dass viele Steuergeräte überwiegend passiv auf die Anforderung der Insassen warten.
Ein erster Ansatz führt zu einer Trennung der Kommunikationsund Steuerungsaufgaben innerhalb eines Steuergeräts, so dass für die Ansteuerung der Komponenten ein eigener Prozessor neben dem Kommunikationsprozessor vorgesehen ist und dadurch eine höhere Dichte von Steuerungsprozessen für unterschiedliche Komponenten auf demselben Steuergerät vorgesehen sein können. Ein derartiges Steuergerät mit zwei Prozessoren ist in Zusammenhang mit einer rechenzeit-aufwendigen Ansteuerung des Motors bzw. des Getriebes aus der DE 101 604 16 bekannt.
Ferner sind Steuergeräte bekannt, die einen konventionellen Mikrorechner aufweisen und deren Schnittstellen mittels eines Field Programmable Gate Array (FPGA) umgesetzt sind. Eine derartige Hardware ist aus der DE 101 396 10 bekannt. Mittels eines FPGA kann die Schnittstellen-Hardware umkonfiguriert werden. Im Gegensatz zu der üblichen Aufspielung veränderter Software, wird hierbei die Eigenschaft genutzt, die einzelnen Speicherzellen des FPGA miteinander unterschiedlich zu verdrahten. Beim FPGA ist jede Speicherzelle an eine Vernet-
zungsmatrix angeschlossen, die durch Umkonfiguration verändert werden kann. Beispielsweise lassen sich mittels eines FPGAs Logikbausteine nachbilden, wobei diese in einer Hardwarebeschreibungssprache beschrieben werden. Durch Herunterladen der aus der Hardwarebeschreibung erzeugten Hardwarekonfiguration auf die Vernetzungssteuerung kann die Verdrahtung zwischen den Speicherzellen so eingestellt werden, dass die gewünschten Logik-Gatter entstehen.
Übliche konventionelle Hardware kann während der Laufzeit nicht verändert werden. Im Gegensatz dazu kann beim FPGA durch Herunterladen einer weiteren Hardwarekonfiguration auf das FPGA, dessen Vernetzung so eingestellt werden, dass ein anderer Logikbaustein entsteht. Dabei werden die Speicherzellen des FPGA' s wie bei Flip-Flops beschaltet und es lassen sich sämtliche Logikeinheiten und Datenverarbeitungs- Hardwarestrukturen aus diesen Flip-Flops aufbauen.
Durch Umkonfigurieren des FPGAs kann aus einem ersten Logik- Gatter beispielsweise eine Datenverarbeitungseinheit entstehen, die wie ein Mikrorechner aufgebaut ist. Auf diese FPGA- Datenverarbeitungseinheit kann dann wieder die konventionelle Software zum Abarbeiten aufgespielt werden. Derartige umkon- figurierbare Speichereinheiten mit Datenverarbeitungsfunktionalität, wie Logik-Gatter und nachgebildete Recheneinheiten, werden in der folgenden Beschreibung als Hardwaremodul bezeichnet. Zu den Hardwaremodulen werden auch die nicht umkon- figurierbaren Datenverarbeitungseinheiten und Hardwareschaltungen gerechnet .
Es ist eine zukünftige Herausforderung für die Systemarchitektur im Verkehrsmittel, die Anzahl der Steuergeräte einzusparen und gleichzeitig die Auslastung der Datenverarbeitungseinheiten zu erhöhen.
Es ist Aufgabe der vorliegenden Erfindung ein Verfahren aufzuzeigen, mit dem Steuerungsprozesse im Verkehrsmittel bei hoher Datenverarbeitungsdichte auf Hardwaremodulen ausgeführt werden können, ohne dass wichtige Prozesse zu spät abgearbeitet werden. Ferner wird ein erweitertes Steuergerät vorgestellt, mit dem ein derartiges Verfahren durchführbar ist.
Die Erfindung wird bzgl . eines Verfahrens gemäß den Merkmalen des Anspruchs 1 gelöst. Danach wird den Prozessen jeweils eine Prioritätskennung zugewiesen. Zum StartZeitpunkt des ersten Prozesses wird überprüft, ob bereits ein anderer laufender Prozess ausgeführt wird und in diesem Fall wird der erste Prozess in einen Wartespeicher eingetragen. Der nächste abzuarbeitende Prozess wird aus dem Wartespeicher entsprechend seiner Prioritätskennung ausgelesen und nach Abschluss des laufenden Prozesses, entweder durch regulären Abschluss oder Abbruch, wird dieser neue Prozess mit der höchsten Priorität mit der Steuerung der zugeordneten Komponente zur Datenverarbeitung vorgesehen.
Erfindungsgemäß wird die Prioritätskennung dynamisch vergeben und bei unterschiedlichen Fahr- oder Bedienungssituationen des Verkehrsmittels erfolgt eine unterschiedliche Prioritätsvergabe an die verschiedenen Prozesse. Dieses Priorisierungs- verfahren bei Steuerungsprozessen ermöglicht es, aus mehreren in einem Wartespeicher abgelegten Steuerungsprozessen, den wichtigsten bzw. zeitkritischsten auszuwählen und einem Hardwaremodul zur Abarbeitung zuzuordnen. Das Priorisierungsver- fahren eignet sich besonders dazu, abzuarbeitende Steuerungs- prozesse auf mehrere Hardwaremodule zur Datenverarbeitung zu verteilen. Dabei weist eine dem Wartespeicher zugeordnete Verteilungseinheit die aufgereihten Steuerungsprozesse ent-
sprechend ihrer Priorisierung an die unterschiedlichen Hardwaremodule zur Datenverarbeitung zu.
Die Hardwaremodule sind dabei entweder konventionelle Datenverarbeitungseinheiten, wie logische Schaltungen oder Mikrorechner, oder sind umkonfigurierbare Speichereinheiten, wie beispielsweise ein FPGA. Das Verfahren wählt aus dem Warte- Speicher den Prozess mit der höchsten Priorität aus und ordnet diesen einem der parallel zu Verfügung stehenden Hardwaremodule zu, so dass eine schnellstmögliche sichere Abarbeitung durchführbar ist.
Insbesondere wenn die Hardwaremodule als umkonfigurierbare Hardware ausgeführt sind, lassen sich flexible anpassbare Elektronikmodule erzeugen. Es kann dabei sogar vorgesehen sein, dass innerhalb eines Hardwaremoduls durch Konfiguration eines FPGA' s mehrere Recheneinheiten entstehen. Dazu wird jedes Mal eine Hardwarekonfiguration auf das FPGA geladen, um dieses umzukonfigurieren. Auf diesem FPGA wird dann der Steu- erungsprozess durchgeführt und nach dessen Abarbeitung wird dann das FPGA für den nächsten Prozess, der diesem zugeordnet wird, konfiguriert. Die Steuerung der partiell dynamischen Rekonfiguration derartiger Hardwaremodule erfolgt mittels in einer kleinen Bibliothek abgelegten und vorprogrammierten Hardwarekonfiguration für die unterschiedlichen Konfigurationen. Je nach Anforderung eines Prozesses wird dann die entsprechende Hardwarekonfiguration in das FPGA geladen, dieses umkonfiguriert und der Steuerungsprozess darauf abgearbeitet.
Durch das erfindungsgemäße Verfahren in Verbindung mit der erweiterten Funktionalität der Hardwaremodule lässt sich eine Reduzierung der Anzahl der Steuergeräte innerhalb einer Steuergerätearchitektur bei einem Verkehrsmittel durchführen. Durch die Mehrfachnutzung der unterschiedlichen Hardwaremodu-
Ie für sich unterscheidende Steuerungsprozesse lässt sich die Summe der notwendigen Chipfläche verringern. Echte parallele und entkoppelte Prozesse sind auf einem Chip bzw. einem einzigen Hardwaremodul möglich, wobei Teil -Chipflächen umkonfiguriert werden und Prozesse auf diesen Teil -Chipflächen vollständig abgearbeitet werden. Es entstehen unabhängig voneinander testbare und wieder verwendbare Funktionen. Wenn beispielsweise ein Fensterheber betätigt wird und eine Konfiguration eines FPGAs auf einem Hardwaremodul erfolgt, kann dieselbe Topologie gegebenenfalls für die Steuerung eines weiteren Fensterhebers verwendet werden. Durch das Umkonfigurieren der Hardwaremodule entsteht ein anforderungsgerechtes Bereitstellen von Funktionen, wodurch kein unnötiges Verwalten von Ressourcen erforderlich ist.
Bei einer vorteilhaften Weiterbildung der Erfindung wird bzgl. der Vergabe der dynamischen Prioritätskennung in mindestens zwei Zustände unterschieden. Bei einem ersten Betriebszustand des Verkehrsmittels, wenn dieses beispielsweise auf einer Straße bewegt wird, werden für ein und dieselbe Komponente bzw. ein und denselben Prozess andere Prioritäts- kennungen vergeben, als wenn das Verkehrsmittel sich im Ruhezustand befindet, wobei es geparkt ist zumindest aber nicht verkehrsmäßig bewegt wird.
Durch diese unterschiedliche Vergabe von Prioritätskennungen kann beispielsweise einer Schiebedachanordnung im Ruhezustand eine hohe Priorisierung vergeben werden, so dass diese bevorzugt abgearbeitet wird, während im Fahrzustand beim Betätigen des Schiebedachs wegen der geringeren Priorität eine Wartezeit von einigen Millisekunden entstehen kann bis der Prozess abgearbeitet wird. Der Fahrer wird die verhältnismäßig kurze Wartezeit kaum zur Kenntnis nehmen, während die Hardwaremodule in der Zwischenzeit hochpriore Prozesse abarbeiten können,
wie beispielsweise die Übertragung und Ansteuerung von Sicherheitsrelevanten Signalen, beispielsweise die Auslösung eines Airbags. Infolgedessen kann dem Prozess für das Schiebedach eine im Betriebszustand des Verkehrsmittels geringere Prioritätskennung zugewiesen werden, so dass der Prozess zur Betätigung des Schiebedachs erst nach höher priorisierten Prozessen durchgeführt wird. Es kann dazu für jeden Prozess eine gewisse Zeitdauer vorgesehen sein, innerhalb der dieser Prozess abgearbeitet werden muss. Nach Ablauf dieser Zeitdauer kann entweder die Prioritätskennung hochgesetzt werden o- der eben der Prozess sofort ausgeführt werden.
Ebenso kann eine Einbruch- und/oder Diebstahlwarnanlage im Ruhezustand eine hohe dynamische Prioritatskennung aufweisen, während im Betriebs- bzw. Fahrzustand des Verkehrsmittels die Einbruchs- und/oder DiebstahlWarnanlage eine geringe oder gar keine Prioritätskennung aufweist . Die fehlende Prioritätsken- nung kann dann bedeuten, dass der Prozess in diesem Fahrzustand überhaupt nicht durchgeführt wird.
Durch die Bereitstellung des Wartespeichers können dort sämtliche Prozesse eingestellt werden und entsprechend der Prioritätskennung sortiert werden. Der Prozess mit der höchsten Prioritätskennung wird dann durch die Datenverarbeitungseinheit bzw. das Hardwaremodul abgearbeitet, welches die nächste Datenverarbeitungs-Ressource bereitstellt. Werden beispielsweise mehrere Hardwaremodule parallel vorgesehen, werden die Prozesse entsprechend ihrer Priorität diesen nacheinander zugeordnet. Bei umkonfigurierbaren Speichermitteln, beispielsweise einem FPGA, können gewisse Teilbereiche des FPGA' s durch Herunterladen einer Hardwarekonfiguration in logische Schaltungen umkonfiguriert werden, so dass der Steuerungspro- zess in Hardware automatisch ausgeführt wird. Bei dem erfindungsgemäßen Verfahren wird daher jedem Prozess auch eine be-
stimmte Hardwarekonfiguratiön zugeordnet, um gegebenenfalls das Hardwaremodul umkonfigurieren zu können.
Die Aufgabe wird erfindungsgemäß auch durch die Merkmale des unabhängigen Anspruchs 7 gelöst. Daraus ist ein Steuergerät zur Steuerung von Komponenten in einem Verkehrsmittel mit einer Schnittstelle zu einem externen Datenbus bekannt, wobei dieses zumindest ein Hardwaremodul und einen Speicher zur Bereitstellung der für die Datenverarbeitung notwendigen Daten aufweist. Es sind dabei mehrere programmierbare Hardwaremodule vorgesehen, die parallel zueinander weitere Steuerungsprozesse ausführen können und direkt über die Schnittstelle zum Datenbus und mit Sensoren kommunizieren. Das Steuergerät weist eine Verteilungseinheit auf, die jeden Prozess einem bestimmten Hardwaremodul zuordnet. Nach Abarbeitung des letzten Steuerungsprozesses wird das Hardwaremodul zunächst mit der Hardwarekonfiguration, umkonfiguriert und so für den neuen Steuerungsprozess vorbereitet. Daraufhin wird der Steuerungs- prozess auf dem umkonfigurierten Hardwaremodul durchgeführt, der die höchste Priorität im Wartespeicher hat. Nach Ablauf dieses .Steuerungsprozesses wird dann das FPGA wieder mittels Hardwarekonfiguration umkonfiguriert, so dass ein neuer Prozess mit der nächst höheren Priorisierungskennung auf das Hardwaremodul zur Abarbeitung geladen werden kann.
Das Steuergerät weist erfindungsgemäß mehrere Hardwaremodule auf, die parallel zueinander mit der Abarbeitung von Prozessen durch die Verteilungseinheit beauftragt werden können. Die Verteilungseinheit stellt dabei für den im Wartespeicher hδchstpriorisierten Steuerungsprozess alle Anforderungen bereit, so dass die Abarbeitung sofort nach Abschluss des vorhergehenden Prozesses gestartet werden kann. Dazu ist es gegebenenfalls notwendig, die Hardwarekonfiguration bereitzustellen, um das betroffene Hardwaremodul für den abzuarbei-
tenden Prozess umzukonfigurieren. Beispielsweise kann dabei nur ein Teil des Hardwaremoduls betroffen sein, so dass auf der verbleibenden Chipfläche des Hardwaremoduls ein anderer Prozess weiterläuft. Das erfindungsgemäße Steuergerät weist neben der Verteilungseinheit ein Mittel zur Zuordnung der Priorisierungskennung an den jeweiligen Steuerungsprozess auf. Es kann ein interner Bus vorgesehen sein, der den Steuerungsprozess in elektronischer Form, d. h. dessen Daten bzw. Informationen und die Hardwarekonfiguration dem betreffenden Hardwaremodul zur Verfügung -stellt. An dem internen Datenbus sind dann mehrere, beispielsweise zwei bis sechs Hardwaremodule, angeordnet. Die Verteilungseinheit hat eine Schnittstelle zu einem externen Datenbus, an den das betreffende Steuergerät angeschlossen ist. Dadurch können Anforderungen für Prozesse, welche über den externen Datenbus an das Steuergerät gemeldet werden, sofort priorisiert und entsprechend verarbeitet werden. Im Steuergerät können noch Dekompressie- rungseinheiten und Flash-Speicher vorhanden sein. In dem Flash-Speicher, können sowohl Hardwarekonfiguration zur Umkon- figurierung der Module als auch Softwaremodule bereitgestellt werden, die auf einem als Datenverarbeitungseinheit konfigurierten Hardwaremodul ausgeführt werden können. Zusätzlich kann auf dem Flash-Speicher auch eine Information zur Priori- sierung der einzelnen Prozesse bereitgestellt werden. Ein weiterer Speicher ist zur Initialisierung und zum Hochfahren des konfigurierbaren Speichermoduls, beispielsweise des FPGA' s, vorgesehen.
Als Hardwaremodul kann wie bereits beschrieben eine umkonfi- gurierbare Speichereinheit wie ein FPGA vorgesehen sein, es können aber auch mehrere parallel geschaltete Mikrorechner oder Hardwareschaltungen vorgesehen sein, die aufgrund des Priorisierungsprozesses beauftragt werden. Auf diese Weise entsteht ein paralleles Datenverarbeitungssystem, welches
mittels der Verteilungseinheit durch die unterschiedlichen Prozesse beauftragt wird und so beaufschlagt wird, dass die Auslastung der Funktion entsprechend gleichmäßig und möglichst effektiv ist.
Bei der FPGA-Implementierung oder der Implementierung mittels eines konfigurierbaren Hardwaremoduls ist besonders vorteilhaft, dass eine Verarbeitung wichtiger Datenbus-Daten in Echtzeit mit Antwortzeiten geringer als eine Millisekunde erfolgen kann. In dieser Zeit wird einerseits ein hochpriori- sierter Prozess bereitgestellt, das Hardwaremodul wird gegebenenfalls entsprechend einer Hardwarekonfiguration umkonfiguriert und die Abarbeitung erfolgt in dieser Zeit, so dass das Hardwaremodul für weitere Prozesse zur Verfügung steht. Nach der Rekonfiguration des Hardwaremoduls werden gegebenenfalls die Datenbus-Nachrichten im Wartespeicher schnellstmöglich abgearbeitet.
Da das parallel geschaltete Steuergerät mit den Hardwaremodulen bezogen auf heutige Datenbusfrequenzen weiter unter der maximalen Bearbeitungsfrequenz betrieben wird, ist hier ein hohes Potential für Erweiterungen möglich. Durch die Paralle- lisierung können auch Prozesse innerhalb eines Steuergeräts abgearbeitet werden, die mittels eines seriellen Steuergeräts mit Mikrorechner nur separat verarbeitet werden können. Wegen der flexiblen Priorisierungskennung können derartige Prozesse sofort bearbeitet werden, während langsame Prozesse oder Prozesse mit geringerer Priorisierungskennung, wie Fensterheber, Sitzverstellungs- oder Schiebedachsignale erst danach bearbeitet werden.
Bevorzugt können die Hardwaremodule während der Laufzeit des zugeordneten Verkehrsmittels, d. h. während Stand- oder Fahrtzeiten nach dessen Auslieferung aus dem Herstellungs-
werk, für andere Prozesse umkonfiguriert werden. Es entsteht dadurch ein flexibles System, welches durch Initialisierungsdaten und Prozessbeschreibungsdaten bzw. Priorisierungsinfor- mationen dynamisch auf die Steueraufgaben angepasst werden kann. Dadurch eignet sich das System auch zum Ersatz von klassischen Steuergeräten, bei denen der Mikrorechner oder einzelne Hardware-Bausteine heute nicht mehr hergestellt werden. Durch die Hardwarekonfiguration kann das erfindungsgemäße Steuergerät auf die Erfordernisse dieser konventionellen Steuergeräte angepasst werden und deren Aufgaben nachbilden. Dadurch eignet sich das erfindungsgemäße Steuergerät hervorragend auch zur Ersatzteil -Bereitstellung bei Verkehrsmitteln der vorhergehenden Generation.
Das erfindungsgemäße Steuergerät ist hervorragend geeignet zur Abarbeitung des erfindungsgemäßen Verfahrens, bei dem das erste Hardwaremodul einen aktuellen Prozess abarbeitet, während das gleiche oder das weitere Hardwaremodul nach der Um- konfiguration zur Steuerung eines weiteren Prozesses diesen bearbeitet. Die Datenverarbeitungskapazität der jeweiligen Hardwaremodule wird sofort nach Abschluss des jeweiligen Prozesses wieder für den nächsten Steuerungsprozess freigegeben. Die Verteilungseinheit weist daraufhin, dem Steuerungsprozess mit der höchsten Prioritätskennung im Wartespeicher ein freies Hardwaremodul zu und stellt die erforderliche Hardwarekonfiguration und die notwendigen Informationen für den Prozess zur Verfügung, konfiguriert das Hardwaremodul gegebenenfalls um und überträgt die zum Prozess gehörenden Informationen ü- ber den internen Datenbus zum Hardwaremodul, so dass dieser Steuerungsprozess abgearbeitet werden kann und dadurch die zu steuernde Komponente in Betrieb gesetzt wird.
Es gibt nun verschiedene Möglichkeiten, die Lehre der vorliegenden Erfindung in vorteilhafter Weise auszugestalten und
weiterzubilden. Dazu ist einerseits auf die untergeordneten Ansprüche und' andererseits auf die nachfolgende Erläuterung einer Ausführungsform zu verweisen. In der Zeichnung ist eine Ausführungsform der erfindungsgemäßen Vorrichtung dargestellt. Es zeigen jeweils in schetnatischer Darstellung,
Fig. 1 eine Darstellung des erfindungsgemäßen Steuergeräts mit vier konfigurierbaren Hardwaremodulen und
Fig. 2 eine Ablaufsdarstellung des erfindungsgemäßen Verfahrens zur Abarbeitung von Prozessen mittels Vergabe von Prioritätskennungen.
Das Steuergerät 1 zur Steuerung von nicht dargestellten Komponenten eines Verkehrsmittels weist vier interne konfigurierbare Hardwaremodule 2, 3, 4 und 5 auf, die über einen internen Datenbus 6 und über eine interne Datenbus-I/O 7 mit der Verteilύngseinheit 8 elektrisch leitend verbunden sind. Die Verteilungseinheit 8 ist mit einem außerhalb des Steuergeräts 1 vorhandenen externen Datenbus 9 verbunden. Außerdem ist die Verteilungseinheit 8 mit elektrischen Komponenten, beispielsweise Elektromotoren 10 und ggf. Sensoren verbunden. Zur Bereitstellung der notwendigen Informationen für das Steuergerät 1 ist innerhalb oder außerhalb ein Flash-Speicher 11 vorgesehen, ■ in den Informationen, wie eine Hardwarekonfiguration für die Hardwaremodule 2 bis 5 oder Priorisierung- sInformationen für die einzelnen Prozesse oder Softwaremodule zur Aufspielung auf die Hardwaremodule 2 bis 5 bereitgestellt werden können. Ein Initialisierungsspeicher 12 stellt schließlich noch die Daten bereit, die notwendig sind, um das Steuergerät hochzufahren und die Hardwaremodule 2 bis 5 und die übrigen Hardwarebausteine des Steuergeräts 1 entsprechend zu initialisieren.
Wird beispielsweise über den externen Datenbus 9,. der beispielsweise ein CAN-, Flexray- , LIN- oder Firewire-Datenbus sein kann, eine Nachricht übertragen, die beispielsweise die Betätigung eines Schalters zum Starten eines Steuerungsprozesses angibt, wird diese Nachricht über die Eingabe- /Ausgabeeinheit (I/O) des externen Datenbusses 9 an die Verteilungseinheit 8 übertragen. Die Verteilungseinheit 8 prio- risiert die eingehenden Nachrichten entsprechend den zuvor vom Flash-Speicher 11 geladenen Informationen und ordnet diese Steuerungsprozesse entsprechend ihrer zugeordneten Priori- tätskennung im Wartespeicher 13 an. Die Informationen aus dem Flash-Speicher 11 werden durch die Komprimierungs- /Dekomprimierungseinheit 14 dekomprimiert, so dass die Verteilungseinheit 8 die Information des Flash-Speichers 11 lesen kann. Im Flash-Speicher 11 sind die gespeicherten Daten komprimiert, um dort einen möglichst geringen Speicherplatz einzunehmen.
Die Hardwaremodule 2 bis 5 können voneinander unabhängig konfiguriert werden. Die Hardwaremodule 2 bis 5 sind Datenverarbeitungseinheiten, die vor der Abarbeitung eines Prozesses hardwaremäßig umkonfiguriert werden können. Es handelt sich dabei um rekonfigurierbare Speicher wie . diese beispielsweise als FPGA oder .unter anderen Bezeichnungen bekannt sind. Die einzelnen Speicherzellen der Hardwaremodule auf dem Modulchip sind miteinander redundant vernetzt, so dass die Vernetzung umkonfiguriert werden kann. Dadurch lassen sich die Speicherzellen unterschiedlich miteinander verdrahten, wodurch Logik- Gatter nachgebildet werden können oder auch komplexe Datenverarbeitungsprozessoren nachgebildet werden können. Die Logik-Gatter können ohne zusätzliche Software den Steuerungs- prozess durchführen und Ansteuersignale für Sensoren und Aktoren bereitstellen. Im Falle einer konfigurierten Speichereinheit oder einer Datenverarbeitungseinheit kann dann
gegebenenfalls aus dem Flash-Speicher 11 eine Software heruntergeladen werden, die dann auf dem konfigurierten Hardwaremodul 2 bis 5 lauffähig ist.
Die Hardwaremodule 2 bis 5 werden entsprechend der im Wartespeicher 13 angeordneten Prozesse dynamisch konfiguriert und die Verteilungseinheit 8 weist einen Prozess an ein bestimmtes Hardwaremodul 2, 3, 4 oder 5 zu. Dabei werden Prozesse mit einer hohen Prioritätskennung, was einer eiligen bzw. wichtigen Aufgabe gleichkommt, bevorzugt an das nächste freie Hardwaremodul 2 bis 5 weitergeleitet. Die Informationen werden dann über die interne Bus-I/O 7 und über den internen Datenbus 6 an das jeweilige Hardwaremodul 2 bis 5 weitergeleitet und dort verarbeitet. Mit den Modulen 2 bis 5 sind verschiedene Aktoren 15, 16 elektrisch leitend verbunden, so dass das Hardwaremodul 2 beispielsweise mit einer auf einem Chip-Feld 17 ausgebildeten logischen Schaltung den Aktor 15 ansteuert, während gleichzeitig auf demselben Chip des Hardwaremoduls 2 auf einer Chipfläche 18 eine weitere Datenverarbeitungseinheit ausgebildet ist, um den Aktor 16, beispielsweise eine Fenstersteuerung oder ein Schiebedach, anzusteuern.
In Figur 2 ist das Verfahren zur Steuerung mehrerer Komponenten 10, 15, 16 in einem Verkehrsmittel dargestellt. Die Komponenten 10, 15, 16 sind dabei direkt mit dem Steuergerät 1 verbunden und das Steuergerät 1 ist wiederum über einen externen Datenbus 9 mit weiteren Steuergeräten vernetzt. Auf dem Steuergerät 1 wird ein erstes Steuerprogramm zur Steuerung eines Fensterhebers 20 und ein zweites Steuerprogramm 21 für die Sitzverstellung bereitgestellt. Der Steuerprozess für den Fensterheber 20 und der Steuerprozess 21 für die Sitzverstellung sind jeweils zeitlich begrenzt, wobei der Startzeit- punkt beispielsweise durch das Betätigen des Verstellknopfes
für den Fensterheber oder die Sitzverstellung erzeugt wird. Die Signalflanke erzeugt dabei ein Auslöseereignis im Steuergerät, wobei beispielsweise eine Nachricht für den Prozess in der Verteilungseinheit 8 des Steuergeräts 1 hinterlegt wird. Dabei wird dem Pensterheber 20 eine höhere Prioritätskennung zugeordnet als der Sitzverstellung 21.
Wenn beispielsweise beide Prozesse im Hardwaremodul 2 ausgeführt werden sollen und zeitlich nacheinander. zu bearbeiten sind, sieht das erfindungsgemäße Verfahren einen Prozess gemäß Figur 2 vor. Dabei wird während der Abarbeitung des Prozesses für den Fensterheber 20 beispielsweise die Anforderung für die Sitzverstellung 21 durch Betätigen des Sitzverstellungsschalters aktiviert. Bei 22 wird dann der Prozess für die Sitzverstellung in den Wartespeicher 8 eingestellt und mit einer Prioritätskennung versehen.
Im nächsten Zeitschritt wird nach Abarbeiten des Fensterheber-Prozesses 20 der Prozess im Wartespeicher 13 gelöscht und zunächst steht bei 23 die Sitzverstellung mit höchster Prio- risierungskennung im Wartspeicher. Wenn der Prozess 24 zur Rückspiegelverstellung angefordert wird und dieser eine höhere Priorisierungskennung als die Sitzverstellung aufweist, wird bei 25 zunächst der Prozess zur Rückspiegelverstellung ausgeführt. Nach Ablauf des Prozesses zur Rückspiegelverstellung wird bei 26 der Prozess für die Sitzverstellung in Betrieb genommen und abgearbeitet, während der Prozess zur Rückspiegelverstellung beispielsweise wegen weitergehender Betätigung kurzzeitig inaktiv wird und die Sitzsteuerung zwischenzeitlich angesteuert bleibt.
Bei 27 wird dann über die Betätigung des Schiebe-Hebe-Dachs der Prozess für dessen Verstellung angestoßen, wobei wegen der höheren Prioritätskennung zunächst das. Schiebe-Hebe-Dach bei 28 bzw. dessen Prozess abgearbeitet wird, während die
Rückspiegelverstellung bei 28 inaktiv bleibt und erst nach Abschluss des Schiebe-Hebe-Dach-Prozesses durchgeführt wird.
Wird beispielsweise die Parktronik bei 30 angefordert, die ebenfalls eine höhere Prioritätskennung aufweist, so müssen beide Prozesse bei 30 gleichzeitig abgearbeitet werden, wobei ein Prozess an das Hardwaremodul 2 und ein weiterer Prozess an das Hardwaremodul 3 vergeben wird, wobei das Hardwaremodul 3 zuvor konfiguriert wird und dann der Prozess für die Parktronik abgearbeitet wird. Nach Ablauf der beiden Prozesse werden bei 31 schließlich die beiden inaktiven Funktionen aus dem Wartespeicher 13 gelöscht, so dass weitere Prozesse abgearbeitet werden können.
Jedem Prozess wird jeweils eine Prioritätskennung zugewiesen und zum StartZeitpunkt eines jeden Prozesses wird überprüft, ob bereits ein anderer laufender Prozess ausgeführt wird. In diesem Fall wird dann der erste Prozess in einen Wartespeicher eingetragen und nach Abschluss des laufenden Prozesses wird der im Wartespeicher abgelegte Prozess mit der höchsten Prioritätskennung ausgelesen und dem entsprechenden Hardwaremodul 2 bis 5 zugewiesen.
Jedem Prozess kann die Prioritätskennung dynamisch vergeben werden, d. h. die Prioritätskennungen können sich abhängig von den Betriebszuständen des Verkehrsmittels ändern. Ist beispielsweise das Verkehrsmittel in einer Parksituation oder bei langsamer Geschwindigkeit bewegt, so wird die Parktronik oder das Schiebedach oder auch die Wegfahrsperre mit höherer Priorisierungskennung versehen als dies der Fall ist, wenn das Verkehrsmittel mit höherer Geschwindigkeit bewegt wird. Aufgrund der dynamischen Vergabe der Prioritätskennungen und der Zuordnung des höchst-priorisierten Prozesses an die jeweils freie Hardwaremodul 2 bis 5 kann auf besonders effekti-
ve Weise eine serielle oder auch parallele Verarbeitung verschiedener Prozesse im Verkehrsmittel, erfolgen.
Bezugszeichenliste
1 Steuergerät 2 - 5 Hardwaremodule
6 interner Datenbus
7 interne Bus-I/O
8 Verteilungseinheit
9 externer Datenbus
10 Aktor
11 Flash-Speicher
12 Initialisierungs-Einheit
13 Wartespeicher
14 Komprimierungs-/Dekoτnprimierungseinheit 15, 16 Aktor
17 Chipfläche des Hardwaremoduls
18 Chipfläche des Hardwaremoduls
19 frei
20 Prozess für Fensterheber
21 Prozess für Sitzverstellung
22 Zuweisung der Priorisierungskennung '
23 Prozess für Sitzverstellung in Betrieb
24 Anforderung für Rückspiegelverstellung
25 Prozess für Rückspiegelverstellung in Betrieb
26 Prozess für Sitzverstellung in Betrieb
27 Anforderung des Schiebe-Hebe-Dachs
28 Schiebe-Hebe-Dach-Prozess in Betrieb
29 Anforderung der Parktronik
30 Abarbeitung paralleler Prozesse
31 Abschluss der Prozesse und Freigabe des Wartespeichers