Триггеры — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Триггеры)
(Added RS, RS_sync, JK triggers.)
Строка 1: Строка 1:
== Триггеры ==
+
'''Триггеры''' (англ. <i>flip-flop</i>) {{---}} класс электронных устройств, имеющих свойство долго находиться в одном из двух устойчивых состояний и чередовать их под воздействием внешних сигналов.
'''Триггеры''' класс электронных устройств, имеющих свойство сохранения одного из двух состояний в течении определённого промежутка времени, а также чередования этих состояний в зависимости от поданных сигналов. Существуют различные виды триггеров, начиная от самых простых (RS-триггер) и заканчивая двухступенчатыми триггерами со сложной логикой (например, JK-триггер). Ранее использовались ламповые триггеры. В настоящем времени они реализуются при помощи полевых и биполярных транзисторов.
 
  
Основной особенностью триггеров является способность запоминать двоичную информацию. Триггер имеет два состояния и, приняв одно за "1", а другое за "0", появляется возможность хранить один разряд двоичного числа. Таким образом, используя серию триггеров, возможно хранить многоразрядные числа, а значит и любую двоичную информацию, ограниченную лишь размером серии триггеров.
+
Основной особенностью триггеров является способность запоминать двоичную информацию. Триггер имеет два состояния и, приняв одно за "0", а другое за "1", появляется возможность хранить один разряд двоичного числа. Таким образом, используя несколько триггеров, возможно хранить многоразрядные числа, а, значит, и любую двоичную информацию, ограниченную лишь количеством триггеров.
  
== История ==
 
