Электроника:Цифровая электроника/Сдвиговые регистры/Кольцевые счётчики

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Макаров В. (valemak) Контакты:</br>* Habr: @vakemak</br>* Сайт: www.valemak.com</br>Перевёл статей: 656.
Проверка/Оформление/Редактирование: Мякишев Е.А.


Кольцевые счётчики[1]

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

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

Не будем учитывать шаблоны, состоящие исключительно из нулей или только из единиц. Ввиду того, что с практической точки зрения гонять по кругу 00002 или 11112 – занятие, по большому счёту, бессмысленное.

Рис. 1. Пока есть тактовые импульсы, данные будут циркулировать в сдвиговом регистре.
Рис. 1. Пока есть тактовые импульсы, данные будут циркулировать в сдвиговом регистре.

На рисунке 2 ниже изображён сдвиговый регистр с параллельным входом и последовательным выходом, сконфигурированный как кольцевой счётчик. В нём предусмотрена загрузка данных.

Можно загрузить произвольный шаблон. Наиболее часто используемый паттерн для обычного кольцевого счётчика – одиночная 1.

Рис. 2. Сдвиговый регистр с параллельным входом и последовательным выходом, сконфигурированный как кольцевой счётчик и с предусмотренной загрузкой данных.
Рис. 2. Сдвиговый регистр с параллельным входом и последовательным выходом, сконфигурированный как кольцевой счётчик и с предусмотренной загрузкой данных.

Загрузка двоичного кода 10002 в кольцевой счётчик, показана на рисунке 2 выше. Шаблон показан непосредственно перед сдвигом.

Шаблон данных для одного этапа повторяется каждые четыре тактовых импульса в нашем примере с 4-мя этапами.

Волны сигналов для всех четырёх этапов выглядят одинаково, за исключением временно́й задержки в один такт от одного этапа к другому:

Рис. 3. Сигналы для всех этапов выглядят одинаково, за исключением временно́й задержки в один такт.
Рис. 3. Сигналы для всех этапов выглядят одинаково, за исключением временно́й задержки в один такт.

Схема с графиками на рисунке 3 выше разделена на 4 счётчика (для каждого выхода отдельно). Сравнение тактового входа с любым из выходов показывает соотношение частот 4:1.

Вопрос: Сколько этапов в обычном кольцевом счётчике нам понадобится для работы с десятичными числами?

Ответ: Десять этапов, потому что они будут повторять 1 каждые 10 тактовых импульсов.

Рис. 4. Альтернативный метод инициализации кольцевого счётчика.
Рис. 4. Альтернативный метод инициализации кольцевого счётчика.

Альтернативный метод инициализации кольцевого счётчика до шаблона 10002 показан на рисунке 4 выше. Волны сигналов сдвига идентичны приведённым выше и повторяются каждый четвертый тактовый импульс.

Требование инициализации является недостатком кольцевого счётчика по сравнению с обычным счётчиком.

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

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

«Самокорректирующийся» счётчик, вроде обычного синхронного двоичного счётчика, является более надёжным.

Рис. 5. Более надёжный «самокорректирующийся» счётчик – обычный синхронный двоичный счётчик.
Рис. 5. Более надёжный «самокорректирующийся» счётчик – обычный синхронный двоичный счётчик.

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

У реальных кольцевых счётчиков обычно больше этапов, и чтобы он был самодекодирующим, нужны вентили декодирования, как на рисунке 5 выше.

Ещё одним недостатком обычных кольцевых счётчиков является то, что он не является «самозапускающимся».

Если нам нужны декодированные выходы, кольцевой счётчик является предпочтительным вариантом, в частности, если большая часть логики находится в одном пакете сдвиговых регистров. Если же нет, сойдёт и обычный двоичный счётчик, менее сложный ввиду отсутствия декодера.

Рис. 6. Сигналы, декодированные синхронным двоичным счётчиком.
Рис. 6. Сигналы, декодированные синхронным двоичным счётчиком.

Сигналы, декодированные синхронным двоичным счётчиком, идентичны предыдущим сигналам кольцевого счётчика.

Последовательность счётчика (QA QB) = (00 01 10 11).

Счётчики Джонсона

Кольцевой счётчик с инвертированным выходом, также известный как счётчик Джонсона, преодолевает некоторые ограничения простейших кольцевых счётчиков.

Подобно кольцевому счётчику, счётчик Джонсона представляет собой сдвиговый регистр, возвращающий данные сам себе. Для произвольного коэффициента деления требуется половина этапов сопоставимого кольцевого счётчика (то есть, для работы с 10-ю разрядами понадобится не 10 этапов, а только 5).

Если инвертированный выход кольцевого счётчика подать обратно на вход вместо истинного выхода, то это счётчик Джонсона.

Разница между обычным кольцевым счётчиком и счётчиком Джонсона заключается в том, какой выход последнего этапа возвращается (Q или Q').

Внимательно сравните приведённое на рисунке 7 ниже подключение обратной связи с предыдущим кольцевым счётчиком.

Рис. 7. Это «обратное» соединение обратной связи оказывает кардинальное влияние на поведение счётчика.
Рис. 7. Это «обратное» соединение обратной связи оказывает кардинальное влияние на поведение счётчика.

Это «обратное» соединение обратной связи оказывает существенное влияние на поведение подобных схем.

Циркуляция одной 1 по кольцевому счётчику делит входные тактовые входы на коэффициент, равный количеству этапов.

При этом стоит учесть, что счётчик Джонсона делит на коэффициент, равный удвоенному количеству этапов.

Например, четырёхэтапный обычный кольцевой счётчик работает с 4-мя разрядами. Четырёхэтапный счётчик Джонсона – с 8-мью.

Запустите счётчик Джонсона, очистив все этапы до нулей перед первым тактом. Часто это происходит во время включения питания.

Ссылаясь на рисунок 8 ниже, первый такт сдвигает три нуля от (QA QB QC) вправо до (QB QC QD). На выходе QD' возникает 1 (дополнение к Q), которая сдвигается обратно в QA.

Таким образом, мы начинаем сдвигать единицы вправо, заменяя их на нули. В то время как обычный кольцевой счётчик рециркулирует одну единицу, четырёхэтапный счётчик Джонсона рециркулирует сначала четыре нуля, затем четыре единицы для 8-битного шаблона, а затем всё повторяется.

Рис. 8. Четырёхэтапный счётчик Джонсона повторяет четыре нуля, затем четыре единицы для 8-битного шаблона, а затем всё повторяется.
Рис. 8. Четырёхэтапный счётчик Джонсона повторяет четыре нуля, затем четыре единицы для 8-битного шаблона, а затем всё повторяется.

Приведённые выше волны сигналов показывают, что многофазные прямоугольные волны можно генерировать посредством счётчика Джонсона.

Четырёхэтапный блок, описанный выше, генерирует четыре перекрывающихся фазы с рабочим циклом 50%. Сколько этапов потребуется для генерации набора трёхфазных сигналов?

Например, трёхэтапный счётчик Джонсона, управляемый тактовым генератором с частотой 360 Гц, будет генерировать три прямоугольных сигнала с фазой 120° и частотой 60 Гц.

Выходы триггеров в счётчике Джонсона легко декодировать в единое состояние.

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

В нашем примере восемь из двух входных вентилей декодируют состояния для нашего примера счётчика Джонсона.

Рис. 9. Восемь из двух входных вентилей декодируют состояния счётчика Джонсона.
Рис. 9. Восемь из двух входных вентилей декодируют состояния счётчика Джонсона.

Независимо от того, как долго работает счётчик Джонсона, необходимы только вентили декодера с двумя входами.

Обратите внимание, что мы могли бы использовать неинвертированные входы для вентилей И, изменив входы вентиля с истинных на инвертированные в триггере, Q на Q' (и наоборот).

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

Рис. 10. Использованы неинвертированные входы для вентилей И, изменив входы вентилей с истинных на инвертированные.
Рис. 10. Использованы неинвертированные входы для вентилей И, изменив входы вентилей с истинных на инвертированные.

Выше наши четыре фазированных прямоугольных сигнала от QA до QD декодируются в восемь сигналов (от G0 до G7), активных в течение одного тактового периода из полного 8-тактового цикла.

Например, G0 активен на «высоком» уровне, когда и QA, и QD находятся на «низком» уровне. Таким образом, пары выходов различных регистров определяют каждое из восьми состояний нашего примера со счётчиком Джонсона.

Рис. 11. Пары выходов различных регистров определяют каждое из восьми состояний счётчика Джонсона.
Рис. 11. Пары выходов различных регистров определяют каждое из восьми состояний счётчика Джонсона.

Выше представлена наиболее полная детализированная схема счётчика Джонсона CD4022B. Незначительные детали опущены в листе технических данных производителя.

Основным новым дополнением к диаграмме по сравнению с предыдущими рисунками является детектор запрещённого состояния, состоящий из двух вентилей ИЛИ-НЕ.

Взгляните на таблицу состояний вставки. Существует 8 допустимых состояний, перечисленных в таблице.

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

Теоретически мы не попадём ни в одно из запрещённых состояний, пока в сдвиговом регистре действует СБРОС перед первым использованием.

Однако в «реальных условиях» после многих дней непрерывной работы из-за непредвиденных «шумов», помех в линии электропередач, близких ударов молнии и т. д. счётчик Джонсона может попасть в одно из запрещённых состояний.

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

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

Оказавшись в запрещённом состоянии, счётчик Джонсона не вернётся ни в одно из допустимых состояний без вмешательства. Это предназначение вентиля ИЛИ-НЕ.

Найдите в таблице последовательность (QA QB QC) = (010). Нигде эта последовательность не фигурирует в таблице разрешённых состояний.

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

Предположим, что (QA QB QC) = (010). Второй логический элемент ИЛИ-НЕ заменит QB = 1 на 0 на входе D на триггере QC.

Другими словами, запрещённое 010 заменяется на 000. И 000, который присутствует в таблице, будет сдвинут вправо.

В таблице есть последовательности тройных нулей. Именно так вентили ИЛИ-НЕ переводят счётчик Джонсона из запрещённого состояния в разрешённое.

Не все запрещённые состояния содержат последовательность 010. Однако через некоторое количество тактов эта последовательность появится, так что любые запрещённые состояния в конечном итоге будут экранированы.

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

Если для конкретного приложения это проблема, обязательно выполните СБРОС при включении питания.

Устройства со счётчиками Джонсона

Доступна пара счётчиков Джонсона на интегральных схемах с декодированными выходными состояниями.

Мы уже рассматривали внутреннюю логику CD4017 при обсуждении счётчиков Джонсона.

Устройства серии 4000 могут работать от источников питания от 3 до 15 В. Часть «74HC», разработанная для совместимости с ТТЛ (транзисторно-транзисторной логики), может работать от источника питания от 2 В до 6 В, она быстрее считывает и имеет большую выходную мощность.

Для получения полных спецификаций устройств на сайте производителя следует обратиться к страницам этих устройств:

  • CD4017 счётчик Джонсона с 10-ю декодированными выходами
  • CD4022 счётчик Джонсона с 8-ю декодированными выходами
  • 74HC4017 счётчик Джонсона с 10-ю декодированных выходами
Рис. 12. ANSI-обозначения для счётчиков Джонсона CD4017 и CD4022.
Рис. 12. ANSI-обозначения для счётчиков Джонсона CD4017 и CD4022.

ANSI-обозначения для счётчиков Джонсона, работающих с 10-ю (по модулю 10) и 8-ю (по модулю 8) разрядами показаны на рисунке 12 выше.

Эта форма приобретает характеристики именно счётчика, а не только производной от регистра сдвига, каковым он и является.

Формы сигналов для CD4022 по модулю 8 и их работа были показаны ранее. Декадный (по модулю 10) счётчик CD4017B/74HC4017 представляет собой 5-этапный счётчик Джонсона с десятью декодированными выходами.

Работа и волны сигналов аналогичны CD4017. Фактически, CD4017 и CD4022 подробно описаны в одном и том же листе данных.

74HC4017 — более современная версия декадного счётчика.

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

Под декодированием мы подразумеваем, что одна строка из десяти активна одновременно для «4017» вместо четырёхбитного двоично-десятичного кода из обычных счётчиков.

См. предыдущие волны сигналов для декодирования 1 из 8 для счётчика «4022» компании Octal Johnson.

Практическое применение

Рис. 13. Декодированный кольцевой счётчик по очереди приводит в действие светодиоды.
Рис. 13. Декодированный кольцевой счётчик по очереди приводит в действие светодиоды.

Благодаря приведённому на рисунке 13 выше счётчику Джонсона происходит смещение загорающегося светодиода каждую пятую долю секунды по кольцу из десяти LED.

Обратите внимание, что 74HC4017 используется вместо «40017», потому что имеет более высокую пропускную способность.

Из таблицы данных известно, что он работает при VКК = 5 В, VOH = 4,6 В при 4 мА.

Другими словами, выходы могут подавать 4 мА при напряжении 4,6 В для управления светодиодами. Имейте в виду, что светодиоды обычно управляются током от 10 до 20 мА.

Хотя светодиодный свет видим вплоть до 1 мА. Эта простая схема иллюстрирует применение HC4017.

Нужна яркая витрина? Используйте инвертирующие буферы для управления катодами светодиодов, подключённые к источнику питания с помощью анодных резисторов с меньшим значением.

555-таймер (о нём будет подробно рассказано в следующем томе V «Эксперименты»), выполняющий роль нестабильного мультивибратора, вырабатывает тактовую частоту, определяемую R1 R2 C1.

Это приводит в движение 74HC4017, выполняется шаг за такт, о чём свидетельствует очередной светодиод, загорающийся на кольце лампочек.

Имейте в виду: если 555-таймер не может надёжно управлять тактовым выводом «4015», его тогда стоит пропустить через одиночный буферный каскад между 555 и «4017».

Переменная R2 может изменять скорость шага. Ёмкость развязывающего конденсатора С2 не критична. Аналогичный конденсатор следует подключить к контактам питания и заземления для «4017».

Рис. 14. Трёхфазный генератор прямоугольной синусоидальной волны.
Рис. 14. Трёхфазный генератор прямоугольной синусоидальной волны.

Счётчик Джонсона генерирует 3-фазные прямоугольные волны, сдвинутые по фазе на 60° относительно (QA QB QC).

Приведённый выше счётчик Джонсона генерирует 3-фазные прямоугольные волны, сфазированные на 60° или разнесённые по отношению к (QA QB QC).

Однако нам нужно фазные сигналы на 120° для силовых приложений (см. Том II, «Переменный ток»).

Выбор P1 = QA P2 = QC P3 = QB' даёт желаемую фазировку 120°. См. рисунок 15 ниже.

Если на (P1 P2 P3) отфильтровать низкие частоты до синусоидальных волн и усилить их, это можно интерпретировать как начало 3-фазного источника питания.

Например, что, если нужно привести в действие небольшой трёхфазный авиационный двигатель с частотой 400 Гц?

Тогда подайте 6 × 400 Гц на вышеуказанную схему ТАКТОВЫЙ ВХОД. Обратите внимание, что все эти сигналы имеют рабочий цикл 50%.

Рис. 15. 3-этапный счётчик Джонсона генерирует трёхфазную волну сигнала.
Рис. 15. 3-этапный счётчик Джонсона генерирует трёхфазную волну сигнала.

Приведённая на рисунке 16 ниже схема создаёт 3-фазные неперекрывающиеся сигналы с рабочим циклом менее 50% для управления 3-фазными шаговыми двигателями.

Рис. 16. Схема: 3-х этапный (а фактически 6-этапный) счётчик Джонсона декодирует сигналы для трёхфазного шагового двигателя.
Рис. 16. Схема: 3-х этапный (а фактически 6-этапный) счётчик Джонсона декодирует сигналы для трёхфазного шагового двигателя.

На рисунке 16 выше мы декодируем перекрывающиеся выходы QA QB QC в неперекрывающиеся выходы P0 P1 P2, как показано и на рисунке 17 ниже.

Эти сигналы управляют 3-фазным шаговым двигателем после соответствующего усиления от уровня миллиампер до уровня доли ампер с использованием драйверов ULN2003, показанных выше, или драйвера пары Дарлингтона на дискретных компонентах, показанного в следующей схеме.

Не считая драйвера двигателя, для этой схемы требуется три корпуса ИС (интегральных схем): два корпуса с триггерами двойного типа «D» и счетверённый логический элемент И-НЕ.

Рис. 17. Графики: 3-х этапный (а фактически 6-этапный) счётчик Джонсона декодирует сигналы для трёхфазного шагового двигателя.
Рис. 17. Графики: 3-х этапный (а фактически 6-этапный) счётчик Джонсона декодирует сигналы для трёхфазного шагового двигателя.
Рис. 18. Последовательность Джонсона досрочно завершается сбросом в Q3, который в течении наносекунд является «высоким».
Рис. 18. Последовательность Джонсона досрочно завершается сбросом в Q3, который в течении наносекунд является «высоким».

Одиночный CD4017, показанный на рисунке 18 выше, генерирует необходимые 3-фазные шаговые сигналы в схеме на рисунке 18 выше, очищая счётчик Джонсона на счёте 3.

Счёт 3 сохраняется менее микросекунды, прежде чем будет очищен. Остальные отсчёты (Q0 = G0 Q1 = G1 Q2 = G2) остаются в том же состоянии каждый на полный тактовый период.

Драйверы биполярных транзисторов Дарлингтона, показанные выше, заменяют внутреннюю схему ULN2003.

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

Рис. 19. Волны сигналов имеют наибольший смысл в контексте внутренней логики CD4017.
Рис. 19. Волны сигналов имеют наибольший смысл в контексте внутренней логики CD4017.

Приведённые на рисунке 19 выше волны имеют наибольший смысл в контексте внутренней логики CD4017, показанной ранее в этом разделе.

Тем не менее, показаны логические уравнения И для внутреннего декодера. Сигналы QA QB QC представляют собой выходные сигналы регистра прямого сдвига счётчика Джонсона, недоступные на выводах.

Волна QD показывает сброс «4017» каждые три такта. Q0 Q1 Q2 и т. д. являются декодированными выходами, которые фактически доступны на выходных контактах.

Рис. 20. Счётчик Джонсона приводит в действие однополюсный шаговый двигатель.
Рис. 20. Счётчик Джонсона приводит в действие однополюсный шаговый двигатель.

На рисунке 20 выше мы генерируем сигналы для управления однополярным шаговым двигателем, для которого требуется только одна полярность управляющего сигнала.

То есть нам не приходится менять полярность привода на обмотке. Это упрощает схему силового привода между «4017» и двигателем.

Пары Дарлингтона из предыдущей схемы можно заменить на ULN3003.

Рис. 21. Волны сигналов счётчика Джонсона однополюсного шагового двигателя.
Рис. 21. Волны сигналов счётчика Джонсона однополюсного шагового двигателя.

Опять же, CD4017B генерирует необходимые волны сигналов со сбросом после отсчёта на выводе.

Декодированные выходы Q0 Q1 Q2 Q3 последовательно управляют обмотками шагового двигателя, при этом Q4 сбрасывает счётчик в конце каждой группы из четырёх импульсов.

См.также

Внешние ссылки