- Базовый принцип декодера:
- Недостатки стандартных декодеров:
- Приоритетный декодер:
- 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, но здесь мы используем логику AND вместо логики OR. Логические выражения для всех четырех строк приведены ниже, где символ (.) Представляет логику И, а символ (') представляет логику НЕ.
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 и 7408 для элемента AND. Два входа I0 и I1 подключаются к кнопке, а выход контролируется светодиодами. После подключения на макетной плате это будет выглядеть примерно так, как на картинке ниже.
Плата питается от внешнего источника + 5 В, который, в свою очередь, питает IC затвора через контакты Vcc (контакт 14) и заземления (контакт 7). Входной сигнал задается кнопками, когда он нажат, это логическая 1, а когда он не нажат, он дает логический 0, понижающий резистор номиналом 1 кОм также добавляется вдоль входных линий для предотвращения плавающего состояния контактов. Выходные линии (от O0 до O3) проходят через эти красные светодиоды, если они светятся, это логическая 1, иначе это логический 0. Полная работа этой схемы декодера показана на видео ниже.
Обратите внимание, что таблица истинности для каждого входа отображается в верхнем левом углу, и светодиод также светится таким же упорядоченным образом. Точно так же мы можем создать комбинационную логическую схему для всех типов декодеров и построить их на подобном оборудовании. Вы также можете изучить доступные микросхемы декодера, если ваш проект их устраивает.
Недостатки стандартных декодеров:
Как и кодировщик, стандартный декодер также страдает той же проблемой: если оба входа не подключены (логика X), выход не останется равным нулю. Вместо этого декодер будет рассматривать его как логический 0, и бит O0 будет установлен в высокий уровень.
Приоритетный декодер:
Таким образом, мы используем приоритетный декодер для решения этой проблемы, этот тип декодера имеет дополнительный входной вывод, помеченный как «E» (Enable), который будет соединен с действующим выводом приоритетного декодера. Блок - схема для приоритетного декодер показан ниже.
Таблица истинности для приоритетного кодировщика также показана ниже, здесь X означает отсутствие соединения, «1» - высокий логический уровень, а «0» - низкий логический уровень. Обратите внимание, что бит разрешения равен 0, когда на входных линиях нет соединения, и, следовательно, выходные линии также останутся нулевыми. Таким образом, мы сможем преодолеть указанный выше недостаток.
Как всегда, из таблицы истинности мы можем получить логическое выражение для выходных строк от O0 до O3. Логическое выражение для приведенной выше таблицы истинности показано ниже. Если вы присмотритесь, то заметите, что выражение такое же, как и в обычном декодере 2: 4, но бит включения (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 Decoder и 4: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 называются четырьмя нижними терминами, а выходы Y4-Y7 называются четырьмя старшими терминами. Минтермы низшего порядка получают из второго декодера, а минтермы более высокого порядка получают из первого декодера. Хотя один заметный недостаток в этом типе комбинационного дизайна заключается в том, что у декодера не будет вывода включения, что делает его уязвимым для проблем, которые мы обсуждали ранее.
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
Следовательно, для построения декодера 4:16 нам потребуется два декодера 3: 8, расположение этих двух декодеров 3: 8 также будет похоже на то, что мы делали ранее. Блок-схема для соединения этих двух декодеров 3: 8 вместе показана ниже.
Здесь выходы от Y0 до Y7 рассматриваются как восемь нижних терминов, а выходы с Y8 по Y16 считаются как восемь нижних терминов. Нижние правые минтермы создаются напрямую с использованием входов A0, A1 и A2. Те же сигналы также поступают на три входа первого декодера, но вывод включения первого декодера используется как четвертый входной вывод (A3). Инвертированный сигнал четвертого входа A3 подается на разрешающий вывод второго декодера. Первый декодер выводит старшее восьмизначное значение.
Приложения:
Декодер обычно используется в сочетании с кодировщиком, и, следовательно, они оба используют одни и те же приложения. Без декодеров и кодеров современная электроника, такая как мобильные телефоны и ноутбуки, была бы невозможна. Ниже перечислены несколько важных приложений декодеров.
- Применение сигнала секвенирования
- Приложения сигналов времени
- Сетевые линии
- Элементы памяти
- Телефонные сети