- Основен принцип на декодера:
- Недостатъци на стандартните декодери:
- Приоритетен декодер:
- 3: 8 декодери:
- 4:16 Декодер:
- Приложения:
Декодерът е тип комбинационна схема, която декодира малка битова стойност в голяма битова стойност. Обикновено се използва в комбинация с енкодери, което прави точно обратното на това, което прави декодер, така че прочетете за енкодерите тук, преди да продължите с декодерите. Отново, също като енкодерите, има и много видове декодери, но броят на изходните редове в декодера винаги ще бъде повече от броя на входните редове. В този урок ще научим как работи декодер и как можем да изградим такъв за нашия проект.
Основен принцип на декодера:
Както беше казано по-рано, декодерът е просто контра част от енкодер. Той взема определен брой двоични стойности като входове и декодира след това в повече редове с помощта на логика. По- долу е показан примерен декодер, който приема 2 реда като вход и ги преобразува в 4 реда.
Друго основно правило с декодерите е, че ако броят на входовете се счита за n (тук n = 2), броят на изходите винаги ще бъде равен на 2 n (2 2 = 4), което е четири в нашия случай. Декодерът има 2 входни линии и 4 изходни линии; следователно този тип декодер се нарича 2: 4 декодери. Двата входни щифта са обозначени като I1 и I0, а четирите изходни щифта са наречени от O0 до O3, както е показано по-горе.
Също така е важно да се знае, че обикновен декодер като този, показан тук, има недостатък, тъй като не може да прави разлика между състоянието на двата входа, които са нула (не са свързани към други вериги) и двата входа са ниски (логика 0). Този недостатък може да бъде решен с помощта на приоритетен декодер, който ще научим по-късно в тази статия. Таблицата на истината на обикновен декодер е показана по-долу
От таблицата на истината на декодера можем да напишем булевия израз за всеки изходен ред, просто следвайте къде изходът се повишава и образувайте логика И, базирана на стойностите на I1 и I0. Той е много подобен на метода Encoder, но тук използваме логиката И вместо логиката ИЛИ. Булевият израз за всички четири реда е даден по-долу, където символът (.) Представлява логиката И, а символът (') представлява НЕ логика
O 0 = I 1 '.I 0 ' O 1 = I 1 '.I 0 O 2 = I 1.I 0 ' O 3 = I 1.I 0
Сега, след като разполагаме с всичките четири израза, можем да преобразуваме тези изрази в комбинационна логическа верига на порта, използвайки И портите и НЕ портите. Просто използвайте И портите вместо (.) И НЕ портата (обърната логика) вместо (') и ще получите следната логическа диаграма.
Нека изградим схемата на декодера 2: 4 на макет и да проверим как работи в реалния живот. За да работи като хардуер, трябва да използвате логическата интегрална схема, като 7404 за NOT gate и 7408 за AND порта. Двата входа I0 и I1 се осигуряват чрез бутон, а изходът се наблюдава чрез LED светлини. След като осъществите връзката на макет, това ще изглежда нещо подобно на снимката по-долу
Платката се захранва от външно захранване + 5V, което от своя страна захранва Gate IC чрез Vcc (щифт 14) и заземяване (щифт 7) щифтове. Входът се дава от бутони, когато е натиснат, това е логика 1, а когато не се натиска, дава логика 0, падащ резистор със стойност 1k също се добавя по входните линии, за да се предотврати плаващото състояние на щифтовете. Изходните линии (O0 до O3) са дадени чрез тези червени светодиодни светлини, ако светят, това е логика 1, друго е логика 0. Пълната работа на тази схема на декодера е показана във видеото по-долу
Имайте предвид, че таблицата на истината за всеки вход се показва в горния ляв ъгъл и светодиодът също свети по същия подреден начин. По същия начин можем също да създадем комбинационна логическа диаграма за всички видове декодери и да ги изградим върху хардуер като този. Можете също така да разгледате лесно достъпните интегрални схеми за декодиране, ако вашият проект отговаря на такъв.
Недостатъци на стандартните декодери:
Подобно на енкодера, стандартният декодер също страда от същия проблем, ако и двата входа не са свързани (логика X), изходът няма да остане нулев. Вместо това декодерът ще го разглежда като логика 0 и битът O0 ще бъде повишен.
Приоритетен декодер:
Така че ние използваме приоритетния декодер, за да преодолеем този проблем, този тип декодер има допълнителен входен щифт, означен като „E“ (Enable), който ще бъде свързан с валидния щифт на приоритетния декодер. В диаграмата блок за приоритет декодер е показано по-долу.
Таблицата на истината за приоритетен кодер също е показана по-долу, тук X представлява никаква връзка и '1' представлява логика висока, а '0' представлява логика ниска. Забележете, че битът за активиране е 0, когато няма връзка на входните линии и следователно изходните линии също ще останат нула. По този начин ще можем да преодолеем гореспоменатия недостатък.
Както винаги от таблицата на истината, можем да управляваме булевия израз за изходните редове O0 до O3. Булевият израз за горната таблица на истината е показан по-долу. Ако погледнете отблизо, можете да забележите, че изразът е същият като този на нормален декодер 2: 4, но битът Enable (E) е направен на AND с израза.
O 0 = EI 1 '.I 0 ' O 1 = EI 1 '.I 0 O 2 = EI 1.I 0 ' O 3 = EI 1.I 0
Комбинационната логическа диаграма за горния булев израз може да бъде изградена с помощта на няколко инвертора (НЕ Порти) и 3 входа И порта. Просто заменете символа (') с инвертори, а символа (.) С И порта и ще получите следната логическа диаграма.
3: 8 декодери:
Има и някои по-високи декодери за поръчка, като 3: 8 декодер и 04:16 декодер, който се използва по-често. Тези декодери често се използват в IC пакети за сложност на веригата. Също така е много често да се комбинират декодери от по-нисък ред като декодерите 2: 4, за да се образува декодер от по-висок ред. Например знаем, че декодер 2: 4 има 2 входа (I0 и I1) и 4 изхода (O0 до O3), а декодерът 3: 8 има три входа (I0 до I2) и осем изхода (O0 до O7). Можем да използваме следните формули, за да изчислим броя на декодерите от по-нисък ред (2: 4), необходими за формиране на декодер от по-висок ред като 3: 8 декодер.
Необходим брой декодер от по-нисък ред = m2 / m1 Къде, m2 -> брой изходи за декодер от по-нисък ред m1 -> брой изходи за декодер от по-висок ред
В нашия случай стойността на m1 ще бъде 4, а стойността на m2 ще бъде 8, така че прилагайки тези стойности в горните формули получаваме
Необходим брой декодер 2: 4 за декодер 3: 8 = 8/4 = 2
Сега знаем, че ще ни трябват два декодера 2: 4, за да образуваме декодер 3: 8, но как трябва да бъдат свързани тези два, за да се съберат. Долната блок-схема показва точно това
Както можете да видите входовете A0 и A1 са свързани като паралелни входове и за двата декодера и след това щифтът Enable на първия декодер е направен да действа като A2 (трети вход). Обърнатият сигнал на A2 се подава на щифта Enable на втория декодер, за да се получат изходите Y0 до Y3. Тук изходите Y0 до Y3 са посочени като по-ниски четири minterms, а изходите Y4 до Y7 са посочени като по-високи четири minterms. Minterms от по-нисък ред се получават от втория декодер, а minterms от по-висок ред се получават от първия декодер. Въпреки че един забележим недостатък в този тип комбинационен дизайн е, че декодерът няма да има щифт Enable, което го прави податлив на проблемите, които обсъдихме по-рано.
4:16 Декодер:
Подобно на декодер 3: 8, декодер 4:16 също може да бъде конструиран чрез комбиниране на два декодера 3: 8. За декодер 4: 16 ще имаме четири входа (A0 до A3) и шестнадесет изхода (Y0 до Y15). Докато за декодер 3: 8 ще имаме само три входа (A0 до A2).
Вече използвахме формулите, за да изчислим броя на необходимия декодер, в този случай стойността на m1 ще бъде 8, тъй като декодерът 3: 8 има 8 изхода и стойността на m2 ще бъде 16, тъй като декодерът 4:16 има 16 изхода, така че прилагайки тези стойности в горните формули получаваме
Необходим брой декодер 3: 8 за декодер 4:16 = 16/8 = 2
Следователно ние изискваме два 3: 8 декодера за конструиране на 4:16 декодер, разположението на тези два 3: 8 декодера също ще бъде подобно на това, което направихме по-рано. Блоковата схема за свързване на тези два 3: 8 декодера заедно е показана по-долу.
Тук изходите Y0 до Y7 се считат за по-ниски осем minterms, а изходите от Y8 до Y16 се считат за по-високи осем minterms. Долните десни minterms се създават директно чрез входовете A0, A1 и A2. Същите сигнали се подават и към трите входа на първия декодер, но щифтът Enable на първия декодер се използва като четвърти входен щифт (A3). Обърнатият сигнал на четвъртия вход A3 се подава към разрешаващия щифт на втория декодер. Първият декодер извежда по-високата стойност от осем minterms.
Приложения:
Декодер обикновено се използва в комбинация с енкодер и следователно и двамата споделят едни и същи приложения. Без декодери и енкодери не би било възможно съвременната електроника като мобилен телефон и лаптопи. Малко важни приложения на декодерите са изброени по-долу.
- Приложение на сигнала за последователност
- Приложения за синхронизиране на сигнала
- Мрежови линии
- Елементи на паметта
- Телефонни мрежи