Счетный триггер: что это такое, виды, схема, таблица истинности

Справочник «Цифровые Интегральные Микросхемы»

Справочник «Цифровые Интегральные Микросхемы» [ Содержание ]

Увлекаетесь электроникой?
Приглашаем Вас принять участие
в бета-тестировании онлайн-редактора
электрических схем.
sapr.asvcorp.ru
Работайте со схемами прямо из браузера.

2.5.2. D-триггеры

D-триггером называется триггер с одним информационным входом, работающий так, что сигнал на выходе после переключения равен сигналу на входе D до переключения, т. е. Qn+1=Dn Основное назначение D-триггеров — задержка сигнала, поданного на вход D. Он имеет информационный вход D (вход данных) и вход синхронизации С. Вход синхронизации С может быть статическим (потенциальным) и динамическим. У триггеров со статическим входом С информация записывается в течение времени, при котором уровень сигнала C=1. В триггерах с динамическим входом С информация записывается только в течение перепада напряжения на входе С. Динамический вход изображают на схемах треугольником. Если вершина треугольника обращена в сторону микросхемы (прямой динамический вход), то триггер срабатывает по фронту входного импульса, если от нее (инверсный динамический вход) — по срезу импульса. В таком триггере информация на выходе может быть задержана на один такт по отношению к входной информации.

D-триггеры могут быть построены по различным схемам. На рис. 2.43,а показана схема одноступенчатого D-триггера на элементах И-НЕ и его условное обозначение. Триггер имеет прямые статические входы (управляющий сигнал — уровень логической единицы). На элементах DD1.1 и DD1.2 выполнена схема управления, а на элементах DD1.3 и DD1.4 асинхронный RS-триггер.


Рис. 2.43. Синхронный D-триггер: а — схема D-триггера на элементах И-НЕ и условное обозначение;
б — временные диаграммы; в — преобразование синхронного RS-триггера в синхронный D-триггер;
г — временные диаграммы записи и считывания.

Если уровень сигнала на входе С = 0, состояние триггера устойчиво и не зависит от уровня сигнала на информационном входе D.

При этом на входы асинхронного RS-триггера с инверсными входами (DD1.3 и DD1.4) поступают пассивные уровни /S = /R = 1.

При подаче на вход синхронизации уровня С = 1 информация на прямом выходе будет повторять информацию, подаваемую на вход D.

Следовательно, при C=0 Qn+1=Qn, а при C=l Qn+1=Dn. Временные диаграммы, поясняющие работу D-триггера, приведены на рис. 2.43,б.

D-триггер возможно получить из синхронного RS-триггера, если ввести дополнительный инвертор DD1.1 между входами S и R (рис. 2.43,в). В таком триггере состояние неопределенности для входов S и R исключается, так как инвертор DD1.1 формирует на входе R сигнал /S. Временные диаграммы записи в D-триггер напряжений высокого и низкого входных уровней и их считывание приведены на рис. 2.43,г. Обязательным условием правильной работы D-триггера является наличие защитного временного интервала после прихода импульса на вход D перед тактовым импульсом (вход С). Этот интервал времени tn+1-tn зависит от справочных данных на D-триггер.

Комбинированные D-триггеры имеют дополнительные входы асинхронной установки логических 0 и 1 — входы S и R. Схема и условное обозначение одного такого триггера представлены на рис. 2.44. Триггер собран на шести элементах И-НЕ по схеме трех RS-триггеров. Входы /S и /R служат для первоначальной установки триггера в определенное состояние.


Рис. 2.44. Комбинированный D-триггер и его условное обозначение.

Если C=D=0, установить /S=0, а /R=1, то элементы DD1.1 … DD1.5 будут закрыты, а элемент DD1.6 будет открыт, т. е. Q=l, /Q=0. При снятии нулевого сигнала со входа /S, откроется элемент DD1.1, состояние остальных элементов не изменится. При подаче единичного сигнала на вход С на всех входах элемента DD1.3 будут действовать единичные сигналы и он откроется, а элемент DD1.6 закроется: /Q = 1. Теперь на всех входах элемента DD1.5 действуют единичные сигналы и он будет открыт: Q = 0. Следовательно, после переключения триггера сигнал на выходе Q стал равным сигналу на входе D до переключения: Qn+1=Dn=0.

