DE69024913T2 - Programmierbare Steuerungsvorrichtung mit Unterbrechungssteuerungsgerät zur Prioritätsbestimmung von Unterbrechungsanforderungen von einer Vielzahl von Ein-/Ausgabeeinrichtungen und zur Unterbrechungsvektorerzeugung - Google Patents
Programmierbare Steuerungsvorrichtung mit Unterbrechungssteuerungsgerät zur Prioritätsbestimmung von Unterbrechungsanforderungen von einer Vielzahl von Ein-/Ausgabeeinrichtungen und zur UnterbrechungsvektorerzeugungInfo
- Publication number
- DE69024913T2 DE69024913T2 DE69024913T DE69024913T DE69024913T2 DE 69024913 T2 DE69024913 T2 DE 69024913T2 DE 69024913 T DE69024913 T DE 69024913T DE 69024913 T DE69024913 T DE 69024913T DE 69024913 T2 DE69024913 T2 DE 69024913T2
- Authority
- DE
- Germany
- Prior art keywords
- interrupt
- data
- controller
- signal
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000004044 response Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 9
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Programmable Controllers (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf einen programmierbaren Controller bzw. eine programmierbare Steuerungsvorrichtung und insbesondere auf einen programmierbaren Controller mit einer Unterbrechungssteuereinrichtung, um, wenn eine Vielzahl von parallelen Eingangs-/Ausgangsvorrichtungen (I/Os) Unterbrechungsverarbeitungsanforderungen erzeugen, eine Priorität einer Unterbrechungsverarbeitung von jeder I/O zu bestimmen und einen Unterbrechungsvektor zu erzeugen.
- Ein herkömmliches Unterbrechungssteuerverfahren, das durch einen programmierbaren Controller durchgeführt wird, ist in Fig. 1 gezeigt.
- Fig. 1 ist ein Blockdiagramm, das einen herkömmlichen programmierbaren Controller zeigt.
- In Fig. 1 ist eine Zentraleinheit (CPU) 1 mit einem Speicher mit direktem Zugriff bzw. Randomspeicher (RAM) 3, einem Festspeicher (ROM) 5 und einer Basiseinheit 7 über einen internen Bus verbunden. Die CPU 1 führt ein Datenverarbeiten oder ein Unterbrechungsserviceverarbeiten für I/Os 9a, 9b und 9c durch.
- Der RAM 3 hat eine Funktion als ein Hauptspeicher und wird zum Speichern verschiedener Daten verwendet. Der ROM 5 speichert Steuerprogramme, die durch die CPU 1 auszuführen sind. Die Basiseinheit hat die Vielzahl von I/Os 9a, 9b und 9c, die in einer Gänseblumenkette angeordnet sind, eine Schnittstellenschaltung 11 zum Verbinden der CPU 1 mit den I/Os 9a, 9b und 9c über eine Schnittstelle und einen Datenbus 13 zum Verbinden der I/Os 9a, 9b und 9c sowie die Schnittstellenschaltung 11. In diesem Fall hat die I/O 9a, die am engsten bei der CPU 1 liegt, die höchste Priorität. Die I/Os 9a, 9b und 9c sind mit der Schnittstellenschaltung 11 über eine Unterbrechungsanforderungsleitung 15 verbunden, welche eine ODER-verdrahtete Anordnung hat. Die Schnittstellenschaltung 11 hat einen Unterbrechungssignalcontroller 17 und ein ODER-Gatter 19.
- Die Basiseinheit 7 ist weiterhin mit einer ausgedehnten Einheit 21 über einen ausgedehnten Bus CDATA verbunden. Es sei darauf hingewiesen, daß in Fig. 1 zur Vereinfachung der Darstellung lediglich eine ausgedehnte Einheit 21 gezeigt ist, jedoch eine Vielzahl von ausgedehnten Einheiten auf Gänseblümchenkettenweise angeschlossen werden kann. Die Basiseinheit 7, die am nächsten zur CPU 1 liegt, hat die höchste Priorität, und niedrigere Prioritäten werden sequentiell den ausgedehnten Einheiten zugeordnet. Ähnlich zu der Basiseinheit 7 hat die ausgedehnte Einheit 21 eine Vielzahl von I/Os 9a, 9b und 9c, einen Datenbus 13 und eine Unterbrechungsanforderungsleitung 15. Die ausgedehnte Einheit 21 umfaßt weiterhin eine Schnittstellenschaltung 23, die mit den I/Os 9a, 9b und 9c über den Datenbus 13 verbunden ist. Die Schnittstellenschaltung 23 hat einen Unterbrechungscontroller 25. Der Unterbrechungscontroller 25 sendet Unterbrechungsanforderungssignale IRP, die von den I/Os 9a, 9b und 9c eingespeist sind, über die Unterbrechungsanforderungsleitung 15 zu der Schnittstellenschaltung 11 der Basiseinheit 7. Daher sind das Unterbrechungsanforderungssignal IRP von der Basiseinheit 7 und das Unterbrechungsanforderungssignal IRP von der ausgedehnten Einheit 21 durch das ODER- Gatter 19 ODER-verknüpft, und das erhaltene Signal wird zu der CPU 1 als ein CPU-Unterbrechungsanforderungssignal 27 gespeist.
- Wenn die CPU 1 das CPU-Unterbrechungsanforderungssignal 27 empfängt, gibt sie ein Unterbrechungsannahmesignal INTA an die Schnittstellenschaltung 11 aus. Der Unterbrechungssignalcontroller 17 erzeugt ein Bestätigungssignal INTAC an der Vorderflanke des ersten Unterbrechungsannahmesignal INTA. Wenn eine Unterbrechungsanforderung von der Basiseinheit 7 ausgegeben ist, liefert der Controller 17 ein aktives Unterbrechungsfreigabesignal BIEI an die erste I/O 9a und ein inaktives Einheitsunterbrechungsfreigabesignal CIEI an die ausgedehnte Einheit 21, um die Unterbrechungsanforderung von der Basiseinheit 7 mit der höheren Prioritätsordnung als diejenige der ausgedehnten Einheit 21 zu akzeptieren. Wenn die erste I/O 9a selbst eine Unterbrechungsanforderung ausgibt, liefert sie ein inaktives Unterbrechungsfreigabesignal BIEO an die zweite I/O 9b. Wenn die erste I/O 9a selbst keine Unterbrechungsanforderung ausgibt, liefert sie ein aktives Unterbrechungsfreigabesignal BIEO an die nächste Stufe. In der gleichen Weise wird das Unterbrechungsanforderungssignal sequentiell zu einer Unterbrechungsanforderungsquelle übertragen. Wenn ein aktives Unterbrechungsfreigabesignal an die Unterbrechungsanforderungsquelle übertragen wird, wird ein inaktives Unterbrechungsfreigabesignal BIEO an die I/Os nach der Anforderungsquelle ausgegeben.
- Wenn keine Unterbrechungsanforderung von der Basiseinheit 7 ausgegeben wird, liefert der Unterbrechungssignalcontroller 17 ein aktives Einheitsunterbrechungsfreigabesignal CIEI an die ausgedehnte Einheit 21 synchron mit dem Bestätigungssignal INTAC. Als ein Ergebnis wird eine Unterbrechungsanforderung von der ausgedehnten Einheit 21 akzeptiert.
- Die Schnittstellenschaltung 23 in jeder ausgedehnten Einheit 21 steuert Unterbrechungsanforderungen zwischen den ausgedehnten Einheiten 21 und Unterbrechungsanforderungen von den I/Os 9a, 9b und 9c in der ausgedehnten Einheit 21. Wenn der Unterbrechungscontroller 25 in der ausgedehnten Einheit 21 ein aktives Unterbrechungsfreigabesignal CIEI von der Basiseinheit 7 empfängt, liefert er ein I/O-Unterbrechungsfreigabesignal IEI an die erste I/O 9a. Wenn die erste I/O 9a selbst keine Unterbrechungsanforderung ausgibt, liefert sie ein Unterbrechungsfreigabesignal IEO an die zweite I/O 9b. Auf die gleiche Weise wird das Unterbrechungsfreigabesignal sequentiell zu einer I/O einer Unterbrechungsanforderungsquelle übertragen.
- Fig. 2 ist ein Schaltungsdiagramm, das in Einzelheiten die I/O 9a der in Fig. 1 dargestellten Schnittstellenschaltung 23 zeigt. Es sei darauf hingewiesen, daß die Schaltungsanordnungen der anderen I/Os 9b und 9c die gleichen sind wie diejenige der I/O 9a. Die Fig. 3A bis 3H sind Zeitdiagramme, wobei Fig. 3A ein Zeitdiagramm ist, das ein Bestätigungssignal INTA zeigt, und Fig. 3B ein Unterbrechungsanforderungssignal IRP, Fig. 3C ein Unterbrechungsfreigabesignal CIEI für eine ausgedehnte Einheit, Fig. 3D ein Einheitsunterbrechungsfreigabesignal CIEO, Fig. 3E ein I/O-Unterbrechungsfreigabesignal IEI; Fig. 3F ein Verarbeitungsanforderungssignal INT, Fig. 3G ein Ausgangssignal IEO von einem UND-Gatter 206 und Fig. 3H Daten auf einem Datenbus 31 zeigen.
- Wenn in Fig. 2 die I/O 9a, 9b oder 9c in der ausgedehnten Einheit 21 eine Unterbrechungsverarbeitungsanforderung an die CPU 1 ausgeben soll, setzt eine Unterbrechungsanforderungsschaltung 203 ein in Fig. 3F dargestelltes Verarbeitungsanforderungssignal INT zu einer Zeit T1 gemäß einem Unterbrechungsfaktor so, daß es niedrig aktiv ist. Das Verarbeitungsanforderungssignal INT wird von einem Ausgangspuffer 207 (offener Kollektor) ausgegeben, ODER-verdrahtet und auf einer Unterbrechungsanforderungsleitung 15 geliefert. Das Signal auf der Unterbrechungsanforderungsleitung 15 wird durch die CPU 1 als ein Unterbrechungsanforderungssignal IRP abgerufen (Fig. 3B). Wenn die CPU 1 das Unterbrechungsanforderungssignal IRP akzeptiert, liefert sie ein Unterbrechungsbestätigungssignal INTA (Fig. 3A) an den Unterbrechungscontroller 17 zu einer Zeit T2. Da die Unterbrechungsanforderung nicht von den I/Os 9a, 9b und 9c der Einheit einschließlich des Unterbrechungscontrollers 17 ist, liefert der Controller 17 ein Bestätigungssignal INTAC an den Unterbrechungscontroller 25 in der ausgedehnten Einheit 21. Wenn das Unterbrechungsanforderungssignal IRP aktiv ist, setzt der Unterbrechungscontroller 25 ein Einheitsunterbrechungsannahmesignal l23 in einen aktiven Zustand synchron mit dem Signal INTAC. Wenn zu dieser Zeit ein Einheitsunterbrechungsfreigabesignal CIEI (Fig. 3C) aktiv ist, setzt der Controller 25 ein I/O-Unterbrechungsfreigabesignal IEI (Fig. 3E) in einen aktiven Zustand und liefert das Freigabesignal an die I/O 9a, 9b oder 9c, die die Unterbrechungsanforderung ausgibt. Wenn in diesem Fall die I/O 9a beispielsweise das Unterbrechungsfreigabesignal IEI annimmt bzw. akzeptiert, wird eine Ausgabe eines Unterbrechungsfreigabesignales IEO (Fig. 3G) an die folgenden I/Os 9b und 9c abgeschaltet. Wenn die I/Os 9a, 9b und 9c gleichzeitig die Verarbeitungsanforderungssignale INT ausgeben, setzt der Controller 25 ein I/O-Unterbrechungsannahmesignal l25 in einen aktiven Zustand synchron mit dem Bestätigungssignal INTAC. Wenn das I/O-Unterbrechungsfreigabesignal IEI aktiv ist, setzt die I/O 9a die folgenden I/Os 9b und 9c in einen Unterbrechungsabschaltzustand zu einer Zeit T3 gemäß dem Ausgangssignal IEO (Fig. 3G) von dem UND-Gatter 206. Zusätzlich veranlaßt die I/O 9a ein UND-Gatter 205, einen Vektorgenerator 208 aktiv zu werden, um einen Unterbrechungsvektor (Fig. 3H) auf einem Datenbus auszugeben. Der Ausgangsvektor wird durch die CPU 1 zu einer Zeit T4 abgerufen.
- Wenn jedoch in dem obigen herkömmlichen System die Vielzahl von I/Os 9a, 9b und 9c in der Einheit gleichzeitig die Unterbrechungsanforderungssignale IRP aktiv bezüglich der CPU 1 werden lassen, wird das I/O-Unterbrechungsfreigabesignal IEI aktiv synchron mit dem Bestätigungssignal INTAC gesetzt und sequentiell von der ersten I/O 9a übertragen. Für diesen Zweck müssen die I/Os nacheinander befestigt werden. Das heißt, wenn ein Schlitz, der eine I/O nicht befestigt, in einer Schaltung vorliegt oder eine Unterbrechungsfreigabesignalleitung nicht angeschlossen ist, kann ein Unterbrechungsfreigabesignal nicht zu einer Unterbrechungsanforderungsquelle gespeist werden, und das System ist aufgehalten.
- Es ist eine Aufgabe der vorliegenden Erfindung, einen programmierbaren Controller vorzusehen, der jede I/O in einem beliebigen Schlitz befestigen kann und der ein System daran hindert, aufgehalten zu sein, selbst wenn ein Schlitz, der eine I/O nicht befestigt, in einer Schaltung vorhanden ist.
- Es ist eine andere Aufgabe der vorliegenden Erfindung, einen programmierbaren Computer zu schaffen, der beliebig eine Unterbrechungspriorität für jede I/O setzen kann.
- Die Erfindung ist im Patentanspruch 1 angegeben.
- Um die obige Aufgabe der vorliegenden Erfindung zu lösen, ist ein programmierbarer Controller vorgesehen, mit: einer Vielzahl von parallelen I/O-Vorrichtungen, wobei jede I/O-Vorrichtung eine ihre Befestigungsstellung angebende Information als Unterbrechungsdaten ausgibt, einer Datenbuseinrichtung, die mit der Vielzahl von I/O-Vorrichtungen verbunden ist, wobei Bits, die die Datenbuseinrichtung bilden, in einer 1: 1-Entsprechung den I/O-Vorrichtungen zugewiesen sind, einer Unterbrechungsdatenverriegelungseinrichtung zum gleichzeitigen Annehmen der Unterbrechungsdaten von der Vielzahl von I/O-Vorrichtungen über die Datenbuseinrichtung und einer Unterbrechungsvektorgeneratoreinrichtung zum Erzeugen eines Unterbrechungsvektors durch Verwenden von Unterbrechungsdaten, die von den Unterbrechungsdaten gewählt sind, die durch die Verriegelungseinrichtung verriegelt sind, gemäß einer vorbestimmten Regel.
- Gemäß der vorliegenden Erfindung sind Datenleitungen eines Datenbusses, der gewöhnlich in einem Datenaustausch zwischen einer CPU und I/Os verwendet wird, in einer 1:1-Entsprechung mit den I/Os verbunden. Jede I/O hat ihren eigenen Befestigungspositionsinformationsdetektor. Jede I/O sendet ein Unterbrechungsanforderungssignal zu der CPU über eine Unterbrechungsanforderungssignalleitung. Die CPU gibt ein Bestätigungssignal an einen Unterbrechungscontroller aus. Abhängig von dem Bestätigungssignal liefert der Unterbrechungscontroller ein Unterbrechungsinformationsfreigabesignal an jede I/O. Abhängig von dem Unterbrechungsinformationsfreigabesignal erfaßt der Befestigungspositionsinformationsdetektor von jeder I/O eine Befestigungsposition der I/O. Auf der Grundlage der Befestigungspositionsinformation setzt eine Bitausziehschaltung jeder I/O eine Datenleitung eines Datenbusses entsprechend der Befestigungsposition in einen aktiven Zustand. Als Ergebnis werden die Unterbrechungsinformationen von einer Vielzahl von I/Os gleichzeitig zu dem Unterbrechungscontroller gespeist und verriegelt.
- Auf der Grundlage einer vorbestimmten Unterbrechungspriorität oder einer durch eine Prioritätssetzschaltung eingestellten Unterbrechungspriorität wählt der Unterbrechungscontroller Unterbrechungsdaten mit der höchsten Priorität von der Vielzahl von Unterbrechungsinformationen, erzeugt einen Unterbrechungsvektor und sendet den Vektor zu der CPU.
- Gemäß der vorliegenden Erfindung können daher die I/Os in beliebige Schlitze eingeführt werden und brauchen nicht nacheinander darin eingeführt zu werden. Obwohl jede I/O einen Unterbrechungsvektor in einem herkömmlichen System erzeugt, liefert der Unterbrechungscontroller zusätzlich einen Unterbrechungsvektor für jede I/O bei der vorliegenden Erfindung. Daher kann die Priorität von jeder I/O durch die Prioritätssetzschaltung eingestellt werden, um einen Unterbrechungsvektor in einer beliebigen Unterbrechungsprioritätsordnung zu erzeugen.
- Diese Erfindung kann vollständiger anhand der folgenden Detailbeschreibung im Zusammenhang mit den begleitenden Zeichnungen verstanden werden, in welchen:
- Fig. 1 ein Blockdiagramm ist, das eine Anordnung eines herkömmlichen programmierbaren Controllers zeigt,
- Fig. 2 ein Schaltungsdiagramm ist, das in Einzelheiten einen Unterbrechungscontroller und eine I/O, dargestellt in Fig. 1, zeigt,
- Fig. 3A bis 3H Zeitdiagramm sind, die Signale zeigen, die in dem in Fig. 1 dargestellten programmierbaren Controller verwendet werden,
- Fig. 4 ein Blockdiagramm ist, das ein Ausführungsbeispiel eines programmierbaren Controllers gemäß der vorliegenden Erfindung zeigt, wobei insbesondere ein Unterbrechungscontroller in Einzelheiten gezeigt ist,
- Fig. 5 ein Blockdiagramm ist, das in Einzelheiten eine Eingabe/Ausgabe-Vorrichtung, die in Fig. 4 dargestellt ist, zeigt, und
- Fig. 6A bis 6I Zeitdiagramme sind, die Signale zeigen, welche in dem in Fig. 4 dargestellten Unterbrechungscontroller und in der in Fig. 5 dargestellten Eingabe/Ausgabe- Vorrichtung verwendet sind, wobei Fig. 6A ein von jeder I/O ausgegebenes Unterbrechungsanforderungssignal IRP, Fig. 6B ein von einer CPU ausgegebenes Bestatigungssignal INTA, Fig. 6C ein von einer Schnittstellenschaltung 11 an eine ausgedehnte Einheit ausgegebenes Unterbrechungsfreigabesignal CIEI, Fig. 6D ein von einem Unterbrechungscontroller 25 ausgegebenes Einheitsunterbrechungsfreigabeausgangssignal CIEO, Fig. 6E eine von einem Prioritätscontroller 101 ausgegebene Befestigungspositionsinformation SLDAT, Fig. 6F ein von einem Zeittaktcontroller 107 ausgegebenes Unterbrechungsinformationsfreigabesignal IDEN, Fig. 6G Daten auf einem Datenbus 31, Fig. 6H ein von dem Zeittaktcontroller 107 ausgegebenes Unterbrechungserzeugungssignal IRSEL und Fig. 6I ein Lesegatterfreigabesignal RGEN zeigen.
- Fig. 4 ist ein Blockdiagramm, das in Einzelheiten einen Unterbrechungscontroller eines programmierbaren Controllers gemäß der vorliegenden Erfindung zeigt. Obwohl eine CPU, ein ROM, ein RAM und dergleichen in Fig. 4 zur Vereinfachung der Darstellung nicht gezeigt sind, sind diese Teile auch in diesem Controller wie in dem in Fig. 1 dargestellten herkömmlichen programmierbaren Controller enthalten. Es sei darauf hingewiesen, daß in Fig. 4 die Bezugszeichen wie in Fig. 1 die gleichen Teile bezeichnen.
- Zur Vereinfachung der Darstellung werden eine Anordnung und ein Betrieb unten beschrieben, indem ein Unterbrechungscontroller und eine I/O in einer ausgedehnten Einheit als ein Beispiel genommen werden, jedoch sind eine Anordnung und ein Betrieb einer Basiseinheit im wesentlichen gleich. Obwohl zusätzlich eine Vielzahl von Einheiten auch bei der vorliegenden Erfindung verbunden werden kann, ist sie zur Vereinfachung der Darstellung weggelassen.
- I/Os 30a und 30b geben Unterbrechungsanforderungssignale IRP über eine Unterbrechungsanforderungsleitung 15 wie bei dem in Fig. 1 gezeigten herkömmlichen System ab. Ein Unterbrechungscontroller 10 ist mit den I/Os 30a und 30b über einen Datenbus 31 verbunden. Der Datenbus 31 hat 16 Bits, die in einer 1:1-Entsprechung den I/Os 30a und 30b zugewiesen sind. Bei diesem Ausführungsbeispiel kann daher eine Höchstzahl von 16 I/Os mit einer ausgedehnten bzw. erstreckten oder ausgefahrenen Einheit verbunden werden.
- Eine Unterbrechungsdatenverriegelungsschaltung 100 besteht aus beispielsweise einem 16-Bit-Register und verriegelt gleichzeitig eine Unterbrechungsinformation auf dem Datenbus, d.h. eine Befestigungspositionsinformation eines Maximums von 16 I/Os. Der Ausgang von der Unterbrechungsdatenverriegelungsschaltung 100 ist mit dem Eingang eines Prioritätscontrollers 101 verbunden. Der Prioritätscontroller 101 empfängt weiterhin Prioritätsinformation von einer Prioritätseinstellschaltung 102, bestimmt Unterbrechungsdaten mit der höchsten Priorität unter der Vielzahl von Unterbrechungsdaten und gibt die Befestigungspositionsinformation an einen Vektorgenerator 104 aus. Der Vektorgenerator 104 erzeugt einen Unterbrechungsvektor auf der Grundlage der Befestigungspositionsinformation, die von dem Prioritätscontroller 101 ausgegeben ist, und einer Einheitszahl, die von einem Einheitszahlgenerator 103 ausgegeben ist. (Die Einheitszahl wird durch vier Bits gebildet. In diesem Ausführungsbeispiel kann daher ein Maximum von 16 Einheiten verbunden werden.) Der erzeugte Unterbrechungsvektor wird zu der CPU 1 über einen ausgedehnten Datenbus CDATA gespeist. Ein Puffer 106 ist ein Zweirichtungsbus, der in einem normalen Datenaustausch zwischen der CPU 1 und der I/O 30a verwendet wird. Ein Zeittaktcontroller 107 empfängt ein Lesesignal RD, ein Bestätigungssignal INTAC und ein Einheitswählsignal SEL und liefert ein Freigabesignal DEN und ein die Richtwirkung anzeigendes Signal DIR zu dem Puffer 106, ein Anforderungsverriegelungssignal IREQL zu der Unterbrechungsanforderungsverriegelungsschaltung 100 und ein Unterbrechungsinformationsfreigabesignal IDEN zu den I/Os 30a und 3db. Der Einheitszahlgenerator 103 ist in jeder Einheit (eine Basiseinheit und eine ausgedehnte Einheit) angeordnet, um eine Einheitszahl zu erzeugen, um die Einheit zu identifizieren; und besteht aus beispielsweise einem Addierer. Der Generator 103 setzt eine Einheitszahl, beispielsweise "0000" für eine Einheit am nächsten zu der CPU 1 und liefert Einheitszahlen, die sequentiell um Eins erhöht bzw. inkrementiert werden. Die Prioritätseinstellschaltung 102 setzt die höchste Priorität in einem Datum der Unterbrechungsdaten von einer Vielzahl von I/Os. Eine Information, die eine I/O mit Unterbrechungsdaten anzeigt, zu der die höchste Priorität zu setzen ist, wird von der CPU 1 zu der Prioritatseinstellschaltung 102 über den Zweirichtungspuffer 106 gespeist.
- Fig. 5 ist ein Schaltungsdiagramm, das in Einzelheiten die I/Os 30a und 3db zeigt. In Fig. 5 liefert eine Unterbrechungsanforderungsschaltung 203 ein Unterbrechungsanforderungsverarbeitungssignal 24 abhängig von einem Unterbrechungsfaktor (beispielsweise dem Ende eines Verarbeitens der I/O 30a). Das Ausgangsunterbrechungsanforderungsverarbeitungssignal l24 wird zu der Unterbrechungsanforderungssignalleitung 15 über den Ausgangspuffer (offener Kollektor) 207 gespeist, mit einem Unterbrechungsanforderungsverarbeitungssignal von der anderen I/O 30b ODER-verdrahtet und dann zu der CPU 1 als ein Unterbrechungsanforderungssignal IRP gespeist. Das Unterbrechungsanforderungsverarbeitungssignal l24 wird auch zu einem Eingangsanschluß eines UND-Gatters 303 gespeist. Wenn das Unterbrechungsanforderungsverarbeitungssignal l24 von der Unterbrechungsanforderungsschaltung 203 ausgegeben und ein Unterbrechungsinformationsfreigabesignal IDEN von dem Zeittaktcontroller 107 geliefert wird, gibt das UND-Gatter 303 ein Freigabesignal an eine Bitausziehschaltung 302 ab.
- Auf der Grundlage der Vier-Bit-Information, die von vier spezifischen Stiften ausgegeben ist, die einem Verbinder einer Mutterplatte zugeordnet sind, erfaßt ein I/O-Positionsdetektor 304 eine Positions- bzw. Lageinformation, die eine Befestigungsposition einer I/O anzeigt. Beispielsweise sind die obigen vier spezifischen Stifte mit der Masse derart verbunden, daß "0000" ausgegeben wird, wenn die Befestigungsstellung der 0-te Schlitz ist. Zusätzlich sind der erste bis dritte Stift der obigen vier Stifte mit der Masse verbunden, und der vierte Stift hiervon ist auf +5 V derart hochgezogen, daß "0001" ausgegeben wird, wenn eine I/O in einem ersten Schlitz befestigt ist. Auf diese Weise liefert der I/O-Positionsdetektor 304 eine "0000" bis "1111" anzeigende Positionsinformation bezüglich der 0-ten bis 15-ten Schlitze. Eine I/O Einheitsinternschaltung 301 wird in einem normalen Datenaustausch zwischen der CPU 1 und der I/O 30a verwendet. Da die Schaltung 301 nicht mit einer Unterbrechungsverarbeitung zugeordnet ist, wird ihre Detailbeschreibung ausgelassen.
- Abhängig von dem Freigabesignal von dem UND-Gatter 303 liefert die Bitausziehschaltung 302 eine Befestigungspositionsinformation ihrer eigenen I/O auf dem Datenbus. In diesem Fall besteht die Bitausziehschaltung 302 aus beispielsweise einem Multiplexer und liefert ein Bit entsprechend der von dem I/O-Positionsdetektor 304 ausgegebenen Befestigungspositionsinformation. Wenn beispielsweise eine von dem I/O-Positionsdetektor 304 ausgegebene Information den Wert "0000" hat, so setzt die Bitausziehschaltung 302 ein Bit "0" auf eine lögische "1" und alle verbleibenden Bits auflogische "0" und liefert die Bits auf den Datenbus 31 als Unterbrechungsdaten. Wenn die von dem I/O-Positionsdetektor 304 ausgegebene Information "0001" ist, so setzt die Bitausziehschaltung 302 ein Bit "1" auf eine logische "1" und alle verbleibenden Bits auf eine logische "0" und liefert die Bits auf dem Datenbus 31.
- Ein Betrieb dieses Ausführungsbeispiels mit der obigen Anordnung wird im folgenden anhand der in den Fig. 6A bis 6I dargestellten Flußdiagramme erläutert.
- Es sei darauf hingewiesen, daß in der folgenden Beschreibung dieses Ausführungsbeispiels angenommen wird, daß ein Unterbrechungsanforderungssignal von einer ausgedehnten Einheit geliefert ist.
- Abhangig von einer Erzeugung eines Unterbrechungsfaktors befiehlt die in Fig. 5 gezeigte I/O Einheitsinternschaltung 301 der Unterbrechungsanforderungsschaltung 203, ein Unterbrechungsverarbeitungsanforderungssignal auszugeben. Als ein Ergebnis liefert die Unterbrechungsanforderungsschaltung 203 ein Unterbrechungsverarbeitungsanforderungssignal l24 auf der Unterbrechungsanforderungsleitung 15 über den Ausgangspuffer 207 und zu einem Eingangsanschluß des UND-Gatters 303. Die Unterbrechungsverarbei tungsanforderungss ignale auf der Unterbrechungsanforderungsleitung 15 sind ODER- verdrahtet, und das erhaltene Signal wird zu der CPU 1 als ein Unterbrechungsanforderungssignal IRP (niedrig aktiv) gespeist, das in Fig. 6A gezeigt ist. Abhängig von diesem Unterbrechungsanforderungssignal IRP liefert die CPU 1 ein in Fig. 6B gezeigtes Bestätigungssignal INTA zu dem Unterbrechungscontroller 17 in der Basiseinheit 7. Da das Unterbrechungsanforderungssignal nicht von der Einheit einschließlich des Unterbrechungscontrollers 17 ausgegeben ist, bestimmt der Controller 17, daß das Bestätigungssignal für ein Unterbrechungsanforderungssignal von einer ausgedehnten Einheit ausgegeben ist und liefert ein in Fig. 6C gezeigtes Einheitsunterbrechungsfreigabesignal CIEI zu der folgenden ausgedehnten Einheit und das Bestätigungssignal INTAC zu dem Zeittaktcontroller 107 in dem Unterbrechungscontroller 10 in der ausgedehnten Einheit 21. Abhängig von dem Bestätigungssignal INTAC liefert der Zeittaktcontroller 107 ein inaktives Freigabesignal DEN, um den Puffer 106 abzuschneiden, und speist ein in Fig. 6F gezeigtes Unterbrechungsdatenfreigabesignal IDEN zu den I/Os 30a und 30b. Abhängig von dem Unterbrechungsdatenfreigabesignal IDEN liefert der I/O-Positionsdetektor 304 eine I/O Befestigungspositionsinformation zu der Bitausziehschaltung 302. In der Zwischenzeit liegt das Unterbrechungsdatenfreigabesignal an dem UND-Gatter 303. Da eine UND-Bedingung erfüllt ist, liefert das UND-Gatter 303 ein Freigabesignal zu der Bitausziehschaltung 302. Als ein Ergebnis liefert die Bitausziehschaltung 302 eine Bitinformation entsprechend der I/O- Befestigungspositionsinformation auf dem Datenbus 31 als eine in Fig. 6G gezeigte Unterbrechungsinformation. Da dann der Zeittaktcontroller 107 ein in Fig. 6H gezeigtes Anforderungsverriegelungssignal IREQL zu der Unterbrechungsdatenverriegelungsschaltung 100 liefert, verriegelt die Unterbrechungsdatenverriegelungsschaltung 100 die Unterbrechungsdaten auf dem Datenbus 31. Danach werden die durch die Unterbrechungsdatenverriegelungsschaltung 100 verriegelten Unterbrechungsdaten zu dem Prioritätscontroller 101 gespeist. Prioritätseinstelldaten werden auch-von der Prioritätseinstellschaltung 102 zu dem Prioritätscontroller 101 gespeist. Als ein Ergebnis liefert der Prioritätscontroller 101 ein inaktives Unterbrechungsfreigabesignal CIEO (Fig. 6D) zu der folgenden ausgedehnten Einheit. Zusätzlich wählt der Prioritätscontroller 101 Unterbrechungsdaten mit der höchsten Priorität entsprechend den Prioritätseinstelldaten und gibt die gewählten Daten zu dem Vektorgenerator 104 als Befestigungspositionsdaten (Schlitzvektor) SLTDAT, die in Fig. 6E gezeigt sind, ab.
- Folglich erzeugt der Vektorgenerator 104 einen Unterbrechungsvektor einschließlich einer von dem Einheitszahlgenerator 103 ausgegebenen Einheitszahl und des Schlitzvektors von dem Prioritätscontroller 101. Die CPU 1 gibt ein Lesesignal RD zum Auslesen des Unterbrechungsvektors an den Zeittaktcontroller 107 ab. Abhängig von dem Lesesignal RD liefert der Zeittaktcontroller 107 ein Lesegatterfreigabesignal RGEN, das in Fig. 6I gezeigt ist, an den Vektorgenerator 104.
- Der Prioritätscontroller 101 liefert auch ein Unterbrechungserzeugungssignal IRSEL zu einem UND-Gatter 105. Da ein aktives ausgedehntes Einheitsunterbrechungsfreigabesignal CIEI auch zu dem UND-Gatter 105 gespeist ist, wird eine UND-Bedingung erfüllt. Daher liefert das UND-Gatter 105 ein Vektordatenfreigabesignal VDEN zu dem Vektorgenerator 104. Abhängig von dem von dem Zeittaktcontroller 107 ausgegebenen Lesegatterfreigabesignal RÖEN und dem Datenfreigabesignal VDEN speist der Unterbrechungsvektorgenerator 104 den Unterbrechungsvektor zu der CPU 1 über den ausgedehnten Datenbus.
- Wenn die CPU 1 den Unterbrechungsvektor empfängt, speist sie einen Befehl zu der durch den Unterbrechungsvektor bezeichneten Einheit über den Datenbus, so daß die Einheit die Unterbrechungsanforderung löscht. Die I/O-Einheitsinternschaltung 301 empfängt diesen Befehl und befiehlt der Unterbrechungsanforderungsschaltung 203, das Ausgeben des Unterbrechungsanforderungsverarbeitungssignales zu stoppen.
- Es sei darauf hingewiesen, daß die vorliegende Erfindung nicht auf das obige Ausführungsbeispiel begrenzt ist. Beispielsweise bestimmt in dem obigen Ausführungsbeispiel der Prioritätscontroller 101 die Priorität der Unterbrechungsdaten auf der Grundlage der Prioritätsdaten von der Prioritätseinstellschaltung 102. Die Priorität kann jedoch auf der Grundlage fester Prioritätsdaten bestimmt werden.
Claims (6)
1. Programmierbarer Controller mit einer
Zentraleinheit (CPU 5), die ein
Unterbrechungsanforderungssignal (IRQ) empfangen und ein
Unterbrechungsfreigabesignal (IDEN) ausgeben kann, einer mit der CPU
verbundenen Schnittstellenschaltung (10), einer
Vielzahl von parallelen I/O-Vorrichtungen, die über
die Schnittstellenschaltung angeschlossen sind, und
einem Datenbus (DATA BUS) zum Verbinden der
Schnittstellenschaltung mit der Vielzahl von I/O-
Vorrichtungen,
wobei jede der I/O-Vorrichtungen umfaßt:
eine Einrichtung zum Ausgeben eines
Unterbrechungsanforderungssignales an die CPU,
eine Einrichtung (304) zum Erfassen einer
Befestigungsposition der I/O-Vorrichtung, und
eine Einrichtung (301, 302, 303), um abhängig
von dem Unterbrechungsfreigabesignal von der CPU
eine Information, die eine Befestigungsposition
anzeigt, auf der Grundlage der erfaßten
Befestigungspositionsinformation zu erzeugen und die
Information als eine Unterbrechungsinformation auszugeben,
und
wobei die Schnittstelleneinrichtung umfaßt:
eine Einrichtung (100) zum Verriegeln der von
der Vielzahl von I/O-Vorrichtungen über den
Datenbus eingespeisten Unterbrechungsdaten,
eine Einrichtung (104) zum Erzeugen eines
Unterbrechungsvektors durch Verwenden von
Unterbrechungsdaten, die aus der Vielzahl von
Unterbrechungsdaten gemäß einer vorbestimmten Regel
ausgewählt sind, und
eine Einrichtung (CDATA) zum Einspeisen des
erzeugten Unterbrechungsvektors in die CPU.
2. Controller nach Anspruch 1, dadurch gekennzeichnet,
daß die Unterbrechungsvektor-Generatoreinrichtung
einen Unterbrechungsvektor einer I/O-Vorrichtung
mit der höchsten Priorität erzeugt.
3. Controller nach Anspruch 1, dadurch gekennzeichnet,
daß den Datenbus bildende Datenleitungen in einer
1:1-Entsprechung den I/O-Vorrichtungen zugewiesen
sind und jede I/O-Vorrichtung die
Unterbrechungsdaten mittels einer dort zugewiesenen Datenleitung
ausgibt.
4. Controller nach Anspruch 1, gekennzeichnet durch
weiterhin eine Prioritätseinstelleinrichtung (102),
die beliebig eine I/O-Vorrichtung einstellen kann,
für die ein Unterbrechungsvektor früher als
diejenigen für andere bezüglich der Unterbrechungsdaten
von der Vielzahl von I/O-Vorrichtungen zu erzeugen
ist.
5. Controller nach Anspruch 1, dadurch gekennzeichnet,
daß die Vielzahl von I/O-Vorrichtungen eine einzige
Einheit bildet und eine Vielzahl von Einheiten (4A,
4B) in hierarchischer Weise angeordnet und in einer
Gänseblümchenkette verbunden sind.
6. Controller nach Anspruch 5, gekennzeichnet durch
weiterhin eine
Einheitsidentifikationsdatengeneratoreinrichtung (103) zum Identifizieren jedes
Datums, wobei die Unterbrechungsdaten ein
Einheitsidentifikationsdatum und eine
Zwischeneinheitsbefestigungspositionsinformation umfassen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1279645A JPH03142504A (ja) | 1989-10-30 | 1989-10-30 | プログラマブルコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69024913D1 DE69024913D1 (de) | 1996-02-29 |
DE69024913T2 true DE69024913T2 (de) | 1996-05-30 |
Family
ID=17613870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69024913T Expired - Lifetime DE69024913T2 (de) | 1989-10-30 | 1990-10-29 | Programmierbare Steuerungsvorrichtung mit Unterbrechungssteuerungsgerät zur Prioritätsbestimmung von Unterbrechungsanforderungen von einer Vielzahl von Ein-/Ausgabeeinrichtungen und zur Unterbrechungsvektorerzeugung |
Country Status (5)
Country | Link |
---|---|
US (1) | US5430879A (de) |
EP (1) | EP0426081B1 (de) |
JP (1) | JPH03142504A (de) |
KR (1) | KR940000289B1 (de) |
DE (1) | DE69024913T2 (de) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590338A (en) * | 1993-07-23 | 1996-12-31 | Dell Usa, L.P. | Combined multiprocessor interrupt controller and interprocessor communication mechanism |
JPH07105175A (ja) * | 1993-10-08 | 1995-04-21 | Nec Corp | マイクロコンピュータ |
US5671421A (en) * | 1994-12-07 | 1997-09-23 | Intel Corporation | Serial interrupt bus protocol |
US5812875A (en) * | 1995-05-02 | 1998-09-22 | Apple Computer, Inc. | Apparatus using a state device and a latching circuit to generate an acknowledgement signal in close proximity to the request signal for enhancing input/output controller operations |
US5819112A (en) * | 1995-09-08 | 1998-10-06 | Microsoft Corporation | Apparatus for controlling an I/O port by queuing requests and in response to a predefined condition, enabling the I/O port to receive the interrupt requests |
DE69726400T2 (de) * | 1996-09-20 | 2004-08-26 | Koninklijke Philips Electronics N.V. | Festkörper-datenprozessor mit vielseitiger mehrquellen-unterbrechungsorganisation |
US8239594B2 (en) * | 2005-11-10 | 2012-08-07 | Datacard Corporation | Modular card issuance system and method of operation |
JP4544348B2 (ja) * | 2008-07-14 | 2010-09-15 | ソニー株式会社 | リモートコントローラ、画像信号処理装置および画像信号処理方法 |
KR102337098B1 (ko) * | 2021-03-31 | 2021-12-09 | 남경건설(주) | 균열제어형 친환경 초조강 시멘트 콘크리트 조성물 및 이를 이용한 도로의 보수시공방법 |
KR102337102B1 (ko) * | 2021-03-31 | 2021-12-13 | (주)화진건설 | 향상된 염해 및 동결융해 저항성을 갖는 초조강 시멘트 콘크리트 조성물 및 이를 이용한 도로의 보수시공방법 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3832692A (en) * | 1972-06-27 | 1974-08-27 | Honeywell Inf Systems | Priority network for devices coupled by a multi-line bus |
US4030075A (en) * | 1975-06-30 | 1977-06-14 | Honeywell Information Systems, Inc. | Data processing system having distributed priority network |
JPS5783839A (en) * | 1980-11-13 | 1982-05-25 | Hitachi Ltd | Control system for interruption request priority |
US4442502A (en) * | 1981-03-30 | 1984-04-10 | Datapoint Corporation | Digital information switching system |
US4562535A (en) * | 1982-04-05 | 1985-12-31 | Texas Instruments Incorporated | Self-configuring digital processor system with global system |
US4494192A (en) * | 1982-07-21 | 1985-01-15 | Sperry Corporation | High speed bus architecture |
JPS5999521A (ja) * | 1982-11-29 | 1984-06-08 | Toshiba Corp | インタフエ−ス回路 |
US4559595A (en) * | 1982-12-27 | 1985-12-17 | Honeywell Information Systems Inc. | Distributed priority network logic for allowing a low priority unit to reside in a high priority position |
US4745548A (en) * | 1984-02-17 | 1988-05-17 | American Telephone And Telegraph Company, At&T Bell Laboratories | Decentralized bus arbitration using distributed arbiters having circuitry for latching lockout signals gated from higher priority arbiters |
CA1218465A (en) * | 1984-04-30 | 1987-02-24 | Jerry D. Neal | Communications controller board |
US4914574A (en) * | 1984-08-16 | 1990-04-03 | Mitsubishi Denki Kabushiki Kaisha | Data transmission apparatus having cascaded data processing modules for daisy chain data transfer |
DE3688759T2 (de) * | 1985-03-20 | 1994-01-05 | Hitachi Ltd | Ein-/Ausgabe-Steuerungssystem. |
JPS61288251A (ja) * | 1985-06-17 | 1986-12-18 | Toshiba Corp | プログラマプルコントロ−ラの割込ベクタ生成方法 |
US4724519A (en) * | 1985-06-28 | 1988-02-09 | Honeywell Information Systems Inc. | Channel number priority assignment apparatus |
US5101478A (en) * | 1985-06-28 | 1992-03-31 | Wang Laboratories, Inc. | I/O structure for information processing system |
JPS62226257A (ja) * | 1986-03-27 | 1987-10-05 | Toshiba Corp | 演算処理装置 |
US4888684A (en) * | 1986-03-28 | 1989-12-19 | Tandem Computers Incorporated | Multiprocessor bus protocol |
US4972368A (en) * | 1988-03-04 | 1990-11-20 | Stallion Technologies, Pty. Ltd. | Intelligent serial I/O subsystem |
US5274781A (en) * | 1988-07-25 | 1993-12-28 | Allen-Bradley Company, Inc. | Programmable controller module identification by interconnecting the input and output ports of a module in a predefined manner |
-
1989
- 1989-10-30 JP JP1279645A patent/JPH03142504A/ja active Pending
-
1990
- 1990-10-29 EP EP90120726A patent/EP0426081B1/de not_active Expired - Lifetime
- 1990-10-29 DE DE69024913T patent/DE69024913T2/de not_active Expired - Lifetime
- 1990-10-29 KR KR1019900017322A patent/KR940000289B1/ko not_active IP Right Cessation
-
1993
- 1993-07-19 US US08/093,035 patent/US5430879A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0426081B1 (de) | 1996-01-17 |
US5430879A (en) | 1995-07-04 |
EP0426081A2 (de) | 1991-05-08 |
EP0426081A3 (en) | 1991-12-18 |
KR940000289B1 (ko) | 1994-01-14 |
KR910008586A (ko) | 1991-05-31 |
JPH03142504A (ja) | 1991-06-18 |
DE69024913D1 (de) | 1996-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69120586T2 (de) | Rechnersystem mit synchronem Bus | |
DE69121382T2 (de) | Emulator zur Emulation eines verbindungsloses Mikrokontroller und Mikrokontroller zur Verwendung in einem solchen Emulator | |
DE4305442C2 (de) | Verfahren und Vorrichtung zum Erzeugen eines Testvektors | |
DE68925046T2 (de) | Konfigurationssteuerungssystem | |
DE19580707C2 (de) | PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus | |
DE69305049T2 (de) | Hochfrequenz- cmos-schaltung mit geringen verbrauch | |
DE2856483C2 (de) | ||
DE69023018T2 (de) | Prozessor-Unterbrechungssteuerung. | |
DE3586421T2 (de) | Anzeigegeraet. | |
DE69026479T2 (de) | Datenprozessor mit Wartezustandsteuerungseinheit | |
DE3508291A1 (de) | Realzeit-datenverarbeitungssystem | |
DE3752017T2 (de) | Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit | |
DE4018505C2 (de) | ||
DE2744531A1 (de) | Elektronische datenverarbeitungsanlage | |
DE19860650A1 (de) | Chip-Satz-Speichersteuervorrichtung mit Datenausblend-Maskenfunktion | |
DE2523372B2 (de) | Eingabe-ZAusgabe-Anschlußsteuereinrichtung | |
EP0014850A1 (de) | Einrichtung zur Erweiterung des Standard-Makroinstruktionssatzes in einer Datenverarbeitungsanlage | |
DE69024913T2 (de) | Programmierbare Steuerungsvorrichtung mit Unterbrechungssteuerungsgerät zur Prioritätsbestimmung von Unterbrechungsanforderungen von einer Vielzahl von Ein-/Ausgabeeinrichtungen und zur Unterbrechungsvektorerzeugung | |
DE69025524T2 (de) | Vorrichtung und Verfahren zur Steuerung von Speicherzugriffsanforderungen in einem digitalen Datenverarbeitungssystem | |
DE69028498T2 (de) | Datenübertragungssystem und -verfahren | |
DE3727017A1 (de) | Synchronisiervorrichtung fuer prozessoren | |
DE3850808T2 (de) | Erzeugung von Taktimpulsen. | |
DE3587446T2 (de) | Signalverarbeitungsprozessor und hierarchische Multiverarbeitungstruktur mit mindestens einem solchen Prozessor. | |
DE2844295A1 (de) | Verfahren und vorrichtung zur steuerung der datentransferrichtung auf einem datenbus | |
DE3789471T2 (de) | Mikrocomputer. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8320 | Willingness to grant licences declared (paragraph 23) |