Отправляет email-рассылки с помощью сервиса Sendsay

Цифровая схемотехника

  Все выпуски  

Параллельный регистр


Информационный Канал Subscribe.Ru

Цифровая схемотехника
Почтовая рассылка
Выпуск №9 от 28.11.2002 г.


Добрый день, уважаемый подписчик!

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

     

Как мы видим, регистр построен на основе четырех D-триггеров входы синхронизации, которых соединены вместе. На входы данных (D0 - D3) поступает двоичное число, которое необходимо записать в регистр. На вход С схемы подается тактовый сигнал. По заднему фронту сигнала двоичное число запишется в регистр. Каждый разряд запишется в свой D-триггер и тут же появится на выходах регистра (Q0 - Q3). Вход R служит для начального сброса всех триггеров регистра (то есть перевода в нулевое состояние).

Приведу пример применения параллельного регистра. Допустим, вы разрабатываете микропроцессорное устройство, и оно должно в процессе работы управлять четырьмя светодиодами. Подключим к каждому выходу нашего регистра по светодиоду через транзисторные ключи. Теперь, предположим, что нужно зажечь светодиод, подключенный к выходу Q0, при чем остальные гореть не должны. Для этого микропроцессор должен подать на входы регистра двоичное число, в разряде D0, которого, должна быть единица, а в остальных разрядах ноль (то есть число 0001D). Затем на вход С микропроцессор должен подать импульс записи. Под действием этого импульса наше число запишется в регистр. При этом верхний триггер регистра установится в единичное состояние, остальные в нулевое. Светодиод, подключенный к верхнему триггеру, зажжется. Остальные гореть не будут. Теперь процессор может заняться выполнением других задач. Регистр будет находиться в таком положении до тех пор, пока процессор не перепишет его содержимое, либо пока не будет отключено питание. Все это время состояние светодиодов так же не изменится.

Сигналы с выхода регистра могут управлять не только светодиодами. На выход регистра вместо светодиодов, через соответствующие согласующие устройства (усилители, ключи) можно подключить электромагнитные реле, электродвигатели, шаговые двигатели и т.д. Кроме того, регистр можно применять просто для хранения числа и его последующего считывания посредством его выходов Q0 - Q3.

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

      

Этот регистр так же построен на основе D-триггеров. Однако триггеры в этой схеме соединены по-другому. Выход одного триггера подключен к входу последующего. Схема имеет один информационный вход. На этот вход последовательно, разряд за разрядом, подается двоичное число. Для каждого очередного двоичного разряда, на вход синхронизации (С) подается тактовый импульс. По заднему фронту этого импульса очередной разряд числа записывается в младший разряд сдвигового регистра (выход Q0). Одновременно старое содержимое всего регистра сдвигается на один разряд в сторону старших разрядов. Так старое содержимое Q0 записывается в следующий по очереди D-триггер (выход Q1). Содержимое Q1 переписывается в Q2. А разряд Q2 переписывается в Q3. Содержимое последнего триггера в цепочке никуда не переписывается и просто теряется. В результате входное четырехразрядное число, после четырех тактов записи последовательно записывается в регистр.
Вход R так же, как и в предыдкщем случае, предназначен для начального сброса всех триггеров регистра в нулевое состояние.

Если регистр имеет большее число разрядов, то для записи числа во все разряды регистра потребуется больше тактов. Для примера рассмотрим процесс записи в восьмиразрядный последовательный регистр, двоичного числа 01011011B.

Разряд Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
Начальное состояние 0 0 0 0 0 0 0 0
Первый такт 1 0 0 0 0 0 0 0
Второй такт 1 1 0 0 0 0 0 0
Третий такт 0 1 1 0 0 0 0 0
Четвертый такт 1 0 1 1 0 0 0 0
Пятый такт 1 1 0 1 1 0 0 0
Шестой такт 0 1 1 0 1 1 0 0
Седьмой такт 1 0 1 1 0 1 1 0
Восьмой такт 0 1 0 1 1 0 1 1

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

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

На сегодня все, по основной теме.


Небольшое отступление.
В одном из отзывов, пришедших после выхода очередной рассылки, в которой я рассказывал о D-триггерах и JK-триггерах, была выражена просьба, рассказать подробнее о внутреннем устройстве D-триггера. Я не думаю, что всегда следует углубляться во внутреннее строение той или иной микросхемы. Но в данном случае я видимо плохо описал устройство D-триггера. Вопрос состоял в том, является ли входящий в состав D-триггера RS-триггер синхронным. Нет, не является. Вообще синхронный RS-триггер штука экзотическая. Я пока не встречал такого триггера, выполненного в виде отдельного элемента. Если нужно, то его всегда можно собрать из отдельных элементов. В случае D-триггера, и R-вход и S-вход действуют непосредственно и имеют приоритет над всеми остальными входами. Это значит, что как только вы подали, например, на вход R сигнал логического нуля, триггер сразу переходит в нулевое состояние. Не зависимо от состояния других входов. То же самое относится и к S входу. Только триггер при воздействии на S вход устанавливается в единичное состояние. Единственное условие, которое необходимо соблюдать при применении такого триггера: не допустимо подавать нулевой логический уровень одновременно и на вход R и на вход S. Из строя триггер не выйдет. Но его состояние при этом будет непредсказуемо.

А для того, кому все же хочется узнать внутреннее устройство D-триггера, я разместил более подробную информацию по адресу http://digitchip.by.ru/yang/TrigD.htm .


Автор рассылки Белов А.В.         belov@gomail.com.ua



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное