Шифраторы
2.2. Шифраторы
Частным случаем преобразователя кодов является шифратор — устройство, обеспечивающее выдачу определенного кода в ответ на возбуждение одного из входов. Шифраторы широко используются для преобразования десятичных цифр и буквенных символов в двоичный код при вводе информации в ЭВМ и другие цифровые устройства.
При возбуждении одного из входов шифратора на его выходе формируется двоичный код номера возбужденной входной линии. Полный двоичный шифратор имеет 2n входов и n выходов.
Рассмотрим пример построения шифратора для преобразования десятичных чисел в двоичный код 8421 согласно табл. 5.4. Входными являются двоичные переменные х0, ... , .x9, которые формируются при нажатии соответствующей клавиши устройства ввода.
Таблица 5.4
Десятичное число | Входной код X0 X1 X2, X3, X4 X5 X6, X7 X8 X9 | Код 8421 : Y3,Y2,Y1,Y0 |
Рекомендуемые материалыFREE Маран Программная инженерия Техническое задание 12 Вариант ДЗ №2 , выполнено в Word и MathCad “РАСЧЕТ РАЗВЕТВЛЕННОЙ ЭЛЕКТРИЧЕСКОЙ ЦЕПИ ПЕРЕМЕННОГО ТОКА”, проверено 2020г Сборка В 212 Компьютерные сети (ИДДО 92, 120, 129). Контрольная работа Типовой расчет по теории вероятностей 9 вариант(12задач) * 0 1 2 3 4 5 6 7 8 9 | 0000000000 0000000001 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1000000000 | 0000 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 |
Переменные являются независимыми и позволяют построить 210= 1024 входных комбинаций, но если налагается ограничение, запрещающее нажатие двух и более клавиш, то из 1042 остается 11 допустимых входных комбинаций. Соответствующий данному ограничению входной код называют кодом «1 из и» или унитарным. В табл. 5.4 нажатой клавише соответствует «логическая 1», а ненажатой — «логический 0». Две первых входных комбинации порождают один и тот же двоичный код 0000. Отличие между ними состоит в том, что при нажатии клавиши «О», как и при вводе других цифр, в устройстве должна формироваться команда ввода и запоминания очередной десятичной цифры. Как видно из табл. 5.4, двоичная переменная yо принимает значение «1», если «1» появляется на входе x1или на входе x3, или x5, или x7, или x9. При всех остальных входных комбинациях у0= О, т. е. в терминах алгебры логики:
Аналогично запишем для других выходов:
В соответствии с приведенными равенствами (5.4) шифратор можно реализовать в базисе ИЛИ либо И – НЕ (рис. 5.5,а, б) .
Рис. 5.'а
Такие шифраторы относятся к преобразователям кода «1 из N» в двоичный код 8421. Часто ограничение на количество нажимаемых клавиш оказывается неприемлемым и требуется построить шифратор так, чтобы он при одновременном нажатии нескольких клавиш реагировал только на самый старший (или младший) из них. Другая задача, часто решаемая при работе на ЭВМ и в других устройствах, связана с определением приоритетного претендента на пользование каким-либо ресурсом. Несколько конкурентов выставляют свои запросы на обслуживание, которые не могут быть удовлетворены одновременно. Нужно выбрать того, кому предоставляется право первоочередного обслуживания. Простейший вариант решения указанной задачи — присвоение каждому источнику запросов фиксированного приоритета. Например, группа из восьми запросов R7.-R0 (R от английского Request) формируется так, что высший приоритет имеет источник номер семь, а далее приоритет уменьшается от номера к номеру. Самый младший приоритет у нулевого источника — он будет обслуживаться только при отсутствии всех других запросов. Если имеются одновременно несколько запросов, обслуживается запрос с наибольшим номером. Преобразователи кода данного вида называют приоритетными шифраторами.
Приоритетный шифратор вырабатывает на выходе двоичный номер старшего запроса или старшей клавиши.
Они реализуют преобразование кода «X из N» в код 8421.
В таблице соответствия для приоритетного шифратора, в котором входная переменная с максимальным номером имеет максимальный приоритет (табл. 5.5), значения входных переменных справа от диагонали из~«1-ц» не должны определять выходной код.
Таблица 5.5
Десятичное число | ||
* 0 1 2 3 4 5 6 7 8 9 | 0000000000 0000000001 0 01* 0 01** 0 01* * 0 01* * 0 01* * 0 01* * 0 0 1* * 01* * 1********* | 0000 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 |
Приоритетный шифратор можно построить на основе простейшего шифратора, преобразующего согласно выражениям (5.4) код «1 из 10» в код 8421, если предварительно преобразовать входной код «X из 10» в код«1 из 10». Обозначим выходные переменные преобразователя «1 из 10» через X0, ..., X1. Входная переменная f9 имеет максимальный приоритет, поэтому не зависит от других входных переменных: x9 = f9 Любая другая выходная переменная xi принимает значение «1», если fi = 1 при условии, что ни на один из «старших» входов fj (j = i+1÷ 9) не подана «логическая 1», т. е.
Люди также интересуются этой лекцией: 4.3. Внутренние миграции и расселение населения России в XIX в.
(5.5)
Схема (рис. 5.6) реализует преобразование (5.5). Ее достоинством является равномерная задержка распространения сигналов по всем входам, а недостатком — необходимость применения многовходовых схем ИЛИ—НЕ
Рис. 5.6
Для получения схемы приоритетного шифратора достаточно выходы х9, ..., х0 преобразователя «X из 10» в «1 из 10» подключить к соответствующим входам преобразователя кода «1 из 10» в код 8421.
Легко видеть, что при наличии всего одного возбужденного входа приоритетный шифратор работает так же, как и двоичный.