Регистр сдвига используется для освобождения выходов контроллера. Рассмотрим задачу управления освещением в доме, в доме 20 светильников, каждый имеет два состояния - включен/выключен. Если мы подключим выводы микросхемы напрямую к светильникам, нам потребуется 20 ножек. Если мы решим добавить светильники - придётся заменить микросхему на большее количество ножек, то есть полностью изменить устройство. Если мы будем использовать регистр сдвига, нам потребуется только 3 ножки контроллера, независимо от количества светильников, добавляя светильники мы будем добавлять регистры сдвига. Итак, необходимость и удобство устройства очевидны, перейдём к логике работы.
Принцип работы
Регистр сдвига применяется для преобразования линейного интерфейса в параллельный, соответственно имеет выводы для записывания и считывания данных. Данные в регистр поступают по двум каналам - тактовому и данным, смена состояния с логического нуля на логическую единицу на тактовом входе сдвигает регистр на один бит, используя состояние на входе данных в качестве нового бита:
Состояние регистра | Состояние канала данных | Состояние после подачи "1" на тактовый вход |
01001011 | 1 | 10100101 |
01001011 | 0 | 00100101 |
Выходы
Выходы регистра обозначаются Q1, Q2, ... или QA, QB, ..., на каждом выходе находится напряжение логических единицы или нуля, отображая состояние регистра. Например, если в регистре хранится число 138 (10001010), то на выходах будут следующие состояния:
Данные | Q 1 | Q 2 | Q 3 | Q 4 | Q 5 | Q 6 | Q 7 | Q 8 |
1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
После сдвига на один бит (единица на выводе данных):
Данные | Q 1 | Q 2 | Q 3 | Q 4 | Q 5 | Q 6 | Q 7 | Q 8 |
1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 |
Канал данных и такта
Срабатывание канала такта - это переключение между нулём и единицей, то есть не имеет значения время, которое вывод находится в состоянии нуля или единицы. Переключение происходит в момент изменения напряжения с логического нуля на логическую единицу. В момент срабатывания такта происходит сдвиг регистра и записывается значение из канала данных: если на канале данных логический ноль, то в момент срабатывания такта запишется логический ноль, аналогично с логической единицей.
Модель регистра сдвига
Ниже инструмент для самопроверки, кнопка CLK - срабатывание такта, переключатели RST, LC, OE и IN - логические значения на входе регистра сдвига. Выводы Q1 - Q8 это выходы регистра сдвига. OUT - это последовательный выход данных из регистра.