Musterlösung 5 Mikroprozessor & Eingebettete Systeme 1

Musterlösung 5
Mikroprozessor & Eingebettete Systeme 1
WS2015/2016
Hinweis:
Die folgenden Aufgaben erheben nicht den Anspruch, eine tiefergehende
Kenntnis zu vermitteln; sie sollen lediglich den Einstieg in weiterführende
Literatur erleichtern.
Thema: Systembus und Adressdekodierung
Lösungsblatt Nr.: 5
Datum: 04.12.15
1
Aufgabe 1
1.1 Erklären Sie das Verhalten eines synchronen und eines asynchronen Busses. Skizzieren
Sie für das beschriebene Verhalten jeweils ein Zeitdiagramm.
Lösung:
Synchron Bus:
Eigenschaften eines Synchron Buses (taktgesteuert):
- Takt (CLK benötigt)
- Fixierter Protokoll für Datenübertragung, das abhängig vom Systemtakt
T
TA
TB
( T = 100 ns )
CLK
A0-N
Adressen
D0-M
Daten
Lesen
R/W
D0-M
Daten
Schreiben
R/W
Bild 5.1 Synchron Bus
Zu Beginn der positiven Halbwelle TA des Systemtaktes wird eine gültige Adresse auf den Adressbus
gelegt. Die Auswahl der Übertragungsrichtung (Lesen bzw. Schreiben) erfolgt durch die Steuerleitung R/W.
Beim Lesen erscheinen gültige Daten während der negativen Halbwelle TB auf dem Datenbus. Sie werden
vom Prozessor mit der positiven Flanke des Takt-signals übernommen. Beim Schreiben (R/W = 0) legt der
Prozessor mit Beginn der negativen Halbwelle TB die Daten auf den Bus. Die Übernahme in den Speicher
(Peripherie) wird mit der positiven Flanke von R/W ausgelöst. Synchrone Buszyklen sind nur mit relativ
niedriger Taktfrequenz möglich. Beispielsweise beträgt bei 10 MHz die Taktperiode 100 ns, die Zeiten TA
und TB jeweils 50 ns. Diese Zeit ist gerade noch ausreichend, um schnelle Speicher anzusprechen.
Asynchron Bus:
Eigenschaften eines Asynchron Buses: (ereignisgesteuert)
- Beim asynchronen Systembus wird auf die starre Kopplung zwischen System-takt und Datenübernahme
verzichtet.
2
-Die Synchronisation erfolgt durch Handshake (Quittierung) Signale für die Gültigkeit von Adressen und
Daten
CLK
A0-N
Adressen
AS
DTACK
D0-M
Daten
Lesen
R/W
D0-M
Daten
Schreiben
R/W
Bild 5.2 Asynchron Bus
Beim Vorliegen einer gültigen Adresse erzeugt die CPU das Signal AS (Address-Strobe), was von der
angesprochenen Komponente erkannt wird. Die Richtung des Datentransfers wird wieder durch R/W
gesteuert. Beim Lesen gibt die angesprochene Komponente das Datum auf den Daten¬bus und informiert
die CPU darüber mit dem Signal DTACK (Data Transfer Acknowledge). Zwischen der Aktivierung von AS
und DTACK kann eine beliebig lange Zeit vergehen. Die CPU übernimmt das Datum mit einer
nachfolgenden Taktflanke und deaktiviert AS. Beim Schreiben legt die CPU das Datum auf den Datenbus
(nach Adresse und AS), das so lange gültig bleibt, bis die Komponente durch DTACK die Übernahme
quittiert.
1.2 Nennen Sie die Vor- und Nachteile von synchronen und asynchronen Bussen.
Lösung:
Synchroner Bus
Vorteile
Asynchroner Bus
-Einfacher Aufbau der Hardware -Mehrere Bausteine können verfügt werden
-lange Übertragungsstrecke realisierbar (weil da
(weniger Leitungen)
-Übertragungsgeschwindigkeit
keine Besorgnis für Taktänderung hat)
schnell (mit schnellen Bausteinen)
-Gut tastbar (festes Zeitfenster für die
Übertragung)
3
Nachteile
-alle Bausteine sollen mit gleicher -Komplexer Aufbau der Hardware (mehr
Geschwindigkeit (der langsamste Leitungen)
Baustein bestimmt die Übertragung)
-Übertragungsgeschwindigkeit(zwischen
-nur kurze Übertragungsstrecke möglich, Adressierung und Datenübernahme eine
beliebig lange Zeit möglich)
wegen der Taktverschiebung
Aufgabe 2
Vergleichen Sie die maximale Bandbreite eines Speicher-Lesezykluses für einen
synchronen und einen asynchronen Bus, wenn die Speicherzugriffszeit 100ns beträgt.
Der Bus weist folgende Eigenschaften auf:
- Busbreite 32 Bit
- synchroner Bus:
o Taktzykluszeit 50ns
o Jede Übertragung benötigt 1 Taktzyklus
-asynchroner Bus:
o Jedes Quittierungssignal („Handshake“) dauert 50ns
Lösung:
Synchroner Bus:
1. Adresse zum Speicher (zum Slave) senden - 50 ns
2. Daten vom Speicher (vom Slave) lesen- 100 ns
3. Daten zum Mikroprozessor (Master) senden - 50ns
Insgesamt = 200 ns
Maximum Bandbreite 4 Bytes/200ns = 20 MB/sek.
Asynchroner Bus:
1. Adresse zum Speicher (zum Slave) senden - 50ns
2. Beim Vorliegen einer gültigen Adresse erzeugt der Mikroprozessor (Master) das Signal
AS (Address-Strobe) -50ns (Quittierung)
3. Daten vom Speicher (Slave) lesen -100ns
(Zwischen der Aktivierung von AS und DTACK kann eine beliebig lange Zeit vergehenZugriffszeit)
4. Speicher (Slave) sendet zum Mikroprozessor (Master) DTACK (Data Acknowledge) 50ns (Quittierung)
5. Daten zum Mikroprozessor (Master) senden - 50ns
Insgesamt = 300 ns
Maximum Bandbreite 4 Bytes/300ns = 13,33 MB/sek
4
Aufgabe 3
3.1 Aus welchen Gründen werden Mikroprozessoren mit Multiplexbus eingesetzt?
Lösung:
Ein Multiplexbus wird meistens dann eingesetzt, wenn die Anzahl der Pins eines
Prozessorgehäuses aus technischen oder Kostengründen minimiert werden muss. Das heißt,
wegen Prozessorgehäuse und Aufwand, zur Einsparung von Busleitungen wird häufig Multiplex
Bus verwendet. Als Multiplexbus bezeichnet man einen Bus, dessen einzelne Datenleitungen
sequentiell von verschiedenen Signalen des Mikroprozessors belegt werden können. Einige
Prozessoren verwenden die gleichen Anschlüsse für Daten und Adressen im Zeitmultiplex.
3.2 Wie werden die Adressen und Daten separiert? Zeichnen Sie den prinzipiellen Aufbau
eines Mikroprozessorsystems mit einem Multiplexbus.
Lösung:
Die entsprechenden Adressbits Die entsprechenden Adressbits Die entsprechenden Adressbits
Die entsprechenden Adressbits müssen in einem externen Latch zwischengespeichert werden.
Zur Übernahme erzeugt das Steuerwerk
ein Übernahme Signal VMA, ALE oder ADS. Bild 5.3
zeigt das Timing
T
T1
T2
T3
T4
CLK
AD0 -K
Adresse
Daten
ALE
Adresse
AK+1-N
Bild 5.3 Multiplexed Bus Timing
5
Für die Multiplex Bus, welches Signal auf der gemeinsamen Busleitung angelegt wird, entscheidet ein
Multiplexer (d.h. ein Selektionsbaustein) in der Systembus-Schnittstelle des Prozessors. Für die Separat
des Signals auf gemeinsamen Bus wird häufig ein externer Latch Buffer als Zwischenspeicher
verwendet.
Aufgabe 4
4.1 Schließen Sie ein ROM mit 4 KiB Speicher und 8-Bit breitem Adressbus (4 KiB x 8) so
an, dass dieses ab Adresse 0x0000 ansprechbar ist. Erstellen Sie die zugehörige
Adressmap.
A0 A4 A8 A12 -
A3
A7
A11
A15
A0 - A3
...
CPU
CS
D0 - D7
D0 - D7
Adress-Bits
15
14
13
12
11
ROM
(4KiBx8)
10
9
8
7
6
5
4
3
2
1
0
Bereich
(in Hex)
ROM
6
Lösung:
Die Schritte für eine Adressdekodierung:
- die Grenzen definieren
4K-ROM: 4K=22*210 = 212
-A11
- die Zugriffsbreite definieren – 8 Bit
- die Anfangsadresse erstellen -h’0000
- den Adressmap (Adressbereich) erstellen
- die Schaltung skizzieren
Bild 5.5: Adressdekodierung für 4KROM im 8Bit Mikroprozessor System
7
4.2 Wenn das ROM ab Adresse 0x9000 ansprechbar ist, wie ändern sich die Schaltung und
die Adressmap?
Adress-Bits
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Bereich
(in Hex)
ROM
Lösung:
Aufgabe 5
5.1 Erläutern Sie die Vor- und Nachteile der vollständigen und unvollständigen
Adressierung.
Lösung:
Vollständig:
Die Adressierung jedes Bausteins wird unter Verwendung aller Adressleitungen decodiert.
Vorteil: Dies hat den Vorteil, dass periphere Systemgeräte und Speicher über eindeutige
Adressen erreichbar sind – es findet keine Adressspiegelung statt. Somit werden mögliche
Programmierfehler vermieden. Weitere Bausteine sind problemlos zuschaltbar- Erweiterung
problemlos.
Nachteil: Mehr Hardware nötig.
Unvollständig:
Falls in einer Schaltung eine oder mehrere Adressleitungen nicht berücksichtigt werden, spricht man
von einer unvollständigen Adressdekodierung. Es wird nur eine Minimalzahl von Adressleitungen
ausgewertet. Der Speicher und die E/A-Schnittstellen erscheinen mehrmals unter verschiedenen
Adressen.
Vorteil: Minimaler Schaltungsaufwand.
Nachteil: Adressraum wird vollständig verbraucht.
5.2 Betrachten Sie nochmals die Schaltung aus Aufgabe 4.1. Was passiert, wenn Sie die
Adressleitung A13 nicht berücksichtigen.
Lösung:
8
Es gibt 2 Möglichkeiten: entweder A13 =“0“ oder A13=“1“.
In beiden Fällen wird der ROM-Baustein selektiert. Hier wird eine Adressspiegelung (2fach)
erzeugt. Bei dieser Art von Adressdecodierungen kann eine Adressspiegelung auftreten. Bei dem
betrachteten Beispiel würde der Speicher nicht nur unter der geforderten Adresse h’0000 sondern
auch unter die Adressen h’2000 angesprochen werden können. Dies kann bei unsauberer
Programmierung zu Problemen führen. z.B.: Wenn man in der Adresse 0x0001 den Wert 0xAA
schreiben möchte, wird der Wert nicht nur in der Adresse 0x0001 sondern auch 0x2001 (doppelt)
geschrieben.
5.3 Ein 8-Bit breiter Speicherchip mit 11 Adressleitungen ist gegeben und soll mit der CPU
aus Aufgabe 4.1 verbunden werden.
5.3.1 Berechnen Sie die Anfangsadresse des Speichers, wenn seine verfügbare
Endadresse 0x7FFF ist.
Lösung:
Der Speicher hat 11 Adressleitungen. A0-A10  211 = 21*210 = 2KB = h’07FF
Wenn die Endadresse h’7FFF ist, dann die Startadresse ist h’7800
5.3.2 Geben Sie, ausgehend von der ermittelten Anfangsadresse, alle möglichen
Endadressen an, wenn die Adressleitungen A12 und A13 nicht berücksichtigt
werden.
Lösung:
A12 und A13 sind nicht berücksichtigt  4fache Spiegelung
Endadressen: h’4FFF, h’5FFF, h’6FFF, h’7FFF
Aufgabe 6
Für ein eingebettetes System mit einem 8-Bit-Mikroprozessor ist ein Speicher aus RAM, ROM
und einem Ein-/Ausgabeport aufzubauen.
Der Prozessor verfügt zum Anschluss des Speichers über 16 Adressleitungen (A15 bis A0),
8 Datenleitungen (D7 bis D0) sowie über eine Steuerleitung (R/W).
Das System besteht aus

