Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Литература / vorob / VOROB11

.DOC
Скачиваний:
30
Добавлен:
17.04.2013
Размер:
663.04 Кб
Скачать

- 11 -

ШИФРАТОРЫ

Шифратором в цифровой технике называют комбинационный узел, преобразующий один из совокупности входных функционально однотипных однопозиционных кодов в двоичный код.

Примерами таких совокупностей могут служить кнопки у клавиатур и пультов различного назначения; сигналы запросов на прерывание от внешних устройств, взаимодействующих с ЭВМ; угловые положения поворотных переключателей и т. п. Из данного определения следует, что шифратор выполняет микрооперацию обратную микрооперации дешифратора [1]. Если m - число входных однопозиционных кодов, то минимальная разрядность n двоичного кода будет равна ближайшему большему целому от log2m.

Клавиатура является одним из популярных и широко распространенных аппаратных средств для ввода данных в цифровую систему. Рассмотрим для примера структуру шифратора клавиатуры, предназначенной для ввода шестнадцатеричных чисел, и выполненного на логических элементах. Работу шифратора представим таблицей истинности (см. табл. 1), где обозначено: x3, x2, x1, x0 - переменные четырехразрядного двоичного кода с весами соответственно 8, 4, 2, 1 (естественный двоичный код); Z - осведомительный сигнал, который принимает значение 1 при нажатии любой клавиши и значение 0 при всех ненажатых клавишах. Сигнал такого типа принято обозначать специальным термином - сигнал-универсум.

Таблица 1

16-я

цифра

x3

x2

x1

x0

Z

0

0

0

0

0

1

1

0

0

0

1

1

2

0

0

1

0

1

3

0

0

1

1

1

4

0

1

0

0

1

5

0

1

0

1

1

6

0

1

1

0

1

7

0

1

1

1

1

8

1

0

0

0

1

9

1

0

0

1

1

A

1

0

1

0

1

B

1

0

1

1

1

C

1

1

0

0

1

D

1

1

0

1

1

E

1

1

1

0

1

F

1

1

1

1

1

При Z = 1 разрешается принимать для дальнейшей обработки двоичный код нажатой клавиши.

Примечания: 1. Шестнадцатеричные цифры от 0 до 9 - это обычные десятичные числа, а остальные шесть цифр обозначают большими латинскими буквами A, B, C, D, E, F.

2. В общем случае для кодирования может быть применен произвольный двоичный код.

Рис.1.

Допустим, что при нажатии произвольной клавиши в соответствующей цепи формируется сигнал 1, а при ненажатой клавише – сигнал 0 (см. рис. 1, а). Для разряда x3 выходного двоичного кода можно записать выражение

x3 = 8+9+A+B+C+D+E+F, (1)

которое надо понимать следующим образом: в разряде x3 появится 1, если нажимается клавиша либо с цифрой 8, либо – 9, либо – А и т. д.

Аналогично можно записать:

x2 = 4+5+6+7+C+D+E+F (2)

x1 = 2+3+6+7+A+B+E+F (3)

x0 = 1+3+5+7+9+B+D+F (4)

Z = 0+1+...+7+8+9+...+F (5)

Для реализации выражений (1)...(4) потребуется четыре восьмивходовых элемента ИЛИ, а для выражения (5) - один шестнадцативходовый. Пусть из соображений динамики, конструктивных требований или каких-либо других ограничений не допускается использовать логические элементы с числом входов больше восьми. Тогда выражение (5) преобразуем к следующему виду

, (6)

откуда видно, что для реализации сигнала z потребуются два восьмивходовых элемента ИЛИ-НЕ и один двухвходовый элемент И-НЕ. Чтобы не использовать два восьмивходовых элемента: один ИЛИ (см. (1)) и другой ИЛИ-НЕ с теми же переменными (см. (6)), реализуем уравнение (1) в виде

, (7)

тогда достаточно просто добавить инвертор и схема шифратора будет иметь вид, показанный на рис. 1, б. По такой схеме шифратор реализован в виде рМОП ИС КР501ИВ1 и КР501ИВ1П и в основном он используется в специализированных ЭВМ, пультах отладки и т. п. Функциональное обозначение его приведено на рис. 1, в, где CD - coder - аббревиатура, принятая для обозначения шифраторов.

