attachment_id=36 - tonil

tonil.org

attachment_id=36 - tonil

1. Vorbereitung:

1.1 Zählerbaustein 74163

Bei den in der Schaltung verwendeten Zählerbausteinen handelt es sich um synchron

programmierbare 4-bit-Binärzähler mit synchronem Clear. Die Zähler sind programmierbar,

d.h. die Ausgänge können auf ein bestimmtes 4-bit-Wort voreingestellt werden (Preset-

Funktion). Das Voreinstellen der Ausgänge geschieht mit einem L-Signal am Load-Eingang.

Dieses Signal setzt die eigentliche Zählerfunktion außer Betrieb. Mit dem nun folgenden

Taktimpuls werden die Informationen an den Eingängen A, B, C und D von den Ausgängen

QA, QB, QC und QD übernommen. Der Zustand der Enable-Eingänge ist bei diesem

Vorgang nicht von Bedeutung. Ein Low-Pegel am Clear-Eingang setzt alle Ausgänge auf

logisch 0, unabhängig vom Zustand der Clock-, Load- und Enable-Eingänge.

Durch die synchrone Clear-Funktion ist es möglich, die Zähldauer zu begrenzen.

Wenn der Zählerstand erreicht ist, kann über eine externe NAND-Verknüpfung der

Zählervorgang gestoppt werden. Der Ausgang dieser Verknüpfung ist mit dem Clear-

Eingang verbunden und setzt den Zähler beim Erreichen des dekodierten Zählerstandes auf

0000 zurück. Die Carry-Funktion (Übertrag) gestattet es, eine Zählkette für n-Bits

aufzubauen. Dazu notwendig sind die Anschlüsse „Enable“ und „ripple carry output“ .Beide

Enable-Eingänge (P und T) müssen beim Zählvorgang High sein. Der Übertragsausgang ist

dann logisch 1, wenn die Kapazität des Zählers überschritten wird. Das Ausgangssignal hat

etwa die gleiche Impulslänge wie der Ausgangsimpuls von QA. Der Übergangsimpuls triggert

in Zählketten den folgenden höherwertigen Zähler.

1.2 Frequenzteiler

Das vorgegebene Design stellt einen synchronen Frequenzteiler dar, der die

Eingangsfrequenz von 1 MHz auf 500 Hz mit 50% Duty Cycle, sowie auf 1 kHz Pulse mit

einer Pulsbreite von einer μs, teilt. Die Zählfunktion übernehmen dabei die Zählerbausteine

74163. Diese sind mit dem Wert C19hex an den Zählereingängen vorgespannt, um ein

Teilungsverhältnis von 1000dec zu erhalten.

Dies errechnet sich nach folgendem Schema:

FFFhex – C19hex + 2hex = 3E8hex = 1000dec.

Der Wert FFFhex rührt dabei von den verwendeten drei Zählern her, würde man vier Counter

hintereinander schalten, müßte man entsprechend mit FFFFhex rechnen. Die in obiger

Gleichung hinzu addierten 2hex sind notwendig, weil die verwendete Zählerarchitektur einen

Takt für das Synchronisationsflipflop und einen Takt für den synchronen Load benötigt. Mit

der Einstellung C19hex wird also die Eingangsfrequenz von 1 MHz um 1000dec geteilt, was

die 1 kHz Pulse an Pin 37 erklärt.

Die Pulsbreite errechnet sich zu:

t =

f

1

Eingang

1

= = 1μs

1MHz

.

Diese 1 kHz Pulse liegen außerdem an beiden Eingängen eines JK-Flipflops an. Das JK-

Flipflop hat dabei die Eigenschaft, dass sich der Ausgangszustand bei jedem anliegenden

Puls ändert, sprich das Flipflop kippt mit jedem (gleichzeitig) ankommenden Takt an den

Eingängen J und K. Dies führt dazu, dass sich die Frequenz nochmals um den Faktor zwei

erniedrigt, da ja zwei Impulse an den Eingängen nötig sind, um eine vollständige Periode am

Ausgang zu erhalten. Außerdem erklärt sich so der Duty Cycle von 50%, weil die


aufeinander folgenden 1kHz-Pulse in gleichen Zeitabständen an die Eingänge des JK-FF

gelangen.

In der gegebenen Schaltung sind die Enable-Eingänge des oberen Counters ständig auf

Versorgungsspannungspotential (logisch 1), d.h. dieser Zähler ist zuerst aktiv und beginnt

bei angelegtem Takt mit dem Zählvorgang. Hat er seine Kapazität erreicht, startet sein

„ripple carry output“ den nächsten Zählerbaustein, durch Setzen der Enable-Eingänge von

Low auf High, usw.

Das verwendete D-FF1 dient zur Synchronisation der Schaltung, da es das Eingangssignal

so lange verzögert, bis das Taktsignal kommt, erst dann wird das Eingangssignal an den

Ausgang weitergegeben. Das D-FF verfügt weiterhin über eine Taktflankensteuerung,

wodurch das synchrone Schalten weiter begünstigt wird. Ein zurückgeführter Taktimpuls auf

die Load-Eingänge lässt die Bausteine erneut hochzählen.

Die Einstellung von C19hex erfolgt in der Schaltung durch die Eingänge A, B, C und D.

Dabei entspricht A der Wertigkeit eins, B hat zwei, C hat vier und D hat acht. Gesetzt werden

die Eingänge durch entsprechendes anschließen an Masse ( logisch 0) bzw. an Vcc (

logisch 1). Ein Beispiel: Der unterste Counter ist gemäß dem vorzuspannenden Wert von

C19hex auf „C“ also 12dec = 1100dual einzustellen, daher liegen A und B auf

Massepotential und C und D sind mit Vcc verbunden.

1.3 Vorspannwert (200/50Hz)

Das Teilerverhältnis ergibt sich nach der Formel:

Da das Impuls/Pausenverhältnis 50% betragen soll, muss die Ausgangsfrequenz im Nenner

mit dem Faktor 2 multipliziert werden. Das am Ausgang generierte 100Hz Impulssignal wird

anschließend noch durch ein J/K Flip-Flop geleitet (Funktion als Teiler durch 2).

Das Teilerverhältnis beträgt also:

Anschließend muss der so erhaltene Teiler in Hexadezimale Form umgewandelt werden.

2500dec= 9C4hex

Der nun einzustellende Wert ergibt sich aus:

Eingangsfrequenz

T =

Ausgangsfrequenz

1000.

000Hz

T

=

=

2*

200Hz

2.

500

Ausgabe 200Hz: Xhex= FFFF hex – 9C4hex + 2hex = F63Dhex

Ausgabe 50Hz: Xhex= FFFF hex – 2710hex + 2hex = D8F1hex


1.4 Automaten Zustandsdiagramm


2. Versuch

2.1 Simulieren der vorgegebenen Frequenzteilerschaltung am PC

Die Frequenzteilerschaltung, welche 500Hz ausgibt, wird im Programm Maxplus kompiliert,

und dann Simuliert. Das Simulationsfenster zeigte uns die folgenden Ein - und

Ausgangssignale an

Man kann das 1Mhz Eingangssignal erkennen. Es lässt sich auch herauslesen, dass die

Länge des 1kHzPulse 1 μ s beträgt. Dieser Betrag kommt von dem 1MHz Taktsignal welches

eine Periodendauer von 1 μ s hat. Außerdem sehen wir, dass das 500 Hz Taktsignal um

4,0956 ms vom Startpunkt des Taktes verschoben ist, dies lässt sich durch die Gatterlaufzeit

der drei Zähler erklären.

Hier kann man den 500 Hz Takt herauslesen.

2.2 Testen der vorgegebenen Frequenzteilerschaltung auf dem EPM 7064

Mit der Software Maxplus wurde der Baustein EPM 7064 programmiert. Mit dem Oszilloskop

wurde der 1MHz Takt von Pin43 abgegriffen. Dieser Stimmte mit dem Wert der Simulation

überein. Als nächstes stellten wir den 1kHzPulse am Ausgang PIN 37 dar. Wegen der

geringen Pulsbreite, konnte man auf dem Oszilloskop nur die Spitze des Impulses als

schwachen Punkt erkennen. Nun wurden die 500Hz am Ausgang am PIN 39 gemessen. Und

auch hier stimmten das Messergebnis am Oszilloskop mit dem Ergebnis der Simulation

überein.

2.3 Abändern der Frequenzteilerschaltung

Die Schaltung soll nun auf ein Ausgangssignal von 100Hz abgeändert werden. Dazu

errechnen wir den neuen Teiler:

Teiler = 1Mhz / 200 Hz = 5000

Da der neue Teiler größer als 4095 ist, was im Hexadezimalsystem FFF entspricht, müssen

wir nun vier Zähler statt der bisherigen drei verwenden.

5000dez = 1388hex

Zählvorspannweite = FFFFhex - 1388hex + 2hex = EC79hex


Zu der vorhandenen Schaltung wird jetzt ein zusätzlicher Zähler eingefügt und dann werden

die 4 Zähler von unten nach oben mit EC79 beschaltet.

Wir simulierten die Schaltung und stellten fest, dass am Ausgang keine 100Hz zu sehen

sind. Als wir die Schaltung aber in den EPM 7064 programmierten, konnten wir die 100Hz

auf dem Oszilloskop erkennen. Wir konnten die 100Hz in der Simulation nicht erkennen, weil

die Zähler länger als 20ms brauchen, nämlich 65ms, um bis FFFF zu zählen, unsere

Simulationsweite beträgt aber nur 20ms.


Um etwas in der Simulation zu erkennen, wollen wir nun, dass der 100Hz Takt mit dem

1MHz Takt beginnt. Dazu müssen wir vor der Zählerschaltung sofort zu Beginn einen

einmaligen LOW Impuls mit 1 μ s auf alle LOAD Eingänge der vier Zähler geben. Das wird

mit einem Monoflop realisiert.

Bei der erneuten Simulation beginnt nun der 100Hz Takt mit dem ersten 200Hz Impuls.

Die Simulationsergebnisse wurden mit dem Oszilloskop am Versuchaufbau überprüft, und

alle Ergebnisse bestätigt.


2.4 Entfernen der Spannungsquelle

Jetzt entfernen wir die Spannungsquelle vom EPM 7064 und stellen am Oszilloskop fest,

dass die Ein- und Ausgangssignale verschwinden. Wir schließen den EPM 7064 wieder an

die Spannungsquelle an und stellen fest, dass die Signale wieder da sind. Die

Programmierung wurde also gespeichert. Hätten wir diesen Versuch beim EP1K50 gemacht,

würde die Programmierung verloren gehen. Das liegt daran, dass der EPM 7064 auf

EEPROM Speicher setzt, die bei Spannungsverlust trotzdem die Information speichern,

während der EP1K50 SRAM Speicher besitzt, der die Informationen bei Spannungsverlust

verliert.

2.5 Generieren des 200Hz Pulses, der um eine halbe Taktperiode verschoben ist

In der Schaltung sollen wir nun einen neuen Ausgang am freien PIN 36 definieren, bei dem

der 200Hz Nadelpuls um eine halbe Taktperiode verschoben ist. Dazu greifen wir bei

unserem vorhandenen Zähler, den Zustand ab, an dem er bei der Hälfte der Zählweite ist.

Dieser Wert lässt sich berechnen durch:

FFFFhex − EC79hex

EC79 hex +

= F63Chex

2

Dieser Wert wird nun mithilfe eines kombinatorischen Netzwerks an den Zähler Ausgängen

QA bis QC abgegriffen und mit einem D-Flip Flop als 200Hz Nadelpuls dargestellt.


In der Simulation erhält man nun folgende Ausgabe:

3. Versuch Automat

3.1 Zustandsdiagramm der neuen Bitfolge

Für den Automatenentwurf bekamen wir eine Bitfolge zugewiesen, die lautet:

Bitfolge: 01100011101


3.2 Eingeben der Bitfolge in den Texteditor von Maxplus

Das Zustandsdiagramm wird nun im Maxplus Texteditor als AHDL (= Altera High Description

Language = Programmiersprache von Altera) eingegeben. Dazu ändern wir ein bereits

fertiges Textfile eines anderen Automaten nach folgendem Muster ab:


3.3 Simulieren des Bitfolgeautomaten

Nun kompilieren und simulieren wir den Automaten. Im Simulationsfenster können wir selbst

die Eingangssignale bestimmen. Im Bereich 0us – 2us funktioniert Automat ohne Probleme

und gibt im Zustand s10 (= „ – „Im Bild) am Ausgang eine 1 aus, dafür dass die Bitfolge

richtig eingegeben wurde. Im Bereich ab 2us sehen wir eine Bitfolge mit einem Fehler in

Zustand s7. Der Automat reagiert richtig auf diesen Fehler und springt zurück in den Zustand

s2.

Fehler

4. Nachbereitung

4.1 Wie viel Flip-Flops benötigt Ihr Automat für die Bitfolgeerkennung?

Der Automat benötigt 4 Flip Flops, da er 11 Zustände besitzt.

4.2 Ermitteln Sie die Eingangsgleichungen für die D-Flip-Flops der Bitfolgeerkennung.

Siehe Beiblatt.

4.3 Welchem Automatentyp gehört die Schaltung in Abbildung 4 an? Begründen Sie

Ihre Antwort!

Bei der Schaltung aus Bild 4 handelt es sich um einen Mealy Automaten, da der Ausgang

von dem derzeitigen Zustand UND dem Eingang abhängig ist.

Weitere Magazine dieses Users
Ähnliche Magazine