- Основний принцип роботи кодера:
- Створення кодерів за допомогою комбінованих логічних конструкцій
- Кодери 8: 3:
- Недолік звичайних кодерів:
- Пріоритетний кодер:
Кодери, як випливає з назви, кодує більший біт інформації в менше бітове значення. Існує багато типів кодерів, заснованих на кількості входів і виходів та на основі того, як він працює. Але кожен кодер має одне основне правило, кількість вихідних рядків на кодері завжди буде менше, ніж кількість вхідних рядків. У цій статті ми дізнаємося більше про кодери, що таке кодер, як і чому вони використовуються в цифрових схемах.
Основний принцип роботи кодера:
Давайте уявимо собі, що енкодер - це чорний ящик, як показано нижче, який магічно зменшує кількість вхідних рядків з 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 тощо. Енкодера дуже корисні, коли нам доводиться зменшувати кількість висновків, що використовуються на MCU / MPU, або зменшувати кількість проводів, що несуть сигнал, в PLC та інших системах, де є масив комутаторів або світлодіодів. Він також використовується для ефективної передачі даних, використовуючи менші дроти. У деяких додатках ми можемо мати ситуацію, коли більше ніж один вхід може бути високим (1), у цьому випадку ми будемо називати пріоритетний кодер, про що ми поговоримо далі в цій статті.
Створення кодерів за допомогою комбінованих логічних конструкцій
Тепер, коли ми знаємо, як працює енкодер і де він використовується. Давайте навчимося будувати його за допомогою простих логічних входів. Незважаючи на те, що кодери типу 8: 3 доступні як акуратні єдині пакувальні мікросхеми, такі як SN74LS148, важливо знати, як вони побудовані, щоб ми могли створювати власні кодери для наших проектів на основі необхідної таблиці істинності.
Логічний вираз:
Першим у розробці пристрою Combinational Logic є пошук логічного виразу для таблиці істинності. Це дуже легко, і його легко визначити, просто подивившись таблицю правди. Та сама таблиця правди, яку ми бачили раніше, подана нижче з деякими ілюстраціями, щоб ви краще розуміли.
Кількість виразів буде дорівнює кількості вихідних рядків, тут ми маємо два виходи, а отже, маємо два вирази. Для першого вихідного сигналу O0 просто перевірте, в якому стані він високий (1), і простежте відповідний номер вхідного виводу, який також залишається високим (1). Аналогічно для всіх високих значень O0 зауважте, який номер вхідного виводу є високим, і додайте шпильки. Вхідні штифти, що відповідають вихідному штифту O0, виділені червоним вище, а для O1 - синім. Тож вираз для O0 та O1 буде
O 1 = I 3 + I 2 O 0 = I 3 + I 1
Електрична схема кодера 4: 2:
Отримавши булевий вираз, нам просто потрібно намалювати його у формі Гейтса. Оскільки ми маємо операцію додавання (+), ми будемо використовувати ворота АБО для побудови наших ланцюгів. Ви також можете спростити або змінити булевий вираз відповідно до своїх потреб. Принципова схема для наведеного виразу наведена нижче
Схема може бути легко побудована за допомогою мікросхеми 7432 АБО. Я побудував свою схему кодування на макетній панелі, як показано нижче
Чотири вхідні лінії (I0, I1, I2 та I3) забезпечуються чотирма кнопками, коли кнопка натискається, вона прив'язує + 5 В до штифта, що робить його логічним 1, а коли кнопка не натискається, штифт утримується на землі через 10k висунутий резистор, щоб зробити його логічним нулем. Виходи (O0 та O1) представлені за допомогою пари червоних світлодіодів. Якщо світлодіод світиться, це означає, що вихідна логіка дорівнює 1, а якщо вони вимкнені, це означає, що вихідна логіка 0. Повна робота схеми кодера показана на відео нижче
Як бачите, при натисканні першої кнопки вхід I0 робиться високим, а отже обидва виходи залишаються низькими. При натисканні другої кнопки вхід I1 вмикається, і таким чином один світлодіод світиться високо, щоб вказати, що O0 високий. Нарешті, коли натискається четверта кнопка, вхід I3 робиться високим, і, отже, обидва світлодіода падають високо. Це дуже проста схема, отже, ми легко побудували її на макетній панелі, але для практичних кодерів схема стане дещо складнішою. Однак кодери також доступні у вигляді пакетів ІС, які можна придбати, якщо це відповідає вашому проекту.
Кодери 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:
Як тільки булевий вираз отримано, як завжди, ми можемо побудувати схему, використовуючи ворота АБО, як показано нижче.
Схема використовує 4-вхідну АБО ІЛИ затвора, ви також можете спростити логічний вираз, щоб використовувати інші звичайні 2-х вхідні ІС.
Недолік звичайних кодерів:
Ці типи кодерів страждають від наступних основних недоліків
- Коли жоден з вхідних даних не є високим, вихідний результат буде рівним нулю, але ці умови також суперечать тому, що перший біт є високим (MSB). Тому завжди слід подбати про те, щоб принаймні будь-який біт залишався увімкненим завжди
- Коли більше одного входу є високим, вихід буде згорнутий і може дати результат для будь-якого з входів, що призводить до плутанини.
Для подолання цих труднощів ми використовуємо інший тип кодера, який називається пріоритетним кодером, який використовує додатковий вихід, щоб визначити, чи правильний вихід, і коли більше, ніж один вхід, допомагає високим, той, який йде високо, починаючи з LSD, розглядається самостійно ігноруючи інші входи.
Пріоритетний кодер:
Давайте проаналізуємо пріоритетний кодер 4: 2 як приклад, щоб зрозуміти, чим він відрізняється від звичайного кодера, і він може подолати згадані два недоліки. Структурна схема пріоритетного кодера 4: 2 показана нижче
Пріоритетний кодер 4: 2 також має 4 входи та 2 виходи, але ми додамо ще один вихід, який називається V, що означає дійсний біт. Цей дійсний біт перевірить, чи всі чотири вхідні штифти низькі (0), якщо низький біт також зробить себе низьким, заявляючи, що вихід не є дійсним, таким чином ми можемо подолати перший недолік, згаданий вище.
Таблиця правдивості кодування 4: 2:
Наступного недоліку можна уникнути, надаючи пріоритет бітам MSB, кодер перевірятиме від MSB, і як тільки він знайде перший біт, що високий (1), він відповідно генерує вихід. Тому не має значення, інші шпильки високі чи низькі. Отже, у таблиці істини нижче, коли досягається 1, значення «не хвилює» представлені «Х».
Логічний вираз:
Тепер ми повинні вивести три вирази, які стосуються 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), вихідний результат слід ігнорувати, оскільки це означає, що всі вхідні висновки дорівнюють нулю.