einem RAM-Baustein (8 KiB x 8) - platziert „in der Mitte“ des Adressraums, (beginnt bei
Adresse 0x8000)

einem ROM-Baustein (4 KiB x 8) - platziert „ganz unten“ im Adressraum (beginnt bei
Adresse 0x0000)
einem Ein-/Ausgabeport zur Adressierung der 8 Register (8 x 8 Bit) der PIO (Parallele
Schnittstelle) - platziert „am Ende“ des Adressraums (endet bei Adresse 0xFFFF)

6.1 Schreiben Sie die Binärform der Adressen auf, mit denen auf die drei verschiedenen
Segmente (RAM, ROM und PIO) zugegriffen werden kann. Erstellen Sie die dazu
notwendige Adressmap, und tragen Sie alle Bereiche ein.
9
Lösung:
Die Schritte für eine Adressdekodierung:
- die Grenzen definieren:
8K-RAM: 8K=23*210 = 213  13 Adressleitung : A0-A12
4K-ROM: 4K=22*210 = 212  12 Adressleitung : A0-A11
8 Byte PIO: 8=23  3 Adressleitung : A0- A2
- die Zugriffsbreite definieren – 8 Bit
- die Anfangsadresse erstellen
RAM: Anfangsadresse (ab 32K) : h’8000
ROM: Anfangsadresse (ab 0) : h’0000
PIO: Anfangsadresse : h’ FFF8 (am Ende des Adressraums)  h‘FFFF-7 =h‘FFF8
- den Adressmap (Adressbereich) erstellen
Baustein
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Bereich
(in Hex)
RAM
ROM
I/O
Lösung:
6.2 Entwickeln Sie den für diese Aufgabenstellung erforderlichen Adressdecoder mit
herkömmlichen Logikbausteinen. Dabei soll die Adressdekodierung vollständig sein.
Zeichnen Sie das Schaltbild.
Lösung:
10
Bild 5.6 :Adressdekodierung für Speicherbausteine (8K RAM, 4K ROM) im Mikroprozessorsystem
Aufgabe 7
Entwerfen Sie ein eingebettetes System, bestehenden aus folgenden Komponenten:

1 x Mikroprozessor

1 x RAM (2 KiB x 8)

1 x ROM (1 KiB x 8)

1 x PIO (8 Register x 8)
Der Mikroprozessor verfügt über 16 Adressleitungen, 8 Datenleitungen und ein R/W-Signal.
Der RAM-Speicherbaustein soll ab der Adresse 0x9000 im Adressraum liegen. Der ROM11
Speicherbaustein soll am Anfang des Adressraums liegen. Die PIO verfügt über drei
Register-Select-Signale (RS0, RS1 u. RS2) und soll am Ende des Adressraumes liegen.
7.1 Erstellen Sie das entsprechende Adressmapping, und tragen Sie alle Adressbereiche
ein. Dabei soll es sich um eine vollständige Adressdecodierung handeln.
Baustein
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Bereich
(in Hex)
RAM
ROM
I/O
Lösung:
7.2 Entwickeln Sie den für diese Aufgabenstellung erforderlichen Adressdecoder mit
herkömmlichen Logikbausteinen. Die Chip-Select-Signale sollen Low-Active sein
(d.h. /CS=0). Entwerfen Sie das Schaltbild.
12
Lösung:
Bild 5.7 : Mit ODER Gattern
Bild5.8: Mit UND Gattern
13
7.3 Wie ändert sich das Adressmapping, wenn statt eines RAM-Speicherbausteins vier
RAM-Speicherbausteine (jeweils 512 Byte x 8) ab der Adresse 0x9000 anliegen sollen?
Hinweis: Die RAM-Bausteine sollen aufeinander folgend im Adressraum liegen!
Baustein
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Bereich
(in Hex)
RAM0
RAM1
RAM2
RAM3
ROM
I/O
Lösung:
14
Bild 5.9 : Addressmap
15