Obwody cyfrowe - enkodery
Na Encoderto układ kombinacyjny, który wykonuje odwrotną operację dekodera. Ma maksymalnie 2 n linii wejściowych i „n” linii wyjściowych. Stworzy kod binarny odpowiadający wejściu, które jest aktywne High. Dlatego koder koduje 2 n linii wejściowych przy użyciu „n” bitów. Przedstawianie sygnału zezwolenia w enkoderach jest opcjonalne.
Koder 4 do 2
Niech 4 do 2 Enkoder ma cztery wejścia Y 3 , Y 2 , Y 1 i Y 0 oraz dwa wyjścia A 1 i A 0 . Plikblock diagram 4 do 2 Enkoder pokazano na poniższym rysunku.
W dowolnym momencie tylko jedno z tych 4 wejść może mieć wartość „1”, aby uzyskać odpowiedni kod binarny na wyjściu. PlikTruth table poniżej pokazano koder 4 do 2.
Wejścia | Wyjścia | ||||
---|---|---|---|---|---|
Y3 | Y2 | Y1 | Y0 | A1 | A0 |
0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 1 |
0 | 1 | 0 | 0 | 1 | 0 |
1 | 0 | 0 | 0 | 1 | 1 |
Z tabeli Prawda możemy napisać plik Boolean functions dla każdego wyjścia jako
$$ A_ {1} = Y_ {3} + Y_ {2} $$
$$ A_ {0} = Y_ {3} + Y_ {1} $$
Możemy zaimplementować powyższe dwie funkcje logiczne, używając dwóch wejściowych bramek OR. Plikcircuit diagram na poniższym rysunku pokazano enkodera 4 do 2.
Powyższy schemat obwodu zawiera dwie bramki OR. Te bramki OR kodują cztery wejścia dwoma bitami
Koder ósemkowy na binarny
Ósemkowej enkodera do binarnego ma osiem wejść Y 7 Y 0 i trzech wyjść A 2 , A 1 i A 0 . Koder ósemkowy na binarny to nic innego jak koder 8 do 3. Plikblock diagram enkodera ósemkowego na binarny pokazano na poniższym rysunku.
W dowolnym momencie tylko jedno z ośmiu wejść może mieć wartość „1”, aby uzyskać odpowiedni kod binarny. PlikTruth table enkodera ósemkowego na binarny pokazano poniżej.
Wejścia | Wyjścia | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Y7 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 | A2 | A1 | A0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Z tabeli Prawda możemy napisać plik Boolean functions dla każdego wyjścia jako
$$ A_ {2} = Y_ {7} + Y_ {6} + Y_ {5} + Y_ {4} $$
$$ A_ {1} = Y_ {7} + Y_ {6} + Y_ {3} + Y_ {2} $$
$$ A_ {0} = Y_ {7} + Y_ {5} + Y_ {3} + Y_ {1} $$
Możemy zaimplementować powyższe funkcje boolowskie, używając czterech wejściowych bramek LUB. Plikcircuit diagram enkodera ósemkowego na binarny pokazano na poniższym rysunku.
Powyższy schemat obwodu zawiera trzy 4-wejściowe bramki OR. Te bramki OR kodują osiem wejść trzema bitami.
Wady enkodera
Poniżej przedstawiono wady normalnego kodera.
Istnieje niejednoznaczność, gdy wszystkie wyjścia enkodera są równe zero. Ponieważ może to być kod odpowiadający wejściom, gdy tylko najmniej znaczący sygnał wejściowy wynosi jeden lub gdy wszystkie wejścia są zerowe.
Jeśli więcej niż jedno wejście jest aktywne w stanie wysokim, to koder generuje wyjście, które może nie być poprawnym kodem. Dlaexample, jeśli zarówno Y 3, jak i Y 6 mają wartość „1”, to enkoder wytwarza 111 na wyjściu. Nie jest to ani równoważny kod odpowiadający Y 3 , kiedy wynosi „1”, ani równoważny kod odpowiadający Y 6 , kiedy wynosi „1”.
Aby więc przezwyciężyć te trudności, powinniśmy przypisać priorytety każdemu wejściu kodera. Wówczas wyjście enkodera będzie kodem (binarnym) odpowiadającym aktywnemu wejściu (wejściom) High, które ma wyższy priorytet. Ten koder nosi nazwępriority encoder.
Koder priorytetów
Enkoder z priorytetem 4 do 2 ma cztery wejścia Y 3 , Y 2 , Y 1 i Y 0 oraz dwa wyjścia A 1 i A 0 . Tutaj wejście Y 3 ma najwyższy priorytet, podczas gdy wejście Y 0 ma najniższy priorytet. W tym przypadku, nawet jeśli więcej niż jedno wejście ma wartość „1” w tym samym czasie, wyjście będzie kodem (binarnym) odpowiadającym wejściu, które mahigher priority.
Rozważaliśmy jeszcze jeden output, V aby wiedzieć, czy kod dostępny na wyjściach jest ważny, czy nie.
Jeżeli przynajmniej jedno wejście enkodera ma wartość „1”, to kod dostępny na wyjściach jest prawidłowy. W takim przypadku wyjście V będzie równe 1.
Jeżeli wszystkie wejścia enkodera mają wartość „0”, to kod dostępny na wyjściach jest nieprawidłowy. W takim przypadku wyjście V będzie równe 0.
Plik Truth table poniżej pokazano enkoder z priorytetem 4 do 2.
Wejścia | Wyjścia | |||||
---|---|---|---|---|---|---|
Y3 | Y2 | Y1 | Y0 | A1 | A0 | V |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 | 1 |
0 | 0 | 1 | x | 0 | 1 | 1 |
0 | 1 | x | x | 1 | 0 | 1 |
1 | x | x | x | 1 | 1 | 1 |
Posługiwać się 4 variable K-maps aby uzyskać uproszczone wyrażenia dla każdego wyjścia.
Uproszczony Boolean functions są
$$ A_ {1} = Y_ {3} + Y_ {2} $$
$ A_ {0} = Y_ {3} + {Y_ {2}} 'Y_ {1} $
Podobnie otrzymamy funkcję logiczną wyjścia, V as
$$ V = Y_ {3} + Y_ {2} + Y_ {1} + Y_ {0} $$
Powyższe funkcje boolowskie możemy zaimplementować za pomocą bramek logicznych. Plikcircuit diagram Na poniższym rysunku przedstawiono enkoder priorytetowy 4 do 2.
Powyższy schemat obwodu zawiera dwie 2-wejściowe bramki OR, jedną 4-wejściową bramkę OR, jedną 2-wejściową bramkę ORAZ i falownik. W tym przypadku kombinacja bramki AND i inwertera jest używana do generowania prawidłowego kodu na wyjściach, nawet gdy wiele wejść jest równych „1” w tym samym czasie. Stąd ten obwód koduje cztery wejścia dwoma bitami w oparciu opriority przypisane do każdego wejścia.