Москва 2001 г тайный язык информатики Чарльз Петцольд ббк 32. 973. 26–018



Pdf көрінісі
бет10/26
Дата07.04.2020
өлшемі3,29 Mb.
#61783
1   ...   6   7   8   9   10   11   12   13   ...   26
Байланысты:
Petcold Kod-Taynyy-yazyk-informatiki.535358

Глава 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

Итак, мы научили реле складывать, вычитать и считать в

двоичной системе. Это немалое достижение, особенно учиты-

вая, что все устройства, которые мы использовали, изобрете-

ны более ста лет назад. Но на этом наши открытия не заканчи-

ваются. Пока же мы немного оторвемся от сборки электри-

ческих схем и еще раз посмотрим на системы счисления.




Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   ...   26




©www.engime.org 2024
әкімшілігінің қараңыз

    Басты бет