3.3 СЧЕТЧИКИ

Счетчик (Сч) - последовательностная схема, преобразующая поступающие на вход импульсы в код Q, пропорциональный их количеству. Большинство счетчиков снабжено выходом переноса CR. Для двоичного и двоично-десятичного кода, как впрочем и для других систем счисления, справедливы следующие соотношения:

Q = (D + SUM(C)) mod M

CR = (D + SUM(C)) \ M

В этих формулах: Q - код на выходах счетчика, D - начальное значение записанное в счетчик, SUM(C) - сумма импульсов поступивших на вход в процессе счета и M - модуль счета или число различных состояний счетчика (число импульсов поступивших на счетный вход, после которых счетчик возвращается в исходное состояние), CR - число импульсов переноса, возникающих при возврате счетчика в исходное состояние на одноименном выходе, mod - операция нахождения остатка при делении на M, \ - операция целочисленного деления . Если D = 0 и SUM(C) < M, то очевидно, что Q = SUM(C) и CR = 0. C приходом каждого M-ного импульса счетчик возвращается в исходное состояние. Пример: пусть D =17, SUM(C) = 9, M = 8, тогда Q = 26 mod 8 = 2, а CR = 3.

Счетчики выполняются на триггерах со счетным входом (T-триггерах). По способу счета Сч могут быть суммирующие, вычитающие и реверсивные, т.е. изменяющие направление счета. По способу переключения триггеров делятся на асинхронные и синхронные. В асинхронных счетчиках триггеры переключаются последовательно (асинхронно) от разряда к разряду, а в синхронных одновременно. Один Т-триггер обеспечивает модуль счета М = 2, а n триггеров дадут М = 2^n. При суммировании импульсов необходимо формировать перенос из i-го в (i+1)-ый разряд по следующему правилу.

Правило 1: перенос CR из i-го в (i+1)-ый разряд формируется, если во всех разрядах с i-го по 0-й записана максимальная для данной системы счисления цифра, при этом разряды младше (i+1)-го обнуляются.


        Q  i+1 i..0             Q  i+1 i..0
            0  9999                 0  1111   1--->|
    DEC    +      1        BIN     +      1        |  отрицательный
           --------                --------        |  перепад
            1  0000                 1  0000        |--->0

На прямых выходах триггеров этих разрядов Qi формируется отрицательный перепад ( см. рисунок), а на инверсных - положительный.

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

 

3.3.1 АСИНХРОННЫЙ СЧЕТЧИК C ПОСЛЕДОВАТЕЛЬНЫМ ПЕРЕНОСОМ

 

В качестве примера возьмем четырехразрядный счетчик.Четыре двоичных разряда счетчика обеспечивают М = 16 состояний. Ниже приведена схема и условное обозначение такого счетчика, выполненная на JK-триггерах с инверсными динамическими входами

i-ct-1.gif (5086 bytes)

По правилу 2 сигналы переносов должны сниматься с прямых выходов триггеров, которые переключаются последовательно друг за другом, т.е. асинхронно. Триггеры поставлены в режим счета (J = K = 1). Счетчик дополнен схемой формирования ускоренного переноса CR (Carry), выход которой может быть подключен к счетному входу C следующего такого же счетчика. Входы ~R всех триггеров объединены, а на входы ~S подана "лог.1", что позволяет "сбрасывать" счетчик сигналом ~R = 0. Счетный вход суммирующего счетчика обозначается "+1". Временные диаграммы схемы, без учета задержки сигнала даны на рисунке.

i-ct-2.gif (3770 bytes)

Анализ временных диаграмм позволяет сделать ряд выводов:

1) После n-го по счету входного импульса код на выходах Q = Q3Q2Q1Q0 = n, например после 5-го, код Q = 0101 = 5, а после 11-го - Q = 1011 = 11(DEC), т.е. схема действительно является счетчиком.

2) С приходом активного фронта 16-го импульса все триггеры "сбрасываются" и далее процесс повторяется, т.е. модуль счета М=16.

3) Схема также является делителем частоты входных импульсов на 2 в степени (i+1), где i - номер триггера, с которого снимается выходной сигнал.

4) Если снимать выходной код с инверсных выходов, то нетрудно заметить,что начальное значение Q = Q0Q1Q2Q3 = 1111 = 15, т.е. максимальному числу для четырех разрядов и далее, с приходом очередного импульса, код на выходах уменьшается на 1. В этом случае счетчик называют вычитающим. Такого же результата можно добиться, если снимать переносы с противоположных выходов триггеров, а код по прежнему с прямых. Убедиться в этом нетрудно, самостоятельно построив временные диаграммы. Счетный вход вычитающего счетчика обозначается "-1".

