../../../icons/Logo.pngPraktische Elektronik


Wir beschreiben den Ablauf einer dynamischen Digitalschaltung


list.png

Zustandsmaschinen


Zustandsmaschinen

Attention >

Dieses Praktikum ist für die praktische Arbeit in der Elektronik nicht erforderlich.

Für den Aufbau einfacher Steuerungen ist es jedoch hilfreich, das Konzept der Zustandsmaschinen zu kennen.

Die Regeln geben einen Überblick.

Ein hochtrabender Begriff, mit dem wir glänzen können: Zustandsmaschinen.

Dabei ist es ein einfaches Konzept, um dynamische Digitalschaltungen zu beschreiben.

Einfach, aber nicht simpel!

Als Praktiker beginnen wir mit einer Schaltung, die wir schon kennen: einem Johnson-Zähler mit vier Zuständen.

Johnson-Zaehler-2.png
Bild 1: Johnson-Zähler mit vier Zuständen

Wir wollen das Prinzip verstehen und entfernen alles Überflüssig aus der Schaltung.

Johnson-Zustandsmaschine.png
Bild 2: Prinzip des Johnson-Zählers
  • Wir haben ein D-Register mit vier Ausgängen.
  • Der Zustand des Zählers ist die Kombination der Ausgänge des D-Registers.
  • Mehrere Kombinationen sind möglich.
  • Jede Kombination stellt einen Zustand dar.
  • Einige der Ausgänge (Q1, Q2) sind auf Eingänge (D1, D2) zurückgeführt.
  • Außerdem haben wir einen Takt.
  • Bei jedem Takt ändert sich der Zustand der Ausgänge.
  • Mit R1 und C1 wird das D-Register über den Reset-Eingang (Mr) auf Null gesetzt.

Im Praktikum Johnson-Zähler haben wir weitere Zähler realisiert, indem wir die Schaltung nur durch die Art der Rückführung der Ausgänge auf die Eingänge verändert haben.

Johnson-Zaehler.png
Bild 3: Johnson-Zähler mit acht Zuständen

Dieses können wir allgemeiner fassen:

Zustandsmaschine-Prinzip.png
Bild 4: Zähler mit X Zuständen

Das Verhalten des Zählers hängt offensichtlich von der Logik zwischen den Aus- und Eingängen des D-Registers ab.

Tatsächlich kann das Verhalten solcher Schaltungen durch diese Logik bestimmt werden.

Eine einfache Zustandsmaschine

Schaltungen wie in den Bildern 1 bis 4 werden als Zustandsmaschinen bezeichnet.

Die Schaltung nimmt eine Reihe von Zuständen an, die sich durch einen Takt gesteuert ändern.

Im Folgenden sehen wir uns eine einfache Beschreibung von Zustandsmaschinen an und lernen, wie die zugehörige Logik bestimmt werden kann.

Wir beginnen mit unserem Johnson-Zähler, der von Null bis Drei zählt. Er zählt 0-1-2-3-0 immer im Kreis, zyklisch. Unser Zähler hat die Zustände 0, 1, 2, und 3. Beim Zählen geht er von einem Zustand in den nächsten über: 0-1-2-3-0.

Damit wir zwei wichtige Begriffe einer Zustandsmaschine:

  • Zustände und
  • Übergänge.

Die Zustandsmaschine unseres Zählers kann grafisch dargestellt werden:

Zustand-Zaehler_0-3.png
Bild 5: Das Zustandsdiagramm eines Zählers

Das Diagramm des Zählers in Bild 5 ist nichts Besonders:

  • Die Zustände sind als Ellipsen mit dem Namen des Zustands und
  • die Übergänge als Pfeile dargestellt.

Realisierung einer Zustandsmaschine

Ausgehend vom Zustandsdiagramm müssen wir zunächst die Zustände des D-Registers den Zuständen des Zustandsdiagramms zuordnen. Im Prinzip müssen wir die Zustände des Diagramms digital kodieren.

Für den Johnson-Zähler ist dies der Zustand Z.

Z Q4 Q3 Q2 Q1
0 0 0 0 0
1 0 0 0 1
2 0 0 1 1
3 0 0 1 0

Tabelle 1: Zustände des Johnson-Zählers

Die nächste Aufgabe ist, die Übergangstabelle aufzustellen.

Wir gehen von kodierten Zuständen aus und beschreiben die kodierten Zustände des folgenden Zustands im Zustandsdiagramm. Außerdem kürzen wir ab: Z ist der Zustand Z und U ist der Übergang.

Z Q4 Q3 Q2 Q1 U D4 D3 D2 D1
0 0 0 0 0 1 0 0 0 1
1 0 0 0 1 2 0 0 1 1
2 0 0 1 1 3 0 0 1 0
3 0 0 1 0 0 0 0 0 0

Tabelle 2: Übergangstabelle des Johnson-Zählers

Wir haben nun eine Logik, die wir mit den Methoden der Praktika Logik berechnen berechnen können.

Die Logik in Tabelle 2 ist einfach:

D1 = NOT Q2
D2 = Q1
D3 = 0
D4 = 0
  • Die Berechnung war natürlich einfach, da wir die Schaltung kannten.

Dabei fällt uns auf, dass D3/Q3 und D4/Q4 überflüssig sind.

Zähler bis drei

Um das Prinzip besser zu verstehen, betrachten wir einen Zähler, der bis drei zählt und dann stehen bleibt.

Zustand-Zaehler_0-3-3.png
Bild 6: Zustandsdiagramm eines Zählers bis 3

Wir stellen wieder die Übergangstabelle auf, aber ohne die überflüssigen D3/Q3 und D4/Q4. Außerdem kürzen wir ab: Z ist der Zustand und U ist der Übergang.

Z Q2 Q1 U D2 D1
0 0 0 1 0 1
1 0 1 2 1 1
2 1 1 3 1 0
3 1 0 3 1 0

Tabelle 3: Übergangstabelle für den Zähler bis 3

Die Tabelle beschreibt zwei logische Funktionen: die für D1 und die für D2.

Die NAND-Schaltung für die logischen Funktionen können mit dem Verfahren in Logische Schaltung und Wahrheitstabelle bestimmt werden. Oder mit dem Tool LogicBuddy.

  • Durch scharfes Hingucken sehen wir:
  • D1 ist immer 1, wenn Q2 0 ist und
  • D2 ist 1, wenn Q1 oder Q2 1 sind.

Also

D1 = NOT Q2
D2 = Q1 or Q2
D2 = NAND ( (NOT Q1), (NOT Q2) )

Synchrone Binärzähler

Attention >

Bei mehrstufigen asynchronen Zählern verzögert sich der Takt einer Stufe um die Summer der Laufzeit der vorhergehenden. Eine Logik, die sich auf mehrere Ausgänge bezieht, kann daher unangenehme Glitches erzeugen. Siehe dazu Impulse erzeugen: Sehr kurze Impulse.

Die Binärzähler im Praktikum Binärzähler sind asynchron, da nicht jeder Zähler den gleichen Takt verwendet, sondern den Ausgang der vorhergehenden Stufe.

Bei einem synchronen Zähler haben alle Stufen den gleichen Takt. Sie sind Zustandsmaschinen. Sie haben den Vorteil, dass sich alle Ausgänge gleichzeitig mit dem gleichen Takt ändern.

Betrachten wir einen synchronen Zähler, der von 0 bis 2 zählt.

Die Übergangstabelle ist mit dem Zustand Z und dem Übergang U

Z Q1 Q0 U D1 D0
0 0 0 1 0 1
1 0 1 2 1 0
2 1 0 0 0 0

Tabelle 4: Übergangstabelle für einen synchronen Zähler bis 2

Die Zeilen mit dem Ergebnis 1 sind:

D0 ist 1, wenn Q0 = 0 und Q1 = 0 ist.

D1 ist 1, wenn Q0 = 1 und Q1 = 0 ist.

D0 = (NOT Q0) AND (NOT Q1)
D1 =      Q0  AND (NOT Q1)

Die Logik synchroner Zähler mit mehr als drei Zuständen ist wesentlich komplexer.

Weitere Ausgänge

Zustandsmaschinen können Ausgänge haben, die nicht den kodierten Zuständen entsprechen.

Zustandsmaschine-Ausgangslogik.png
Bild 6: Zustandsmaschine mit Ausgangslogik

Die Zustandsmaschine hat drei Ausgänge, die durch eine Logik aus den Zuständen gebildet werden.

Die Ergebnisse der Ausgänge werden einfach in die Wahrheitstabelle der Zustandsmaschine eingetragen.

Wenn wir z.B. für unseren Binärzähler den Überlauf, d.h. den Übergang wieder zu 0, anzeigen wollen, können wir einen Ausgang C vorsehen und ihn in die Tabelle eintragen. Z ist der Zustand Z und U ist der Übergang.

Z Q1 Q0 U D1 D0 C
0 0 0 1 0 1 0
1 0 1 2 1 0 0
2 1 0 0 0 0 1

Tabelle 5: Übergangstabelle für einen synchronen Zähler bis 2 mit Überlauf

Weitere Eingänge

