Рубрики
Компоненты

Что такое регистр сдвига: типы и принцип действия

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

Сдвиговые регистры — это, по сути, тип регистра, который способен передавать («сдвигать») данные. Регистры — это, как правило, устройства хранения, которые создаются путем последовательного соединения определенного количества триггеров, и объем данных (количество битов), которые могут храниться в регистре, всегда прямо пропорционален количеству триггеров, поскольку каждый триггер способен хранить только один бит в конкретный момент времени. Когда триггеры в регистре соединены таким образом, что выход одного триггера становится входом другого, то получаем регистр сдвига.

Триггеры — это устройства, принцип действия которых аналогичен защелке. Их также можно назвать бистабильным вибратором, который может перемещаться между двумя состояниями (0 или 1) и способен хранить данные в битах. Новые данные считываются в триггер с каждым тактом, а предыдущие данные отправляются на выход.

Из каких триггеров состоят сдвиговые регистры?

Это зависит от типа триггера, поскольку соотношение входа, выхода и тактового цикла между триггерами различается. Существуют разные виды триггеров, но наиболее часто используемыми при создании сдвиговых регистров являются D (Delay)-триггеры.

D-триггером называется триггер с одним информационным входом, работающий так, что сигнал на выходе после переключения равен сигналу на входе D до переключения. Данные на выходе «Q» становятся теми же данными, что и на входе «D». Выход «Q» триггера будет оставаться в этом значении до следующего тактового цикла, после чего он снова изменится на значение (высокое или низкое, 1 или 0) на входе.

В различных электронных проектах на нашем сайте мы наиболее часто использовали регистр сдвига 74HC595. Посмотреть все проекты с его использованием можно по этой ссылке.

Типы регистров в цифровой электронике

Регистры сдвига подразделяются на типы в основном в зависимости от режима их работы: последовательного или параллельного.

Существует шесть (6) основных типов регистров сдвига, которые перечислены ниже, хотя некоторые из них можно разделить в зависимости от направления потока данных: сдвиг вправо или сдвиг влево.

  1. Последовательный вход – последовательный выход регистра сдвига (SISO, Serial in – Serial out).
  2. Последовательный вход – параллельный выход регистр сдвига (SIPO, Serial In – Parallel out).
  3. Параллельный вход – параллельный выход (PIPO, Parallel in – Parallel out).
  4. Параллельный вход – последовательный выход (PISO, Parallel in – Serial out).
  5. Двунаправленные регистры сдвига.
  6. Счетчики.

Рассмотрим каждый из этих типов регистров сдвига более подробно.

1. Последовательный вход – последовательный выход (SISO)

Это тип регистров сдвига, которые вводят данные последовательно (один бит за такт) и выводят данные таким же образом, один за другим.

Простой 4-битный регистр сдвига (состоит из 4 триггеров) с последовательным входом и последовательным выходом показан на следующем рисунке выше.

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

Существует два основных способа вывода данных через регистр сдвига типа SISO:

  1. Неразрушающее считывание.
  2. Разрушающее считывание.
  • Неразрушающее считывание

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

Когда устройство находится в рабочем режиме «записи», регистр сдвига сдвигает каждые данные по одному биту, ведя себя точно так же, как версия деструктивного считывания, и таким образом данные теряются, но когда рабочий режим переключается на «чтение», данные которые сдвигаются на входе, возвращаются в систему и служат входом в сдвиговый регистр. Это может гарантировать, что данные доступны более долгий период времени (пока они остаются в режиме чтения).

  • Разрушающее считывание

При деструктивном считывании данные полностью теряются, поскольку триггер просто пропускает информацию. Предположим, что в рассмотренный выше 4-битный регистр сдвига мы хотим отправить слово «1101». После очистки регистра сдвига выходной сигнал всех триггеров становится 0, поэтому в течение первого тактового цикла, когда мы последовательно применяем эти данные (1101), выходные сигналы триггеров выглядят как в таблицах ниже.

Первый тактовый цикл:

FF0 FF1 FF2 FF3
1 0 0 0

