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
© Copyright 2025 ExpyDoc