- Grundprinzip des Encoders:
- Erstellen von Encodern mit kombinatorischen Logikdesigns
- 8: 3 Encoder:
- Nachteil normaler Encoder:
- Prioritätsgeber:
Encoder codieren, wie der Name schon sagt, ein größeres Informationsbit in einen kleineren Bitwert. Es gibt viele Arten von Encodern, die auf der Anzahl der Ein- und Ausgänge und ihrer Funktionsweise basieren. Jedem Encoder liegt jedoch eine Regel zugrunde: Die Anzahl der Ausgangsleitungen eines Encoders ist immer geringer als die Anzahl der Eingangsleitungen. In diesem Artikel erfahren Sie mehr über Encoder, was ist ein Encoder, wie und warum werden sie in digitalen Schaltkreisen verwendet?
Grundprinzip des Encoders:
Stellen wir uns einen Encoder als Black Box vor, wie unten gezeigt, die die Anzahl der Eingangsleitungen auf magische Weise von 4 auf nur 2 Ausgangsleitungen reduziert, aber dennoch dieselben Informationen ohne Datenverlust liefert.
Lassen Sie uns zunächst den Namen dieses Encoders bestimmen. Es hat vier Eingänge und zwei Ausgänge, so dass der Name dieses Encoders 4: 2 Encoder ist. Wenn ein Encoder die Anzahl der Ausgangsleitungen „ n “ hat, beträgt die Anzahl der Eingangsleitungen 2 n, in unserem Fall beträgt die Anzahl der Ausgangsleitungen zwei (n = 2), daher sollte die Anzahl der Eingangsleitungen (2 2 = 4) vier betragen, was genau der Fall ist. Die vier Eingangspins sind von I0 bis I3 und die beiden Ausgangspins von O0 bis O1 gekennzeichnet
Wie wandelt der Encoder vier Signale in zwei um? Dies lässt sich anhand der folgenden Wahrheitstabelle verstehen. Es ist auch wichtig zu wissen, dass ein gewöhnlicher Encoder wie der hier gezeigte die Regel hat, dass zu einem bestimmten Zeitpunkt nur ein Eingangspin hoch sein sollte, so dass in der folgenden Wahrheitstabelle nur ein Eingang hoch ist.
Jede mögliche Bedingung der Eingabe der Ausgabe ist in der obigen Wahrheitstabelle gezeigt. Wenn beispielsweise nur O1 hoch (1) ist und alle anderen Eingänge niedrig (0) sind, werden beide Ausgangspins niedrig (0). In ähnlicher Weise ändern auch die Ausgangspins für jeden Fall ihren Status. Durch Verwendung dieses Ausgangsbitstatus kann der Benutzer zurückverfolgen, welches Eingangssignal an den Encoder gegeben worden wäre.
Okay, was ist daran, 4 Zeilen in 2 Zeilen umzuwandeln, warum brauchen wir es überhaupt?
Zum besseren Verständnis haben wir einen 4: 2-Encoder erklärt, aber es gibt andere Encoder, die eine höhere Anzahl von Eingängen verwenden und diese in eine niedrigere Anzahl von Ausgängen umwandeln können, wie den 8: 3-Encoder, den 16: 4-Encoder usw. Diese Typen of Encoder sind sehr nützlich, wenn wir die Anzahl der auf einer MCU / MPU verwendeten Pins oder die Anzahl der signalführenden Drähte in SPS und anderen Systemen mit einem Array von Schaltern oder LEDs reduzieren müssen. Es wird auch zur effizienten Datenübertragung verwendet, indem weniger Kabel verwendet werden. In einigen Anwendungen kann es vorkommen, dass mehr als ein Eingang hoch ist (1). In diesem Fall wird ein sogenannter Priority Encoder verwendet, auf den wir in diesem Artikel näher eingehen werden.
Erstellen von Encodern mit kombinatorischen Logikdesigns
Jetzt wissen wir, wie ein Encoder funktioniert und wo er verwendet wird. Lassen Sie uns lernen, wie man eine mit einfachen Logikgattern baut. Obwohl Encoder wie 8: 3 als ordentlicher Einzelpaket-IC wie SN74LS148 erhältlich sind, ist es wichtig zu wissen, wie sie aufgebaut sind, damit wir benutzerdefinierte Encoder für unsere Projekte basierend auf der erforderlichen Wahrheitstabelle erstellen können.
Boolescher Ausdruck:
Der erste Schritt beim Entwerfen des Combinational Logic-Geräts besteht darin, den Booleschen Ausdruck für die Wahrheitstabelle zu finden. Es ist sehr einfach und kann leicht durch Betrachten der Wahrheitstabelle bestimmt werden. Die gleiche Wahrheitstabelle, die wir zuvor gesehen haben, ist unten mit einigen Abbildungen angegeben, damit Sie sie besser verstehen.
Die Anzahl der Ausdrücke entspricht der Anzahl der Ausgabezeilen. Hier haben wir zwei Ausgänge und daher zwei Ausdrücke. Überprüfen Sie für den ersten Ausgang O0 einfach, in welchem Zustand er hoch ist (1), und verfolgen Sie die entsprechende Eingangs-Pin-Nummer, die ebenfalls hoch bleibt (1). In ähnlicher Weise notieren Sie für alle hohen Werte von O0, welche Eingangs-Pin-Nummer hoch ist, und fügen Sie die Pins hinzu. Die dem Ausgangspin O0 entsprechenden Eingangspins sind oben rot und für O1 blau hervorgehoben. Der Ausdruck für O0 und O1 wird also sein
O 1 = I 3 + I 2 O 0 = I 3 + I 1
4: 2 Encoder Schaltplan:
Sobald wir den Booleschen Ausdruck erhalten haben, müssen wir ihn nur noch in Form von Gates zeichnen. Da wir hier eine Additionsoperation (+) haben, werden wir die ODER-Gatter zum Aufbau unserer Schaltungen verwenden. Sie können den Booleschen Ausdruck auch nach Ihren Wünschen vereinfachen oder ändern. Das Schaltbild für den obigen Ausdruck ist unten gezeigt
Die Schaltung kann leicht unter Verwendung eines 7432-ODER-Gatter-IC aufgebaut werden. Ich habe meine Encoderschaltung wie unten gezeigt über ein Steckbrett gebaut
Die vier Eingangsleitungen (I0, I1, I2 und I3) werden von den vier Drucktasten bereitgestellt. Wenn die Taste gedrückt wird, werden +5 V mit dem Pin verbunden, wodurch sie logisch 1 wird. Wenn die Taste nicht gedrückt wird, wird der Pin gegen Masse gehalten durch einen 10k Pulldown-Widerstand, um ihn logisch Null zu machen. Die Ausgänge (O0 und O1) werden mit einem Paar roter LED dargestellt. Wenn die LED leuchtet, bedeutet dies, dass die Ausgangslogik 1 ist, und wenn sie ausgeschaltet ist, bedeutet dies, dass die Ausgangslogik 0 ist. Die vollständige Funktionsweise der Encoderschaltung ist im folgenden Video dargestellt
Wie Sie sehen können, wenn der erste Knopf gedrückt wird, wird der Eingang I0 hoch gemacht und daher bleiben beide Ausgänge niedrig. Wenn die zweite Taste gedrückt wird, wird der Eingang I1 eingeschaltet und somit geht eine LED hoch, um anzuzeigen, dass O0 hoch ist. Wenn schließlich die vierte Taste gedrückt wird, wird der Eingang I3 hoch und somit gehen beide LEDs hoch. Dies ist eine sehr einfache Schaltung, daher haben wir sie leicht auf ein Steckbrett gebaut, aber für praktische Encoder wird die Schaltung etwas komplexer. Encoder sind jedoch auch als IC-Pakete erhältlich, die je nach Projekt erworben werden können.
8: 3 Encoder:
Die Funktionsweise und Verwendung des 8: 3-Encoders ähnelt mit Ausnahme der Anzahl der Eingangs- und Ausgangspins auch dem 4: 2-Encoder. Der 8: 3-Encoder wird auch als Oktal-Binär-Encoder bezeichnet. Das Blockschaltbild eines 8: 3-Encoders ist unten dargestellt
Hier hat der Encoder 8 Eingänge und 3 Ausgänge, auch hier sollte immer nur ein Eingang hoch (1) sein. Da es 8 Eingänge gibt, wird es als Oktaleingang bezeichnet, und da es drei Ausgänge gibt, wird es auch als Binärausgang bezeichnet. Die Wahrheitstabelle des Encoders ist unten gezeigt.
8: 3 Encoder Truth Table:
Boolescher Ausdruck:
Da wir dich haben, werden wir drei Ausdrücke haben, wie unten gezeigt
O 2 = I 7 + I 6 + I 5 + I 4 O 1 = I 7 + I 6 + I 3 + I 2 O 0 = I 7 + I 5 + I 3 + I 1
8: 3 Encoder Schaltplan:
Sobald der Boolesche Ausdruck wie immer erhalten ist, können wir das Schaltbild unter Verwendung der ODER-Gatter wie unten gezeigt erstellen.
Die Schaltung verwendet einen ODER-Gatter-IC mit 4 Eingängen. Sie können den Booleschen Ausdruck auch vereinfachen, um andere normale Gatter-ICs mit 2 Eingängen zu verwenden.
Nachteil normaler Encoder:
Diese Arten von Encodern weisen die folgenden Hauptnachteile auf
- Wenn keiner der Eingänge hoch ist, ist der Ausgang gleich Null, aber diese Bedingungen stehen auch im Konflikt mit dem ersten Bit, das hoch ist (MSB). Daher sollte immer darauf geachtet werden, dass immer mindestens ein Bit eingeschaltet bleibt
- Wenn mehr als ein Eingang hoch ist, wird der Ausgang reduziert und kann das Ergebnis für einen der Eingänge liefern, was zu Verwirrung führt.
Um diese Schwierigkeiten zu überwinden, verwenden wir einen anderen Codierertyp, der als Prioritätscodierer bezeichnet wird und einen zusätzlichen Ausgang verwendet, um zu bestimmen, ob der Ausgang gültig ist. Wenn mehr als ein Eingang hilfreich ist, wird derjenige, der ausgehend vom LSD hoch geht, allein berücksichtigt Ignorieren der anderen Eingänge.
Prioritätsgeber:
Lassen Sie uns einen 4: 2-Prioritätscodierer als Beispiel analysieren, um zu verstehen, wie er sich von einem normalen Codierer unterscheidet und die oben genannten zwei Nachteile überwinden kann. Das Blockschaltbild eines 4: 2-Prioritätscodierers ist unten dargestellt
Ein Prioritäts-4: 2-Encoder hat auch 4 Eingänge und 2 Ausgänge, aber wir werden einen weiteren Ausgang namens V hinzufügen, der für ein gültiges Bit steht. Dieses gültige Bit prüft, ob alle vier Eingangspins niedrig sind (0), wenn niedrig, macht sich das Bit auch selbst niedrig und gibt an, dass der Ausgang nicht gültig ist, so dass wir den oben erwähnten ersten Nachteil überwinden können.
4: 2 Priority Encoder Truth Table:
Der nächste Nachteil kann vermieden werden, indem den MSB-Bits Priorität eingeräumt wird. Der Encoder prüft vom MSB und sobald er das erste Bit so hoch (1) findet, erzeugt er die Ausgabe entsprechend. Es spielt also keine Rolle, ob die anderen Pins hoch oder niedrig sind. Daher werden in der nachstehenden Wahrheitstabelle nach Erreichen einer 1 die Werte für die Nichtbeachtung durch „X“ dargestellt.
Boolescher Ausdruck:
Jetzt müssen wir drei Ausdrücke für O0, O1 und V ableiten. Da die Wahrheitstabelle keine Elemente enthält, müssen wir die K-Map-Methode verwenden, um den Booleschen Ausdruck dafür abzuleiten. Wir werden nicht behandeln, wie man mit K-Maps löst, da dies außerhalb des Geltungsbereichs dieses Artikels liegt. Die Karte wird jedoch unten angezeigt, damit Sie sich selbst einmischen und lernen können.
In den obigen Karten ist die linke für O1 und die rechte für O0. Die Ausgangsleitungen werden durch y und die Eingangsleitungen durch x erwähnt. Wenn wir also die Gleichung entsprechend anordnen, erhalten wir Folgendes.
O 1 = I 3 + I 2 O 0 = I 2 I 1 '+ I 3
In ähnlicher Weise kann für das gültige Bit "V" der Boolesche Ausdruck als angegeben werden
V = I 3 + I 2 + I 1 + I 0
Schaltplan:
Der Schaltplan für dieses Projekt kann mit den Booleschen Ausdrücken erstellt werden.
Die Schaltung kann unter Verwendung der grundlegenden Gatter NOT, AND und OR aufgebaut werden. Hier werden die Bits O0 und O1 als Ausgänge betrachtet, während das Bit V zur Validierung des Ausgangs verwendet wird. Nur wenn das Bit V hoch ist, wird der Ausgang berücksichtigt, wenn der Wert von V niedrig (0) ist. Der Ausgang sollte ignoriert werden, da dies impliziert, dass alle Eingangspins Null sind.