- Podstawowa zasada enkodera:
- Budowanie koderów przy użyciu projektów logiki kombinacyjnej
- Enkodery 8: 3:
- Wada normalnych enkoderów:
- Koder priorytetów:
Kodery, jak sama nazwa wskazuje, kodują większą część informacji do mniejszej wartości bitowej. Istnieje wiele typów enkoderów w zależności od liczby wejść i wyjść oraz sposobu działania. Ale każdy Enkoder ma jedną podstawową regułę, liczba linii wyjściowych na Enkoderze zawsze będzie mniejsza niż liczba linii wejściowych. Dowiemy się więcej o koderach, czym jest koder, jak i dlaczego są używane w obwodach cyfrowych w tym artykule.
Podstawowa zasada enkodera:
Wyobraźmy sobie, że Enkoder jest czarną skrzynką, jak pokazano poniżej, która w magiczny sposób zmniejsza liczbę linii wejściowych z 4 do zaledwie 2 linii wyjściowych, ale nadal dostarcza te same informacje bez utraty danych.
Najpierw ustalmy, jaka będzie nazwa tego Enkodera. Posiada cztery wejścia i dwa wyjścia, więc nazwa tego Enkodera to 4: 2 Encoder. Jeśli Enkoder ma „ n ” liczby linii wyjściowych, liczba linii wejściowych będzie wynosić 2 n, w naszym przypadku liczba wierszy wyjściowych wynosi dwa (n = 2), stąd liczba wierszy wejściowych powinna wynosić (2 2 = 4) cztery, co jest dokładnie tym przypadkiem. Cztery piny wejściowe są oznaczone od I0 do I3, a dwa piny wyjściowe są oznaczone od O0 do O1
Jak więc Enkoder przekształca cztery sygnały w dwa, można to zrozumieć, patrząc na poniższą tabelę prawdy. Ważne jest również, aby wiedzieć, że zwykły enkoder, taki jak ten pokazany tutaj, ma zasadę, że w danym momencie tylko jeden pin wejściowy powinien być wysoki, więc w poniższej tabeli prawdy tylko jedno wejście będzie wysokie.
Każdy możliwy stan wejścia i wyjścia jest pokazany w powyższej tabeli prawdy. Na przykład, gdy tylko O1 jest w stanie wysokim (1), a wszystkie inne wejścia mają stan niski (0), wówczas oba piny wyjściowe będą miały stan niski (0). Podobnie w każdym przypadku piny wyjściowe również zmienią swój stan. Używając tego statusu bitów wyjściowych, użytkownik będzie mógł prześledzić, jaki sygnał wejściowy zostałby przekazany do Enkodera.
Okay, co jest fajnego w zamianie 4 linii na 2 linie, dlaczego w ogóle tego potrzebujemy?
Dla zrozumienia wyjaśniliśmy koder 4: 2, ale są inne enkodery, które mogą pobierać większą liczbę wejść i konwertować je na mniejszą liczbę wyjść, jak np. Koder 8: 3, koder 16: 4 itd. Te typy enkodera są bardzo przydatne, gdy musimy zmniejszyć liczbę pinów używanych w MCU / MPU lub zmniejszyć liczbę przewodów przenoszących sygnał w PLC i innych systemach, w których znajduje się szereg przełączników lub diod LED. Jest również używany do wydajnego przesyłania danych przy użyciu mniejszych przewodów. W niektórych aplikacjach może wystąpić sytuacja, w której więcej niż jedno wejście może mieć stan wysoki (1), w takim przypadku użyjemy czegoś, co nazywa się koderem priorytetowym, co omówimy w dalszej części tego artykułu.
Budowanie koderów przy użyciu projektów logiki kombinacyjnej
Teraz, gdy wiemy, jak działa Encoder i gdzie jest używany. Nauczmy się, jak go zbudować, używając prostych bramek logicznych. Chociaż kodery takie jak 8: 3 są dostępne jako zgrabny pojedynczy pakiet IC, taki jak SN74LS148, ważne jest, aby wiedzieć, jak są zbudowane, abyśmy mogli tworzyć niestandardowe kodery dla naszych projektów w oparciu o wymaganą tabelę prawdy.
Wyrażenie logiczne:
Pierwszym krokiem w projektowaniu urządzenia logiki kombinacyjnej jest znalezienie wyrażenia logicznego dla tabeli prawdy. Jest to bardzo łatwe i można je łatwo określić, patrząc na tabelę prawdy. Ta sama tabela prawdy, którą widzieliśmy wcześniej, jest podana poniżej z kilkoma ilustracjami, aby lepiej zrozumieć.
Liczba wyrażeń będzie równa liczbie wierszy wyjściowych, tutaj mamy dwa wyjścia i stąd mamy dwa Wyrażenia. Dla pierwszego wyjścia O0 wystarczy sprawdzić, w jakim stanie jest ono wysokie (1) i prześledzić odpowiedni numer pinu wejściowego, który również pozostaje wysoki (1). Podobnie dla wszystkich wysokich wartości O0 zanotuj, który numer styku wejściowego jest wysoki i dodaj piny. Piny wejściowe odpowiadające pinowi wyjściowemu O0 są podświetlone na czerwono powyżej, a dla O1 są podświetlone na niebiesko. Więc Wyrażenie dla O0 i O1 będzie
O 1 = Ja 3 + I 2 O 0 = Ja 3 + Ja 1
Schemat obwodu enkodera 4: 2:
Gdy już uzyskamy wyrażenie logiczne, musimy po prostu narysować je w postaci bramek. Tutaj, ponieważ mamy operację dodawania (+), użyjemy bramek OR do budowy naszych obwodów. Możesz także uprościć lub zmodyfikować wyrażenie logiczne zgodnie ze swoimi potrzebami. Schemat obwodu dla powyższego wyrażenia pokazano poniżej
Obwód można łatwo zbudować za pomocą układu scalonego bramki 7432 OR. Zbudowałem mój obwód kodera nad makiet, jak pokazano poniżej
Cztery linie wejściowe (I0, I1, I2 i I3) są dostarczane przez cztery przyciski, po naciśnięciu przycisku łączy on + 5V z pinem, tworząc logikę 1, a gdy przycisk nie jest wciśnięty, pin jest utrzymywany w uziemieniu przez rezystor obniżający 10k, aby uzyskać logiczne zero. Wyjścia (O0 i O1) są reprezentowane przez parę czerwonych diod LED. Jeśli dioda LED się świeci, oznacza to, że logika wyjściowa jest 1, a jeśli są wyłączone, oznacza to, że logika wyjściowa 0. Pełne działanie obwodu enkodera jest pokazane na poniższym filmie
Jak widać po naciśnięciu pierwszego przycisku wejście I0 jest ustawiane w stan wysoki, a zatem oba wyjścia pozostają w stanie niskim. Wciśnięcie drugiego przycisku powoduje włączenie wejścia I1 i tym samym zapala się jedna dioda LED, wskazując stan wysoki O0. Wreszcie, po naciśnięciu czwartego przycisku, wejście I3 jest wysokie, a zatem obie diody LED są wysokie. Jest to bardzo prosty obwód, dlatego z łatwością zbudowaliśmy go na płytce prototypowej, ale dla praktycznych koderów obwód będzie nieco bardziej złożony. Jednak kodery są również dostępne jako pakiety IC, które można kupić, jeśli pasuje do twojego projektu.
Enkodery 8: 3:
Działanie i użycie enkodera 8: 3 jest również podobne do enkodera 4: 2 z wyjątkiem liczby pinów wejściowych i wyjściowych. Enkoder 8: 3 jest również nazywany enkoderem ósemkowym na binarny, schemat blokowy kodera 8: 3 pokazano poniżej
Tutaj Enkoder ma 8 wejść i 3 wyjścia, znowu tylko jedno wejście powinno być w stanie wysokim (1) w danym momencie. Ponieważ jest 8 wejść, jest nazywane wejściem ósemkowym, a ponieważ są trzy wyjścia, nazywane jest również wyjściem binarnym. Tabela prawdy Enkodera jest pokazana poniżej.
Tabela prawdy kodera 8: 3:
Wyrażenie logiczne:
Ponieważ mamy te wyniki, będziemy mieć trzy wyrażenia, jak pokazano poniżej
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
Schemat obwodu enkodera 8: 3:
Po uzyskaniu wyrażenia boolowskiego, jak zawsze, możemy zbudować schemat obwodu za pomocą bramek OR, jak pokazano poniżej.
Obwód wykorzystuje 4-wejściowy układ scalony bramki OR, można również uprościć wyrażenie boolowskie, aby użyć innych normalnych układów scalonych z 2 wejściami bramki.
Wada normalnych enkoderów:
Te typy enkoderów mają następujące poważne wady
- Gdy żadne z danych wejściowych nie jest wysokie, wartość wyjściowa będzie równa zeru, ale te warunki również kolidują z pierwszym bitem, który jest wysoki (MSB). Dlatego należy zawsze uważać, aby przynajmniej jeden bit był zawsze włączony
- Gdy więcej niż jedno wejście jest wysokie, wyjście zostanie zwinięte i może dać wynik dla jednego z danych wejściowych, co prowadzi do nieporozumień.
Aby przezwyciężyć te trudności, stosujemy inny typ enkodera zwany koderem priorytetowym, który wykorzystuje dodatkowe wyjście do określenia, czy wyjście jest prawidłowe, a gdy więcej niż jedno wejście jest pomocne, ten, który osiąga wysoki poziom zaczynając od LSD, jest brany pod uwagę tylko podczas ignorowanie innych wejść.
Koder priorytetów:
Przeanalizujmy przykładowy koder priorytetowy 4: 2, aby zrozumieć, czym różni się od zwykłego kodera i może przezwyciężyć wspomniane powyżej dwie wady. Schemat blokowy enkodera z priorytetem 4: 2 pokazano poniżej
Enkoder z priorytetem 4: 2 ma również 4 wejścia i 2 wyjścia, ale dodamy kolejne wyjście o nazwie V, które oznacza prawidłowy bit. Ten ważny bit sprawdzi, czy wszystkie cztery piny wejściowe są w stanie niskim (0), jeśli niski, bit również ustawi się na niskim poziomie, stwierdzając, że wyjście jest nieprawidłowe, dzięki czemu możemy przezwyciężyć pierwszą wspomnianą powyżej wadę.
Tabela prawdy priorytetowego kodera 4: 2:
Następnej wady można uniknąć poprzez nadanie priorytetu bitom MSB, Enkoder sprawdzi z MSB i po znalezieniu pierwszego bitu o tak wysokiej wartości (1) odpowiednio wygeneruje wyjście. Nie ma więc znaczenia, czy pozostałe piny są wysokie czy niskie. Dlatego w poniższej tabeli prawdy po osiągnięciu 1 wartości „nie przejmuj się” są przedstawione jako „X”.
Wyrażenie logiczne:
Teraz musimy wyprowadzić trzy Wyrażenia, które są dla O0, O1 i V. Ponieważ tabela prawdy nie zawiera elementów, musimy użyć metody K-map, aby uzyskać do tego wyrażenie logiczne. Nie będziemy omawiać rozwiązywania problemów za pomocą map K, ponieważ jest to poza zakresem tego artykułu. Ale mapa jest pokazana poniżej, abyś sam mógł się wtrącać i uczyć.
Na powyższych mapach lewa jest dla O1, a prawa dla O0. Linie wyjściowe są oznaczone przez y, a linie wejściowe są oznaczone przez x. A więc układając odpowiednio równanie, otrzymamy co następuje.
O 1 = I 3 + I 2 O 0 = I 2 I 1 '+ I 3
Podobnie, dla prawidłowego bitu „V” wyrażenie logiczne można podać jako
V = Ja 3 + Ja 2 + Ja 1 + Ja 0
Schemat obwodu:
Schemat obwodu dla tego projektu można zbudować za pomocą wyrażeń boolowskich.
Obwód można zbudować przy użyciu podstawowych bramek NOT, AND i OR. Tutaj bity O0 i O1 są uważane za wyjścia, podczas gdy bit V jest używany do walidacji wyjścia. Tylko jeśli bit V jest wysoki, wyjście zostanie uwzględnione, jeśli wartość V jest niska (0), wyjście powinno zostać zignorowane, ponieważ oznacza to, że wszystkie piny wejściowe są zerowe.