Счетчики
Младший разряд Q0 изменяет свое состояние с приходом каждого импульса синхронизации С.
-Q1 – изменяет свое состояние с приходом каждого 2-го С.
— Q2 — изменяет свое состояние с приходом каждого 4-го С.
Данный алгоритм можно реализовать на асинхронных Т-триггерах:
Синхронизация каждого следующего триггера производится выходным сигналом предыдущего триггера, а переключение первого триггера (формирующего Q0) – непосредственно последовательностью синхроимпульсов.
Переключение триггера должно происходить по спаду импульса.
Инкремент (сложение) реализуется на асинхронном Т-триггере с инверсным динамическим входом.
Декремент (вычитание) реализуется на асинхронным Т –триггере с прямым динамическим входом.
Если для синхронизации каждого последующего асинхронного триггера использовать инверсный выход триггера,
Суммирующий счетчик инкремент: ( используется прямой динамический вход)
вычитающий счетчик (используется инверсный динамический вход)
Направление счета счетчика может изменятся путем изменения межразрядных связей: включается в состав каждой разрядной схемы MS (как в последовательно- параллельном или реверсивном RG)
Сигнал V определяет направление счета :
V=1 суммирующий счетчик
V=0 вычитающий счетчик
Все рассмотренные выше счетчики являются счетчиками с последовательным переносом, т.к. переключение каждого последующего триггера происходит только после переключения предыдущего триггера.
Достоинство- счетчика с последовательным переносом – простота внутренней структуры.
Недостаток — счетчика с последовательным переносом – большое время установления выходного кода tk
tk≠const, зависит от конкретного значения его выходного кода.
tк max будет в случае изменения выходного кода со значения 111….в 000….. или наоборот
tк max=Ntkтр., где
N – число разрядов в счетчике
tkтр – время переключения одного разряда счетчика
Понизить tmax можно при условии, что все триггеры его разрядных схем будут переключаться одновременно. Для этого:
1.используют синхронные триггеры
2.организуют сигналы, определяют порядок переключения триггеров до прихода сигнала С.
Вернемся к таблице последовательности двоичных чисел: для суммирующего счетчика (для вычитающего таблица пойдет вверх)
Счетчик: назначение, условное обозначение и пример реализации
Счетчиком называется логическая схема, в которой состояние выходных переменных соответствует количеству поступивших на вход импульсов. Каждая выходная переменная счетчика считается двоичным разрядом, а все множество выходных переменных отображает результат счета в двоичной системе счисления.
Пример реализации счетчика на четыре разряда:
Временная диаграмма работы счетчика на четыре разряда:
Если мысленно развернуть эту диаграмму по часовой стрелки на 90?, исключить повторяющиеся комбинации, то 4-битовые числа по горизонтали будут соответствовать десятичным числам от 0 до 15 или количеству поступивших на вход импульсов.
1. Счетчики Основные параметры и классификация
Счетчиком называется функциональный узел ЭВМ, предназначенный для подсчета числа входных сигналов и хранения результата счета в двоичном коде. Счетчики выполняются на элементах памяти (триггерах), образующих двоичные разряды, и элементах комбинационной логики.
Счетчики могут быть с естественным и произвольным порядком счета. При естественном порядке счета результат счета изменяется на единицу при поступлении на вход счетчика каждого сигнала (импульса). В счетчиках с произвольным порядком счета, называемых также пересчетными устройствами, при поступлении входных сигналов результат счета может изменяться произвольно в соответствии с заданным законом.
Основными параметрами счетчиков являются модуль счета (коэффициент пересчета, емкость счетчика) Ксч и быстродействие. Модулем счета называют число состояний, которые он приобретает под действием входных сигналов. Если счетчик начал считать с начального состояния, то через каждые Кcч входных сигналов он снова возвращается в начальное состояние, а на его выходе появляется сигнал Ксч-ичного переноса. Быстродействие счетчика определяется разрешающей способностью и временем установки. Разрешающая способность t Р характеризуется периодом входных импульсов ТСЧ, при котором счетчик еще работает без сбоев, а время установки tУСТ — интервалом времени от момента поступления сигнала на вход счетчика до завершения перехода счетчика в новое состояние.
По значению модуля счета счетчики делятся на двоичные (Ксч =2 n , где n число разрядов), двоично-кодированные (имеют произвольный модуль счета, но все состояния кодируются двоичными кодами), счетчики с одинарным кодированием (состояние счетчика определяется местом расположения единственной единицы), счетчики с унитарным кодированием (состояние счетчика представлено числом единиц) и др.
По направлению счета счетчики могут быть суммирующими (прямого счета), вычитающими (обратного счета) и реверсивными, т.е. способными работать как в режиме суммирования, так и в режиме вычитания.
По структурной организации счетчики делятся на последовательные (асинхронные), параллельные (синхронные) и параллельно-последовательные.
Помимо входа для приема подсчитываемых сигналов счетчик может иметь вход общего сброса R и входы данных Di для параллельной загрузки произвольного кода. В последнем случае для осуществления загрузки предусматривается еще один вход — вход разрешения параллельной загрузки PL (parallel 1оаd).
Счетчики используются в ЭВМ для осуществления последовательного выполнения команд программы, подсчета числа циклов выполненных операций, образования адресов при обращении к запоминающим устройствам, в качестве делителей частоты в цифровых электронных часах и частотомерах и др.
2-3 Последовательные счетчики
В счетчиках, показанных на рис.12.1, используется непосредственная связь между выходами и входами триггеров. Поскольку каждый триггер (кроме первого) переключается выходным сигналом предыдущего, в таких счетчиках нет специальных схем формирования сигналов переноса или заема: их роль выполняют сигналы с выходов старшего разряда. Наращивание разрядности достигается путем последовательного подключения нужного количества триггеров. Однако несмотря на эти достоинства, а также простоту схемной реализации, область применения последовательных счетчиков с непосредственными связями ограничивается пределом их быстродействия.
На рис. 12.2 приведены временные диаграммы трехразрядного суммирующего счетчика, выполненного по схеме рис. 12.1, а.
Параметр tТГ характеризует задержку переключения триггера при поступлении на его вход отрицательного перепада напряжения. Наличие этой задержки вызывает появление «ошибочных» результатов, не предусмотренных таблицей его функционирования (см. табл. 12.1). Так, например, после окончания действия второго входного импульса перед правильным состоянием Q2Q1Q0=010 на некоторое время возникает неправильное состояние Q2Q1Q0=000, соответствующее переходным процессам в триггерах нулевого и первого разрядов. Из-за переходных процессов при переключениях триггеров всех трех разрядов после окончания четвертого (а также восьмого) входного импульса установлению правильного состояния Q2Q1Q0=100 предшествуют два неправильных: 010 и 000. Следовательно индикацию результата счета в таком счетчике (а значит, и интервал между входными импульсами) следует осуществлять не ранее, чем через время t=3tТГ. При этом максимальная частота следования входных импульсов определяется формулой:
,
где tИ — длительность импульса.
С увеличением разрядности счетчика увеличивается время задержки переключения триггера n-го разряда относительно среза входных импульсов, поэтому для n-разрядного счетчика с последовательным переносом максимальная частота входных импульсов будет равна:
.
На диаграммах виден и режим деления частоты: каждый последующий триггер переключается вдвое реже, чем предыдущий. Поскольку предыдущий триггер выполняет роль генератора импульсов для последующего, то максимальная частота входных импульсов в режиме деления частоты ограничивается возможностями триггера младшего разряда и равна 1/tТГ. Задержки переключения триггеров последующих разрядов вызовут лишь появление фазовых сдвигов между входной и выходной последовательностями импульсов.
Примером интегрального двоичного счетчика с непосредственными связями может служить микросхема К155ИЕ5 (рис. 12.3, а). Она представляет собой 4-разрядный двоичный счетчик, выполненный на двухступенчатых JK-триггерах с двумя счетными входами С1 и С2 и двумя входами сброса в нуль R1 и R2. Выход Q0 внутренне не соединен с последующими триггерами, что дает возможность использовать схему в качестве 3-разрядного или 4-разрядного двоичного счетчика. В первом случае счетные импульсы подают на вход С2, а во втором – на вход С1, предварительно объединив выход Q0 со входом C2. Входы сброса R1 и R2 обеспечивают сброс счетчика в нулевое состояние при R1=R2=1. При выполнении операции счета на одном из входов R1 или R2 ( или на обоих ) должен присутствовать потенциал низкого уровня.
Урок 8.4 Триггеры, регистры, счетчики
На предыдущем уроке мы рассмотрели логические элементы, состояние сигнала на выходе которых однозначно определяется состояниями сигналов на входах.
Логические элементы служат основой для создания более сложных цифровых устройств, одним из которых является триггер. Триггер – это целый класс электронных устройств, которые могут длительно находиться в одном из двух устойчивых состояний после прекращения сигнала, меняющего состояние. Состояние выхода триггера определяется не только сигналами на его входах, но и предыдущим состоянием устройства. Таким образом, триггер является простейшей однобитной ячейкой памяти.
RS-триггер
Самый простой триггер можно получить из двух логических элементов 2ИЛИ-НЕ:
Такая схема представляет собой асинхронный RS-триггер.
Он имеет два входа: S (set) – установка, R (reset) – сброс, и два выхода: Q (прямой) и Q с чертой сверху (инверсный, НЕ_Q).
При подаче сигнала логического нуля на оба входа триггера, его выходы будут установлены в произвольное состояние. Допустим, Q = 0, а НЕ_Q =1. Если на вход S подать «1», то состояние выхода Q скачкообразно изменится на «1», а НЕ_Q — на «0». И это состояние будет поддерживаться в независимости от того «0» или «1» подано на вход S, что и является проявлением свойства памяти.
Соответственно, при подаче уровня «1» на вход R выход Q станет «0», а НЕ_Q – «1».
Длительность устанавливающих импульсов может быть очень короткой, и ограничена физическим быстродействием логических модулей, из которых построен триггер.
Ситуация, когда на входах R и S действует высокий уровень, является недопустимой, поскольку при этом схема не может работать корректно. В этом есть недостаток RS-триггера.
RS-триггер также можно построить из двух элементов И-НЕ, такие элементы более распространены:
Установка и сброс триггера на элементах 2И-НЕ, в отличие от предыдущего, производится низким уровнем входного сигнала.
Если к последней схеме добавить еще два вентиля 2И-НЕ, то мы получим синхронный RS-триггер.
Изменение состояния такого триггера производится только при воздействии на вход С (Clock) синхронизирующего (тактового) импульса.
D-триггер
Немного изменив схему синхронного RS-триггера, можно получить D-триггер. (D-delay, задержка). У него только один информационный вход D.
Если на этот вход подать «1», а затем подать импульс на вход C, то на выходе Q будет «1», если на вход подать «0», затем импульс на C, то на выходе Q будет «0». Таким образом, D-триггер осуществляет задержку информации, поступающей на вход.
Если вход D соединить с выходом НЕ_Q, то триггер будет менять свое состояние при каждом изменении состояния входа С от «0» к «1» . При изменении от «1» к «0» состояние триггера меняться не будет. Таким образом, частота выходных импульсов будет вдвое меньше частоты входных импульсов. Такой триггер называется счетным или T-триггером. Делитель частоты используется очень широко в цифровой технике.
Существует разновидность синхронного RS-триггера, не имеющая запрещенной комбинации – JK-триггер. Он имеет три входа: J (вместо R), K (вместо S), и C. Если на оба информационных входа подана «1», то JK-триггер работает как счетный T-триггер с входом C.
Регистр хранения
На триггерах можно строить более сложные цифровые устройства, например такие, как регистры. Регистры предназначены для хранения многобитовой информации, то есть чисел, записанных в двоичном коде.
Рассмотри трех битовый регистр хранения на D-триггерах:
Каждый триггер может хранить один разряд (бит) числа. Вход R служит для установки выходов всех триггеров в нулевое (исходное) состояние перед записью числа, которое подается на входы D0,D1 и D2. При подаче импульса на вход C производится запись информации с этих входов. Информация может храниться сколь угодно долго, пока на вход С не подаются импульсы и подается питание.
Регистр сдвига
Другой разновидностью регистров является регистр сдвига. Он предназначен для преобразования информации путем ее побитного сдвига в ту или иную сторону. На следующем рисунке приведена схема простейшего регистра сдвига информации вправо (по схеме):
В отличие от регистра хранения выход предыдущего триггера соединен с входом последующего. Информация в виде логического уровня подается на вход первого (крайнего слева) триггера. При воздействии импульса на входе C присутствующая на входе D информация записывается в первый триггер. При подаче второго импульса информация из первого триггера переписывается во второй триггер, а в первый записывается информация, которая в этот момент присутствует на входе D, и так далее. Таким образом, с подачей каждого синхроимпульса информация в регистре сдвигается вправо на 1 разряд.
Сдвиговые регистры используются во многих схемотехнических решениях при построении цифровых устройств, прежде всего для преобразования последовательного кода в параллельный, а также для выполнения арифметических операций (умножения и деления на 2)с двоичными числами, организации линий задержки, формирования импульсов заданной длительности, генерирования псевдослучайных последовательностей (кодов) и т.п.
Счетчик
Еще один класс цифровых устройств, которые можно построить на триггерах – счетчики. Как следует из названия, они осуществляют счет входных импульсов в заданном коде и могут хранить результат.
Простейший счетчик с последовательным переносом можно получить с помощью счетных T-триггеров:
Подачей импульса на вход R счетчик приводится в исходное состояние, когда на выходах Q1-Q3 – уровень логического нуля.
На вход C подаются импульсы для счета. С приходом заднего фронта первого импульса первый (левый) по схеме триггер устанавливается в «1». Если читать код справа налево, то он соответствует единице. Для нашего трехразрядного счетчика это код 001. С приходом второго импульса в «1» переключается второй триггер, а первый переключается в «0». Таким образом, код на выходах счетчика будет 010, что соответствует десятичной цифре 2. Следующий импульс установит код 011, то есть 3. Трехразрядный счетчик может досчитать до кода 111, что соответствует десятичной цифре 7. При этом наступает так называемое переполнение счетчика, и с приходом следующего импульса счетчик обнулится.
Поскольку триггеры счетчика соединены последовательно, то и переключаться они будут также последовательно. Этот процесс отображен на графике, из которого видно, что время задержки переключения tз будет удваиваться и утраиваться. С увеличением числа разрядов задержка может оказаться неприемлемой, что является недостатком счетчиков с последовательным переносом.
Для повышения быстродействия применяются счетчики с параллельным переносом, что достигается одновременной подачей входных импульсов на входы всех триггеров счетчика. Это реализуется с помощью введения в схему логических элементов И:
Из схемы видно, что на вход второго триггера счетный импульс поступит только тогда, когда на выходе первого триггера будет «1», а на третий – когда «1» будет на выходах и первого, и второго триггеров. Очевидно, что с увеличением числа разрядов необходимо увеличивать как число логических элементов И, так и число их входов, что, в свою очередь, является недостатком такого типа счетчиков.
Регистры и счетчики, в свою очередь, могут применяться для построения более сложных цифровых устройств: сумматоров, ОЗУ и ПЗУ (оперативных и постоянных запоминающих устройств), АЛУ (арифметическо-логических устройств), входящих в состав процессоров, и так далее, к все более сложным цифровым устройствам.
В следующей серии статей мы начнем знакомство с микроконтроллерами — замечательным классом цифровых микросхем, которые являются настоящими компьютерами, умещающимися в одной микросхеме, и входящими входят в состав большинства электронных устройств, от кофемашины до космического корабля!