Inhaltsverzeichnis
Einleitung
Die Speicherbausteine sind neben dem Mikroprozessor (CPU) die wichtigsten Bau- steine zum Aufbau eines Mikroprozessorsystems. In ihnen sind die Daten und Befeh- le, die der Mikroprozessor verarbeiten soll, enthalten oder können dort abgelegt werden.
Zum Ausführen eines Programmes benötigt der Mikroprozessor unterschiedliche Speichertypen. Daten, die verändert werden sollen und die vom Anwender eingegeben werden, speichert man in Schreib-Lese-Speichern ab. Solche Speicher nennt man auch RAM. Die Abkürzung steht für Random Access Memory und bedeutet soviel wie „Speichersystem mit beliebigem Zugriff“. Programme, die nicht mehr geändert werden sollen, werden in Nur-Lese-Speichern oder ROM abgespeichert. Hier steht die Abkürzung für Read only Memory, was soviel bedeutet wie Speichersystem mit Lese- aber ohne Schreibmöglichkeit“. Die Programme in diesen Speichern werden vom Hersteller der ROM’s im Verlauf der Fertigung in die Speicherzellen geladen. Will man als Anwender solche Programme selber in Speicher laden, so muss man ROM’s verwenden, die sich elektrisch programmieren lassen. Speicher dieser Art nennt man EPROM. Die Abkürzung steht für Erasable Programmable Read Only Memory und bedeutet etwa Löschbarer aber programmierbarer Festwertspeicher“. Die Informationen in einem EPROM sind durch Bestrahlung mit UV-Licht löschbar, programmiert werden sie durch elektrische Impulse.
Ein weiterer Unterschied der genannten Speichertypen ist ihr Verhalten bezüglich ihres Informationsinhaltes nach Abschalten der Betriebsspannung. ROM- und EPROM- Speicher behalten ihren Inhalt nach Abschalten der Betriebsspannung, während er bei RAM-Speichern verloren geht.
Um das MC-Baugruppensystem erweiterbar und flexibel zu machen, werden alle Speicherbausteine auf einer eigenen Baugruppe angeordnet. Diese Baugruppe kann entweder mit RAM- oder mit EPROM (ROM)- Speichern bestückt werden. Die hierzu nötige Umschaltung erfolgt durch Einlöten einiger Drahtbrücken. Speichererweiterungen sind einfach durch Verwendung mehrerer Baugruppen möglich. Im folgenden wird zunächst erklärt, was beim Aufbau solcher Baugruppen zu beachten ist. Anschließend wird die Funktion der 8-K-RAM/EPROM-Baugruppe beschrieben.
Prinzip eines Speichers
Bild 1 zeigt das Prinzip eines Speichers und die zum Lesen und Beschreiben nötigen Anschlüsse.
Bild 20: Prinzip eines Speichers
Alle Informationen im Speicher sind in binärer Form gespeichert. Ein »Datenwort« besteht aus acht Bit und ist in einer Speicherzeile gespeichert, die ihrerseits aus acht Speicherzellen besteht.
Der Transport der Datenwörter in den Speicher hinein oder aus ihm heraus erfolgt über acht Datenleitungen, den Datenbus. Mit Hilfe der Bitkombination auf den 16 Adressleitungen – dem Adressbus – wird bestimmt, in welche Speicherzeile ein Datenwort gelangen oder aus welcher Zeile es gelesen werden soll. Die Anzahl der im Speicher ansprechbaren Speicherzeilen wird begrenzt durch die Zahl der zu ihrer Adressierung vorhandenen Adressleitungen. Mit n Adressleitungen lassen sich 2^n Speicherzeilen adressieren. Mit den 16 Adressleitungen eines 8-Bit-Mikroprozessors kann man also 2^16 = 65.536 Speicherzeilen ansprechen. Einen Speicher mit dieser Anzahl von Speicherzeilen nennt man 64-K-Speicher. Hier steht K für 1024 (= 2^10).
Mit den beiden Steuer-Leitungen MEMR und MEMW wird bestimmt, ob ein Datenwort in die adressierte Speicherzeile geschrieben (MEMW = L) oder aus ihr gelesen werden soll (MEMR = L).
MEMW steht für »memory write«, Speicher beschreiben, und MEMR für »memory read«, Speicher lesen. Die Überstreichung bedeutet, daß diese Signale bei L-Pegel wirksam (aktiv) werden.
Aufbau eines Speichers aus einzelnen Speicherblöcken
Der in Bild 20 dargestellte Speicher hat neben dem Vorteil des einfachen Aufbaus den großen Nachteil, daß er die gemischte Verwendung von RAM- und ROM- oder EPROM-Bausteinen nicht zuläßt, weil er die Höchstzahl von Speicherzeilen besitzt, die in MC-Systemen mit 16 Adreßbits möglich ist. Diesen Nachteil kann man vermeiden, indem man den Speicher aus kleineren »Speicherblöcken« aufbaut. Bild 21 zeigt eine mögliche Lösung, bei der ein 64-K-Speicher aus acht 8-K-Blöcken aufgebaut ist.
Bild 21: Ein 64-K-Speicher, aufgebaut aus acht 8-K-Blöcken.
Jeder einzelne Block kann hier jetzt aus RAM-, ROM- oder EPROM-Speicherbausteinen bestehen. Außerdem kann man auch mit kleineren Speichersystemen arbeiten, wenn die Aufgabenstellung keinen Speicher mit 64 K Speicherzeilen erfordert.
Da jeder der 8-K-Speicherblöcke aus 2^13 Speicherzeilen besteht, benötigt man zu deren Adressierung auch nur je 13 Adressleitungen (8 K = 8 x 2 10 = 2^13 = 8192). Die 13 Adressleitungen A0 … 12 führt man zu jedem der 8-K-Blöcke. Eine Decodierschaltung sorgt dafür, dass nicht die Inhalte von mehreren Speicherzeilen gleichzeitig auf den Datenbus geschaltet werden.
Ist die Bitkombination auf den Adreßleitungen A13 … A15 gleich derjenigen, die mit den Schaltern SA13, SA14 und SA15 eingestellt wurde, so erfolgt die Auswahl des entsprechenden Speicherblocks. Mit den drei Schaltern lassen sich acht verschiedene Speicherblöcke auswählen. Die niedrigste Adresse einer Speicherzeile eines jeden Speicherblocks nennt man »Basisadresse«; sie wird durch die gewählte Schalterstellungs-Kombination festgelegt.
Bild 23 zeigt den Aufbau eines 64-K-Speichers aus acht 8-K-Blöcken. Jeder Block ist eine eigene Baugruppe mit eigener Blockauswahl.
Bild 23: Ein 64-K-Speicher, aufgebaut aus acht 8-K-Speicherbaugruppen mit jeweils eigener Blockauswahl.
Jede dieser Baugruppen ist an alle Bus-Leitungen angeschlossen; die Baugruppen sind deshalb beliebig innerhalb eines Baugruppensystems austauschbar. Mit der Festlegung der Basisadresse durch die Schalterstellung am Adressvergleicher auf den Baugruppen ist der Adressbereich einer Baugruppe eindeutig festgelegt. Damit keine Überschneidungen bezüglich der Adressen auftreten, dürfen keine gleichen Schalterstellungen auf verschiedenen Baugruppen (oder 8-K-Blöcken) eingestellt werden.
Die Adressleitungen A13 … A15 liefern, wie bereits beschrieben, das Blockauswahl-Signal. Der Adressvergleicher gibt den 1-aus-4-Decoder nur dann frei, wenn sich die Gesamtadresse (aus A0 … A15) im Bereich der für den Block gültigen 8-K-Speicherzeilen befindet.
Beim Aufbau der Baugruppe aus acht 1-K-Speichern müsste der 1-aus-4-Decoder durch einen 1-aus-8-Decoder ersetzt werden; den Speichern würden dann nur die Adressleitungen A0 … A9 (2^10 = 1024) zugeführt, und der Decoder erhielte noch eine dritte Adressleitung A10, weil er dann acht Bausteine anzuwählen hätte (2^3 = 8).
Die Schaltung der 8-K-RAM/EPROM-Baugruppe
Bild 25 zeigt das Blockschaltbild dieser Baugruppe. Zunächst wird die Funktion erklärt; Schaltungsdetails werden anschließend beschrieben.
Bild 25: Das Blockschaltbild der 8-K-RAM/EPROM-Baugruppe.
Bild 26: Der Stromlaufplan der 8-K-RAM/EPROM-Baugruppe.
Bei einem L-Pegel am EN-Eingang wird die Datenflussrichtung vom Pegel des MEMR-Signals bestimmt. Ist es aktiv (L), so können Daten vom Speicher zum System-Bus gelangen, andernfalls vom System-Bus zum internen Bus der Baugruppe. Sie liegen dann an den Daten-Eingängen der Speicher zur Übernahme in die Speicherzeile bereit.
Bild 28: Innenschaltung (Ausschnitt) und Funktionstabelle des Datenbus-Treibers
Funktionstabelle des 72LS245
/EN | DIR /MEMR | Funktion | Wirkung auf der Baugruppe |
---|---|---|---|
L | L | Daten von B -> A | Lesen |
L | H | Daten von A -> B | Einschreiben |
H | L | Ausgänge hochohrig | Baugruppe nicht ausgewählt |
H | H | Ausgänge hochohrig | Baugruppe nicht ausgewählt |
Die Baugruppenauswahl
Bild 29: Die Baugruppen-Auswahl.
Bausteinauswahl
Bild 31 : Der Schaltungsteil für die Baustein-Auswahl.
Funktionstabelle 74LS138
G1 | G2 | C | B | A | Y0 | Y1 | Y2 | Y3 |
---|---|---|---|---|---|---|---|---|
L | X | X | X | X | H | H | H | H |
H | L | L | L | L | L | H | H | H |
H | L | L | L | H | H | L | H | H |
H | L | L | H | L | H | H | L | H |
H | L | L | H | H | H | H | H | L |
Da auf der Speicherbaugruppe nur vier 2-K-Speicherbausteine vorhanden sind, wer- den nicht alle 8 Ausgänge und entsprechend auch nicht alle drei Eingänge des ICs 74138 benutzt. Der Funktionstabelle ist zu entnehmen, dass Eingang C auf L-Potential gelegt werden muss. Die verbleibenden beiden Eingänge A und B ermöglichen eine Unterscheidung von vier verschiedenen Bitkombinationen auf den Adressleitungen A11 und A12. Mit den entsprechenden L-Pegeln auf den Ausgängen Y0 bis Y3 wird jeweils ein 2-K-Speicherbaustein angesprochen.
Über die Steuereingänge G1, G2A und G2B kann der 1-aus-8-Decoder gesperrt werden. G2A und G2B sind auf L-Pegel gelegt und damit wirkungslos; über G1 wird der Decoder immer dann mit H-Pegel freigegeben, wenn die Baugruppe angesprochen wird.
Mit Hilfe der vier möglichen Bitkombinationen auf den Adressleitungen A11 und A12 läßt sich der Adressbereich der Speicherbausteine ermitteln. In Bild 32 sind diese Adressbereiche für alle vier Speicher zusammengestellt.
Bild 32: Tabelle zur Bestimmung des Adressbereichs der vier 2-K-Speicherbausteine.
Für den Buchstaben X ist jeweils die hexadezimale Summe der Schalterwertigkeiten (SA13 … SA15) für diejenigen Schalter, die H-Pegel liefern, einzusetzen. Siehe hierzu auch Bild 30.
Beispiel:
Auf einer Baugruppe sind alle Schalter offen, liefern also H-Pegel an den Adressvergleicher.
X = S + 4 + 2 = E (hexadezimal) Baustein-Adreßbereich:
IC08 : E000 – E7FF
IC09 : E800 – EFFF
IC10 : F000 – F7FF
IC11 : F800 – FFFF
Blockaufbau eines RAM-Bausteins
Bild 33: Blockaufbau und Funktionstabelle des RAM-ICs vom Typ 6116P-3.
Da der Steuereingang OE (Ausgangs-Freigabe) auf L-Potential liegt (siehe Bild 26), erfolgt die Steuerung des Datenverkehrs vom und zum Speicher nur über die Steuerleitungen CS (Baustein angewählt) und WE (Schreib-Freigabe).
Wenn die Baugruppe nicht angewählt ist, führt CS H-Pegel, und die Ein/Ausgabepuffer im RAM sind hochohmig. Bei angewählter Baugruppe und angesprochenem RAM führt der CS-Eingang L-Pegel. Der Datenverkehr hängt nun vom Pegel auf der WE-Leitung ab. Mit einem L-Pegel auf diesem Eingang werden Daten in den Speicher geschrieben; mit einem H-Pegel gelangen Daten aus dem Speicher auf den Datenbus .
Der Decoder im RAM erzeugt aus der Bitkombination der Adressleitungen A0…A10 ein Signal zur Freigabe der adressierten Speicherzeilen innerhalb des Speicherzeilen-Blocks klein zu halten, werden besonders für Anwendungen mit umfangreichen Programmen Speicherbaugruppen mit höherer Speicherkapazität benötigt. Die in diesem Abschnitt beschriebene 16-K-RAM/EPROM-Speicherbaugruppe kann mit maximal 8 Speicherbausteinen zu je 2 K Byte Speicherkapazität bestückt werden. Die Bausteine können sowohl RAM– als auch EPROM-Speicher sein. Eine gemischte Bestückung ist ebenfalls möglich. Zusätzlich ist die Baugruppe mit einem 2-K-Urladerspeicher (s.u.) bestückbar.
Schaltung und Funktionsbeschreibung
Bild 35 zeigt den Stromlaufplan der Baugruppe. Sie sollten diesen Plan bei allen folgenden Erklärungen mitbenutzen.
Einige Hinweise zur Urlader-Einrichtung (siehe Bild 41):
Sie wird immer dann erforderlich, wenn der Systemspeicher des Mikrocomputers ab der Adresse 0000 mit Schreib-Lese-Speicher ausgerüstet werden soll. Da der Mikroprozessor nach einem System-Start oder einem Reset den ersten auszuführenden Befehl unter der Adresse 0000 erwartet, muß zunächst ab dieser Adresse ein ROM eingeblendet werden. Dieses ROM bezeichnet man als Urlader-ROM, weil darin üblicherweise ein Programm abgelegt wird, welches das eigentliche Verarbeitungsprogramm in den Systemspeicher des Mikrocomputers laden soll, z.B. von einem Massenspeicher (Floppy Disk). Nach Beendigung dieses Ladevorgangs wird der Prozessor durch einen Sprungbefehl veranlasst, zum geladenen Verarbeitungsprogramm zu verzweigen. Nach Ausführung des Sprungbefehls wird das Urlader-ROM abgeschaltet.
Baugruppen-Auswahl
Bei dieser Speicherbaugruppe wurde eine Volldecodierung angewendet, bei der alle 16 Adressleitungen an der Decodierung der Baugruppe bzw. der Speicherbausteine beteiligt sind. Die zusätzlichen Anschlüsse für A16 und Al7 sind für spätere Anwendungen vorgesehen.
Die Baugruppenauswahl erfolgt über die Adressleitungen A14 und A15, mit denen sich vier Baugruppen zu je 16 K Byte Speicherkapazität adressieren lassen. Bild 36 zeigt den 4-Bit-Komparator 74LS85, der zur Baugruppenauswahl dient.
Bild 36: Die Auswahl von 16-K-Speicherbaugruppen.
Einstellung des Adressbereiches über die Lötbrücken
A17 | A16 | A16 | A14 | Adressbereich |
---|---|---|---|---|
L | L | L | L | 0000 – 3FFF |
L | L | L | H | 4000 – 7FFF |
L | L | H | L | 8000 – BFFF |
L | L | H | H | C000 – FFFF |
Mit Hilfe der Lötbrücken A14 und A15 läßt sich der Adreßbereich einstellen, in dem die Speicherkarte arbeiten soll.
Die Steuerung des Schreibvorgangs
Bild 38 zeigt den Schaltungsteil, der für die Steuerung des Schreibvorgangs sorgt. Zum Einschreiben von Daten in die Speicherbausteine ist entsprechend Bild 37 die Signalkombination Nr. 3 erforderlich. Das CS-Signal liefert der Adressdecoder.
Bild 38: Die Steuerung des Schreibvorgangs.
Führt MEMW L-Pegel, so tritt nach dem Inverter IC3.l ein H-Pegel auf. Dieser H-Pegel gelangt an die OE-Eingänge (Output Enable) der Speicherbausteine, wo- durch ihre Datenanschlüsse intern auf »Einschreiben in den Speicher« geschaltet werden. Nach außen hin wirken sie dadurch hochohmig. Die UND-Verknüpfung des invertierten MEMW-Signals mit dem Freigabesignal der Baugruppenauswahl durch IC3.3 erzeugt einen L-Pegel an den WB-Eingängen (Write Enable) der Speicherbau- steine. L-Pegel an diesem Eingang eines RAM-Bausteins ermöglicht das Einschreiben von Daten in den Speicher.
Die Steuerung des Lesevorgangs
Soll der Inhalt einer Speicherzeile gelesen werden, so müssen die Pegel der drei Steuereingänge der Signalkombination Nr. 2 (CS = L, OE = L, WE = H) entsprechen; siehe Bild 37. Dieser Signalzustand ist in Bild 39 eingetragen.
Das CS-Signal wird vom Adreßdecoder erzeugt. Führt zusätzlich das Steuersignal MEMR L-Pegel, so hat MEMW einen H-Pegel, weil der Zustand MEMW = MEMR = L bei normalem Betrieb nicht vorkommt.
Bild 39: Die Steuerung des Lesevorgangs.
Die Steuerung der Datenflussrichtung
Der Datenbustreiber 74LS245 (Bild 40) besitzt die beiden Steuereingänge DIR und EN. Ein H-Pegel am EN-Eingang (Enable = ermöglichen) schaltet die Datenleitungen auf beiden Seiten des Treiberbausteines in den hochohmigen Zustand (Tristate). Ein L-Pegel gibt den Datenfluss in einer der beiden möglichen Richtungen frei. Diese Datenflussrichtung wird mit dem Steuersignal MEMW über den Steuereingang DIR (Direction = Richtung) bestimmt. Bei einem Schreibvorgang (MEMW = L) liegt am DIR-Eingang ein H-Pegel an, und die Daten gelangen vom System-Bus in den Speicher. Bei einem Lesevorgang liegt am DIR-Eingang L-Pegel an, und die Daten gelangen vom Speicher zum System-Bus.
Die Freigabe des Datentransportes erfolgt allerdings nur dann, wenn
- die Baugruppe freigegeben ist, d. h. eine für die Baugruppe gültige Adresse auf dem Adreßbus ansteht, und
- entweder das Steuersignal MEMW oder MEMR einen L-Pegel führt.
Bild 40: Die Steuerung der Datenflußrichtung.
Stromlaufplan
Bild 41: Der Stromlaufplan der 16-K-RAM/EPROM-Baugruppe mit Urlader-Einrichtung.