Zustandsmaschinen

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.

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

- 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.

Dieses können wir allgemeiner fassen:

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:

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.

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

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.

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.

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.

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.

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.

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
- ein Johnson-Zähler zählt nicht im Binärcode
- 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

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.

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.

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.

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

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.