Stand: 2004-03
Thomas Mertin
Netzwerk- und Elektrotechnik
D-41334 Nettetal
Bussystem des MFA-Rechners
16 Adreßbusleitungen | A0...A15 |
8 Datenbusleitungen | D0...D7 |
4 Steuerbusleitungen | 28 | Busleitungen (Gesamt) |
ENABLE H-aktiv | ENABLE L-aktiv | ||||||
EN | E | A | E | A | |||
H | H | L | L | H | L | ||
H | L | H | L | L | H | ||
L | X | Z | H | X | Z |
X = beliebig; Z = hochohmig
Weitere Bezeichnungen für EN-Eingänge:
OE = Output enable; OC = Output clock; CS = Chip select; CE = Chip enable
Alle Baugruppen, die Daten an den Datenbus abgeben können (Prozessor, Speicher, Eingabe), sind über Tristate-Gatter (Tristate-Treiber) mit dem Datenbus verbunden. Die Datenfreigabe erfolgt durch den Prozessor jeweils nur für ein Gerät. Hierdurch werden Signalkurzschlüsse zwischen verschiedenen Geräten vermieden.
D0...D3 bilden das LSB (Light significant byte)
D4...D7 bilden das MSB (Most significant byte)
Beispiel:
D0 = 1, D1 = 1, D2 = 0, D3 = 1, D4 = 1, D5 = 0, D6 = 1, D7 = 0
LSB: 10112 = BH MSB: 01012 = 5H
D0...7 = 5BH
|
Beim hochohmigen Zustand sind die Leitungen durch Pull-up Widerstände auf "1"-Signal gelegt.
|
|
Der HL-Sprung des -Signals bewirkt, daß nach einer Verzögerungszeit tv das Datum einer Speicherzelle auf dem Datenbus erscheint. Die Verzögerungszeit ist vom Speicher abhängig (50ns...500ns).
|
RAM: Random access memory, Speicher mit wahlfreiem Zugriff (Zugriffszeiten 50ns...500ns)
SRAM: Statischer RAM, Speicherinhalt bleibt bei Betrieb ohne Refreshing erhalten
DRAM: Dynamischer RAM, benötigt Refreshing (ca. jede 2ms), kleinere Bauart
ROM: vom Hersteller programmiert
PROM: vom Anwender einmalig zu programmieren
EPROM: vom Anwender mehrfach programmierbar, löschen über UV-Strahlen
EEPROM: elektrisch löschbares EPROM
EAPROM: electric alterable ROM (einzelne Speicherzellen änderbar)
PROM (Fusible Link - Technologie):
Herstellerzustand Programmierter Zustand
Fehlendes Link bedeutet Information "1"
EPROM:
Prinzip eines EPROMs (FAMOS)
FAMOS (Floating Gate avalanche injection MOS) P-Kanal:
Schaltzeichen:
4x8 Bit ROM (Matrix) mit Diodenspeicherzellen
2x8 Bit EPROM (Matrix)
Schaltzeichen:
G1: Bausteinauswahl - Eingang (Chip select), UND verknüpft mit EN
Statische RAM-Speicherzelle in NMOS-Technik mit Anwahlschaltung
Statische CMOS-Speicherzelle
Dynamischer RAM (DRAM) Speicherzelle
Vorteil:
hoch integrierbar, durch Organisation in Spalten und Zeilen (Column und Row) ergibt sich eine Reduzierung der notwendigen Pins für das IC.
4x1 Bit RAM, bitorganisierter dynamischer Speicher, ohne Auffrischlogik dargestellt. Unter der Adresse 00 wird in den Kondensator C1 "1"-Signal eingeschrieben.
Speicherzelle eines statischen RAM.
CS: Chip select (Bausteinauswahl); WE: Write enable (Schreibfreigabe); EN: Enable (Tri-State-Steuerung)
Statischer 2x8 Bit RAM
Speicherkapazität = Anzahl der Adressen * Anzahl der Datenleitungen
K = m * d
Adreßleitungen:
Maßeinheiten:
Speicherzelle = 1 Bit
Speicherzeile = 1 Byte (8 Bit)
Beispiele für Speichergrößen:
1) Speicherchip 1k Byte = 1024 Speicherzeilen = 1024 * 8 = 8192 Speicherzellen
2) RAM Speicher 32k RAM = 32k Byte
3) 1MB Chip = 1M Bit = 1028k Byte
Speichererweiterung auf 1k x 8Bit durch Zusammenschalten zweier 1k x 4Bit Schreib-Lese-Speicher (SRAM)
Speichererweiterung auf 16k x 8Bit durch Zusammenschalten von acht bitorganisierten Schreib-Lese-Speichern 16k x 8Bit.
Speicherbereich: Adreßleitungen (A0...A15)
Speichertiefe: 216 = 64kByte
256Byte = 1 Speicherseite (Bsp.: 0000...00FF)
4 Speicherseiten = 1kByte
MAT = Monitor Assembler Tracer
Monitor = Eingabe / Ausgabe / Speichern
Assembler = Übersetzer ASCII - Maschinensprache
Tracer = Testprogramm
Speicherplan |
|||
Anfangsadresse |
Endadresse |
Größe |
Art |
0000 |
1FFF |
8k - ROM |
Betriebssystem MAT85 |
2000 |
3FFF |
8k - ROM |
Betriebssystem MAT85+ |
4000 |
4FFF |
4k - ROM |
DOS |
5000 |
5FFF |
4k - ROM |
Editor |
6000 |
7FFF |
8k - RAM |
Buffer für Editor |
C000 |
FC00 |
8k - RAM |
Anwender Speicher |
FC00 |
FFFF |
RAM |
Speicher für Betriebssystem |
Blockschaltbild und Sockelbelegung des Bausteins 6116
Lesezyklus für den Baustein 6116 | Schreibzyklus für den Baustein 6116 |
Blockschaltbild und Sockelbelegung des EPROMs 2716
Lesezyklus für den Baustein 2716
Funktionstabelle für die Schreib - Lese - Steuerung
|
|
|
Funktion RAM |
Funktion ROM |
L |
L |
L |
(WRITE) |
gesperrt |
L |
L |
H |
READ |
READ |
L |
H |
L |
WRITE |
gesperrt |
L |
H |
H |
gesperrt |
gesperrt |
H |
x |
x |
gesperrt |
gesperrt |
Eingabezyklus Ausgabezyklus
Interne Struktur eines Mikroprozessors
Blockdarstellung des Mikrocomputers 8085A
ALU, Akkumulator, Kurzzeitregister: Arithmetische und logische Verknüpfungen zweier 8 Bit Daten
Flag Register: Ergebnisauswertung nach arithmetischer und logischer Verknüpfung
N = Sign-Flag (N wird 1, wenn das höchste Bit (MSB) gleich 1 ist)
Z = Zero-Flag (Z wird 1, wenn das Ergebnis einer Operation Null ist)
H = Half-Carry-Flag (H wird 1, wenn ein Zwischenübertrag von Bit 3 nach Bit 4 stattgefunden hat)
P = Parity-Flag (P wird 1, wenn die Anzahl der "Einsen" im Ergebnis eine gerade Zahl ist)
C = Carry-Flag (C wird 1, wenn ein Überlauf im Ergebnis zustande kommt; Ergebnis größer FFH)
Dezimalkorrektur: wandelt eine Dualzahl im Akku in eine BCD-Zahl um (mit dem Befehl DAA)
Befehlsregister: Speicherung des aktuell auszuführenden Befehls
Befehlsdecoder: erzeugt in Abhängigkeit vom auszuführenden Befehl die notwendigen Steuersignal für die Takt- und Ablaufsteuerung
Takt- und Ablaufsteuerung: Erzeugung von Steuer- und Taktsignalen für die CPU Einheiten
B/C-, D/E-, H/L-Register: 8/16 Bit Register für allgemeine Anwendungen (D-FF)
W/Z Zwischenregister: Zur Adreßzwischenspeicherung, vom Anwender nicht ansprechbar bzw. zugänglich
Stackpointer (Stapelzeiger): Enthält eine Adresse im RAM-Bereich, in der zu einem späteren Zeitpunkt benötigte Daten stehen (z.B. Rücksprungadressen nach einer Verzweigung zu einem Unterprogramm)
Befehlszähler: Enthält die Adresse des nächsten auszuführenden Befehl
Inkr./Dekr.-Adreß-Speicher: Adressenzähler, vom Anwender nicht zugänglich
Adreßbustreiber: Unidirektionaler Treiber mit Tristate-Ausgang
Adreß-, Datenbustreiber: Bidirektionaler Treiber der im Multiplexbetrieb für Daten- und Adreßbus wirkt
Serielle E/A: Möglichkeit Daten seriell ein- und auszugeben
Unterbrechungssteuerung: für externe Programmunterbrechungen (Interrupts), wenn z.B. andere Programme mit höherer Priorität vorrangig abgearbeitet werden müssen.
Quarzoszillator: gibt die Taktfrequenz des Systems vor, die intern halbiert wird.
Interruptsteuerung: RST-Anschlüsse und INTR dienen der Steuerung von Programmunterbrechungen, die während der Abarbeitung eines Programms angefordert werden können. Während der Unterbrechung arbeitet der Prozessor bestimmte, vorher genau bezeichnete andere Programmteile ab und kehrt dann an die markierte Unterbrechungsstelle zurück. Der "Interrupt-Zustand" wird am Ausgang INTA mit 0 angezeigt.
Hold-Eingang: Mit Hold = 1 werden alle Bus- und Steuerleitungen hochohmig. Adreß-, Daten- und Steuerbussignale können nun von anderen Einheiten gebildet werden (z.B. über Bussignalgeber am MFA). HLDA (Hold-Acknowledge) zeigt als Ausgang in diesem Zusammenhang den Tristate-Zustand der Busleitungen an. Nachdem HOLD weggenommen wurde, setzt der Prozessor das Programm an der "Haltestelle" fort.
RESET IN: Mit RESET IN = 0 werden Programmzähler und interne Flip-Flop's der CPU zurückgesetzt. Registerinhalte bleiben zwar unverändert, können aber nicht mehr verwendet werden, weil ein RESET von außen ohne zeitliche Definition erfolgt. Mit dem RESET wird erzwungen, daß der Programmzähler bei der Adresse 0000H beginnt, wo dann ein sinnvoller Befehl liegen muß um das Betriebssystem neu aufzustarten.
AD0-AD7, A8-A15 Gemultiplexter Adreß-, Datenbus: Die Leitungen AD0-AD7 werden nacheinander für das niederwertige Adreßbyte und für die Datenein- und Datenausgabe benutzt. Während der Zeit, wo die CPU Adreßdaten sendet, ist ALE = 1 (Address latch enable). Mit der abfallenden Flanke des ALE wird das Adreßbyte in einem externen 8-fach D-Latch eingespeichert (74LS374). Die komplette Adresse steht dann also während der Bearbeitung des Befehls an den Ausgängen des IC's zur Verfügung.
Bustreiber: Die Ausgänge des 8085 sind so ausgelegt, daß sie nur einen Standart TTL-Baustein betreiben können. Der 74LS374 zur Adreßspeicherung dient also auch als Treiber für alle an den Bus angeschlossenen Funktionsgruppen. Der Datenbustreiber muß in zwei Richtungen (bidirektional) arbeiten können (74LS245). Mit DIR = 1 werden Daten vom externen Bus gelesen und mit DIR = 0 nach externen Einheiten gesendet.
RD. WR, IO/M: Die Steuerbusausgänge werden zur Betätigung der vier externen Steuerbusanschlüsse ausdecodiert.
S0, S1: Auf diesen Leitungen wird zusammen mit dem Anschluß IO/M angezeigt in welchem der fünf möglichen Maschinenzyklen die CPU sich gerade befindet.
ALU mit Akkumulator
Signale von der Takt- und Ablaufsteuerung:
Dir = 0 Dateneingabe
Dir = 1 Datenausgabe
C1, C2 Übernahme Signal, positiv flankengesteuert
OE = 0 ALU Ausgang hochohmig
OE = 1 Ausgabe der ALU
Impulsdiagramm
tr = Rechenzeit der ALU, x = unbestimmt
t0-t1: Datensignale D und Steuersignale S stehen gültig an.
t2: Daten von Akku nach Zwischenakku. Daten D nach Kurzzeitregister.
t3: Ergebnisdaten auf Datenbus.
t4: Ergebnis im Akku
t5-t6: Rücksetzen aller Steuersignale
t6-t12: Entsprechend t0-t6
Darstellung der ALU für ein Bit
Es gibt fünf unterscheidbare Maschinenzyklen:
a) Ein Lesezyklus überträgt Daten vom Speicher (MR) oder von einer Eingabeeinheit (IOR) zur CPU.
b) Die Dauer des MR/IOR beträgt drei Taktzyklen.
c) MR und IOR unterscheiden sich nur im Zustand der IO/M - Leitung (IO/M = 0: Speicherzugriff, IO/M = 1: Zugriff auf Eingabeeinheit).
d) Ein Maschinenzyklus beginnt mit der Aussendung eines ALE Signals und einer vollständigen Speicheradresse / Portnummer. Bei Zugriff auf eine I/O - Einheit sind A0...A7 und A8...A15 identisch, da die Portnummer nur 8 Bit breit ist.
e) Mit T2 wird RD Low und die Speicher- /Eingabedaten gelangen auf den Datenbus. In Abhängigkeit vom auszuführenden Befehl kann während T2 der Befehlszähler inkrementiert werden.
f) Während T3 (zur Zeit t3) werden die Daten in ein Register der CPU übernommen. Bei IOR gelangen die Eingabedaten immer in den Akkumulator. Nach der Übernahme der Daten werden RD = 1 und der Datenbus hochohmig (t4).
g) Die Signale IO/M, S0 und S1 zeigen externen Einheiten an, daß ein MR/IOR Maschinenzyklus stattfindet.
Speicher lesen | Eingabeport lesen | |
Speicher schreiben | Ausgabeport schreiben |
Beispiele:
nach oben | ||
Seite zurück | Inhalt | Seite vor |
Startseite |
Nachricht an: webmaster@mertech.de