г показан пример интегрирующей цепочки для задержки импульса на фиксированное время. Диаграмм я не привожу, т. к. работа схемы понятна: импульс задерживается на время, необходимое для заряда конденсатора до порога срабатывания инвертора. Задний фронт импульса, соответственно, задерживается на время разряда. Если при этом входной импульс сравним по длительности с постоянной времени RC, то на выходе длительность импульса уменьшается, а при коротком входном импульсе выходной может вообще пропасть, поэтому такой схемой на практике пользуются очень редко, предпочитая ей чисто цифровые методы.
Одновибраторы
Одновибратор — это устройство, которое по внешнему сигналу выдает один-единственный импульс определенной длительности, не зависящей от длительности входного импульса. Запуск происходит либо по фронту, либо по спаду входного импульса и до возникновения на входе нового перепада напряжений той же полярности уровень на входе оказывать влияния на выход больше не будет. Как и в случае мультивибраторов, существует множество схемотехнических реализаций этого устройства. Мы изучим вариант, который получается небольшой модификацией схем выделения фронта, — нужно только ввести в них положительную обратную связь, которая будет фиксировать состояние выхода на время заряда конденсатора.
Схема на рис. 9.5, и работает следующим образом: в состоянии покоя на выходе схемы имеется состояние логической единицы, т. к. вход второго (выходного) элемента «И-НЕ» заземлен через резистор.
Рис. 9.5.Одновибраторы
Так как на входе тоже логическая единица, то на выходе первого (входного) элемента «И-НЕ» — логический ноль, конденсатор разряжен. При поступлении на вход положительного уровня на выходе первого элемента типа «И-НЕ» возникает состояние логической единицы, которое через дифференцирующую цепочку RC передается на вход второго элемента, так что на выходе схемы и на втором входе первого элемента оказывается логический ноль. Это состояние схемы, уже независимо от уровня входного сигнала, будет устойчиво (обратная связь как бы «перехватила» и «зафиксировала» уровень нуля на выходе) — пока конденсатор заряжается от выхода первого элемента через резистор R. Через время, примерно равное произведению RС, конденсатор зарядится до порога срабатывания выходного элемента «И-НЕ» и схема скачком перейдет обратно в состояние логической единицы по выходу.
Если по входу уже установлен уровень логической единицы (запускающий импульс закончился), то первый элемент также «перебросится» в начальное состояние и конденсатор С быстро разрядится через ограничительное сопротивление 1 кОм (если оно установлено) и входные защитные диоды второго элемента. Схема придет в начальное состояние в ожидании следующего запускающего импульса. Длительность импульса на выходе всегда будет примерно равна RС, даже в случае, если входной импульс длиннее (в этом случае конденсатор просто разрядится не сразу, а только тогда, когда закончится входной импульс). Совершенно аналогично работает схема на рис. 9.5,б, только с противоположными полярностями импульсов.
Главное применение одновибраторов— в качестве таймера, который формирует сигнал определенной длительности. Естественно, о высокой точности выдержки времени тут говорить не приходится, но часто это и не требуется. Например, если вы хотите ограничить по времени тревожный сигнал, подающийся с помощью устройства по рис. 9.2, то целесообразно управлять им от одновибратора, который запускается, скажем, нажатием кнопки. В одновибраторах для больших выдержек допустимы электролитические конденсаторы, хотя даже при использовании только керамических или полимерных типов с максимальными емкостями порядка 1–3 мкФ вполне достижимы выдержки в несколько десятков секунд.
Рассмотренные одновибраторы представляют собой схемы без перезапуски, т. е. длительность импульса не зависит от того, пришел ли еще раз входной импульс во время действия выходного или нет. Одновибраторы с перезапуском, в которых выходной импульс в этом случае продлевается (отсчет времени как бы начинается заново с нового импульса, когда бы он ни пришел), мы проектировать не будем, потому что они сложнее, и в этом случае предпочтительнее готовая микросхема (например, 561АГ1). Создать одновибратор (мультивибратор, кварцевый генератор) можно и на специальной микросхеме универсального таймера, известной под названием 555 с различными буквенными индексами (отечественный аналог—1006ВИ1).
Одновибратор может служить довольно эффективным средством подавления дребезга механических контактов, т. к. будет запускаться только от первого перепада уровней, причем независимо от того, «пролетают» подвижные контакты весь промежуток «туда-обратно» или нет (впрочем, на практике такого «пролета» и не случается). Главным его преимуществом в этом качестве, несмотря на довольно сложную схему, является пригодность двухвыводной кнопки, а не переключающей, как в схемах по рис. 8.3, б или на RS-триггерах (см. далее). Вход одновибратора при этом соединяют с питанием (в схеме рис. 9.5, a) или с «землей» (на рис. 9.5, б) через резистор, а кнопкой замыкают этот вход, соответственно, на «землю» или на питание (пример подсоединения см. на рис. 17.1).
Одним из недостатков такого варианта является то, что приходится четко рассчитывать необходимую длительность импульса, иначе дребезг можно «пропустить». Второй недостаток— неясность ситуации с размыканием ранее замкнутой кнопки. Если кнопка удерживается в замкнутом состоянии дольше, чем длится импульс, то из-за дребезга при размыкании одновибратор может выдать импульс повторно. Для борьбы с этим явлением можно попробовать присоединить кнопку ко входу одновибратора не напрямую, а через одну из дифференцирующих цепочек по рис. 9.4, б или в, которые (в идеале) не должны пропускать через себя состояние вывода, «висящего в воздухе».
Заметки на полях
Укажем, кстати, на недопустимость использования часто рекомендуемых и заманчивых по своей простоте схем «антидребезга» на основе интегрирующей цепочки, т. е. элементарного ФНЧ. Опыт показывает, что такие схемы крайне ненадежны даже при совместно с т. н. триггером Шмидта, который представляет собой обычный логический элемент с гистерезисной характеристикой. Гистерезис в случае логических элементов чаще всего не защищает от дребезга вообще, т. к. помеха располагается обычно вблизи питания или «земли», за пределами зоны нечувствительности. А что касается ФНЧ, то даже если вы умудритесь подобрать параметры фильтра так, что данная конкретная кнопка, как вам кажется, не дребезжит, то это не гарантирует, что в случае очень короткого или, наоборот, долгого нажатия схема сработает как надо, или что другая аналогичная кнопка будет также нормально работать с теми же параметрами RC-фильтра.
Триггер — это устройство для записи и хранения информации в количестве одного бита[8]. (Существуют — по большей части в теории— и многостабильные триггеры, которые могут хранить более одного бита, но на практике они не используются, кроме очень экзотических конструкций, вроде упоминавшейся в главе 7 ЭВМ «Сетунь»). Любая элементарная ячейка памяти, будь-то магнитный домен на пластинах жесткого диска, отражающая область на поверхности CD-ROM или конденсаторная ячейка электронного ОЗУ, обязательно обладает триггерными свойствами, т. е. может хранить информацию спустя еще долгое время после того, как она была в нее введена.
Самый простой триггер можно получить, если в схемах одновибраторов на рис. 9.5 удалить RC-цепочку и соединить напрямую выход первого элемента со входом второго. Если схема находится в состоянии, когда на выходе уровень логической единицы, то кратковременная подача отрицательного уровня на вход, как и в случае одновибратора, перебросит выход в состояние логического нуля, но теперь уже нет конденсатора, который осуществляет отрицательную обратную связь и в конце концов возвращает схему в исходное состояние, потому в этом состоянии схема останется навечно, если мы что-то не предпримем.
Чтобы вернуть ее в исходное состояние, надо подать точно такой же сигнал, но на вход второго элемента, который (вход) в схеме одновибратора у нас отсутствует. Если мы его введем, то получим симметричную схему с двумя входами, которые обозначаются буквами R и S (от слов Reset и Set, т. е. «сброс» и «установка»). Такое устройство носит название RS-триггера. Оба варианта такой схемы на элементах «И-НЕ» и «ИЛИ-HE» показаны на рис. 9.6. Легко сообразить, что если поменять все обозначения местами (R на S, а прямой выход на инверсный), то в схеме ничего не изменится, но не все триггерные схемы обладают подобной симметрией.
Рис. 9.6.Схемы триггеров на элементах «И-НЕ» (а) и «ИЛИ-НЕ» (б)
Нет нужды перебирать все состояния этих схем и приводить соответствующие таблицы истинности, нужно только твердо запомнить, что подача импульса на вход сброса R всегда устанавливает на выходе Q состояние логического нуля (естественно, на инверсном выходе Q¯ при этом будет логическая единица). Причем соответствующий вход у любого устройства, его имеющего — от микропроцессоров до счетчиков — является асинхронным, т. е. вся система обнуляется в момент подачи импульса по входу R независимо от того, что в этот момент она делает (говорят еще, что вход сброса имеет «наивысший приоритет»). Именно это происходит, скажем, когда вы нажимаете на кнопку Reset на системном блоке вашего компьютера.
Вход S, естественно, означает ровно противоположное — установку выхода Q в состояние логической единицы, но, в отличие от входа R, который всегда означает обнуление, вход S в различных устройствах может использоваться и в немного других целях, а чаще вообще отсутствует. Входы R и S могут управляться различными полярностями сигнала в зависимости от построения триггера— для схемы на элементах «И-НЕ» по рис. 9.6,