5) Важно также отметить, что задний фронт импульса переноса совпадает с моментом перехода всех триггеров из 1 в 0, для суммирующего счетчика и с моментом перехода из 0 в 1 - для вычитающего.

Скорость счета или максимальная частота входных импульсов определяется задержкой сигнала от момента прихода активного фронта счетного импульса до появления нового кода на выходе последнего триггера: tзд.р.счетчика =  n * tзд.р.триггера, где n-число триггеров. Тогда Fмакс.счета < 1/tзд.р.счетчика. На рис.56. показан процесс последовательного переключения отдельных триггеров счетчика с приходом восьмого импульса.

i-ct-3.gif (2101 bytes)

Выходной код в течение интервала tзд.р.сч. принимает недопустимые значения (6,4,0). Скорость деления частоты входного сигнала не зависит от количества триггеров и определяется максимальной частотой переключения входного триггера, т.е. Fmax.деления < 1/(tзд.р.триггера + tуст) и больше Fмакс.счета.

 

3.3.2 СИНХРОННЫЙ СЧЕТЧИК С ПАРАЛЛЕЛЬНЫМ ПЕРЕНОСОМ

 

В синхронном счетчике импульсы поступают на тактовые входы всех триггеров одновременно. Ниже на рисунке ниже приведен трехразрядный счетчик с модулем счета M = 8. Справа приведено условное обозначение промышленно выпускаемого счетчика, дополненного входами Di для параллельной синхронной загрузки начального кода перепадом сигнала на входе C(+1) при ~L = 0, а также входом сброса ~R.

 

i-ct-4.gif (6391 bytes)

 

Перенос из i-го разряда в (i+1)-ый производится по формуле CRi = Qi*..*Q1*Q0*(CE*PE) с помощью элементов "И". Входы CE (разрешение счета) и PE (разрешение переноса) на данном этапе рассмотрения могут быть объединены вместе (CE = PE = 1). Входы J и K триггеров соединены, поэтому возможно только два режима их работы - память (J = K= 0) и счет (J = K = 1). Триггер "i" изменит свое состояние только тогда, когда CR(i-1) = J = K = 1, т.е. при единичных значениях выходов всех предыдущих триггеров, что отвечает правилу 1. Во всех остальных случаях CR(i-1) = J = K = 0 и значение Qi не изменится. Быстродействие синхронного счетчика значительно выше, из-за того, что триггеры переключаются одновременно и сигнал CRi появится на JK входах через интервал tзд.р.счетч. = tзд.р.триггера + tзд.р.элемента"И", который не зависит от числа триггеров. Частота счета Fmax < 1/(tзд.р.сч. + tуст). Максимальная частота деления Fmax.деления = Fmax.счета.

 

3.3.3 РЕВЕРСИВНЫЙ СЧЕТЧИК

 

Схема двухразрядного счетчика с общим входом сброса R, выходом переноса CR при суммировании и выходом переноса BR при вычитании приведена на рис. внизу.

i-ct-5.gif (4603 bytes)

 

Предположим, что начальное значение кода равно 2 (Q1 = 1 и Q0 = 0). Рассмотрим режим суммирования, когда на входе "-1" - действует ноль, а на вход "+1" приходит импульс. Отрицательный фронт входного импульса не пройдет через верхний канал мультиплексора "2 в 1", выполненного на элементе И-ИЛИ-НЕ, этому препятствует старое значение Q0=0. На входах нижнего канала действует конъюнкция единицы (~Q0 = 1) и нуля. Поэтому сигнал на выходе мультиплексора равен нулю и триггер T1 сохраняет старое значение.Через время, равное задержке элемента ИЛИ отрицательный фронт поступит на счетный вход триггера T0, и еще через время задержки триггера на его выходах установится новое значение Q0 = 1 (~Q0 = 0). При этом верхний канал открывается для прохождения отрицательного фронта счетного импульса, но т.к. длительность фронта t1,0 значительно меньше суммарного времени задержки tзд = tзд.р.ИЛИ + tзд.р.триггера, на входах "+1" и "-1" к этому времени действуют нули и выходной сигнал мультиплексора по прежнему равен 0. Триггер T1 остается в прежнем состоянии. Новый код на выходах счетчика увеличился на 1 и стал равен Q1Q0 = 11 = 3, до следующего импульса.

