- Что такое сдвиговый регистр:
- Типы регистров в цифровой электронике
- 1. Регистры сдвига последовательного входа и выхода
- 2. Последовательный вход - параллельный выход регистр сдвига
- 3. Регистр сдвига параллельного входа - последовательного выхода
- 4. Параллельный вход - параллельный выходной регистр сдвига
- 5. Регистры двунаправленного сдвига.
- 6. Счетчики
- Применение регистров сдвига
Что такое сдвиговый регистр:
Регистры сдвига - это последовательные логические схемы, способные хранить и передавать данные. Они состоят из триггеров, которые соединены таким образом, что выход одного триггера может служить входом другого триггера, в зависимости от типа создаваемых регистров сдвига.
Регистры сдвига - это в основном регистры, которые могут передавать («сдвигать») данные. Регистры обычно представляют собой запоминающие устройства, которые создаются путем последовательного соединения определенного количества триггеров, а количество данных (количество битов), которые могут храниться в регистре, всегда прямо пропорционально количеству триггеров, поскольку каждый триггер flop может хранить только один бит за раз. Когда триггеры в регистре соединены таким образом, что выход одного триггера становится входом другого, создается регистр сдвига.
Вьетнамки - это устройства, работа которых аналогична защелке. Его можно назвать бистабильным вибратором, который может перемещаться между двумя состояниями (0 или 1) и может хранить данные в битах. Новые данные считываются в триггер с каждым тактовым циклом, а предыдущие данные отправляются на выход.
Какие регистры сдвига состоят из триггеров?
Однако это зависит от типа триггера, поскольку взаимосвязь между входом, выходом и тактовым циклом между триггерами различается. Существуют различные типы триггеров, но наиболее часто используемые при создании регистров сдвига - это триггеры D (задержки).
Для работы D-триггеров, что делает их такими желательными для регистров сдвига, всякий раз, когда происходит изменение тактовой частоты D-триггера (либо нарастающий, либо на спадающий фронт, в зависимости от характеристик триггера). Данные на выходе «Q» становятся теми же данными, что и на входе «D». Выходной сигнал «Q» триггера останется на этом значении до следующего тактового цикла, после чего он снова изменится на значение (высокое или низкое, 1 или 0) на входе.
Теперь, когда мы знаем, что такое регистры выборки, мы перейдем к более глубокому погружению в типы триггеров и их применения. Но перед этим, чтобы дать более практическое представление о том, где используются регистры сдвига, давайте взглянем на популярный регистр сдвига 74HC595, который мы использовали с различными микроконтроллерами для взаимодействия с дисплеем или последовательностью светодиодов.
- Регистр сдвига с 74HC595 с Arduino для управления последовательностью светодиодов
- Регистр сдвига с ESP32 для интерфейса 7-сегментного дисплея
- Сдвиговый регистр с Raspberry Pi для управления несколькими светодиодами
- Регистр сдвига с PIC для управления последовательностью светодиодов
Типы регистров в цифровой электронике
Регистры сдвига подразделяются на типы в основном в зависимости от режима работы: последовательный или параллельный.
Существует шесть (6) основных типов регистров сдвига, которые перечислены ниже, хотя некоторые из них могут быть дополнительно разделены в зависимости от направления потока данных: сдвиг вправо или сдвиг влево.
1. Сдвиговый регистр последовательного входа и выхода (SISO)
2. Последовательный вход - параллельный выходной регистр сдвига (SIPO)
3. Регистр сдвига с параллельным входом и выходом (PIPO)
4. Регистр сдвига параллельного входа - последовательного выхода (PISO)
5. Регистры двунаправленного сдвига.
6. Счетчики
1. Регистры сдвига последовательного входа и выхода
Сдвиговые регистры последовательного ввода - последовательного вывода - это регистры сдвига, которые последовательно передают данные (один бит за такт) и выводят данные таким же образом, один за другим.
Выше показан простой 4-разрядный регистр сдвига с последовательным входом - последовательным выходом, регистр состоит из 4 триггеров, а принцип его работы поясняется ниже;
При запуске сначала очищается сдвиговый регистр, обнуляя выходы всех триггеров, затем входные данные поступают на вход последовательно, по одному биту за раз.
Есть два основных способа сдвига данных через регистр сдвига SISO;
- Неразрушающее считывание
- Разрушительное считывание
- Неразрушающее считывание
Регистры сдвига, основанные на неразрушающем считывании, всегда имеют режим чтения / записи с добавлением дополнительной строки, позволяющей переключаться между режимами чтения и записи.
Когда устройство находится в рабочем режиме «запись», сдвиговый регистр сдвигает все данные на один бит за раз, ведя себя точно так же, как версия с деструктивным считыванием, и данные, таким образом, теряются, но когда рабочий режим переключается на «чтение», данные которые сдвигаются на входе, возвращаются в систему и служат входом в регистр сдвига. Это помогает гарантировать, что данные остаются дольше (пока они остаются в режиме чтения)
- Разрушительное считывание
При разрушающем считывании данные полностью теряются, поскольку триггер просто перемещает информацию. Предполагая, что для 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. Эти типы регистров сдвига используются для преобразования данных из последовательного в параллельный. Данные поступают одно за другим за такт, и их можно либо сдвинуть и заменить, либо прочитать на каждом выходе. Это означает, что при считывании данных каждый считанный бит становится доступным одновременно на соответствующей выходной линии (Q0 - Q3 для 4-битного регистра сдвига, показанного ниже).
4-битный регистр сдвига с последовательным входом и параллельным выходом показан на рисунке ниже.
Таблица, показывающая, как данные сдвигаются из последовательного в параллельный 4-битный регистр сдвига, показана ниже с данными в виде 1001.
Очистить |
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, и любой вход может использоваться в качестве активного ВЫСОКОГО разрешения для ввода данных через другой вход. Данные сдвигаются при переходах от LOW-to-HIGH тактового сигнала (CP). НИЗКИЙ уровень на входе главного сброса (MR) очищает регистр и принудительно устанавливает НИЗКИЙ уровень на всех выходах, независимо от других входов. Входы включают фиксирующие диоды. Это позволяет использовать токоограничивающие резисторы для подключения входов к напряжениям, превышающим VCC.
3. Регистр сдвига параллельного входа - последовательного выхода
В регистре сдвига «Параллельный вход - последовательный выход» данные передаются параллельно, например, рассмотрим 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.
Входные данные на каждом из входных контактов от D0 до D3 считываются одновременно с синхронизацией устройства, и в то же время данные, считанные с каждого из входов, передаются на соответствующий выход (из Q0 до Q3).
74HC195 регистра сдвига является многоцелевой регистр сдвига, который способен работать в большинстве режимов, описанных всеми типами, которые мы обсуждали до сих пор, особенно в качестве параллельно в - параллельно из регистра сдвига.
5. Регистры двунаправленного сдвига.
Регистры сдвига могут выполнять сдвиг данных вправо или влево или и то, и другое, в зависимости от типа регистра сдвига и их конфигурации. В операциях сдвига вправо двоичные данные делятся на два. Если эту операцию изменить, двоичные данные умножаются на два. При подходящем применении комбинационной логики регистр последовательного сдвига может быть сконфигурирован для выполнения обеих операций.
Рассмотрим 4-битный регистр на изображении ниже. Пара вентилей И-НЕ настроена как вентили ИЛИ и используются для управления направлением сдвига, вправо или влево.
Линия управления влево / запись используется для определения направления сдвига данных, вправо или влево.
Двунаправленный сдвиговый регистр 74HC194 является хорошим примером. Регистр может работать во всех режимах и вариациях последовательного и параллельного ввода или вывода. Функциональная схема 74HC194 с выделением линии управления, часов, входных и выходных контактов показана ниже.
Временная диаграмма устройства также представлена ниже. Это поможет вам лучше понять, как линия управления управляет действиями регистра.
6. Счетчики
Счетчики, иногда называемые поворотным регистром сдвига, в основном представляют собой регистры сдвига, выходы которых возвращаются в устройство в качестве входов таким образом, что создается определенный шаблон. Эти типы регистров называются счетчиками из-за того, что они демонстрируют шаблон и последовательность. Самый популярный тип счетчиков регистра сдвига - кольцевые счетчики.
Счетчик звонков
Кольцевые счетчики - это, по сути, тип счетчика, в котором выход наиболее значимого бита передается обратно как вход для младшего значащего бита. 4-битный счетчик звонков показан на диаграмме ниже с использованием D-триггеров.
При подаче тактового импульса выходной сигнал каждого каскада смещается на следующий, и цикл продолжается. Когда clear становится высоким, все триггеры, кроме первого (который принимает значение 1), сбрасываются в ноль.
Применение регистров сдвига
Регистры сдвига используются во многих приложениях, некоторые из которых:
1. Параллельное последовательное преобразование, где они используются для уменьшения количества проводов или линий, необходимых для связи между двумя устройствами, поскольку для последовательной связи обычно требуется всего два провода по сравнению с параллельным, что зависит от количества отправляемых битов.
2. Расширение ввода-вывода для микроконтроллеров. В современной электронике контакты ввода-вывода микроконтроллеров называются недвижимостью, и для определенных приложений, таких как включение 100 светодиодов или считывание 100 герконов, требуется как можно больше с помощью чего-то вроде микроконтроллера Arduino или Atmeg328p. Например, приведенная ниже принципиальная схема показывает, как можно использовать последовательно-параллельный сдвиговый регистр для управления 8 светодиодами, используя всего три контакта ввода-вывода микроконтроллера.
3. Они используются в регистрах состояний, которые используются в последовательных устройствах. Как и в машине с конечной памятью, следующее состояние устройства всегда определяется сдвигом и вставкой новых данных в предыдущую позицию.
4. Еще одно важное применение находится во временных задержках. Регистры сдвига используются для временной задержки в устройствах, при этом время регулируется часами, или увеличивается за счет каскадирования регистров сдвига, или уменьшается за счет получения выходного сигнала из младшего значащего бита.
Временная задержка обычно рассчитывается по формуле;
t = N * (1 / fc)
N - количество каскадов триггера, на котором принимается выходной сигнал, Fc - частота тактового сигнала, а t - определяемое значение - время, на которое вывод будет задержан.
При выборе сдвигового регистра для конкретной задачи из-за широкого диапазона и типа важно выбрать тот, который соответствует вашим конкретным потребностям, учитывая такие вещи, как режим работы, размер бит (количество триггеров), правый или левый или двунаправленный и т. д.
Некоторые из самых популярных регистров сдвига:
- 74HC 194 4-битный двунаправленный универсальный регистр сдвига
- 74HC 198 8-битный двунаправленный универсальный регистр сдвига
- 74HC595 Регистр сдвига с последовательным входом-параллельным выходом
- 74HC165 Регистр сдвига Parallel-In-Serial-Out
- IC 74291 4-битный универсальный регистр сдвига, двоичный счетчик вверх / вниз, синхронный.
- IC 74395 4-битный универсальный регистр сдвига с выходами с тремя состояниями.
- IC 74498 8-битный двунаправленный регистр сдвига с параллельными входами и выходами с тремя состояниями.
- IC 74671 4-битный двунаправленный регистр сдвига.
- IC 74673 16-битный регистр сдвига с последовательным входом и выходом с выходными регистрами хранения.
- IC 74674 16-битный регистр сдвига с параллельным входом и последовательным выходом с выходами с тремя состояниями.
Их еще несколько, вам просто нужно найти, что лучше всего подходит для вашего приложения.
Спасибо, что прочитали, до следующего раза.