-
Die
Erfindung betrifft ein Verfahren zur Verarbeitung von Interruptsignalen
einer Interruptquelle gemäß den Oberbegriffen
der unabhängigen
Ansprüche.
-
Ein
solches Verfahren ist aus der DE-OS 35 44 079 A1 (US-A 4 819 173)
bekannt. Dort wird ein Verfahren und eine Vorrichtung zur Verarbeitung
von Interruptsignalen einer Interruptquelle, in einem Mikrorechner
mit einem zugehörigen
Interruptprogramm und einem Hauptprogramm beschrieben. Das Hauptprogramm
wird nach Auftreten eines Interruptsignals der Interruptquelle unterbrochen.
An Stelle des Hauptprogramms wird das Interruptprogramm abgearbeitet.
-
Bei
Auftreten eines Fehlers, wie beispielsweise eines Wackelkontakts,
kann die Häufigkeit, das
heißt
die Frequenz des Interruptsignals so hoch werden, daß der Mikrorechner
durch die häufigen Unterbrechungen überlastet
wird und nicht mehr korrekt arbeitet. Dieses Problem löst obige
Einrichtung dadurch, daß nach
Auftreten eines Interrupts weitere Interruptanforderungen für eine bestimmte
Zeitperiode gesperrt werden.
-
Als
weitere Fehlerauswirkung kann es dazu kommen, daß kein Interrupt mehr gemeldet
wird. Dies kann durch eine Timeout-Überwachung dedektiert werden.
Mit Beginn der Abarbeitung des Interruptprogramms werden weitere
Interruptanforderungen derselben Interruptquelle gesperrt. Innerhalb
eines durch einen unteren und oberen Grenzwert definierten Zeitintervalls
werden die Interrupts als zulässig
erkannt.
-
Dieses
Zeitintervalls innerhalb dem die Interrupts als zulässig erkannt
werden sollte möglichst
exakt vorgegeben werden. Wird dieses Intervall zu groß gewählt, so
werden an sich unzulässige
Interrupts als zulässig
erkannt. Wird der Bereich zu klein gewählt, so werden möglicherweise
zulässige
Interrupts nicht registriert.
-
Aufgabe der
Erfindung
-
Der
Erfindung liegt die Aufgabe zugrunde, bei einem Verfahren zur Verarbeitung
von Interruptsignalen einer Interruptquelle sicherzustellen, daß nur zulässige Interrupte
eine Abarbeitung des entsprechenden Programms zur Folge haben. Diese
Aufgabe wird durch die Merkmalskombination des Anspruchs 1 gelöst.
-
Vorteile der
Erfindung
-
Dadurch,
daß das
Intervall, innerhalb dem die Interrupts als zulässig erkannt werden, betriebskenngrößenabhängig vorgebbar
ist, kann verhindert werden, daß unzulässige Interrupts
als zulässig
erkannt und daß zulässige Interrupts
als unzulässig
erkannt werden. Ferner kann eine Überlastung des Mikrorechners
durch fehlerhafte Interrupts verhindert werden.
-
Vorteilhafte
und zweckmäßige Ausgestaltungen
und Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
-
Zeichnung
-
Die
Erfindung wird nachstehend anhand der in der Zeichnung dargestellten
Ausführungsform
erläutert.
Es zeigen 1 ein Blockdiagramm der erfindungsgemäßen Einrichtung, 2 ein
Zeitdiagramm der einzelnen Programmabfolgen und 3 ein Flußdiagramm.
-
Beschreibung
eines Ausführungsbeispiels
-
Die
Erfindung wird im folgenden am Beispiel einer Steuereinrichtung
einer Brennkraftmaschine beschrieben. Mit 100 ist ein Mikrorechner
bezeichnet. Dieser beaufschlagt ein Stellorgan 110 mit
entsprechenden Ansteuersignalen. Dieses Stellorgan beeinflußt vorzugsweise
die Leistungsabgabe der nicht dargestellten zu steuernden Brennkraftmaschine.
Hierzu verarbeitet der Mikrorechner Ausgangssignale von verschiedenen
Sensoren 120. Des weiteren ist eine erste Interruptquelle 130 vorgesehen. Diese
tastet die auf einem Impulsrad 135 angeordneten Markierungen
ab und erzeugt bei jeder vorbeilaufenden Markierung ein Interruptsignal.
Vorzugsweise ist das Impulsrad auf der Nocken- oder auf der Kurbelwelle
der Brennkraftmaschine angeordnet.
-
Eine
zweite Interruptquelle 140 liefert weitere Interruptsignale.
Diese tastet die auf einem Inkrementrad 145 angeordneten
Markierungen ab und erzeugt bei jeder vorbeilaufenden Markierung
ein Interruptsignal.
-
Tritt
ein Interruptsignal der ersten Interruptquelle auf, so startet in
dem Mirkorechner 100 ein entsprechendes Programm.
-
Der
Mikrorechner 100 weist zumindestens einen sogenannten Interrupteingang 105 auf,
dieser ermöglicht
es, daß der
Mikrorechner auf externe Ereignisse reagieren kann. Vorzugsweise
handelt es sich bei diesen Interrupts um Hardware- oder Softwareinterrupts.
Hardwareinterrupts werden beispielsweise von dem auf der Nocken-
oder Kurbelwelle angeordneten Impulsrad 135 ausgelöst.
-
Das
durch den Interrupt im Rechner ausgelöste Interruptprogramm ist mit
ST bezeichnet. Zur Überwachung
werden die Funktionen bzw. Programme TM und TMS eingesetzt. Das
Programm TM gibt den gesperrten Interrupt wieder frei. Das Programm TMS überprüft, ob ein
Interrupt ausbleibt.
-
Dem
nachfolgenden beschriebenen Verfahren liegt die Annahme zugrunde,
daß das
zeitliche Verhalten des Interrupts mittels einem Modell nachbilden
läßt. Dieses
Modell wird durch eine Prädiktorfunktion
F beschrieben, die ausgehend von der vergangenen Abfolge von Interrupts
sowie verschiedenen Betriebskenngrößen ein Zeitintervall definiert,
innerhalb dem der nächste
Interrupt auftreten muß. Tritt
der nächste
Interrupt innerhalb des vorhergesagten Intervalls auf, wird er als
gültig
bewertet, tritt er außerhalb
auf, wird er als ungültig
bewertet. Im einfachsten Fall reicht es aus, ein Intervall durch
die untere Grenze P und die obere Grenze O zu definieren.
-
In 2 ist
die Abfolge der verschiedenen Programme bzw, der verschiedenen Programme über der
Zeit A aufgetragen. Als Zeiteinheit wird die Befehlszyklusdauer
verwendet, sie beträgt
ca. 125 Nanosekunden. Die Zeitpunkte des Auftretens der Interruptsignale
sind mit senkrechten Pfeilen markiert.
-
Bei
der Abfolge gemäß 2a sind die Verhältnisse für ein zulässigen Interrupt aufgezeigt.
Zum Zeitpunkt 100 tritt der erste Interrupt auf. Das Interruptprogramm
ST startet mit seiner Abarbeitung. Im Anschluß daran ermittelt die Prädiktorfunktion
F das, durch die untere Grenze P und die obere Grenze O definierte,
Intervall innerhalb dem der nächste
Interrupt als gültig
erkannt wird. Das Intervall innerhalb dem ein Interrupt auftreten
kann liegt bei diesem Beispiel zwischen den Zeitpunkten 1000 und
1600.
-
Zum
Zeitpunkt 900 startet das Programm TM und gibt zum Zeitpunkt 1000
den Interrupt frei. Der Interrupt tritt beim Zeitpunkt 1200 auf.
Da der Interrupt nach dem Zeitpunkt 1000 und vor dem Zeitpunkt 1600
auftrat, wird er als zulässig
erkannt, dies hat zur Folge daß die
Programme ST und F abgearbeitet werden. Beim Eintreffen des Interrupts
wird die Auslösung
des Programms TMS bei 1600 gelöscht.
-
In 2b ist ein fehlerhaft spätes Auftreten eines
Interrupts dargestellt. Entsprechend wie in 2a erfolgt
der erste Interrupt zum Zeitpunkt 100. Zum Zeitpunkt 900 gibt das
Programm TM den Interrupt frei, dies besagt das Programm läßt ab diesem Zeitpunkt
einen Interrupt zu. Zum Zeitpunkt 1600 startet das Programm TMS.
Das Programm TMS erkennt, daß kein
gültiger
Interrupt auftrat und es ergeht eine entsprechende Fehlermeldung
an das Interruptprogramm ST.
-
In 2c ist ein als fehlerhaft erkanntes zu frühes Auftreten
eines Interrupts eingezeichnet. Auch hier wird zum Zeitpunkt 100
der erste Interrupt ausgelöst,
woraufhin die Programme ST und F abgearbeitet werden. Der zweite
Interrupt erfolgt zum Zeitpunkt 800, also vor der unteren Grenze
des Intervalls die beim Zeitpunkt 1000 liegt. Zu diesem Zeitpunkt
ist der Interrupt gesperrt. Das Programm TM startet beim Zeitpunkt
900 und erkennt, daß schon
vor unteren Intervallgrenze P zum Zeitpunkt 1000 ein Interrupt ausgelöst wurde.
Dies gilt als Fehler und wird von Programm TM an das Interruptprogramm
ST signalisiert. Das Interruptprogramm ST wird daher nicht aktiviert.
-
In 2b und 2c ist
gestrichelt eine besonders vorteilhafte Ausgestaltung der Erfindung
eingezeichnet. Wird kein zulässiger
Interrupt erkannt, so werden die Programme ST und F, wie in 2b dargestellt anschließend an
das Programm TMS abgearbeitet. Bei einem unzulässig frühen Interrupt werden die Programme
ST und F, wie in 2c dargestellt zum
frühest
möglichen
korrekten Zeitpunkt abgearbeitet. In diesem Fall erfolgt die Abarbeitung
der Programme ST und F anschließend
an das Programm TM. Bei dieser Ausgestaltung ist die Abarbeitung
der Programme ST und F in einem sinnvollen Zeitbereich auch dann
gewährleistet,
wenn das Interruptsignal fehlerhaft ist.
-
Die
in den 2a, 2b und 2c dargestellten Verhältnisse gehen alle von der
idealisierten Annahme aus, daß alle
Ereignisse ohne zeitliche Unsicherheit behaftet sind, sowie daß die Interrupts
immer im Zeittakt der Befehlszyklusdauer auftreten. In einem realen
Computersystem sind unter anderem die folgenden Quellen zeitlicher
Unsicherheit zu berücksichtigen.
Die verschiedenen Programme ST, TM und TMS starten im allgemeinen
nicht exakt zu dem Zeitpunkt, zu dem der Interrupt auftritt oder
ihr Start vorgesehen ist.
-
Eine
Ursache ist darin zu sehen, daß die
Programme mit einem festen Zeitraster starten, das von der festen
Taktfrequenz vorgeben wird. Somit kann der Fall eintreten, daß zwischen
einem Interrupt und dem Beginn der Abarbeitung des Interruptprogramms
ST der Zeitabstand des Zeitrasters verstreicht.
-
Eine
weitere Ursachen für
solche Verzögerungen
sind beispielsweise Programme mit höherer Priorität oder ununterbrechbare
Programme die vor Beginn dieser Programme abzuarbeiten sind.
-
Des
weiteren ist zu berücksichtigen,
daß die Auflösung und
die Genauigkeit der Zeitreferenz beschränkt ist. Daher sind alle Zeitmessungen
mit zeitlicher Unsicherheit behaftet.
-
Um
eine möglichst
genaue Interruptsteuerung gewährleisten
zu können
sind diese Einflüsse zu
berücksichtigen.
Im folgenden wird nun beschrieben, welche Einflüsse die Prädiktorfunktion bzw. das Programm
F bei der Vorgabe der Intervallgrenzen P 0 berücksichtigen muß, so daß einerseits
eine korrekte Fehlererkennung möglich
ist und andererseits das System durch häufige Interrupts nicht überlastet wird.
-
In
der 3 wird anhand eines Flußdiagramms der Programmablauf
beschrieben. In einem ersten Schritt 300 wird ein Zähler auf
Null gesetzt. Im Schritt 305 wird ein Befehlszyklus des
Hauptprogramms abgearbeitet. In vorgebenen Zeitintervallen, die
durch die Befehlszyklusdauer vorgegeben werden erfolgt die Abfrage 310,
diese Abfrage überprüft, ob die
Zeit A kleiner als die untere Grenze P ist. Ist dies der Fall, so
folgt die Abfrage 315. Diese überprüft ob seit dem letzten Durchlauf
ein Interrupt aufgetreten ist. Trat ein Interrupt auf, so wird im
Schritt 320 der Zähler
Z auf 1 gesetzt. Ist kein Interrupt aufgetreten bzw. ist der Schritt 320 abgearbeitet
so folgt im Schritt 305 der nächste Befehlszyklus des Hauptprogramms.
-
Erkennt
die Abfrage 310 daß die
Zeit A nicht kleiner als die untere Grenze P ist, so folgt die Abfrage 330.
Diese überprüft, ob die
Zeit A gleich der unteren Grenze P ist. Ist dies der Fall, so wird
in Schritt 332 das Programm TM abgearbeitet. Dieses Programm
läßt ab diesem
Zeitpunkt die Abarbeitung von Interrupten zu. Dies kann beispielsweise
dadurch realisiert werden, daß der
Interrupteingang aktiviert wird. Anschließend überprüft die Abfrage 334,
ob seit dem letzten Programmdurchlauf ein Interrupt erfolgte. Ist
dies der Fall, so werden im Schritt 336 das Programm ST
und im Schritt 338 das Program F abgearbeitet. Gleichzeitig
wird eine ordnungsgemäße Abarbei tung
des Programms ST erkannt. Anschließend bzw. wenn kein Interrupt
aufgetreten ist erfolgt im Schritt 305 die Abarbeitung
des Hauptprogramms.
-
Erkennt
die Abfrage 330, daß die
Zeit A ungleich der unteren Grenze P ist, so folgt die Abrage 340.
Diese Überprüft, ob die
Zeit A größer der
unteren Grenze P und gleichzeitig kleiner als die obere Grenze O
ist. Ist dies der Fall, so erfolgt die Abfrage 342, die
wiederum überprüft, ob ein
Interrupt auftrat. Ist die der Fall, so werden im Schritt 344 das
Programm ST und im Schritt 346 das Programm F abgearbeitet.
Dabei wird eine ordnungsgemäße Abarbeitung
des Programms ST erkannt. Anschließend folgt das Hauptprogramm
mit Schritt 305.
-
Erkennt
die Abfrage 342, daß kein
Interrupt aufgetreten ist, so folgt die Abfrage 350. Erkennt
die Abfrage 350, daß der
Zähler
Z den Wert 1 beinhaltet, so werden im Schritt 352 das Programm
ST und im Schritt 354 das Programm F abgearbeitet. Dabei
wird eine fehlerhaft frühe
Abarbeitung des Programms ST erkannt. Anschließend wird der Zähler Z auf
0 gesetzt und das Hauptprogramm weiter abgearbeitet. Erkennt die
Abfrage 350, daß der
Zähler
Z nicht den Wert 1 beinhaltet, so folgt Schritt 305.
-
Bei
einer Störung,
die zu unzulässig
frühen Interrupts
führt,
kann die Abarbeitung des Interruptprogramms dadurch gewährleistet
werden, daß bei einem
unzulässig
frühen
Interrupt, das Interruptprogramm zum frühest zulässigen Zeitpunkt abgearbeitet
wird. Hieraus ergibt sich der Vorteil, daß Störungen nicht unbedingt zum
Ausfall der Einrichtung führen.
Ein entsprechendes Fehlersignal gewährleistet, daß vom Hauptprogramm
gegebenenfalls entsprechende Maßnahmen,
wie beispielsweise ein Notfahrbetrieb eingeleitet werden.
-
Erkennt
die Abfrage 340, daß die
Zeit A außerhalb
der Grenzen P und O liegt, so erfolgt die Abfrage 360.
Diese Überprüft, ob die
Zeit A gleich der oberen Grenze O ist. In diesem Fall folgt im Schritt 362 das
Programme TMS. Dieses Programm blokiert das Erkennung von weiteren
Interrupts. Anschließend
werden im Schritt 364 das Programm ST und im Schritt 366 das
Programm F abgearbeitet. Dabei wird eine fehlerhaft spätes Abarbeitung
des Programms ST erkannt und ein entsprechendes Fehlersignal erzeugt.
Anschließend
wird das Hauptprogramm 305 abgearbeitet.
-
Bei
einer Störung,
die zu unzulässig
späten Interrupts
führt,
kann die Abarbeitung des Interruptprogramms dadurch gewährleistet
werden, daß bei einem
unzulässig
späten
Interrupt, das Interruptprogramm zum spätest zulässigen Zeitpunkt abgearbeitet
wird. Hieraus ergibt sich der Vorteil, daß Störungen nicht unbedingt zum
Ausfall der Einrichtung führen.
Ein entsprechendes Fehlersignal gewährleistet, daß vom Hauptprogramm
gegebenenfalls entsprechende Maßnahmen,
wie beispielsweise ein Notfahrbetrieb eingeleitet werden.
-
Bei
der Bestimmung der Grenzen des Intervalls [P; O] sind die folgenden
Einflüße zu berücksichten.
Dies kann in der Art realisiert sein, daß die Intervallgrenzen nach
jeder Abarbeitung des Interruptprogramms ST neu berechnet werden
oder daß diese
Werte abhängig
von einer Betriebskenngröße, wie
beispielsweise der Drehzahl, aus einem Speicher ausgelesen werden.
-
Zuerst
werden die Werte für
die untere Grenze P und die obere Grenze O des Intervalls bestimmt. Die
Prädiktorfunktion
F schätzt
ab innerhalb welcher Zeitspanne bei den vorliegenden Betriebszuständen der
nächste
Interrupt auftritt.
-
Diese
Abschätzung
soll im folgenden anhand eines Drehzahlinterrupts erläutert werden.
Bei einem Drehzahlgeber tritt bei einer Drehzahl von 6500 Umdrehungen
pro Minute ca. alle 1.5 Millisekunden ein Interrupt auf. Unter Berücksichtigung
der maximal möglichen Änderung
der Drehzahl nach unten und oben ergeben sich Maximalgrenzen für das Intervall
[Pmax, Omax]. Beispielsweise ergibt sich bei 6500 Umdrehungen für Pmax ein
Wert von ca. (1,5 – 0.030)
Millisekunden und für
Omax ein wert von ca (1,5 + 0.030) Millisekunden.
-
Bei
einer Drehzahl von 1000 Umdrehungen pro Minute tritt ca. alle 12
Millisekunden ein Interrupt auf. Unter Berücksichtigung der maximal möglichen Änderung
der Drehzahl nach unten und oben ergibt sich bei 1000 Umdrehungen
für Pmax
ein Wert von ca. (12 – 10)
Millisekunden und für
Omax ein Wert von ca (12 + 10) Millisekunden.
-
Die
zeitliche Unsicherheit, die durch das Zeitraster verursacht wird,
wirkt sich bei der unteren Grenze P verkürzend und bei der oberen Grenze
O verlängert
aus. Erfindungsgemäß wird die
untere Grenze P um die Genauigkeit des Zeitrasters verkürzt und
die obere Grenzwert O entsprechend verlängert. Die Genauigkeit des
Zeitrasters liegt im Bereich von 100 Nanosekunden. Hierbei ist noch
berücksichtigt,
daß das
Betriebssystem des Mikrorechners auch nach Auftreten eines Interrupts
bestimmte Berechnungen durchführen
muß, bevor
es den Interrupt bearbeiten kann. So müssen beispielsweise die Daten
und der Status des Rechners gesichert werden. Unter Berücksichtigung
dieser Berechnung ergibt sich eine Ungenauigkeit von 10 Mikrosekunden. Diese
Berechnungen entsprechen Programmen mit höherer Priorität.
-
Desweiteren
kann vorgesehen sein, daß das Interruptprogramm
wiederum von einem Interrupt einer weiteren Interruptquelle mit
höherer
Priorität
unterbrochen wird. In diesem Fall kann die Abarbeitung eines Interrupts
mit niederer Priorität
durch ein Interruptprogramm STH mit höherer Priorität gehemmt werden.
Um diese Zeit, die benö tigt
wird um das Interruptprogramm STH mit höherer Priorität abzuarbeiten,
müßen die
unteren und oberen Grenzen des Intervall vergrößert werden, da dieses Interruptprogramm
STH auch das Programm TM unterbrechen kann.
-
Die
Zeitdauer, die zur Berechnung von solchen Programmen benötigt werden,
liegen im Bereich von 100 Mikrosekunden. Erfindungsgemäß wird deshalb
die untere Grenze P um die Zeitdauer, die ein solches Programm benötigt, verkürzt und
die obere Grenzwert O entsprechend verlängert. Hierbei ist die Gesamtzeit
aller Programme zu berücksichtigen,
die eine höhere
Priorität
als das betrachtete Progrmm ST aufweisen. Für jedes Programm ergeben sich
somit bei gleicher Drehzahl abhängig
von der Anzahl und der Dauer der Interruptprogramme mit höherer Priorität unterschiedliche
Intervallgrenzen [O; P].