Рассмотрим режим вычитания, когда на входе "+1" - действует ноль, а на вход "-1" приходит импульс. Отрицательный фронт входного импульса беспрепятственно пройдет через нижний канал мультиплексора, т.к. ~Q0 = 1 и переключит триггер T1. Спустя время tзд новый код появится и на выходах триггера T0, но отрицательный перепад c выхода ~Q0 не пройдет на счетный вход триггера T1, по причине того, что сигнал на входе "-1" к этому времени уже равен нулю. Старый код 10 на выходах счетчика сменился кодом 01, т.е. уменьшился на 1.

Примерно так выполнены счетчики типа 1533ИЕ6 и 1533ИЕ7, с дополнительным асинхронным входом ~L параллельной записи начального кода. Их обозначения приведены на рисунке.

i-ct-6.gif (3823 bytes)

В некоторых счетчиках предпочтительней иметь один тактовый вход и вход управления направлением счета. Для этого к входам "+1" и "-1" подключают демультиплексор "1 в 2". В этом случае, если управляющий сигнал U/~D = (Up/~Down) = 1, тактовые импульсы C поступают на вход суммирования, а если он равен нулю - на вход вычитания. Счетчик такого типа приведен на рисунке внизу.

i-ct-7.gif (2496 bytes)

 

3.3.4 КАСКАДНОЕ ВКЛЮЧЕНИЕ СЧЕТЧИКОВ

Рассмотрим последовательное включение n - счетчиков с различными модулями счета Mi. Возможна постановка двух задач.

В первой необходимо определить частоту сигнала на выходе переноса CRi каждого счетчика при частоте входного сигнала Fвх.

Во второй - какой код будет зафиксирован на выходах QQ каждого счетчика после подачи Nвх импульсов?

i-ct-8.gif (2475 bytes)

Для решения воспользуемся формулами счетчика.

Тогда в первой задаче на выход переноса  первого счетчика пройдет CR1 = (D1 + Fвх) \ M1 - импульсов за единицу времени (1 сек). Раскрывая скобки и учитывая, что D < M, найдем CR1 = Fвх2 = Fвх \ M1. Аналогично найдем, что на выход переноса   второго счетчика пройдет CR2 = Fвх3 = Fвх2 \ M2 = Fвх \ (M1* M2) импульсов. Окончательное решение даст CRn = Fвых = Fвх\(M1*M2*...*Mn).

Во второй задаче код на выходе 1-го счетчика QQ1 = (D1 + Nвх) mod M1, код на выходе второго счетчика QQ2 = (D2 + CR1) mod M2, и так далее до QQn = (Dn + CR(n-1)) mod Mn, причем величины CRi вычислены в первой задаче.

 

3.3.5 СЧЕТЧИК - ТАЙМЕР

Служит для формирования временных отрезков заданной длительности.Таймер может выполняться на вычитающих счетчиках или, в некоторых случаях, на суммирующих.Общим для этих схем является параллельная загрузка начального кода и остановка счета в момент переполнения счетчика. При этом интервал времени отсчитывается от активного фронта первого счетного импульса до заднего фронта сигнала переноса. Если требуется сформировать задержку в D секунд при tclk = 1сек., то начальный код N, загружаемый в вычитающий счетчик равен D. В суммирующий счетчик требуется записать N=M-1-D (число M-1 = 11..1). Как видно из диаграммы и в том, и в другом случае требуется D+1 импульсов, для перехода всех триггеров из одного состояния в другое и Tтайм = tclk * D, т.к. D - 0 = M - 1 - (M - 1 - D) = D.

i-ct-11.gif (4239 bytes)

 

3.3.6 ПРИМЕНЕНИЕ СЧЕТЧИКОВ В ИЗМЕРИТЕЛЬНОЙ ТЕХНИКЕ

 

На рисунке внизу последовательно включены 6 счетчиков с модулем 10 (двоично - десятичные). Информационные выходы Qi каждого каскада через преобразователь BCD кода подключены к семисегментному индикатору.

В целом устройство может решать три задачи: считать количество импульсов, измерять их частоту следования и длительность.

i-ct-9.gif (3792 bytes)

