Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_lektsy.doc
Скачиваний:
63
Добавлен:
12.11.2019
Размер:
1.95 Mб
Скачать

Тема 7. Преобразователи кодов.

7-1. Использование ПЗУ в качестве преобразователя кодов, преобразователи двоично-десятичных кодов.

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

В случае, когда выходные переменные определяются приблизительно 2n состояниями входных переменных, где n – количество входных переменных (т.е. выходные переменные являются полностью определенными), а также, если минимизация ФАЛ не обеспечивает получения требуемой длины МДНФ или МКНФ, то в качестве элементной базы КЦУ может быть использовано постоянное запоминающее устройство. Использование ПЗУ в качестве КЦУ позволяет сократить процесс проектирования, поскольку в этом случае достаточно знать только таблицу истинности комбинационного устройства, которую рассматривают как таблицу программирования ПЗУ. Входным переменным X0 - Xn-1 КЦУ соответствуют входные адреса A0 - An-1 ПЗУ, а выходным переменным Y0 - Ym-1 КЦУ – выходные данные D0Dm-1 ПЗУ. Поскольку осуществляется программирование ПЗУ сразу на основании таблицы истинности, то нет необходимости нахождения структуры КЦУ и ее минимального вида. Кроме того, поскольку реальная структура из базовых логических элементов при использовании ПЗУ отсутствует вовсе, то повышается быстродействие КЦУ на базе ПЗУ, которое сводится к времени выборки tв данных из микросхемы постоянной памяти.

По причине большого количества разновидностей кодов, существует множество различных типов преобразователей кодов. Рассмотрим примеры некоторых типовых преобразователей кодов. Преобразование чисел, представленных в двоично-десятичной системе счисления, в двоичные числа и обратно выполняют преобразователи двоично-десятичных кодов. Соответствие двоичных и двоично-десятичных кодов для первых двадцати десятичных чисел задается таблицей 1.1 из первой темы. Очевидно, что реализация подобного преобразователя стандартным методом использования базовых логических элементов требует значительных аппаратных затрат из-за громоздкого вида описывающей его работу системы ФАЛ.

Промышленностью выпускаются масочные ПЗУ для преобразователей двоично-десятичных кодов. Примером таких преобразователей могут служить микросхемы К155ПР6 и К155ПР7. Первая является преобразователем двоично-десятичного кода в двоичный, а вторая – двоичного кода в двоично-десятичный. Микросхемы представляют собой постоянные запоминающие устройства, программирование которых произведено на заводе-изготовителе. Одна микросхема К155ПР6 позволяет преобразовать двоично-десятичный код чисел от 0 до 39 (входы 2, 4, 8, 10, 20) в двоичный (выходы 2, 4, 8, 16, 32), а одна микросхема К155ПР7 – двоичный код чисел от 0 до 63 (входы 2, 4, 8, 16, 32) в двоично-десятичный (выходы 2, 4, 8, 10, 20, 40).

Рассмотрим схемы включения микросхем ПР6 и ПР7 при увеличении разрядности преобразователей двоично-десятичных кодов. На рис. 7.1,а показан пример преобразователя двоично-десятичного кода чисел от 0 до 99 в двоичный, а на рис. .1,б – пример преобразователя двоичного кода чисел от 0 до 255 в двоично-десятичный. Поскольку младшие разряды 20 двоично-десятичного и двоичного кодов соответствующих десятичных эквивалентов совпадают, то младший разряд передается мимо микросхем ПР6 и ПР7. Преобразование начинается со второго разряда. Возможно и дальнейшее наращивание разрядности путем каскадного соединения данных микросхем. Однако целесообразнее выполнить программирование прожигаемой ПЗУ согласно таблицы соответствия двоичных и двоично-десятичных чисел необходимой разрядности. Емкость прожигаемого ПЗУ и разрядность адресных входов и выходных слов должны быть достаточными для реализации системы ФАЛ необходимого преобразователя.

Рис. 7.1. Каскадное включение микросхем К155ПР6 и К155ПР7 при увеличении разрядности двоично-десятичных преобразователей.

Микросхема К155ПР6 позволяет также преобразовать двоично-десятичный код чисел от 0 до 9 в код дополнения до 9 (рис. 7.2,а) и до 10 (рис. 7.2,б). В качестве выходов кода дополнения используются выводы A, B и C микросхемы. В качестве входов двоичного-десятичного кода используются выводы 2, 4, 8, 16. Сумма десятичных чисел, соответствующих входному и выходному кодам схемы рис. 7.2,а, равна 9 (например, числу 6 дополнением до 9 является число 3), а схемы рис. 7.2,б – 10.

Рис. 7.2. Преобразователь двоично-десятичного кода в код дополнения до 9 и 10.

Использование кодов дополнения позволяет осуществлять проверку правильности передачи данных по каналам связи (интерфейсам). В процессе пересылки данных на передающей стороне осуществляется передача вначале самого кода числа, а затем кода его дополнения до некоторого значения (в нашем случае до 9 или до 10). На принимающей стороне осуществляется прием кодов как самого числа, так и его дополнения. Далее оба этих кода суммируются сумматором и проверяется, получилась ли сумма равной значению числа, дополнение до которого осуществлялось на передающей стороне. Если полученная сумма равна значению этого числа, то передача данных прошла без ошибок. Если же сумма отличается от значения этого числа, то в процессе передачи произошел сбой и передачу необходимо повторить.

7-2. Преобразователи для элементов индикации.

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

Одним из примеров преобразователя кодов для шкального индикатора является преобразователь, функционирующий согласно таблице истинности:

Входы

Выходы

X3

X2

X1

Y7

Y6

Y5

Y4

Y3

Y2

Y1

Y0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

0

0

0

0

0

0

1

1

0

1

0

0

0

0

0

0

1

1

1

0

1

1

0

0

0

0

1

1

1

1

1

0

0

0

0

0

1

1

1

1

1

1

0

1

0

0

1

1

1

1

1

1

1

1

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

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

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

Рис. 7.3. Структурная схема преобразователя кода шкального индикатора.

Если логическая единица будет присутствовать на единственном выходе дешифратора, например на Y6, то через элементы ИЛИ она передастся на все семь младших выхода Y0Y6 преобразователя, на самом старшем восьмом выходе Y7 преобразователя установится логический нуль. Таким образом, обеспечивается свечение всех светодиодов, расположенных ниже i-го в линейке светодиодов и самого i-го с номером, соответствующим i-му входному коду. Примером подобного дешифратора может служить микросхема КМ155ИД11.

Другим типом преобразователя кодов для элементов индикации является преобразователь для семисегментных индикаторов. Сам семисегментный индикатор представляет собой набор одиночных изолированных индикаторных элементов, называемых сегментами, сгруппированных по очертанию цифры «8» (рис. 7.4). Латинскими символами «a» «b» «c» «d» «e» «f» и «g» обозначаются соответствующие сегменты индикатора.

Рис. 7.4. Семисегментный индикатор.

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

Индицируемая десятичная цифра

Входы

Выходы

X3

X2

X1

X0

a

b

c

d

e

f

g

0

0

0

0

0

1

1

1

1

1

1

0

1

0

0

0

1

0

1

1

0

0

0

0

2

0

0

1

0

1

1

0

1

1

0

1

3

0

0

1

1

1

1

1

1

0

0

1

4

0

1

0

0

0

1

1

0

0

1

1

5

0

1

0

1

1

0

1

1

0

1

1

6

0

1

1

0

1

0

1

1

1

1

1

7

0

1

1

1

1

1

1

0

0

0

0

8

1

0

0

0

1

1

1

1

1

1

1

9

1

0

0

1

1

1

1

1

0

1

1

Можно найти систему ФАЛ, заданных таблицей истинности, минимизировать ее и реализовать структуру КЦУ в выбранном базисе логических элементов. Существуют стандартные выпускаемые промышленностью интегральные схемы преобразователей двоично-десятичных кодов в семисегментные. Если входные переменные X0X3 рассматривать как двоичные, а не двоично-десятичные, то функции, заданные приведенной таблицей истинности, являются частично определенными. Т.е. вместо шестнадцати возможных наборов входных переменных X0X3 определены только первые десять. В этом случае ФАЛ преобразователя двоичных кодов в семисегментные доопределяются оставшимися шестью наборами от 10-го до 15-го входных переменных, которым соответствуют какие либо иные индицируемые символы, например, символы «A», «b», «c», «d», «E» и «F» шестнадцатеричной системы счисления.

Выбор микросхемы преобразователя кода зависит от типа используемого индикатора. Существуют полупроводниковые индикаторы на светодиодах с разъединенными анодами и катодами каждого сегмента (рис. 7.5,а), с разъединенными анодами и объединенными катодами (рис. 7.5,б) и с разъединенными катодами и объединенными анодами (рис. 7.5,в). В этом случае необходимо правильно выбирать типы микросхем преобразователей для соответствующих элементов индикации. Для индикатора, изображенного на рис. 7.5,а, не имеет значения, какой уровень напряжения (логического нуля или логической единицы) выходов преобразователя будет активным. Сам проектировщик устройства может объединить аноды или катоды индикатора в зависимости от того, логический нуль или логическая единица на выходе преобразователя является активным сигналом. Это упрощает выбор типа микросхемы.

Рис. 7.5. Объединения анодов и катодов в стандартных полупроводниковых индикаторах.

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

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

