4.4.2. Prinzip der RAS/CAS-Erzeugung

 

  Das RAS/CAS-Timing des dynamischen Speichers wurde in drei Grundzyklen zerlegt:

 

  1) Anlegen der ROW-Adresse und fallende Flanke der RAS-Leitung

  2) Anlegen der COL-Adresse und fallende Flanke der CAS-Leitung

  3) Refresh-Zyklus

 

  Der Refresh-Zyklus führt ein CAS-vor-RAS-Refresh durch, bei dem ein im D-RAM befindlicher Refresh-Zähler die Refresh-Adresse er­zeugt. Von außen muß daher bei diesem Refresh-Modus keine Adresse angelegt werden.

  Jeder der drei Zyklen ist als Schieberegister realisiert. Zum Starten eines Zyklus wird ein Impuls von einem Taktzyklus Breite in das Schieberegister eingespeist. Beim Durchtakten löst dieser Impuls zeitlich getrennte Aktionen aus, z.B. das Setzen bzw. Rücksetzen eines Signals oder das Anlegen einer Adresse an das D-RAM. Wenn der Impuls am Ausgang eines Schieberegisters erscheint, kann er in ein weiteres Schieberegister eingespeist werden. Da­durch können als den Grundzyklen komplexe Timings zusammengesetzt werden.

  Neben den drei Grundzyklen existiert noch ein Wartezyklus, der selbst keine Aktionen auslöst, sondern nur das Aufnahmetiming an­paßt.

  Das Aufeinanderfolgen der einzelnen Zyklen ist in Zustandsfol­gediagrammen aufgezeichnet. (Abbildung 4-1) Die einzelnen Grund­zyklen sind darin als Knoten dargestellt. Die Knoten CAS, RAS, RFSH und WAIT repräsentieren die erwähnten Zyklen. Ein Zustand ist aktiv, wenn das ihn darstellende Schieberegister einen Impuls enthält. IDLE ist ein Ruhezustand, von dem aus die anderen Zyklen gestartet werden. Er liegt vor, wenn keiner der vier anderen Zy­klen aktiv ist. Die Bedingungen, die an die Aufeinanderfolge der Grundzyklen geknüpft werden, sind den Kanten zugeordnet.

 

  Für jeden der drei Betriebsmodis existiert ein eigenes Zu­standsfolgediagramm. Folgende Signale werden darin benutzt:

 

 

 DISPLAY: Aktiv (=1) während des sichtbaren Teils einer Zeile

   PAUSE: Aktiv (=1) vom Ende des H-Pulses bis zum Anfang des

          sichtbaren Teils der Zeile

   CAS79: Aktiv (=1) vor dem jeweils 80. Pixel einer Bildzeile

  HSTART: Impuls am Anfang des sichtbaren Teils einer Zeile

          (steigende Flanke von DISPLAY)

   CSCPU: Aktiv (=0) während eines Mikroprozessorzugriffs

  CPUEND: Impuls am Ende eines Mikroprozessorzugriffs (steigende

          Flanke von CSCPU)

   IRFSH: Impuls jeweils ca. 13µs nach dem letztem RAS-Zyklus,

          ausgelöst vom Refresh-Timer.

   DIDIS: Aktiv (=1) während des sichtbaren Teils einer abzu-

          tastenden Zeile (während der Aufnahme)

 

 

  Im Modus 0, dem Anzeigemodus muß besonders schnell auf den Bildspeicher zugegriffen werden, da hier die Pixelfrequenz am größten ist. Es wird daher im Page-Modus gearbeitet. Dabei kann, bei unveränderter ROW-Adresse, auf eine Zeile im D-Ram sehr schnell zugegriffen werden.

  Wie aus dem Zustandsfolgediagramm für Modus 0 entnommen werden kann, wird am Anfang einer Zeile, ausgelöst durch HSTART zunächst ein RAS-Zyklus durchgeführt. Hierbei wird die Row-Adresse des ak­tuellen Bildes und der aktuellen Zeile in das D-Ram geschrieben. Anschließend werden in CAS-Zyklen die Pixel einer Zeile, maximal 80, ausgelesen. Ist, angezeigt durch CAS79, das erste Bild voll­ständig angezeigt, wird in RFSH ein Refresh-Zyklus durchgeführt und mit dem nächsten Bild der Zeile fortgefahren. Diese Schleife: RAS - CAS (wiederholt) - RFSH wird solange wiederholt, bis die Zeile zuende ist. Bis zum Ende des H-Pulses der nächsten Zeile werden Refresh-Zyklen erzeugt und anschließend in IDLE auf den Anfang des sichtbaren Teils der folgenden Zeile gewartet.

  Modus 1, der CPU-Modus, gestattet den Zugriff auf den Bildspei­cher vom Mikroprozessor aus. Der Zugriff erfolgt nicht wahlfrei, vielmehr werden die einzelnen Pixel eines Bildes Byte-sequentiell gelesen und geschrieben. Die erforderlichen Adressen werden dabei im Modul ADRE automatisch hochgezählt.

  Die Prozessorzugriffe auf den Bildspeicher erfolgen außerdem nicht direkt, sondern über Zwischenspeicher, die im Modul PROZ enthalten sind. Erst nach dem Ende des Zugriffs werden die Daten vom bzw. in den Bildspeicher übertragen. Bei Lesezugriffen muß daher zunächst ein Dummy-Zugriff durchgeführt werden, damit die Daten des ersten Pixels in den Zwischenspeicher übertragen werden können. Alle folgenden Zugriffen können normal ablaufen.

  Das Zustandsfolgediagramm für Modus 1 beschreibt den Ablauf der Speicherzyklen. Ausgehend vom IDLE-Zustand wird nach erfolgtem CPU-Zugriff in einem RAS- und nachfolgendem CAS-Zyklus der ei­gentliche Speicherzyklus durchgeführt. Diesem folgt ein Refresh-Zyklus. Da zu dieser Zeit der Mikroprozessor mit der Verarbeitung der gelesenen bzw. dem Heranschaffen der folgenden Daten beschäf­tigt ist, stört dieser Refresh die CPU-Zugriffe nicht.

  Nach dem Refresh wird wieder der IDLE-Zustand eingenommen. Falls dieser länger als ca. 13µs dauert, wird über IRFSH ein Re­fresh-Zyklus erzwungen, es sei denn, es wird gerade ein CPU-Zu­griff durchgeführt. In diesem Fall ist kein Zwangs-Refresh nötig, da am Ende des CPU-Zugriffs ohnehin ein Refresh erfolgt.

  Im Modus 2 wird ein Videobild aufgezeichnet. Die Abtastfrequenz beträgt dabei sowohl vertikal als auch horizontal nur 1/4 der Wiedergabefrequenz. Die horizontale Verlangsamung wird durch Ein­schieben eines Refresh- und eines Wartezyklusses bei jedem abge­tasteten Pixel erreicht.

  Bei der Wiedergabe wurde jeden 5. Taktimpuls ein Pixel ausgege­ben. Dies entspricht der Länge des CAS-Zyklus. Bei der Aufnahme wird nun alle 20 Taktzyklen ein Pixel abgespeichert. Dies ent­spricht der Summe der Länge von RAS- (3), CAS- (5), RFSH- (9) und WAIT-Zyklus (3). Aufnahmefrequenz zu Wiedergabefrequenz verhalten sich also wie 1 zu 4.

  Das Zustandsfolgediagramm zu Modus 2 verdeutlicht dies. Im IDLE-Zustand wird auf den Anfang einer Zeile gewartet. Durch HSTART wird die Schleife RFSH - RAS - CAS - WAIT ausgelöst. Diese wird bis zum Ende der Zeile wiederholt. Auf den Anfang der näch­sten Zeile wird in RFSH-Zyklen gewartet.