После снятия единичного сигнала со входа С состояние триггера не изменится.

D-триггер с динамическим входом C может работать как T-триггер. Для этого необходимо вход С соединить с инверсным выходом триггера /Q (рис. 2.45,а). Если на входе D поставить дополнительный двухвходовый элемент И и инверсный выход триггера /Q соединить с одним из входов элемента И, а на второй вход подать сигнал EI, то получим T-триггер с дополнительным разрешением по входу (рис. 2.45,б).


Рис. 2.45. Схемы преобразования D-триггера. а — преобразование D-триггера в T-триггер и его временная диаграмма работы;
б — преобразование D-триггера в в T-триггер с дополнительным входом расширения EI и его временная диаграмма работы;

Микросхема ТМ2 содержит два независимых комбинированных D-триггера, имеющих общую цепь питания. У каждого триггера имеется один информационный вход D, вход синхронизации С и два дополнительных входа /S и /R независимой асинхронной установки триггера в единичное и нулевое состояния, а также комплементарные выходы Q и /Q (рис. 2.46). Логическая структура одного D-триггера (рис. 2.46) содержит следующие элементы: основной асинхронный RS-триггер (ТЗ), вспомогательный синхронный RS-триггер (Т1) записи логической единицы (высокого уровня) в основной триггер, вспомогательный синхронный RS-триггер (Т2) записи логического нуля (низкого уровня) в основной триггер. Входы /S и /R — асинхронные, потому что они работают (сбрасывают состояние триггера) независимо от сигнала на тактовом входе, активный уровень для них низкий (т. е. инверсные входы /S и /R).


Рис. 2.46. Структура D-триггера микросхемы ТМ2

Асинхронная установка D-триггера в единичное или нулевое состояния осуществляется подачей взаимопротивоположных логических сигналов на входы /S и /R. В это время входы D и С не влияют.

Если на входы /S и /R одновременно подать сигнал низкого уровня (логический нуль), то на обоих выходах триггера Q и /Q будет высокий уровень (логическая единица). Однако после снятия этих сигналов со входов /S и /R состояние триггера будет неопределенным. Поэтому комбинация /S=/R=0 для этих входов является запрещенной.

Загрузить в триггер входные уровни В или Н (т. е. логические 1 или 0) можно, если на входы /S и /R подать напряжение высокого уровня: /S=/R=1. Сигнал от входа D передается на выходы триггера при поступлении положительного перепада импульса на вход С (изменение от низкого* к высокому). Однако, чтобы D-триггер переключался правильно (согласно таблице состояний, табл. 2.24), необходимо уровень на входе D зафиксировать заранее, т. е. до прихода перепада на вход С. Причем этот защитный временной интервал должен быть больше времени задержки распространения сигнала в триггере (определяется по справочнику).

Таблица 2.24. Состояния триггера ТМ2
Режим работыВходыВыходы
/S/RDCQ/Q
Асинхронная установка01XX10
Асинхронный сброс
10ХХ01
неопределенность00ХХ11
Загрузка «1» (установка)111_/10
Загрузка «0» (сброс)110_/01

Цоколевка микросхемы ТМ2 приведена на рис. 2.47, а основные параметры см. в табл. 2.20а.


Рис. 2.47. Условное обозначение и
цоколевка микросхемы ТМ2

