Methodischer Entwurf einfacher Schaltwerke

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Dieser Artikel beschreibt die Vorgehensweise, einfache sequentielle Schaltungen in der Praxis umzusetzen.

Zielstellung

Um eine LED blinken zu lassen, muß nicht unbedingt ein Mikrokontroller bemüht werden, wenn sich dieselbe Funktion auch mit ein paar Gattern und Flipflops realisieren lässt. Dabei soll unter einem "einfachen" Schaltwerk eine digitale Schaltung verstanden werden, deren "Verarbeitungsmöglichkeit" begrenzt ist, die zB "nur" zehn Eingangsvariablen aufnehmen kann oder zB "nur" 32 interne Zustände besitzt. Es soll sich daher um ein Gebilde handeln, das im einfachsten Fall aus digitalen Grundbausteinen besteht.

Anhand eines konkreten Beispiels werden verschiedene Möglichkeiten der Realisierung eines Schaltwerks vorgestellt. Hierbei steht die praktische und systematische Umsetzung des gewählten Schaltwerkaufbaus im Vordergrund.

Einleitung

Die Ausgangssignale eines Schaltwerks bzw. dessen Zustand zum Betrachtungszeitpunkt werden nicht nur durch die aktuell anliegenden Eingangssignale sondern auch durch die Historie aller Eingangssignale bis zu diesem Zeitpunkt bestimmt. Diese Vorgeschichte wird in Speicherelementen, zB FlipFlops, festgehalten. Ihr Inhalt wird an den Eingang des Schaltwerks zurückgeführt und dort mit den externen Signalen verknüpft, wodurch sich ggf. der Zustand des Schaltwerks ändert. Die zeitliche Reihenfolge der Zustände ist vorgeben, sie stellt die Funktionalität des Schaltwerks dar. Diese Zustandsänderungen können sofort nach Wertänderung der Eingangsvariablen erfolgen, dann liegt ein Asynchronschaltwerk vor. Oder nur zu klar definierten Zeitpunkten, dann handelt sich dann um ein Synchronschaltwerk. Dieser Artikel beschäftigt sich mit Synchronschaltwerken, welche die Struktur eines Moore-Automaten haben.

Schaltwerk

Es liegt in der Natur des gewählten Themas, dass die hier beschriebenen Schaltwerke vorzugsweise aus handelsüblichen Komponenten (Gattern, FlipFlops usw.) aufgebaut werden. Das Übertragungsverhalten der FlipFlops ist durch ihren Aufbau vorgegeben und kann nicht beeinflußt werden.
Daher widmet sich dieser Artikel in erster Linie den Gestaltungsmöglichkeiten des Eingangsschaltnetzes unter Berücksichtigung des FlipFlop-Typs, auf die Dimensionierung des Ausgangsschaltnetzes wird bei Bedarf eingegangen.

Schritte zum Entwurf

Der Entwurf erfolgt schrittweise. Die unten angeführte Reihenfolge ist bewährt, wobei die angeführten Positionen unterschiedlich umfangreich und abhängig von den Anforderungen ausgestaltet werden können.

  1. Funktionsbeschreibung. Diese kann verbal (schriftlich, Handskizze) erfolgen oder durch z.B. ein Impulsdiagramm vorgegeben sein.
  2. Formale Beschreibung. Die in der Funktionsbeschreibung vorgegebenen Rahmenbedingungen werden in ein Zustandsdiagramm überführt. Hier erfolgt die vollständige Beschreibung des Schaltwerks, indem die Aufeinanderfolge der (festzulegenden) Zustände als Reaktion auf Eingangs- und Zustandsvektor bestimmt wird. Ebenfalls kann an dieser Stelle der Ausgangsvektor formuliert werden.
  3. Schaltwerkstabelle. Die Schaltwerkstabelle stellt das Zustandsdiagramm in tabellarischer Form dar. Mit ihrer Hilfe kann eine Zustandsminimierung (Zusammenfassen identischer Zustände) des Schaltwerks durchgeführt werden, die in der Regel zu verringertem Bauteilebedarf führt. Änderungen in der Schaltwerkstabelle wirken auf das Zustandsdiagramm zurück.
  4. Zustandscodierung. Die Art der Zustandscodierung, insbesondere bei einfachen Synchronschaltwerken, unterliegt keinen Beschränkungen (im Gegensatz zu Asynchronschaltwerken). Die Codierung muß eindeutig sein und hat evtl Einfluß auf den Bauteileaufwand.
  5. Zustandsfolgetabelle. Ausgangspunkt der Zustandsfolgetabelle ist das Zustandsdiagramm. In dieser Tabelle findet das sequentielle Verhalten der Schaltung seinen Ausdruck, denn sie ist deutlich zweigeteilt. Eingangsvariablen und aktuelle Zustände werden üblicherweise auf der linken Seite („vor dem Takt“), Folgezustände und ggf. Ausgangsvariablen rechts („nach dem Takt“) notiert. Aus der Zustandsfolgetabelle können, wenn sie als Wahrheitstabelle interpretiert wird, die Übergangsfunktionen der Zustandsspeicher entnommen werden.

Beispiel

Mechanische Bedienelemente elektrischer Geräte wie Kippschalter, Tastenaggregate, Drehschalter usw. sind dankbare Objekte für die Emulation durch ein elektronisches Schaltwerk. Das hier gezeigte Beispiel bildet einen Drehschalter nach, der auf 4 Schaltstellungen begrenzt ist. In der nebenstehenden Abbildung ist dargestellt, wie der mechanische Drehschalter in seine elektronische Entsprechung überführt werden soll. Der linke Teil der Abbildung zeigt die Kontakte K1..K4

rahmen

die anwählbaren Stellungen des Schleifers, sowie den zentralen Anschluss K0. Neben den Kontakten ist ein weiteres Attribut eingetragen, hierbei handelt es sich um die Verknüpfung von Schalterstellung und jeweiligem Zustand des Schaltwerks.

Im rechten Teil sind das Schaltwerk und seine äußeren Anschlüsse skizziert. Das Schaltwerk reagiert auf zwei Taster. Sie stehen für die linke und/oder rechte Drehung des Schalter und generieren die Eingangssignale U und W. Die 4 Stellungen des Drehschalters werden durch die Ausgangssignale Stellung1..Stellung4 repräsentiert.
Das Schaltwerk emuliert ausschließlich die mechanische Bewegung des Drehschalters, die elektrischen Eigenschaften des Schalters müssen von separaten Schaltungsteilen umgesetzt werden.

Zustandsdiagramm

rahmen

Das Zustandsdiagramm setzt Eingangssignale und Zustände des Schaltwerks miteinander in Beziehung. Das Schaltwerk befindet sich nach dem Einschalten in Z0, der den rechten Anschlag des emulierten Schalters bildet, denn das Aktivieren der „Taste rechts“ oder der „Tasten links+rechts“ bewirkt an dieser Stelle keine Zustandsänderung. Durch wiederholtes Betätigen der „Taste links“ gelangt man zu den nächsten Zuständen, bis der linke Anschlag erreicht ist. Die „Taste links“ bewirkt in Z3 keine Zustandsänderung. Mit der „Taste rechts“ kann dieser Zustand verlassen werden. Zwischen den Zuständen kann man sich mit den Tasten beliebig hin und her bewegen. Das gleichzeitige Betätigen beider Tasten „Tasten links+rechts“ versetzt das Schaltwerk aus jedem Zustand heraus in den Anfangszustand Z0, ein Verhalten, das mit einem mechanischen Drehschalter nicht möglich ist. Ist keine Taste aktiv verbleibt das Schaltwerk in seinem aktuellen Zustand.

Übergangstabelle

Die Übergangstabelle enthält die Information des Zustandsdiagramms in tabellarischer Form. Die Signale U und W sind als '1'-aktiv eingetragen. Bei umfangreichen Schaltwerken kann an dieser Stelle versucht werden, Zustände zusammenzufassen.

 
Übergangstabelle
Folgezustand Eingangssignale U W
aktueller Zustand 00 01 10 11
0 0 0 1 0
1 1 0 2 0
2 2 1 3 0
3 3 2 3 0

Zustandsfolgetabelle

Unter Berücksichtigung der Übergangstabelle wird die Zustandsfolgetabelle aufgebaut. Sie enthält die Eingangssignale, den aktuellen Zustand und den Folgezustand des Schaltwerks.
Die Zustände liegen in der Wahrheitstabelle in codierter Form vor, in diesem Beispiel sind sie binär codiert und es genügen zwei Zustandsvariablen, An(LSD) und Bn(MSD), da das Schaltwerk 4 Zustände einnehmen kann.

 
Zustandsfolgetabelle
Eingangssignale aktueller Zustand Folgezustand Beschreibung
U W Bn A n Bn+1 An+1
0 0 0 0 0 0 Z0; Start
1 0 0 0 0 1 Z0 → Z1; nach "links"
0 1 0 0 0 0 Z0 → Z0; nach "rechts" → keine Änderung
1 1 0 0 0 0 Z0 → Z0; keine Änderung
0 0 0 1 0 1 Z1 → Z1; keine Änderung
1 0 0 1 1 0 Z1 → Z2; nach "links"
0 1 0 1 0 0 Z1 → Z0; nach "rechts"
1 1 0 1 0 0 Z1 → Z0; Rücksprung
0 0 1 0 1 0 Z2 → Z2; keine Änderung
1 0 1 0 1 1 Z2 → Z3; nach "links"
0 1 1 0 0 1 Z2 → Z1; nach "rechts"
1 1 1 0 0 0 Z2 → Z0; Rücksprung
0 0 1 1 1 1 Z3 → Z3; keine Änderung
1 0 1 1 1 1 Z3 → Z3; nach "links" → keine Änderung
0 1 1 1 1 0 Z3 → Z2; nach "rechts"
1 1 1 1 0 0 Z3 → Z0; Rücksprung

Aus der Zustandsfolgetabelle werden die Übergangsfunktionen der Zustandsvariablen An+1 und Bn+1 entnommen. Sie sind Ausgangspunkt für die rechnerische Bestimmung der Eingangsschaltnetze der Zustandsvariablenspeicher.

Alle nachfolgend beschriebenen Schaltwerkversionen besitzen die gleichen Ausgangssignale, die aus den Zustandsvariablen des Momentanzustandes ermittelt werden. Die Ausgangssignale sind ´1´-aktiv und werden durch die "Methode des scharfen Ansehens" aus obiger Tabelle erhalten:

 
Stellung1 = A B
Stellung2 = A B
Stellung3 = A B
Stellung4 = A B

Gatterversion

Die klassische Methode, das Eingangsschaltnetz aufzubauen, besteht darin, logische Schaltkreise entsprechend den Übergangsfunktionen miteinander zu kombinieren. Die Liste enthält verschiedene Aspekte dieser Ausführung:

Multiplexer-Version

Mit einem Multiplexer, der über n Steuer(Select)eingänge verfügt, können an seinem Ausgang alle Kombinationen von (n+1)-Bool'schen Variablen dargestellt werden.
Die Abbildung demonstriert ein Beispiel: Es liegt ein (4 zu 1)-Multiplexer vor. Dieser ist für 3 Variablen ausreichend, denn 4=22, daher ist n=2 und n+1=3.

 
f0 = A B C + A B C + A B C + A B C +
    A B C + A B C + A B C + A B C
  Multiplexer.png

Die nachfolgende Liste stellt diese Version des Schaltwerks vor:

ROM-Version

Neben den bisher beschriebenen Verfahren, Schaltfunktionen in Hardware umzusetzen, gibt es die Möglichkeit, diese in einem (nichtflüchtigen) Speicherelement zu realisieren. Ein Festwertspeicher ordnet jeder Eingangskombination(Adresse) der Variablen ein Ausgangsmuster(Daten), das vorgegeben wird, zu. Die Eingangsmatrix des Festwertspeichers kann als UND-Verknüpfung der Eingangsvariablen, die Ausgangsmatrix als ODER-Verknüpfung des Zellinhalts aufgefasst werden - der Speicher bildet die disjunktive Normalform der Eingangsvariablen, wie die Abbildung zeigt:

 
f1 = A B + A B
f2 = A B + A B
f3 = 1
  rahmen

Bei der Übertragung der Schaltfunktion in einen Festwertspeicher ist im allgemeinen keine Optimierung erforderlich. Ist sie allerdings umgeformt, sollten zwei Dinge berücksichtigt werden:

  1. die Funktion muß vollständig sein, ggf. muß sie auf ihre Normalform gebracht werden
  2. falls Redundanzen vorliegen, dann
    sollten diese aufgelöst werden (weiter mit Punkt 1) oder
    im Falle eines Schaltwerks einen sicheren Zustand adressieren

Um den Inhalt des Speichers, der im Schaltwerk eingesetzt werden soll, zu bestimmen, wird von der schon vorhandenen Zustandsfolgetabelle ausgegangen.Die Tabelle wird um zwei Spalten ergänzt, Adressen und Daten. Eine Adresse wird gebildet, indem man das zeilenweise Bitmuster der Eingangsvariablen als Binärzahl interpretiert und in der Adressspalte notiert. Das gleiche Verfahren wird auf das Bitmuster des Folgezustands angewendet und das Ergebnis in die Datenspalte eingetragen.

Modifizierte Zustandsfolgetabelle
Adresse Eingangssignale aktueller Zustand Folgezustand Daten Beschreibung
U W Bn A n Bn+1 An+1
0x00 0 0 0 0 0 0 0x00 Z0; Start
0x08 1 0 0 0 0 1 0x01 Z0 → Z1; nach "links"
0x04 0 1 0 0 0 0 0x00; Z0 → Z0; nach "rechts" → keine Änderung
0x0c 1 1 0 0 0 0 0x00 Z0 → Z0; keine Änderung
0x01 0 0 0 1 0 1 0x01 Z1 → Z1; keine Änderung
0x09 1 0 0 1 1 0 0x02 Z1 → Z2; nach "links"
0x05 0 1 0 1 0 0 0x00 Z1 → Z0; nach "rechts"
0x0d 1 1 0 1 0 0 0x00 Z1 → Z0; Rücksprung
0x02 0 0 1 0 1 0 0x02 Z2 → Z2; keine Änderung
0x0a 1 0 1 0 1 1 0x03 Z2 → Z3; nach "links"
0x06 0 1 1 0 0 1 0x01 Z2 → Z1; nach "rechts"
0x0e 1 1 1 0 0 0 0x00 Z2 → Z0; Rücksprung
0x03 0 0 1 1 1 1 0x03 Z3 → Z3; keine Änderung
0x0b 1 0 1 1 1 1 0x03 Z3 → Z3; nach "links" → keine Änderung
0x07 0 1 1 1 1 0 0x02 Z3 → Z2; nach "rechts"
0x0f 1 1 1 1 0 0 0x00 Z3 → Z0; Rücksprung

Aus der Tabelle ergibt sich folgende nach Adresse sortierte Speicherbelegung:

Adresse 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
Daten 0x00 0x01 0x02 0x03 0x00 0x00 0x01 0x02 0x01 0x02 0x03 0x03 0x00 0x00 0x00 0x00

Der Eingangsvektor ist vollständig, die Datenwortbreite beträgt zwei Bit.

Die Schaltbilder zeigen diese Form des Schaltwerks.

Schaltplan der ROM-Version: EPROM als Festwertspeicher
Eine Variante des Festwertspeichers ist die Diodenmatrix. Sie kann ohne aufwändige Hilfsmittel
realisiert werden.
Schaltplan der ROM-Version: Diodenmatrix als Festwertspeicher

Zwischenbilanz

Anhand des diskutierten Beispiels wurden verschiedene Möglichkeiten der Realisierung eines einfachen Schaltwerks demonstriert.

  • Übergangsfunktion durch allgemeine Logigbausteine dargestellt
  • Übergangsfunktion durch Multiplexer dargestellt
  • Übergangsfunktion durch ROM (in Tabellenform) dargestellt

Die Anwendung algebraischer und graphischer(tabellarischer) Methoden zur Bestimmung der Schaltungskomponenten ermöglichte die praktische Umsetzung des geplanten Schaltwerks. Allerdings, mit zunehmender Breite des Eingangsvektors steigt der Aufwand zur Ermittlung der Schaltwerkskomponenten stark an, so dass diese Methoden an ihre Grenzen stossen und andere Vorgehensweisen erforderlich sind.

Dennoch lohnt es sich, den Einsatz eines einfachen Schaltwerks in Erwägung zu ziehen, wie die nachfolgenden Beispiele zeigen.

Weitere Beispiele

Der Aufwand beim Entwurf von Schaltwerken kann sehr überschaubar sein. Mit etwas Algebra kommt man schnell zum Ziel und der Text zeigt wie's geht: Vermischtes
Mittels der folgenden Schaltung soll der hohe Gebrauchswert eines einfachen Schaltwerks gezeigt werden:

Automatische Messbereichswahl für den DVM-Baustein 7107
Das DVM-IC 7107 gehört zu einer Reihe ähnlicher ICs, die in sogenannten Panelmetern (Schalttafelintrumenten) eine außerordentlich weite Verbreitung gefunden haben. Sie arbeiten nach dem Prinzip des Dual Slope AD-Wandlers. Dieses Wandlungsprinzip ist zwar nicht besonders schnell, jedoch genau und bei geeigneter Komponentenwahl der äußeren Beschaltung sehr störunempfindlich. Der 7107 ist für den Betrieb mit Siebensegmentanzeigen (LED) vorgesehen, die ein 3½-stelliges Display bilden. Abhängig von der Referenzspannung beträgt die sicher darstellbare Messspannung maximal 0,1999V oder 1,999V, höhere Eingangsspannungen müssen abgeschwächt werden.
Eine automatische Messbereichumschaltung trägt zur Gerätesicherheit bei und steigert den Bedienungskomfort.

In der vorliegenden Schaltung sind drei Messbereiche vorgesehen:

 
Messbereich Nr Untere Grenze Obere Grenze
1 0,000V 1,999V
2 2,000V 19,99V
3 20,00V 199,9V

Zustandsdiagramm

Jedem Messbereich ist ein Zustand zugeordnet.

Zustandsdiagramm

Bei Erhöhung der angelegten Spannung wählt die Bereichautomatik kontinuierlich das nächsthöhere Messintervall an. Beim Unterschreiten der jeweiligen Grenze kehrt das Schaltwerk immer in den Grundzustand zurück. Falls dann ein Überlaufsignal vorliegt, wird in den übergeordneten Bereich umgeschaltet. Dieses Verhalten bewirkt, dass der Anzeigebereich bei einer sprunghaften Änderung der Spannung von hohen zu niederen Werten, dh bei großem Änderungsverhältnis, bestmöglich ausgenutzt wird.

Blockschaltbild

Blockschaltbild

Das Blockschaltbild zeigt die wesentlichen Funktionsblöcke und die sie verbindenden Signale.

Die Länge eines Messzyklus variiert mit der Höhe der Eingangsspan-nung. Um Schaltwerk und DVM zu synchronisieren wird das Taktsignal deshalb aus der Wandlerbeschaltung des ICs abgeleitet. Der Oszillator des 7107, von aussen zugänglich, ist für diesen Zweck ungeeignet. Das Über- und Unterlaufsignal werden aus den Ansteuersignalen der Anzeige generiert, denn das IC selbst stellt diese Signale nicht bereit. Der Eingangsabschwächer ist als zweistufiger umschaltbarer (elektronischer) Spannungsteiler ausgebildet, dessen Stellung durch die eingezeichneten Select-Signale festgelegt wird, ihre Benennung soll den zugeordneten Teilerfaktor verdeutlichen. Die in den Siebensegmentanzeigen vorhandenen Dezimalpunkte kennzeichnen den gerade aktiven Messbereich, sie werden ebenfalls vom Schaltwerk angesteuert.

Schaltbild der Bereichautomatik

Das Foto zeigt die aufgebaute Schaltung. Die aufgebaute Schaltung

Zusammenfassung

In diesem Artikel wurden verschiedene Vorgehensweisen zur praktischen Realisierung einfacher Schaltwerke anhand konkreter Beispiele vorgestellt. Abhängig von der angewendeten Methode erhält man unterschiedlich umfangreiche Schaltungen, wie am Beispiel des Stufenschalters gezeigt wurde. Es wurde demonstriert, wie, ausgehend von der Funktionsbeschreibung, sich (einfache) Schaltwerke systematisch ohne besonderen Aufwand entwerfen und in Schaltungen umsetzen lassen, die nicht notwendigerweise „IC-Gräber“ sein müssen.