Материал: Счетчики

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

1.1.3. Счетчики

1.1.3.1. Общие сведения. Классификация

Счетчики представляют собой более высокий, чем регистры, уровень сложности цифровых микросхем, имеющие внутреннюю память. Хотя в основе любого счетчика лежат те же самые триггеры, которые образуют и регистры, но в счетчиках триггеры соединены более сложными связями, в результате чего их функции сложнее, и на их основе можно строить более сложные устройства, чем на регистрах. Точно так же, как и в случае регистров, внутренняя память счетчиков – оперативная, т.е. ее содержимое сохраняется только до тех пор, пока включено питание схемы. С выключением питания память стирается, а при новом включении питания схемы содержимое памяти будет произвольным, случайным, зависящим только от конкретной микросхемы. Иначе, при включении выходные сигналы счетчиков устанавливаются произвольным образом.

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

C

1

 

2

 

3

 

4

 

5

 

6

 

7

 

8

 

9

 

10

 

11

 

12

 

13

 

14

 

15

 

16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

Q0

t

Q1

t

Q2

t

Q3

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

t

Рис. 1.17. Работа четырехразрядного двоичного счетчика

С приходом каждого нового входного импульса двоичный код на выходе счетчика увеличивается на 1:

№ импульса

 

код на выходе

 

на входе

Q3

Q2

Q1

Q0

1

0

0

0

0

2

0

0

0

1

 

 

 

 

 

3

0

0

1

0

4

0

0

1

1

5

0

1

0

0

 

 

 

 

 

6

0

1

0

1

 

 

 

 

 

7

0

1

1

0

8

0

1

1

1

 

 

 

 

 

9

1

0

0

0

 

 

 

 

 

10

1

0

0

1

11

1

0

1

0

 

 

 

 

 

12

1

0

1

1

 

 

 

 

 

13

1

1

0

0

14

1

1

0

1

 

 

 

 

 

15

1

1

1

0

 

 

 

 

 

16

1

1

1

1

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

Срабатывать счетчики могут как по переднему фронту входного (тактового) сигнала, так и по заднему фронту.

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

Большинство счетчиков работают в обычном двоичном коде, т.е. считают от 0 до (2n–1), где n - число разрядов выходного кода счетчика. Например, четырехразрядный счетчик в режиме прямого счета будет считать от 010 (код

00002) до 1510 (код 11112), а 8-разрядный – от 010 (код 0000 00002) до 25510 (код 1111 11112). После максимального значения кода счетчик по следующему

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

Имеются также двоично-десятичные счетчики, предельный код на выходе которых не превышает максимального двоично-десятичного числа, возможного при данном количестве разрядов. Например, четырехразрядный двоичнодесятичный счетчик в режиме прямого счета будет считать от 010 (код 00002) до 910 (код 10012), а затем снова от 010 до 910. А восьмиразрядный двоичнодесятичный счетчик будет считать от 010 (код 0000 00002) до 9910 (код 1001 10012). При инверсном счете двоично-десятичные счетчики считают до нуля, а со следующим входным импульсом переходят к максимально возможному двоичнодесятичному числу. Двоично-десятичные счетчики удобны, например, при организации десятичной индикации их выходного кода. Применяются они гораздо реже обычных двоичных счетчиков.

По быстродействию все счетчики делятся на три большие группы:

-асинхронные счетчики (или последовательные).

-синхронные счетчики с асинхронным переносом (или параллельные счетчики с последовательным переносом, синхронно-асинхронные счетчики).

-синхронные счетчики (или параллельные).

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

1.1.3.2. Двоичные асинхронные счетчики

Простейший вид счетчика – двоичный может быть построен на основе T- триггера. Как отмечалось выше в п. 1.1.1.5 этот вид триггеров можно рассматривать как счетчик, считающий до двух (временные диаграммы сигналов на входе и выходах T-триггера приведены выше на рис. 1.10). Однако, обычно требуется посчитать большее количество импульсов. В этом случае Т-триггера соединяют последовательно, т.е. выходной сигнал первого счетного триггера подают на вход следующего триггера и т.д., что позволяет строить любой счетчик, считающий до любого числа, кратного степени два.

Схема счетчика, позволяющего посчитать любое количество импульсов, меньшее 1610, приведена на рис. 1.18. На выходе такого счетчика в двоичном коде будет представлено число импульсов, поступивших на вход.

 

 

Q0

 

Q1

 

Q2

 

Q3

 

D

ТТ

D

ТТ

D

ТТ

D

ТТ

 

Q

Q

Q

Q

C

C

Q

C

Q

C

Q

C

Q

 

 

 

а

С СТ2

1

 

 

2

 

R

4

Рис. 1.18. Логическая схема четырёхразрядного

8

счётчика, построенного на универсальных

 

 

D-триггерах (а) и его условно-графическое

б

 

обозначение (б)

Идеализированная временная диаграмма работы асинхронного счетчика приведена выше на рис. 1.17. При первоначальном нулевом состоянии всех счетчиков поступление на вход счетчика тактового импульса (который воспринимается по заднему фронту) первый триггер изменит свое состояние на противоположное, т.е. с 0 на 1. На выходе счетчика будет сформирован код 00012

=110.

Сприходом второго импульса значение на выходе первого триггера снова

изменится (теперь с 1 на 0). При этом на входе второго триггера сформируется задний фронт, и он также изменит свое состояние на противоположное (с 0 на 1). Это означает, что на выходе счетчика сформируется код 00102 = 210.

Подадим на вход счетчика еще один тактовый импульс. Значение первого триггера снова изменится, а значение второго счетчика останется прежним. На выходе счетчика сформируется код 00112 = 310

Продолжая анализировать временную диаграмму (рис. 1.17), можно определить, что на выходах приведенной схемы счетчика последовательно появляются цифры от 010 до 1510. Эти цифры записаны в двоичном виде (от 00002 до 11112).. При поступлении на счетный вход счетчика очередного импульса, содержимое его триггеров увеличивается на 1.

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

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

1.1.3.3. Двоичные вычитающие асинхронные счетчики

Для реализации вычитающего счетчика достаточно чтобы T-триггер изменял свое состояние по переднему фронту входного сигнала. Изменить рабочий фронт входного сигнала можно инвертированием этого сигнала. В схеме, приведенной на рис. 1.19, для реализации вычитающего счетчика сигнал на входы последующих триггеров подаются с инверсных выходов предыдущих триггеров.

 

 

Q0

 

Q1

 

Q2

 

Q3

 

D

ТТ

D

ТТ

D

ТТ

D

ТТ

 

Q

Q

Q

Q

C

C

Q

C

Q

C

Q

C

Q

 

Рис. 1.19. Логическая схема четырехразрядного двоичного вычитающего счетчика, построенного на универсальных D-триггерах

Временная диаграмма этого счетчика приведена на рис. 1.20. По этой диаграмме видно, что при поступлении на вход счетчика первого же импульса на выходах появляется максимально возможное для четырехразрядного счетчика число 1510. При поступлении следующих импульсов содержимое счетчика уменьшается на 1. Это объясняется тем, что при поступлении переднего фронта тактового импульса первый триггер переходит в единичное состояние. В результате на его выходе тоже формируется передний фронт. Он поступает на вход второго триггера, что приводит к записи 1 и в этот триггер. Точно такая же ситуация складывается со всеми триггерами счетчика, то есть все триггеры перейдут в единичное состояние. Для четырехразрядного счетчика это и будет

число 1510.

Следующий тактовый импульс приведет к изменению состояния только первого триггера, так как при этом на его выходе сформируется задний фронт сигнала. При поступлении каждого последующего импульса содержимое счетчика, построенного по анализируемой схеме, уменьшается на 1. Этот процесс продолжается до тех пор, пока состояние счетчика не станет вновь равно 0. При поступлении новых тактовых импульсов процесс повторится.

C

1

 

2

 

3

 

4

 

5

 

6

 

7

 

8

 

9

 

10

 

11

 

12

 

13

 

14

 

15

 

16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

Q0

t

Q1

t

Q2

t

Q3

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

t

Рис. 1.20. Идеализированная временная диаграмма работы четырехразрядного вычитающего счетчика

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

 

код на выходе

 

импульса

Q3

 

Q2

Q1

 

Q0

на входе

 

 

 

 

 

 

 

 

1

1

 

1

1

 

1

2

1

 

1

1

 

0

3

1

 

1

0

 

1

4

1

 

1

0

 

0

5

1

 

0

1

 

1

6

1

 

0

1

 

0

7

1

 

0

0

 

1

8

1

 

0

0

 

0

9

0

 

1

1

 

1

10

0

 

1

1

 

0

11

0

 

1

0

 

1

12

0

 

1

0

 

0

13

0

 

0

1

 

1

14

0

 

0

1

 

0

15

0

 

0

0

 

1

16

0

 

0

0

 

0

Эта таблица фактически повторяет временные диаграммы, приведенные на рис. 1.20.

Чем больше разрядов имеет счетчик, тем большее время ему требуется на полное переключение всех разрядов. Задержка переключения каждого разряда примерно равна задержке триггера, а полная задержка установления кода на выходе счетчика равна задержке одного разряда, умноженной на число разрядов счетчика. Легко заметить, что при периоде входного сигнала, меньшем полной задержки установления кода счетчика, правильный код на выходе счетчика просто не успеет установиться, поэтому такая ситуация не имеет смысла. Это накладывает жесткие ограничения на период (частоту) входного сигнала, причем увеличение, к примеру, вдвое количества разрядов счетчика автоматически уменьшает вдвое предельно допустимую частоту входного сигнала.

Основное применение асинхронных счетчиков состоит в построении всевозможных делителей частоты, то есть устройств, выдающих выходной сигнал с частотой, в несколько раз меньшей, чем частота входного сигнала. В данном случае нас интересует не выходной код счетчика, то есть не все его разряды одновременно, а только один разряд, поэтому взаимные задержки отдельных разрядов не играют роли, а полная задержка переключения счетчика не имеет значения. Простейший пример делителя частоты на два – это триггер в счетном режиме или счетчик, выходным сигналом которого является выход первого, младшего разряда 1.

Иногда возникает задача деления частоты входного сигнала в произвольное число раз (не в 10 и не в 2n, что легко обеспечивается самой структурой стандартных счетчиков). В этом случае можно организовать сброс счетчика при достижении им требуемого кода путем введения обратных связей.