Methodischer Entwurf einfacher Schaltwerke
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.
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.
- Funktionsbeschreibung. Diese kann verbal (schriftlich, Handskizze) erfolgen oder durch z.B. ein Impulsdiagramm vorgegeben sein.
- 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.
- 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.
- 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.
- 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
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
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.
|
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.
|
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:
|
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.
|
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:
|
Bei der Übertragung der Schaltfunktion in einen Festwertspeicher ist im allgemeinen keine Optimierung erforderlich. Ist sie allerdings umgeformt, sollten zwei Dinge berücksichtigt werden:
- die Funktion muß vollständig sein, ggf. muß sie auf ihre Normalform gebracht werden
- 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.
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:
|
Zustandsdiagramm
Jedem Messbereich ist ein Zustand zugeordnet.
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
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.
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.