Микросхемы ТM5 и ТМ7 содержат по четыре D-триггера, входы синхронизации которых попарно соединены и обозначены как входы разрешения загрузки EI. Если на такой вход разрешения EI подается напряжение высокого уровня, то информация, поступающая на входы D, передается на выходы триггеров. При напряжении низкого уровня на входе разрешения EI на выходах триггеров сохраняются предыдущие состояния (состояние входов D безразлично). В триггерах будет зафиксирована информация, имевшаяся на входах D, если состояние входа EI переключить от напряжения высокого уровня к низкому. Такие триггеры используются в качестве четырехразрядного регистра хранения информации с непарным тактированием разрядов, а также в качестве буферной памяти и элемента задержки. Каждый триггер микросхемы ТМ5 имеет только прямой выход Q, а каждый триггер микросхемы ТМ7 имеет прямые Q и инверсные /Q выходы.

Функциональные схемы, цоколевка, схема одного D-триггера и временные диаграммы работы приведены на рис. 2.48, а, основные параметры триггеров даны в табл. 2.20, состояния триггеров даны в табл. 2.25.


Рис. 2.48. Функциональные схемы, цоколевки, структура D-триггера и временные диаграммы микросхем ТМ5, ТМ7.
Таблица 2.25. Состояния триггеров ТМ5, ТМ7
Режим работыВходыВыходы
EIDQn+1/Qn+1
Разрешение передачи данных на выход1001
1110
Защелкивание данных0ХQn=1/Qn=0

Микросхемы. TM8 и ТМ9 содержат четыре и шесть D-триггеров соответственно. Они имеют общие входы синхронного сброса /R (установки в состояние низкого уровня) и входа синхронизации C. Структура ТМ8 и ТМ и их цоколевка приведены на рис. 2.49.


Рис. 2.48. Функциональные схемы и цоколевки микросхем ТМ8 и ТМ9.

Триггеры микросхемы ТМ9 имеют только прямые входы Q, а триггеры ТМ8 — прямые и инверсные выходы Q и /Q. На входах C и /R поставлены дополнительные инверторы. Микросхемы К1533ТМ8, К1533ТМ9 имеют повышенную нагрузочную способность, т.е. на каждом из выходов поставлены дополнительные инверторы. Функционрированне триггеров в микросхемах ТМ8 и ТМ9 соответствует таблице состояний (табл. 2.26).

Таблица 2.26. Состояния триггеров ТМ8 и ТМ9
Режим работыВходыВыходы
/RDCQn+1/Qn+1
Сброс0XX01
Загрузка «1»11_/10
Загрузка «0»10_/01

Установка всех триггеров в состояние Q = 0 произойдет, когда на асинхронный вход /R подать напряжение низкого уровня — 0. Входы С и D в это время не действуют. Информацию от входов D можно загрузить в триггеры, если на вход /R подать напряжение высокого уровня — 1. Тогда при подаче на вход синхронизации С положительного перепада напряжения (фронта импульса) и предварительно поданного на вход D напряжения высокого или низкого уровня появится на выходе Q высокий или низкий уровень.


Урок 8.4 Триггеры, регистры, счетчики

На предыдущем уроке мы рассмотрели логические элементы, состояние сигнала на выходе которых однозначно определяется состояниями сигналов на входах.

Логические элементы служат основой для создания более сложных цифровых устройств, одним из которых является триггер. Триггер – это целый класс электронных  устройств, которые могут длительно находиться в одном из двух устойчивых состояний после прекращения сигнала, меняющего состояние. Состояние выхода триггера  определяется не только сигналами на его входах, но и предыдущим состоянием устройства. Таким образом, триггер является простейшей однобитной ячейкой памяти.

 

RS-триггер

Самый простой триггер можно получить из двух логических элементов 2ИЛИ-НЕ:

 

Cхемотехническое  обозначение:

 

Такая схема представляет собой асинхронный 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» будет на выходах и первого, и второго триггеров. Очевидно, что с увеличением числа разрядов необходимо увеличивать как число логических элементов И, так и число их входов, что, в свою очередь, является недостатком такого типа счетчиков.

Регистры и счетчики, в свою очередь, могут применяться для построения более сложных цифровых устройств: сумматоров, ОЗУ и ПЗУ (оперативных и постоянных запоминающих устройств),  АЛУ (арифметическо-логических устройств), входящих в состав процессоров, и так далее, к все более сложным цифровым устройствам.

В следующей серии статей мы начнем знакомство с микроконтроллерами — замечательным классом цифровых микросхем, которые являются настоящими компьютерами, умещающимися в одной микросхеме, и входящими входят в состав большинства электронных устройств, от кофемашины до космического корабля!

триггеров подсчета | Yves De Mey

Триггеры подсчета | Ив Де Мей $root. artistsMenu.setActiveLabelMemberBand(id)»>••• $root.artistsMenu.setActiveLabelMemberBand(id)»>свернуть

по Ив Де Мей

поддерживается

daaavy_lazer_claw

Виктор СБ

йстксркр

Граф дукатов

Дэвид Мэдден

нелей

Пастух Аоиде

Себастьян Лебель

Кин Хо

Эллиотт Уотсон

Грэм Сент-Джон

moki_dugway

(КОДОВОЕ ИМЯ ТАНЦОР ))

Иоанн Мария

борис двороски (fhauna)

самырамоумух

Александр Атамян

чокинийма

Магвуд

сл

Стэл

Винсен

Хелена Форд

__pracownik__

нина

защитные ножницы

Лексиангел74

Вераччи

дронист

Коул Браун

самадепт

anouchvdb

сиредворд

_tomconway_

теги

теги

экспериментальный вещи аналог электронный модульный конец этикетки Антверпен

около

Ив Де Мей Антверпен, Бельгия

  1. Knobsounds. com
  2. Фейсбук
  3. Саундклауд
  4. Твиттер

контакт / помощь

Связаться с Ивом Де Мей

Потоковая передача и
Справка по загрузке

Активировать код

Пожаловаться на этот альбом или аккаунт

Если вам нравится Ив Де Мей, вам также могут понравиться:

    Bandcamp Daily — ваш путеводитель по миру Bandcamp

      На Bandcamp Radio

      Мадлен Мишель и Джеймисон Палмер из Blood Star рассказывают о своем дебютном LP.

      слушать сейчас

      • войти
      • условия использования
      • конфиденциальность
      • политика авторского права
      • переключиться на мобильный вид

      Подсчет триггера — Конфигурация

      Mabaelst (Барт Тьювен)

      #1

      Всем привет.

      Я здесь новенький и пытаюсь многому научиться у HA.
      У меня есть триггер уровня чернил принтера.

      Это работает нормально, но хотелось бы отслеживать, сколько раз запускается каждый объект.

      HA может автоматически использовать trigger.entity_id
      для поддержки счетчика, который подсчитывает это для каждого объекта.

      Приветствуются все реакции, так я узнаю больше всего.

      Вот мой код.

      123 (Тарас)

      #2

      В будущем, пожалуйста, размещайте код в виде форматированного текста, а не в виде снимка экрана (см. правило №14 в FAQ).

      Номер телефона:

      HA может автоматически использовать trigger.entity_id
      для поддержки счетчика, который подсчитывает это для каждого объекта.

      Вы можете создать счетчик для каждой сущности, а затем улучшить автоматизацию, чтобы она также увеличивала счетчик сущности.

      Например, если вы создали следующие счетчики:

       counter.printer_keuken_zaak_color
      counter.printer_keuken_zaak_black
      counter. printer_bureau_black
      counter.printer_bureau_color
       

      Затем вы можете добавить следующий сервисный вызов к действию вашей автоматизации.

       - сервис: counter.increment
          цель:
            entity_id: "счетчик.{{trigger.to_state.object_id}}"
       

      Если sensor.printer_bureau_color запускает автоматизацию, то counter.printer_bureau_color будет увеличиваться.

      Мабаэльст (Барт Тьювен)

      #3

      Спасибо за ответ!

      В будущем, пожалуйста, размещайте код в виде форматированного текста, а не в виде снимка экрана (см. [рекомендация № 14 в FAQ]

      Внимательно прочитаю этот совет!

      И обязательно опробую ваше решение.

      Мабаэльст (Барт Тьювен)

      #4

      Еще раз спасибо за ответ.

      Это также работает с «input_text…»?

      123 (Тарас)

      #5

      Номер телефона:

      Это также работает с «input_text…»?

      Прежде чем я смогу ответить на ваш вопрос, мне нужно, чтобы вы объяснили, как и где вы используете сущность input_text. Например, используется ли он в State Trigger?

      Мабаэльст (Барт Тьювен)

      #6

      Как я уже сказал, я новичок в HA.
      Я стараюсь тестировать как можно больше, чтобы немного лучше понять, как это работает.

      Я имею в виду, что если определенный триггер, например, sensor.printer_keuken_zaak_color, активируется сверху, возможно ли, что я могу указать определенное значение, например, «input_text.printer_keuken_zaak_color»?

      Мабаэльст (Барт Тьювен)

      #7

      Извините,
      но еще вопрос.
      Как я могу прочитать это значение, если это необходимо?

      123 (Тарас)

      #8

      Номер телефона:

      , если определенный триггер, например, sensor. printer_keuken_zaak_color, активируется сверху, возможно ли, что я могу указать определенное значение, например, «input_text.printer_keuken_zaak_color»?

      Да.

      Допустим, вы хотите использовать input_text в качестве счетчика, а sensor.printer_keuken_zaak_color запустил автоматизацию. Следующий сервисный вызов возьмет существующее значение input_text.printer_keuken_zaak_color и увеличит его на единицу.

       Действие:
            - переменные:
                x: "input_text.{{trigger.to_state.object_id}}"
            - сервис: input_text.set_value
              цель:
                entity_id: "{{ х }}"
              данные:
                значение: "{{состояния(x) | int + 1 }}"
       

      Если вы хотите установить только определенное значение, например Hello World или 250 или что-то еще, вы можете использовать эту более простую версию:

       действие:
            - сервис: input_text.set_value
              цель:
                entity_id: "input_text. {{trigger.to_state.object_id}}"
              данные:
                значение: "Привет, мир"
       

      Мабаэльст (Барт Тьювен)

      #9

      Большое спасибо, теперь я немного продвинулся. Целый день искал! Попытайтесь понять все это, но это не так очевидно. Не будете ли вы так любезны, подскажите, как я могу читать эти значения в будущем.

      Возможно, вы также знаете, где узнать, как работает HA. Предпочтительно на голландском языке

      123 (Тарас)

      #10

      Я не знаю, где найти справочные материалы для Home Assistant на голландском языке. Однако я знаю, что на этом форуме есть носители голландского языка. Возможно, кто-то из них прочитает это обсуждение и поможет вам в этом.

      Большинство из того, что я показал, можно найти в официальной документации, в частности здесь:

      Home Assistant

      Шаблоны

      Инструкции по использованию функции шаблонов Home Assistant.

      Мабаэльст (Барт Тьювен)

      #11

      Не могли бы вы сказать мне, как я могу прочитать эти значения в будущем.

      123 (Тарас)

      #12

      Номер телефона:

      как я могу прочитать эти значения в будущем

      Извините, но я не понимаю вопроса. Что вы имеете в виду, читая значения в будущем ?

      Мабаэльст (Барт Тьювен)

      №13

      Хорошо, еще раз спасибо за помощь. А я все равно где-то зависаю!

      Теперь у меня есть счетчик «counter.printer_keuken_zaak_color», который имеет определенное значение. Как я могу приблизиться к этому значению сейчас. Уже пробовал несколько вещей, но действительно не могу понять это !!

      123 (Тарас)

      №14

      Номер телефона:

      Как мне приблизиться к этому значению сейчас.

      Добавить комментарий

      Ваш адрес email не будет опубликован. Обязательные поля помечены *