В 1918 году М. А. Бонч-Бруевичем[https://ru.wikipedia.org/wiki/%D0%91%D0%BE%D0%BD%D1%87-%D0%91%D1%80%D1%83%D0%B5%D0%B2%D0%B8%D1%87,_%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%BE%D0%B2%D0%B8%D1%87] были описаны схемы <<Катодных реле>>, действующих на основе разниц напряжений ламп. В 1920 году схема была опубликована У. Г. Икклзом[https://en.wikipedia.org/wiki/William_Eccles] и Ф. У. Джоданом[https://en.wikipedia.org/wiki/F._W._Jordan]
 
 
== Типы триггеров ==
 
== Типы триггеров ==
'''
+
[[Файл:Rs.jpg|250px|thumb|right|RS-триггер]]
{| border "1" cellspacing="0"  
+
=== RS-триггер ===
!style="background-color:#00ffff;"|S
+
 
!style="background-color:#00ffff;"|R
+
Простейшим триггером является RS-триггер. Он имеет два входа: <tex>R</tex> (reset) и <tex>S</tex> (set). При подаче <tex>1</tex> на <tex>R</tex>, <tex>0</tex> на <tex>S</tex> выходное значение триггера становится нулем (происходит сброс значения), при подаче <tex>0</tex> на <tex>R</tex>, <tex>1</tex> на <tex>S</tex> выходное значение триггера становится единицей (происходит установка нового значения). При подаче двух нулей триггер свое состояние не меняет, выходное значение при подаче двух единиц не определено. На <tex>Q</tex> подается выходное значение, <tex>\overline{Q}=\neg Q</tex>.
!style="background-color:#00ffff;"|Q(t)
+
 
!style="background-color:#00ffff;"|Q(t + 1)
+
{| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10"
 +
!<tex>R</tex>
 +
!<tex>S</tex>
 +
!<tex>Q</tex>
 +
|-
 +
|0
 +
|0
 +
!|Предыдущее значение
 
|-
 
|-
|0||0||0||0
+
|0
 +
|1
 +
!|1
 
|-
 
|-
|0||0||1||1
+
|1
 +
|0
 +
!|0
 
|-
 
|-
|0||1||0||0
+
|1
 +
|1
 +
!|Не определено
 
|-
 
|-
|0||1||1||0
+
|}
 +
 
 +
=== Синхронный RS-триггер ===
 +
[[Файл:Rs_sync.jpg|280px|thumb|right|Синхронный RS-триггер]]
 +
Существенным недостатком RS-триггера является то, что если один из сигналов на вход придет раньше другого, триггер примет неправильное состояние. Для того, чтобы избежать этой проблемы, вводится еще один входной сигнал: сигнал синхронизации. Синхронный RS-триггер будет как-либо реагировать на входные сигналы только в том случае, когда на вход <tex>C</tex> подана единица. В остальном синхронный RS-триггер не отличается от обычного RS-триггера.
 +
 
 +
{| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10"
 +
!<tex>C</tex>
 +
!<tex>R</tex>
 +
!<tex>S</tex>
 +
!<tex>Q</tex>
 
|-
 
|-
|1||0||0||1
+
|0
 +
|0
 +
|0
 +
!|Предыдущее значение
 
|-
 
|-
|1||0||1||1
+
|0
 +
|0
 +
|1
 +
!|Предыдущее значение
 
|-
 
|-
|1||1||0||Неопределенно
+
|0
 +
|1
 +
|0
 +
!|Предыдущее значение
 
|-
 
|-
|1||1||1||Неопределенно
+
|0
 +
|1
 +
|1
 +
!|Предыдущее значение
 +
|-
 +
|1
 +
|0
 +
|0
 +
!|Предыдущее значение
 +
|-
 +
|1
 +
|0
 +
|1
 +
!|1
 +
|-
 +
|1
 +
|1
 +
|0
 +
!|0
 +
|-
 +
|1
 +
|1
 +
|1
 +
!|Не определено
 
|-
 
|-
 
|}
 
|}
  
== ыа ==
+
=== JK-триггер ===
 +
[[Файл:Jk.jpg|500px|thumb|right|JK-триггер]]
 +
JK-триггер по принципу работы похож на синхронный RS-триггер. <tex>J</tex> (jump) является аналогом <tex>S</tex> (set), <tex>K</tex> (kill) является аналогом <tex>R</tex> (reset). При подаче единицы на бит синхронизации и при подаче единицы на <tex>J</tex> и нуля на <tex>K</tex> на выходе единица, при подаче нуля на <tex>J</tex> и единицы на <tex>K</tex> на выходе ноль. При обоих нулях выдается предыдущее значение. Существенным отличием JK-триггера от RS-триггеров является то, что состояние с двумя единицами на входе определено. При обоих единицах на выход подается инвертированное предыдущее значение. Стоит заметить, что JK-триггер существует только с синхронизацией, потому что без синхронизации при подаче на входы двух единиц, триггер бы постоянно переключался и не остановился бы в каком-то конкретном значении, а, если есть синхронизация, при подаче двух единиц, триггер меняет значение только при изменении сигнала синхронизации.
 +
 
 +
{| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10"
 +
!<tex>C</tex>
 +
!<tex>J</tex>
 +
!<tex>K</tex>
 +
!<tex>Q</tex>
 +
|-
 +
|0
 +
|0
 +
|0
 +
!|Предыдущее значение
 +
|-
 +
|0
 +
|0
 +
|1
 +
!|Предыдущее значение
 +
|-
 +
|0
 +
|1
 +
|0
 +
!|Предыдущее значение
 +
|-
 +
|0
 +
|1
 +
|1
 +
!|Предыдущее значение
 +
|-
 +
|1
 +
|0
 +
|0
 +
!|Предыдущее значение
 +
|-
 +
|1
 +
|0
 +
|1
 +
!|0
 +
|-
 +
|1
 +
|1
 +
|0
 +
!|1
 +
|-
 +
|1
 +
|1
 +
|1
 +
!|Инвертированное предыдущее
 +
|-
 +
|}

Версия 22:49, 26 февраля 2016

Триггеры (англ. flip-flop) — класс электронных устройств, имеющих свойство долго находиться в одном из двух устойчивых состояний и чередовать их под воздействием внешних сигналов.

Основной особенностью триггеров является способность запоминать двоичную информацию. Триггер имеет два состояния и, приняв одно за "0", а другое за "1", появляется возможность хранить один разряд двоичного числа. Таким образом, используя несколько триггеров, возможно хранить многоразрядные числа, а, значит, и любую двоичную информацию, ограниченную лишь количеством триггеров.

Типы триггеров

RS-триггер

RS-триггер

Простейшим триггером является RS-триггер. Он имеет два входа: [math]R[/math] (reset) и [math]S[/math] (set). При подаче [math]1[/math] на [math]R[/math], [math]0[/math] на [math]S[/math] выходное значение триггера становится нулем (происходит сброс значения), при подаче [math]0[/math] на [math]R[/math], [math]1[/math] на [math]S[/math] выходное значение триггера становится единицей (происходит установка нового значения). При подаче двух нулей триггер свое состояние не меняет, выходное значение при подаче двух единиц не определено. На [math]Q[/math] подается выходное значение, [math]\overline{Q}=\neg Q[/math].

[math]R[/math] [math]S[/math] [math]Q[/math]
0 0 Предыдущее значение
0 1 1
1 0 0
1 1 Не определено

Синхронный RS-триггер

Синхронный RS-триггер

Существенным недостатком RS-триггера является то, что если один из сигналов на вход придет раньше другого, триггер примет неправильное состояние. Для того, чтобы избежать этой проблемы, вводится еще один входной сигнал: сигнал синхронизации. Синхронный RS-триггер будет как-либо реагировать на входные сигналы только в том случае, когда на вход [math]C[/math] подана единица. В остальном синхронный RS-триггер не отличается от обычного RS-триггера.

[math]C[/math] [math]R[/math] [math]S[/math] [math]Q[/math]
0 0 0 Предыдущее значение
0 0 1 Предыдущее значение
0 1 0 Предыдущее значение
0 1 1 Предыдущее значение
1 0 0 Предыдущее значение
1 0 1 1
1 1 0 0
1 1 1 Не определено

JK-триггер

JK-триггер

JK-триггер по принципу работы похож на синхронный RS-триггер. [math]J[/math] (jump) является аналогом [math]S[/math] (set), [math]K[/math] (kill) является аналогом [math]R[/math] (reset). При подаче единицы на бит синхронизации и при подаче единицы на [math]J[/math] и нуля на [math]K[/math] на выходе единица, при подаче нуля на [math]J[/math] и единицы на [math]K[/math] на выходе ноль. При обоих нулях выдается предыдущее значение. Существенным отличием JK-триггера от RS-триггеров является то, что состояние с двумя единицами на входе определено. При обоих единицах на выход подается инвертированное предыдущее значение. Стоит заметить, что JK-триггер существует только с синхронизацией, потому что без синхронизации при подаче на входы двух единиц, триггер бы постоянно переключался и не остановился бы в каком-то конкретном значении, а, если есть синхронизация, при подаче двух единиц, триггер меняет значение только при изменении сигнала синхронизации.

[math]C[/math] [math]J[/math] [math]K[/math] [math]Q[/math]
0 0 0 Предыдущее значение
0 0 1 Предыдущее значение
0 1 0 Предыдущее значение
0 1 1 Предыдущее значение
1 0 0 Предыдущее значение
1 0 1 0
1 1 0 1
1 1 1 Инвертированное предыдущее