-
Die vorliegende Erfindung betrifft einen Datenprozessor und
insbesondere einen Mikrocomputer, der einen Analog-Digital-
Wandler (nachfolgend "A/D-Wandler" genannt) zur Umwandlung
der Signale auf mehreren analogen Eingangskanälen in die
entsprechenden Digitaldaten enthält.
-
Ein Mikrocomputer, der einen A/D-Wandler enthält, kann an
einem ihm zugeführten Analogsignal eine
Datenverarbeitungsoperation vornehmen und wird deshalb in verschiedenen
Systemen in breitem Umfang eingesetzt. Wenn eine
Datenverarbeitung des Analogsignals erfolgen soll, gibt die CPU
(Zentralverarbeitungseinheit) im Mikrocomputer einen
Konvertierungsbefehl an den A/D-Wandler, übernimmt dann das
umgewandelte Digitaldatum und verarbeitet es in der geforderten
Weise.
-
Nach der Übergabe des Konvertierungsbefehls an den A/D-
Wandler besteht hinsichtlich der Arbeitsweise der CPU ein
ernstes Problem. Die Zeit, die der A/D-Wandler für das
Umwandeln des Analogsignals in ein Digitalsignal benötigt,
ist erheblich länger als die Zeit, die von der CPU
gebraucht wird, um einen Befehl auszuführen. Aus diesem Grund
verringert ein erstes Steuerverfahren, bei welchem die
nachfolgenden Verarbeitungsoperationen durch die CPU
gestoppt werden bis das umgewandelte Digitaldatum aus dem
A/D-Wandler vorliegt, den Wirkungsgrad der CPU
beträchtlich.
Um dieses Problem zu lösen, wird ein zweites
Steuerverfahren eingesetzt, bei welchem die CPU nach der Übergabe
des Konvertierungsbefehle an den A/D-Wandler mit der
Bearbeitung der nachfolgenden Operationen fortfährt, und bei
dem andererseits der A/D-Wandler ein
Unterbrechungsanforderungssignal an die CPU schickt, wenn die
Konvertierungsoperation beendet ist. Wenn ein
Unterbrechungsanforderungssignal vorliegt, stellt die CPU die Operationen in der
Hauptprogrammroutine ein und sichert die Inhalte des
Programmzählers und des Statusregisters in einem Stackbereich
des Datenspeichers, gefolgt vom Start einer
Unterbrechungsprogrammroutine. Der Programmzähler wird zum Lesen des
Eefehls aus dem Programmspeicher verwendet und das
Statusregister speichert die Statusdaten, die den
Bearbeitungszustand in der CPU kennzeichnen. In Übereinstimmung mit der
Arbeit in der Unterbrechungsprogrammroutine liest die CPU
das umgewandelte Datum aus dem A/D-Wandler und überträgt es
in einen vorbestimmten Zielbereich des Datenspeichers. Wenn
die Arbeit in der Unterbrechungsprogrammroutine beendet
ist, führt die CPU die vorher gesicherten Inhalte wieder
zum Programmzähler beziehungsweise zum Statusregister
zurück und nimmt die Arbeit in der Hauptprogrammroutine
wieder auf. Mit dem zweiten Steuerverfahren läßt sich also der
Wirkungsgrad der CPU verbessern. Damit jedoch die CPU die
Unterbrechungsprogrammroutine starten und später die
unterbrochene Hauptprogrammroutine wieder aufnehmen kann, ist
ein zusätzlicher Systemverwaltungsaufwand zur Speicherung
der Inhalte des Programmzählers und des Statusregisters
beziehungsweise zum Zurückführen der gesicherten Inhalte
erforderlich. Aus diesem Grund schränkt dieses
Steuerverfahren den Wirkungsgrad und die Verarbeitungsleistung der CPU
ein.
-
Um die Nachteile des ersten und zweiten Steuerverfahrens zu
überwinden, wurde deshalb in der EP-A-0 153 764,
veröffentlicht am 4. September 1985, ein neues Steuerverfahren
beschrieben.
Dieses Steuerverfahren gestattet es, die durch
die Beendigung der A/D-Wandlung auszulösende Operation,
d.h. die Übertragung der umgewandelten Daten zum
Zielbereich, ohne Eingriff in die Arbeit irgendeines
Anwenderprogramms durchzuführen. Im Einzelnen ist der in der obigen
Veröffentlichung beschriebene Nikrocomputer so aufgebaut,
daß er zwei Arten von Unterbrechungsoperationen ausführen
kann, wobei die erste von ihnen unter Verwendung eines
Anwenderunterbrechungsprogramms ausgeführt wird und
demzufolge die Inhalte des Programmzählers und des
Statusregisters registriert werden müssen, während die zweite ohne
Verwendung eines Anwenderunterbrechungsprogramms realisiert
wird, wobei die Inhalte des Programmzählers und des
Statusregisters erhalten bleiben. Wenn der A/D-Wandler eine
Unterbrechungsanforderung abgibt, und damit eine
Unterbrechungsoperation zweiter Art einleitet, stellt die CPU die
momentane Programmbearbeitung ein, verbietet eine Änderung
der Inhalte des Programmzählers und des Statusregisters und
überträgt dann das umgewandelte Datum in den Zielbereich,
ohne die Inhalte des Programmzählers und des
Statusregisters zu sichern, wobei sie erhalten bleiben wie sie sind.
Nachdem das umgewandelte Datum in den Zielbereich
übertragen ist, gibt die CPU den Programmzähler und das
Statusregister zur Fortsetzung der unterbrochenen Programmoperation
wieder frei. Die Unterbrechungsoperation zweiter Art wird
auch "Makroserviceoperation" genannt. Bei der
Makroserviceoperation ist der oben erwähnte zusätzliche
Systemverwaltungsaufwand nicht erforderlich, so daß sich
Wirkungsgrad und Verarbeitungsleistung der CPU wesentlich erhöhen.
-
Die obige Veröffentlichung beschreibt jedoch nur die
Makroserviceoperation für einen einzigen analogen Eingangskanal.
Einige Systeme müssen jedoch die Signale aus einer Vielzahl
von analogen Eingangskanälen verarbeiten, und um eine
gewünschte Operation durchzuführen, erhalten zwei oder
mehrere
Kanäle von ihnen gleichzeitig eine
Umwandlungsanforderung.
-
Deshalb ist es eine Aufgabe der vorliegenden Erfindung,
einen Mikrocomputer zu schaffen, der eine
Makroserviceoperation für eine Vielzahl von analogen Eingangskanälen
durchführen kann.
-
Eine weitere Aufgabe der vorliegenden Erf indung besteht
darin, einen Datenprozessor zu schaffen, welcher die
umgewandelten Daten von mehreren analogen Eingangskanälen zu
den entsprechenden Zielbereichen in einem Datenspeicher
übertragen kann, ohne in die Bearbeitung irgendeines
Anwenderprogramms einzugreifen.
-
Eine andere Aufgabe der vorliegenden Erfindung besteht
darin, einen verbesserten Datenprozessor, mit A/D-Wandler
für eine Vielzahl von analogen Eingangssignalen zu
schaffen.
-
Der Datenprozessor entsprechend der vorliegenden Erfindung
ist im Patentanspruch 1 gekennzeichnet.
-
Die A/D-Wandlung kann damit gleichzeitig für eine Vielzahl
von analogen Eingangssignalen festgelegt und reserviert
werden, und die A/D-Wandlung der jeweilig festgelegten
analogen Eingangssignale und die Übertragung der
entsprechenden umgewandelten Daten kann durch die
Makroserviceoperation in sequentieller Weise erfolgen, ohne Eingriff in
irgendein Anwenderprogramm und ohne jeden zusätzlichen
Systemverwaltungsaufwand.
-
Die obigen und weitere Aufgaben, Vorteile und Merkmale der
vorliegenden Erfindung sollen durch die folgende
Beschreibung deutlicher werden, die in Verbindung mit den
beiliegenden Zeichnungen erfolgt, von denen:
-
Fig. 1 das Blockschaltbild eines Ausführungsbeispiels der
vorliegenden Erfindung zeigt;
-
Fig. 2 ein Blockschaltbild für den in Fig. 1 gezeigten A/D-
Wandler zeigt;
-
Fig. 3 ein Flußdiagramm zeigt, das die
Makroserviceoperation beschreibt, die von dem in Fig. 1 gezeigten
Mikrocomputer durchgeführt wird;
-
Fig. 4 das Blockschaltbild eines weiteren
Ausführungsbeispiels der vorliegenden Erfindung darstellt;
-
Fig. 5 ein Flußdiagramm zeigt, das eine
Makroserviceoperation beschreibt, die von dem in Fig. 4 gezeigten
Mikrocomputer durchgeführt wird; und
-
Fig. 6 eine Schaltung der in den Fign. 1 und 4 gezeigten
Steuereinheit für die Arbeit mit den umgewandelten
Daten darstellt.
-
In Fig. 1 enthält der Mikrocomputer 1000 entsprechend einem
Ausführungsbeispiel der vorliegenden Erfindung eine CPU
(Zentralverarbeitungseinheit) 100. Das von der CPU 100
auszuführende Programm ist im Programmspeicher 200
gespeichert. Dieses Programm enthält eine Mauptroutine und eine
oder mehrere Unterbrechungsroutinen und wird vom Anwender
des Mikrocomputers 1000 aufgestellt. Die CPU 100 enthält
einen Programmzähler (PC) 101, der die Adresse für den vom
Programm auszuführenden Befehl im Programmspeicher 200
angibt, ein Befehlsregister (IR) 105, in das der aus dem
Programmspeicher 200 gelesene Befehl geladen wird, einen
Befehlsdekoder (ID) 106, der den Befehl aus dem IR 105
dekodiert und verschiedene Steuersignale erzeugt, eine
Ausführungssteuereinheit 107, die auf Grund der Steuersignale vom
ID 106 die Gesamtfunktion des Mikrocomputers 1000 steuert,
ein Rechenwerk (ALU) 103, das die arithmetische und/oder
logische Operation ausführt, ein Statusregister (PSW) 104,
das die Information über den Bearbeitungsstand der CPU 100
speichert, und einen Registersatz 10 zur allgemeinen
Verwendung,
die allesamt über einen Adressen/Datenbus 600
miteinander verbunden sind. Die Ausführungsteuereinheit 107
enthält einen Mikro-ROM (Read Only Memory =
Nur-Lese-Speicher) 1071 und einen Pointer 1072, der auf eine Adresse im
Mikro-ROM 1071 zeigt. In dem Mikro-ROM 1071 ist ein
Mikroprogramm gespeichert, das aus einer Folge von Mikrobefehlen
für eine Makroserviceoperation besteht, die später noch
ausführlich beschrieben wird. Der Datenspeicher 300, der
A/D-Wandler 400 und die Operationssteuereinheit 500 für die
umgewandelten Daten sind ebenfalls an Adressen/Datenbus 600
angeschlossen.
-
Der A/D-Wandler 400 enthält eine Startmarke 401, ein
Ergebnisregister (CRR) 402 sowie ein Auswahldatenregister (ASR)
403 und beginnt mit der A/D-Wandlung, wenn die Startmarke
401 gesetzt ist. Der A/D-Wandler 400 besitzt acht analoge
Eingangskanäle 400-1 bis 400-8, von denen einer in Reaktion
auf die im ASR 403 gespeicherten Auswahldaten ausgewählt
wird. Die umgewandelten Digitaldaten des ausgewählten
analogen Eingangssignals werden im CRR 402 gespeichert. Wenn
die A/D-Wandlung beendet ist, erzeugt der A/D-Wandler 400
ein Endesignal 400-9, das der Operationsteuerung 500 für
die umgewandelten Daten zugeführt wird. Bei diesem
Ausführungsbeispiel hängt die Auswahl eines der analogen
Eingangssignale 400-1 bis 400-8 entsprechend der folgenden
Tabelle mit den Auswahldaten im ASR 403 zusammen:
Tabelle
Auswahldaten im ASR 403
ausgewähltes analoges Eingangssignal
-
Wenn auch verschiedene Typen von A/D-Wandlern vorgeschlagen
und in der Praxis eingesetzt wurden, ist in Fig. 2 als
Beispiel ein A/D-Wandler mit sequentiellem Vergleich gezeigt.
Ein A/D-Wandler 400 dieses Typs enthält einen Kanalwähler
404, eine Abtast- und Halteschaltung 405, einen Komparator
406, einen Vergleichsspannungsgenerator 407, ein
sequentielles Vergleichsregister 408 und eine Steuereinheit 410,
wie aus dem Stand der Technik bekannt. Die Steuereinheit
410 beginnt mit der A/D-Wandlung, sobald die Startmarke 401
gesetzt ist, und erzeugt das Endesignal 400-9, wenn das
umgewandelte Digitaldatum im CRR 402 abgespeichert ist. Eine
weitere ausführliche Beschreibung des A/D-Wandlers dieses
Typs kann entfallen, da die Wirkungsweise der Schaltung in
der Technik allgemein bekannt ist.
-
Kehren wir zurück zur Fig. 1, in der das Endesignal 400-9
an die Operationsanforderungseinheit 501 der Steuereinheit
500 übergeben wird. Zu dieser Einheit 501 gehört eine
Modusmarke 502, die anzeigt, ob mit den umgewandelten
Digitaldaten eine Makroserviceoperation oder eine
Unterbrechungsoperation
erfolgen soll, sowie ein
Kanalpointeradressenregister (ACPTR) 503, das die Adresse des Kanalpointers
(CPTR) 302 speichert, wie später beschrieben wird. In
Reaktion auf das Endesignal 400-9 führt die
Operationsanforderungseinheit 501 der Anforderungsempfangseinheit 504 ein
Operationsanforderungssignal 500-1 und ein
Operationsmoduskennzeichnungssignal 500-2 zu. Soll eine
Makroserviceoperation durchgeführt werden, wird die Modusmarke 502 auf "1"
gesetzt, und das Moduskennzeichnungssignal 500-2 erhält
High-Pegel (logisch 1). Im Falle einer
Unterbrechungsoperation wird andererseits die Modusmarke 502 zurückgesetzt,
das heißt eine "0" eingespeichert, und das Signal 500-2
nimmt Low-Pegel an (logisch 0). Da auf die Modusmarke 502
zugegriffen werden kann, kann der Anwender die Betriebsart
festlegen, ob also eine Makroserviceoperation oder eine
Unterbrechungsoperation erfolgen soll. Die
Anforderungsempfangseinheit 504 übergibt nach Eintreffen des
Anforderungssignals 500-1 den Pegel des Moduskennzeichnungssignals 500-
2. Hat das Signal 500-2 High-Pegel, überträgt die Einheit
504 den im Register 505 gespeicherten Makroservicecode über
den Operationsanforderungsbus 507 zum Befehlsregister (IR)
105. Liegt dagegen das Signal 500-2 auf Low-Pegel, wird der
im Register 506 gespeicherte Unterbrechungscode über den
Bus 507 zum IR 105 übertragen. Der Unterbrechungscode
enthält eine Vektoradresse für die im Programmspeicher 200
gespeicherte Unterbrechungsprogrammroutine. Die Register 503,
505 und 506 sind vor einem Zugriff durch den Anwender
geschützt.
-
Der Datenspeicher 300 enthält einen Stackbereich 301, in
welchem bei einer Unterbrechungsanforderung die Inhalte des
PC 101, des PSW 104 und des Registersatzes 102 gesichert
werden, acht Zielbereiche (DST1 bis DST8) 304 bis 311 für
die umgewandelten Digitaldaten der analogen Eingangssignale
400-1 bis 400-8, ein Umwandlungskanalregister (ACR) 303,
das die Bits zur Kennzeichnung eines oder mehrerer
umzuwandelnder
anloger Eingangssignale enthält, und einen
Kanalpointer (CPTR) 302, in dem die Adresse des ACR 303
gespeichert ist. Das ACR 303 ist ein 8-Bit-Register, und seine
Bits entsprechen den jeweiligen analogen Eingangssignalen
400-1 bis 400-8. Wenn also zum Beispiel die A/D-Wandlung
des ersten, fünften und siebten analogen Eingangssignals
400-1, 400-5 und 400-7 angefordert wird, wird im ACR 303
das Datum "10001010" eingestellt. Bei diesem
Ausführungsbeispiel kann die Adresse des ACR 303 vom Anwender gewählt
werden, dem ACR 303 und den Zielbereichen 304 bis 311
werden jedoch aufeinanderfolgende Adressen zugeteilt. Die
Adresse des CPTR 302 ist fest.
-
Als nächstes folgt die Beschreibung der Wirkungsweise des
Mikrocomputers 100. Die Befehle des im Speicher 200
gespeicherten Programms werden ausgelesen und unter Verwendung
des PC 101 von der CPU 100 sequentiell abgearbeitet. Durch
Ausführung eines Befehls zur Speicherung von Daten in das
ACR 303 und eines Befehls zur Speicherung von Daten in das
CPTR 302 wird in das ACR 303 das Kanalkennzeichnungsdatum
eingeschrieben, bei dem das Bit oder die Bits, die dem
umzuwandelnden analogen Eingangssignal oder den
umzuwandelnden analogen Eingangssignalen entsprechen, auf "1" gesetzt
sind, und im CPTR 302 wird die Adresse des ACR 303
abgelegt. Zum Kennzeichnen einer Makroserviceoperation wird die
Modusmarke 502 durch einen Befehl aus dem Speicher 200 auf
"1 gesetzt. Sobald aus dem Speicher 200 ein Befehl zum
Setzen der Startmarke 401, d.h. ein Umwandlungsstartbefehl
ausgelesen und von der CPU 100 ausgeführt wird, wird im ASR
403 auf Grund des Kanalkennzeichnungsdatums im ACR 303 das
Auswahldatum gespeichert, und es wird die Startmarke 401
gesetzt. Bei diesem Ausführungsbeispiel wurde für die
Priorität zur Umwandlung des ersten bis achten analogen
Eingangssignals 400-1 bis 400-8 diese Reihenfolge festgelegt.
Angenommen, im ACR 303 steht das Kanalkennzeichnungsdatum
"10001010", dann wird das Auswahldatum "000" für die
Auswahl
des ersten analogen Eingangssignals 400-1 in das ASR
403 eingeschrieben. Der A/D-Wandler 400 wählt also das
erste analoge Eingangssignal 400-1 aus und beginnt die A/D-
Umwandlungsoperation. Während der Umwandlungsoperation
durch den A/D-Wandler ist der Zugriff auf den
Programmspeicher 200 erlaubt. Demzufolge kann die CPU 100 parallel zur
Arbeit des A/D-Wandlers 400 die nächsten Befehle ausführen
-
Wenn die Umwandlung des ersten analogen Eingangssignals
400-1 abgeschlossen ist, liefert der A/D-Wandler 400 ein
Endesignal 400-9 und führt es der
Operationsanforderungseinheit 501 zu. Das umgewandelte Digitaldatum wird im CRR
402 gespeichert. Die Einheit 501 erzeugt dadurch ein
Anforderungssignal 500-1, während das Moduskennzeichnungssignal
500-2 auf High-Pegel liegt, da die Modusmarke 502 gesetzt
wurde. Daraufhin überträgt die Anforderungsempfangseinheit
504 den Makroservicecode aus dem Register 505 über den Bus
507 zum IR 105 und legt ihn dort ab. Der Makroservicecode
wird vom ID 106 dekodiert und der Ausführungssteuereinheit
107 zugeführt. Im Ergebnis erzeugt die
Ausführungssteuereinheit 107 das Haltesignal 107-1 und führt es dem PC
101, dem PSW 104 und dem Registersatz 102 zu, um eine
Änderung ihrer Inhalte zu verhindern und ihre momentanen
Inhalte so zu erhalten wie sie sind. Ferner wird der Pointer
1072 mit der Startadresse des Mikroprogramms für die
Makroserviceoperation geladen, das im Mikro-ROM 1071 gespeichert
ist, so daß die Ausführung der Makroserviceoperation
beginnt. Die CPU stellt also die Programmabarbeitung ein und
führt dann die Makroserviceoperation durch, ohne daß die
Inhalte des PC 101, des PSW 104 und des Registersatzes 102
gesichert werden, wobei deren momentane Inhalte erhalten
bleiben wie sie sind.
-
Die Makroserviceoperation läuft in Übereinstimmung mit dem
in Fig. 3 gezeigten Flußdiagramm ab. Da die Adresse des
CPTR 302 im ACPTR 503 der Operationsanforderungseinheit 501
gespeichert ist, greift die Ausführungssteuereinheit 107
unter Benutzung der im ACPTR 503 gespeicherten Adresse auf
das CPTR 302 zu und liest seinen Inhalt (Schritt 30). Der
Inhalt des CPTR 302 bezeichnet die Adresse des ACR 303, und
den Zielbereichen 304 bis 311 werden jeweils
aufeinanderfolgende Adressen zugeteilt, beginnend von der Adresse, die
der Adresse des ACR 303 am nächsten liegt. Das heißt, die
Adresse des Zielbereiches, in den die umgewandelten
Digitaldaten übertragen werden, ergibt sich durch Addition
des Inhalts des ASR 403 plus 1 zur Adresse des ACR 303. Die
Ausführungseinheit 107 addiert deshalb mit Hilfe der ALU
103 den Inhalt des ASR 403 plus 1 zum Inhalt des CPTR 302
(Schritt 31). Da der Inhalt des ASR 403 "000" beträgt,
entspricht das Additionsergebnis der Adresse des ersten
Zielbereiches (DST1) 304. Die Ausführungssteuereinheit 107
greift unter Verwendung des Additionsergebnisses auf den
Bereich 304 zu, um die umgewandelten Digitaldaten des
ersten analogen Eingangssignals 400-1 aus dem CRR 402 zum
ersten Zielbereich 304 zu übertragen (Schritt 32). Danach
greift die Ausführungssteuereinheit 107 unter Verwendung
des Inhalts des ACPTR 503 wieder auf das CPTR 302 (Schritt
33) und dann unter Verwendung des Inhalts des CPTR 302 auf
das ACR 303 zu (Schritt 34). Da die umgewandelten
Digitaldaten bereits zum zugehörigen Zielregister übertragen
wurden, setzt die Ausführungssteuereinheit 107 das Bit des
Kanalkennzeichnungsdatums im ACR 303, dessen Bitposition dem
Inhalt des ASR 403 entspricht, zurück (Schritt 35). Das
Kanalkennzeichnungsdatum ändert sich dadurch in "00001010".
Die Ausführungssteuereinheit 107 untersucht danach unter
Verwendung der ALU 103 den Inhalt des ACR 303 ab seinem
niederwertigsten Bit (LSB) (Schritt 36) und prüft, ob ein
weiteres Bit im Kanalkennzeichnungsdatum auf "1" gesetzt
ist oder nicht (Schritt 37) . Da das fünfte Bit auf "1"
gesetzt ist, wird von der Einheit 107 deshalb sein
Positionswert "100" als neues Auswahldatum in das ASR 303
eingeschrieben (Schritt 38). Der A/D-Wandler wird dadurch iniüs
tialisiert und und startet daraufhin die A/D-Wandlung für
das fünfte analoge Eingangssignal 400-5. Andererseits wird
ein Zugriffsfreigabekommando für den Programmspeicher 200
erzeugt (Schritt 40), so daß das Haltesignal 107-1
aufgehoben wird. Damit wird es möglich, die Inhalte des PC 101,
des PSW 104 und des Registersatzes 102 zu verändern, und
die CPU 100 beginnt wieder, Befehle aus dem
Programmspeicher 200 auszulesen und auszuführen. Die durch das
Endesignal 400-9 eingeleitete Makroserviceoperation ist somit
abgeschlossen und die CPU nimmt die unterbrochene
Programmabarbeitung wieder auf.
-
Wenn die A/D-Wandlung des fünften analogen Eingangssignals
400-5 beendet ist, wird wiederum das Signal 400-9
generiert. In Reaktion darauf unterbricht die CPU 100 die
Programmabarbeitung, wobei die Inhalte des PC 101, des PSW 104
und des Registersatzes 102 erhalten bleiben, wie sie sind,
und führt dann die Makroserviceoperation aus. Das
umgewandelten Digitaldatum des fünften analogen Eingangssignals
400-5 wird dabei in den fünften Zielbereich (DST5) 308
übertragen. Dann wird die A/D-Wandlung des siebten analogen
Eingangssignals 400-7 gestartet, und die CPU 100 nimmt die
Bearbeitung des unterbrochenen Programms wieder auf.
-
Während der Makroserviceoperation für die umgewandelten
Digitaldaten des siebten analogen Eingangssignals 400-7 wird
das Kanalkennzeichnungsdatum im ACR 303 bei der
Realisierung des Schrittes 35 komplett auf "0" gesetzt, so daß im
Schritt 37 festgestellt wird, daß der gesamte Inhalt des
ACR 303 "0" ist. Die Ausführungssteuereinheit 107 löscht
daraufhin die Startmarke 401 im A/D-Wandler 400 und
versetzt damit den A/D-Wandler 400 in den Standbyzustand.
-
Mit Hilfe der Makroserviceoperation läuft also automatisch,
allein durch das Setzen der Startmarke 401 im
eingeschalteten Zustand der Modusmarke 502, die Übertragung der
umgewandelten
Digitaldaten in den entsprechenden Zielbereich
und die A/D-Wandlung des verbleibenden analogen
Eingangssignalsoder der verbleibenden analogen Eingangssignale ab.
Der Anwender braucht folglich kein
Unterbrechungsbearbeitungsprogramm für diese Operationen aufzustellen, und
darüberhinaus ist kein zusätzlicher Systemverwaltungsaufwand
für das Starten und Beenden eines
Unterbrechungsbearbeitungsprogramm erforderlich.
-
Durch Prüfung des Inhalts des ACR läßt sich festgestellen,
welches der gekennzeichneten analogen Eingangssignale schon
umgewandelt wurde und ob bereits alle gekennzeichneten
analogen Eingangssignale umgewandelt wurden oder nicht. Da
außerdem die CPU 100 parallel zur Umwandlungsoperation im
A/D-Wandler 400 das Programm abarbeitet, kann ein
umzuwandelnder Analogeingang beliebig korrigiert, geändert,
hinzugefügt oder zurückgestellt werden. All diese Operationen
können in der Hauptprogrammroutine erfolgen, so daß keine
Unterbrechungsprogrammroutine erforderlich ist.
-
Wenn andererseits das Endesignal 400-9 bei rückgesetzter
Modusmarke 502 auftritt, bildet die
Operationsanforderungseinheit 501 das Anforderungssiganl 500-1, während das
Moduskennzeichnungssignal 500-2 auf Low-Pegel liegt. Die
Anforderungsempfangseinheit 504 schickt folglich den
Unterbrechungscode 506 zum IR 105 ein. In Reaktion darauf
sichert die Ausführungssteuereinheit 107 die Inhalte des PC
101, des PSW 104 und des Registersatzes 102 im Stackbereich
301 des Datenspeichers 300 und lädt dann die Vektoradresse
für die Unterbrechungsprogrammroutine in den PC 101. Die
CPU 100 blockiert damit die Unterbrechung in
Übereinstimmung mit der Unterbrechungsprogrammroutine. Wenn die
Unterbrechungsoperation beendet ist, werden die gesicherten
Inhalte aus dem Stackbereich 301 zum PC 101, zum PSW 104 bzw.
zum Registersatz 102 zurückgeführt, und die unterbrochene
Hauptprogrammroutine wird wieder gestartet.
-
In Fig. 4 wird ein Mikrocomputer 1000' entsprechend einem
weiteren Ausführungsbeispiel der vorliegenden Erfindung
gezeigt, bei dem dieselben Bestandteile wie die in Fig. 1
gezeigten mit denselben Bezugszahlen bezeichnet sind, so daß
sich ihre weitere Beschreibung erübrigt. Bei diesem
Ausführungsbeispiel existiert auf einer Adresse, die der Adresse
des ACR 300 zunächst gelegen ist, ein Speicherpointer
(MPTR) 320, in dem die Adresse des ersten Zielbereiches
(DST1) 304 gespeichert ist. Dadurch kann die Adresse der
Zielbereiche 304 bis 311 unabhängig von der Adresse des ACR
303 festgelegt werden. Die Makroserviceoperation in diesem
Mikrocomputer 1000' ist im Grunde die gleiche wie die in
Fig. 3 gezeigte, infolge der Existenz des MPTR 320 werden
jedoch anstelle des Schrittes 31 nach Fig. 3 die Schritte
31-1, 31-2 und 31-3 ausgeführt, wie in Fig. 5 gezeigt wird.
Im Einzelnen wird im Schritt 31-1 der Inhalt des CPTR 302
mit Hilfe der ALU 103 um eins erhöht. Da das Ergebnis
dieser Erhöhung die Adresse des MPTR 320 darstellt, wird unter
Verwendung dieses Ergebnisses auf das MPTR 320 zugegriffen
(Schritt 31-2), und der Inhalt des MPTR 320 wird mit Hilfe
der ALU 103 zum Inhalt des ASR 403 addiert (Schritt 31-3)
Das Ergebnis der Addition stellt die Adresse des
Zielbereiches dar, in den die umgewandelten Digitaldaten übertragen
werden. Danach werden die Schritte 32 bis 40 in derselben
Weise wie in Fig. 3 ausgeführt. Das MPTR 320 kann zwei oder
mehr Bytes aufnehmen, so daß die Zielbereiche 304 bis 311
beliebigen Adressen des Datenspeichers 300 zugeordnet
werden können.
-
Fig. 6 zeigt den Schaltungsaufbau für ein Beispiel der in
den Fign. 1 und 4 dargestellten Steuereinheit für die
Behandlung der umgewandelten Daten 500, bei der das ACPTR 503
weggelassen wurde, um die Zeichnung nicht zu komplizieren.
Wenn das Umwandlungsendesignal 400-9 eintrifft, wird das
Flip-Flop (nachfolgend "F/F" genannt) 510 gesetzt, und sein
Q-Ausgangssignal wird als
Operationsanforderungssteuersignal 500-10 der Ausführungssteuereinheit 107 zugeführt.
Die Ausführungssteuereinheit 107 liefert nach Aktivierung
des laufenden Befehls das Bestätigungssignal 107-2, so daß
der F/F 513 über das AND-Gate 511 eingestellt wird. Das Q-
Ausgangssignal des F/F 513 dient als
Operationsanforderungssignal 500-1. Vom Detektor 512 wird die Vorderflanke
dieses Signals erfaßt und der F/F 510 damit zurückgesetzt.
Der F/F 510 wartet somit auf das nächste
Umwandlungsendesignal 400-9. Andererseits aktiviert das Signal 500-1 den
Dreizustandspuffer 514, so daß der Inhalt der Modusmarke
502 an seinem Ausgang erscheint. Das Signal 500-1 wird
ferner den AND-Gates 515 und 518 zugeführt. Am AND-Gate 515
liegt weiterhin der Inhalt der Modusmarke 502 an, während
das AND-Gate 518 den vom Inverter 517 negierten Inhalt der
Modusmarke 502 erhält. Dementsprechend wird das AND-Gate
515 geöffnet, wenn die Modusmarke 502 gesetzt ist,
wohingegen das AND-Gate 518 durch den Rücksetzzustand der
Modusmarke 502 geöffnet wird. In Reaktion auf das
Operationscodeanforderungssignal 107-3 von der
Ausführungssteuereinheit 107 wird also eines der Übertragungsgates 516 oder 519
geöffnet, so daß entweder der Makroserviceoperationcode 505
oder der Unterbrechungsoperationscode 506 auf den Bus 507
gelegt wird. Wenn die Makroserviceoperation oder die
Unterbrechungsoperation beendet ist, liefert die
Ausführungssteuereinheit 107 das Operationsendesignal 107-2, um den
F/F 513 zurückzusetzen. Dadurch werden der Puffer 514 und
die Übertragungs-Gates 516 und 519 geschlossenen.
-
Wie oben beschrieben wird, kann der Datenprozessor oder der
Mikrocomputer entsprechend der vorliegenden Erfindung in
Reaktion auf das A/D-Umwandlungsendsignal wahlweise eine
Softwareunterbrechungsoperationen oder eine
Makroserviceoperation durchführen und außerdem ist die
Makroserviceoperation für eine Vielzahl von analogen Eingangssignalen
möglich.
-
Die vorliegende Erfindung ist nicht auf die obigen
Ausführungsbeispiele beschränkt, sondern kann verändert und
modifiziert werden, ohne vom Umfang und vom Wesen der Erfindung
abzuweichen. Zum Beispiel kann der A/D-Wandler 400 so
aufgebaut werden, daß die Startmarke 401 durch das
Umwandlungsendesignal 400-9 zurückgesetzt wird, und in diesem
Fall wird nach Schritt 38 in Fig. 3 ein Schritt zum Setzen
der Startmarke eingefügt, so daß Schritt 39 entfallen kann.
Außerdem können der Programmspeicher 200 und der
Datenspeicher 300 als ein einziger Speicher realisiert werden. Die
Anforderungsempfangseinheit 504 kann den
Makroserviceoperationcode oder den Unterbrechungsoperationscode anstatt über
den Bus 507 auch über den Adressen/Datenbus 600 zum IR 105
schicken.