Учитывая возможность простой реализации ФАЛ на механических переключательных элементах [2], попытаемся реализовать в качестве следующего примера шифратор десятичной клавиатуры (см. первые десять строк в табл. 1) без логических элементов или хотя бы с их минимальным количеством.

Предварительно рассмотрим простую схему, приведенную на рис. 2. Примем, что положение переключателей, указанное на рис. 2, соответствует значениям логических переменных x1 = x0 = 0, а выходные функции y1и y2 кодируются в положительной логике, тогда для последних можно записать

Рис.2.

Число переменных двоичного кода, кодирующего десятичные цифры, равно четырем. Запишем для них выражения, начиная с цифры 9 для удобства оформления схемы шифратора.

x3 = 9+8 (10)

x2 = 7+6+5+4 (11)

x1 = 7+6+3+2 (12)

x0 = 9+7+5+3+1 (13)

Поскольку выражение (10) с точностью до замены переменных совпадает с выражением (8), то переменная x3 реализуется так же, как y1 на рис. 2. Переменная x2 реализуется аналогичной схемой, но число последовательно включенных переключателей в ней будет четыре. Переменная x1 также реализуется четырьмя переключателями, причем группа 7+6 может использоваться из схемы, реализующей выражение (11). Анализ выражения (13) показывает, что переменная x0 не может быть реализована так же, как x3, x2 и x1 без применения сдвоенных переключателей. Тогда запишем выражение для инверсного значения переменной x0

Проинвертируем левую и правую части выражения (14) и в правой части применим правило де Моргана, тогда получим

Это выражение по структуре совпадает с формулой (9), следовательно переменную x0 можно реализовать так же, как y2 на рис. 2. Осведомительный сигнал Z для шифратора десятичной клавиатуры реализуем как

Z = (9+7+5+3+1) + (8+6+4+2+0) (16)

Применив к правой части выражения (16) закон двойного отрицания и правило де Моргана, окончательно получим

(17)

Так как в этом выражении правая группа, заключенная в скобки, равна переменной x0, а левая группа также может быть реализована как функция y2 на рис. 2, то для окончательного получения сигнала Z дополнительно потребуется один двухвходовый логический элемент И-НЕ (см. рис. 3).

Рис.3.

Примечание: поскольку верхнее положение переключателей, соответствующих десятичным цифрам 1 и 0 не используется, нет необходимости применять резистор в этой цепи. Эти переключатели вообще могут быть заменены на выключатели, замыкаемые на цепь “Общий”.

Структуры шифраторов, приведенные на рис. 1 и 3, предназначены для обработки зависимых однопозиционных сигналов. Этот термин применительно к шифраторам клавиатуры обозначает, что из всех клавиш должна быть нажата только одна. Другой пример – поворотный переключатель, который может находиться только в одном угловом положении. При нажатии нескольких клавиш на выходе шифратора получается код, соответствующий операции “поразрядное ИЛИ” над кодами отдельных клавиш. Так при нажатии клавиш 5 и 9 (см. рис. 1) на выходе получается двоичный код клавиши D. Такая ситуация в большинстве случаев неприемлема.

Если одновременно действуют несколько активных однопозиционных сигналов, то они называются независимыми. Типичным примером таких сигналов являются сигналы запросов на прерывание от внешних (периферийных) устройств, взаимодействующих с ЭВМ. Для обработки независимых однопозиционных кодов (сигналов) применяют приоритетные шифраторы. Это название связано с тем, что различным одновременно действующим сигналам присваивается приоритет. Например, в большинстве ЭВМ максимальным приоритетом обладает сигнал прерывания “Авария источника питания”. После появления этого сигнала в распоряжении ЭВМ имеются только единицы миллисекунд, в течение которых она должна сохранить важнейшие данные на магнитных носителях или в другой энергонезависимой памяти.

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

1. Схема выделения старшего сигнала плюс обычный шифратор.

2. Приоритетный шифратор как единое целое.

Схема выделения старшего сигнала имеет k входов и k выходов и работает по следующему алгоритму: из нескольких активных входных сигналов на выход этой схемы передается только один активный сигнал, имеющий максимальный приоритет, а все остальные активные сигналы с меньшим приоритетом передаются на выход как неактивные. Выделенный один активный сигнал далее легко может быть преобразован в двоичный код обычным шифратором.

Рассмотрим два примера. Пусть на входе схемы выделения старшего сигнала действуют четыре сигнала - в одном случае активным является уровень 1(см. табл. 2), а в другом – уровень 0 (см. табл.3), где xi – входные сигналы, а yi – выходные.

Таблица 2 Таблица 3

набора

x3

x2

x1

x0

у3

у2

у1

у0

набора

x3

x2

x1

x0

у3

у2

у1

у0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

0

0

0

1

0

0

0

1

1

0

0

0

1

0

1

1

1

2

0

0

1

0

0

0

1

0

2

0

0

1

0

0

1

1

1

3

0

0

1

1

0

0

1

0

3

0

0

1

1

0

1

1

1

4

0

1

0

0

0

1

0

0

4

0

1

0

0

0

1

1

1

5

0

1

0

1

0

1

0

0

5

0

1

0

1

0

1

1

1

6

0

1

1

0

0

1

0

0

6

0

1

1

0

0

1

1

1

7

0

1

1

1

0

1

0

0

7

0

1

1

1

0

1

1

1

8

1

0

0

0

1

0

0

0

8

1

0

0

0

1

0

1

1

9

1

0

0

1

1

0

0

0

9

1

0

0

1

1

0

1

1

10

1

0

1

0

1

0

0

0

10

1

0

1

0

1

0

1

1

11

1

0

1

1

1

0

0

0

11

1

0

1

1

1

0

1

1

12

1

1

0

0

1

0

0

0

12

1

1

0

0

1

1

0

1

13

1

1

0

1

1

0

0

0

13

1

1

0

1

1

1

0

1

14

1

1

1

0

1

0

0

0

14

1

1

1

0

1

1

1

0

15

1

1

1

1

1

0

0

0

15

1

1

1

1

1

1

1

1

Из табл. 2 могут быть получены (например с помощью карт Карно) следующие выражения:

(18)

и, соответственно, из табл. 3:

(19)

Схемы, реализующие уравнения типа (18) и (19), называются дейзи-цепочками и широко используются для аппаратной обработки сигналов запроса на прерывание от периферийных устройств, взаимодействующих с ЭВМ.

Разберем теперь структуру и функционирование приоритетного

шифратора, рассматриваемого как единое целое. Функциональное обозначение таких ИС, обрабатывающих восемь входных сигналов, приведено на рис. 4.

Рис.4.

Прежде всего, отметим, что все входы и выходы этой ИС имеют в качестве активного сигнала низкий уровень, то есть логический нуль. Здесь обозначено:

I0,...I7 - входные сигналы, причем сигнал с большим индексом имеет больший приоритет.

Вход EI (Enable Input - разрешение по входу) при активном уровне 0 разрешает работу ИС, а при неактивном уровне 1 формирует на всех выходах неактивные уровни 1. Этот сигнал служит для наращивания числа обрабатываемых информационных входов.

Выход EO (Enable Output - разрешение по выходу) также служит для наращивания числа обрабатываемых информационных входов, причем выход EO ИС, обрабатывающей сигналы, имеющие больший приоритет, соединяется со входом EI ИС, обрабатывающей сигналы, имеющие меньший приоритет. Если на входы ИС, обрабатывающей сигналы с большим приоритетом, не поступает ни одного активного сигнала, то значение выхода EO устанавливается равным 0 и, тем самым, разрешается обработка входных сигналов с меньшим приоритетом, поступающих на соответствующие ИС. Наличие одного любого активного сигнала на входах ИС, обрабатывающей сигналы с большим приоритетом, автоматически запирает все ИС, обрабатывающие сигналы с меньшим приоритетом.

Соседние файлы в папке vorob