CMOS-IC
[ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]

9. Anwendung

Digitales Codeschloß

Zum Abschluß dieses Kurses möchte ich noch eine Schaltung vorstellen.

Digitales Codeschloß
Mit dieser Schaltung kann man durch die Eingabe einer 4-stelligen Zahl (z.B. mit einer Folientastatur), deren Eingabe in bestimmter Reihenfolge erfolgen muss, ein Relais zum Anziehen bringen und damit ein Gerät einschalten (oder auch ausschalten). Wird eine falsche Zahl eingegeben hat man keine Möglichkeit mehr das Relais zum Anziehen zu bringen (selbst nach anschließender korrekter Eingabe). Das Bild zeigt den Schaltplan.

Wenn das Gerät eingeschalten wird lädt sich der Kondensator über den obersten Widerstand auf. Da er im Einschaltmoment entladen ist und dadurch einen sehr geringen Innenwiderstand hat (und dieser durch den oberen Widerstand nur langsam ansteigt) legt er alle unteren Eingänge der Flipflops auf ’0’, folglich gehen alle unteren Ausgänge der Flipflops auf ’1’ (s. Funktionsweise NAND-RS-Flipflop). Wenn das Gerät ausgeschalten wird, entlädt der parallelgeschaltete Widerstand (hochohmig) den Kondensator wieder. Alle oberen Eingänge der Flipflops an denen sich ein Taster befindet werden mit einem Pullupwiderstand auf ’1’ gelegt, um einen eindeutig definierten Pegel herzustellen. Die zwei unteren Eingänge des obersten AND-Gatters liegen nach dem Einschalten also auf ’1’. Damit das Relais anzieht muss der Transistor durchschalten und dazu müssen nach der Wahrheitstabelle des AND-Gatters auch noch die vier oberen Eingänge auf ’1’ gelegt werden. Dies erreicht man dadurch, indem nacheinander die Taster T1 bis T4 betätigt werden. Die oberen Ausgänge der Flipflops wechseln dann durch den jeweils hervorgerufenen ’0’-Impuls von ’0’ auf ’1’.
Die ganze Beschaltung, außer den vier linken Flipflops und dem AND-Gatter mit sechs Eingängen, dient dazu, bei einer Falscheingabe das Anziehen des Relais zu verhindern, d.h. zu verhindern, dass der Ausgang des obersten ANDs auf ’1’ wechselt. Es darf also nicht möglich sein, dass falsche Zahlen eingegeben werden und die Zahlenkombination in falscher Reihenfolge eingegeben wird.
Für den ersten Fall dient lediglich das rechte untere Flipflop. Alle Leitungen der Tastatur für die Zahlen, die nicht im Code vorkommen, werden an dem Taster T mit Index F für "falsch" vor dem Flipflop angeschlossen. Solange keine falsche Zahl eingegeben wird bleibt der untere Ausgang dieses Flipflops und damit der untere Ausgang des großen ANDs auf ’1’. Sobald aber eine Falscheingabe erfolgt wechselt der obere Ausgang auf ’1’, der untere auf ’0’ und damit auch der des ANDs auf ’0’. Selbst nach anschließender richtiger Eingabe des Codes bleibt dieser Zustand gespeichert und es ist nicht mehr möglich das Relais zum Anziehen zu bringen, da bei einem AND-Gatter ein Eingang der auf ’0’ liegt verhindert, dass der Ausgang jemals ’1’ annimmt.
Für den zweiten Fall dienen die sechs Gatter in der Mitte des Bildes und das rechte obere Flipflop. Wenn der Code in der falschen Reihenfolge eingegeben wird wechselt der Ausgang des ANDs mit drei Eingängen auf ’0’, damit wechselt der untere Ausgang des Flipflops und ebenso der zweite Eingang des großen ANDs (von unten) von ’1’ auf ’0’. Auch dieser Zustand bleibt gespeichert und kann nicht durch eine nachträgliche richtige Eingabe rückgängig gemacht werden.
Natürlich stellt sich nun die Frage, wie dieser Schaltungsteil funktioniert. Es muss bei der Eingabe sichergestellt sein, dass zuerst T1 gedrückt wird, dann T2, usw. Angenommen es wird tatsächlich zuerst T1 betätigt. Dann wechselt der obere Ausgang des obersten linken Flipflops und ebenso der zugehörige Eingang des großen ANDs von ’0’ auf ’1’, der untere und damit der obere Eingang des linken oberen NANDs von ’1’ auf ’0’. Der Ausgang des linken OR-Gatters liegt auf ’0’, da alle drei Eingänge auf ’0’ liegen (Wahrheitstabelle OR-Gatter). Folglich liegt auch der untere Eingang des oberen linken NANDs auf ’0’ und sein Ausgang deshalb auf ’1’ (Wahrheitstabelle NAND-Gatter). Auch der obere Eingang des kleinen AND-Gatters liegt also auf ’1’. Der obere Eingang des linken unteren NANDs liegt auf ’1’ (T2 wurde ja noch nicht betätigt). Sein unterer Eingang liegt auf ’0’, da auch der Ausgang des rechten OR-Gatters auf ’0’ liegt (da alle Eingänge auf ’0’ liegen). Somit liegt also auch der mittlere Eingang des kleinen AND-Gatters auf ’1’. Der obere Eingang des rechten NANDs liegt auf ’1’, der unter auf ’0’, folglich liegt sein Ausgang und damit der untere Eingang des kleinen ANDs auf ’1’. Der Ausgang dieses AND-Gatters muss also auf ’1’ liegen. Man kann jetzt das Verhalten der Schaltung für die Tasteneingaben T1 bis T4 (also richtige Eingabe) überprüfen und kommt zu dem Schluss, dass der Ausgang des kleinen AND-Gatters immer auf ’1’ liegt. Wenn dann zuletzt T4 betätigt wurde liegen alle Eingänge des großen ANDs auf ’1’, damit auch der Ausgang, der Transistor schaltet durch und das Relais zieht an.
Was passiert wenn die Reihenfolge der eingegebenen Zahlen nicht stimmt? Angenommen die erste eingegebene Zahl stimmt schon nicht (man drückt also T2, T3 oder T4). Dann wird einer der oberen Ausgänge dieser Flipflops auf ’1’ wechseln. Der Ausgang des linken OR-Gatters und damit der untere Eingang des linken oberen NANDs wechselt somit auch auf ’1’. Da nun aber nicht T1 gedrückt wurde liegt der untere Ausgang des obersten linken Flipflops und damit der obere Eingang des linken oberen NANDs auch noch auf ’1’. Konsequenz: Der Ausgang des NAND-Gatters wechselt auf ’0’, damit wechselt auch der Ausgang des kleinen ANDs auf ’0’ und setzt das Flipflop, sodass der Eingang des großen ANDs mit dem der untere Ausgang dieses Flipflops verbunden ist auf ’0’ gelegt wird und diesen logischen Zustand beibehält. Man kann für mehrere Eingaben mit falscher Reihenfolge nachprüfen, ob der untere Ausgang des rechten, oberen Flipflops tatsächlich auf ’0’ wechselt und stellt fest: Immer wenn eine Zahl eingegeben wird, die noch "nicht an der Reihe ist" wechselt der Ausgang des zugehörigen NAND-Gatters des Tasters der zuvor hätte betätigt werden müssen auf ’0’ (können natürlich auch mehrere Ausgänge sein). Beispiel: Wenn zuerst T4 gedrückt wird wechseln alle Ausgänge der NANDs auf ’0’ (da je beide Eingänge auf ’1’ liegen).
Aufgebaut könnte die Schaltung dann z.B. so ausschauen: