-
Die
vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren
zum Erzeugen eines Unterbrechungssignals (interrupt signal) für einen Hauptprozessor
(CPU), wobei die Unterbrechung einer Programmausführung angefordert
wird. Die Erfindung bezieht sich im Besonderen auf eine solche Vorrichtung
und ein solches Verfahren, bei denen eine Reihe von Unterbrechungssignalen
auf der Grundlage mehrerer Unterbrechungsanforderungen ausgegeben
werden.
-
Viele
elektronische Geräte
jüngeren
Datums weisen einen Energiesparmodus mit geringer Leistungsaufnahme
(nachstehend als "Stromsparmodus" bezeichnet) auf,
bei dem die Leistungsaufnahme zum Beispiel durch Reduzieren der
Bildschirmhelligkeit verringert wird, wenn die Tastatur eine gewisse Zeit
lang nicht benutzt wurde, und bzw. oder die Stromversorgung für eine Ein-/Ausgabeschnittstellenvorrichtung
unterbrochen wird, wenn über
einen gewissen Zeitraum kein Zugriff auf die Ein- oder Ausgabeschnittstelle
erfolgte. Anzumerken ist, dass der "Stromsparmodus" so, wie er hierin verwendet wird, eine
Betriebsart bedeutet, bei der nur einige Funktionen des Geräts noch
aktiv sind, während
andere deaktiviert sind. Das heißt, dass die Stromversorgung
vorübergehend
unterbrochen bzw. der Betrieb des größten Teils des Geräts eingestellt
sind.
-
Außerdem schaltet
der Stromsparmodus die Steuerung üblicherweise in den normalen
Betriebszustand um, wenn zum Beispiel die Tastatur bedient oder
ein Zugriffsanforderung für
eine Ein-/Ausgabeschnittstelle
empfangen wird, wobei die Stromversorgung dann für das gesamte Gerät wiederhergestellt wird.
-
Die
Dokumente
JP-A-8-249081 und
JP-A-5-32018 geben,
als Mittel zur effektiven Verringerung der Energieaufnahme, zum
Beispiel ein Verfahren zum Überführen einer
CPU mit hoher Leistungsaufnahme in einen Ruhemodus an. Hierbei ist zu
beachten, dass ein Ruhemodus im Allgemeinen einen Zustand darstellt,
bei dem der Taktgenerator der CPU angehalten ist, und nur an einigen
der Anschlüsse
dort anliegende Signale erkannt werden können, wie beispielsweise an
den Anschlüsse
für Unterbrechungsanforderungen
(die CPU selbst ist nicht in der Lage, eine Betriebsroutine auszuführen). Der
Ruhemodus bezeichnet einen Stromsparmodus, bei dem ein Zustand mit
angehaltenem Taktgeber der CPU erreicht wird.
-
Die
oben angegebenen Stand-der-Technik-Dokumente beschreiben Zustandsübergänge zwischen
Betriebsarten, wie beispielsweise zwischen einer regulären Betriebsart
und einem Ruhemodus. Sie klären
jedoch nicht darüber
auf, wie mehrere sich überlappende
Unterbrechungsanforderungen beherrscht werden können oder später folgende
Unterbrechungsanforderungen bearbeitet werden können, während ein von einer früheren Unterbrechungsanforderung
ausgelöster
Programmablauf noch abgearbeitet wird. Neben einer beständigen Erhöhung der funktionellen
Komplexität
müssen
moderne elektronische Geräte
auch zum Setzen und Bearbeiten einer großen Zahl von Unterbrechungsanforderungen
in der Lage sein, beispielsweise um Zustandsänderungen zwischen einer regulären Betriebsart
und einem Stromsparmodus oder zwischen verschiedenen Stromsparmodi
einschließlich
eines Ruhemodus zu bewirken. Es gibt sogar Anwendungen, bei denen Dutzende
von Unterbrechungsanforderungen bearbeitet werden müssen.
-
Liegen
mehrere und insbesondere dutzende von Unterbrechungsanforderungen
vor, so hat die Prüfung,
welche Unterbrechungsanforderungen an die CPU unter welchen Bedingungen
weitergeleitet werden sollen, einen maßgeblichen Einfluss auf das Verhalten
des Geräts,
d. h. auf den effizienten und sachgemäßen Betrieb des Geräts. Eine
1:1-Beziehung zwischen den Unterbrechungsanforderungen und Unterbrechungssignalen
ist oftmals nicht möglich,
da die CPU nur eine beschränkte
Zahl von Anschlüssen
für Unterbrechungsanweisungen
aufweist.
-
Abhängig von
den Betriebsbedingungen kann es auch wünschenswert sein, die Prioritäten, mit
denen die in Reaktion auf bestimmte Unterbrechungsanforderungen
erzeugten Unterbrechungssignale von der CPU verarbeitet werden,
zu ändern. Zum
Beispiel könnte
in manchen Fällen
ein effizienterer Programmablauf erreicht werden, wenn den Unterbrechungsanforderungen,
die eindeutig dem Ruhemodus zuzuordnen sind, eine hohe Priorität zugeteilt
wird, sobald der Ruhemodus eintritt. Auch ein den Änderungen
der Betriebsumgebung entsprechendes dynamisches Setzen oder Ändern der
Priorität
für die
Bearbeitung der Unterbrechungsanforderungen kann nützlich sein.
Beispielsweise eine Änderung
der Priorität
der Unterbrechungsanforderungen oder ein Deaktivieren einiger Unterbrechungsanforderungen
als Reaktion auf einen fehlerhaften Zustand.
-
Unter
welchen speziellen Bedingungen eine Unterbrechungsanweisung erzeugt
und welche Priorität
der Unterbrechungsanweisung zugeteilt werden wird, kann sich je
nach Fehler oder einer anderen Ursache für die Unterbrechungsanweisung,
sowie der Häufigkeit
der Unterbrechungsanweisung ändern. Falls
zum Beispiel bei der Stromversorgung ein Problem auftritt, kommt
es darauf an, dass sofort eine genau bezeichnete Warnung ausgegeben
wird und andere als notwendig erscheinende Maßnahmen ergriffen werden, wie
beispielsweise das Abschaltend der Stromversorgung. Demgegenüber handelt
es sich beim Entfernen eines Tintenbehälters aus einem Tintenstrahldrucker
oder dem Öffnen
einer Abdeckung, während
sich die CPU des Druckers im Ruhemodus befindet, um Ereignisse von
geringer Dringlichkeit. In Fallen wie diesen kann der Ruhemodus bis
zur Bestätigung
einer Betriebsanweisung aufrechterhalten werden. Der Betriebszustand
kann wieder aufgenommen werden, wenn eine Unterbrechungsanforderung
von größerer Wichtigkeit
auftritt. Vorzugsweise ist daher die Möglichkeit einer flexiblen Änderung
der Priorität
des Unterbrechungssignals vorgesehen.
-
Wenn
beim Abarbeiten einer Unterbrechungsanweisung ferner eine andere
Unterbrechungsanforderung (derselben Priorität) an den selben Anschluss
für Unterbrechungsanweisungen
angelegt wird, wie er von der augenblicklich bearbeiteten Unterbrechungsanweisung
verwendet wird, dann könnte
die letztere Unterbrechungsanforderung ignoriert werden, wodurch
ein wesentlicher Unterbrechungsvorgang nicht zur Ausführung käme.
-
Außerdem ist
es möglich,
die Priorität
einer Unterbrechungsanforderung der Betriebsart des Geräts (je nachdem,
ob sich die CPU zum Beispiel im Ruhemodus oder einer anderen Betriebsart
befindet) entsprechend zu ändern.
Um dies zu erreichen muss es jedoch möglich sein, die Priorität der Unterbrechungsanweisungen
im Übergangsstadium
während des Änderns der
Betriebsart zu ändern.
Welche Ereignisse (Zustandsänderungen)
die CPU dazu veranlassen sollen, den regulären Betriebszustand einzunehmen,
wird dem grundlegenden Konstruktionskonzept des Geräts und den
im Gerät
vorgesehenen Funktionen entsprechend unterschiedlich ausfallen. Ein
großer
Spielraum zum Setzen von Bedingungen für Unterbrechungsanweisungen
ist daher wünschenswert.
-
Die
Druckschrift
US 5,530,875
A offenbart ein auf einem Prozessor basierendes System,
bei dem sich mehrere Unterbrechungssignale einen gemeinsamen Anschluss
für Unterbrechungsanweisungen
am Prozessor teilen. Sobald ein Unterbrechungssignal an dem Anschluss
anliegt, überprüft der Prozessor
ein Statusregister für
Unterbrechungsanweisungen, um zu herauszufinden, von welcher der
Quellen für
Unterbrechungsanweisungen das Unterbrechungssignal stammt. Um für eine Vielzahl von
Unterbrechungsanweisungsquellen Prioritäten festzulegen, werden diese
Unterbrechungsanweisungsquellen entsprechend den Betriebsbedingungen
des Systems gruppiert. Die Zuordnung der Unterbrechungsanweisungsquellen
zu Gruppen wird durch ein programmierbares Register erreicht, bei dem
Merkerpositionen eines Statusregisters für Unterbrechungsanweisungen
mit Merkerpositionen eines Gruppenstatusregisters verknüpft werden.
Die Betriebsbedingung, auf der das Gruppieren der Unterbrechungsanweisungsquellen
beruht, kann sich in der Bearbeitung einer bestimmten Unterbrechungsanweisung
darstellen, auf deren Grundlage eine als nächstes zu erwartende Unterbrechungsanweisungsquelle
einer Gruppe mit hoher Priorität
zugeordnet wird.
-
Eine
Vorrichtung zum Erzeugen eines Unterbrechungssignals gemäß dem Oberbegriff
von Anspruch 1 und ein Verfahren gemäß dem Oberbegriff von Anspruch
5 sind aus der Druckschrift
EP
0 316 138 A bekannt. Der darin beschriebene Stand der Technik
betrifft eine Gruppierungsvorrichtung zur Anordnung von Eingangssignalen
in Gruppen und bezieht sich im Besonderen auf eine Gruppierungsvorrichtung,
die zwischen einem Hauptprozessor (CPU) und mehreren Ein-/Ausgabeschnittstelleneinheiten angeordnet
ist, und mehrere von den Ein-/Ausgabeschnittstelleneinheiten ausgegebene
Unterbrechungsanforderungen nach Unterbrechungsanweisungsebenen
der CPU gruppiert. Die beschriebene Gruppierungsvorrichtung weist
eine Registertabelle auf, um n Eingangssignale entsprechend der
Registertabelle in m Gruppen einzuteilen. In einer Ausführungsform
sind m und n als gleich groß offenbart.
-
Eine
erste Aufgabe der Erfindung besteht in der Angabe einer Vorrichtung
sowie eines Verfahrens zum Erzeugen eines Unterbrechungssignals,
die ein statisches oder dynamisches Festlegen der Priorität des in
Reaktion auf verschiedene Unterbrechungsanforderungen erzeugten
Unterbrechungssignals ermöglichen.
-
Eine
weitere Aufgabe der Erfindung besteht darin, eine solche Vorrichtung
und eine solches Verfahren anzugeben, bei denen es möglich ist,
eine Anzahl von Unterbrechungssignalen aus einer größeren Anzahl
von Unterbrechungsanforderungen zu erzeugen.
-
Diese
Aufgaben werden durch die in Anspruch 1 beanspruchte Vorrichtung
und das in Anspruch 5 beanspruchte Verfahren gelöst. Bevorzugte Ausführungsformen
der Erfindung sind Gegenstand der abhängigen Ansprüche.
-
Erfindungsgemäße Ausführungsformen
können
die Priorität
von Unterbrechungssignalen ändern,
die in Reaktion auf mehrfache Unterbrechungsanforderungen erzeugt
werden, die ihrerseits Detektionssignale repräsentieren. Sie können, wenn
während
eines Unterbrechungsvorgangs ein Detektionssignal empfangen wird,
eine zu dem Detektionssignal passende Unterbrechungsroutine ausführen, nachdem
der aktuelle Unterbrechungsvorgang beendet ist. Hierdurch werden
die oben beschriebenen Probleme des Stands der Technik gelöst.
-
Zu
beachten ist, dass die Unterbrechungssignalpriorität so, wie
sie hierin verwendet wird, der Anzahl der an der CPU verfügbaren Anschlüsse für Unterbrechungsanweisungen
in der Weise entspricht, dass falls die CPU zum Beispiel vier Anschlüsse für Unterbrechungsanweisungen
aufweist, den Unterbrechungssignalen maximal vier Prioritätsebenen
zugeordnet werden können. Üblicherweise
kann jedem Anschluss der CPU für
Unterbrechungsanweisungen eine relativ zu den anderen Anschlüssen für Unterbrechungsanweisungen
definierte Prioritätsebene zugewiesen
werden. Erfindungsgemäße Ausführungsformen
können
die Priorität
von Unterbrechungssignalen, die von einer Reihe von Unterbrechungsanforderungen
erzeugt werden, welche jeweils Detektionssignale repräsentieren,
entsprechend der Priorität
der jeweiligen Unterbrechungsanforderung festlegen oder ändern und
die Unterbrechungssignale in der Prioritätsreihenfolge den Anschlüssen für Unterbrechungsanweisungen
zuordnen. Mit anderen Worten legen diese Ausführungsformen die Priorität der Unterbrechungssignale
fest, die von einer Reihe von Detektionssignalen erzeugt wurden,
wobei sie die Unterbrechungssignalpriorität ändern können.
-
Weitere
Merkmale und Vorteile ergeben sich zusammen mit einem besseren Verständnis der
Erfindung aus der folgenden Beschreibung bevorzugter Ausführungsbeispiele
in Verbindung mit den beiliegenden Figuren, von denen
-
1 eine
erfindungsgemäße Ausführungsform
einer Vorrichtung zum Erzeugen von Unterbrechungssignalen zeigt;
-
2 eine
bei einem Drucker verwendete Vorrichtung zum Erzeugen von Unterbrechungssignalen
zeigt;
-
3 einige
Ereignisse auflistet, die zu einem Unterbrechungssignal führen, das
die CPU dazu veranlasst von einem Ruhemodus in einen regulären Betriebszustand überzugehen;
-
4 eine
erste Ausführungsform
einer Unterbrechungsanweisungsbearbeitung innerhalb der Vorrichtung
zum Erzeugen von Unterbrechungssignalen zeigt;
-
5 ein
Beispiel für
einen Signalverteiler zum Ändern
der Priorität
von Unterbrechungsanweisungen innerhalb der Unterbrechungsanweisungsbearbeitung
zeigt;
-
6 ein
Funktionsblockschaltbild darstellt, das eine Ausführungsform
eines für
die vorliegende Erfindung geeigneten Unterbrechungsanweisungsdetektors
zeigt;
-
7 ein
detaillierteres Funktionsblockschaltbild des Unterbrechungsanweisungsdetektors von 6 zeigt;
-
8 ein
Zeitdiagramm darstellt, das die Relation zwischen einem Zeittakt,
einem Eingangssignal und einem Übereinstimmungssignal
im Unterbrechungsanweisungsdetektor 20 von 6 zeigt;
-
9 ein
Funktionsblockschaltbild darstellt, das zur Beschreibung des Umschaltens
eines Druckers oder eines ähnlichen
Datenübertragungsgeräts 60 vom
Ruhezustand in einen Betriebszustand unter Verwendung einer erfindungsgemäßen Vorrichtung zum
Erzeugen eines Unterbrechungssignals dient;
-
10 ein
Funktionsblockschaltbild einer zweiten Ausführungsform eines für die vorliegende Erfindung
geeigneten Unterbrechungsanweisungsdetektors darstellt;
-
11 ein
Funktionsblockteilschaltbild zur Erläuterung einer dritten Ausführungsform
eines für die
vorliegende Erfindung geeigneten Unterbrechungsanweisungsdetektors
darstellt; und
-
12 ein
Zeitdiagramm darstellt, das zur Erläuterung der Funktionsweise
des in 11 dargestellten Unterbrechungsanweisungsdetektors
dient.
-
Ungeachtet
dessen, dass die nachstehend beschriebenen Ausführungsformen der Erfindung
auf einen Tintenstrahldrucker bezogen sind, ist es selbstverständlich,
dass die Erfindung auch bei anderen elektronischen Geräten (nachfolgend
einfach als Geräte
bezeichnet) verwendet werden kann, welche von einer CPU gesteuert
werden, die die von mehreren Unterbrechungsanforderungen herrührenden
Unterbrechungsanweisungen bearbeitet.
-
Der
Grundaufbau eines Druckers mit einer erfindungsgemäßen Vorrichtung
zum Erzeugen eines Unterbrechungssignals wird zunächst unter
Bezugnahme auf das in der 2 gezeigte
Blockschaltbild beschrieben. Die in der 2 gezeigte
CPU 1 weist eine Reihe von Betriebszuständen, einschließlich einem
regulären
Betriebszustand sowie einem Stromsparmodus bzw. Ruhemodus, auf.
Ein Druckmechanismus 2, eine Schnittstelle 7,
ein ROM 8 (Festwertspeicher) und ein RAM 9 (Direktzugriffsspeicher)
sind mit der CPU 1 durch eine Busleitung 25 verbunden.
Im ROM 8 und RAM 9 sind die CPU Steuerungssoftware
(einschließlich
der Firmware) und Daten gespeichert. Die CPU 1 steuert
den Druckmechanismus 2, um entsprechend den von einem Host 50 über eine
Schnittstelle 7 empfangenen Druckdaten und Druckanweisungen
zu drucken. Der Druckmechanismus 2 umfasst einen Steuerschaltkreis 3 und,
jeweils mit diesem verbunden, einen Druckkopf 4, einen
Motor 5 und eine Tauchspule 6. Der Steuerschaltkreis 3 steuert
diese anderen Teile gemäß den Anweisungen
von der CPU 1.
-
Mit
der CPU 1 ist ferner eine Vorrichtung 10 zum Erzeugen
eines Unterbrechungssignals verbunden.
-
Die
Vorrichtung 10 erzeugt ein Unterbrechungssignal in Reaktion
auf einen Fehler oder eine andere Unterbrechungsanforderung, wobei
sie das Unterbrechungssignal über
die Unterbrechungssignalausgangsanschlüsse und über die Unterbrechungssignalleitung 26 an
die Anschlüsse
für Unterbrechungsanweisungen
der CPU 1 ausgibt. Die Vorrichtung 10 ist so ausgebildet,
dass sie auch dann, wenn sich die CPU 1 im Ruhemodus befindet,
funktionstüchtig
ist. Wenn an einem Anschluss für
Unterbrechungsanweisungen der im Ruhemodus befindlichen CPU 1 ein
Unterbrechungssignal anliegt, dann werden bestimmte Unterbrechungsroutinen
zum Reaktivieren der CPU 1 ausgeführt, die sie in den regulären Betriebszustand
zurückführen.
-
Die
vorliegende Erfindung betrifft das Erzeugen von Unterbrechungssignalen
für die
CPU 1 und bezieht sich nicht auf Betriebszustände. Die
Unterbrechungsanweisungen umfassen jedoch sowohl Ereignisse, die
sich auf den Betriebszustand beziehen, als auch Ereignisse, die
sich nicht auf den Betriebszustand des Geräts beziehen.
-
Nachdem über einen
bestimmten Zeitraum keine Operationen ausgeführt wurden, geht die CPU als
Mittel zur Verringerung der Leistungsaufnahme von einem regulären Betriebszustand
in einen Ruhezustand über.
Die Bedingungen für
den Übergang zum
Ruhemodus können
abhängig
von der Art und Verwendung des Geräts festgelegt werden. Die meisten Übergänge sind
in der oben angegebenen Druckschrift
JP-A-5-32018 ausführlich beschrieben. Da die
vorliegende Erfindung mit dem Erzeugen von Unterbrechungssignalen
befasst ist, werden die Übergänge von
einem Betriebszustand in einen anderen nicht weiter erläutert.
-
Wenn
während
des Betriebs ein Fehler oder eine bestimmte andere Veränderung
der Betriebsbedingungen auftritt, dann muss die CPU zur Behandlung
der Veränderung
eine Unterbrechungsroutine ausführen.
Wenn zum Beispiel ein Problem mit der Stromversorgung auftritt,
dann muss sofort ein spezieller Alarm ausgegeben und, falls nötig, müssen andere
Maßnahmen,
wie beispielsweise ein Abschalten der Stromversorgung, ergriffen
werden. Beim Entfernen des Tintenbehälters oder beim öffnen der
Abdeckung des Druckers müssen
diesen besonderen Bedingungen entsprechende Routinen ausgeführt werden.
Das ist auch dann der Fall, wenn sich die CPU 1 im Ruhemodus
befindet. Wobei es dann aber auch erforderlich ist, die CPU 1 zunächst reaktivieren,
sowie die CPU 1 in den regulären Betriebszustand zurückzuführen.
-
Welche
Unterbrechungsroutinen als Reaktion auf bestimmte Änderungen
der Betriebsbedingungen ausgeführt
werden, und ob die CPU in den regulären Betriebszustand zurückgeführt wird,
hängt vom grundlegenden
Aufbaukonzept des Geräts
und seinem Funktionsumfang ab. Man strebt daher an, dass für das Festlegen
und Ändern
von Unterbrechungsanforderungen sowie der Priorität der Unterbrechungsanforderungen
ein großer
Spielraum vorgesehen ist.
-
Bei
dem in der 2 gezeigten Drucker werden Signale,
die von einem Detektor 11 für Fehler an der Stromversorgung,
einem Detektor 12 für
den Öffnungszustand
der Abdeckung, einem Papierdetektor 13 und einem Tintenleerstandsdetektor 14 stammen, an
die Vorrichtung 10 übergeben.
Wird zum Beispiel der Tintenbehälter
entfernt, so muss ein Alarm ausgegeben werden, der anzeigt, dass
der Tintenbehälter
entfernt wurde, und der Betrieb muss so gesteuert werden, dass auch
dann, wenn eine Druckanweisung erkannt wird, kein Druckvorgang eingeleitet wird.
Wenn in der Stromversorgung eine Überspannung oder ein anderer
Fehler auftritt, dann muss die Stromversorgung unmittelbar abgeschaltet
oder eine andere Maßnahme
ergriffen werden, damit andere Teile des Systems nicht beschädigt werden.
-
In
der 3 sind einige der Ereignisse gezeigt, auf die
hin an Eingangssignal an die Vorrichtung 10 zum Erzeugen
eines der CPU zuzuführenden Unterbrechungssignals
angelegt wird. Tritt eines dieser Ereignisse auf, während sich
die CPU im Ruhemodus befindet, so muss ein Unterbrechungssignal erzeugt
werden, um zunächst
eine Unterbrechungsroutine zum Reaktivieren der CPU 1 aus
dem Ruhemodus in den regulären
Betriebszustand einzuleiten und dann die jeweilige Unterbrechungsroutine
zur Bearbeitung der speziellen Unterbrechungsanforderung abzurufen.
Tritt dasselbe Ereignis auf, während sich
die CPU im normalen Betriebszustand befindet, so muss nur die letztere
der Unterbrechungsroutinen aufgerufen werden.
-
Wie
in der 3 gezeigt, berücksichtigen solche
Ereignisse üblicherweise
Probleme mit der Stromversorgung und Fehler, die von einem der vielen
Detektoren oder Sensoren erkannt werden. Wie in der 3 außerdem gezeigt
ist, stellen auch Betriebsanweisungen eines Benutzers Unterbrechungsanforderungen
dar, beispielsweise das Drücken
eines Papiervorschubschalters. Selbstverständlich kann es zusätzlich zu
den in der 3 gezeigten Ereignissen auch
noch andere und/oder zusätzliche
Ereignisse, wie beispielsweise ein Zeitüberschreitungsanzeige von einem Überwachungszeitgeber
(watchdog timer) geben, die eine Unterbrechungsroutine erfordern,
welche bei unterschiedlichen Betriebszuständen der CPU ausgeführt werden kann.
Es sei darauf hingewiesen, dass es sich bei einem Überwachungszeitgeber
um einen Zeitgeber zum Erkennen eines außer Kontrolle Geratens der CPU
handelt. Gerät
die CPU außer
Kontrolle, so hält eine
Unterbrechungsroutine die CPU an und stößt eine andere Routine, wie
beispielsweise einen Reset (Neustart), an. Außerdem könnte zum Beispiel, wie nachfolgend
beschrieben werden wird, ein Unterbrechungssignal für einen Übergang
vom Ruhemodus in den regulären
Betriebszustand als Ergebnis dessen erzeugt werden, dass ein Host
eine Reaktivierungsanweisung an das Gerät, das in dieser Ausführungsform
von dem sich im Ruhemodus befindenden Drucker gebildet wird, ausgibt.
-
Eine
erste Ausführungsform
der Vorrichtung 10 zum Erzeugen eines Unterbrechungssignals
ist nachstehend unter Bezugnahme auf die 1 beschrieben.
Die von den Sensoren oder Detektoren stammenden Eingangssignale
IN (IN-1 bis IN-n) werden in die entsprechenden Unterbrechungsanweisungsdetektoren 20 (wie
beispielsweise in die Detektoren 11 bis 14 von 2)
der Vorrichtung 10 eingespeist. Die Unterbrechungsanweisungsdetektoren 20 können so
konfiguriert werden, dass sie bei Empfangen eines Eingangssignals
IN ein Detektionssignal DET (DET-1 bis DET-n) entweder ohne Einschränkungen
oder nur dann ausgeben, wenn das jeweilige Eingangssignal IN bestimmte
Bedingungen erfüllt.
-
Die
Detektionssignale werden an eine Unterbrechungsanweisungsbearbeitung 15 übergeben. Die
Unterbrechungsanweisungsbearbeitung 15 gibt ein empfangenes
Detektionssignal unter Befolgung vorgegebener Bedingungen in Form
eines mit einer genau bezeichneten Priorität versehenen Unterbrechungssignals
INT (INT-1 bis INT-n) aus. Die Unterbrechungsanweisungsbearbeitung
ist so ausgebildet, dass die Priorität eines Unterbrechungssignals, das
einem bestimmten Eingangssignal entspricht, willkürlich und
unabhängig
davon festgelegt werden kann, welches der Eingangssignale IN-1 bis
IN-n an welchem der Unterbrechungsanweisungsdetektoren 20 anliegt.
Und sie kann auch unabhängig
von den physischen Verbindungen zwischen den Unterbrechungsanweisungsdetektoren 20 und
der Unterbrechungsanweisungsbearbeitung 15 festgelegt werden.
-
Die
Unterbrechungssignale INT werden über die Unterbrechungssignalleitung 26 an
die Anschlüsse
für Unterbrechungsanweisungen
der CPU angelegt. Die CPU 1 bestimmt die Priorität für jeden
der Anschlüsse
für Unterbrechungsanweisungen
und es werden der Anschlusspriorität entsprechende Unterbrechungsroutinen
ausgeführt.
Dadurch ist es möglich
die Priorität,
mit der ein bestimmtes Unterbrechungssignal weiterverarbeitet wird,
durch die Wahl bzw. einen Wechsel des Anschlusses für Unterbrechungsanweisungen
an der CPU 1, an den das Unterbrechungssignal angelegt
wird, auszuwählen
bzw. zu ändern.
Die Unterbrechungsanweisungsbearbeitung 15 und die Unterbrechungsanweisungsdetektoren 20 empfangen
von der CPU 1 über
die Busleitung 25 Steuerungsdaten. Sie können so
eingerichtet werden, dass sie Unterbrechungsanforderungen erkennen
und die Priorität
von Unterbrechungssignalen auf der Grundlage der empfangenen Steuerdaten
festlegen oder ändern.
-
In
der 4 ist eine erste Ausführungsform der Unterbrechungsanweisungsbearbeitung 15 gezeigt.
Die Unterbrechungsanweisungsbearbeitung 15 dieser Ausführungsform
umfasst eine Steuerung 17, einen Zustandsspeicher 18 und
eine Signalverteilung 19. Die Detektionssignale DET werden
in die Signalverteilung 19 eingegeben. Die Signalverteilung 19 kann
von jeder Vorrichtung gebildet werden, die mehrere Eingangs- und
Ausgangsanschlüsse
aufweist und die ein Umschalten der Zuordnung der Eingangs- auf
die Ausgangsanschlüsse
ermöglicht.
Die Funktion der Signalverteilung 19 ist die einer Einheit zum
Festlegen bzw. Ändern
von Prioritäten.
-
Ein
Beispiel für
eine Signalverteilung 19 ist in der 5 gezeigt.
Die Signalverteilung 19 umfasst n Selektoren 19-1 bis 19-n.
Da alle Selektoren 19-1 bis 19-n bezüglich Aufbau
und Funktion identisch sind, beschränkt sich die ausführliche
Darstellung bzw. nachfolgende Beschreibung auf den ersten Selektor. Alle
Detektionssignale DET-1 bis DET-n werden gleichzeitig an alle Selektoren 19-1 bis 19-n angelegt.
-
Selektor 19-1 weist
ein n-stufiges Selektionsregister 46 auf. Jede Stufe enthält ein Bit,
d. h. für
jedes der n Detektionssignale DET-1 bis DET-n wird ein Bit verwendet.
Die Ausgänge
der n Stufen des Selektionsregisters 46 werden jeweils
an erste Eingänge
von UND-Gattern A1 bis An angelegt. Die Detektionssignale werden
an entsprechend zweite Eingänge
der UND-Gatter angelegt. Im dargestellten Beispiel werden der Ausgang
der ersten Stufe und das Detektionssignal DET-1 an das UND-Gatter A1 angelegt,
der Ausgang der zweiten Stufe und das Detektionssignal DET-2 werden
an das UND-Gatter A2, usw. angelegt. Die Ausgänge der UND-Gatter A1 bis An
werden an entsprechende Eingänge
eines ODER-Gatters 47 angelegt, das das Ausgangssignal des
Selektors 19-1 liefert, d. h. das Unterbrechungssignal
INT-1. Auch wenn dies in den Zeichnungen nicht dargestellt ist,
kann der Signalverteilung je nach Bedarf ein als Ausgangsstufe der
Vorrichtung 10 fungierender Signalformatierer nachgeschaltet
sein, um ein gewünschtes
Format, beispielsweise eine Impulsbreite, des Unterbrechungssignals
sicherzustellen. Dies trifft auf alle in diesem Text beschriebenen Ausführungsformen
zu.
-
Falls
das Bit in einer der n Stufen des Selektionsregisters 46 den
Wert 1 annimmt und in allen anderen Stufen 0 ist, dann wird nur
das dem 1-Bit entsprechende UND-Gatter aktiviert, während alle
anderen UND-Gatter deaktiviert sind. Eine 1:1 Korrelation zwischen
den Eingangs- bzw. Detektionssignalen und den Unterbrechungssignalen
kann durch Festlegen des Bits in den n Selektionsregistern der Selektoren 19-1 bis 19-n in
der Weise erfolgen, dass in jedem Selektor ein anderes der n UND-Gatter
aktiviert und alle anderen UND-Gatter deaktiviert sind. Selbstverständlich kann
die Festlegung unter Beibehaltung der 1:1 Zuordnung einfach geändert werden,
indem in allen Selektionsregisters 46 das jeweilige 1-Bit
zu einer anderen Stufe verschoben wird. Dadurch ist es bei jedem
der Eingangssignale möglich,
den Anschluss für
Unterbrechungsanweisungen, an den das entsprechende Unterbrechungssignal
angelegt werden soll, (innerhalb der 1:1 Zuordnungsbeschränkung) auszuwählen und
zu ändern.
Da den unterschiedlichen Anschlüssen
für die
Unterbrechungssignale unterschiedliche Prioritäten zugewiesen sind, kann dadurch
die Priorität
eines Unterbrechungssignals einem jeweiligen Detektionssignal entsprechend ausgewählt (und
geändert)
werden.
-
Bei
dem in der 5 gezeigten Beispiel ist im
Selektor 19-1 nur das Bit der dritten Stufe des Selektionsregisters 46 auf
1 gesetzt. Das UND-Gatter A3 ist daher aktiviert, womit das ODER-Gatter 47 nur dann
eine 1 ausgibt, wenn das Detektionssignal DET-3 anliegt. Daher wird
von dem ersten Ausgangsanschluss der Signalverteilung 19 ein
Signal in Reaktion auf das Detektionssignal DET-3 ausgegeben. Das
Ausgangssignal des ersten Ausgangsanschlusses wird als Unterbrechungssignal
INT-1 an den ersten Anschluss für
Unterbrechungsanweisungen der CPU 1 angelegt, von dem hier
angenommen wird, dass er die höchste
Priorität
von allen Anschlüssen für Unterbrechungsanweisungen
aufweist.
-
Infolgedessen
kann die Zuordnung zwischen den Eingangsanschlüssen (bzw. Eingangssignalen) und
den Ausgangsanschlüssen
(bzw. Ausgangssignalen) der Unterbrechungsanweisungsbearbeitung 15 durch
vorheriges Festsetzen bestimmter Binärwerte (Worte) in dem Selektionsregister 46 festgelegt werden,
wobei jeder Wert (jedes Wort) eine 1-Stelle und (n – 1) 0-Steilen
enthält
und wobei sich alle Werte voneinander unterscheiden. Die Voreinstellung
bzw. Änderung
des Selektionsregisters kann vorzugsweise extern vorgenommen werden.
In 4 ist eine Konfiguration gezeigt, bei der die
Einstellung über eine
Steuerung 17 vorgenommen wird. Von der CPU 1 oder
von einer Eingabevorrichtung, wie beispielsweise einer Bedienkonsole
zum Setzen oder Ändern der
Werte im Selektionsregister 46, wird ein bestimmtes Steuersignal
an die Steuerung 17 gesandt. Hierbei muss angemerkt werden,
dass die CPU 1 den Zustandsspeicher 18 und die
Signalverteilung 19 über die
Steuerung 17 ansteuert, indem sie an die Steuerung 17 über die
Busleitung 25 geeignete Steuerdaten überträgt.
-
Wenn
von der Unterbrechungsanweisungsbearbeitung 15 irgendein
Detektionssignal DET empfangen wird, speichert der Zustandsspeicher 18 Informationen
zu dessen Identifizierung. Die CPU 1 kann die Unterbrechungsanforderung,
die während einer
Unterbrechungsroutine ein Unterbrechungssignal verursacht hatte,
bestätigen,
indem es den Inhalt des Zustandsspeichers 18 ausliest.
-
Dadurch
kann es die für
diese Unterbrechungsanforderung geeignete Unterbrechungsroutine
ausführen.
-
6 ist
ein Funktionsblockschaltbild, das eine erste Ausführungsform
eines Unterbrechungsanweisungsdetektors 20 zur Verwendung
in einer erfindungsgemäßen Vorrichtung 10 zeigt.
Die Vorrichtung 10 zum Erzeugen eines Unterbrechungssignals weist,
den n Eingangssignalen IN-1 bis IN-n entsprechend, insgesamt n Unterbrechungsanweisungsdetektoren 20 auf.
Da alle n Unterbrechungsanweisungsdetektoren 20 denselben
Aufbau aufweisen, zeigt 6 nur den inneren Aufbau von
einem der Unterbrechungsanweisungsdetektoren 20, nämlich dem
für das
Eingangssignal IN-1. Ein Fall, bei dem einzelne der n Unterbrechungsanweisungsdetektoren
davon abweichende Strukturen aufweisen, wird später erläutert.
-
In
dieser ersten Ausführungsform
weist der Unterbrechungsanweisungsdetektor 20 einen Mustergenerator 21,
einen Mustervergleicher 22 und einen Detektionssignalgenerator 23 auf.
Der Mustergenerator 21 erzeugt aus dem Eingangssignal,
wie nachstehend ausführlicher
erläutert
werden wird, ein bestimmtes Signalmuster. Die Signalmustererzeugung
des Mustergenerators 21 wird Bedingungen entsprechend gesteuert,
die von der CPU über
die Busleitung 25 gesetzt werden. Das von dem Mustergenerator
erzeugte Signalmuster wird an den Mustervergleicher 22 ausgegeben.
-
Der
Mustervergleicher 22 vergleicht das von dem Mustergenerator 21 erhaltene
Signalmuster mit einem Referenzmuster. Die Daten, die das Referenzmuster
repräsentieren,
werden von der CPU 1 über die
Busleitung 25 übersandt.
Falls der Mustervergleicher zwischen dem Signalmuster und dem Referenzmuster
eine Übereinstimmung
feststellt, wird sowohl an den Detektionssignalgenerator als auch
an das Zustandsspeicherregister 18 ein Übereinstimmungssignal ausgegeben.
Wie nachstehend ausführlicher erläutert werden
wird, kann dieser Mustervergleich als eine Art Filterung mit dem
hauptsächlichen
Zweck angesehen werden, relevante Eingangssignale in Form von Detektionssignalen
weiterzuleiten und nicht relevante Eingangssignale wie beispielsweise Rauschen
zu blockieren. Ohne diese Filterung könnte zum Beispiel ein Rauschen
mit einem Eingangssignal verwechselt werden. In diesem Sinne stellt
ein Übereinstimmungssignal
ein Eingangssignal dar, das den Filter passiert hat.
-
Das
Zustandsspeicherregister 18 speichert für jeden der n Unterbrechungsanweisungsdetektoren
einen entsprechenden Merker (ein Bit), der in Erwiderung auf das Übereinstimmungssignal
gesetzt wird. Die CPU 1 kann die Unterbrechungsanforderung
identifizieren und den Zustand des Geräts bezüglich des aufgetretenen Fehlers
bestätigen,
indem sie den Inhalt dieses Zustandsspeicherregisters 18 in der
nach dem Auftreten der Unterbrechungsanweisung ausgeführten Routine
ausliest.
-
Der
Detektionssignalgenerator 23 überprüft beim Empfangen eines Übereinstimmungssignals, ob
an die Unterbrechungsanweisungsbearbeitung 15 ein Detektionssignal
gesandt werden soll. Genauer gesagt wird das Detektionssignal nicht
sofort nach Empfang eines Übereinstimmungssignals
ausgegeben, sondern nur, wenn bestimmte Bedingungen erfüllt sind.
Dahinter steht die Absicht, dass, wenn bei einem der Eingangssignale
IN-1 bis IN-n ein Übereinstimmungssignal
erhalten wird, der gegebene Ruhemodus nicht unterbrochen wird, sofern
nicht auch anderen Bedingungen entsprochen wird. Wird kein Detektionssignal
ausgegeben, dann wird an die CPU 1 auch kein Unterbrechungssignal
angelegt. Die Tatsache, dass das Übereinstimmungssignal ausgegeben wurde,
wird jedoch in dem Zustandsspeicheregister 18 gespeichert.
Die CPU 1 kann beim Auftreten einer nachfolgenden Unterbrechungsanweisung
daher bestätigen,
dass ein nicht bearbeitetes Übereinstimmungssignal
vorliegt und eine zu diesem Fehler passende Routine ausführen. Die
Bedingungen, unter denen der Unterbrechungsanweisungsdetektor 20 auf
ein Übereinstimmungssignal
hin ein Detektionssignal erzeugt, können von der CPU 1 über die
Busleitung 25 festgelegt werden. Sie können dem Konstruktionskonzept
des jeweiligen elektronischen Geräts entsprechend frei bestimmt
werden.
-
Wie
oben beschrieben, kann die CPU 1 somit in freier Weise
die Bedingungen zum Erzeugen eines Signalmusters aus einem Eingangssignal
festlegen, das Referenzmuster festlegen und die Bedingungen zum
Erzeugen eines Detektionssignals festlegen. Dadurch kann ein Unterbrechungsvorgang
erreicht werden, der für
die den tatsächlichen
Betriebsumgebungen entsprechenden komplizierten Bedingungen und
den Unterschieden in den Zeitskalen der Zustandsänderungen, bei denen das Gerät verwendet
werden kann, geeignet ist.
-
In
der 7 ist ein ausführlicheres
Beispiel für
diese erste Ausführungsform
eines Unterbrechungsanweisungsdetektors 20 gezeigt. 7 wird zur
Erläuterung
von einer der Möglichkeiten
der Mustererzeugung und des Mustervergleichs verwendet. Der Mustergenerator 21 weist
wie in der 7 gezeigt einen Taktselektor 31 und
ein Schieberegister 30 auf. Der Mustervergleicher weist
einen Komparator 22a und einen Musterspeicher 22b zum
Speichern des Referenzmusters auf. Der Detektionssignalgenerator 23 umfasst
einen Zustandsänderungsdetektor 23a und
ein Register 23b zum Festlegen von Unterbrechungsanweisungen.
-
Ein
Frequenzteiler 37 unterteilt ein Eingangstaktsignal frequenzmäßig in mehrere
Taktsignale unterschiedlicher Frequenzen. Diese werden in den Taktselektor 31 eingegeben,
der einen der angelegten Takte auf der Grundlage einer Ausgabe von
einem Taktselektionsdatenspeicher 32 auswählt. Indem
so aus den vielen Taktsignalen ein bestimmtes Taktsignal ausgewählt wird,
kann die für
ein zu detektierendes Ereignis geeignete Taktfrequenz zum Erzeugen
eines Signalmusters verwendet werden. Für unterschiedliche der n Unterbrechungsanweisungsdetektoren 20 können unterschiedliche
Takte ausgewählt
werden.
-
Welcher
Takt, d. h. welche Frequenz verwendet wird, wird von der CPU 1 im
Taktselektionsdatenspeicher 32 vorgegeben und kann von
der CPU 1 falls erforderlich geändert werden. Des Weiteren
ist der Frequenzteiler 37 außerhalb des Unterbrechungsanweisungsdetektors 20 angeordnet,
so dass durch Vorsehen eines den Eingangssignalen IN-1 bis IN-n
gemeinsamen Frequenzteilers 37 alle Unterbrechungsanweisungsdetektoren 20 mit
dem Mehrfachtakt versorgt werden können.
-
Das
Eingangssignal IN-1 wird an das Schieberegister 30 angelegt,
das von dem wie oben erläutert
ausgewählten
Takt getaktet wird. Die Eingangsstufe des Schieberegisters 30 nimmt
das Eingangssignal IN-1 auf und die Inhalte des gesamten Schieberegisters
werden mit jedem Taktimpuls sequentiell verschoben. Auch wenn in 7 ein
4-stufiges Schieberegister gezeigt ist, können je nach Bedarf auch mehr
oder weniger Stufen verwendet werden. Die Ausgangssignale von allen
Stufen des Schieberegisters werden an den Komparator 22a in
Form eines Signalmusters ausgegeben.
-
Komparator 22a vergleicht
das zuvor in dem Musterspeicher 22b gespeicherte Referenzmuster mit
dem vom Schieberegister 30 ausgegebenen Signalmuster und
gibt, wenn eine Übereinstimmung festgestellt
wird, ein Übereinstimmungssignal
an das Zustandsspeicherregister 18 und an den Detektionssignalgenerator 23 aus.
Der Zustandsänderungsdetektor 23a gibt
ein Detektionssignal bei Übereinstimmung
mit im Register 23b zum Festlegen von Unterbrechungsanweisungen
gespeicherten Bedingungen aus. Das Speichern dieser Bedingungen
im Register 23b zum Festlegen von Unterbrechungsanweisungen
wird von der CPU 1 über
die Busleitung 25 gesteuert.
-
Das
Zeitdiagramm der 8 zeigt den (ausgewählten) Takt,
das Eingangssignal IN-1, die Ausgangssignale der vier Schieberegisterstufen
und das Übereinstimmungssignal.
In diesem Beispiel ist das gespeicherte Referenzmuster 1110.
-
Es
wird angenommen, dass das Eingangssignal IN-1 zu dem in der 8 dargestellten
Zeitpunkt in den höheren
Signalpegel übergeht,
d. h. innerhalb der Impulsbreite eines mit 0 bezeichneten Taktimpulses.
Ferner sei darauf verwiesen, dass das Schieberegister 30 flankengesteuert
ist und seinen Inhalt daher bei jeder steigenden Flanke des Taktsignals
sequentiell verschiebt. Da das Eingangssignal IN-1 an der steigenden
Flanke des Taktimpulses 0 eine niedrigen Signalpegel aufweist, kann
das Schieberegister 30 keine Änderung des Eingangssignals
erkennen. Das Schieberegister 30 gibt zu diesem Zeitpunkt
daher 0000 aus.
-
An
der steigenden Flanke des nächsten
Taktsignals, das ist das Taktsignal 1, geht die Stufe 1 des Schieberegisters 30 in
den hohen Signalpegel über, da
das Eingangssignal IN-1 einen hohen Signalpegel aufweist. Zu diesem
Zeitpunkt ist das von dem Schieberegister 30 ausgegebene
Signalmuster daher 1000.
-
An
der steigenden Flanke des Taktsignals 2 ist der Signalpegel des
Eingangssignals hoch, sodass die Stufe 1 somit im hohen Signalpegel
verharrt und Stufe 2 in den hohen Signalpegel übergeht, woraus sich ein 1100
Signalmuster ergibt.
-
In
derselben Weise gibt das Schieberegister 30 beim Taktimpuls
3 das Signalmuster 1110 aus. Das Signalmuster stimmt mit dem Referenzmuster 1110 überein,
wodurch das Übereinstimmungssignal, wie
ebenfalls in 8 gezeigt ist, zum Zeitpunkt
eines Abtastsignals in den hohen Signalpegel übergeht.
-
Das
Schieberegister 30 gibt das Signalmuster 1111 mit dem Taktimpuls
4 aus. Dieses stimmt nicht mit dem Referenzmuster überein,
woraufhin das Übereinstimmungssignal
abgebrochen wird. Mit dieser Konstruktion erreicht man folgende
Vorteile:
Zunächst
kann ein durch Rauschen verursachter regelwidriger Betrieb verhindert
werden, da kein Übereinstimmungssignal
ausgegeben wird, außer
wenn für
eine bestimmte ununterbrochene Zeitspanne hindurch kein Signal eingegeben
wird. Außerdem
wird, wenn nur dann ein Übereinstimmungssignal
ausgegeben wird, wenn eine Übereinstimmung
mit dem Referenzmuster 1110 (oder mit einem anderen von 1111 verschiedenen
Referenzmuster) besteht, das Übereinstimmungssignal
nur solange ausgegeben, als auch dann eine Musterübereinstimmung
vorliegt, wenn sich das Eingangssignal über einen verlängerten
Zeitraum hinaus fortsetzt. Auf diese Weise kann eine kontinuierliche
Signalausgabe verhindert werden.
-
Fall
die Erzeugung von Unterbrechungssignalen unter anderen Bedingungen
gesteuert werden soll, ist es jedoch auch möglich, die Ausgabe eines Übereinstimmungssignals
selbst dann fortzusetzen, wenn eine Übereinstimmung nicht mehr länger feststellbar
ist. Erreicht werden kann dies durch Speichern des Übereinstimmungssignals
aus dem Komparator 22a in einem Signalspeicher, einer bistabilen Kippstufe,
oder einer anderen Vorrichtung des Detektionssignalgenerators 23,
wobei das Ausgangssignal dieser Vorrichtung als Übereinstimmungssignal verwendet
wird.
-
Alternativ
hierzu kann das Übereinstimmungssignal
durch Setzen des Referenzmusters auf 1111 aufrechterhalten werden.
In diesem Fall setzt sich das Übereinstimmungssignal
so lange fort, als, wie es in der 8 unten
dargestellt ist, das jeweilige Eingangssignal, nachdem alle Stufen
des Schieberegisters in den oberen Signalpegel übergegangen sind, einen hohen
Pegel aufweist. Ist das Referenzmuster auf 1111 gesetzt und wird
das Übereinstimmungssignal
kontinuierlich ausgegeben, dann endet die Ausgabe des Übereinstimmungssignals
automatisch, wenn das jeweilige Eingangssignal nicht mehr länger vorhanden
ist (einen niedrigen Pegel aufweist). Diese Konfiguration besitzt
daher den zusätzlichen
Vorteil, dass kein Neustart erforderlich ist, wie es bei einer wie
oben angegebenen Verwendung eines Signalspeichers oder einer ähnlichen
Vorrichtung nötig
wäre.
-
Die
oben erläuterte
Musterübereinstimmungserkennung
kann auch dafür
verwendet werden, dass der Host 50 die CPU 1 dazu
veranlasst, vom Ruhezustand in den regulären Betriebszustand überzuwechseln.
Dies wird ferner unter Verweis auf die 9 beschrieben,
worin ein Funktionsblockschaltbild der zugehörigen Konfiguration dargestellt ist.
-
In
der 9 sind ein Host 50 und ein damit verbundenes
Datenverarbeitungsgerät 60 (beispielsweise
der Drucker von 2) gezeigt. Das Datenverarbeitungsgerät 60 weist
eine erfindungsgemäße Vorrichtung 10 zum
Erzeugen von Unterbrechungssignalen, einschließlich der zuvor beschriebenen
n Unterbrechungsanweisungsdetektoren 20, auf. Einer dieser
n Unterbrechungsanweisungsdetektoren weist den in der 7 gezeigten
Aufbau auf und ist für
das Reaktivieren der CPU durch den Host reserviert. Anders als die übrigen n – 1 Unterbrechungsanweisungsdetektoren
empfängt
dieser kein Eingangssignal von einem Sensor oder Detektor. Die übrigen n – 1 Unterbrechungsanweisungsdetektoren
können, müssen aber
nicht notwendigerweise den Aufbau von 7 aufweisen.
Zur Vereinfachung und um die wesentlichen Punkte der folgenden Erläuterung
verständlicher
zu machen, ist der genaue Aufbau des Datenverarbeitungsgeräts 60 nicht
in der 9 dargestellt. Es sei darauf hingewiesen, dass
in dem Musterspeicher 22b des Unterbrechungsanweisungsdetektors 20 als
Referenzmuster 1110 gespeichert ist.
-
Wenn
der Host 50 die CPU 1 des Datenverarbeitungsgeräts 60 in
den regulären
Betriebszustand überführen will,
dann sendet der Host 50 ein 1110-Bitmuster an das Datenverarbeitungsgerät 60. Der
Pegelkonverter 27, der Protokollkonverter 28 und
die Vorrichtung 10 des Datenverarbeitungsgeräts 60 setzen
ihren Betrieb auch dann fort, wenn sich die CPU 1 im Ruhezustand
befindet. Das vom Host 50 übersandte 1110-Bitmuster wird
daher empfangen, durch den Pegelkonverter 27 und den Protokollkonverter 28 geleitet
und in das Schieberegister 30 des Unterbrechungsanweisungsdetektors 20 eingegeben.
-
Da
das Referenzmuster 1110 in dem Musterspeicher 22b gespeichert
ist, gibt der Komparator 22a ein Übereinstimmungssignal aus.
Daraufhin gibt der Detektionssignalgenerator 23 ein Detektionssignal
an die Unterbrechungsanweisungsbearbeitung 15 aus. Auf
der Grundlage dieses Detektionssignals erzeugt die Unterbrechungsanweisungsbearbeitung 15 ein
Unterbrechungsanweisungssignal und übersendet dieses an den entsprechenden
Anschluss für Unterbrechungsanweisungen
an der CPU 1. Das Unterbrechungssignal veranlasst die CPU 1 daraufhin zum Übergang
aus dem Ruhezustand in einen Betriebszustand. Daraufhin liest die
in den regulären Betriebszustand übergegangene
CPU 1 den Zustandsspeicher 18 aus, wobei sie der
darin vorgefundenen Information entnehmen wird, dass kein kritischer
Fehler aufgetreten ist, sondern der Host 50 um Aufmerksamkeit
bittet.
-
Für einen
Fachmann ist es selbstverständlich,
dass verschiedene Einrichtungen verwendet werden können, um
das 1110-Bitmuster des Hosts 50 in das Schieberegister 30 zu
schreiben. Übliche
Verfahren verwenden eine serielle Schnittstelle oder eine parallele
Schnittstelle. Zunächst
wird die Verwendung einer seriellen Schnittstelle beschrieben. Die
empfangenen Daten werden vom Protokollkonverter 28 mit
einem bestimmten Takt synchronisiert in Form von seriellen Daten
an das Schieberegister 30 ausgegeben und mit dem vom Taktselektor 31 angelegten
Schiebetakt des Registers in das Schieberegister 30 eingegeben.
Der Taktselektor 31 wählt
als Schiebetakt einen Takt aus, der mit dem (nicht in der Figur
gezeigten) Synchronisationstakt der seriellen Daten synchronisiert
ist. Wird eine parallele Schnittstelle verwendet, dann können die
empfangenen Daten, zum Beispiel 1110, in Form von parallelen Daten direkt
in das Schieberegister 30 eingegeben werden.
-
Als
nächstes
wird unter Verweis auf 10 eine zweite Ausführungsform
eines Unterbrechungsanweisungsdetektors für eine erfindungsgemäße Vorrichtung
beschrieben. 10 ist ein Funktionsblockschaltbild
eines dieser Ausführungsform
entsprechenden Unterbrechungsanweisungsdetektors 20.
-
Der
Unterschied zwischen dem in der 10 und
dem in der 8 dargestellten Unterbrechungsanweisungsdetektor
besteht darin, dass der erstere zwischen dem Taktselektor 31 und
dem Schieberegister 30 einen voreinstellbaren Frequenzteiler 38 aufweist.
Dieser Aufbau ermöglicht
die Reduzierung der Frequenz (Erhöhung der Periodendauer) des
in das Schieberegisters 30 eingegebenen Takts um jeden
beliebigen Faktor 1/N. Der Wert von N (es handelt sich um eine Ganzzahl)
wird in einem Teilerspeicher 39 gespeichert und für den Frequenzteiler 38 vorgegeben.
Die CPU 1 kann den in dem Teilerspeicher 39 gespeichert
Wert N je nach Erfordernis ändern.
Der Frequenz teiler 38 ist zusätzlich zum Frequenzteiler 37 vorgesehen,
um die Flexibilität
bezüglich
der verfügbaren
Schiebetaktfrequenzen zu erhöhen.
Fälle,
bei denen eine solche erhöhte
Flexibilität von
Nutzen ist, werden im Zusammenhang mit der nächsten Ausführungsform erläutert.
-
Als
nächstes
wird eine dritte Ausführungsform
eines Unterbrechungsanweisungsdetektors zur Verwendung in einer
erfindungsgemäßen Vorrichtung 10 unter
Bezugnahme auf die 11 beschrieben. 11 stellt
ein Funktionsblockschaltbild eines Unterbrechungsanweisungsdetektors 20 dar,
der als Modifikation der ersten oder der zweiten Ausführungsform
angesehen werden kann. Es wird darauf hingewiesen, dass die in der 11 nicht
gezeigten Teile dieses Unterbrechungsanweisungsdetektors 20 dieselben
Teile sind, wie die entsprechenden Teile der zuvor beschriebenen
Ausführungsformen.
Gegenüber
den vorhergehenden Ausführungsformen weist
der Unterbrechungsanweisungsdetektor 20 zusätzlich eine Übereinstimmungszähleinheit 40 auf, die
einen 16-Bit Zähler,
einen Zählervergleicher 42 und
einen Zählwertspeicher 43 umfasst.
-
Bei
dieser Ausführungsform
wird das von dem Komparator 22a stammende Übereinstimmungssignal
an den Aktivierungsanschluss En und an den Löschanschlusses CLR des Zählers angelegt.
Dadurch setzt sich das Zählen
solange fort, als das Übereinstimmungssignal
ausgegeben wird. Verschwindet das Übereinstimmungssignal jedoch, dann
wird der Zähler
zurückgesetzt
und nimmt das Zählen
erst mit der Ausgabe des nächsten Übereinstimmungssignals
auf. Diese Konfiguration greift dann, wenn bestimmt werden muss,
ob das Übereinstimmungssignal über einen
längeren,
einen Schwellwert überschreitenden,
Zeitraum kontinuierlich ausgegeben wird. Festzuhalten ist hierbei,
dass auch wenn in dieser Ausführungsform
ein 16-Bit Zähler 41 verwendet
wird, bei Bedarf auch Zähler
mit mehr oder weniger als 16 Bit verwendet werden können.
-
Der
Zählervergleicher 42 vergleich
den Zählwert
des Zählers 41 mit
dem von der CPU 1 in dem Zählwertspeicher 43 vorgegebenen
Wert. Stimmen beide Werte überein,
so wird an die Unterbrechungsanweisungsbearbeitung 15 eine
Detektionssignal ausgegeben. Auf der Grundlage dieses Detektionssignals
erzeugt die Unterbrechungsanweisungsbearbeitung 15 ein
Unterbrechungssignal mit einer bestimmten Priorität und übersendet
das resultierende Unterbrechungssignal an den entsprechenden Anschluss
für Unterbrechungsanweisungen
an der CPU 1. Bei Anlegen eines Unterbrechungssignals an
den Anschluss für
Unterbrechungsanweisungen wird die CPU aktiviert, bestätigt hierüber die
Unterbrechungsanforderung und führt
die erforderliche geeignete Routine aus, die von der im ROM 8 oder
RAM 9 gespeicherten Unterbrechungsroutine gesteuert wird.
-
Der
Unterbrechungsanweisungsdetektor 20 gemäß dieser dritten Ausführungsform
greift dann, wenn ein Unterbrechungssignal unter der Bedingung erzeugt
wird, dass ein Eingangssignal IN vorhanden ist, das länger als
ein normales Signal andauert. Die Anzahl der Stufen im Schieberegister 30 müsste erhöht werden,
wenn das Vorhandensein eines lang andauernden Eingangssignals unter
Verwendung eines Takts von relativ kurzer Dauer detektiert werden müsste. Andererseits
kann die Dauer der in den Mustergenerator eingegebenen Signale nicht
gleichermaßen
verlängert
werden, da ein weiter Bereich von Eingangssignalen IN möglich ist.
Zum Beispiel kann der Unterschied in den Dauern der als Unterbrechungsanforderungen
zu detektierenden Signale einen Faktor von 1000 überschreiten (bei einem kurzen Signal
könnte
dessen Länge
nur 20 μs
betragen, bei einem langen Signal 20 ms oder mehr).
-
Falls
die Länge
der zu detektierenden Eingangssignale das 1000-fache der kürzesten
zu detektierenden Signale betragen kann, ist es für den Frequenzteiler 37 nicht
nur unpraktisch, für
jede der jeweiligen Frequenzen ein Taktsignal zu erzeugen. Es ist
darüber
hinaus auch nicht mehr möglich,
fehlerfreie Signalmuster zu erzeugen. Das Schieberegister 30 nimmt
das Eingangssignal an der steigenden Flanke (alternativ könnte auch
die fallende Flanke verwendet werden) des Schiebetakts auf. Wenn ein
Eingangssignal daher während
der Dauer eines Schiebetakts verschwindet, bei der nächsten steigenden
Flanke aber wieder vorhanden ist, dann wird das Eingangssignal sequentiell
verschoben, so als ob nichts geschehen wäre. Dadurch kann die Änderung
des Eingangssignals nicht erkannt werden.
-
Die
Möglichkeit,
dass solche Probleme auftreten, nimmt mit zunehmend länger dauerndem Schiebetakt
zu, so dass eine sehr lange Dauer des Schiebetaktsignals nicht wünschenswert
erscheint. Dies trifft auch zu, wenn die Taktdauer durch den Frequenzteiler 38 im
Unterbrechungsanweisungsdetektor 20 erhöht wird. Wird zum Vermeiden
solcher Probleme ein Schiebetakt mit einer kurzen Periodendauer
verwendet, dann benötigt
das Schieberegister 30 des Mustergenerators 21 eine äußerst große Anzahl von
Schiebestufen, um das Signalmuster bei einem langen Eingangssignal
zu erzeugen.
-
Für Eingangssignale
unterschiedlicher Länge
können
unterschiedliche Arten von Unterbrechungsanweisungsdetektoren 20 verwendet
werden. Zum Beispiel wird zum Erkennen von Unterbrechungsanweisungen
bei Eingangssignalen mit einer üblicherweise
gebräuchlichen
Länge ein
Unterbrechungsanweisungsdetektor nach der ersten oder zweiten Ausführungsform
verwendet. Und zum Erkennen von Unterbrechungsanweisungen bei Eingangssignalen,
die insbesondere länger
als diese anderen Eingangssignale sind, wird ein Unterbrechungsanweisungsdetektor
nach der dritten Ausführungsform
verwendet.
-
Nachfolgend
wird der Zeitablauf zum Ausgeben des Detektionssignals an dem in
der 11 gezeigten Unterbrechungsanweisungsdetektor 20 unter Verweis
auf das Ablaufdiagramm von 12 beschrieben.
-
In
diesem Beispiel zählt
der 16-Bit Zähler 41 die
Taktimpulse eines in der obersten Zeile von 12 gezeigten
Takts B. Die Periode dieses Takts ist üblicherweise länger als
die des Takts A, der an dem Schieberegister 30 zum Detektieren
von besonders langen Eingangssignalen anliegt. Ändert sich der Pegel des Übereinstimmungssignals
von einem niedrigen Wert auf einen hohen Wert, so nimmt der Pegel
am Aktivierungsanschluss En des Zählers 41 einen hohen
Wert an, womit das Zählen
beginnt. Erreicht die Zählung
im Zähler 41 einen
Wert, der dem im Zählwertspeicher 43 gespeicherten
Zählwert
entspricht, so wird ein Zählwertübereinstimmungssignal ausgegeben.
Dieses Zählwertübereinstimmungssignal
kann anstelle des Übereinstimmungssignals
von dem Komparator 22a an den Detektionssignalgenerator 23 angelegt
werden. Es kann aber auch direkt als Detektionssignal verwendet
werden.
-
Der
Zähler 41 wird
zurückgesetzt
(untere Zeile von 12) und es wird kein Zählwertübereinstimmungssignal
ausgegeben, falls der Komparator die Ausgabe des Übereinstimmungssignals
beendet, bevor der Zähler 41 bis
zu dem gespeicherten Zählwert
hochgezählt
hat (durch gepunktete Linien angedeutet). Daher wird auch kein Detektionssignal
ausgegeben, und es erfolgt keine Unterbrechungsanweisung, wenn das Übereinstimmungssignal
von dem Komparator 22a kürzer ist als die Zeitspanne,
die der Zähler 41 zum
Hochzählen
auf den im Zählwertspeicher 43 gespeicherten
Zählwert
benötigt.