Vorheriger AbschnittNächster AbschnittInhaltsverzeichnis

2.2 Spezifikation im Detail

Dieses Kapitel besteht aus zwei Teilen. Um die Kontrollhierarchie PC -> Hilfs-FPGA -> Mikroprozessor zu realisieren, muß das Hilfs-FPGA eine Reihe von Kommandos des PCs verstehen; diese werden in der nachfolgenden Tabelle kurz aufgezählt und in 2.2.2 einzeln erläutert. Die acht Bits der Schnittstelle zum PC sind aber nur ein kleiner Teil des Pin-Layouts, welches im Rest des Kapitels, unterteilt in reine Eingänge, bidirektionale Signale und reine Ausgänge, erläutert wird.

Kommandowörter des Interfaces zwischen PC und Hilfs-FPGA

Bezeichnung

Oberes Nibble

Unteres Nibble

Operanden

Rückgabewerte

Möglich wann

Halt

0000

****

-

5 Bytes

immer

Go

0111

****

-

-

immer

Single Step

0001

****

-

5 Bytes

halted/s. step

Single Instruction

0101

****

-

5 Bytes

immer

Store Address

1000

****

3 Bytes

-

immer

Store Data

1001

****

2 Bytes

-

immer

Write RAM

1010

****

-

-

halted

Read RAM

1011

****

-

2 Bytes

halted

Read Register

1101

Registernr.

-

5 Bytes

halted

Reset Processor

1110

****

-

-

immer

Eval Keys

0011

****

-

-

running

Don't Eval Keys

0010

****

-

-

running

Config Start

0100

001*

-

-

immer

Config Data

0100

010*

1 Byte

-

immer

Config End

0100

100*

-

1 Byte

immer

Report Status

1100

****

-

1 Byte

immer, auch bei Warten auf

Abort

0110

****

-

-

m_halt_ack o. m_reg_ack


Kommandos des Interfaces zwischen PC und Hilfs-FPGA

Halt

Kommandowörter: halt, halt2, si

Dieser Befehl wurde mit Single Instruction zusammengefaßt und ist nun in jedem Modus erlaubt.

In den Modi running oder single step beendet der Mikroprozessor die laufende Instruktion und hält dann, bei halted wird genau eine neue Instruktion ausgeführt. Rückgabewerte sind erst die letzte gültige Adresse, auf 24 Bit erweitert, dann das letzte gültige Datum, jeweils most significant byte (höchstwertiges Byte) voran.

Der Mikroprozessor hält als Reaktion auf m_halt '0', die Clock läuft normal weiter. Soll im Modus halted die nächste Instruktion ausgeführt werden, wird m_halt bei den Kommandowörtern halt und si für einen Takt auf '1' gezogen. Bei einigen Prozessor-Designs jedoch reicht dieses nicht aus, so daß mit halt2 das Signal m_halt für zwei Takte auf '1' bleibt.

Dieser Befehl wartet auf m_halt_ack vom Mikroprozessor und kann mit Reset abgebrochen werden; mit Report läßt sich status_reg(7) ermitteln, bei '1' wartet das Hilfs-FPGA noch.

Dieser Befehl ist stets erlaubt.

Hilfs-FPGA geht in Zustand halted, d.h. in status_reg(5 downto 4) steht "10".

Go

Kommandowort: go

Der Mikroprozessor nimmt Normalbetrieb wieder auf.

Hilfs-FPGA geht in Zustand running, d.h. in status_reg(5 downto 4) steht "00".

Single Step

Kommandowort: si

Der Mikroprozessor führt genau einen Arbeitsschritt durch, d.h. bekommt eine Clockflanke. Rückgabewerte sind erst die letzte gültige Adresse, auf 24 Bit erweitert, dann das letzte gültige Datum, jeweils most significant byte (höchstwertiges Byte) voran.

Nur erlaubt, wenn der Mikroprozessor nicht mehr läuft (status_reg(5 downto 4) "00").

Hilfs-FPGA geht in Zustand single step, d.h. in status_reg(5 downto 4) steht "11".

Single Instruction

Kommandowörter: halt, halt1, si

Dieser Befehl wurde mit Single Instruction zusammengefaßt und ist nun in jedem Modus erlaubt.

Weitere Beschreibung siehe Halt.

Store Address

Kommandowort: sta

