Дешифраторы

Дешифратор, или декодер (англ. - Decoder, сокращенно -DC), выполняет обратную по отношению к шифрованию операцию, т.е. преобразует двоичный код в десятичный. Входы дешифратора служат для подачи двоичных чисел, а выходы последовательно нумеруются десятичными числами. При подаче на входы двоичного числа выходной сигнал появляется на выходе, который имеет номер соответствующего десятичного числа.

Существует два типа дешифраторов: логические дешифраторы и дисплейные дешифраторы/формирователи. Логические дешифраторы представляют собой схемы средней интеграции (микросхемы, имеющие в своем составе до 100 ЛЭ), управляемые адресом. Они выбирают и приводят в активное состояние конкретный выход, определяемый адресом. Дешифраторы применяются в структурах выборки адреса запоминающих устройств, разуплотнения маршрутизации данных и т.п.

Таблица преобразования для дешифратора получается из предыдущей (шифратора), если в ней поменять местами функцию и аргумент. Тогда таблица декодирования примет следующий вид.

Таблица 2 Соответствие между Хк и YK

Двоичный код Позиционный код
Х2 Х1 Х0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
                       
                       
                       
                       
                       
                       
                       
                       
                         

Как следует из данной таблицы, соответствующий выход позиционного кода для 1: (X2)'(Xi)'X0, для 2: (Х2)'Х1(Хо)',... для 7: X 2Х 1X0. Примем Х0=А, X1=В и X2=С и построим соответствующий задатчик двоичных чисел на ключах, снабдив его индикацией каждого двоичного разряда (смотри рисунок 18).

Возьмем семь БЛЭ DDO-DD7 (номер элемента соответствует десятичной цифре позиционного кода), три инвертора DD8-DD10 и проведем соединения в соответствии с логикой преобразования (смотри рисунок 18). Для проверки работоспособности полученной схемы на выходах расположены индикаторы.

Входные и выходные сигналы на рисунке 18 интерпретируются следующим образом. При С=1, В=1 и А=0, т.е. при сигнале на входе (110)2, сигнал на выходе соответствует 610, что и соответствует операции декодирования.

 
 
Рисунок- 18 Логическая структура дешифратора (EWB)

Далее полученный дешифратор оформим в виде субблока DC1. В программе EWB имеется специальный инструментарий для выделения функциональных блоков из больших схем, но его можно также использовать для создания дополнительной библиотеки цифровых узлов. Проведем построение субблока дешифратора по схеме на рисунке 18. Прежде всего, путем простого растяжения выделенных частей, придадим схеме такой вид, чтобы окончательно внутрь выделяющей рамки входил только полусумматор (смотри рисунок 19,а). Это и будет субблок (субцепь, подсхема, подцепь). Проводники, пересекающие контур субблока, впоследствии образуют его выводы, поэтому их число и расположение надо строго контролировать. После выделения субблока, пока его элементы имеют активный красный цвет, входим в меню Circuit (цепь) и выбираем Create Subcircuit (создание субцепи). В появившемся меню Subcircuit (смотри рисунок 19,б) впечатываем в строке Name название, например DC1, и выбираем Сору from Circuit (копирование из цепи). На рабочем поле появится дополнительное окно с развернутой схемой субблока (рисунок 19,в).

 
а) б)
 
Рисунок-19 Создание субблока дешифратора (начало)

в)

 
г) д) е)
 
Рисунок-19 Создание субблока дешифратора (конец)

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

Совет

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

Для выбора схемного изображения субблока в свернутом виде, надо нажать в ряду выбора компонентов на иконку Favorites (избранные) В результате получим иконку с изображением субблоков (смотри рисунок 19,г) и возможность дальнейшего выбора Choose SUB (смотри рисунок 19,д). Нажав в последнем окне ЛКМ Accept (согласиться), получим искомое схемное изображение субблока в свернутом виде (рисунок 19, е). К «внутреннему содержанию» субблока всегда можно вернуться двойным щелчком ЛКМ по его схемному изображению.

Попутно отметим, что библиотеку раздела Favorites можно доукомплектовать уже существующими и наиболее часто используемыми компонентами, нажав на соответствующую иконку ПКМ и выбрав опцию Add to favorites (добавить к избранным). Создание такой специализированной пользовательской панели для конкретной схемы иногда бывает удобно. Для использования полученного субблока в новом окне, необходимо скопировать схемное изображение субблока в свернутом виде (рисунок 19, е) в буфер обмена. Открыв новое окно (New) и нажав на иконку Favorites увидим, что внутри нет никаких элементов. Нажмем ЛКМ Past: на экране возникнет схемное изображение субблока, а в открытом окошке - Favorites иконка для его выбора (как ранее на рисунке 19, г).

Преобразователь кода для семисегментного индикатора

Дешифраторы и дисплейные дешифраторы/формирователи формируют цифровые коды для 7-сегментного индикатора, и затем обеспечивают передачу кода на формирователь или непосредственно на дисплей. В семисегментном индикаторе десятичных цифр каждый сегмент YK, где к = 1...7, представляет собой отдельный светоизлучающий элемент (используется также буквенная идентификация сегментов, соответственно от а до д). Светящееся изображение цифр или знаков получается при подаче напряжения на определенные сегменты.

 
Рисунок- 20 Семисегментный индикатор: – EWB

Cхему соберем в программе EWB (рисунок 20), в которой семисегментный индикатор (по-английски - Seven-Segment Display), выбирается в панели компонентов Indicators по его пиктограмме

Как следует из вышеописанного, преобразователь входного двоичного кода Хк3, Х2, xl X0) в выходной код управления семисегментным индикатором YK должен удовлетворять ТИ, представленной ниже в таблице 3 для положительной логики.

Здесь числа от 10 до 15 представлены начальными заглавными буквами латинского алфавита соответственно от А до F, так как это принято в шестнадцатеричном коде. Кодировка отдельных чисел в преобразователях кода конкретных микросхем может быть и иной. Если индикатор работает при активном низком уровне (в отрицательной логике), то правая часть ТИ (YK) Должна быть инвертирована.

Таблица 3 Соответствие между Хк и YK

Хk Yk  
a b c d e f g
Х3 Х2 Х1 Х0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
A                      
B                      
C                      
D                      
E                      
F                      
                         

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

Первая часть задачи была только что решена: ее выполняет дешифратор. При решении второй части задачи обратим внимание на то, что ТИ имеет в выходных переменных гораздо меньше нулей, чем единиц. В этом случае будет рациональнее составлять логическую функцию воспользовавшись операцией дизъюнкции. Поскольку схемный семисегментный индикатор зажигается при высоком потенциале, то полученную функцию надо инвертировать. В результате мы приходим к выводу, что надо использовать БЛЭ Пирса, т.е. NOR. Таких элементов нам потребуется столько, сколько сегментов на индикаторе, т. е. семь. Обозначим их малыми латинскими буквами от а до g, которыми обозначены сегменты. Количество входов каждого элемента равно числу нулей в соответствующем выходном столбце (смотри таблицу 3). Для а - 3, для b - 2 и т.д. Наибольшее число входов - 6 - имеет элемент е. На входе с вообще один 0, значит там можно обойтись инвертором, но, имея в виду дальнейшую микросхемную реализацию, этот инвертор образуем из двухвходового ЛЭ NOR. Используя ранее выполненный задатчик двоичного кода и дешифратор, проведем сборку схемы, руководствуясь ТИ. На выходе устройства подключим семисегментный индикатор. В результате получим схему, показанную на рисунке 21,а.

Часть этой схемы, содержащую преобразователь позиционного кода в код семисегментного индикатора, также оформим в виде отдельного субблока, присвоив ему метку DC2 (рисунок 21,б) Построим схему с дешифраторами DC1 и DC2 (рис. 22).

В программе EWB подобное устройство имеется в готовом виде, но оно уже как бы «зашито» внутрь виртуального семисегментного индикатора. В этом случае последний имеет четыре входа, а не семь. Дополнительный четвертый вход (по сравнению с тремя рассмотренными) дает еще один разряд для входного двоичного кода. В результате на выходе можно получить максимальное число не 7, а - 15 (F). Данное устройство, названное в программе Decoded Seven-Segment Display (декодирующий семисегментный индикатор), находится в панели индикаторов и выбирается по его пиктограмме . Дополнив задатчик двоичного кода еще одним разрядом (D) и подключив его на вход индикатора, убеждаемся в работоспособности схемы

а)
Рисунок- 21 (начало)
б)
Рисунок- 21(окончание) Дешифратор позиционного кода в код семисегментного
 
 
Рисунок- 22. Дешифратор двоичного кода в код семисегментного индикатора

Подготовка отчёта: отчёт должен содержать:

1. Цели, задачи лабораторной работы.

2. Описание средств.

3. Функциональные схемы подключения исследуемых элементов

4. Таблицы истинности, полученных при исследовании устройств (если они есть)

5. Выводы

6. Ответы на контрольные вопросы

Контрольные вопросы:

1. Объясните принцип работы дешифратора

2. Чему равно количество входов и выходов дешифратора

3. Изобразите условное обозначение шифратора и дешифратора

4. Объясните причины возникновения гонок в комбинационных устройствах.

5. Синтезируйте схему преобразователя кода для 9 и 13 сегментных индикаторов.

6. Можно ли построить полный дешифратор на элементах базиса ИЛИ-НЕ? Составьте аналитическое выражение (функции), описывающее работу дешифратора в базисе И-НЕ.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: