-
Stand der Technik
-
Die Erfindung betrifft ein Verfahren zum Betreiben einer Recheneinheit eines Steuergeräts, das in Datenverbindung mit einem Bussystem steht.
-
Die Erfindung betrifft ferner eine Recheneinheit für ein derartiges Steuergerät.
-
Bekannte Steuergeräte bzw. ihre Recheneinheiten lesen Daten typischerweise von einem Bussystem bzw. Netzwerk (bspw. CAN (Controller Area Network), LIN (Local Interconnect Network), FlexRay, Ethernet) oder Sensor (bspw. Drucksensor im Brennraum einer Brennkraftmaschine, Drehzahlsensor) ein, verarbeiten diese intern und senden sie dann wieder aus, z.B. an direkt an das Steuergerät angekoppelte Aktuatoren (z.B. Einspritzventil bei einem Motor), oder über das Bussystem an andere Steuergeräte. Die mit den (Sensor-)Daten zusammenhängenden Signallaufzeiten und Systemreaktionszeiten sind nachteilig für viele Szenarien nicht deterministisch (= von bekannter, vorhersagbarer Dauer), weil Bussysteme wie bspw. FlexRay eine eigene, von der Steuergerätezeit unabhängige Zeitbasis aufweisen, die gegenüber einer Zeitbasis der Recheneinheit abweicht. D.h., dass beispielsweise 1 ms für das FlexRay-Bussystem nicht notwendig exakt gleich lange dauert wie für seine Busteilnehmer, also z.B. Steuergeräte. Üblicherweise läuft die Zeit für die Busteilnehmer ein wenig langsamer oder schneller als die FlexRay-Zeit. Dies führt dazu, dass die Prozesse eines Betriebssystems der Recheneinheit und somit die Signalverarbeitung im die Recheneinheit aufweisenden Steuergerät relativ zu dem FlexRay-Bus und hierdurch vorgesehenen Empfangs- und Sendezeitschlitze („slots“) driften und somit der Verarbeitungszeitpunkt sowie die Verarbeitungsdauer schwankt.
-
Ferner schwankt ein Startzeitpunkt der Betriebssystem-Tasks und deren Ausführungsdauer prinzipbedingt. Dies wird auch als „Jitter“ bzgl. Taskstart und Taskausführungsdauer bezeichnet. Die Busdrift, der Jitter der Task- bzw. Prozessstartzeitpunkte und die Task- bzw. Prozessunterbrechungen verstärken sich bei der nachteiligen Beeinflussung des Verarbeitungszeitpunktes und der Dauer. Eine nachteilige Folge hiervon ist, dass auf Empfangsseite Signale „verlorengehen“ können, da sie a) nicht rechtzeitig vom Bus abgeholt werden oder b) einem verarbeitenden Prozess nicht rechtzeitig zur Verfügung gestellt werden. Aus den gleichen Gründen können Signalwerte auf einer Sendeseite „verlorengehen“, weil bspw. der Sendeslot auf dem Flexraybus verpasst wird.
-
Offenbarung der Erfindung
-
Demgemäß ist es Aufgabe der vorliegenden Erfindung, ein Verfahren und ein Steuergerät der eingangs genannten Art dahingehend zu verbessern, dass die vorstehend genannten Nachteile des Stands der Technik vermieden werden.
-
Diese Aufgabe wird bei dem Verfahren der eingangs genannten Art dadurch gelöst, dass sich die Recheneinheit, insbesondere ein auf der Recheneinheit ablaufendes Betriebssystem, mit dem Bussystem synchronisiert, und dass ein auf der Recheneinheit ablaufender primärer Prozess vorgesehen ist, der a) periodisch Daten von dem Bussystem entgegennimmt und die entgegengenommenen Daten mindestens einem weiteren ebenfalls auf der Recheneinheit ablaufenden Prozess zur Verfügung stellt und/oder b) von der Recheneinheit an das Bussystem zu sendende Daten von mindestens einem Prozess abholt und an das Bussystem übergibt. Dies hat den Vorteil, dass das Betriebssystem der Recheneinheit mit derselben Zeitbasis arbeitet wie das Bussystem, an das die Recheneinheit angeschlossen ist. Dadurch werden die eingangs genannten Drifteffekte vermieden. Ferner wird vermieden, dass empfangs- sowie sendeseitig Signalwerte verloren gehen.
-
Ferner ermöglicht die Erfindung vorteilhaft, den „Jitter“ bzgl. Taskstart und Taskausführungsdauer bzw. deren Störeinfluss auf die Verarbeitung von Daten zu verringern. Beispielsweise kann der primäre Prozess eine im Vergleich zu den weiteren, die (Sensor-)Daten verarbeitenden Prozessen, erhöhte Priorität und/oder Ausführungsfrequenz aufweisen, so dass sichergestellt ist, dass der primäre Prozess in der Recheneinheit zu empfangende Sensordaten rechtzeitig von dem Bussystem abholen kann, beispielsweise durch Auslesen aus einem Eingangsstapelspeicher, in den von dem Bussystem empfangene Daten in an sich bekannter Weise geschrieben werden.
-
Wenn der primäre Prozess eine im Vergleich zu den weiteren, die (Sensor-)Daten verarbeitenden Prozessen, erhöhte Priorität und/oder Ausführungsfrequenz aufweist, ist i.d.R. auch sichergestellt, dass der primäre Prozess die Daten den weiteren Prozessen zeitgerecht zur Verfügung stellen kann, diese mithin stets mit aktuellen Daten arbeiten können bzw. nicht auf aktuelle Daten warten müssen.
-
Bei einer bevorzugten Ausführungsform ist vorgesehen, dass der primäre Prozess die Daten von dem Bussystem in mit dem Bussystem synchronisierter Weise entgegennimmt, insbesondere mindestens mit einer Frequenz, mit der die Daten von dem Bussystem in der Recheneinheit eintreffen, so dass Situationen vermieden werden, in denen empfangene Daten verlorengehen, weil sie nicht rechtzeitig von dem primären Prozess aus z.B. dem Eingangsstapelspeicher gelesen werden, so dass die dort vorliegenden Daten ggf. wieder durch bereits nachfolgende Daten überschrieben werden.
-
Der erfindungsgemäße primäre Prozess ist vermöge seiner Synchronisierung bzw. der Synchronisierung des Betriebssystems und seiner Priorität zeitlich präzise und „schnell“ genug, um alle eingehenden Daten von dem Bussystem entgegenzunehmen.
-
Bei einer bevorzugten Ausführungsform ist vorgesehen, dass der primäre Prozess die entgegengenommenen Daten dem mindestens einen weiteren Prozess so zur Verfügung stellt, dass sie zu einem vorgebbaren Zeitpunkt bezogen auf den Ablauf des weiteren Prozesses, insbesondere vor dem nächsten Start des weiteren Prozesses, vorliegen. Hierzu kann der primäre Prozess über Informationen der Prozessplanung („scheduling“) der Recheneinheit bzw. des Betriebssystems verfügen. Bei dieser Ausführungsform ist vorteilhaft sichergestellt, dass der primäre Prozess die entgegengenommenen Daten in deterministischer Art und Weise an die weiteren Prozesse weiterleiten kann, diese weiteren Prozesse mithin regelmäßig und rechtzeitig mit stets aktuellen Daten versorgt werden. Dadurch wird u.a. vorteilhaft vermieden, dass ein z.B. Sensordaten verarbeitender Prozess zweimal nacheinander mit denselben, bei dem zweiten Ablauf nicht mehr aktuellen, Sensordaten arbeiten muss.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass der primäre Prozess eine Priorität und/oder Periodendauer der Ausführung des mindestens einen weiteren Prozesses berücksichtigt, um dem mindestens einen weiteren Prozess die Daten zur Verfügung zu stellen. Ebenso kann der primäre Prozess seine eigenen scheduling-Parameter (Priorität und/oder Periodendauer) sowie ggf. die weiterer Prozesse, die auf der Recheneinheit ablaufen, berücksichtigen.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass der primäre Prozess die von einem anderen Prozess an das Bussystem zu sendenden Daten zu einem vorgebbaren Zeitpunkt bezogen auf den Ablauf des weiteren Prozesses abholt. Damit ist sichergestellt, dass die an das Bussystem zu sendenden Daten stets aktuell sind.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass der primäre Prozess die von dem Prozess an das Bussystem zu sendenden Daten in mit dem Bussystem synchronisierter Weise an das Bussystem übergibt.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass der primäre Prozess einen durch den primären Prozess und die weiteren Prozesse gemeinsam nutzbaren Speicherbereich der Recheneinheit nutzt, um Daten mit den weiteren Prozessen auszutauschen. Der gemeinsam nutzbare Speicherbereich kann beispielsweise in Form einer sog. globalen Variablen einer Programmiersprache realisiert werden, mittels der die Recheneinheit programmiert ist.
-
Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist eine Recheneinheit für ein Steuergerät angegeben, das in Datenverbindung mit einem Bussystem steht. Die Recheneinheit, insbesondere ein auf der Recheneinheit ablaufendes Betriebssystem, ist dazu ausgebildet, sich mit dem Bussystem zu synchronisieren, und ein auf der Recheneinheit ablaufender primärer Prozess a) nimmt periodisch Daten von dem Bussystem entgegen und stellt die entgegengenommenen Daten mindestens einem weiteren ebenfalls auf der Recheneinheit ablaufenden Prozess zur Verfügung, und/oder b) von der Recheneinheit an das Bussystem zu sendende Daten werden von mindestens einem Prozess abgeholt und an das Bussystem übergeben.
-
Bei einer weiteren Ausführungsform ist vorgesehen, dass die Recheneinheit als Mikrocontroller oder Digitaler Signalprozessor (DSP) oder anwendungsspezifischer integrierter Schaltkreis (ASIC) oder programmierbarer Logikbaustein (z.B. FPGA, field programmable gate array) ausgebildet ist, und wobei das Betriebssystem der Recheneinheit für einen Mehrprozessbetrieb, multitasking, ausgelegt ist.
-
Besonders vorteilhaft ist die Recheneinheit einer weiteren Ausführungsform zufolge zur Ausführung des erfindungsgemäßen Verfahrens ausgebildet.
-
Nachfolgend werden beispielhafte Ausführungsformen der Erfindung unter Bezugnahme auf die Zeichnung erläutert. In der Zeichnung zeigt:
-
1 schematisch ein Blockdiagramm einer Ausführungsform einer erfindungsgemäßen Recheneinheit,
-
2 schematisch ein Blockdiagramm einer Ausführungsform eines Betriebssystems einer erfindungsgemäßen Recheneinheit,
-
3, 4 schematisch jeweils ein vereinfachtes Flussdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens.
-
1 zeigt schematisch ein Blockdiagramm einer Ausführungsform eines erfindungsgemäßen Steuergeräts 100 beispielsweise eines Kraftfahrzeugs. An das Steuergerät 100 ist ein Sensor S (beispielsweise Drehzahlsensor für eine Drehzahl einer Kurbelwelle einer Brennkraftmaschine des Kraftfahrzeugs) angeschlossen, der Sensordaten bereitstellt. Die Sensordaten können in dem Steuergerät 100 verarbeitet werden. Ebenfalls an das Steuergerät 100 angeschlossen ist ein Aktor bzw. Aktuator A, der z.B. ein Einspritzventil betätigt.
-
Das Steuergerät 100 ist ferner mit einem Bussystem 200 verbunden, das i.d.R. eine bidirektionale Kommunikation mit anderen an das Bussystem 200 angeschlossenen Geräten (nicht gezeigt), z.B. weiteren Steuergeräten usw., ermöglicht. Bei dem Bussystem kann es sich z.B. um einen FlexRay/CAN/LIN- oder sonstigen Datenbus handeln.
-
Zur Verarbeitung der Sensordaten und zur Ansteuerung des Aktors A z.B. in Abhängigkeit der Sensordaten weist das Steuergerät 100 eine Recheneinheit 110 auf, bei der es sich beispielsweise um einen Mikrocontroller oder DSP handeln kann. Andere Realisierungen (ASIC, FPGA, usw.) sind ebenfalls denkbar. Auf der Recheneinheit 110 können Computerprogramme ablaufen, die z.B. eine Funktionalität zur Verarbeitung der Sensordaten und/oder Ansteuerung des Aktors A zum Gegenstand haben.
-
Die Recheneinheit 110 verfügt über ein Betriebssystem OS, das die Abläufe in der Recheneinheit in an sich bekannter Weise steuert. Beispielsweise ermöglicht das Betriebssystem OS, bei einer Ausbildung als sog. multitasking Betriebssystem, die Erstellung und den Ablauf mehrerer Prozesse, die unterschiedliche Aufgaben wie z.B. Sensordatenverarbeitung, Ausführung von Regelungsalgorithmen usw. wahrnehmen.
-
Um eine zeitlich besonders präzise Verarbeitung von Sensordaten des Sensors S und Ansteuerung des Aktors A zu ermöglichen, ist die Recheneinheit 110 bzw. ihr Betriebssystem OS dazu ausgebildet, sich mit dem Bussystem 200 zu synchronisieren. Dies kann beispielsweise dadurch erfolgen, dass das Betriebssystem OS bzw. ein entsprechender Prozess Zeitstempel oder sonstige eine Synchronisation ermöglichende Informationen von dem Bussystem 200 einliest und eine interne Uhr bzw. einen Zähler der Recheneinheit 110 entsprechend einstellt. Die erfindungsgemäße Synchronisation kann bevorzugt auch periodisch erfolgen, um Drifteffekten zwischen Buszeit und der internen Uhr vorzubeugen.
-
Das Flussdiagramm aus 3 zeigt den vorstehend beschriebenen Schritt der Synchronisation der Recheneinheit 110 mit dem Bussystem 200 als Schritt 300.
-
Weiter erfindungsgemäß ist ein auf der Recheneinheit 110 ablaufender primärer Prozess T1 vorgesehen, vgl. 2, der periodisch Daten von dem Bussystem 200 entgegennimmt und die entgegengenommenen Daten mindestens einem weiteren ebenfalls auf der Recheneinheit 110 ablaufenden Prozess T2a, T2b, T2c zur Verfügung stellt. Bei den weiteren Prozessen T2a, T2b, T2c kann es sich z.B. um Prozesse handeln, die die Sensordaten von dem Sensor S, die sie von dem primären Prozess T1 erhalten haben, verarbeiten.
-
Die Datenübergabe zwischen den Prozessen T1, T2a, T2b, T2c kann z.B. unter Verwendung von sog. globalen Variablen einer Programmiersprache realisiert werden, mittels der die Recheneinheit 110 programmiert ist.
-
Die Entgegennahme der Daten von dem Bussystem 200 durch den primären Prozess T1 ist in 3 mit dem Schritt 310 bezeichnet, und der nachfolgende Schritt 320 repräsentiert die Weitergabe der Daten durch den primären Prozess T1 an die weiteren Prozesse T2a, T2b, T2c.
-
Bei einer bevorzugten Ausführungsform nimmt der primäre Prozess T1 nicht bereits selbst eine Verarbeitung der Sensordaten oder sonstiger von dem Bussystem 200 erhaltener Daten vor, sondern gibt diese vielmehr „nur“ zeitgerecht, insbesondere deterministisch, an die weiteren Prozesse T2a, T2b, T2c weiter. Der primäre Prozess T1 kann somit als Verteilprozess angesehen werden, der bei der Recheneinheit 110 eingehende Daten zeitgerecht entgegennimmt, insbesondere bevor diese durch neuere, nachfolgend eingehende Daten überschrieben werden, und der diese entgegengenommenen Daten den weiteren Prozessen T2a, T2b, T2c zur eigentlichen Verarbeitung zuleitet.
-
Ferner ermöglicht die Erfindung vorteilhaft, einen „Jitter“ bzgl. Taskstart und Taskausführungsdauer bzw. deren Störeinfluss auf die Verarbeitung von Daten zu verringern. Beispielsweise kann der primäre Prozess T1 eine im Vergleich zu den weiteren, die (Sensor-)Daten verarbeitenden Prozessen T2a, T2b, T2c, erhöhte Priorität und/oder Ausführungsfrequenz aufweisen, so dass sichergestellt ist, dass der primäre Prozess T1 in der Recheneinheit 110 zu empfangende Sensordaten rechtzeitig von dem Bussystem 200 abholen kann, beispielsweise durch Auslesen aus einem Eingangsstapelspeicher (nicht gezeigt), in den von dem Bussystem 200 empfangene Daten in an sich bekannter Weise geschrieben werden.
-
Wenn der primäre Prozess T1 eine im Vergleich zu den weiteren, die (Sensor-)Daten verarbeitenden Prozessen, erhöhte Priorität und/oder Ausführungsfrequenz aufweist, ist i.d.R. auch sichergestellt, dass der primäre Prozess T1 die Daten den weiteren Prozessen T2a, T2b, T2c zeitgerecht zur Verfügung stellen kann, diese mithin stets mit aktuellen Daten arbeiten können bzw. nicht auf aktuelle Daten warten müssen.
-
Demgegenüber kann es bei herkömmlichen Systemen zu erheblichem „Jitter“ bzgl. Taskstart und Taskausführungsdauer kommen, weil dort die einzelnen Sensordaten verarbeitenden Prozesse die Eingangsdaten selbst von dem Bussystem 200 abholen müssen.
-
Bei einer bevorzugten Ausführungsform der Erfindung ist vorgesehen, dass der primäre Prozess T1 die Daten von dem Bussystem 200 in mit dem Bussystem 200 synchronisierter Weise entgegennimmt, insbesondere mindestens mit einer Frequenz, mit der die Daten von dem Bussystem 200 in der Recheneinheit 110 eintreffen, so dass Situationen vermieden werden, in denen empfangene Daten verlorengehen, weil sie nicht rechtzeitig von dem primären Prozess T1 aus z.B. dem Eingangsstapelspeicher gelesen werden, so dass die dort vorliegenden Daten ggf. wieder durch bereits nachfolgende Daten überschrieben werden.
-
Der erfindungsgemäße primäre Prozess T1 ist vermöge seiner Synchronisierung bzw. der Synchronisierung des Betriebssystems OS und seiner Priorität zeitlich präzise und „schnell“ genug, um alle eingehenden Daten von dem Bussystem 200 entgegenzunehmen und für die anderen Prozesse vorzuhalten.
-
Bei einer bevorzugten Ausführungsform ist vorgesehen, dass der primäre Prozess T1 die entgegengenommenen Daten dem mindestens einen weiteren Prozess T2a so zur Verfügung stellt, dass sie zu einem vorgebbaren Zeitpunkt bezogen auf den Ablauf des weiteren Prozesses T2a, insbesondere vor dem nächsten Start des weiteren Prozesses, vorliegen. Hierzu kann der primäre Prozess T1 über Informationen der Prozessplanung („scheduling“) der Recheneinheit 110 bzw. des Betriebssystems OS verfügen. Bei dieser Ausführungsform ist vorteilhaft sichergestellt, dass der der primäre Prozess T1 die entgegengenommenen Daten in deterministischer Art und Weise an die weiteren Prozesse T2a, T2b, T2c weiterleiten kann, diese weiteren Prozesse T2a, T2b, T2c mithin regelmäßig und rechtzeitig mit stets aktuellen Daten versorgt werden. Dadurch wird u.a. vorteilhaft vermieden, dass ein z.B. Sensordaten verarbeitender Prozess zweimal nacheinander mit denselben, bei dem zweiten Ablauf nicht mehr aktuellen, Sensordaten arbeiten muss.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass der primäre Prozess T1 die von einem anderen Prozess T3 des Betriebssystems OS (2) an das Bussystem 200 zu sendenden Daten zu einem vorgebbaren Zeitpunkt bezogen auf den Ablauf des weiteren Prozesses T3 abholt, beispielsweise exakt zu dem Moment, in dem die zu sendenden Daten von dem Prozess T3 bereitgestellt worden sind bzw. kurz danach. Damit ist sichergestellt, dass die an das Bussystem 200 zu sendenden Daten stets aktuell sind.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass der primäre Prozess T1 die von dem weiteren Prozess T3 an das Bussystem 200 zu sendenden Daten in mit dem Bussystem 200 synchronisierter Weise an das Bussystem 200 übergibt.
-
4 veranschaulicht einer weitere Ausführungsform der Erfindung. In Schritt 350 holt der primäre Prozess T1 die von dem Prozess T3 des an das Bussystem 200 zu sendenden Daten zu einem vorgebbaren Zeitpunkt bezogen auf den Ablauf des weiteren Prozesses T3 ab. In Schritt 360 übergibt der primäre Prozess T1 die von dem weiteren Prozess T3 an das Bussystem 200 zu sendenden Daten, vorzugsweise in mit dem Bussystem 200 synchronisierter Weise, an das Bussystem 200.
-
Die Erfindung ermöglicht vorteilhaft, dass sich die Signallaufzeiten und Systemreaktionszeiten in dem Steuergerät 100 hinsichtlich der durch den primären Prozess T1 gehandhabten Daten (von dem Bussystem 200 empfangen und an die anderen Prozesse T2a, T2b, T2c weiterleiten sowie von einem weiteren Prozess T3 entgegennehmen und an das Bussystem 200 ausgeben) immer gleich darstellen und sich deterministisch verhalten. Bei geeigneter Ausplanung des Synchronisationszeitpunktes der Recheneinheit 110 mit dem Betriebssystem 200 und der einzelnen Prozesse untereinander sind Verluste von Signalwerten oder das doppelte Verarbeiten desselben Signalwertes mit gleichem Zeitstempel usw. nicht mehr möglich.
-
Bei einer bevorzugten Ausführungsform wird der primäre Prozess T1 etwa alle 5 ms (Millisekunden) ausgeführt, während die Prozesse T2a, T2b, T2c, T3 etwa alle 20 ms ausgeführt werden.
-
Die Prozesse T2a, T2b, T2c können auch unterschiedliche Ausführungsfrequenzen haben, z.B. 10 ms, 20 ms, 40 ms.