Grundlagen der Technischen Informatik

Ähnliche Dokumente
Versuch D3: Busse, Speicher und Ampelsteuerung mit Speicher

Bericht Übung 5.5 Ampelsteuerung und Steuerung einer 7-Segment-Anzeige Teilnehmer: Natalia Springer, Tong Cha Datum:

Aufgabe 1 Minimieren Sie mit den Gesetzen der Booleschen Algebra 1.1 f a ab ab 1 = + + Aufgabe 2. Aufgabe 3

Tipps und Tricks für die Capture DB. Sammlung wichtiger Tipps und Tricks

Grundlagen der Technischen Informatik

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

Fach: Elektrotechnik

Laborübung 4. Zustandsautomaten (Finite State Machines)

Electronic Design Automation (EDA) Spezifikation

Laborübung 2. Teil 1: Latches, Flipflops, Counter. Abbildung 1: Schaltkreis eines Gated D-Latch

Musterlösungen. zu den Übungsaufgaben vom

, 2014W Übungsgruppen: Mo., Mi.,

Schriftliche Prüfung

Protokoll zum Versuch Flip-Flop

9. Elektronische Logiksysteme ohne Rückführung, kombinatorische Schaltungen

Ein ROM soll aus mehreren ROMs (vgl. Abbildung rechts: Enable-Leitung EN, Adressleitungen ADDR, Datenleitungen DATA) aufgebaut werden.

Mikroprozessortechnik Grundlagen 1

Unified-E Modbus Adapter

Multiplexer und Schieberegister

Teil 1: Digitale Logik

Einbindung der RasPiLC in die CODESYS-Umgebung

Kombinatorische Schaltungen

RO-Tutorien 3 / 6 / 12

Kapitel 4. Versuch 415 T-Flipflop

Aufgabe 4 Nennen Sie wenigstens 3 Programmierverfahren für programmierbare Logik.

D i g i t a l l a b o r

Aufgaben zum Elektronik - Grundlagenpraktikum

Bericht. Digitallabor. Hochschule Karlsruhe N1. Aufgabe 5.6 Stoppuhr. Teilnehmer: Natalia Springer, Tong Cha. Datum:

HARDWARE-PRAKTIKUM. Versuch L-1. Schaltnetze. Fachbereich Informatik. Universität Kaiserslautern

DIGITALTECHNIK 08 FREQUENZ-ZÄHLER

Kapitel 6 Programmierbare Logik. Literatur: Kapitel 6 aus Oberschelp/Vossen, Rechneraufbau und Rechnerstrukturen, 9. Auflage

GAL 16V8. 4. Laboreinheit - Hardwarepraktikum SS 2002 VCC / +5V. Eingang / Clock. 8 konfigurierbare Ausgangszellen. 8 Eingänge GND / 0V.

Digitale Systeme und Schaltungen

Klausur zur Vorlesung. Grundlagen der Technischen Informatik (GTI) und. Grundlagen der Rechnerarchitektur (GRA)

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

Anwendungen der Mikrocontrollertechnik

Institut für Informatik. Deutsche Kurzanleitung Lattice ISPLever v1.0 zum Elektronik Grundlagenpraktikum. 5. Praktikumskomplex

zur Verfügung gestellt durch das OpenOffice.org Dokumentations-Projekt

Dateien Struktur und Größe

b.a.b-technologie gmbh ThemeEditor Dokumentation

Modell Bahn Verwaltung. Tutorial. Decoder Datei. Min. Programm Version 0.65, März w w w. r f n e t. c h 1 / 10

PSpice. Kathleen Jerchel. 9. April Inhaltsverzeichnis. Einbinden von Bibliotheken. 1 Einleitung 2

Hochschule Emden / Leer. Ausarbeitung. Speicherung digitaler Signale

Digitaltechnik Laborversuch 1. Bitmustererkennung. Wichtige Informationen

Arbeitsblatt Logische Verknüpfungen Schaltnetzsynthese

Digitallabor Aufgabe 5.4 Lauflicht

TU ILMENAU Fak. IA - FG Neuroinformatik & Kognitive Robotik. Vorkurs Informatik September Kurs: I 1. Dr. Klaus Debes.

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Tietze, Schenk: Halbleiterschaltungstechnik (Kap. 10) Keller / Paul: Hardwaredesign (Kap. 5) L. Borucki: Digitaltechnik (Kap.

Grundlagen der Digitaltechnik

Benutzerhandbuch WSCAD Datenpunktliste Konvertierung nach Datenpunktliste VDI 3814

Computational Engineering I

Grundlagen der Digitaltechnik GD. Aufgaben und Musterlösungen

Einführungsbeispiel in das Programmiersystem CoDeSys

Serienbrief erstellen

LTSpice Tutorial 2: Eigene Modelle und Symbole

, 2015W Übungstermin: Do.,

1. Keil starten. Sollten Sie keinen leeren Bildschirm haben, löschen Sie einfach die

Drücken Sie (später) bei Speichere Änderungen in der Bibliothek default? auf Nein.

Arbeitstitel: DV-Infrastruktur

Der Rumpf. Titel Seite 3

9 Multiplexer und Code-Umsetzer

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Semestralklausur Einführung in Computer Microsystems

Praktische Übung. Die Lernplattformen ILIAS ist mit Stud.IP verbunden, sodass Sie Lernmodule dieser Plattform

Praktikum: VLSI-Entwurf. VHDL Standardzell Entwurf Entwurf einer Weckuhr

3 Rechnen und Schaltnetze

2 Vervollständige die Wahrheitstabellen.

3 Kodierung von Informationen

Datenbank konfigurieren

Protokoll zu Grundelemente der Digitaltechnik

Hochschule Darmstadt Data Warehouse SS 2015 Fachbereich Informatik Praktikumsversuch 5

Sonstige Daten importieren.

Grundlagen der Digitaltechnik GD. Aufgaben

Hilfe zur Dokumentenverwaltung

1,8V Flash and SRAM 28F3208W30

Programmieren. Aufgabe 1 (Eine erste Datenstruktur)

Klausur zur Mikroprozessortechnik

9. Kombinatorische Schaltungen

Wie erreiche ich was?

Zahlensysteme und Kodes. Prof. Metzler

ANLEITUNG CLOUD ACCESS

4^ Springer Vi eweg. SPS-Programmierung. nach IEC in Anweisungsliste. und handlungsorientierte Einführung. Hans-Joachim Adam Mathias Adam

Elektrische Logiksysteme mit Rückführung

Digitalelektronik. Philipp Fischer. 9. Dezember 2002

DIGITALE SCHALTWERKE MIT EPROM

Versuch P1-63 Schaltlogik Vorbereitung

AVR Ein/Ausgabe. Inhaltsverzeichnis

DAYLITEMESSAGES FUER DAYLITE

Integrierte Schaltungen

Klausur Technische Informatik 1 WS 2015/2016 Prüfer: Sutter Hilfsmittel: keine


BOOTLOADER für AVR-Entwicklungsmodule

Schaltungsdesign Simulation Prof. Redlich 1

CalcVectorPC v Veröffentlicht 2016 Copyright S-cubic GmbH. Krebsbachstr. 12 D Bergisch Gladbach

Hierfür sind mit dem Content Management System (CMS) Joomla in Verbindung mit SIGE Pro Inhalte angelegt worden, die genau diesen Zweck erfüllen.

Grundlagen der Informatik I. Übung

Übungen zur Vorlesung Technische Informatik I, SS 2001 Strey / Guenkova-Luy / Prager Übungsblatt 2 Sequentielle Logik. Aufgabe 1:

Dateizugriff unter C

Anhang zum Lehrbuch Digitaltechnik, Gehrke, Winzker, Urbanski, Woitowitz, Springer-Verlag, 2016.

Transkript:

Universität Duisburg-Essen PRAKTIKUM Grundlagen der Technischen Informatik VERSUCH 4 Mikroprogrammierung Name: Vorname: Betreuer: Matrikelnummer: Gruppennummer: Datum: Vor Beginn des Versuchs sind die Fragen, die mit F1 bis Fn gekennzeichnet sind, zu beantworten. Die mit A1 bis An gekennzeichneten Aufgaben sind während des Praktikums zu bearbeiten. Prof. Dr.-Ing. Axel Hunger Dipl.-Ing. Joachim Zumbrägel Universität Duisburg-Essen Fakultät Ingenieurwissenschaften Fachgebiet Technische Informatik Copyright (C) Technische Informatik

Einführung In den bisherigen Versuchen haben wir uns mit einfachen Gatterbausteinen sowie Flip-Flops beschäftigt. Im vorliegenden Versuch wollen wir uns mit einem weiteren Typ von digitalen Bausteilen auseinandersetzen, dem ROM. Anhand einer Ampelsteuerung, soll das Prinzip sowie die Programmierung eines ROMs verdeutlicht werden. 1 Spezifikation der Ampelsteuerung Im Rahmen des vorliegenden Versuchs soll eine Steuerung für 4 Ampeln entwickelt und simuliert werden. Die Ampelanlage (gemeint sind alle 4 Ampeln) befindet sich an einer Kreuzung (siehe Abbildung 1.1 ) und durchläuft periodisch eine wohldefinierte Sequenz von insgesamt 16 Zuständen. Das bedeutet, dass - gemäß dem normalen Verhalten einer Ampelanlage - die Sequenz immer wieder durchlaufen wird, so dass folglich nach Zustand 16 wieder der 1. Zustand eingenommen wird. Jede Ampel verfügt über 3 Signallampen (Rot, Gelb, Grün), wobei jede der Ampeln die uns wohlbekannten 4 Phasen rt (rot), rtge (rot und gelb), gn (grün) und ge (gelb) durchläuft. Abbildung 1.1: Kreuzung mit 4 Ampeln Wenn, unter Beachtung der Verkehrsregeln, die verschiedenen Phasen der Ampeln notiert werden, erhält man das folgende in Tabelle 1-1 dargestellte Schema. So beschreibt z.b. der unter Nummer 1 angegebene Zustand den Fall, dass die beiden Ampeln A und B auf rot stehen und die Ampeln C und D grün zeigen. Entsprechend wurde der Zustand 3 für die Linksabbieger, die von der Straße mit der Ampel D kommen, vorgesehen. Um die Kreuzung zu räumen, wurde der Zustand Nr. 5 eingeführt. Wie der Tabelle 1-1 ebenfalls zu entnehmen ist, liegen die verschiedenen Zustände der Ampelanlage für eine bestimme Zeitdauer vor. Die Zeitdauer für jeden Zustand ist in der Spalte "Zeitdauer" eingetragen. Da in der Realität bei einer Ampelanlage die verschiedenen Ampelphasen unterschiedlich lang dauern, wurden die fünf verschiedenen Zeiten t 1, t 2, t 3, t 4, t 5. definiert, wobei ausgehend von der Zeitbasis t 1 folgendes gilt: t 2 = 2 t 1 t 4 = 5 t 1 t 3 = 4 t 1 t 5 = 20 t 1 Bei der Realisierung der Ampelsteuerung ist darauf zu achten, dass die verschiedenen Ampelphasen-Kombinationen jeweils für die angegebene Zeitdauer angezeigt werden. 2/14

Ampel A B C D Zeitdauer Nr. 1 rt rt gn gn t5 2 rt rt ge gn t2 3 rt rt rt gn t4 4 rt rt rt ge t2 5 rt rt rt rt t3 6 rt rtge rt rt t1 7 rt gn rt rt t4 8 rtge gn rt rt t1 9 gn gn rt rt t5 10 gn ge rt rt t2 11 gn rt rt rt t4 12 ge rt rt rt t2 13 rt rt rt rt t3 14 rt rt rtge rt t1 15 rt rt gn rt t4 16 rt rt gn rtge t1 Tabelle 1-1:Ampelphasen für den Normalbetrieb F 1: Wie viele unterschiedliche Kombinationen von Ampelphasen treten überhaupt auf? Wie viele Bits sind notwendig, um diese zu codieren? F 2: Wie viele verschiedene Leuchtkombinationen treten bei einer einzigen Ampel auf? Wie viele Bits sind notwendig, um diese Kombinationen zu codieren? 2 Entwicklung der Ampelsteuerung Die Steuerung der zuvor beschriebenen Ampelanlage soll nun u.a. unter Verwendung eines Festwertspeichers (ROM=Read Only Memory) entwickelt werden. Anhand der Spezifikation der einzelnen Ampelphasen ist das ROM so zu programmieren, dass es die Steuersignale für die einzelnen Ampeln enthält bzw. als Ausgangssignal zur Verfügung stellt. Die Adressierung des ROM soll durch einen Zähler realisiert werden. Die Ansteuerung der einzelnen Ampeln soll jeweils über einen Decoder erfolgen, der die Ausgangssignale des ROMS als Eingangssignal erhält und diese so decodiert, dass mit den daraus resultierenden Ausgangssignalen direkt die einzelnen Lampen einer Ampel (Rot, Gelb, Grün) angesprochen werden können. Für die zu entwickelnde Ampelsteuerung ergibt sich somit das in Abbildung 2.1 gezeichnete Blockschaltbild. 3/14

OE Abbildung 2.1: Blockschaltbild der Ampelsteuerung 2.1 Grundlagen zu den verwendeten Bauelementen Bevor wir mit der Entwicklung der Schaltung beginnen, sollen zuvor die in der Schaltung verwendeten Bauelemente kurz erläutert werden. 2.1.1 ROM Bei einem ROM (Read Only Memory) handelt es sich um einen Festwertspeicher, der gelesen, aber im normalen Betrieb nicht beschrieben werden kann. Festwertspeicher werden in der Regel einmalig programmiert und sind in der Lage eine bestimmte Anzahl (2 n ) von Daten-Worten der Länge m (z.b. m=8 => Speicherung eines Wortes mit 8-Bit Wortbreite) dauerhaft zu speichern. Diese Datenworte werden im ROM in adressierbaren Speicherzellen abgelegt. Um den Inhalt einer Speicherzelle an den Ausgängen des ROMs auslesen zu können, muss lediglich die entsprechende Adresse im Dualcode an den Adresseingängen des ROMs angelegt werden. Zur Kennzeichnung der Speicherkapazität verwendet man den Ausdruck 2 n x m, so kennzeichnet beispielsweise die Bezeichnung 1024 x 8 einen Baustein, der 2 10 = 1024 Worte mit einer Breite von 8-Bit speichern kann. Folglich muss ein solcher Baustein über 10 Adresseingänge (A0-A9) verfügen, um den gesamten Adressraum ansprechen zu können, sowie über 8 Datenausgänge O0-O7, um das gespeicherte Wort am Ausgang zur Verfügung stellen zu können. 2.1.2 4 Bit Zähler Zur Realisierung der ROM-Adressierung soll ein Zähler genutzt werden, der mit Hilfe des Bausteins 74177 aufgebaut werden soll. Bei diesem Baustein handelt es sich um einen programmierbaren Baustein, der bei entsprechender Beschaltung in verschiedene Modi versetzt werden kann. So kann dieser Baustein beispielsweise als 4 Bit-Zähler arbeiten, wobei an den Ausgängen Qa Qd (niederwertigstes Bit Qa, höchstwertigstes Bit Qd) alle Werte von 0-15 im Dualcode realisiert werden (siehe dazu auch die Funktionstabelle im Datenblatt). 2.1.3 Decoder Unter einem Decoder oder Dekodierer versteht man einen Umsetzer (Konverter), wobei dessen Realisierung je nach Anwendungsgebiet in Hard- oder Software erfolgen kann. In der 4/14

digitalen Schaltungstechnik beispielsweise, kann ein Dekodierer ein Schaltnetz sein, das dem Aufspalten von Datenpfaden dient. So kann ein Dekodierer, der über n Eingänge verfügt, die 2 n möglichen Bitkombinationen (die am Eingang anliegen können) separieren und auf 2 n Ausgangsleitungen verteilen. X1 X2 Y1 Y2 Y3 Y4 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 X1 X2 2x4 Decoder Y1 Y2 Y3 Y4 Tabelle 2-1: Wertetabelle eines 2x4 Decoders Abbildung 2.2: 2x4 Decoder 2.2 Codierung der Ampelzustände und -phasen für das ROM Die Aufgabe besteht nun darin, die verschiedenen Zustände der Ampelanlage bzw. die Ampelphasen-Kombinationen aus Tabelle 1-1 so zu codieren, dass wir sie in einem ROM abspeichern können, wobei die jeweilige Zeitdauer der einzelnen Ampelphasen-Kombination entsprechend berücksichtigt werden muss. Bevor wir mit der Codierung der verschiedenen Zustände der Ampelanlage beginnen, müssen wir uns zunächst der Codierung der Ampelphasen einer einzelnen Ampel widmen. Dazu wird die in Tabelle 2-2 angegebene Vereinbarung getroffen. Folglich benötigen wir 2 Bit zur Codierung der 4 Phasen einer Ampel. D 1 D 0 rot 0 0 gelb 1 1 grün 0 1 rotgelb 1 0 Tabelle 2-2: Codierung der Phasen einer Ampel F 3: Wie viele Bits werden benötigt, um die Phasen von 4 Ampeln zu codieren? Welche Wortbreite muss folglich unser ROM umfassen? Die unterschiedliche Dauer der verschieden Ampelphasenkombinationen (siehe Tabelle 1-1) lässt sich einfach realisieren, indem wir ausgehend von der kleinsten Zeiteinheit t 1, die länger andauernden Ampelphasen entsprechend mehrfach speichern und zwar gemäß ihrem Faktor bezogen auf t 1. Das heißt die 1. Phase (Nr.1) aus Tabelle 1-1:Ampelphasen für den Normalbetrieb wird dementsprechend zwanzigmal in das ROM gespeichert, die 2. Phase (Nr.2) nur zweimal. Die nachfolgende Tabelle erläutert dieses Prinzip: Adresse Inhalt 0 Nr. 1 1 Nr. 1 : : 19 Nr.1 20 Nr. 2 21 Nr. 2 22 Nr. 3 23 Nr. 3 : : 5/14

F 4: Wie viele Speicherplätze sind notwendig, um die gesamten in Tabelle 1-1 angegebenen Kombinationen in einem ROM speichern zu können? F 5: Codieren Sie die in Tabelle 1-1 angegebenen Kombinationen unter Verwendung von Tabelle 2-2 und vervollständigen Sie die nachfolgende Tabelle! Ampel D C B A ROM-Value ROM-Adressen Ausgang O 7 O 6 O 5 O 4 O 3 O 2 O 1 O 0 (Dezimal/ (Bereich: DEZIMAL/ ROM Hexadezimal) Anzahl: HEXADEZIMAL) Eingang Decoder D 1 D 0 D 1 D 0 D 1 D 0 D 1 D 0 1 0 1 0 1 0 0 0 0 80 / 50 0-19 / 14 2 0 1 1 1 0 0 0 0 112 / 70 20-21 / 2 3 0 1 0 0 0 0 0 0 64 / 40 22-26 / 5 4 1 1 0 0 0 0 0 0 192 / C0 27-28 / 2 5 0 0 0 0 0 0 0 0 0 / 00 29-32 / 4 6 0 0 0 0 1 0 0 0 8 / 08 33 / 1 7 0 0 0 0 0 1 0 0 4 / 04 34-38 / 5 8 0 0 0 0 0 1 1 0 6 / 06 39 / 1 9 10 11 12 13 14 15 16 Tabelle 2-3: Codierung der verschiedenen Ampelphasen Für die einwandfreie Steuerung der Ampel sind jedoch noch weitere Schaltungsteile notwendig. Dazu gehört ein Zähler, der die Adressen des ROM nacheinander anlegt, sowie eine Schaltung, die den Endzustand erkennt und den gesamten Vorgang von Neuem startet und die Decoderschaltung. 2.3 Programmierung eines ROMs in OrCAD Nachfolgend wird erläutert, wie unter OrCAD ein ROM zu programmieren ist. Um die Daten in das ROM zu laden, benötigen wir eine Datei, in der die Daten in einem bestimmten Format vorliegen, dem Intel-HEX-Format. Dieses Format dient zur Speicherung und zur Übertragung von binären Daten und wird in erster Linie verwendet, um Programmierdaten für Mikrocontroller, EPROMS, etc. zu speichern. Bei dem HEX-Format handelt es sich um ein ASCII-Format, das bis auf das Zeichen für den Start Code : ausschließlich aus hexadezimalen Zeichen besteht. Jede neue Zeile beschreibt einen neuen Datensatz, wobei jede Zeile aus sechs Teilen besteht: Start code; Data length; Address; Record type; 6/14

Data block; Checksum; Abbildung 2.3 zeigt die Struktur einer Zeile (Datensatz) im HEX-Format. Jedes Feld hat eine Größe von 1 Byte respektive 8 Bits, wobei jedes Feld, bis auf das erste, ausschließlich hexadezimale Zeichen enthält. : n n n n n n n Start code Data length Address Record type Data block Checksum Abbildung 2.3: Struktur einer Zeile im Intel-Hex-File Jede Zeile beginnt mit einem Start code, einem :. Das Feld Data length beschreibt die Anzahl der Bytes, die in dem Bereich Data block abgelegt werden sollen. Die nächsten beiden Bytes (Address) definieren die Adresse, wo die Daten abgelegt werden sollen. Das Feld Record type beschreibt den Datensatztyp. Wir benötigen im Rahmen unseres Praktikums die Datensatztypen 00 (Binärdaten) und 01 (letzte Zeile der Datei). Der Bereich Data block beinhaltet die zu speichernden Daten. Das Feld Checksum beinhaltet die Prüfsumme, die aus allen Bytes des Datensatzes gebildet wird, ausschließlich dem Start code und der Checksum selbst. Die Prüfsumme wird wie folgt gebildet: - Bilde die Summe aller Bytes (Start code ausgenommen) - Bilde das 2 er Komplement mit dem niederwertigsten Byte der Summe. Mit Hilfe der so gebildeten Prüfsumme lässt sich nun die Korrektheit des Datensatzes überprüfen. Addiert man die Prüfsumme mit dem niederwertigsten Byte der Summe aller Bytes, so muss das Ergebnisbyte 0 sein, andernfalls ist der Datensatz inkorrekt. Wurden aller Datensätze angegeben, so muss das Ende der Datensätze mit einer letzten Zeile abgeschlossen werden. Diese muss wie folgt lauten: :00000001FF Das Feld Data length ist 00, da wir keine Daten mehr speichern wollen, die beiden Adressfelder (Address) beinhalten 0000 und das Feld Recordtype wird mit dem Wert 01 gefüllt und definiert somit das Dateiende. Beispiel: Wir wollen das Datum 1100001 unter der Adresse 0101 speichern! 1. Konvertierung des Binärformats ins Hexadezimale Format. 1100001 2 =61 16 and 0101 2 =5 16 2. Bestimme das Feld Data length. Da unsere zu speichernden Daten nur 7 Bits haben (1100001), benötigen wir insgesamt nur 1 Byte, um die Daten zu speichern. Folglich muss das Feld Data length mit 01 (1 10 =1 16 ) beschrieben werden. 3. Bestimme das Feld Record type. Der Wert für dieses Feld ist 00, da wir Daten speichern und nicht das Ende der Datensätze definieren wollen. 4. Bestimme das Feld Checksum. 7/14

Bilde die Summe aller Bytes einer Zeile: Data Length Byte + Address Bytes + Record Type Byte + Data Bytes: 01 + 00 + 05 + 00 + 61 Das Ergebnis der Addition beträgt 67H (Hexadezimal!!!) und stellt somit automatisch das niederwertigste Byte dar, dass wir im nächsten Schritt benötigen. Bilden des 2er Komplements Wir wandeln zunächst den Wert 67H in die entsprechende Dualzahl um. Das Resultat ist 01100111. Bilden wir aus dieser Zahl das 2er Komplement, so erhalten wir 10011001. Wandeln wir den Wert aus dem vorherigen Schritt wieder ins Hexadezimale Format um, so erhalten wir unsere Prüfsumme: 99 Die gesamte Zeile lautet folglich: 010005006199 Data length Address Record type Data checksum F 6: Vervollständigen Sie die nachfolgende Tabelle mit den noch fehlenden Zeilen im HEX- Format, die notwendig sind, um das ROM so zu programmieren, dass es die aus Tabelle 2-3 codierten Ampelphasenkombinationen speichert. Adressbereich Zeile im Hex-Format Adresse 0-19 :140000005050505050505050505050505050505050505050AC Adresse 20-21 :0200140070700A Adresse 22-26 :050016004040404040A5 Adresse 27-28 Adresse 29-32 :02001B00C0C063 :04001D0000000000DF Adresse 33 :0100210008D6 Adresse 34-38 :050022000404040404C5 Adresse 39 :0100270006D2 8/14

2.4 Zähler zur Adressierung des ROMs Da die Anzahl der notwendigen Speicherplätze sicherlich größer als 16 ist, wird ein Zähler mit mehr als vier Bit benötigt. Mit Hilfe des Bausteins 74177 wird ein 8-Bit-Zähler aufgebaut. (Die weitere Spezifikation des Bausteins 74177 können Sie dem Datenblatt entnehmen.) F 7: Wie wird der Baustein 74177 beschaltet, damit er als binärer Zähler funktioniert? F 8: Wozu dient der Pin Nr. 1? F 9: Wozu dienen die Pins 3, 4, 10, 11? F 10: Welcher Pin dient am Baustein 74177 zum Zurücksetzen des Zählers? F 11: Welche Pins dienen als Ausgänge? Welches ist das niederwertigste und welches das höchstwertigste Bit? F 12: Bis zu welcher Dezimalzahl kann ein 8-Bit-Binärzähler zählen? F 13: Der Baustein 74177 ist ein 4-Bit-Zähler. Wie kann aus zwei Bausteinen dieses Typs ein 8-Bit-Zähler entworfen werden? Tipp: Führen Sie sich vor Augen, wann der zweite Zähler zum ersten Mal zählen soll. 9/14

F 14: Vervollständigen Sie die folgende Schaltung zu einem 8-Bit-Zähler! Abbildung 2.4: Ein 8-Bit Zähler aus zwei 4-Bit-Zählern 2.5 Schaltung zur Erkennung des Schleifenendes Da ein 8-Bit-Binärzähler in der Lage ist, weit über den Bedarf an Adressen zu zählen, soll eine Schaltung entworfen werden, die den Zähler zum richtigen Zeitpunkt zurücksetzt. F 15: Bei welcher Adresse soll der 8-Bit-Zähler den Rücksetzimpuls erhalten? Geben Sie diese Zahl dezimal und binär an! (Beachten Sie, dass die letzte definierte Adresse noch eine volle Taktlänge anliegen muss!) F 16: Entwerfen Sie nun die Schaltung, die einen Rücksetzimpuls -Impuls für den 8-Bit- Zähler erzeugt, wenn die von Ihnen unter F 15: angegebene Adresse erreicht wurde. F 17: An welche PINs soll der Ausgang dieser Schaltung angeschlossen werden? 10/14

2.6 Decoderschaltung zur Steuerung der Ampellampen Da die Daten, die am Ausgang des ROM zur Verfügung stehen, nach Tabelle 2-2 codiert wurden, eignen sie sich nicht zur direkten Steuerung der Ampellampen (rot, gelb, grün). Zu diesem Zweck wird ein Decoder entworfen, der in der Lage ist die einzelnen Ampeln durch 2 Bits anzusteuern. Für jede der 4 Ampeln ist ein Decoder notwendig. Abbildung 2.5: Decoder F 18: Entwerfen Sie diese Decoder-Schaltung und geben Sie sie an! 3 Design, Programmierung und Simulation Die Schaltung soll nun mit Hilfe von OrCAD erstellt und simuliert werden. A 1: Erstellen Sie ein Analog or mixed A/D Projekt und nennen Sie es Lab3. Benennen Sie den Schematic Folder von SCHEMATIC1 nach TrafficLightSystem um. Die Schematic Page Datei im Schematic Folder benennen sie bitte von PAGE1 nach TrafficLightCircuit um. Wir werden nun die Schaltung des Counters erzeugen. A 2: Erstellen Sie einen neuen Schematic Folder namens Counter. In dem Ordner Counter erstellen Sie eine neue Datei (new page) namens CounterCircuit. Erstellen Sie in dem Schematic-Fenster der Schaltung CounterCircuit die Schaltung, die Sie in Aufgabe F 14: sowie F 16: gezeichnet haben. Denken Sie daran, die beiden Schaltungen korrekt miteinander zu verbinden. Platzieren und benennen sie die Ports an den Ein- und Ausgängen der Schaltung. Hinweis: Für die input ports verwenden Sie bitte PORTRIGHT-R und für die output ports PORTLEFT-L. Nun widmen wir uns der Decoderschaltung. 11/14

A 3: Erstellen Sie einen neuen Schematic Folder namens Decoder. In dem Ordner Decoder erstellen Sie eine neue Datei (new page) namens DecoderCircuit. Erstellen Sie in dem Schematic-Fenster der Schaltung DecoderCircuit die Schaltung, die Sie in Aufgabe F 18: gezeichnet haben. Platzieren und benennen sie die Ports an den Ein- und Ausgängen der Schaltung. Nun haben wir die benötigten Teilschaltungen erzeugt und können mit der Gesamtschaltung beginnen. A 4: Öffnen Sie die Schaltung TrafficLightCircuit und erzeugen sie innerhalb dieser Schaltung die benötigten hierarchischen Blöcke für den Counter sowie für die Decoder. Hinweis: Um mehrere hierarchische Blöcke für die gleiche Schaltung zu erzeugen, müssen Sie lediglich unterschiedliche Namen im Feld Reference vergeben. A 5: Platzieren Sie nun den ROM-Baustein ROM32KX8break. Den Baustein finden Sie in der Bibliothek BREAKOUT.OLB. Die nachfolgende Abbildung stellt die Gesamtschaltung dar, die aus den vorangegangenen Arbeitsschritten resultiert. Abbildung 3.1: Gesamtschaltung Die Ausgänge O0 bis O7 des Bausteins ROM32KX8break werden verwendet, um direkt die Decoder anzusteuern, die ihrerseits die einzelnen Ampellampen schalten. Die Ausgänge des CounterCircuit dienen der Adressierung des ROMs. Die Eingänge A8 bis A14 des ROMS müssen auf 0 gesetzt werden, da der damit angesprochene Adressraum nicht verwendet wird. 12/14

Hinweis: Verwenden Sie Place Power $D_LO (Bibliothek source.olb) um ein dauerhaftes LOW-Signal zu generieren. A 6: Erzeugen Sie nun eine Datei ROM.txt, mit Hilfe des Notepad Texteditors und speichern Sie dort die Lösung von Aufgabe F 6:. A 7: Um das ROM nun mit dem Inhalt der Datei zu programmieren, gehen Sie wie folgt vor: Selektieren sie das ROM. Wählen Sie nun über das Menü den Eintrag Edit PSpice Model. Es öffnet sich nun der OrCAD PSpice Model Editor mit der Beschreibung des ROMs. Sie müssen dieses Modell nun so modifizieren, dass ihre Datei ROM.txt referenziert wird. Verändern Sie dazu die Zeile: *+ FILE= Löschen Sie das Zeichen * am Anfang der Zeile und ergänzen Sie die Zeile mit dem Namen Ihrer HEX-Datei (sollte ROM.txt sein), wobei der Name der Datei in Anführungszeichen zu setzen ist. Die resultierende Zeile lautet dann. + FILE= ROM.txt Sie müssen nun noch Ihre HEX-Datei in das korrekte Verzeichnis kopieren, damit die Datei auch während der Simulation gefunden wird. A 8: Erzeugen Sie ein neues Simulationsprofil über das Menü PSpice NewSimulation und speichern Sie anschließend das gesamt Projekt. Damit ist sicher gestellt, dass alle notwendigen Verzeichnisse vorhanden sind. Kopieren Sie nun die HEX-Datei (ROM.txt) in das Verzeichnis Lab3-PSpiceFiles, welches sich unterhalb ihres Projektverzeichnisses (z.b.: C:\ORCAD_DATA) befindet. A 9: Simulieren Sie die Schaltung mit entsprechenden Eingangssignalen und prüfen Sie, ob ihre Schaltung die gewünschte Funktionalität aufweist. F 19: Wie muss der Eingang OE (DSBL) des ROMs belegt werden? 13/14

Digitale Komponenten Symbol-Name Type-Number Library NOT 7404 7400 AND 2-Input AND 3-Input NAND 2-Input NAND 3-Input NAND 4-Input OR 2-Input NOR 2-Input NOR 3-Input 7408 7400 7411 7400 7400 7400 7410 7400 7420 7400 7432 7400 7402 7400 7427 7400 XOR 7486 7400 JK-FF with CLR 7473 7400 JK-FF with PRE/CLR 7476 7400 JK-FF with CLR 74107 7400 JK-FF with PRE/CLR 74109 7400 D-FF with PRE/CLR 7474 7400 D-FF 7474 7400 D-TYPE REGISTER 74LS173A 74ls REGISTER FILE O.C. 74170 7400 PRESETTABLE BINARY COUNTER 74LS197 74ls BINARY COUNTER ROM 32 8 5 Input, 8 Output 32 bytes memory 7493A 74293 74177 ROM 32 8 7400 BREAKOUT 14/14