- Основен принцип на кодера:
- Изграждане на енкодери, използващи комбинационни логически проекти
- Кодери 8: 3:
- Недостатък на нормалните кодери:
- Приоритетен кодер:
Кодерите, както подсказва името, кодират по-голям бит информация в по-малка битова стойност. Има много видове енкодери въз основа на броя на входовете и изходите и въз основа на това как работи. Но всеки енкодер има едно основно правило, броят на изходните редове на енкодера винаги ще бъде по-малък от броя на входните редове. В тази статия ще научим повече за енкодерите, какво е енкодер, как и защо се използват в цифрови схеми.
Основен принцип на кодера:
Нека си представим Encoder като черна кутия, както е показано по-долу, която магически намалява броя на входните линии от 4 до само 2 изходни реда, но все пак предоставя същата информация, без загуба на данни.
Първо нека да определим как ще бъде името на този енкодер. Той има четири входа и два изхода, така че името на този енкодер ще бъде 4: 2 енкодер. Ако даден енкодер има „ n “ брой изходни линии, броят на входящите редове ще бъде 2 n, в нашия случай броят на изходните линии е два (n = 2), следователно броят на входните редове трябва да бъде (2 2 = 4) четири, което е точно случаят. Четирите входни щифта са обозначени от I0 до I3, а двата изходни щифта са маркирани от O0 до O1
И така, как енкодерът преобразува четири сигнала в два, може да се разбере, като разгледаме таблицата на истината по-долу. Също така е важно да знаете, че обикновен енкодер като този, показан тук, има правило, че в даден момент само един входен щифт трябва да бъде висок, така че в следващата таблица на истината само един вход ще бъде висок.
Всички възможни условия на входа на изхода са показани в горната таблица на истината. Например, когато само O1 е висок (1) и всички останали входове са ниски (0), тогава и двата изходни щифта ще са ниски (0). По същия начин за всеки случай изходните щифтове също ще променят състоянието си. Чрез използването на това състояние на изходните битове потребителят ще може да проследи обратно до това какъв входен сигнал би бил даден на кодера.
Добре, какво е фантастичното в преобразуването на 4 реда в 2 реда, защо изобщо се нуждаем от него?
За целите на разбирането сме обяснили 4: 2 енкодер, но има и други енкодери, които могат да вземат по-голям брой входове и да ги преобразуват в по-малък брой изходи като 8: 3 енкодер, 16: 4 енкодер и т.н. на Encoder са много полезни, когато трябва да намалим броя на щифтовете, използвани на MCU / MPU или да намалим броя на проводниците за подаване на сигнал в PLC и други системи, където има масив от превключвател или LED. Също така се използва за ефективно предаване на данни, като се използват по-малки проводници. В някои приложения може да имаме ситуация, при която повече от един вход може да бъде висок (1), в този случай ще използваме нещо, наречено приоритетен кодер, което ще обсъдим по-нататък в тази статия.
Изграждане на енкодери, използващи комбинационни логически проекти
Сега, когато знаем как работи енкодерът и къде се използва. Нека се научим как да го изградим с помощта на прости логически порти. Въпреки че кодери като 8: 3 се предлагат като чисти единични интегрални схеми като SN74LS148, важно е да знаем как са изградени, за да можем да направим персонализирани кодери за нашите проекти въз основа на необходимата таблица на истината.
Булев израз:
Първото при проектирането на устройството Combinational Logic е намирането на Boolean Expression за таблицата на истината. Това е много лесно и може лесно да се определи само като се погледне таблицата на истината. Същата таблица на истината, която видяхме по-рано, е дадена по-долу с някои илюстрации, за да ви накара да разберете по-добре.
Броят на изразите ще бъде равен на броя на изходните редове, тук имаме два изхода и следователно имаме два израза. За първия изход O0 просто проверете при кое състояние той е висок (1) и проследете съответния номер на входния пин, който също остава висок (1). По същия начин за всички високи стойности на O0 отбележете кой номер на входния пин е висок и добавете щифтовете. Входните щифтове, съответстващи на изходния щифт O0, са маркирани в червено по-горе, а за O1 са осветени в синьо. Така че изразът за O0 и O1 ще бъде
O 1 = I 3 + I 2 O 0 = I 3 + I 1
4: 2 схема на енкодера:
След като получим булевия израз, просто трябва да го нарисуваме под формата на Gates. Тук, тъй като имаме операция за събиране (+), ще използваме ИЛИ портите за изграждане на нашите вериги. Можете също така да опростите или модифицирате булевия израз според вашите нужди. Схемата на схемата за горния израз е показана по-долу
Веригата може лесно да бъде изградена с помощта на IC 7432 OR gate. Изградих схемата си на енкодер върху макет, както е показано по-долу
Четирите входни линии (I0, I1, I2 и I3) се осигуряват от четирите бутона, когато бутонът е натиснат, той свързва + 5V към щифта, което го прави логичен 1 и когато бутонът не е натиснат, щифтът се държи на земята през 10k издърпващ резистор, за да стане логически нула. Изходите (O0 и O1) са представени с помощта на чифт червени светодиоди. Ако светодиодът свети, това означава, че изходната логика е 1 и ако те са изключени, това означава, че изходната логика 0. Пълната работа на веригата на кодера е показана във видеото по-долу
Както можете да видите при натискане на първия бутон, входът I0 се прави висок и следователно и двата изхода остават ниски. Когато се натисне вторият бутон, входът I1 се включва и по този начин един светодиод отива високо, за да покаже, че O0 е висок. Накрая, когато се натисне четвъртият бутон, входът I3 се прави високо и по този начин и двата светодиода се издигат високо. Това е много проста схема, следователно ние я изградихме лесно на макет, но за практичните енкодери схемата ще стане малко по-сложна. Енкодерите обаче се предлагат и като IC пакети, които могат да бъдат закупени, ако отговаря на вашия проект.
Кодери 8: 3:
Работата и използването на кодер 8: 3 също е подобно на кодера 4: 2, с изключение на броя на входните и изходните щифтове. Енкодерът 8: 3 се нарича още осмичен към двоичен енкодер, блок-схемата на кодер 8: 3 е показана по-долу
Тук енкодерът има 8 входа и 3 изхода, отново само един вход трябва да бъде висок (1) във всеки един момент. Тъй като има 8 входа, той се нарича осмичен вход и тъй като има три изхода, той също се нарича двоичен изход. Таблицата на истината на кодера е показана по-долу.
Таблица за истината на кодера 8: 3:
Булев израз:
Тъй като имаме изходите от теб, ще имаме три израза, както е показано по-долу
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 схема на енкодера:
След като се получи булевия израз, както винаги, можем да изградим схемата на веригата, използвайки ИЛИ портите, както е показано по-долу.
Схемата използва IC с 4 входа ИЛИ порта, можете също да опростите Boolean Expression, за да използвате други нормални IC 2 на Gate.
Недостатък на нормалните кодери:
Тези видове енкодери страдат от следните основни недостатъци
- Когато никой от входните данни не е висок, изходът ще бъде равен на нула, но това условие също противоречи на първия бит е висок (MSB). Следователно винаги трябва да се внимава поне всеки един бит да остане ВКЛЮЧЕН винаги
- Когато повече от един вход е висок, изходът ще бъде свит и може да даде резултат за всеки един от входа, което води до объркване.
За да се преодолеят тези трудности, ние използваме различен тип енкодер, наречен приоритетен енкодер, който използва допълнителен изход, за да определи дали изходът е валиден и когато повече от един вход е висок, този, който отива високо от LSD, се разглежда сам пренебрегвайки останалите входове.
Приоритетен кодер:
Нека анализираме 4: 2 приоритетен кодер като пример, за да разберем как се различава от нормалния кодер и може да преодолее гореспоменатите два недостатъка. Блоковата схема на приоритетен кодер 4: 2 е показана по-долу
Кодер с приоритет 4: 2 също има 4 входа и 2 изхода, но ние ще добавим друг изход, наречен V, който означава валиден бит. Този валиден бит ще провери дали всичките четири входни щифта са ниски (0), ако ниските битът също ще се направи нисък, заявявайки, че изходът не е валиден, така че можем да преодолеем първия недостатък, споменат по-горе.
Таблица на истината за приоритетния кодер 4: 2:
Следващият недостатък може да се избегне, като се даде приоритет на битовете на MSB, кодерът ще провери от MSB и след като намери първия бит толкова висок (1), ще генерира съответно изхода. Така че няма значение дали другите щифтове са високи или ниски. Следователно в таблицата на истината по-долу, след като се достигне 1, стойностите, които не се интересуват, са представени с „X“.
Булев израз:
Сега трябва да изведем три израза, които са за O0, O1 и V. Тъй като таблицата на истината не се интересува от елементи, трябва да използваме метода K-map, за да извлечем булевия израз за това. Няма да разглеждаме как да решим с K-карти, тъй като това е извън обхвата на тази статия. Но картата е показана по-долу, за да можете да се намесите и да научите сами.
В горните карти левият е за O1, а десният е за O0. Изходните редове се споменават с y, а входните редове - x. Така че, подреждайки уравнението съответно, ще получим следното.
O 1 = I 3 + I 2 O 0 = I 2 I 1 '+ I 3
По подобен начин за валидния бит „V“ булевият израз може да бъде даден като
V = I 3 + I 2 + I 1 + I 0
Електрическа схема:
Схемата на веригата за този проект може да бъде изградена с помощта на булеви изрази.
Веригата може да бъде изградена с помощта на основните врати NOT, AND и OR. Тук битовете O0 и O1 се считат за изходи, докато битът V се използва за валидиране на изхода. Само ако битът V е висок, изходът ще се счита, ако стойността на V е ниска (0), изходът трябва да се игнорира, тъй като предполага, че всички входни щифтове са нула.