Двоичные кодеры: принцип работы, таблицы истинности и схемы


Кодеры (иногда их еще называют кодировщиками, энкодерами, от англ. encoders), как следует из названия, кодируют большое количество бит информации в меньшее битовое значение. Существует много типов энкодеров в зависимости от количества входов и выходов, а также от того, как они работают. Но у каждого кодировщика есть одно основное правило: количество выходных строк кодировщика всегда будет меньше количества входных строк. Подробнее о кодерах, что такое кодер (энкодер), как и почему они используются в цифровых схемах, мы узнаем в этой статье.

Статья о двоичных кодерах

Основной принцип кодировщика

Давайте представим, что кодер представляет собой черный ящик, как показано ниже, который волшебным образом уменьшает количество входных строк с 4 до всего 2 выходных строк, но при этом предоставляет ту же информацию без каких-либо потерь данных.

Представление двоичного кодера в виде черного ящика

Сначала давайте определим, как будет называться этот кодировщик. Он имеет четыре входа и два выхода, поэтому имя этого кодировщика будет 4:2 Encoder . Если кодировщик имеет количество выходных строк n, то количество входных строк будет равно 2n, в нашем случае количество выходных строк равно двум (n=2), следовательно, количество входных строк должно быть (2 2 = 4) четыре. Четыре входных контакта кодера обозначены от I0 до I3, а два выходных контакта — от O0 до O1.

Итак, как энкодер преобразует четыре сигнала в два, это можно понять, взглянув на таблицу истинности ниже. Также важно знать, что обычный кодер, подобный показанному здесь, имеет правило, согласно которому в данный момент только на одном его входном контакте должен быть высокий уровень, поэтому в следующей таблице истинности только один вход будет иметь высокий уровень в один момент времени.

Таблица истинности двоичного кодера 4:2

Все возможные условия ввода-вывода показаны в приведенной выше таблице истинности. Например, когда только I0 имеет высокий уровень (1), а все остальные входы имеют низкий уровень (0), тогда на обоих выходных контактах будет низкий уровень (0). Аналогично для каждого случая выходные контакты также изменят свое состояние. Используя этот статус выходных битов, пользователь сможет проследить, какой входной сигнал был бы подан на энкодер.

Хорошо, а что такого интересного в преобразовании 4 строк в 2 строки, зачем нам это вообще нужно?

Для понимания мы объяснили кодер 4:2, но существуют и другие кодеры, которые могут принимать большее количество входов и преобразовывать их в меньшее количество выходов, например, кодер 8:3, кодер 16:4 и т. д. Эти типы энкодеров очень полезны, когда нам нужно уменьшить количество контактов, используемых в MCU/MPU, или уменьшить количество проводов, передающих сигнал, в программируемых контроллерах и других системах, где используется массив переключателей или светодиодов. Он также используется для эффективной передачи данных за счет использования проводов меньшего размера. В некоторых приложениях может возникнуть ситуация, когда более чем один вход может иметь высокий уровень (1), в этом случае мы будем использовать так называемый приоритетный кодировщик, который мы обсудим далее в этой статье.

Создание кодировщиков с использованием комбинационных логических схем

Теперь мы знаем, как работает кодировщик и где он используется. Давайте научимся его создавать, используя простые логические элементы. Хотя энкодеры типа 8:3 доступны в виде отдельных микросхем, таких как SN74LS148, важно знать, как они устроены, чтобы мы могли создавать собственные энкодеры для наших проектов на основе требуемой таблицы истинности.

Логическое выражение:

Первым делом при разработке устройства комбинационной логики необходимо найти логическое выражение для таблицы истинности. Это очень просто, и его можно легко определить, просто взглянув на таблицу истинности. Та же таблица истинности, которую мы видели ранее, приведена ниже с некоторыми иллюстрациями, чтобы вы могли лучше понять.

Таблица истинности двоичного кодера 4:2 с выделенными цветом элементами

Количество выражений будет равно количеству выходных строк, здесь у нас есть два выхода и, следовательно, у нас есть два выражения. Для первого выхода O0 просто проверьте, при каком условии он имеет высокий уровень (1), и отследите соответствующий номер входного контакта, который также остается высоким (1). Аналогично для всех высоких значений O0 обратите внимание, какой номер входного контакта является высоким, и добавьте эти контакты. Входные контакты, соответствующие выходному контакту O0, выделены красным выше, а O1 — синим. Таким образом, выражения для O0 и O1 будут следующими:

О1 = I3 + I2

О0 = I3 + I1

Схема энкодера 4:2:

Как только мы получим логическое выражение, нам просто нужно нарисовать его с помощью логических элементов. Здесь, поскольку у нас есть операция сложения (+), мы будем использовать элементы ИЛИ для построения наших схем. Вы также можете упростить или изменить логическое выражение в соответствии с вашими потребностями. Принципиальная схема для приведенного выше выражения показана ниже.

Схема энкодера 4:2

Эта схема может быть легко реализована с использованием микросхемы 7432 OR. Мы собрали ее на макетной плате.

Собранный на макетной плате энкодер 4:2

Четыре входные линии (I0, I1, I2 и I3) обеспечиваются четырьмя кнопками, когда кнопка нажата, она подает +5 В на контакт, что делает его уровень логической 1, а когда кнопка не нажата, контакт удерживается на уровне земли через понижающий резистор 10 кОм, чтобы сделать его логическим нулем. Выходы (O0 и O1) представлены парой красных светодиодов. Если светодиод светится, это означает, что выходная логика равна 1, а если они выключены, это означает, что выходная логика 0. Более подробно посмотреть принцип работы этого кодера вы можете в следующем видео.

Как вы можете видеть, когда нажата первая кнопка, вход I0 становится высоким, и, следовательно, оба выхода остаются низкими. При нажатии второй кнопки вход I1 включается, и, таким образом, один светодиод загорается, указывая, что на O0 высокий уровень. Наконец, когда нажимается четвертая кнопка, на входе I3 устанавливается высокий уровень, и, таким образом, оба светодиода загораются в высоком состоянии. Это очень простая схема, поэтому мы легко построили ее на макете, но для практических энкодеров схема станет немного сложнее. Однако энкодеры также доступны в виде пакетов микросхем, которые можно приобрести, если они подходят вашему проекту.

Кодеры 8:3

Работа и использование кодера 8:3 также аналогичны кодировщику 4:2, за исключением количества входных и выходных контактов. Кодер 8:3 также называется кодировщиком из восьмеричного в двоичный. Блок-схема кодера 8:3 показана на следующем рисунке.

Блок-схема кодера 8:3

Здесь энкодер имеет 8 входов и 3 выхода, опять же, только один вход должен иметь высокий уровень (1) в любой момент времени. Поскольку имеется 8 входов, он называется восьмеричным входом, а поскольку выходов три, его также называют двоичным выходом. Таблица истинности кодировщика показана ниже.

Таблица истинности энкодера 8:3:

Таблица истинности энкодера 8:3

Логическое выражение:

Поскольку у нас есть выходные данные, у нас будет три выражения, как показано ниже.

Логические выражения для энкодера 8:3

Схема энкодера 8:3:

Как только логическое выражение получено, как всегда, мы можем построить схему кодера, используя элементы ИЛИ, как показано на следующем рисунке.

Схема энкодера 8:3 на элементах ИЛИ

В схеме используется микросхема вентиля ИЛИ с 4 входами. Вы также можете упростить логическое выражение, используя другие обычные микросхемы вентиля ИЛИ с двумя входами.

Недостаток обычных энкодеров

Рассмотренные типы кодировщиков имеют следующие основные недостатки:

  • Если ни один из входов не имеет высокого уровня, выход будет равен нулю. Следовательно, всегда следует следить за тем, чтобы хотя бы один бит всегда оставался включенным.
  • Если более чем на одном входе высокий уровень, выходные данные будут свернуты и могут дать результат для любого из входных данных, что приводит к путанице.

Чтобы преодолеть эти трудности, мы используем другой тип кодировщика, называемый приоритетным кодировщиком, который использует дополнительный выход, чтобы определить, действителен ли выход, и когда более чем один вход имеет высокий уровень, рассматривается только тот, который имеет высокий уровень, игнорируя другие входы.

Приоритетный кодер

Давайте проанализируем кодировщик с приоритетом 4:2 в качестве примера, чтобы понять, чем он отличается от обычного кодера и может преодолеть два вышеупомянутых недостатка. Блок-схема приоритетного кодера 4:2 показана на следующем рисунке.

Блок-схема приоритетного кодера 4:2

Кодер с приоритетом 4:2 также имеет 4 входа и 2 выхода, но мы добавим еще один выход под названием V, который обозначает действительный бит. Этот действительный бит проверит, все ли четыре входных контакта имеют низкий уровень (0). Если он низкий, бит также станет низким, указывая, что выходной сигнал недействителен, таким образом, мы можем преодолеть первый недостаток, упомянутый выше.

Таблица истинности приоритетного энкодера 4:2

Следующего недостатка можно избежать, отдав приоритет старшим битам. Кодер будет проверять по старшему биту, и как только он обнаружит первый бит такого высокого уровня (1), он соответствующим образом сгенерирует выходные данные. Поэтому не имеет значения, являются ли другие контакты высокими или низкими. Следовательно, в приведенной ниже таблице истинности при достижении 1 не принимаемые во внимание значения обозначаются знаком «X».

Таблица истинности приоритетного энкодера 4:2

Логическое выражение:

Теперь нам нужно вывести три выражения для O0, O1 и V. Поскольку таблица истинности не имеет значения, нам нужно использовать метод K-map для получения логического выражения. Мы не будем рассказывать о том, как решать задачи с помощью K-карт, поскольку это выходит за рамки данной статьи. Но для представленного случая эта карта показана на следующем рисунке.

Карта приоритетного энкодера 4:2

На приведенных картах левая предназначена для O1, а правая — для O0. Выходные строки обозначаются буквой y, а входные строки — буквой x. Таким образом, составив уравнение соответствующим образом, мы получим следующее.

О1 = I3 + I2

О0 = I2I1' + I3

Аналогично, для действительного бита «V» логическое выражение может быть задано следующим образом:

V = I3 + I2 + I1 + I0

Принципиальная электрическая схема:

Принципиальную схему для этого проекта можно построить с использованием полученных логических выражений.

Схема приоритетного энкодера 4:2

Схема может быть построена с использованием базовых вентилей НЕ, И и ИЛИ. Здесь биты O0 и O1 считаются выходными, а бит V используется для проверки выходных данных. Только если бит V высокий, выход будет учитываться, если значение V низкое (0), выход следует игнорировать, поскольку это подразумевает, что все входные контакты равны нулю.

(Проголосуй первым!)
Загрузка...
57 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *