Вычислительная техника и информационные технологии    

Глава 4

назад | оглавление | вперёд

 

4. Цифровые схемы последовательностного типа (автоматы с памятью)

Последовательностные устройства – это устройства с памятью. В них выходной сигнал определяется не только текущим состоянием входа, но и рядом предыдущих значений. Обычно, в состав последовательностных устройств, входят комбинационные устройства и запоминающие ячейки.

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

4.1 Триггеры

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

RS-триггеры

Основным триггером, на котором базируются все остальные триггеры является RS-триггер. Он имеет два логических входа: R-установка 0 (от слова reset), S-установка 1 (т слова set). RS-триггер имеет два выхода:  – прямой и  - обратный (инверсный).

Состояние триггера определяется состоянием прямого выхода.

Простейший RS – триггер составляется из двух логических элементов, охваченных перекрёстной положительной обратной связью (рис. 4.1).

Рисунок 4.1 - RS-триггер на элементах «ИЛИ-НЕ»

Рассмотрим работу триггера.

1. Пусть R=0, S=1. Нижний логический элемент выполняет логическую функцию ИЛИ-НЕ, т.е. 1 на любом его входе приводит к тому, что на его выходе  будет логический ноль =0. На выходе  будет 1 (=1), т.к. на оба входа верхнего элемента поданы нули (один ноль - со входа R, другой - с выхода). Триггер находится в единичном состоянии. Если теперь убрать сигнал установки (R=0, S=0), на выходе ситуация не изменится, т.к. несмотря на то что на нижний вход нижнего логического элемента будет поступать 0, на его верхний вход поступает 1 с выхода верхнего логического элемента. Триггер будет находиться в единичном состоянии, пока на вход R не поступит сигнал сброса.

Пусть теперь R=1, S=0. Тогда =0, а =1. Триггер переключился в «0». Если после этого убрать сигнал сброса (R=0, S=0), то все равно триггер не изменит своего состояния.

Для описания работы триггера используют таблицу состояний (переходов).

Обозначим:

Q(t) – состояние триггера до поступления управляющих сигналов (изменения на входах R и S).

Q(t+1) – состояние триггера после изменения на входах R и S.

Таблица 4.1 – Таблица переходов

Рисунок 4.2 - Условное графическое изображение RS-триггера

RS-триггер можно построить и на элементах И-НЕ (рис. 4.3).

Рисунок 4.3 - Схема RS‑триггера, построенного на схемах "И-НЕ"

Входы R и S инверсные (активный уровень'0')

Переход (переключение) этого триггера из одного состояния в другое происходит при установке на одном из входов «0». Комбинация R=S=0 является запрещенной.

Q

0

0

*

0

1

0

1

0

1

1

1

Q(t-1)

Таблица 4.2 - Укороченная таблица состояний

Для пояснения работы триггера могут использоваться временные диаграммы, которые показывают уровни сигналов на входах и выходах в различные моменты времени (рис. 4.4).

Рисунок 4.4 - Временные диаграммы работы RS-триггера на элементах «ИЛИ-НЕ»

t1-t2 – установка «1»

t2-t3 – режим хранения

t3-t4 – установка «0»

t4-t5 – неопределенное состояние

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

Схема RS‑триггера позволяет запоминать состояние логической схемы, но так как при изменении входных сигналов может возникать переходный процесс (в цифровых схемах этот процесс называется опасные гонки), то запоминать состояния логической схемы нужно только в определённые моменты времени, когда все переходные процессы закончены, и сигнал на выходе комбинационной схемы соответствует выполняемой ею функции.

Это означает, что большинство цифровых схем требуют сигнала синхронизации (тактового сигнала). Все переходные процессы в комбинационной логической схеме должны закончиться за время периода синхросигнала, подаваемого на входы триггеров. Триггеры, запоминающие входные сигналы только в момент времени, определяемый сигналом синхронизации, называются синхронными. Принципиальная схема синхронного RS триггера приведена на рисунке 4.5.

Рисунок 4.5 - Схема синхронного RS‑триггера

На рисунке 4.6 изображена временная диаграмма работы синхронного триггера. Здесь видно, что переключение происходит только в момент появления синхроимпульса на входе С, причем триггер опрокидывается в состояние, соответствующее сигналам на входах R и S.

Рисунок 4.6 - Временная диаграмма работа синхронного RS-триггера

Рисунок 4.7 - Условно-графическое обозначение синхронного RS‑триггера

D – триггер

D-триггер имеет 1 информационный вход (D-вход). Бывают только синхронные D-триггеры. Состояние информационного входа передается на выход под действием синхроимпульса.

Рисунок 4.8 - Схема D-триггера на основе синхронного RS-триггера

Если на входе D - «1», то по приходу синхроимпульса Q = 1. Если на D «0», то  Q =0.

С

D

Q(t)

Q(t+1)

Пояснения

0

x

0

0

Режим хранения информации

0

x

1

1

1

0

x

0

Режим записи информации

1

1

x

1

Таблица 4.3 - Таблица переходов D‑триггера

Рисунок 4.9 - Временная диаграмма работа синхронного RS-триггера

Рисунок 4.10 - Условно-графическое обозначение D‑триггера

Счетный триггер (Т-триггер)

Т-триггер имеет 1 информационный вход.

Триггер переключается каждый раз в противоположное состояние, когда на вход Т поступает управляющий сигнал.

T

Q

Q(t+1)

0

0

0

0

1

1

1

0

1

1

1

0

Таблица 4.4 – Таблица переходов счетного триггера

Рисунок 4.11 - Схема счетного триггера на основе D-триггера

Триггер работает следующим образом. Предположим, что триггер находится в единичном состоянии. Это значит, что на =1, а  =0. При появлении импульса на входе С D- триггер переключится в «0», т.к. на его входе D нулевой логический уровень. При появлении очередного входного импульса триггер переключится в «1», т.к. на входе D в этот момент «1» и т.д. На рисунке приведена временная диаграмма работы счетного триггера. Триггер как бы подсчитывает входные импульсы. Частота выходных импульсов вдвое меньше частоты входных, поэтому такой триггер называют делителем на 2.

Рисунок 4.12 - Временная диаграмма работа счетного триггера

JK–Триггер

JK–триггер имеет 2 информационных входа.

J – установка «1»

K – установка «0»

В отличие от RS–триггера в JK–триггере нет запрещенных комбинации входных сигналов.

J = K = 1 переводит триггер в противоположное состояние.

J

K

Q(t)

Q(t+1)

0

0

0

0

0

1

0

1

0

0

1

1

0

1

0

0

1

1

0

0

0

1

1

1

1

1

1

1

0

1

1

0

Рисунок 4.13 - JK –триггер

Таблица 4.5 – Таблица состояний JK- триггера

JK-триггер является универсальным – если соединить вход J и K, то получается счетный триггер.

Рисунок 4.14 - Условное обозначение JK-триггера

DV-Триггер

DV-триггер имеет 2 информационных входа. Получается из D-триггера путем добавления логического схемы И.

Рисунок 4.15 - DV-триггер

Входы D и C – равноценные.

DV-триггер – синхронный триггер.

Отличие от JK-триггера: D=V=1 переводит триггер в «1» состояние.


 

D

V

Q(t)

Q(t+1)

0

0

0

0

0

1

0

1

0

0

1

1

0

1

0

0

1

1

0

0

0

1

0

1

1

1

1

1

0

1

1

1

Рисунок 4.16 - Условное обозначение DV триггера

Таблица 4.6 - Таблица состояний DV - триггера

2х-тактный триггер (MS-Триггер)

Состоит из 2х ступеней – двух триггеров:

1 ступень – М (master, хозяин)

2 ступень – S (slave, помощник)

Тип 2х контактного триггера определяется первой ступенью

Рассмотрим 2х-тактный RS-триггер.

 

Рисунок 4.17 - 2х-тактный RS-триггер

Если С=1, то 1-ая ступень находится в режиме приема информации, 2-ая в режиме хранения. При установке входа С в «0», 1ый триггер переходит в режим хранения, а 2й копирует состояние первого, в этот момент информация появляется на выходах Q и .

MS-триггер используют для повышения помехоустойчивости.

Триггер Шмитта

Имеет одно внутреннее состояние, которое заранее известно и поэтому не может  хранить  информацию. Триггер используется для формирования сигналов с крутыми фронтами из сигналов произвольной формы. Его схему представляют так (рис. 4.18).

Рисунок 4.18 - Схема триггера Шмитта

Простейший триггер Шмитта это соединение двух  инверторов. Построим его амплитудную характеристику.

Рисунок 4.19 - Амплитудная характеристика

U – напряжение гистерезиса. Обычно оно находится в пределах 1 … 1,8 вольт. Соотношение резисторов R  0,1R.

Рисунок 4.20 - Временная диаграмма работы триггера Шмитта

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

4.2 Регистры

Регистры предназначены для хранения и преобразования многоразрядных двоичных чисел. Для запоминания отдельных разрядов числа могут применяться триггеры различных типов. Одиночный триггер можно считать одноразрядным регистром.

Занесение информации в регистр называется операцией записи. Операция выдачи информации из регистра – считывание.

Перед записью информации в регистр, его необходимо обнулить.

Классификация регистров:

по способу ввода/вывода информации:

·        Параллельные (регистры хранения) – информация вводится и выводится одновременно по всем разрядам.

·        Последовательные (регистры сдвига) – информация бит за битом  «проталкивается» через регистр и выводится также последовательно.

·        Комбинированные – параллельный ввод и последовательный вывод (и наоборот).

по способу представления информации:

·        Однофазные – информация представляется в прямом или обратном (инверсном) виде.

·        Парафазные – информация представляется и в прямом, и в обратном виде.

4х разрядный параллельный регистр

Рисунок 4.21 - Схема параллельного регистра

Рисунок 4.22 - Условно-графическое обозначение параллельного регистра

Последовательные регистры

Кроме параллельного соединения триггеров для построения регистров используются последовательное соединение этих элементов.

Последовательный регистр (регистр сдвига) обычно служит для преобразования последовательного кода в параллельный и наоборот. Применение последовательного кода связано с необходимостью передачи большого количества двоичной информации по ограниченному количеству соединительных линий. При параллельной передаче разрядов требуется большое количество соединительных проводников. Если двоичные разряды последовательно бит за битом передавать по одному проводнику, то можно значительно сократить размеры соединительных линий на плате (и размеры корпусов микросхем).

Принципиальная схема последовательного регистра, собранного на основе D‑триггеров и позволяющего осуществить преобразование последовательного кода в параллельный, приведена на рисунке 4.23.

Рисунок 4.23 - Схема последовательного регистра

Рассмотрим работу этого регистра.

·        Можно предположить, что в начале все триггеры регистра находятся в состоянии логического нуля, т.е. Q0=0, Q1=0, Q2=0, Q3=0. Если на входе D-триггера Т1 имеет место логический 0, то поступление синхроимпульсов на входы “С” триггеров не меняет их состояния.

·        Как следует из рис. 4.23, синхроимпульсы поступают на соответствующие входы всех триггеров регистра одновременно и записывают в них то, что имеет место на их информационных входах. На информационных входах триггеров Т2, Т3, Т4 - уровни логического “0”, т.к. информационные входы последующих триггеров соединены с выходами предыдущих триггеров, находящихся в состоянии логического “0”, а на вход “D” первого триггера, по условию примера, подается “0” из внешнего источника информации. При подаче на вход “D” первого триггера “1”, с приходом первого синхроимпульса, в этот триггер запишется “1”, а в остальные триггеры - “0”, т.к. к моменту поступления фронта синхроимпульса на выходе триггера Т1 “ещё” присутствовал логический “0”. Таким образом, в триггер Т1 записывается та информация (тот бит), которая была на его входе “D” в момент поступления фронта синхроимпульса и т.д.

·        При поступлении второго синхроимпульса логическая “1” с выхода первого триггера, запишется во второй триггер, и в результате происходит сдвиг первоначально записанной “1” с триггера Т1 в триггер Т2, из триггера Т2 в триггер Т3 и т.д. (рис. 4.24). Таким образом, производится последовательный сдвиг поступающей на вход регистра информации (в последовательном коде) на один разряд вправо в каждом такте синхроимпульсов.

·        После поступления m синхроимпульсов (на рис. 4.23 и рис. 4.24 m=4) регистр оказывается полностью заполненным разрядами числа, вводимого через последовательный ввод “D”. В течение следующих четырех синхроимпульсов производится последовательный поразрядный вывод из регистра записанного числа, после чего регистр оказывается полностью очищенным (регистр окажется полностью очищенным только при условии подачи на его вход уровня “0” в режиме вывода записанного числа).

Рисунок 4.24 - Временные диаграммы, поясняющие работу регистра сдвига

Регистр сдвига на JK-триггерах

Рисунок 4.25 - Регистр сдвига на JK-триггерах

D – информационный вход.

Если D=1, то Т1 устанавливается в «1» по синхроимпульсу. По приходу следующего синхроимпульса «1» из Т1 перейдет в Т2 и т.д.

Универсальные регистры

Регистры сдвига выполняют обычно как универсальные последовательно-параллельные микросхемы. Это связано с необходимостью записи в регистр параллельного двоичного кода при преобразовании параллельного кода в последовательный.

Переключение регистра из параллельного режима работы в последовательный и наоборот осуществляется при помощи мультиплексора (коммутатора). Использование коммутатора позволяет входы триггеров регистра либо подключать к внешним выводам микросхемы, либо подключать к выходу предыдущего триггера.

Напомню, что двухвходовый мультиплексор можно реализовать при помощи логических элементов “2И‑2ИЛИ”. Элементы “И” при этом работают в качестве электронных ключей, а элементы “ИЛИ” объединяют их выходы.

Схема универсального регистра с использованием коммутаторов на логических элементах “2И‑2ИЛИ” приведена на рисунке 4.26.

Рисунок 4.26 - Схема универсального регистра

В этой схеме для переключения регистра из последовательного режима работы в параллельный используется вывод V. Подача на этот вход единичного потенциала превращает схему в параллельный регистр. При этом на входы ключей, подключенных к информационным входам D, подаётся единичный потенциал. Это приводит к тому, что сигналы с входов параллельной записи данных поступают на входы логических элементов “ИЛИ”, а на входы ключей, подключенных к выходам предыдущих триггеров, подаются нулевые потенциалы. То есть на выходах этих ключей будут присутствовать нулевые потенциалы, и они не будут мешать работе.

Подача на вход V нулевого потенциала приводит к отключению входов параллельных данных от входов триггеров. Сигналы же с выхода предыдущего триггера свободно проходит через верхние логические элементы “И” на вход последующего триггера, так как на его второй вход подаётся единичный потенциал.

Инверторы на входах V и C использованы для усиления входного сигнала по току. В результате входной ток микросхемы будет равен не суммарному току четырёх логических элементов “И”, а входному току инвертора.

Условно-графическое изображение универсального регистра приведено на рисунке 4.27. Вход последовательного ввода данных на этом рисунке обозначен как DI и отделён от других групп входов чертой. Точно так же выделены в отдельные группы и входы управления V и синхронизации C.

Рисунок 4.27 - Обозначение универсального регистра на принципиальных схемах

4.3 Счётчики

Счетчик – устройство для подсчета числа входных импульсов.

Параметры счетчика:

·        Модуль счета М – число устойчивых состояний,

·        Емкость Е – максимальное  число, которое может быть записано в счетчик (Е=М-1),

·        Быстродействие (скорость перехода из состояния «все 1» в состояние «все 0» и наоборот).

Классификация:

·        По направлению счета:

Суммирующие,

Вычитающие,

Реверсивные,

·        По способу построения цепи переноса:

С последовательным переносом,

С параллельным переносом,

С комбинированным переносом.

·        По способу опрокидывания триггера:

Синхронные,

Асинхронные.

Простейший суммирующий асинхронный счетчик

Счетчик представляет собой несколько последовательно включенных счетных триггеров. Напомним, что по каждому входному импульсу счетный триггер изменяет свое состояние на противоположное.

Рисунок 4.28 - Простейший суммирующий асинхронный счетчик

Если вход синхроимпульса триггера отмечен как «\», то опрокидывание триггера происходит по заднему фронту, если как «/» - то по переднему.

Рисунок 4.29 - Временная диаграмма работы суммирующего асинхронного счетчика

Для того чтобы разобраться, как работает схема двоичного счётчика, воспользуемся временными диаграммами сигналов на входе и выходах этой схемы, приведёнными на рисунке 4.29.

Пусть первоначальное состояние всех триггеров счётчика будет нулевым. Это состояние мы видим на временных диаграммах. Запишем его в таблицу 4.7. После поступления на вход счётчика тактового импульса (который воспринимается по заднему фронту) первый триггер изменяет своё состояние на противоположное, то есть единицу.

Запишем новое состояние выходов счётчика в ту же самую таблицу. Так как по приходу первого импульса изменилось состояние первого триггера, то этот триггер содержит младший разряд двоичного числа (единицы).

Таблица 4.7 - Изменение уровней на выходе суммирующего двоичного счётчика при поступлении на его вход импульсов

Подадим на вход счётчика ещё один тактовый импульс. Значение первого триггера снова изменится на прямо противоположное. На этот раз на выходе первого триггера, а значит и на входе второго триггера сформируется задний фронт. Это означает, что второй триггер тоже изменит своё состояние на противоположное. Это отчётливо видно на временных диаграммах, приведённых на рисунке 4.29. Запишем новое состояние выходов счётчика в таблицу 4.5. В этой строке таблицы образовалось двоичное число 2. Оно совпадает с номером входного импульса.

Продолжая анализировать временную диаграмму, можно определить, что на выходах приведённой схемы счётчика последовательно появляются цифры от 0 до 7. Эти цифры записаны в двоичном виде. При поступлении на счётный вход счётчика очередного импульса, содержимое его триггеров увеличивается на 1. Поэтому такие счётчики получили название суммирующих двоичных счётчиков. Если информацию снимать с инверсных выходов триггеров, то получится вычитающий счетчик.

Простейший вычитающий асинхронный счетчик

Рассмотрим схему счетчика на триггерах, опрокидывающихся по переднему фронту входных импульсов (рис.4.30).

Рисунок 4.30 – Вычитающий счетчик

Рисунок 4.31 – Временная диаграмма

Из временной диаграммы видим, что получился вычитающий счетчик. Если информацию снимать с инверсных выходов триггеров, то получится суммирующий счетчик.

Синхронный суммирующий счётчик

Рисунок 4.32 - Синхронный суммирующий счётчик

Быстродействие такого счетчика определяется быстродействием 1го триггера.

Счётчик с произвольным модулем счёта

Для построения такого счетчика можно использовать двоичный счетчик, у которого модуль счета М=2n должен быть больше модуля счета разрабатываемого счетчика с произвольным модулем счета.

Пусть нужно сделать счетчик с М=10.

У четырехразрядного счетчика модуль счета равен 16 (больше 10).

Схема счетчика представляет собой 4 последовательно включенных счетных триггера, у которых есть вход сброса R.

Число 10 в двоичной системе счисления представляет 1010. Когда на выходах счетчика будет код 1010, на выходе элемента «И» появится логическая единица, которая запустит схему гашения. Длительность импульса на выходе схемы гашения должна быть достаточна для надежного сброса всех триггеров счетчика в 0. Разряды числа 1010, равные 1 подаются на схему «и» с прямых выходов триггеров, а равные 0 – с инверсных. Таким образом, как только счетчик досчитает до 10, произойдет обнуление всех триггеров и счет продолжится с кода 0000.

Рисунок 4.33 - Счетчик с модулем счета М=10

Рассмотрим счетчик с М=11 на основе двоичного счетчика в одной микросхеме (без инверсных выходов).

1110 = 10112

Рисунок 4.34 - Счетчик с модулем счета М=11

В качестве схемы гашения может быть RS-триггер.

Рисунок 4.35 - Счетчик с модулем счета М=17

В этой схеме М=100012 = 1710

Сигнал на входе К счетчика будет действовать в течение одного периода входных импульсов.

Счётчик с предварительной загрузкой кода

Предназначен для произвольного изменения в любой момент времени модуля счета.

В счетчик загружается начальное число (исходный код) и подаются входные импульсы до естественного переполнения. После этого счетчик снова загружается исходным кодом.

Р – сигнал переполнения

L – управление режимом

L=0 – запись

L=1 – счет по «+1»

 

Рисунок 4.36 - Счетчик с предварительной загрузкой кода

Коэффициент деления произвольный, устанавливается путем загрузки начального кода.

Эти счетчики часто используют таймеры.

Достоинство:

Легко программировать коэффициент деления (модуль счета) и изменять его в процессе работы.