В качестве примера блока индикации одноразрядной десятичной цифры рассмотрим пример использования микросхем КР514ИД1 и КР514ИД2. Обе эти микросхемы представляют преобразователь двоичного четырехразрядного кода (входы 1, 2, 4, 8) в семисегментный. Микросхема КР514ИД1 предназначена для использования с индикаторами с разъединенными анодами (рис. 7.6,а), а микросхема КР514ИД2 – с индикаторами с разъединенными катодами (рис. 7.6,б). Выходы микросхемы КР514ИД2 выполнены с открытыми коллекторами. Обе микросхемы снабжены прямым входом разрешения Е. Работа микросхем разрешается при подаче логической единицы на этот вход. При подаче на этот вход уровня напряжения логического нуля независимо от двоичного кода на входах 1, 2, 4, 8 все сегменты индикатора гасятся.

Рис. 7.6. Одноразрядные индикаторы десятичных цифр на микросхемах КР514ИД1 и КР514ИД2.

Микросхемы обеспечивают индикацию десяти цифр от «0» до «9» и пяти нестандартных символов. При подаче на входы 1, 2, 4, 8 уровней логических единиц индикация отсутствует. Использование резисторов R1 - R7 совместно с микросхемой КР514ИД2 необходимо для ограничения тока через сегменты индикатора и коллекторы выходных транзисторов микросхемы. Их номинал рассчитывается из допустимого тока сегментов индикатора, напряжения на этих сегментах в режиме свечения и напряжения питания +Uп, подаваемого на объединенные аноды индикатора.

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

Формирование семисегментных кодов для всех восьми индикаторов осуществляется только одним преобразователем D1. Каждый индикатор снабжен схемой электронного ключа на двух транзисторах VT1 и VT2 (VT3 – VT16) и трех резисторах R1, R2 и R3 (R4 – R24), который подключает его объединенные аноды к источнику питания, тем самым задавая ток в сегментах этого индикатора и обеспечивая его свечение.

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

Управление ключами и, таким образом, подключением индикаторов к +Uп осуществляется с помощью дешифратора выбора номера индикатора D2. Наличие логической единицы на первом выходе Y0 дешифратора вызывает насыщение и открытие транзистора VT1, на коллекторе которого формируется нулевой потенциал общего провода. Это в свою очередь вызывает насыщение и открытие транзистора VT2, который подключает индикатор HG1 к источнику питания. На остальных выходах дешифратора в этот момент присутствуют логические нули, в результате которых транзисторы VT3 – VT16 находятся в режиме отсечки и, следовательно, закрыты. Для включения второго индикатора необходимо, чтобы на выходе Y1 дешифратора сформировалась логическая единица. При этом на остальных выходах дешифратора будут присутствовать потенциалы логических нулей, что приведет к закрытию соответствующих ключей и отключению соответствующих индикаторов от источника питания. Таким образом, обеспечивается подключение только одного из восьми индикаторов в определенный момент времени. Выбор подключаемого индикатора осуществляется поступающим на вход дешифратора двоичным кодом выбора номера дешифратора.

Для корректной индикации должно быть обеспечено синхронное выставление входного двоично-десятичного кода индицируемой цифры и кода номера индикатора. Т.е. в момент времени, когда на вход дешифратора подается двоичный код i-го номера подключаемого индикатора, на вход семисегментного преобразователя должен поступать двоично-десятичный код того же i-го разряда индицируемого десятичного числа. Отсюда следует, что динамическая индикация должна сопровождаться дополнительной последовательностной схемой синхронизации и управления. Пример такой схемы для индикатора восьмиразрядных десятичных чисел приведен на рис. 7.8. Двоичный счетчик D5 служит для формирования кода выбора номера индикатора, подключаемого в данный момент времени. Этот же код является и адресом мультиплексоров D1 – D4, коммутирующих на семисегментный преобразователь соответствующие разряды двоично-десятичных кодов индицируемых в этот же момент времени разрядов десятичных чисел. Для задания счетного режима счетчику D5 схема синхронизации и управления должна содержать генератор тактовых импульсов GN.

Рис. 7.8. Структурная схема устройства управления динамической индикацией восьмиразрядного десятичного числа.

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

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

1. Почему именно ПЗУ используют в качестве элементной базы преобразователей кодов и в каких случаях это делают?

2. Охарактеризуйте преобразователи двоично-десятичных кодов.

3. В каких случаях может быть использован код дополнения?

4. В чем отличие таблиц истинности дешифратора и преобразователя кода шкального индикатора? Как их различие реализуется в структурных схемах соответствующих устройств?

5. В чем заключается особенность подключения индикаторов с объединенными и с разъединенными анодами к микросхемам семисегментных преобразователей?

6. Сформулируйте принцип работы динамической индикации.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]