Второй тактовый цикл:

FF0 FF1 FF2 FF3
0 1 0 0

Третий тактовый цикл:

FF0 FF1 FF2 FF3
1 0 1 0

Четвертый тактовый цикл:

FF0 FF1 FF2 FF3
1 1 0 1

Как видите, логика достаточно проста.

2. Последовательный вход – параллельный выход (SIPO)

Второй тип регистра сдвига, который мы будем рассматривать, — это сдвиговый регистр с последовательным входом и параллельным выходом, также известный как регистр сдвига SIPO. Эти типы регистров сдвига используются для преобразования данных из последовательного в параллельный вид. Данные поступают один за другим за такт и могут либо сдвигаться и заменяться, либо считываться на каждом выходе. Это означает, что когда данные считываются, каждый считанный бит становится доступным одновременно на соответствующей выходной линии (Q0 – Q3 для 4-битного сдвигового регистра, показанного ниже).

4-битный сдвиговый регистр с последовательным входом и параллельным выходом показан на следующем рисунке.

В следующей таблице показано как данные (1001) сдвигаются из 4-битного сдвигового регистра с последовательным входом и параллельным выходом.

Clear FF0 FF1 FF2 FF3
1001 0 0 0 0
1 0 0 0
0 1 0 0
0 0 1 0
1 0 0 1

Хорошим примером регистра сдвига с последовательным входом и параллельным выходом является регистр 74HC164, который представляет собой 8-битный регистр сдвига.

Устройство имеет два последовательных входа данных (DSA и DSB), восемь параллельных выходов данных (от Q0 до Q7). Данные вводятся последовательно через DSA или DSB, и любой вход может использоваться как активное разрешение HIGH для ввода данных через другой вход. Данные сдвигаются при переходах от низкого к высокому уровню на тактовом входе (CP). Уровень LOW на главном входе сброса (MR) очищает регистр и переводит все выходы в низкий уровень независимо от состояния входов. Входы включают фиксирующие диоды. Это позволяет использовать токоограничивающие резисторы для сопряжения входов с напряжением, превышающим VCC.

3. Параллельный вход – последовательный выход (PISO)

В регистре сдвига «Параллельный вход — последовательный выход» данные подаются параллельно, например, рассмотрим 4-битный регистр, показанный на следующем рисунке.

Этот регистр можно использовать для хранения и сдвига 4-битного слова, при этом вход управления записью/сдвигом (WS) управляет режимом работы регистра сдвига. Когда на линии управления WS низкий уровень (режим записи), данные могут быть записаны и синхронизированы через D0–D3. Для последовательного вывода данных линия управления WS переводится в ВЫСОКИЙ режим (режим сдвига), затем регистр сдвигает данные на тактовый вход. Параллельный последовательный регистр сдвига также называется регистром сдвига PISO .

Хорошим примером сдвигового регистра с параллельным входом и выходом является 8-битный регистр сдвига 74HC165, хотя он также может работать как регистр сдвига с последовательным входом и выходом.

Устройство имеет последовательный вход данных (DS), восемь параллельных входов данных (от D0 до D7) и два дополнительных последовательных выхода (Q7 и Q7′). Когда на входе параллельной загрузки (PL) низкий уровень, данные от D0 до D7 загружаются в регистр сдвига асинхронно. Когда PL имеет ВЫСОКИЙ уровень, данные последовательно поступают в регистр на DS. Когда вход разрешения синхронизации (CE) имеет низкий уровень, данные смещаются при переходах от низкого к высокому входу CP. ВЫСОКИЙ уровень на CE отключит вход CP. Входы устойчивы к перенапряжению до 15 В. Это позволяет использовать устройство в приложениях с переключением уровня от ВЫСОКОГО к НИЗКОМу.

Структурная схема такого сдвигового регистра показана на следующем рисунке.

А временные диаграммы его работы показаны на следующем рисунке.

4. Параллельный вход – параллельный выход (PIPO)