Zustandsmaschinen werden meistens über Eingänge gesteuert. Die Übergänge hängen dann von den Werten an den Eingängen ab.

Zustandsmaschine-Eingaenge.png
Bild 7: Zustandsmaschine mit Eingängen
E Z Q1 Q0 U D1 D0
0 0 0 0 0 0 0
0 1 0 1 1 0 1
0 2 1 0 2 1 0
1 0 0 0 1 0 1
1 1 0 1 2 1 0
1 2 1 0 0 0 0

Tabelle 6: Übergangstabelle für einen synchronen Zähler bis 2 mit Freigabe

Die Übergangstabelle in Tabelle 6 beschreibt einen Zähler, der nur dann weiterzählt, wenn er über den Eingang E mit 1 freigegeben wird.

Ein- und Ausgänge

Wir gehen noch einen Schritt weiter und betrachten eine Zustandsmaschine mit Ein- und Ausgängen.

Zustandsmaschine-Aus-Eingaenge.png
Bild 7: Zustandsmaschine mit Ein- und Ausgängen
E Z Q1 Q0 U D1 D0 C
0 0 0 0 0 0 0 0
0 1 0 1 1 0 1 0
0 2 1 0 2 1 0 0
0 3 1 1 3 1 1 0
1 0 0 0 1 0 1 0
1 1 0 1 2 1 0 0
1 2 1 0 3 1 1 0
1 3 1 1 0 0 0 1

Tabelle 7: Übergangstabelle für einen synchronen Zähler bis 2 mit Überlauf und Freigabe

Die Übergangstabelle in Tabelle 7 beschreibt einen Zähler, der nur dann weiterzählt, wenn er über den Eingang E mit 1 freigegeben wird. Der Überlauf C wird nur angezeigt, wenn der Zähler freigegeben ist.

Synchrone Zähler 74HC161 und 74HC162

Solche Zähler gibt es sowohl als Binär- als auch als Dezimalzähler.

Wir betrachten hier den Vier-Bit-Binärzähler 74HC161. Der 74HC161 kann über die vier Eingänge D0 bis D3 voreingestellt werden. Dieses geschieht synchron zum Takt über den Steuereingang PE.

Synchrone-Zaehler.png
Bild 8: Zwei synchrone Binärzähler, die synchron von 0 bis 255 zählen

Die Schaltung in Bild 8 zeigt, wie zwei Vier-Bit-Binärzähler 74HC161 in Reihe geschaltet werden.

Ein 74HC161 hat vier Eingänge, die Dateneingänge sind D0 bis D3, die Zählerausgänge sind Q0 bis Q3.

Zusätzlich verfügt der 74HC161 über drei synchrone Steuereingänge PE, CEP, CET und den asynchronen Eingang Reset MR sowie den Steuerausgang TC.

CP Takt Die Flanke ↑ von 0 nach 1 ist wirksam
PE Parallel-Enable Die an den Eingängen D0 bis D3 liegenden Daten mit dem Takt ↑ übernehmen
CEP Takt-Freigabe-Parallel Weiterzählen
CET Takt-Freigabe-Toggle Weiterzählen und eventuellen Überlauf an TC ausgeben.
TC Toggle-Carry Überlauf beim Zählen
MR Master-Reset Zähler unabhängig vom Takt auf Null setzen

In der Schaltung in Bild 8 werden alle Steuereingänge parallel geschaltet, außer CET.

Der Ausgang TC eines vorhergehenden Zählers wird mit dem Eingang CET des nachfolgenden Zählers verbunden. Durch die Folge der TC-CET werden die nachfolgenden Zählstufen gesteuert. Das bedeutet, dass eine Zählstufe nur dann weiterzählt, wenn alle vorhergehenden Zählstufen einen Überlauf hatten.

Der 74HC162 ist ein Dezimal-Zähler. Er verhält sich genauso wie der 74HC161, zählt aber nur bis 9. Die Vier-Bit-Dezimalzähler 74HC162 werden wie die Vier-Bit-Binärzähler 74HC161 in Reihe geschaltet. Zwei in Reihe geschaltete Vier-Bit-Dezimalzähler 74HC162 zählen synchron von 0 bis 99.

Attention pin

Synchron - Asynchron

Bei asynchronen Zählern:

  • haben alle Register (Stufen) einen anderen Takt
  • den der vorhergehenden Stufe
  • der CMOS 4040 ist ein asynchroner Binärzähler.

Bei synchronen Zählern

  • haben alle Register (Stufen) den gleichen Takt
  • ein Johnson-Zähler ist ein synchroner Zähler
  • der 74HC161 ist ein 4-Bit-Binärzähler
  • der 74HC161 zählt im Binärcode
  • der 74HC162 ist ein 4-Bit-Dezimalzähler
  • der 74HC162 zählt im BCD-Code
Asynchron-Synchronzaehler.png

Zustandsdiagramm für Ein- und Ausgänge

Am Anfang haben wir Zustandsdiagramme für Zustandsmaschinen ohne Logik für Ein- und Ausgänge betrachtet.

Eingänge von Zustandsmaschinen sind Bedingungen, unter denen die Zustandsmaschine ihren Zustand ändert.

Als Beispiel betrachten wir einen synchronen Zähler, der von 0 bis 3 zählt. Er kann durch den Eingang ENT aktiviert werden. Im Zustand 3 gibt er einen Überlauf TC aus, wenn ENT 1 ist.

Zustand-Zaehler_ENT-TCO.png
Bild 9: Zustandsdiagramm eines Zählers bis 3 mit Freigabe und Überlauf

Das Zustandsdiagramm in Bild 9 zeigt, dass jedem Übergang eine Bedingung und eine Ausgabe zugeordnet sind. Neben einem Übergangspfeil steht die Bedingung oberhalb einer Linie und die Ausgabe unterhalb. Wenn keine Bedingung zutrifft, ändert sich der Zustand nicht.

ENT Z Q1 Q0 U D1 D0 TC
0 0 0 0 0 0 0 0
0 1 0 1 1 0 1 0
0 2 1 0 2 1 0 0
0 3 1 1 3 1 1 0
1 0 0 0 1 0 1 0
1 1 0 1 2 1 0 0
1 2 1 0 3 1 1 0
1 3 1 1 0 0 0 1

Tabelle 8: Übergangstabelle für einen synchronen Zähler bis 3 mit Überlauf und Freigabe

Die Berechnung der Logik dieser Übergangstabelle ist nicht einfach, aber es gibt ja Tools wie LogicBuddy.

Zustandsdiagramme mit alternativen Bedingungen

Abschließend betrachten wir ein Zustandsdiagramm mit alternativen Bedingungen. Es beschreibt einen Zähler bis 3 mit dem Eingang ENT und dem Ausgang TC. Das Diagramm besitzt den weiteren Eingang Reset (R) mit dem der Zähler synchron auf Null gesetzt werden kann. Der Ausgang G zeigt an, dass eine gerade Zahl anliegt.

Würden wir die Bedingung Reset (R) einfach alternativ zum Eingang ENT setzen, wäre nicht definiert, in welchen Zustand der Zähler gehen soll: weiter oder auf Null. Auf Null soll Vorrang haben. Dann darf nur weitergezählt werden, wenn Reset (R) nicht 1 ist.

Zustand-Zaehler_ENT-TCO-R.png
Bild 10: Zustandsdiagramm eines Zählers bis 3 mit Freigabe, Überlauf und Reset

Zur Erinnerung: ENT ∧ ¬R heißt ENT AND (NOT R).

Der Ausgang TC hängt von den Eingängen ab. Er wird aktiviert, also TC = 1, wenn

  • der Eingang ENT = 1 ist und
  • der Eingang R = 0 ist und
  • der Zustand 3 ist.

Der Ausgang G wird unabhängig von den Eingängen ausgegeben.

Regeln

  • Zustandsmaschinen haben
  • Zustände
  • Eingänge
  • Ausgänge
  • Sie werden durch einen gemeinsamen Takt synchron gesteuert
  • Sie ändern ihren Zustand mit dem Takt
  • Der Übergang in einem Zustand ist abhängig von
  • dem aktuellen Zustand und
  • den Eingängen.
  • Die Ausgänge sind abhängig von
  • dem aktuellen Zustand und
  • den Eingängen.

Zustandsmaschinen können mithilfe von Zustandsdiagrammen beschrieben werden.

Zustandsdiagramm.png
Elemente eines Zustandsdiagramms

Elektronische Zustandsmaschinen bestehen aus:

  • Einem D-Register,
  • das den aktuellen Zustand speichert.
  • Einer Logik, die
  • den nächsten Zustand und
  • den aktuellen Wert des Ausgangs bestimmt.
  • Einem Taktgenerator
Zustandsmaschine-Aus-Eingaenge.png
Zustandsmaschine

Zustandsdiagramme im Internet

Im Internet gibt es viele Seiten, auf denen Zustandsdiagramme beschrieben werden. Leider beziehen sich fast alle auf Zustandsdiagramme für Softwareentwickler, z.B. UML. In diesen Zustandsdiagrammen werden die Ausgaben oft vernachlässigt.

Sie sind für uns Hardwerker unzureichend.