589.05K
AI
Category: electronicselectronics

Триггеры

1.

ЛЕКЦИЯ · ЦИФРОВАЯ ЭЛЕКТРОНИКА
Триггеры
Как схема запоминает один бит: от кольца из двух инверторов до D-,
JK- и T-триггеров

2.

01 · ЗАЧЕМ НУЖНА ПАМЯТЬ
Два вида цифровых схем
Комбинационные
Последовательностные
Выход зависит только от входов в данный момент.
Убрали входной сигнал — результат пропал.
Выход зависит от входов и от того, что было
раньше. Схема помнит свою историю.
триггер, счётчик, регистр, память
И, ИЛИ, сумматор, дешифратор
Триггер — простейший элемент памяти: у него два устойчивых состояния, Q = 0 и Q =
1, и он хранит одно из них сколь угодно долго.

3.

01 · ЗАЧЕМ НУЖНА ПАМЯТЬ
Пример задачи: дребезг контактов
Сигнал прямо с кнопки
1
дребезг: 4 спада вместо
одного
0
Металлический контакт при замыкании
пружинит и несколько раз отскакивает.
Отскоки продолжаются от долей
миллисекунды до нескольких
миллисекунд — зависит от кнопки.
Для логики, которая переключается за
наносекунды, это четыре отдельных
нажатия. Счётчик прибавит 4 вместо 1.
Тот же сигнал после триггера
1
один чистый спад
0
время → нажатие в момент, когда сигнал впервые падает в 0
Триггер запоминает первое касание и не
реагирует на отскоки. Как — покажем на
RS-триггере.

4.

02 · RS-ТРИГГЕРЫ
Идея: два инвертора в кольце
Задача: схема должна запомнить первое касание кнопки и не забыть его во время отскоков. Начнём с простейшей памяти.
Выход D1 идёт на вход D2, выход D2 — обратно на вход D1.
Такая положительная обратная связь сама себя поддерживает.
1
Q
D1
Q̅
0
Состояние
Q
Q̅
хранит 1
1
0
хранит 0
0
1
D2
Проблема: входов нет, записать новое значение нельзя.
Добавим управляющие входы — получим RS-триггер.

5.

02 · RS-ТРИГГЕРЫ
RS-триггер на ИЛИ-НЕ
Решение: заменим инверторы кольца на ИЛИ-НЕ — их свободные входы станут входами записи S и R.
R
D1
Q
Q̅
S
D2
S
R
Q
Q̅
Режим
0
0
Q
Q̅
хранение
0
1
0
1
сброс
1
0
1
0
установка
1
1
0
0
запрещено
Q = ¬(R + Q̅)
Q̅ = ¬(S + Q)
S (set) записывает 1, R (reset) — 0. Активный уровень входов — 1. При
S = R = 1 оба выхода 0, а после снятия сигналов состояние
непредсказуемо.

6.

02 · RS-ТРИГГЕРЫ
RS на ИЛИ-НЕ: что происходит в узлах
Шаг
S
R
Q
Q̅
Что происходит
0. Хранит 0
0
0
0
1
Q̅ = 1 на входе D1 держит Q в нуле
1. Подали S = 1
0→1
0
0
1→0
D2 видит S = 1: Q̅ падает в 0
2. Задержка D1
1
0
0→1
0
у D1 оба входа 0 (R и Q̅): Q = 1
1→0
0
1
0
D2 видит Q = 1, поэтому Q̅ остаётся 0
4. Подали R = 1
0
0→1
1→0
0
D1 видит R = 1: Q падает в 0
5. Задержка D2
0
1
0
0→1
у D2 оба входа 0 (S и Q): Q̅ = 1
6. Сняли R
0
1→0
0
1
вернулись к шагу 0: хранит 0
3. Сняли S
Сначала переключается выход того вентиля, на который пришёл сигнал, затем второй. После снятия S или R
обратная связь удерживает новое состояние.

7.

02 · RS-ТРИГГЕРЫ
RS-триггер на И-НЕ с инверсными входами
Задача: кнопка замыкает вход на землю, то есть даёт 0, а не 1. Нужен триггер, который срабатывает от нуля.
S̅
D1
Q
Q̅
R̅
D2
S̅
R̅
Q
Q̅
Режим
1
1
Q
Q̅
хранение
0
1
1
0
установка
1
0
0
1
сброс
0
0
1
1
запрещено
Q = ¬(S̅ · Q̅)
Q̅ = ¬(R̅ · Q)
Активный уровень — 0: вход срабатывает, когда его прижимают к
земле. В покое оба входа держат в 1. Так удобно подключать кнопки.

8.

02 · RS-ТРИГГЕРЫ
Антидребезг на RS-триггере
+U
S̅
R1
кнопка SB
нажата
S̅
Q
R̅
T
R̅
отпущена
R2
+U
Q̅
Q
нажали
отпустили
Первое касание S̅ ставит Q = 1. Отскоки дают S̅ = R̅ = 1 — режим
хранения, и Q не меняется. То же при отпускании на входе R̅.

9.

02 · RS-ТРИГГЕРЫ
Антидребезг: состояния в узлах
Момент
Контакт
S̅
R̅
Q
Q̅
Режим
1. Кнопка отпущена
на R̅
1
0
0
1
сброс: Q = 0
2. Контакт в полёте
в воздухе
1
0→1
0
1
хранение
3. Первое касание
на S̅
1→0
1
0→1
1→0
установка
4. Отскок
в воздухе
0→1
1
1
0
хранение: Q не меняется
5. Снова касание
на S̅
1→0
1
1
0
установка, но Q уже 1
6. Кнопку отпустили
на R̅
0→1
1→0
1→0
0→1
сброс: Q = 0
Шаги 4 и 5 повторяются несколько раз, но Q переключается ровно один раз — на шаге 3. Дребезг отфильтрован.

10.

03 · СИНХРОННЫЕ ТРИГГЕРЫ
Зачем триггеру вход C
Задача: запомнить результат вычисления — например, сумматора, — а не промежуточный мусор, который мелькает, пока
логика считает.
S
логика считает
логика считает
C
Q без C
ошибка: запомнена помеха
QсC
верно: записано, когда готово
Вход C — «разрешение записи». Пока C = 0, триггер не слушает S и R, как бы они ни менялись. Импульс C подают, когда
сигналы уже установились.

11.

03 · СИНХРОННЫЕ ТРИГГЕРЫ
Синхронный RS-триггер: вход C
Решение: два входных И-НЕ пропускают S и R к защёлке только при C = 1.
S
D1
D3
Q
C
Q̅
R
D2
D4
C
S
R
Q после
0
x
x
Q — хранение
1
0
0
Q — хранение
1
0
1
0 — сброс
1
1
0
1 — установка
1
1
1
запрещено
Пока C = 0, D1 и D2 выдают 1 — защёлка D3–D4 хранит. При
C = 1 входы S и R проходят (уже инвертированными). x —
любое значение.

12.

03 · СИНХРОННЫЕ ТРИГГЕРЫ
D-защёлка: один вход данных
Задача: убрать запрещённую комбинацию S = R = 1 и записывать бит по одному проводу данных, а не по двум.
D
Q
C
Q̅
НЕ
C
D
Q после
0
x
Q — хранение
1
0
0
1
1
1
Инвертор подаёт на S и R всегда разные значения —
запрещённая комбинация невозможна.
При C = 1 выход повторяет D («прозрачна»). При C = 0
хранит последнее значение.

13.

03 · СИНХРОННЫЕ ТРИГГЕРЫ
Проблема защёлки: прозрачность
Задача: сдвиговый регистр — по каждому такту бит должен переместиться в соседнюю ячейку, ровно на одну позицию.
Пока C = 1, каждое изменение D сразу
проходит на выход — несколько раз за
один такт.
C
В сдвиговом регистре выход одной
защёлки идёт на вход следующей. За
один импульс C бит «пробежит» всю
цепочку вместо сдвига на одну
позицию.
D
Q
C = 1: прозрачна
C = 1: прозрачна
Нужен триггер, который реагирует
на момент — фронт такта.

14.

03 · СИНХРОННЫЕ ТРИГГЕРЫ
D-триггер по фронту: две защёлки
Решение: две защёлки, открытые по очереди, — данные проходят только в момент фронта C.
ведущая
D
D
C
C
ведомая
Q
M
D
Q
Q
C
Q̅
Q̅
C
D
Q после
↑
0
0
↑
1
1
0, 1, ↓
x
Q — хранение
Ведущая открыта при C = 0, ведомая — при C =
1. Они открыты по очереди, и D попадает на
выход только в момент фронта 0 → 1.

15.

03 · СИНХРОННЫЕ ТРИГГЕРЫ
D-триггер: состояния узлов за такт
Этап
C
D
Ведущая
M
Ведомая
Q
1. C = 0, D = 1
0
1
открыта
0→1
закрыта
0
2. Фронт C
0→1
1
закрывается
1
открывается
1
1→0
закрыта
1
открыта
1
4. Спад C
1→0
0
открывается
закрывается
1
5. C = 0
0
0
открыта
0
закрыта
1
0→1
0
закрывается
0
открывается
3. C = 1, D меняется
6. Фронт C
1→0
0→1
1→0
Q меняется только на этапах 2 и 6 — на фронтах такта. На этапе 3 D изменился, но ведущая была закрыта, и выход
этого не заметил.

16.

03 · СИНХРОННЫЕ ТРИГГЕРЫ
D-триггер: временная диаграмма
C
Сравните с защёлкой: Q меняется не
чаще одного раза за такт.
D
Время установки и время
удержания: D должен быть стабилен
немного до и после фронта.
помеха
проигнорирована
Q
пунктир — передние фронты C, в эти моменты Q принимает значение D
Если нарушить — метастабильность:
выход на время «зависает» между 0 и
1.

17.

03 · СИНХРОННЫЕ ТРИГГЕРЫ
JK-триггер: без запрещённого состояния
Задача: для счётчика нужен режим «переключись в противоположное состояние». У RS-триггера на этом месте —
запрещённая комбинация.
J
C
K
S
Q
C
Q̅
K
Q после Режим
0
0
Q
хранение
0
1
0
сброс
1
0
1
установка
1
1
Q̅
переключение
Q
синхронный
RS
R
J
Q̅
Обратная связь пропускает только «полезный» вход:
J может установить лишь триггер в нуле, K —
сбросить лишь триггер в единице.

18.

03 · СИНХРОННЫЕ ТРИГГЕРЫ
T-триггер: вход «переключиться»
Задача: поделить частоту кварца на 2, 4, 8… Нужен триггер с одним управляющим входом: переключаться на фронте C или
нет.
T
D
Q после ↑
Режим
0
Q
Q
хранение
1
Q̅
Q̅
переключение
Q
D
T
D-триггер
искл. ИЛИ
C
C
Q
Q̅
D=T⊕Q
T = 0: на D приходит само Q — триггер перезаписывает своё же
значение. T = 1: на D приходит Q̅ — каждый фронт C меняет Q на
противоположное.

19.

03 · СИНХРОННЫЕ ТРИГГЕРЫ
T-триггер: деление частоты на 2
C
T
Q
T = 1: Q меняется на каждом фронте
T = 0: фронты C не меняют Q
Пока T = 1, за два периода C выход Q совершает один период — частота делится на 2. Цепочка из n T-триггеров делит
на 2ⁿ: часовой кварц 32 768 Гц после 15 триггеров даёт ровно 1 импульс в секунду.

20.

04 · ПРИМЕНЕНИЕ
Где работают триггеры
Антидребезг кнопок
Счётчики и делители частоты
RS-триггер на И-НЕ и кнопка с переключающим
контактом: один чистый импульс на одно нажатие.
Цепочка из n переключающихся триггеров считает
импульсы в двоичном коде и делит частоту на 2ⁿ.
RS̅-триггер
T-, JK-триггеры
Регистры
Синхронизация сигналов
Группа D-триггеров с общим тактом хранит слово.
Сдвиговый регистр передаёт биты по цепочке — основа
SPI и UART.
Два D-триггера подряд принимают внешний
асинхронный сигнал и снижают риск метастабильности.
D-триггеры
D-триггеры

21.

04 · УСТРОЙСТВО
Из чего состоят триггеры
Схема
Из чего собрана
КМОП-транзисторов
Кольцо из двух НЕ
2 инвертора
4
Ячейка памяти SRAM
2 инвертора + 2 ключа доступа
6
RS-триггер
2 ИЛИ-НЕ или 2 И-НЕ
8
Синхронный RS
4 И-НЕ
16
D-защёлка
4 И-НЕ + НЕ
18
D-триггер по фронту
2 D-защёлки + НЕ на такте
38
В основе любого триггера — всё то же кольцо из двух инверторов. Обратная связь и есть память.
Счёт для схем на вентилях из этой лекции: НЕ — 2 транзистора, двухвходовые И-НЕ и ИЛИ-НЕ — по 4. В реальных микросхемах D-триггер часто
строят на КМОП-ключах, и он получается компактнее.

22.

04 · ИТОГИ
Сводная таблица триггеров
Триггер
Входы
Особенность
Q после
RS
S, R
S = R = 1 запрещено
S + R̅ · Q
D-защёлка
D, C
прозрачна при C = 1
D, пока C = 1
D по фронту
D, C
запоминает D на фронте
D
JK
J, K, C
J = K = 1 — переключение
J · Q̅ + K̅ · Q
T
T, C
переключение при T = 1
T⊕Q
Последний столбец — характеристическое уравнение: каким станет Q после срабатывания при текущих входах и
текущем Q.

23.

ИТОГИ
Главное из лекции
01 Память — это обратная связь
02 RS — простейший триггер
Два инвертора в кольце имеют два устойчивых
состояния и хранят бит.
Установка, сброс и хранение. На И-НЕ он убирает
дребезг кнопки.
03 D по фронту — основа
04 JK и T — переключение
Две защёлки по очереди: данные проходят только на
фронте такта.
Режим «в противоположное состояние» — основа
счётчиков и делителей.
Дальше: счётчики, регистры и конечные автоматы.
English     Русский Rules