Mikroprozessortechnik 04/87 |
Der Einsatz des Grafik-Display-Controllers GDC U82720 ermöglicht eine leistungsfähige grafische Datenverarbeitung in Mikrorechnersystemen. Nachfolgend wird eine Einführung zum GDC gegeben. Eine Applikationsschaltung und das dazugehörige PASCAL-Steuerprogramm ermöglichen in Systemen mit SCP-Betriebssystem den sofortigen Einstieg in die Grafik-Welt. Es wird eine Variante mit einem 64 KWorte (ein Megapixel) großen Bildwiederholspeicher vorgestellt. Die Bildformatgröße ist frei programmierbar. Im PASCAL-Beispielprogramm werden 640 x 280 Bildpunkte auf einer Zeichenfläche von 1024 x 1024 Pixelelementen abgebildet. Spezielle Funktionen des GDC wie Zooming und Panning können mit der vorgestellten Hardwarekonfiguration benutzt werden. Als Display eignen sich Fernseh-Monitore mit einer Videobandbreite > 10MHz.
Die nachfolgenden einführenden Bemerkungen stellen ein stark komprimiertes Minimalwissen zum GDC U 82720 dar. Ausführlich wird der GDC in /1/ beschrieben. Die Darstellung und Bearbeitung von Grafiken auf einem hochauflösenden Bildschirm sollte mit der höchstmöglichen Verarbeitungsgeschwindigkeit erfolgen. Dies wird durch Grafikcontroller in Verbindung mit (möglichst) mehreren Speicherebenen für den Bildwiederholspeicher und externer Zusatzhardware zur Datenserialisierung am Videointerface erreicht. Für eine hochauflösende Grafikdarstellung im Rasterverfahren wird dabei sehr viel Speicherplatz benötigt. Bei farbiger Darstellung sind in jedem Fall mehrere Speicherebenen erforderlich. Hierbei erhöht sich der Speicherbedarf um ein Vielfaches. Ein separater, vom Hauptspeicher unabhängiger Videospeicher (Bildwiederholspeicher) wird direkt vom Grafikcontroller verwaltet. Der steuernde Mikroprozessor (oder Rechner) gibt dann nur noch Instruktionen an den zwischengeschalteten Grafikprozessor, der diesen Videospeicher verwaltet. Der Aufwand für die Erarbeitung der Steuersoftware für ein grafisches Display kann durch den komfortablen Befehlssatz des GDC und die verfügbaren Zeichnungsalgorithmen zum Zeichnen grafischer Darstellungen (z.B. Kreise oder Rechtecke) klein gehalten werden. Für die Modifikation eines Bildpunktes benötigt der GDC einen Read-Modify-Write-Zyklus, der vier Taktperioden dauert. Bei einer Darstellung (Figur) mit 100 Pixeln ist dieser Prozeß bei einer internen GDC-Taktfrequenz von 2 MHz nach 200 Mikrosekunden abgeschlossen.
Bild 1 zeigt die Anschlußbelegung des GDC U82720. Auf Tafel 1 kann eine Funktionskurzbeschreibung der Anschlüsse entnommen werden. Zur Verdeutlichung des inneren Aufbaus ist im Bild 2 das Blockschaltbild des U82720 dargestellt. Nachfolgend eine kurze Beschreibung der Elemente des Blockschaltbildes:
Das Mikroprozessor-Interface mit den Datenbus-Ein/Ausgängen DB0...DB7 ist acht Bit breit und bidirektional ausgeführt. Zum Interface gehören das Statusregister und das Data-Read-Register. Ein zusätzlicher FIFO-Puffer hat die Organisation 9 x 16 Bit.
Die Inhalte des FIFO-Puffers werden mit dem Kommandoprozessor (Command Processor) interpretiert. Dabei erfolgen eine Dekodierung der im FIFO befindlichen Kommandobytes und die Verteilung der Befehlsparameter an ihre Bestimmungsorte im GDC.
Die DMA-Steuerung (DMA-Control) des GDC übernimmt die Datenübertragung am Mikroprozessor-Businterface, wenn mit einem DMA-Controller kommuniziert wird. Die Steuersignale für DMA-Anforderung, DREQ (DMA-Request), sowie DMA-Bestätigung, /DACK (DMA-Acknowledge), können im Handshake-Betrieb für die Ansteuerung beliebiger DMA-Controller (z.B. UA858D, i8257, i8237) verwendet werden.
Dieser 16 Byte tiefe RAM speichert Befehlsparameter , die während des Darstellungs- und Zeichenprozesses wiederholt abgefragt werden. In der Zeichen-Betriebsart enthält der RAM die Display-Flächenaufteilungsparameter. In der Grafik-Betriebsart werden die Zeichenpattern und Grafikelemente gespeichert.
Der Generator der Video-Synchronisationslogik des GDC erzeugt, basierend auf der Taktfrequenz, das Rasterzeitverhalten für fast alle Zeilensprung- und Nichtzeilensprungformate sowie für das Wiederholungsfeld beim Zeilensprungformat.
Ein Generator für Erzeugung des Speicherzeitverhaltens ermöglicht die Bereitstellung von zwei Speicherzyklustypen; einen zoombaren 2-Takt-Display-Zyklus sowie einen Read-Modify-Write-Zyklus (RMW) mit vier Taktzyklen. Als Signale zur Ansteuerung des Bildwiederholspeichers stehen die Speicherzyklussignale RAS (ALE) und /DBIN zur Verfügung:
Der GDC ermöglicht unter Einsatz minimaler externer Hardware die Anwendung der programmierbaren Vergrößerung der Darstellung auf dem Bildschirm. Gleichfalls ist eine Schwenkbewegung über die für die Bilddarstellung benutzte Display-Bildfläche möglich. Bild 3 zeigt das Zeitverhalten für 1 x ZOOM. Eine einfache Variante zur hardwaretechnischen Zoom-Realisierung zeigt Bild 6.
Der Zeichnungsprozessor dieser Steuerung enthält die für die Berechnung der Pixeladressen und -positionen von diversen grafischen Darstellungen notwendige Logik. Außer einem gegebenen Startpunkt und entsprechenden Zeichnungsparametern benötigt der Zeichnungsprozessor keine weitere Unterstützung, um die Darstellung vollständig zu zeichnen.
Mit dieser Steuerung erfolgt das Multiplexen der Adreß- und Dateninformationen von und zum Bildwiederholspeicher des GDC. Die Steuerung enthält 16-Bit-Logikeinheiten, um den Inhalt des Bildwiederholspeichers während der RMW-Zyklen ändern zu können. Weiterhin erfolgt die Ansteuerung des Zeilenzählers in der Zeichen-Betriebsart und des Refresh-Zählers für dynamische RAMs im Bildwiederholspeicher.
Für den Fall, daß am Lichtstifteingang während zweier steigender 2xWCLK-Flanken H-Pegel anliegt, wird das Lichtstiftregister mit der aktuellen gültigen Adresse geladen. Ein Statusbit des GDC zeigt danach dem System-Mikroprozessor an, daß das Lichtstiftregister eine gültige Adresse enthält. In der nachfolgenden Applikationsschaltung wird auf die Verarbeitung einer Lichtstiftinformation aus Aufwandgründen verzichtet.
Zur hard- und softwaretechnischen Einbindung des GDC werden lediglich zwei Adressen zur Adressierung des Statusregisters und des FIFO-Puffers benötigt. Die Unterscheidung erfolgt mit dem Adreßbit A0. Im Bild 4 ist der Aufbau der Mikroprozessor-Businterface-Register dargestellt. Der U82720 besitzt 20 Kommandos. Jedes Kommando ist ein in 8 Bit kodiertes Kommandobyte. Eine ausführliche Erläuterung der einzelnen Kommandos ist in /1/ enthalten. Die GDC-Kommandos können gemäß Tafel 2 unterteilt werden. Obwohl die GDC-interne Steuerung des Bildwiederholspeichers während der Rasterabtastung die Adressen für den Bildwiederholspeicher erzeugt, ist sie nicht unmittelbar an den Pixeloperationen zum Bildaufbau beteiligt. Die dafür notwendige Frequenz ist für Schaltkreise in MOS-Technologie viel zu hoch. Aus diesem Grund führt eine externe Hardware mittels eines schnellen Video-Schieberegisters (in diesem Konzept die 8-Bit-Schieberegister DL299) eine Parallel-/Serienwandlung der Worte des Bildwiederholspeichers in Pixel durch.
Das auf der 2. Umschlagseite wiedergegebene PASCAL-Listing geht auf eine Idee in /2/ zurück.
Es wird lediglich nur auf die mit minimalem Aufwand zu realisierende Grafik-Betriebsart des GDC Bezug genommen.
Die Darstellung erfolgt dabei in der "reinen" Grafikbetriebsart, daß heißt, auch Textzeichen und
der Cursor werden als vereinbarte Grafiksymbole gezeichnet. Es werden einige Beispiele zur
Programmierung des GDC in einer höheren Programmiersprache angegeben. Dies ermöglicht eine
Sofortlösung für den Einsatz des GDC in der hier vorzustellenden Hardwarevariante.
Es sind
Die zum Einsatz des U82720 am U880-Systembus minimal notwendige Hardware ist in den folgenden
Bildern 6 und 7 dargestellt. Der Bildwiederholspeicher ist aus 16 Stück 64K x 1 DRAMs des Typs
U2164D realisiert. Bild 5 zeigt die GDC-Interfaceschaltung und die Ansteuerung des Bildwiederholspeicher-RAMs.
Der Adreß-/Datenbus AD0...AD15 des GDC arbeitet im Multiplex-Verfahren. über zwei 8-Bit-Register
DS8282 werden die Adressen A0...A7 für den Bildwiederholspeicher-RAM zwischengespeichert und gemultiplext.
Jeder Speicherzyklus wird mit ALE eingeleitet. (RAS = ALE). Am Schieberegister DL299 werden bezüglich RAS
um jeweils 62ns zeitverzögert die Adressenumschaltsignale /HAB, /LAB und /CAS bereitgestellt.
Sechzehn 820-0hm-Widerstände dienen der Entkopplung des GDC-Daten-/Adreßbusses und des RAM-Datenbusses.
Dadurch ist es möglich, sowohl RAMs mit gemeinsamen Datenein- und -ausgängen als auch mehrere
RAM-Bildspeicherebenen (notwendig bei Farbdarstellung) anzusteuern. Die beiden 8-Bit-Schieberegister
des Typs DL299 dienen der Serialisierung der Videodaten. Das zugehörige Synchronsignal wird über die
GDC-Signale VSYNC und HSYNC erzeugt und in zwei Exclusiv-Oder-Gattern DL086 normgerecht gemischt.
Bild 6 zeigt den Aufbau der programmierbaren Takterzeugung für die Video-Schieberegister.
Die Phase dieses Schiebetaktes ist starr mit dem Signal Load-Schieberegister synchronisiert.
Der Teilfaktor (Zoom-Faktor) bezüglich Maximaltakt wird im Latch DL175 gespeichert.
Dieses Latch wird vom externen Steuerrechner als I/O-Port angesprochen. über programmtechnische
Beeinflussung kann hier das Verhältnis von 16MHz Grundfrequenz (Pixelclock) zum Schiebetakt der
Schieberegister programmiert werden.
Bild 7 verdeutlicht die Erzeugung der Signale Load-Schieberegister, GDC-2xWCLK, RAM-/WE und RAM-/OE.
2xWCLK (2MHz) ist der Grundtakt des GDC, das heißt, intern arbeitet der GDC mit einer Taktfrequenz von 1MHz. RAM-/WE muß auf die Weise erzeugt werden, da der GDC kein eigenes WE-Signal erzeugt.
Bei Einsatz von RAMs mit verbundenem Datenein- und -ausgang (z.B. Typ 4464, Organisation 64Kx4) ist
das erzeugte Signal RAM-/OE anzuwenden. Die maximale Punktfolgefrequenz ergibt sich daraus,
daß ein Display-Zyklus zwei Taktperioden 2xWCLK benötigt. Innerhalb dieser Zeit,
die einer Frequenz von 1MHz entspricht, müssen die 16 Bit Videoinformation serialisiert werden.(lMHz x 16)
[1] | GDC U82720 - Technische Beschreibung. VEB Mikroelektronik "Karl Marx" Erfurt, 1987 |
[2] | Pernards, P.: CAD in Turbo-PASCAL. mc 1985 Heft 8, S. 70-78 |
116 KByte | 222 KByte | 211 KByte |
Bild 1 | Bild 2 | Bild 3 |
583 KByte | 104 KByte | 551 KByte |
Tafel 1 | Bild 4 | Tafel 2 |
979 KByte | 189 KByte | 196 KByte |
Bild 5 | Bild 6 | Bild 7 |
1660 KByte | 938 KByte | 989 KByte |
2.US, gesamt | 2.US, Teil 1 | 2.US, Teil 2 |
855 KByte | 882 KByte | |
2.US, Teil 3 | 2.US, Teil 4 |