Курс 9 • Урок 3 из 8 • 3 часа учебной нагрузки

Регистры и сдвиговые цепи

Цель: Понять устройство регистров, последовательный и параллельный ввод/вывод и практическое применение сдвиговых цепей.

3 часа короткая теория, самостоятельная практика, проверка результата и тест.

Суть темы

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

Сдвиговые регистры применяются для преобразования serial↔parallel, задержки цифрового потока, расширения числа линий ввода-вывода и построения некоторых счётчиков и генераторов последовательностей.

  • SISO передаёт данные последовательно через цепочку; задержка равна числу ступеней в тактах.
  • SIPO принимает последовательный поток и выдаёт параллельное слово.
  • PISO загружает слово параллельно и затем выдаёт биты последовательно.
  • PIPO хранит и передаёт слово параллельно; универсальные регистры могут поддерживать несколько режимов.
  • Направление сдвига и порядок битов MSB/LSB должны быть согласованы с протоколом.

Ключевые связи и параметры

Каждая ступень обычно является D-триггером с общим clock. На фронте все ступени одновременно принимают значения предыдущих ступеней, поэтому нельзя рассматривать перенос как последовательное «протекание» внутри одного такта.

При серийном обмене важны не только данные, но и момент считывания относительно clock. Внешний регистр типа 74HC595, например, дополнительно имеет защёлку выходов, что позволяет сначала сдвинуть новое слово, а затем одновременно обновить физические выходы.

delay(SISO) = N clock periods for N stages8-bit serial load requires 8 shift clocks

Разбор примера

В четырёхразрядный SIPO вводят последовательность 1-0-1-1. После каждого фронта содержимое сдвигается; после четырёх тактов на параллельных выходах формируется соответствующее четырёхбитное слово с учётом выбранного направления сдвига.

Если микроконтроллеру нужно управлять восемью светодиодами при недостатке GPIO, SIPO-регистр позволяет использовать линии data, clock и latch вместо восьми отдельных выводов.

Практическая работа и проверка

Используйте четырёх- или восьмиразрядный регистр и логический анализатор, подписав направление сдвига до начала эксперимента.

  1. Введите известную битовую последовательность и после каждого такта записывайте состояние ступеней.
  2. Проверьте serial-in/parallel-out на восьми тактах.
  3. Измените порядок передачи MSB-first на LSB-first и сравните полученное слово.
  4. Если есть latch, покажите различие между внутренним сдвигом и обновлением выходов.
  5. Соберите кольцевой режим, замкнув выход последней ступени на вход первой, и наблюдайте циркуляцию единицы.
Не делайте вывод о «неправильном числе» до проверки соглашения о направлении сдвига и порядке битов.

Типичные ошибки и диагностика

  • Считать, что все ступени обновляются одна за другой в течение одного фронта.
  • Перепутать MSB-first и LSB-first при связи с периферией.
  • Забыть отдельный latch у регистра расширения выходов.
  • Не инициализировать регистр и принимать случайное стартовое содержимое за данные.

При смещённом на один бит слове сначала сравнивают clock/data timing и число фронтов. Если данные зеркальны по разрядам, проверяют порядок MSB/LSB.

Связь с реальным устройством

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

Что нужно запомнить

  • Регистр строится из нескольких элементов памяти.
  • Сдвиг происходит на тактовом событии.
  • SIPO и PISO выполняют serial↔parallel преобразование.
  • Порядок битов является частью интерфейса.
  • У некоторых регистров выходная защёлка отделена от сдвиговой цепи.
Проверка знаний

Вопросы по уроку

Нужно 75%
Загрузка вопросов…