Soll ein Gerät im Adreßbereich des Mikroprozessors gelesen oder beschrieben werden, so erfolgt dies stets an der Adresse, die in einem internen Register des Hilfs-FPGA - areg_rollin - steht. Dieser Befehl setzt areg_rollin.

Zu senden sind 3 Bytes, das most significant byte (höchstwertiges Byte) zuerst, dessen oberste drei Bits ignoriert werden (21 Bit Adressen).

Dieser Befehl ist stets erlaubt.

Store Data

Kommandowort: std

Soll ein Gerät im Adreßbereich des Mikroprozessors beschrieben werden, so erfolgt dies stets mit den Daten, die in einem internen Register des Hilfs-FPGA - dreg_rollin - steht. Dieser Befehl setzt dreg_rollin.

Zu senden sind 2 Bytes, das most significant byte (höchstwertiges Byte) zuerst (16 Bit Daten).

Dieser Befehl ist stets erlaubt.

Write RAM

Kommandowort: wr

Die Adresse aus areg_rollin wird mit dem Wert aus dreg_rollin beschrieben.

Nur erlaubt, wenn der Mikroprozessor hält (status_reg(5 downto 4) = "10"), nicht im Single-Step-Modus! Letzterer nämlich ist für den Prozessor transparent, seine verlangsamte Arbeitsweise wird ja nur durch ein Aussetzen der Taktung erreicht, was bedeutet, daß sich der Prozessor mitten in einem Schreib- oder Lesezyklus befinden kann, der nicht so einfach zu unterbrechen und fehlerfrei fortzuführen ist.

Read RAM

Kommandowort: rr

Der Wert an der Adresse areg_rollin wird in einem internen Register des Hilfs-FPGA - dreg_muxout - gespeichert. Anschließend wird dessen Wert, most significant byte (höchstwertiges Byte) voran, gesendet (16 Bit Daten).

Nur erlaubt, wenn der Mikroprozessor hält (status_reg(5 downto 4) = "10"), nicht im Single-Step-Modus! Letzterer nämlich ist für den Prozessor transparent, seine verlangsamte Arbeitsweise wird ja nur durch ein Aussetzen der Taktung erreicht, was bedeutet, daß sich der Prozessor mitten in einem Schreib- oder Lesezyklus befinden kann, der nicht so einfach zu unterbrechen und fehlerfrei fortzuführen ist.

Read Register

Kommandowort: read_reg

Das Befehlswort selbst enthält hier vier Bits, die an den Mikroprozessor mit der Aufforderung geschickt werden, den Wert des durch diese Bits bezeichneten Mikroprozessor-Registers auf Adreß- oder Datenbus zu legen (je nach Bitbreite des Registers und vorhandenen Datenpfaden).

Sowohl Adresse als auch Datum werden gepuffert - in areg_muxout und dreg_muxout - und anschließend wie bei Halt übertragen.

Dieser Befehl wartet auf m_reg_ack vom Mikroprozessor und kann mit Reset abgebrochen werden; mit Report läßt sich status_reg(6) ermitteln, bei '1' wartet das Hilfs-FPGA noch.

Nur erlaubt, wenn der Mikroprozessor hält (status_reg(5 downto 4) = "10"), nicht im Single-Step-Modus! Letzterer nämlich ist für den Prozessor transparent, seine verlangsamte Arbeitsweise wird ja nur durch ein Aussetzen der Taktung erreicht, was bedeutet, daß sich der Prozessor mitten in einem Schreib- oder Lesezyklus befinden kann, der nicht so einfach zu unterbrechen und fehlerfrei fortzuführen ist.

Reset Processor

Kommandowort: dreset

Sendet für einen Takt einen synchronen Hardware-Reset an das Prozessor-FPGA. Dessen Konfiguration ("Programmierung") bleibt erhalten, sämtliche Flipflops werden aber auf ihre Standardwerte zurückgesetzt.

Dieser Befehl ist stets erlaubt.

Eval Keys/Don't Eval Keys

Dieser Befehl bleibt momentan ohne Auswirkungen.

Wäre es vom Platzbedarf her möglich gewesen, so hätte es ein zukünftiges Design des Hilfs-FPGAs erlaubt, einige der Debugging-Befehle wie Lesen oder Schreiben des Speichers über die "Hex-Tastatur" (5x4 Tasten) auf dem MPB durchzuführen. Der PC hätte aber stets als oberstes in der Kontrollhierarchie stehen sollen und mit diesem Befehl die Möglichkeit gehabt, die "Hex-Tastatur" zu deaktivieren.

Nur erlaubt, wenn der Mikroprozessor läuft (status_reg(5 downto 4) = "00"); ein Halt-Kommando sperrt automatisch die Tastatur, Go entsperrt sie jedoch nicht.

Config Start

Kommandowort: load_processor <Dateiname>

(lädt Konfigurationsdaten aus einer .ttf-Datei, konfiguriert Prozessor via Config Start und Config Data, sendet Config End und zeigt das Ergebnis an)

Der Mikroprozessor wird von diesem Kommando in den Konfigurationsmodus geschaltet. Außerdem wird status_reg(1 downto 0) auf "01" (Signal progr_conf_done kam noch nicht) zurückgesetzt.

Dieser Befehl ist stets erlaubt.

Config Data

Mit diesem Befehl kann ein Byte an Konfigurationsdaten für das Prozessor-FPGA übertragen werden, welches automatisch bit-seriell weitergereicht wird.

Dieser Befehl ist stets erlaubt, ist aber selbstverständlich nur sinnvoll, wenn das Prozessor-FPGA zuvor in den Konfigurationsmodus versetzt wurde.

Config End

Nachdem alle zur Konfigurierung des Mikroprozessor notwendigen Bytes per Config Data übertragen worden sind, sollte dieser Befehl folgen. Als Rückgabewert wird das status_reg übertragen, status_reg(1 downto 0) enthält Angaben über Erfolg oder Mißerfolg der Konfiguration (siehe Report Status).

Dieser Befehl ist stets erlaubt, ist aber selbstverständlich nur nach Config Data sinnvoll.

Report Status

Kommandowort: report

Es wird das interne status_reg des Hilfs-FPGAs zurückgeliefert. Dessen Bits bedeuten:

Stelle Wert: Bedeutung
7 '1': Hilfs-FPGA wartet auf m_halt_ack vom Mikroprozessor
6 '1': Hilfs-FPGA wartet auf m_reg_ack vom Mikroprozessor
5, 4 "00": Mikroprozessor läuft (running)

"10": Mikroprozessor wurde angehalten (halted)

"11": Mikroprozessor ist im Single-Step-Modus

3 '1': Unbekanntes Kommando aufgetreten
2 '1': Ein Kommando war im damaligen Modus (running/halted/single step) nicht erlaubt
1, 0 "00": Konfiguration war erfolgreich

"01": Signal progr_conf_done kam noch nicht

"10": Signal progr_conf_done kam zu früh

"11": Ein allgemeiner Konfigurationsfehler ist aufgetreten (Signal progr_m_status = '0')

Die Bits 4 bis 7 werden ständig neu gesetzt.

Die Bits 2 und 3 werden nur durch Report Status zurückgesetzt.

Die Bits 1 und 0 werden durch Config Start auf "01" gesetzt.

Dieses Kommando ist immer erlaubt, auch wenn das Hilfs-FPGA auf m_halt_ack oder m_reg_ack wartet.

Abort

Kommandowort: reset

Sollte der Mikroprozessor nicht mit m_halt_ack/m_reg_ack antworten, falls das Hilfs-FPGA solches erwartet, läßt sich der wartende Befehle mit Abort beenden. Die Werte aller internen Register bleiben jedoch erhalten.

Zu möglichen anderen "hängenden" Befehlen siehe 2.3.2.9 .

Dieses Kommando ist immer erlaubt, auch wenn das Hilfs-FPGA auf m_halt_ack oder m_reg_ack wartet.

Eingänge

reset_unsync

Dieses ist ein asynchrones, low-aktives Reset-Signal und wird vor der Verwendung als reset noch mit der Clock synchronisiert. Es ist kein Power-On-Reset (nach dem Einschalten ist das Hilfs-FPGA ja auch noch "leer"), sondern dient der jederzeitigen Initialisierung des Hilfs-FPGAs. Es führt also keinesfalls zu einem Verlust der Konfiguration des Hilfs-FPGAs.

clk, clk_invers

Clock für alle speichernden Elemente im Hilfs-FPGA. clk_invers wird extern als das Inverse von clk erzeugt, um Flipflops rückflankengesteuert zu verwenden. Außerdem ist es durch die bereits außerhalb des FPGAs vorgenommene Invertierung möglich, die sogenannten Clock-Netze der Altera FLEX8000-Bausteine zu verwenden. Durch diese Clock-Netze können zwei Signale, auf die keine Logik mehr einwirken soll, direkt und somit mit sehr geringer Verzögerung an alle Flipflops geführt werden. Damit werden Hazards durch zu unterschiedlichen Zeitpunkten eintreffende relevante Clockflanken vermieden.

Sollte aufgrund einfach zu ändernder Design-Annahmen 1 MHz nicht überschreiten (siehe 2.3.5.3).

progr_m_status

Dieses low-aktive Signal hat während der Konfiguration des Prozessor-FPGAs zweierlei Bedeutung. Erstens geht es zu Beginn als Bestätigung kurz auf '0', zweitens bleibt es später dauerhaft auf '0', sollte ein allgemeiner Fehler auftreten.

m_astrobe

Mit diesem low-aktiven Signal teilt der Mikroprozessor mit, daß eine gültige Adresse auf dem Adreßbus liegt; diese wird in areg_muxout gespeichert.

m_reg_ack

Um interne Register des Mikroprozessors auszulesen, wird mit reg_select eines bezeichnet und m_reg_request auf '0' gesetzt. Liegt der Wert des Registers auf Adreß- oder Datenbus an (je nach Bitbreite des Registers und vorhandenen Datenpfaden), so muß der Prozessor m_reg_ack auf '0' nehmen und den Wert von Bussen und m_reg_ack mindestens so lange halten, bis m_reg_request wieder '1' annimmt.

m_halt_ack

Um den Mikroprozessor sicher erst dann anzuhalten, wenn die aktuelle Instruktion beendet wurde, wird m_halt auf '0' gesetzt und die Clock weiter erzeugt. Ist das Ende der Instruktion/der Anfang der nächsten erreicht, muß der Mikroprozessor m_halt_ack auf '0' setzen und darf den aktuellen Zustand solange nicht verlassen, wie m_halt '0' bleibt.

progr_conf_done

Bestätigung vom Prozessor-FPGA: Das letzte Konfigurationsdatenbit wurde empfangen, der 81500-Baustein enthält nun z.B. einen Prozessor-Entwurf oder das Ladedesign für das Mikrocode-RAM.

m_obf_unsync

Dieses low-aktive Signal wird nach Synchronisation mit der Clock zu m_obf, der "Output Buffer Full"-Benachrichtigung vom 8255 Portbaustein. Übergibt der PC dem 8255 ein Befehlswort oder Daten zur weiteren Versendung, werden diese gelatcht und m_obf geht auf '0'. Wird vom Hilfs-FPGA abgefragt, um zu ermitteln, wann das nächste Byte abgeholt werden kann.

ibf_unsync

Dieses high-aktive Signal wird nach Synchronisation mit der Clock zu ibf, der "Input Buffer Full"-Benachrichtigung vom 8255 Portbaustein. Wurde ein Byte von außerhalb des PCs mittels m_stb in den 8255 geschrieben, geht ibf solange auf '1', bis der PC die Daten ausgelesen und somit Platz für neue gemacht hat.

tast_reihe

Siehe tast_spalte unter 2.2.5.16 .

disp_d7_in

Dies ist das achte (höchstwertige) Datenbit des 20x2-Zeichen-Displays in eingehender Richtung. Es ist bidirektional ausgelegt, da es als Busy Flag fungiert, über das man abfragen kann, ob das Display, welches im Verhältnis zum Prozessor sehr langsam arbeitet, das letzte Kommando schon abgeschlossen, also z.B. das letzte Zeichen schon angezeigt hat. Aufgrund der Beschränkung des 81188 auf vier Gruppen von Signalen mit Tri State-Charakteristik muß ein externer Tri State-Treiber benutzt werden, zu dem die Signale disp_d7_in (Wert vom Display), disp_d7_out (Wert zum Display) und disp_d7_oe (Output Enable - Aktivierung des Treibers) führen.

Bidirektionale Signale

databus(15 downto 0)

Dies ist der Datenbus der Mikrorechner-Platine.

address(19 downto 0)

Dies ist der Adreßbus der Mikrorechner-Platine.

pc_if_data(7 downto 0)

Dies sind die bidirektional fließenden Daten des Interfaces zwischen PC (genauer Portbaustein 8255) und Hilfs-FPGA. Der bidirektionale Datenfluß wird gesteuert durch die Handshaking-Signale m_obf und m_ack sowie ibf und m_stb.

m_oe

Dies ist das "Output Enable"-Signal an die im Adreßbereich eingeblendeten Geräte. Höchstens ein Gerät (SRAM, parallele Ein-/Ausgabe, serielle Ein-/Ausgabe, EPROM, Tastatur, Display) wird durch eine anliegende Adresse selektiert und via Chip Enable-Signal aktiviert. Diese Einheit treibt den Datenbus, solange m_oe '0' ist.

m_we

Dies ist das "Write Enable"-Signal an die im Adreßbereich eingeblendeten Geräte. Höchstens ein Gerät (SRAM, parallele Ein-/Ausgabe, serielle Ein-/Ausgabe, EPROM, Display) wird durch eine anliegende Adresse selektiert und via Chip Enable-Signal aktiviert. Diese Einheit liest vom Datenbus, wenn m_we '0' ist (die Tastatur-Ansteuerung sieht kein Beschreiben vor, der Tastatur-Puffer wird automatisch nach dem Auslesen gelöscht).

Ausgänge

m_ack

Dieses "Acknowledge"-Signal dient zum Auslesen des "Output Buffers" des 8255-Portbausteins, d.h. zum Lesen eines vom PC gesandten Bytes. Der 8255 treibt pc_if_data, solange m_ack = '0'.

m_stb

Dieses "Strobe"-Signal dient zum Beschreiben des "Input Buffers" des 8255-Portbausteins, d.h. zum Senden eines Bytes an den PC. Der 8255 puffert pc_if_data, falls m_stb = '0'.

disp_d(6 downto 0)

Dies sind die unteren sieben Datenbits des 20x2-Zeichen-Displays (das achte mit Namen disp_d7 ist bidirektional, da gleichzeitig Busy Flag).

disp_e

Dies ist das "Enable"-Signal des 20x2-Zeichen-Displays. Mit seiner Rückflanke werden die Werte von disp_d, disp_d7, disp_rw und disp_rs gepuffert und der entsprechende Befehl ausgeführt, z.B. ein Zeichen dargestellt und der Cursor (Einfügemarke) weitergerückt oder der Bildschirm gelöscht.

disp_rw

Dies ist das "ReadWrite"-Signal des 20x2-Zeichen-Displays. Im Verlaufe der Ausgabe eines Zeichens hat es erst den Wert '0' (Write), das Display soll also Daten empfangen. Nachdem mit der Ausführung des Befehls durch eine Rückflanke von disp_e begonnen wurde, kann durch disp_rw  '1' das Busy Flag abgefragt werden, also der Zeitpunkt bestimmt werden, zu dem der Befehl vollständig abgearbeitet wurde.

disp_rs

Dieses zum 20x2-Zeichen-Display führende Signal ist quasi das neunte Datenbit. Ist es '1', so wird ein "normales" ASCII-Zeichen angezeigt, mit '0' hat man Zugriff auf Steuerzeichen, um z.B. die Anzeige zu löschen, den Cursor zu positionieren oder verschiedene Betriebsmodi einzustellen.

clk1_democom, clk2_democom

Globale Clocks für alle speichernden Elemente im Mikroprozessor. Sind normalerweise nur durchgereichte clk und clk_invers, d.h. der Prozessor läuft mit demselben Takt wie das Hilfs-FPGA. Für den single step-Modus können beide aber abgeschaltet werden.

Auch dem Mikroprozessor wird durch diese zwei Taktsignale, selbst bei Verwendung beider Taktflanken, die Benutzung der Clock-Netze der Altera FLEX8000-Bausteine ermöglicht.

reset_democom

Dieses Signal ist kein Power-On-Reset (nach dem Einschalten ist das Prozessor-FPGA ja auch noch "leer"), sondern dient der jederzeitigen Initialisierung des Mikroprozessors. Es führt also keinesfalls zu einem Verlust der Konfiguration des Prozessor-FPGAs.

m_highz

Dieses Signal steuert Tri-State-Treiber für die Signale databus, address, m_oe und m_we im Mikroprozessor, so daß dieser, sobald m_highz auf '0' geht, asynchron und für ihn selbst transparent die Busse freigibt. Damit ist es sicher möglich, im Modus single instruction / halted den Speicher zu behandeln.

chipsel_sram, chipsel_pio, chipsel_sio, chipsel_rom

In Abhängigkeit von der Adresse soll höchstens ein Ein-/Ausgabegerät aktiviert sein. Keines dieser Gerät darf aktiv sein, falls der Adreßbus nicht getrieben wird (wegen der Pull Up-Widerstände erscheint die Adresse $FFFFF), die Adresse sich auf Tastatur, Display oder einen nicht vergebenen Bereich bezieht oder das Mikrocode-RAM adressiert wird (das intern im Hilfs-FPGA vorhandene 21. Adreßbit ist '1'). Ansonsten ist genau eines der vier Chipselect-Signale '0'; eine Komponente ohne Chipselect verhält sich wie vom Bus abgeklemmt.

progr_m_config

Low-aktives Signal, um das Mikroprozessor-FPGA in den Konfigurations-Modus zu versetzen.

progr_dclk

Clock für Konfiguration des Mikroprozessors.

progr_data

Das FPGA, welches den Mikroprozessor beherbergen soll, bekommt über diese Leitung bit-seriell seine Konfigurationsdaten (passive serielle Konfiguration). Die Serialisierung erfolgt mit einem Schieberegister im Hilfs-FPGA.

m_reg_req, reg_select(3 downto 0)

Um interne Register des Mikroprozessors auszulesen, wird mit reg_select eines bezeichnet und m_reg_req auf '0' gesetzt. Liegt der Wert des Registers auf Adreß- oder Datenbus an (je nach Bitbreite des Registers und vorhandenen Datenpfaden), so muß der Prozessor m_reg_ack auf '0' nehmen und den Wert von Bussen und m_reg_ack mindestens so lange halten, bis m_reg_request wieder '1' annimmt.

m_halt

Um den Mikroprozessor sicher erst dann anzuhalten, wenn die aktuelle Instruktion beendet wurde, wird m_halt auf '0' gesetzt und die Clock weiter erzeugt. Ist das Ende der Instruktion/der Anfang der nächsten erreicht, muß der Mikroprozessor m_halt_ack auf '0' setzen und darf den aktuellen Zustand nicht verlassen.

tast_spalte(1 to 5)

Die "Hex-Tastatur" mit 20 Tasten ist als Matrix von einfachen Schaltern (Drucktaster) mit 5 Spalten und 4 Reihen realisiert. Die Eingänge aller Schalter einer Spalte hängen an tast_spalte(x), die Ausgänge führen in jeder Zeile auf tast_reihe(y). Keine zwei Schalter sind also mit Ein- und Ausgang an den gleichen Signalen angeschlossen. Nun wird durch tast_spalte immer genau eine Spalte mit '1' getrieben, alle anderen mit '0'. Meldet eine Reihe durch '1', daß in ihr eine Taste gedrückt wird, so muß es sich um diejenige Taste handeln, die in der gerade getriebenen Spalte liegt.

Falls mehrere Tasten gleichzeitig gedrückt werden sollten, könnte es bei diesem Aufbau zu Kurzschlüssen zwischen zwei Spalten kommen. Deswegen werden die fünf Spaltensignale zwischen Hilfs-FPGA und Tastaturmatrix durch Schutzdioden in Durchlaßrichtung geführt, welche die Nullen nicht durchlassen; es trifft also immer '1' auf 'Z' (Leitung offen), was sicher wieder '1' ergibt.

Damit das Drücken einer Taste in der gerade aktivierten Spalte sich von dem in einer anderen Spalte bzw. keinem Tastendruck unterscheidet, damit also '1' und 'Z' an tast_reihe unterschiedlich aussehen, wurde tast_reihe mit Pull Down-Widerständen versehen, die aus 'Z' eine (schwache) '0' machen.

disp_d7_out, disp_d7_oe

Dies ist das achte (höchstwertige) Datenbit des 20x2-Zeichen-Displays in ausgehender Richtung. Es ist bidirektional ausgelegt, da es als Busy Flag fungiert, über das man abfragen kann, ob das Display, welches im Verhältnis zum Prozessor sehr langsam arbeitet, das letzte Kommando schon abgeschlossen, also z.B. das letzte Zeichen schon angezeigt hat. Aufgrund der Beschränkung des 81188 auf vier Gruppen von Signalen mit Tri State-Charakteristik muß ein externer Tri State-Treiber benutzt werden, zu dem die Signale disp_d7_in (Wert vom Display), disp_d7_out (Wert zum Display) und disp_d7_oe (Output Enable - Aktivierung des Treibers) führen.


Vorheriger AbschnittNächster AbschnittInhaltsverzeichnis