Перед любыми измерениями необходимо очистить счетчики, подав на вход R импульс сброса. 1) Для подсчета количества импульсов необходимо подать их на оба входа схемы И (или только на один, а на другой 1). Пусть на эти входы поступило N=1997 импульсов.Тогда на выходах младшего счетчика останется код QQ0 = 1997 mod 10 = 7. На выход переноса пройдет CR0 =1997 \ 10 = 199 импульсов, и далее QQ1 = (199 mod 10) = 9 и CR1 = 199 \ 10 = 19. В конце счета на выходах счетчиков будет зафиксирован BCD код = 0000 0000 0001 1001 1001 0111, а на индикаторах высветится число 001997. Внимание! У счетчиков на схемах младший разряд находится слева, а в числах - справа. В общем виде десятичный эквивалент BCD кода на выходах будет иметь вид: N = QQ(n-1) * 10^(n-1) + ... + QQ1 * 10^1 + QQ0 * 10^0. Из этого выражения следует, что N находится в диапазоне: 1 < = N <= 999999.

2) При измерении частоты входных импульсов, их необходимо подвести к входу "a", а на вход "b" подать импульс калиброванной длительности T равной 10^i (i =..-1,0,1,..),   например T = 1сек, как на рисунке внизу.

i-ct-10.gif (1637 bytes)

Частота повторения импульсов на входе "a" равна по определению: F = 1/dt. Из диаграмм "b" и "c" можно найти период повторения dt = T / N, с погрешностью dt / T.Тогда F = N / T и при T = 1с частота F = N. Диапазон измерения находится в пределах: (1...(10^6)-1)Гц. Для измерения длительности импульса на вход "a" необходимо подать сигнал с частотой F = 10^i (i=2,3,..), например F =10^6[Гц]. Длительность импульса T = N * dt = N / F и диапазон ее измерения равен (1..999999)мксек.

 

 

3.3.7 ЗАДАЧИ И УПРАЖНЕНИЯ

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

c1.gif (3328 bytes)

Пояснения : 1) Так как вход (R)eset имеет наивысший приоритет, то при ~R = 0 счетчик обнуляется, независимо от состояния остальных входов. 2) При U/~D = 0 (Down - вниз) счетчик работает на вычитание, а при U/~D = 1  (Up - вверх) - на сложение. 3) Счетчик имеет прямой динамический вход (срабатывает по положительному перепаду, об этом свидетельствует стрелка внутрь у входа C), поэтому необходимо подсчитать отдельно количество положительных перепадов для режимов суммирования (4) и вычитания (1) и  получить ответ : цифра 3.

 

Какой десятичный код будет зафиксирован на выходах Q3Q2Q1Q0 счетчика при поступлении на его вход 4 импульсов и начальных значениях на выходах Q3Q2Q1Q0 = 1100 ?

cnt2.gif (1367 bytes)

Пояснения : 1) Находим десятичный (DEC) эквивалент двоичного кода 1100(BIN) = 12(DEC) . 2) Обращаем внимание, что счетчик вычитающий (вход C "-1"). 3) Очевидно, что ответом будет код = 8.

 

Два счетчика включены последовательно. Определить десятичный эквивалент выходного кода Q2Q1Q0 второго счетчика. Число импульсов, поступивших на вход C равно 94.

count8.gif (2623 bytes)

Пояснения : 1) Обращаем внимание, что оба счетчика - суммирующие и перед поступлением импульсов обнуляются импульсом R=1. 2) Число импульсов прошедших на выход переноса CR первого счетчика равно CR = (0 + SUM(C)) \ M = 94\4 = 3. 3)Выходной код второго счетчика равен остатку от деления Q = 3 mod 5 = 3.

 

На входы реверсивного счетчика импульсов подаются приведенные внизу последовательности импульсов. Какая шестнадцатиричная цифра (0..9AbCdEF) будет высвечена на семисегментном индикаторе в момент времени отмеченный знаком + ?Ниже приведены содержимое памяти и рисунок схемы.
АДРЕС: 0    1    2   3   4     5    6    7    8  ...
КОД  :   07  39  4f  6f  7d  77  7c   06  07 ...

c-r1.gif (3834 bytes)

Пояснения : 1) Реверсивный счетчик c прямым динамическим входом С (-->). 2)Импульсом ~R=0 счетчик обнуляется 3)Подсчитайте число активных перепадов импульсов C для режима сложения (U/~D=1) и вычитания (U/~D=0). 4)Найдите результирующий код на адресных входах микросхемы памяти. 5)Найдите в памяти HEX код хранящийся по этому адресу.6)Распишите этот код в двоичном виде, например 06 = 00000110 (BIN) т.е. светиться будет цифра 1(сегменты C и B). сегменты = GFEDCBA.

Ответ: цифра A.