У регистра сдвига с параллельным входом и выходом выходные данные на параллельных выходах появляются одновременно с подачей входных данных. Этот тип сдвигового регистра также называется регистром сдвига PIPO.

Входные данные на каждом из входных контактов от D0 до D3 считываются одновременно, когда устройство тактируется, и в то же время данные, считанные с каждого из входов, передаются на соответствующий выход (от Q0 к вопросу 3).

Регистр сдвига 74HC195 — это многоцелевой регистр сдвига, который способен работать в большинстве режимов, рассмотренных нами, особенно в качестве регистра сдвига с параллельным входом и выходом.

5. Двунаправленные регистры сдвига

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

Рассмотрим 4-битный регистр на изображении ниже. Пара логических элементов NAND сконфигурированы как вентили ИЛИ и используются для управления направлением сдвига вправо или влево.

Линия управления left/write используется для определения направления сдвига данных: вправо или влево.

Хорошим примером является двунаправленный регистр сдвига 74HC194.Регистр может работать во всех режимах и вариантах последовательного и параллельного ввода или вывода. Функциональная схема 74HC194 с выделением линии управления, часов, входных и выходных контактов показана на следующем рисунке.

Ниже также представлены ​​временные диаграммы работы этого регистра — с их помощью проще понять как линия управления управляет действиями регистра.

6. Счетчики

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

Кольцевой счетчик

Кольцевые счетчики — это, по сути, тип счетчика, в котором выходной сигнал старшего бита передается обратно в качестве входного сигнала для младшего бита. На схеме ниже показан 4-битный кольцевой счетчик с использованием D-триггеров.

При подаче тактового импульса выход каждого каскада переключается на следующий, и цикл продолжается. Когда значение Clear устанавливается на высокий уровень, все триггеры, кроме первого (который устанавливается в 1), сбрасываются в ноль.

Применение регистров сдвига

Регистры сдвига используются во многих приложениях, некоторые из которых;

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

2. Расширение количества контактов ввода-вывода для микроконтроллеров. В современной электронике количество контактов ввода-вывода микроконтроллеров всегда ограничено, а для определенных приложений требуется как можно больше контактов, таких как включение 100 светодиодов или чтение 100 герконов с помощью чего-то вроде Arduino или микроконтроллера Atmeg328p. Например, приведенная ниже принципиальная схема иллюстрирует, как последовательно-параллельный сдвиговый регистр можно использовать для управления 8 светодиодами, используя всего три контакта ввода-вывода микроконтроллера.

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

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

Временная задержка обычно рассчитывается по формуле;

t = N * (1 / fc) 

N — номер каскада триггера, на котором принимается выходной сигнал, Fc — частота тактового сигнала, а t —  это значение времени, на которое выходной сигнал будет задержан.

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

Некоторые из самых популярных регистров сдвига :

  1. 74HC 194 4-битный двунаправленный универсальный сдвиговый регистр
  2. 74HC 198 8-битный двунаправленный универсальный регистр сдвига
  3. 74HC595 Регистр сдвига с последовательным входом и параллельным выходом
  4. 74HC165 Регистр сдвига с параллельным входом и последовательным выходом
  5. IC 74291 4-битный универсальный сдвиговый регистр, двоичный реверсивный счетчик, синхронный.
  6. IC 74395 4-битный универсальный регистр сдвига с выходами с тремя состояниями.
  7. IC 74498 8-битный двунаправленный регистр сдвига с параллельными входами и выходами с тремя состояниями.
  8. IC 74671 4-битный двунаправленный сдвиговый регистр.
  9. IC 74673 16-битный сдвиговый регистр с последовательным входом и выходом с выходными регистрами хранения.
  10. IC 74674 16-битный сдвиговый регистр с параллельным входом и последовательным выходом и выходами с тремя состояниями.

2 ответа к “Что такое регистр сдвига: типы и принцип действия”

HT8955A — практически ревербератор . С добавлениями регулировок и увеличением памяти задержка практически (0.8сек)*n , где n — число м/сх памяти . Расскажу как .

У вас такой большой опыт в использовании регистров сдвига? ))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *