Как рассчитать счётчик импульсов: число триггеров
Дано: коэффициент счёта , частота входных импульсов МГц, счётчик асинхронный, задержка переключения одного триггера нс. Найти: число триггеров, число лишних состояний, код сброса и частоту на выходе.
Число разрядов находится как двоичный логарифм коэффициента счёта с округлением вверх, а недвоичный модуль получают обратной связью: логический элемент ловит первое запрещённое состояние и сбрасывает всю цепочку в ноль. Ответ: 7 триггеров, 28 лишних состояний, код сброса 1100100 с элементом И-НЕ по выходам , , , частота на выходе 10 кГц. Калькулятор сверху пересчитает те же величины под любой коэффициент счёта и покажет диаграмму состояний со сбросом.
Решение по шагам
Дано.
| Величина | Обозначение | Значение |
|---|---|---|
| Коэффициент счёта | 100 | |
| Частота входных импульсов | 1 МГц | |
| Задержка переключения триггера | 15 нс | |
| Организация переноса | асинхронная |
Найти: число триггеров , число лишних состояний , код сброса и частоту .
Шаг 1. Сколько нужно триггеров. Один триггер со счётным входом имеет два устойчивых состояния и делит частоту пополам, поэтому цепочка из триггеров различает комбинаций. Чтобы счётчик успел пройти все значений, ёмкость цепочки должна быть не меньше коэффициента счёта:
Шесть триггеров дали бы только состояния, а этого мало. Семь дают 128, и запаса хватает. Округление здесь всегда вверх: дробного триггера не бывает, поэтому даже при пришлось бы ставить семь разрядов.
Шаг 2. Ёмкость цепочки и лишние состояния. Полная ёмкость семиразрядного двоичного счётчика и избыток над нужным модулем:
Двадцать восемь комбинаций из 128 в работе не участвуют. Именно поэтому одной цепочкой триггеров задача не решается: её надо принудительно возвращать в ноль.
Шаг 3. Код сброса. Счёт идёт от 0 до 99, то есть первое запрещённое состояние равно самому коэффициенту счёта. Переводим его в двоичный код по семи разрядам:
Расписываем по выходам триггеров:
| Разряд | |||||||
|---|---|---|---|---|---|---|---|
| Вес | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Код числа 100 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
Единицы стоят в разрядах , и . Значит, на трёхвходовой элемент И-НЕ заводятся именно эти три выхода, а его выход идёт на входы сброса всех семи триггеров. Остальные разряды в схеме дешифрации не участвуют: в состоянии 100 они нулевые, и добавлять их не нужно.
Шаг 4. Частота на выходе. Счётчик с коэффициентом счёта одновременно работает делителем частоты: один выходной импульс приходится на входных.
Шаг 5. Проверка по быстродействию. В асинхронном счётчике каждый следующий триггер тактируется выходом предыдущего, поэтому задержки складываются вдоль всей цепочки:
Период входных импульсов равен 1000 нс, а переходный процесс длится 105 нс, то есть запас почти десятикратный. Схема работоспособна.
Ответ: триггеров, ёмкость 128, лишних состояний 28, сброс по коду 1100100 (элемент И-НЕ на выходах , , ), кГц, предельная частота около 9,5 МГц.
Формула и откуда она берётся
Формула не запоминается отдельно, она выводится за одну строку. Счётчик хранит своё текущее значение в виде набора нулей и единиц на выходах триггеров. Набор из двоичных разрядов кодирует ровно различных чисел: от 0 до . Чтобы различать состояний, нужно неравенство , а наименьшее целое , которое его удовлетворяет, и есть двоичный логарифм с округлением вверх.
Отсюда же видно, почему точные степени двойки удобны. При , 16, 64, 256 логарифм выходит целым, лишних состояний нет вовсе, и счётчик обнуляется сам после переполнения старшего разряда. Любой другой модуль требует схемы, которая укорачивает естественный цикл: либо сброс по запрещённому коду, либо предварительная установка начального числа.
Вторая формула, , следует из того же определения. Счётчик выдаёт импульс переноса один раз за полный цикл, а цикл состоит из входных импульсов. Поэтому один и тот же узел в схеме называют то счётчиком, то делителем частоты: разница только в том, что снимают с выхода. Если нужен именно делитель, интересует выход переноса, если нужен счётчик, интересует параллельный код на выходах . Сами триггеры, из которых собрана цепочка, подробно разобраны в статье про RS-триггер на элементах И-НЕ.
Схема обратной связи: как из 128 сделать 100
Приём стандартный. Счётчик считает как обычный двоичный, но в момент, когда на выходах появляется код числа , комбинационная схема формирует короткий импульс и сбрасывает все триггеры. Состояние существует физически, просто живёт доли наносекунды и в счёт не попадает: цикл получается 0, 1, …, , то есть ровно состояний.
Дешифратор строится по единичным разрядам кода. Если на входы И-НЕ завести все разряды, включая нулевые, схема не сработает никогда; если взять только один разряд, сброс произойдёт раньше времени. Минимизировать выражение сброса удобно теми же приёмами, что и любую логическую функцию, они описаны в разборе про упрощение логического выражения.
Главная практическая тонкость асинхронного сброса в том, что триггеры сбрасываются не одновременно. Как только самый быстрый из них уйдёт в ноль, код на выходах И-НЕ перестанет совпадать с , импульс сброса оборвётся, и остальные триггеры могут не успеть обнулиться. Отсюда два требования: импульс сброса растягивают дополнительной RS-защёлкой или одновибратором, а в ответственных схемах переходят на синхронный сброс, где обнуление происходит по фронту тактового сигнала.
Каскад из двух декад: второй способ получить сотню
Тот же коэффициент счёта 100 собирают иначе: два декадных счётчика включают последовательно, выход переноса первого подают на вход второго. Общий коэффициент равен произведению:
Каждая декада внутри устроена так же, как разобрано выше: триггера, ёмкость , лишних состояний 6, сброс по коду , то есть по разрядам и . Всего на каскад уходит восемь триггеров вместо семи.
Формально это дороже на один разряд, но на практике схему с декадами выбирают чаще. Её выход сразу даёт двоично-десятичный код, который без преобразования подаётся на дешифратор семисегментного индикатора, а любой промежуточный модуль набирается заменой одной декады. Сплошной двоичный счётчик со сбросом экономит разряд, зато требует пересчёта дешифратора при каждом изменении и выдаёт код, который для индикации ещё надо переводить в десятичный.
Выбор между двумя вариантами сводится к вопросу, что делает следующий узел. Нужен делитель частоты внутри схемы, и код никто не читает, тогда выгоднее двоичный счётчик с обратной связью. Нужен показывающий прибор или измеритель, тогда каскад декад.
Частые ошибки
- Округление логарифма вниз или до ближайшего. При ответ 6 триггеров встречается постоянно, потому что 6,64 округляют по школьному правилу. В расчёте разрядности округление только вверх.
- Дешифрация кода вместо . Сброс по коду 99 обрежет цикл до 99 состояний, и коэффициент счёта окажется на единицу меньше заданного. Ловить надо первое запрещённое состояние.
- В схему сброса заводят все разряды подряд, а не только единичные. Элемент И-НЕ с нулевыми входами не переключится, и счётчик будет считать до 128.
- Путают коэффициент счёта с максимальным показанием. Счётчик с показывает максимум 99, а не 100: ноль тоже состояние.
- Забывают про накопление задержек в асинхронной цепочке. Предельная частота ограничена суммой задержек всех разрядов, а не одного триггера, и на высокой частоте старшие разряды выдают ложные коды во время переходного процесса.
- Считают частоту на выходе умножением вместо деления. Счётчик всегда понижает частоту, выходная величина обязана получиться меньше входной.
FAQ
Сколько триггеров нужно для счётчика до 1000? Считаем по той же формуле: , округляем вверх, получаем 10 триггеров. Ёмкость , лишних состояний 24, сброс по коду . На каскаде декад это три микросхемы и 12 триггеров.
Чем счётчик отличается от делителя частоты? Схемотехнически ничем, различается только используемый выход. У делителя берут импульс переноса и получают частоту , у счётчика читают параллельный код состояний. Одна и та же микросхема работает и тем, и другим.
Можно ли обойтись без сброса и получить недвоичный модуль иначе? Да, вторым способом является предварительная установка. Счётчик работает на вычитание, в него загружается число , а сигнал обнуления при достижении нуля перезагружает это же число. Лишние состояния при этом не возникают, гонок при сбросе нет, но схема требует счётчика с входами параллельной загрузки.
Как понять, что счётчик не успевает по частоте? Сравнить период входных импульсов с суммарной задержкой цепочки. Если меньше , следующий импульс придёт раньше, чем закончится перенос, и счёт собьётся. Лечится переходом на синхронный счётчик, где все триггеры тактируются одновременно и задержка не накапливается.
Коротко
- Число триггеров: , округление всегда вверх. Для получается .
- Ёмкость цепочки , лишних состояний , поэтому нужна обратная связь.
- Код сброса равен двоичной записи самого : , на элемент И-НЕ заводятся разряды , , .
- Частота на выходе МГц кГц.
- Проверка быстродействия асинхронной схемы: нс, предел около 9,5 МГц, запас при входной частоте 1 МГц почти десятикратный.
Похожие задачи
Как определить обратное напряжение диода: расчёт
Как определить обратное напряжение диода в выпрямителе: расчёт амплитуды обмотки, множители схем от однополупериодной до мостовой, выбор класса диода с запасом и разбор с числами.
Орг./аналит. химияОкисление перманганатом калия: реакции в трёх средах
Как написать окисление перманганатом калия в кислой, нейтральной и щелочной средах: продукты восстановления марганца, метод электронного баланса, расстановка коэффициентов, расчёт титранта.
Химия (физич./структурная)Как найти активность иона: расчёт по Дебаю-Хюккелю
Как найти активность иона в растворе: ионная сила по всем ионам, коэффициент активности по предельному закону Дебая-Хюккеля, произведение f на c, разбор с числами и калькулятор.
ГенетикаКак найти частоту генотипов: закон Харди-Вайнберга
Разбор задачи по популяционной генетике: как найти частоту генотипов по закону Харди-Вайнберга, формула p2 плюс 2pq плюс q2, расчёт числа особей и калькулятор частот.
МатанализКак найти дифференциал второго порядка функции: формула
Разбираем, как найти дифференциал второго порядка функции: формула через вторую производную, пошаговый расчёт для y = x^3 ln x при dx = 0,1, потеря инвариантности формы и случай двух переменных.
СопроматКак найти допускаемую нагрузку: расчёт по прочности
Как найти допускаемую нагрузку из условия прочности: допускаемое напряжение через коэффициент запаса, площадь и момент сопротивления, расчёт для растяжения и изгиба, калькулятор.