Глава 14
Обратная связь
и триггеры
Все знают, что электричество приводит предметы в движение.
Даже при поверхностном осмотре типичного жилища вы обна-
ружите электродвигатели в таких разных устройствах, как часы,
вентиляторы, кухонные комбайны и проигрыватели компакт-
дисков. Электричество заставляет вибрировать конус громко-
говорителя, и вы слышите звуки, речь и музыку, воспроизво-
димые магнитофоном или телевизором. Но, вероятно, самый
простой и элегантный способ превратить электричество в дви-
жение используется в электрических зуммерах и звонках, кото-
рые уже практически превратились в антиквариат.
Взгляните на реле, соединенное с переключателем и элект-
рической батарейкой.
186
Глава четырнадцатая
Странноватый способ соединения, правда? Реле, подключен-
ное таким образом, нам еще не встречалось. Обычно вход реле
отделен от выхода, здесь же они образуют кольцо. Когда вы
замыкаете переключатель, цепь становится непрерывной, и по
ней течет ток.
Ток заставляет электромагнит притянуть гибкую металличес-
кую полоску.
Но как только она смещается, цепь размыкается, электромаг-
нит теряет свои магнитные свойства, полоска возвращается в
первоначальное положение
187
Обратная связь и триггеры
и, конечно, снова замыкает цепь. В целом работу этой схемы
можно описать так: пока переключатель замкнут, металличес-
кая полоска будет метаться между двумя контактами, то за-
мыкая, то размыкая цепь, причем ее движения, вероятно, бу-
дут сопровождаться шумом. Такое шумящее реле называется
зуммером (buzzer). Прикрепите к полоске металла молоточек,
поставьте рядом металлическую чашку — вот вам и электри-
ческий звонок.
Есть и другой способ собрать зуммер с помощью реле. На
схеме он показан с использованием общепринятых обозначе-
ний для источника питания и земли.
V
Вы, вероятно, узнали в этой схеме инвертор из главы 11. А зна-
чит, ее можно перерисовать так:
Выход
Как вы помните, выход инвертора равен 1, если вход равен 0, и
наоборот. Замыкание переключателя в этой цепи вызовет по-
переменное включение и выключение реле. Чтобы схема ра-
ботала вечно, можно обойтись и без переключателя:
Выход
В этом рисунке, кажется, есть логическое противоречие:
выход инвертора, как мы знаем, электрически противополо-
жен его входу, но здесь вход и выход — одно и то же! Но не
забывайте, что инвертор — это только реле, и ему требуется
188
Глава четырнадцатая
время, чтобы перейти из одного состояния в другое. Поэтому,
даже если в данный момент вход равен выходу, через мгнове-
ние реле сработает, и выход станет противоположен входу (при
этом, конечно, изменится и входной сигнал, в свою очередь
изменив выход и т. д.).
И чему же равен выход такой цепи? А его значение будет
периодически меняться: есть напряжение, нет напряжения.
Или, иначе говоря, выход попеременно равен то 0, то 1.
Такая цепь называется вибратором (oscillator). Это устрой-
ство существенно отличается от всего, с чем мы имели дело до
сих пор. Все предыдущие цепи изменяли состояние после вме-
шательства человека, который замыкал или размыкал пере-
ключатель. Вибратор же, по существу, работает сам по себе.
Конечно, в вибраторе, который работает сам по себе, мало
проку. Однако и в этой главе, и в некоторых следующих мы
убедимся, что это устройство, включенное в электрическую
схему, — важная часть автоматизации. Так, в любом компью-
тере имеется вибратор определенного типа, обеспечивающий
синхронную работу всех компонентов компьютера.
Выход вибратора осциллирует между 0 и 1. Обычно такое
изменение сигнала изображают так:
Это можно считать графиком, у которого по горизонтальной
оси отложено время, а по вертикальной — выходное напряже-
ние (0 или 1).
0
1
Время
Смысл этого графика в том, что с течением времени сигнал на
выходе вибратора периодически переключается с 0 на 1 и об-
ратно. Поэтому вибратор иногда сравнивают с часами: под-
считав число колебаний, вы (после некоторых вычислений)
сможете сказать, сколько прошло времени.
Как быстро переключается вибратор? Точнее, сколько вре-
мени уходит на одно колебание металлического контакта?
189
Обратная связь и триггеры
Сколько раз в секунду это происходит? Это, очевидно, зави-
сит от устройства реле. Легко представить себе большое непо-
воротливое реле, которое с глухим стуком медленно замыкает
и размыкает контакт, и небольшую легкую релюшку, которая
тоненько жужжит.
Циклом колебаний называется интервал, в течение кото-
рого выход вибратора изменяется, а затем возвращается в ис-
ходное состояние.
Один цикл
Время
0
1
Время, которое занимает один цикл, называется периодом ко-
лебаний. Предположим, что период нашего вибратора равен
0,05 сек, и проградуируем горизонтальную ось в секундах, на-
чиная с некоторого момента времени, который будем считать
нулевым.
Время
Один цикл
0
1
0 0,025 0,05 0,075 0,10 0,125 0,15
Частота колебаний есть величина, обратная периоду. На-
пример, если период колебаний равен 0,05 сек, частота колеба-
ний 1/0,05 = 20 колебаний в секунду, т. е. выход вибратора ме-
няет свое состояние и возвращается обратно 20 раз в секунду.
Число колебаний в секунду — единица столь же понятная,
как число километров в час, килограммов на квадратный сан-
тиметр, килокалорий на 100 г продукта. Но в отличие от при-
веденных примеров у нее есть собственное название. В при-
знание заслуг Генриха Рудольфа Герца (1857–1894), который
первым отправил и принял радиоволны, частоту измеряют не
в колебаниях в секунду, а в герцах (Гц). В 20-х годах XX века эту
единицу измерения начали использовать в Германии, и за не-
сколько лет она распространилась на другие страны.
190
Глава четырнадцатая
Таким образом, мы можем сказать, что наш вибратор име-
ет частоту 20 герц, или сокращенно 20 Гц.
Конечно, эту частоту мы просто придумали. Однако к кон-
цу этой главы мы создадим устройство, с помощью которого
частоту колебаний можно будет измерять.
Чтобы привести это начинание в жизнь, рассмотрим пару
вентилей ИЛИ-НЕ, соединенных особым образом. Мы по-
мним, что напряжение на выходе вентиля ИЛИ-НЕ имеется,
только если напряжения нет ни на одном из входов.
ИЛИ-НЕ
0
1
0
1
0
1
0
0
Вот как выглядит нужная нам цепь с двумя вентилями ИЛИ-
НЕ, двумя переключателями и лампочкой.
V
V
Провода идут весьма странно: выход левого вентиля ИЛИ-
НЕ подключен ко входу правого вентиля ИЛИ-НЕ, а выход
правого вентиля ИЛИ-НЕ является входом левого вентиля
ИЛИ-НЕ. Такое соединение называется обратной связью
(feedback). Как и в вибраторе, выход цепи является ее же вхо-
дом. Это особенность подавляющего большинства схем, рас-
сматриваемых в этой главе.
Поначалу ток протекает только по цепи от выхода левого
вентиля ИЛИ-НЕ. Это происходит из-за того, что оба входа
этого вентиля равны 0. Замкнем верхний переключатель. Вы-
ход левого вентиля ИЛИ-НЕ становится 0, что означает появ-
ление 1 на выходе правого вентиля ИЛИ-НЕ — лампочка за-
горается:
191
Обратная связь и триггеры
V
V
Чудеса начнутся, когда вы снова разомкнете верхний пере-
ключатель. Выход вентиля ИЛИ-НЕ равен 0 независимо от
того, на каком входе он получает 1, поэтому выход левого вен-
тиля ИЛИ-НЕ остается неизменным, и свет продолжает гореть.
V
V
Не странно ли? Оба переключателя разомкнуты, как и на пер-
вом рисунке, но теперь свет горит. Ни с чем подобным мы еще
не сталкивались. Обычно выход цепи зависел исключительно
от ее входа, но в данном случае это не так. Более того, теперь
вы вольны сколько угодно замыкать и размыкать верхний пе-
реключатель — свет все равно будет гореть. Этот переключа-
тель больше на цепь не влияет, поскольку выход левого вен-
тиля ИЛИ-НЕ независимо от него остается 0.
Замкнем теперь нижний переключатель. На один из вхо-
дов правого вентиля ИЛИ-НЕ теперь подается 1, его выход
становится 0, и лампочка гаснет. Выход левого вентиля ИЛИ-
НЕ становится равным 1.
192
Глава четырнадцатая
V
V
Теперь нижний переключатель можно разомкнуть — лампочка
останется выключенной.
V
V
Мы вернулись к тому, с чего начали. На этот раз без каких
бы то ни было последствий можно замыкать и размыкать ниж-
ний переключатель. Подведем итог наших экспериментов.
•
Замыкание верхнего переключателя приводит к включению
лампочки. Она продолжает гореть, даже если верхний пе-
реключатель после этого разомкнуть.
•
Замыкание нижнего переключателя приводит к выключе-
нию лампочки. Она не загорается, даже если нижний пере-
ключатель после этого разомкнуть.
Странность этой схемы в том, что когда оба переключате-
ля разомкнуты, в одном случае лампочка горит, а в другом —
нет. Можно сказать, что при разомкнутых переключателях у
этой схемы есть два устойчивых состояния. Такая схема на-
зывается триггером (flip-flop). История триггера началась в
1918 г. с работ английского физика Вильяма Генри Эклса
(William Henry Eccles) (1875–1966) и Ф. В. Джордана (F. W.
Jordan), о котором, кажется, больше ничего не известно.
Триггер сохраняет информацию. Он «запоминает». В част-
ности, в последней схеме триггер помнит, какой переключа-
тель был замкнут последним. Если в своих изысканиях вы на-
толкнетесь на такой триггер и увидите, что лампочка горит,
193
Обратная связь и триггеры
вы сделаете вывод, что последним был замкнут верхний пере-
ключатель, а если не горит — нижний.
Триггер — весьма полезное устройство. Он снабжает элек-
трическую схему памятью, в которой хранится информация о
том, что в этой схеме происходило раньше. Представьте себе,
что пытаетесь считать, не обладая способностью к запомина-
нию. Ничего бы у вас не получилось: ведь чтобы назвать оче-
редное число, нужно помнить, какое число было названо пе-
ред этим! Поэтому схема, предназначенная для подсчета чего-
либо, обязательно содержит триггеры.
Существует несколько разновидностей триггеров. Простей-
ший триггер — я его только что показал — называется RS-
триггером (Reset-Set, Сброс-Установка). Вентили ИЛИ-НЕ на
схеме RS-триггера обычно изображаются симметрично:
Q
Q
R
S
Выход, к которому мы подключали лампочку, традиционно
обозначается Q. Его дополняет выход
_
Q, электрически проти-
воположный Q. Если Q равен 0, то
_
Q равен 1 и наоборот. Вхо-
ды S и R используются для установки (set) и сброса (reset). Ког-
да на вход S подается сигнал 1 (это соответствует замыканию
верхнего переключателя на предыдущей схеме), выход Q ра-
вен 1, а
_
Q — 0. Когда на входе R — 1 (что соответствует замы-
канию нижнего переключателя), Q становится 0, а
_
Q — 1. Ког-
да на оба входа подается 0, значение на выходе Q зависит от
предыдущего действия. Эти правила обобщены в таблице.
Входы
Выходы
S
R
Q
_
Q
1
0
1
0
0
1
0
1
0
0
Q
_
Q
1
1
Запрещено
194
Глава четырнадцатая
Эта таблица называется функциональной таблицей, или таб-
лицей логики, или таблицей истинности, или таблицей состо-
яний. В ней показана зависимость результата на выходах от
комбинаций сигналов на входах. У RS-триггера всего два вхо-
да, поэтому число возможных комбинаций на входах равно 4.
Они соответствуют четырем строкам таблицы.
Обратите внимание на вторую строку снизу: в ней значения
входов S и R равны 0. Значения выходов в ней обозначены Q и
_
Q, т. е. выходы Q и
_
Q остаются такими же, какими они были до
того, как входы S и R обратились в 0. Последняя строка указы-
вает, что ситуация, в которой входы S и R имеют значение 1,
запрещена. Это не значит, что вас оштрафуют, если вы подади-
те 1 на оба входа. Просто если в этой схеме на оба входа попада-
ет 1, оба выхода будут иметь значения 0, а это противоречит
нашему желанию, чтобы выход
_
Q был противоположен выходу
Q. Проектируя схему с RS-триггером, избегайте ситуаций, при
которых входы R и S одновременно равны 1.
RS-триггер часто изображают как небольшой прямоуголь-
ник с двумя входами и двумя выходами:
Q
R
S
Q
RS-триггер, безусловно, интересен как первый пример схе-
мы, которая как бы «запоминает», который из двух входов был
в последний раз под напряжением. Однако полезнее схема,
способная запоминать, был ли данный сигнал нулем или еди-
ницей в определенный момент времени.
Прежде чем начинать ее сборку, подумаем о том, как такая
схема должна себя вести. У нее будет два входа. Назовем один
из них Данные. Как обычно, сигнал на входе Данные может
быть 0 или 1. Второй вход назовем «Запомнить этот бит».
Обычно на этот вход подается 0, и сигнал Данные на состоя-
ние схемы не влияет. Когда сигнал «Запомнить этот бит» ра-
вен 1, сигнал Данные копируется на выходе схемы. После это-
го сигнал «Запомнить этот бит» может вернуться в состояние
0. В этот момент схема запоминает последнее значение сигна-
ла Данные; последующие изменения сигнала Данные на состо-
яние схемы не влияют.
195
Обратная связь и триггеры
Словом, нам нужна схема с такой таблицей логики.
Входы
Выходы
Данные
«Запомнить этот бит»
Q
0
1
0
1
1
1
0
0
Q
1
0
Q
В первых двух случаях, когда сигнал «Запомнить этот бит»
равен 1, выход Q имеет то же значение, что и вход Данные.
Когда сигнал «Запомнить этот бит» обращается в 0, выход Q
сохраняет значение, которое было на нем до этого. Заметьте:
при нулевом сигнале «Запомнить этот бит», значение выхода
Q не зависит от изменений в сигнале Данные. Таблицу логики
можно упростить так:
Входы
Выходы
Данные
«Запомнить этот бит»
Q
0
1
0
1
1
1
Х
0
Q
Символ «Х» означает «не важно», т. е. при нулевом сигнале на
входе «Запомнить этот бит» значение входа Данные не имеет
значения — выход Q останется неизменным.
Чтобы реализовать сигнал «Запомнить этот бит» в нашем
RS-триггере, придется добавить на входе два вентиля И, как
показано на схеме:
Q
Сброс
Установка
Запомнить этот бит
Q
196
Глава четырнадцатая
Как вы помните, выход вентиля И равен 1, если сигнал на обоих
входах равен 1. В этой схеме выход Q равен 0, а выход
_
Q — 1.
Если сигнал «Запомнить этот бит» равен 0, значение сигна-
ла Установка не влияет на выходные сигналы:
Q
Сброс
Установка
Запомнить этот бит
Q
Не влияет на них и сигнал Сброс:
Q
Сброс
Установка
Запомнить этот бит
Q
Чтобы схема работала подобно обычному RS-триггеру, сиг-
нал на входе «Запомнить этот бит» должен равняться 1:
Q
Сброс
Установка
Запомнить этот бит
Q
В этом случае выход верхнего вентиля И совпадает с сигналом
Сброс, а выход нижнего вентиля И — с сигналом Установка.
197
Обратная связь и триггеры
Но мы пока не достигли поставленной цели. Нам нужно
два выхода, а не три. Как сократить их число? Вспомним ис-
ходную таблицу логики RS-триггера: одновременное равенство
1 сигналов Сброс и Установка не допускается, и подобных си-
туаций следует избегать. Кроме того, не имеет смысла и их
одновременное равенство 0: эта ситуация означает неизмен-
ность выходного сигнала, что в новой схеме соответствует ус-
тановке в 0 сигнала «Запомнить этот бит».
Схему следует организовать так, чтобы при единичном сиг-
нале Установка сигнал Сброс равнялся 0, а при сигнале Уста-
новка равном 0 сигнал Сброс устанавливался бы в 1. Сигнал
Данные может быть эквивалентен сигналу Установка, а инвер-
тированный сигнал Данные — сигналу Сброс.
Q
Запомнить этот бит
Q
Данные
В такой ситуации оба входа равны 0, и выход Q тоже равен 0
(т. е. выход
_
Q равен 1). Пока сигнал «Запомнить этот бит» ра-
вен 0, сигнал Данные на состояние схемы не влияет.
Q
Запомнить этот бит
Q
Данные
Когда сигнал «Запомнить этот бит» обращается в 1, сигнал на
выходе схемы равен сигналу на входе Данные.
198
Глава четырнадцатая
Q
Запомнить этот бит
Q
Данные
Выход Q теперь имеет то же значение, что и вход Данные, а
выход
_
Q противоположен ему. Теперь входу «Запомнить этот
бит» можно вернуть значение 0.
Q
Запомнить этот бит
Q
Данные
Схема запомнила величину сигнала Данные, имевшую ме-
сто в тот момент, когда сигнал «Запомнить этот бит» равнялся
1. Последующие изменения сигнала на нее не влияют.
Q
Запомнить этот бит
Q
Данные
Эта схема называется D-триггером со срабатыванием по
уровню (level-triggered D-type flip-flop). Буква D происходит от
английского слова «data» (данные). Срабатывание по уровню
означает, что триггер сохраняет значение сигнала на входе Дан-
ные, когда сигнал «Запомнить этот бит» достигает определен-
199
Обратная связь и триггеры
ного уровня, в нашем случае 1 (вскоре мы рассмотрим другой
способ срабатывания триггера).
Обычно в книгах по схемотехнике вместо «Запомнить этот
бит» применяется обозначение Синхронизация (Clock) — оно
говорит о том, что иногда этот сигнал используется в качестве
метронома, который периодически колеблется между 0 и 1. Но
пока сигнал на входе Clock просто говорит, что значение на
входе Данные нужно сохранить.
Q
Clock
Q
Данные
В таблицах логики и на схемах часто название входа Дан-
ные (data) сокращается до D, а вход Clock записывают как Clk.
Входы__Выходы__D__Clk__Q_______Q'>Входы
Выходы
D
Clk
Q
_
Q
0
1
0
1
1
1
1
0
Х
0
Q
_
Q
Иногда разобранную схему называют также защелкой
(latch) D-типа со срабатыванием по уровню. Термин «защел-
ка» означает, что схема как бы «запирает» один бит информа-
ции и хранит его для дальнейшего использования. При жела-
нии такую схему можно считать памятью емкостью в 1 бит. В
главе 16 я покажу, как из множества подобных триггеров мож-
но собрать память гораздо большего объема.
Необходимость сохранения многобитовых величин возни-
кает довольно часто. Допустим, вы хотите использовать сумма-
тор из главы 12 для сложения трех 8-битовых чисел. Первое чис-
ло вы, как обычно, набираете с помощью первого ряда тумбле-
ров, второе число — с помощью второго ряда, но при этом вам
200
Глава четырнадцатая
придется записать результат их сложения на бумажке. Затем вы
набираете его с помощью первого ряда тумблеров, а второй ряд
используете для ввода третьего слагаемого. Можно ли избавить-
ся от необходимости записывать промежуточный результат,
как-то «запомнив» его внутри сумматора?
Мы решим эту проблему с помощью 8 защелок, в каждой
из которых используются 2 вентиля ИЛИ-НЕ, 2 вентиля И и 1
инвертор. Объединим их в одно устройство, соединив между
собой все входы Clk:
Clk
Восьмибитовая защелка
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
Q
7
Q
6
Q
5
Q
4
Q
3
Q
2
Q
1
Q
0
Эта защелка может одновременно хранить 8 битов. Восемь
входов обозначены D
0
–D
7
, восемь выходов — Q
0
–Q
7
. С левой
стороны расположен вход Clk. Обычно сигнал на нем равен 0.
Когда же он обращается в 1, 8-битовое значение на входах D
передается на выходы Q. Это 8-битовое число остается на вы-
ходе и после того, как сигнал Clk снова становится нулевым и
сохраняется там до следующего перехода сигнала Clk в 1.
В обозначении 8-битовой защелки 8 входов D и 8 выходов
Q можно сгруппировать:
D
7
...D
0
8
Clk
8-битовая защелка
Q
7
...Q
0
8
А вот и наш старый знакомый — восьмибитовый сумматор.
201
Обратная связь и триггеры
8
8
8
CO
CI
8-битовый
сумматор
A
7
...A
0
B
7
...B
0
S
7
...S
0
Обычно (забудем пока про вычитание) входы A и B соеди-
няются с переключателями, вход для переноса CI — с землей,
а выходы S и CO — с лампочками.
В модифицированном варианте сумматора выходы S мож-
но подключить не только к лампочкам, но и ко входам D 8-би-
товой защелки. Для сохранения суммы ко входу Clk защелки
можно подключить тумблер «Сохранить».
8
8
8
V
V
8
CO
CI
8-битовый
сумматор
S
8
Селектор 2-на-1 Sel
8-битовая
защелка
Переключатели
A
8
Q
Переключатели
Лампочка
Лампочки
От защелки
Сохранить
Clk
D
B
B
A
Селектор 2 линии на 1 (2-Line-to-1-Line Selector) позволяет с
помощью переключателя выбирать, откуда следует подавать
202
Глава четырнадцатая
информацию на вход B — со второго ряда переключателей или
с выходов Q защелки. Чтобы выбрать выходы 8-битовой за-
щелки, переключатель нужно замкнуть. В селекторе «2 на 1»
используется 8 одинаковых схем:
Выход
A
Выборка
B
Если вход Выборка (Sel) равен 1, выход вентиля ИЛИ со-
впадает со входом B. Дело в том, что выход верхнего вентиля
И равен входу B, а выход нижнего вентиля И — 0. Если вход
Выборка равен 0, выход совпадает со входом A. Правила рабо-
ты этой схемы обобщены в такой таблице логики.
Входы
Выходы
Выборка
A
B
Q
0
0
X
0
0
1
X
1
1
X
0
0
1
X
1
1
В селекторе, включенном в модифицированный сумматор,
содержится 8 таких 1-битовых селекторов. Их входы Выборка
соединены между собой.
Новый сумматор не совсем корректно обрабатывает сигнал
CO (выход для переноса). Даже если сложение двух чисел при-
водит к появлению переноса (сигнал CO равен 1), при сложе-
нии суммы с третьим числом этот сигнал игнорируется. Решить
эту проблему можно, создав сумматор, защелку и селектор, раз-
рядность которых равна 16 или хотя бы превышает разрядность
максимального числа, с которым вам предстоит иметь дело. Но
мы отложим решение этой проблемы до главы 17.
Пока же займемся делом поинтереснее — избавимся от
одного ряда переключателей. Но для начала немного модифи-
цируем D-триггер, добавив к нему вентиль ИЛИ и входной
сигнал Очистка (Clear или Clr), обычно равный 0. Но когда он
обращается в 1, сигнал на выходе Q становится равным 0:
203
Обратная связь и триггеры
Q
Данные
Clk
Q
Clr
Обращение сигнала Q в 0 происходит независимо от сигналов
на других входах: информация, записанная в триггере, как бы
стирается.
Зачем? Почему нельзя очистить триггер, подав 0 на вход
Данные и 1 на вход Clk? Дело в том, что состояние входа Дан-
ные не всегда поддается управлению. Допустим, у нас имеют-
ся 8 защелок, соединенных с выходами 8-битового сумматора:
8
V
8
V
Clr
Clk
8-битовая
защелка
8
Лампочки
Сложить
CI
Восьмибитовый
сумматор
Переключатели
8
Очистка
D
Q
S
A
B
Заметьте: сигнал на вход Clk защелки теперь подается с помо-
щью переключателя Сложить (вместо него и переключателя
Очистка лучше использовать кнопки).
204
Глава четырнадцатая
Не исключено, что этот сумматор покажется вам удобнее
предыдущего, особенно если вам нужно сложить несколько
чисел. В начале работы вы нажимаете кнопку Очистка. В ре-
зультате этого действия все выходы защелки обращаются в 0,
все лампочки выключаются, на второй набор входов 8-бито-
вого сумматора подаются нули. Затем вы вводите первое чис-
ло и нажимаете кнопку Сложить. Лампочки отображают вве-
денное число. Вы вводите второе число и снова нажимаете
кнопку Сложить. Число, набранное с помощью переключате-
лей, складывается с предыдущим числом, и сумма отобража-
ется с помощью лампочек. Работу можно продолжить, наби-
рая новые числа и нажимая кнопку Сложить.
Я уже говорил, что спроектированный нами D-триггер сра-
батывает по уровню. Это значит, что для сохранения в защел-
ке сигнала на входе Данные уровень сигнала на входе Clk дол-
жен измениться с 0 до 1. Если в течение того времени, пока
сигнал Clk равен 1, сигнал Данные изменится, все его измене-
ния будут отражаться на величине выходов Q и
_
Q.
Часто это именно то, что нужно. Но иногда предпочтитель-
нее вход Clk со срабатыванием по фронту (edge-triggered), при
котором выход может меняться, только когда сигнал Clk пере-
ходит из 0 в 1. Как и в триггере со срабатыванием по уровню,
при нулевом сигнале на входе Clk триггера со срабатыванием
по фронту изменения на входе Данные не отражаются на вы-
ходах. Отличие в том, что в этом триггере изменения на входе
Данные не отражаются на выходах и при сигнале Clk, равном
1. Вход Данные влияет на выходы только в момент перехода
сигнала Clk из 0 в 1.
D-триггер со срабатыванием по фронту, собирается из двух
блоков RS-триггера, соединенных так:
Q
Q
Clk
Данные
205
Обратная связь и триггеры
Суть этой схемы в том, что вход Clk управляет как первым
блоком, так и вторым, но в первом блоке сигнал Clk инверти-
руется. Это значит, что первый блок работает как D-триггер за
исключением того, что содержимое входа Данные сохраняет-
ся, когда сигнал Clk равен 0. Выходы первого блока являются
входами для второго блока, и их содержимое сохраняется при
обращении сигнала Clk в 1. Общий результат таков: сигнал на
входе Данные сохраняется только при переходе сигнала Clk из
0 в 1.
Рассмотрим работу триггера подробнее. На схеме он пока-
зан в состоянии покоя с нулями на входах Данные и Clk и ну-
лем же на выходе Q.
Q
Q
Данные
Clk
Подадим 1 на вход Данные.
Q
Q
Данные
Clk
При этом изменяется состояние первого блока триггера, так
как инвертированный сигнал Clk равен 1. Второй блок на из-
менение входа Данные не реагирует, так как неинвертирован-
ный сигнал Clk равен 0. Подаем 1 на вход Clk:
206
Глава четырнадцатая
Q
Q
Данные
Clk
Срабатывает второй блок, и выход Q становится равным 1.
Теперь сигнал на входе Данные может меняться (например,
снова стать нулевым), но на выход Q это не повлияет.
Q
Q
Clk
Данные
Выходы Q и
_
Q меняются только при изменении сигнала Clk с 0
на 1.
В таблице логики D-триггера, срабатывающего по фронту,
нам потребуется новый символ — стрелка, направленная вверх.
Она означает изменение сигнала с 0 на 1.
Входы
Выходы
D
Clk
Q
_
Q
0
á
0
1
1
á
1
0
X
0
Q
_
Q
Стрелка указывает, что выход Q копирует вход Данные, когда
сигнал Clk переходит с 0 на 1, т. е. совершает положительный
переход (отрицательным называется переход с 1 на 0). На схе-
мах этот триггер обозначается так:
207
Обратная связь и триггеры
Q
D
Clk
Q
Треугольная скобка указывает, что триггер срабатывает по
фронту.
А теперь я покажу вам схему с D-триггером, срабатываю-
щим по фронту, которую нельзя продублировать с помощью
триггера, срабатывающего по уровню. Вспомните вибратор, о
котором мы говорили в начале главы. Выход вибратора осцил-
лирует между 0 и 1:
Выход
Соединим выход вибратора со входом Clk D-триггера, сра-
батывающего по фронту, а выход
_
Q соединим с входом D:
Q
D
Clk
Q
Здесь выход триггера является его же входом — обратная связь
с обратной связью! (Практическое воплощение этой схемы не
лишено трудностей. Основу конструкции вибратора состав-
ляет реле, которое осциллирует с некоторой скоростью. Вы-
ход вибратора соединяется с другими реле, из которых собран
триггер. Может статься, что эти реле обладают другой конст-
рукцией и неспособны срабатывать с той же скоростью, что и
вибратор. Чтобы не столкнуться с этой проблемой, будем счи-
тать, что реле в вибраторе работает гораздо медленнее осталь-
ных реле в схеме.)
Чтобы разобраться, что происходит в этой схеме, рассмот-
рим таблицу ее логики. Для начала примем, что вход Clk и вы-
ход Q равны 0, т. е. выход
_
Q, соединенный со входом D, равен 1.
Входы
Выходы
D
Clk
Q
_
Q
1
0
0
1
208
Глава четырнадцатая
Когда вход Clk меняется с 0 на 1, на выходе Q копируется зна-
чение со входа D.
Входы
Выходы
D
Clk
Q
_
Q
1
0
0
1
1
á
1
0
Значение на выходе
_
Q обратилось в 0, такой же сигнал пошел и
на вход D. Сигнал Clk обратился в 1.
Входы
Выходы
D
Clk
Q
_
Q
1
0
0
1
1
á
1
0
0
1
1
0
Значение сигнала Clk, поступающего из вибратора, снова об-
нулилось, но на выходе это не сказалось.
Входы
Выходы
D
Clk
Q
_
Q
1
0
0
1
1
á
1
0
0
1
1
0
0
0
1
0
Затем сигнал Clk снова обратился в 1. Выход D равен 0, и пото-
му выход Q обращается в 0, а выход
_
Q — соответственно в 1.
Входы
Выходы
D
Clk
Q
_
Q
1
0
0
1
1
á
1
0
0
1
1
0
0
0
1
0
0
á
0
1
209
Обратная связь и триггеры
Сигнал на входе D тоже обращается в 1.
Входы
Выходы
D
Clk
Q
_
Q
1
0
0
1
1
á
1
0
0
1
1
0
0
0
1
0
0
á
0
1
1
1
0
1
Изменения, которые мы проследили, можно подытожить
так: каждый раз, когда вход Clk меняется с 0 на 1, выход Q ме-
няется или с 0 на 1, или с 1 на 0. Ситуацию проясняет график:
D/Q
Clk
Q
Когда вход Clk переходит из 0 в 1, значение на входе D (совпа-
дающее со значением на выходе
_
Q) передается на выход Q, од-
новременно изменяя
_
Q, а значит, и D до следующего перехода
входа Clk из 0 в 1.
Если частота вибратора — 20 Гц (т. е. 20 колебаний в се-
кунду), частота изменений выхода Q вдвое меньше, т. е. 10 Гц.
По этой причине схема, в которой выход
_
Q соединен со вхо-
дом Данные триггера, называется делителем частоты
(frequency divider).
Конечно, выход делителя частоты может быть входом Clk
другого делителя для следующего деления частоты. Вот схема
из трех делителей частоты:
210
Глава четырнадцатая
Q
Q
Q
Q
Clk
D
Clk
Q
D
Clk
Q
D
Clk
Q
Clk
Q
1
Q
2
Q
3
Посмотрим как изменяются четыре сигнала, которые я от-
метил в верхней части схемы.
Clk
Q 1
Q 2
Q 3
Ничего не напоминает?
Я вам помогу. Пометим сигналы нулями и единицами.
Clk
Q 1
Q 2
Q 3
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Все еще не догадались? Тогда разверните эту диаграмму по
часовой стрелке на 90° и прочитайте 4-битовые числа по гори-
зонтали. Они соответствуют десятичным числам от 0 до 15.
Двоичное число
Десятичное число
0000
1
0001
2
211
Обратная связь и триггеры
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
10
1010
11
1011
12
1100
13
1101
14
1111
15
Таким образом, схема считает в двоичном формате от 0 до
максимального числа, зависящего от количества триггеров в
схеме. В главе 8 я уже говорил, что в последовательности уве-
личивающихся двоичных чисел каждая колонка двоичных
цифр меняется между 0 и 1 с частотой, вдвое меньшей, чем
колонка справа от нее. Данный счетчик имитирует эту после-
довательность. При каждом положительном переходе сигнала
Clk происходит приращение (increment) выходов счетчика на 1.
Соединим 9 триггеров и поместим их в общий корпус.
Clk
8-битовый счетчик импульсов
Q
7
Q
6
Q
5
Q
4
Q
3
Q
2
Q
1
Q
0
Эта схема называется сквозным счетчиком (ripple counter), так
как в ней выход каждого триггера становится входом Clk сле-
дующего триггера. Изменения сигнала последовательно про-
ходят через все триггеры, и триггеры в конце схемы могут сра-
батывать с небольшой задержкой. Более надежный счетчик —
синхронный (synchronous), в котором все выходы меняются
одновременно.
(продолжение)
212
Глава четырнадцатая
Я обозначил выходы от Q
0
до Q
7
. Они собраны так, что вы-
ход первого триггера в цепочке (Q
0
) расположен справа. Под-
ключив к этим выводам лампочки, вы сможете прочитать 8-
битовое число.
На временной диаграмме выходы такого счетчика можно
отображать как раздельно, так и все вместе:
Clk
00000000 00000001 00000010 00000011 00000100
Q
При каждом положительном переходе сигнала Clk некото-
рые выходы меняются, некоторые — нет, но все вместе они
отображают увеличивающиеся двоичные числа.
Я говорил в начале главы, что мы определим частоту коле-
баний вибратора. Пришла пора это сделать. Если соединить
вибратор с входом Clk 8-битового счетчика, счетчик покажет,
сколько колебаний совершил вибратор. Когда результат дос-
тигнет 11111111 (255 в десятичной системе), счетчик сбросит-
ся в 00000000. Вероятно, легче всего определить частоту виб-
ратора так. Соедините с выходами 8-битового счетчика лам-
почки. Дождитесь, чтобы сигнал на всех выходах стал 0 (когда
это произойдет, все лампочки погаснут), и запустите секундо-
мер. Остановите его, когда все лампочки снова погаснут. Вы
получите время, которое потребовалось для 256 колебаний
вибратора. Допустим, это 10 секунд. Частота колебаний, та-
ким образом, равна 256
¸ 10, или 25,6 Гц.
По мере того, как у триггеров появляются новые возмож-
ности, возрастает и их сложность. Взгляните на D-триггер с
предустановкой и очисткой, срабатывающий по фронту (edge-
triggered D-type flip-flop with preset and clear):
213
Обратная связь и триггеры
Q
Q
Clr
Pre
D
Clk
Входы Pre и Clr обладают более высоким приоритетом, чем
входы Clk и Данные. Обычно оба они равны 0. Когда вход Pre
обращается в 1, выход Q также обращается в 1, а
_
Q — в 0. Ког-
да вход Clr равен 1, выход Q равен 0, а
_
Q — 1. Подобно входам
Установка и Сброс RS-триггера, входы Pre и Clr не должны
одновременно обращаться в 1. В остальном этот триггер ведет
себя как обычный D-триггер со срабатыванием по фронту.
Входы
Выходы
Pre
Clr
D
Clk
Q
_
Q
1
0
Х
Х
1
0
0
1
Х
Х
0
1
0
0
0
á
0
1
0
0
1
á
1
0
0
0
Х
0
Q
_
Q
D-триггер, срабатывающий по фронту, с предустановкой и
сбросом обозначается так:
214
Глава четырнадцатая
Q
D
Clk
Q
Pre
Clr
Итак, мы научили реле складывать, вычитать и считать в
двоичной системе. Это немалое достижение, особенно учиты-
вая, что все устройства, которые мы использовали, изобрете-
ны более ста лет назад. Но на этом наши открытия не заканчи-
ваются. Пока же мы немного оторвемся от сборки электри-
ческих схем и еще раз посмотрим на системы счисления.
|