EssayAI
Блог
Блог

Как рассчитать счётчик импульсов: число триггеров

Запрос

Дано: коэффициент счёта K=100K = 100, частота входных импульсов fвх=1f_{\text{вх}} = 1 МГц, счётчик асинхронный, задержка переключения одного триггера tзд=15t_{\text{зд}} = 15 нс. Найти: число триггеров, число лишних состояний, код сброса и частоту на выходе.

Число разрядов находится как двоичный логарифм коэффициента счёта с округлением вверх, а недвоичный модуль получают обратной связью: логический элемент ловит первое запрещённое состояние и сбрасывает всю цепочку в ноль. Ответ: 7 триггеров, 28 лишних состояний, код сброса 1100100 с элементом И-НЕ по выходам Q6Q_6, Q5Q_5, Q2Q_2, частота на выходе 10 кГц. Калькулятор сверху пересчитает те же величины под любой коэффициент счёта и покажет диаграмму состояний со сбросом.

Решение по шагам

Дано.

ВеличинаОбозначениеЗначение
Коэффициент счётаKK100
Частота входных импульсовfвхf_{\text{вх}}1 МГц
Задержка переключения триггераtздt_{\text{зд}}15 нс
Организация переносаасинхронная

Найти: число триггеров nn, число лишних состояний Δ\Delta, код сброса и частоту fвыхf_{\text{вых}}.

Шаг 1. Сколько нужно триггеров. Один триггер со счётным входом имеет два устойчивых состояния и делит частоту пополам, поэтому цепочка из nn триггеров различает 2n2^n комбинаций. Чтобы счётчик успел пройти все KK значений, ёмкость цепочки должна быть не меньше коэффициента счёта:

2n≥K⇒n=⌈log⁡2K⌉=⌈log⁡2100⌉=⌈6,644⌉=7.2^n \ge K \quad \Rightarrow \quad n = \lceil \log_2 K \rceil = \lceil \log_2 100 \rceil = \lceil 6{,}644 \rceil = 7 .

Шесть триггеров дали бы только 26=642^6 = 64 состояния, а этого мало. Семь дают 128, и запаса хватает. Округление здесь всегда вверх: дробного триггера не бывает, поэтому даже при K=65K = 65 пришлось бы ставить семь разрядов.

Шаг 2. Ёмкость цепочки и лишние состояния. Полная ёмкость семиразрядного двоичного счётчика и избыток над нужным модулем:

Kmax⁡=2n=27=128,Δ=Kmax⁡−K=128−100=28.K_{\max} = 2^n = 2^7 = 128, \qquad \Delta = K_{\max} - K = 128 - 100 = 28 .

Двадцать восемь комбинаций из 128 в работе не участвуют. Именно поэтому одной цепочкой триггеров задача не решается: её надо принудительно возвращать в ноль.

Шаг 3. Код сброса. Счёт идёт от 0 до 99, то есть первое запрещённое состояние равно самому коэффициенту счёта. Переводим его в двоичный код по семи разрядам:

10010=64+32+4=11001002.100_{10} = 64 + 32 + 4 = 1100100_2 .

Расписываем по выходам триггеров:

РазрядQ6Q_6Q5Q_5Q4Q_4Q3Q_3Q2Q_2Q1Q_1Q0Q_0
Вес6432168421
Код числа 1001100100

Единицы стоят в разрядах Q6Q_6, Q5Q_5 и Q2Q_2. Значит, на трёхвходовой элемент И-НЕ заводятся именно эти три выхода, а его выход идёт на входы сброса всех семи триггеров. Остальные разряды в схеме дешифрации не участвуют: в состоянии 100 они нулевые, и добавлять их не нужно.

Шаг 4. Частота на выходе. Счётчик с коэффициентом счёта KK одновременно работает делителем частоты: один выходной импульс приходится на KK входных.

fвых=fвхK=1 000 000100=10 000 Гц=10 кГц.f_{\text{вых}} = \frac{f_{\text{вх}}}{K} = \frac{1\ 000\ 000}{100} = 10\ 000\ \text{Гц} = 10\ \text{кГц} .

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

tΣ=n⋅tзд=7⋅15=105 нс,fmax⁡=1tΣ=1105⋅10−9≈9,52 МГц.t_{\Sigma} = n \cdot t_{\text{зд}} = 7 \cdot 15 = 105\ \text{нс}, \qquad f_{\max} = \frac{1}{t_{\Sigma}} = \frac{1}{105 \cdot 10^{-9}} \approx 9{,}52\ \text{МГц} .

Период входных импульсов равен 1000 нс, а переходный процесс длится 105 нс, то есть запас почти десятикратный. Схема работоспособна.

Ответ: n=7n = 7 триггеров, ёмкость 128, лишних состояний 28, сброс по коду 1100100 (элемент И-НЕ на выходах Q6Q_6, Q5Q_5, Q2Q_2), fвых=10f_{\text{вых}} = 10 кГц, предельная частота около 9,5 МГц.

Формула и откуда она берётся

Формула n=⌈log⁡2K⌉n = \lceil \log_2 K \rceil не запоминается отдельно, она выводится за одну строку. Счётчик хранит своё текущее значение в виде набора нулей и единиц на выходах триггеров. Набор из nn двоичных разрядов кодирует ровно 2n2^n различных чисел: от 0 до 2n−12^n - 1. Чтобы различать KK состояний, нужно неравенство 2n≥K2^n \ge K, а наименьшее целое nn, которое его удовлетворяет, и есть двоичный логарифм с округлением вверх.

Отсюда же видно, почему точные степени двойки удобны. При K=8K = 8, 16, 64, 256 логарифм выходит целым, лишних состояний нет вовсе, и счётчик обнуляется сам после переполнения старшего разряда. Любой другой модуль требует схемы, которая укорачивает естественный цикл: либо сброс по запрещённому коду, либо предварительная установка начального числа.

Вторая формула, fвых=fвх/Kf_{\text{вых}} = f_{\text{вх}} / K, следует из того же определения. Счётчик выдаёт импульс переноса один раз за полный цикл, а цикл состоит из KK входных импульсов. Поэтому один и тот же узел в схеме называют то счётчиком, то делителем частоты: разница только в том, что снимают с выхода. Если нужен именно делитель, интересует выход переноса, если нужен счётчик, интересует параллельный код на выходах QQ. Сами триггеры, из которых собрана цепочка, подробно разобраны в статье про RS-триггер на элементах И-НЕ.

Схема обратной связи: как из 128 сделать 100

Приём стандартный. Счётчик считает как обычный двоичный, но в момент, когда на выходах появляется код числа KK, комбинационная схема формирует короткий импульс и сбрасывает все триггеры. Состояние KK существует физически, просто живёт доли наносекунды и в счёт не попадает: цикл получается 0, 1, …, K−1K-1, то есть ровно KK состояний.

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

Главная практическая тонкость асинхронного сброса в том, что триггеры сбрасываются не одновременно. Как только самый быстрый из них уйдёт в ноль, код на выходах И-НЕ перестанет совпадать с KK, импульс сброса оборвётся, и остальные триггеры могут не успеть обнулиться. Отсюда два требования: импульс сброса растягивают дополнительной RS-защёлкой или одновибратором, а в ответственных схемах переходят на синхронный сброс, где обнуление происходит по фронту тактового сигнала.

Каскад из двух декад: второй способ получить сотню

Тот же коэффициент счёта 100 собирают иначе: два декадных счётчика включают последовательно, выход переноса первого подают на вход второго. Общий коэффициент равен произведению:

K=K1⋅K2=10⋅10=100.K = K_1 \cdot K_2 = 10 \cdot 10 = 100 .

Каждая декада внутри устроена так же, как разобрано выше: n=⌈log⁡210⌉=4n = \lceil \log_2 10 \rceil = 4 триггера, ёмкость 24=162^4 = 16, лишних состояний 6, сброс по коду 1010=1010210_{10} = 1010_2, то есть по разрядам Q3Q_3 и Q1Q_1. Всего на каскад уходит восемь триггеров вместо семи.

Формально это дороже на один разряд, но на практике схему с декадами выбирают чаще. Её выход сразу даёт двоично-десятичный код, который без преобразования подаётся на дешифратор семисегментного индикатора, а любой промежуточный модуль набирается заменой одной декады. Сплошной двоичный счётчик со сбросом экономит разряд, зато требует пересчёта дешифратора при каждом изменении KK и выдаёт код, который для индикации ещё надо переводить в десятичный.

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

Частые ошибки

  • Округление логарифма вниз или до ближайшего. При K=100K = 100 ответ 6 триггеров встречается постоянно, потому что 6,64 округляют по школьному правилу. В расчёте разрядности округление только вверх.
  • Дешифрация кода K−1K-1 вместо KK. Сброс по коду 99 обрежет цикл до 99 состояний, и коэффициент счёта окажется на единицу меньше заданного. Ловить надо первое запрещённое состояние.
  • В схему сброса заводят все разряды подряд, а не только единичные. Элемент И-НЕ с нулевыми входами не переключится, и счётчик будет считать до 128.
  • Путают коэффициент счёта с максимальным показанием. Счётчик с K=100K = 100 показывает максимум 99, а не 100: ноль тоже состояние.
  • Забывают про накопление задержек в асинхронной цепочке. Предельная частота ограничена суммой задержек всех разрядов, а не одного триггера, и на высокой частоте старшие разряды выдают ложные коды во время переходного процесса.
  • Считают частоту на выходе умножением вместо деления. Счётчик всегда понижает частоту, выходная величина обязана получиться меньше входной.

FAQ

Сколько триггеров нужно для счётчика до 1000? Считаем по той же формуле: log⁡21000=9,97\log_2 1000 = 9{,}97, округляем вверх, получаем 10 триггеров. Ёмкость 210=10242^{10} = 1024, лишних состояний 24, сброс по коду 100010=111110100021000_{10} = 1111101000_2. На каскаде декад это три микросхемы и 12 триггеров.

Чем счётчик отличается от делителя частоты? Схемотехнически ничем, различается только используемый выход. У делителя берут импульс переноса и получают частоту fвх/Kf_{\text{вх}} / K, у счётчика читают параллельный код состояний. Одна и та же микросхема работает и тем, и другим.

Можно ли обойтись без сброса и получить недвоичный модуль иначе? Да, вторым способом является предварительная установка. Счётчик работает на вычитание, в него загружается число K−1K - 1, а сигнал обнуления при достижении нуля перезагружает это же число. Лишние состояния при этом не возникают, гонок при сбросе нет, но схема требует счётчика с входами параллельной загрузки.

Как понять, что счётчик не успевает по частоте? Сравнить период входных импульсов с суммарной задержкой цепочки. Если TвхT_{\text{вх}} меньше n⋅tздn \cdot t_{\text{зд}}, следующий импульс придёт раньше, чем закончится перенос, и счёт собьётся. Лечится переходом на синхронный счётчик, где все триггеры тактируются одновременно и задержка не накапливается.

Коротко

  1. Число триггеров: n=⌈log⁡2K⌉n = \lceil \log_2 K \rceil, округление всегда вверх. Для K=100K = 100 получается n=7n = 7.
  2. Ёмкость цепочки 2n=1282^n = 128, лишних состояний 128−100=28128 - 100 = 28, поэтому нужна обратная связь.
  3. Код сброса равен двоичной записи самого KK: 10010=11001002100_{10} = 1100100_2, на элемент И-НЕ заводятся разряды Q6Q_6, Q5Q_5, Q2Q_2.
  4. Частота на выходе fвых=fвх/K=1f_{\text{вых}} = f_{\text{вх}} / K = 1 МГц /100=10/ 100 = 10 кГц.
  5. Проверка быстродействия асинхронной схемы: tΣ=7⋅15=105t_{\Sigma} = 7 \cdot 15 = 105 нс, предел около 9,5 МГц, запас при входной частоте 1 МГц почти десятикратный.
Задача в тетради или методичке? Сфотографируйте условие - сервис распознает его и решит по шагам с пояснениями.

Похожие задачи

Электроника

Как определить обратное напряжение диода: расчёт

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

Орг./аналит. химия

Окисление перманганатом калия: реакции в трёх средах

Как написать окисление перманганатом калия в кислой, нейтральной и щелочной средах: продукты восстановления марганца, метод электронного баланса, расстановка коэффициентов, расчёт титранта.

Химия (физич./структурная)

Как найти активность иона: расчёт по Дебаю-Хюккелю

Как найти активность иона в растворе: ионная сила по всем ионам, коэффициент активности по предельному закону Дебая-Хюккеля, произведение f на c, разбор с числами и калькулятор.

Генетика

Как найти частоту генотипов: закон Харди-Вайнберга

Разбор задачи по популяционной генетике: как найти частоту генотипов по закону Харди-Вайнберга, формула p2 плюс 2pq плюс q2, расчёт числа особей и калькулятор частот.

Матанализ

Как найти дифференциал второго порядка функции: формула

Разбираем, как найти дифференциал второго порядка функции: формула через вторую производную, пошаговый расчёт для y = x^3 ln x при dx = 0,1, потеря инвариантности формы и случай двух переменных.

Сопромат

Как найти допускаемую нагрузку: расчёт по прочности

Как найти допускаемую нагрузку из условия прочности: допускаемое напряжение через коэффициент запаса, площадь и момент сопротивления, расчёт для растяжения и изгиба, калькулятор.