Счетчик (цифровой)
В цифровой логике и вычислениях счетчик — это устройство, которое хранит (а иногда и отображает) количество раз, когда определенное событие или процесс произошло , часто по отношению к часам . Наиболее распространенным типом является последовательная цифровая логическая схема с входной линией, называемой тактовой частотой , и несколькими выходными линиями. Значения в выходных строках представляют собой числа в двоичной или BCD- системе счисления. Каждый импульс, подаваемый на тактовый вход, увеличивает или уменьшает число в счетчике.
Схема счетчика обычно состоит из нескольких триггеров, соединенных в каскад. Счетчики являются очень широко используемым компонентом в цифровых схемах и производятся как отдельные интегральные схемы , а также входят в состав более крупных интегральных схем.
Электронные счетчики [ править ]
Электронный схему, которая имеет тактовый счетчик представляет собой последовательную логическую входной сигнал и группу выходных сигналов, которые представляют собой целочисленное значение «счета». По каждому квалифицированному фронту тактового сигнала схема будет увеличивать (или уменьшать, в зависимости от конструкции схемы) счетчики. Когда счетчики достигнут конца последовательности счета (максимальное количество при увеличении; нулевое значение при уменьшении), следующий тактовый сигнал приведет к переполнению или опустошению счетчиков, и последовательность счета начнется заново. Внутри счетчики используют триггеры для представления текущих значений и сохранения результатов между тактами. В зависимости от типа счетчика выходные данные могут быть прямым представлением счетчиков (двоичное число) или могут быть закодированы. Примерами последних являются кольцевые счетчики и счетчики, выводящие коды Грея.
Многие счетчики предоставляют дополнительные входные сигналы для облегчения динамического управления последовательностью счета, например:
- Сброс – обнуляет счетчики. Некоторые производители микросхем называют это «очистить» или «основной сброс (MR)».
- Включить – разрешает или запрещает подсчет.
- Направление – определяет, будут ли счетчики увеличиваться или уменьшаться.
- Данные – параллельные входные данные, которые представляют определенное значение счетчика.
- Загрузить – копирует параллельные входные данные в счетчики.
Некоторые счетчики предоставляют выходные данные подсчета терминалов, которые указывают, что следующий тактовый сигнал вызовет переполнение или опустошение. Обычно это используется для реализации каскадирования счетчиков (объединения двух или более счетчиков для создания одного более крупного счетчика) путем подключения выхода Terminal Count одного счетчика к входу Enable следующего счетчика.
Модуль счетчика — это количество состояний в его последовательности счета. Максимально возможный модуль определяется количеством триггеров. Например, четырехбитный счетчик может иметь модуль до 16 (2^4).
Счетчики обычно подразделяются на синхронные и асинхронные. В синхронных счетчиках все триггеры используют общие часы и меняют состояние одновременно. В асинхронных счетчиках каждый триггер имеет уникальные часы, и состояния триггера меняются в разное время.
Счетчики классифицируются по-разному. Например:
- Счетчик модулей – считает определенное количество состояний.
- Счетчик декад – счетчик по модулю десять (считает по десяти состояниям).
- Счетчик прямого/обратного счета - считает вверх и вниз по указанию управляющего входа или с использованием отдельных тактовых импульсов «вверх» и «вниз».
- Кольцевой счетчик – образован «круговым» сдвиговым регистром .
- Счетчик Джонсона - счетчик с перекрученным кольцом.
- Счетчик кода Грея – выводит последовательность кодов Грея.
- Счетчик-генератор сдвигового регистра — на основе сдвигового регистра с обратной связью .
Счетчики реализуются различными способами, в том числе в виде специализированных MSI и LSI интегральных схем , встроенных счетчиков в ASIC , периферийных устройств общего назначения и таймеров в микроконтроллерах , а также в виде IP-блоков в FPGA .
Асинхронный (пульсирующий) счетчик [ править ]
Асинхронный (пульсирующий) счетчик представляет собой «цепочку» переключаемых (T) триггеров, в которой наименее значимый триггер (бит 0) тактируется внешним сигналом (тактовый сигнал на входе счетчика), а все остальные триггеры тактируются выходным сигналом ближайшего, менее значимого триггера (например, бит 0 синхронизирует триггер бита 1, бит 1 синхронизирует триггер бита 2 и т. д.). Первый триггер тактируется по нарастающим фронтам; все остальные триггеры в цепочке тактируются по падающим фронтам тактового сигнала. Каждый триггер вводит задержку от фронта тактового сигнала до переключения выхода, тем самым вызывая изменение битов счетчика в разное время и создавая пульсирующий эффект при распространении входного тактового сигнала по цепочке. При реализации с помощью дискретных триггеров счетчики пульсаций обычно реализуются с помощью триггеров JK , причем каждый триггер настроен на переключение при тактировании (т. е. J и K оба подключены к высокому логическому уровню).
В простейшем случае однобитовый счетчик состоит из одного триггера. Этот счетчик будет увеличиваться (путем переключения своего выхода) один раз за такт и будет считать от нуля до единицы перед переполнением (начиная с нуля). Каждое выходное состояние соответствует двум тактовым циклам; следовательно, выходная частота триггера равна ровно половине частоты входного тактового сигнала. Если этот выход затем использовать в качестве тактового сигнала для второго триггера, пара триггеров сформирует двухбитный счетчик пульсаций со следующей последовательностью состояний:
Тактовый цикл | 1 квартал | Q0 | (Q1:Q0) десятичный |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
2 | 1 | 0 | 2 |
3 | 1 | 1 | 3 |
4 | 0 | 0 | 0 |
В цепочку можно добавить дополнительные триггеры для формирования счетчиков любого произвольного размера слова, при этом выходная частота каждого бита будет равна ровно половине частоты ближайшего, менее значимого бита.
Счетчики пульсаций демонстрируют нестабильные выходные состояния, пока входной тактовый сигнал распространяется по цепи. Продолжительность этой нестабильности (время установления выходного сигнала) пропорциональна количеству триггеров. Это делает счетчики пульсаций непригодными для использования в синхронных схемах , где требуется, чтобы счетчик имел быстрое время установления выходного сигнала. Кроме того, часто нецелесообразно использовать выходные биты счетчика пульсаций в качестве тактовых импульсов для внешних схем, поскольку эффект пульсаций вызывает рассогласование синхронизации между битами. Счетчики пульсаций обычно используются в качестве счетчиков общего назначения и делителей тактовой частоты в приложениях, где мгновенный счет и временной сдвиг не важны.
Синхронный счетчик [ править ]
В синхронном счетчике тактовые входы триггеров соединены, и общий тактовый сигнал одновременно запускает все триггеры. Следовательно, все триггеры меняют состояние одновременно (параллельно).
Например, схема, показанная справа, представляет собой четырехбитный синхронный счетчик с возрастающим (обратным счетом), реализованный с помощью JK-триггеров. Каждый бит этого счетчика может переключаться, когда все менее значимые биты находятся в состоянии высокого логического уровня. По нарастающему фронту тактового сигнала бит 1 переключается, если бит 0 имеет высокий логический уровень; бит 2 переключается, если оба бита 0 и 1 имеют высокий уровень; Бит 3 переключается, если все биты 2, 1 и 0 имеют высокий уровень.
Счетчик десятилетий [ править ]
Счетчик декад считает десятичные, а не двоичные цифры. Декадный счетчик может иметь каждую (то есть он может считать в двоично-десятичном формате , как это сделала интегральная схема 7490 ) или другие двоичные кодировки. Десятичный счетчик — это двоичный счетчик, предназначенный для счета до 1001 (десятеричное число 9). Обычный четырехступенчатый счетчик можно легко преобразовать в десятичный счетчик, добавив вентиль И-НЕ, как показано на схеме справа. Обратите внимание, что FF2 и FF4 предоставляют входы для вентиля И-НЕ. Выходы вентиля И-НЕ подключены к входу CLR каждого из FF.". [1] Он считает от 0 до 9, а затем сбрасывается до нуля. Выход счетчика можно обнулить, подав низкий уровень на линию сброса. Затем счетчик увеличивается с каждым тактовым импульсом, пока не достигнет 1001 (десятичное 9). Когда оно увеличивается до 1010 (десятичное число 10), на обоих входах логического элемента И-НЕ устанавливается высокий уровень. В результате выход NAND переходит в низкий уровень и сбрасывает счетчик в ноль. Низкий уровень D может быть сигналом ВЫПОЛНЕНИЕ, указывающим, что был счет до десяти.
Счетчик звонков [ править ]
Кольцевой счетчик представляет собой регистр циклического сдвига, который инициируется таким образом, что только один из его триггеров находится в состоянии 1, а другие находятся в нулевых состояниях.
Кольцевой счетчик представляет собой сдвиговый регистр (каскадное соединение триггеров ) с выходом последнего, подключенным к входу первого, то есть по кольцу. Обычно циркулирует шаблон, состоящий из одного бита, поэтому состояние повторяется каждые n тактов, если используется n триггеров.
Счетчик Джонсона [ править ]
Счетчик Джонсона (или счетчик с переключаемым хвостом , счетчик с витыми кольцами , счетчик с шагающим кольцом или счетчик Мёбиуса ) представляет собой модифицированный кольцевой счетчик, в котором выходной сигнал последней ступени инвертируется и возвращается в качестве входного сигнала на первую ступень. [2] [3] [4] Регистр циклически обрабатывает последовательность битовых комбинаций, длина которой равна удвоенной длине сдвигового регистра, и продолжается бесконечно. Эти счетчики находят специальные применения, аналогичные декадному счетчику (примечание: 74x4017 декадный счетчик представляет собой счетчик Джонсона), цифро-аналоговому преобразованию и т. д. Их можно легко реализовать с помощью триггеров типа D или JK.
Счетчики информатики [ править ]
В теории вычислимости счетчик считается разновидностью памяти. Счетчик хранит одно натуральное число (первоначально ноль ) и может быть произвольной длины. Счетчик обычно рассматривается совместно с конечным автоматом (КАМ), который может выполнять над счетчиком следующие операции:
- Проверьте, равен ли счетчик нулю
- Увеличьте счетчик на единицу.
- Уменьшите счетчик на единицу (если он уже равен нулю, он останется неизменным).
Следующие машины перечислены в порядке мощности, каждая из которых строго мощнее предыдущей:
- Детерминированный или недетерминированный автомат плюс два счетчика
- Недетерминированный автомат плюс один стек
- Недетерминированный автомат плюс один счетчик
- Детерминированный автомат плюс один счетчик
- Детерминированный или недетерминированный автомат.
Для первого и последнего не имеет значения, является ли автомат детерминированным конечным автоматом или недетерминированным конечным автоматом . Они имеют одинаковую силу. Первые два и последний — уровни иерархии Хомского .
Первая машина, автомат плюс два счетчика, по мощности эквивалентна машине Тьюринга . См. статью о счетчиках для доказательства.
Веб-счетчик [ править ]
или Веб-счетчик счетчик посещений — это компьютерная программа, которая показывает количество посетителей или посещений определенной веб-страницы . После настройки эти счетчики будут увеличиваться на единицу при каждом доступе к веб-странице в веб-браузере .
Число обычно отображается в виде встроенного цифрового изображения или в виде обычного текста или на физическом счетчике, например механическом счетчике . Изображения могут быть представлены различными шрифтами или стилями; Классический пример — колеса одометра .
Веб-счетчик был популярен в середине-конце 1990-х и начале 2000-х годов, позже его заменили более подробные и полные измерения веб-трафика .
Компьютерные счетчики [ править ]
Многие системы автоматизации используют ПК и ноутбуки для мониторинга различных параметров машин и производственных данных. Счетчики могут подсчитывать такие параметры, как количество произведенных изделий, номер производственной партии и измерения количества использованного материала.
Механические счетчики [ править ]
Задолго до того, как электроника стала широко распространенной, для подсчета событий использовались механические устройства. Они известны как счетчики подсчета . Обычно они состоят из серии дисков, установленных на оси, с цифрами от нуля до девяти, нанесенными на их краях. Крайний правый диск перемещается на один шаг при каждом событии. Каждый диск, кроме крайнего левого, имеет выступ, который перемещает следующий диск влево на один шаг после завершения одного оборота. Такие счетчики использовались в качестве одометров для велосипедов и автомобилей, а также в магнитофонах , топливораздаточных колонках , в производственных машинах, а также в другой технике. Одним из крупнейших производителей была компания Veeder-Root, ее название часто использовалось для счетчиков этого типа. [5]
Портативные счетчики используются в основном для учета и подсчета посетителей мероприятий.
Электромеханические счетчики использовались для накопления итогов в счетных машинах , которые стали пионерами индустрии обработки данных.
- Механические противоколеса, показывающие обе стороны. Выступ на колесе, показанный вверху, при каждом повороте зацепляет храповой механизм на колесе ниже.
- Несколько механических счетчиков.
- Ранняя счетная машина IBM с механическими счетчиками.
См. также [ править ]
- Преобразователь времени в цифровой
- Женевский драйв
- Бусины для подсчета темпа
- Четки
- Асинхронная схема
- Синхронная схема
Ссылки [ править ]
- ^ «Счетчик десятилетий» . Интегрированное издательство . Проверено 19 марта 2020 г.
- ^ Сингх, Арун Кумар (2006). Основа цифровых принципов проектирования и применения схем . Издатели Нью Эйдж. ISBN 81-224-1759-0 .
- ^ Горовиц, Пол; Хилл, Уинфилд (1989). Искусство электроники . Издательство Кембриджского университета. ISBN 0-521-37095-7 .
- ^ Граф, Рудольф Ф (1999). Современный словарь электроники . Ньюнес. ISBN 0-7506-9866-7 .
- ^ История виртуальной реальности , Видер .
Внешние ссылки [ править ]
- СМИ, связанные со схемами счетчиков, на Викискладе?
- Ассим, Ара Абдулсатар Ассим (19 октября 2021 г.). Проектирование и синтез двоичного счетчика обратного счета MOD 13 (отчет). дои : 10.36227/techrxiv.16810198.v1 .