Смекни!
smekni.com

работа "Синтез дискретных устройств управления" (стр. 3 из 5)

q1 q2 L1 L2
0 0 1 1
0 1 1 0
1 1 0 1

Структурная схема искомого автомата с указанными однобитовыми сигналами представлена на рис. 14.

Рис. 9.14

Таблицы 9.2 и 9.3 задают частично определенные функции. Недоопределенность функций можно использовать для их минимизации. Такой прием здесь допустим, поскольку неопределенность вызвана наличием неиспользованного кода “10” внутреннего состояния автомата. При правильной работе устройства, модель которого представлена графом переходов на рис. 13, его переход в такое состояние из установленного начального состояния никогда не произойдет.

В результате минимизации неполностью определенных логических функций с помощью карт Карно получаем:

Q1 = Øx q1 \/ x Øq2; Q2 = q1 \/ x Øq2 \/ Øx q2;

y1 = Øx q1; y2 = Øx Øq1 Øq2 ;

L1 = Øq1; L2 = q1 \/ Øq2;

По полученным формулам легко могут быть построены функциональные схемы F и FL.

Выходы схемы F используются в процессе функционирования электронных часов только в моменты переключения автомата из одного состояния в другое. В теории автоматов переходы между состояниями предполагается мгновенными, в то время как в реальной схеме время перехода имеет вполне определенную длительность, определяемую инерционностью электрических цепей: задержкой появления сигнала на выходе схемы F и временем переключения элементов памяти. Время задержки в современных схемах весьма мало: в ТТЛ-схемах оно составляет величину порядка десятков наносекунд. Обычным приемом, позволяющим решать проблемы, возникающие в переключательных схемах вследствие немгновенности срабатывания, является использование синхронизации - синхроимпульса с длительностью, перекрывающей время переключения схемы. Такой синхроимпульс (обозначим его s) в асинхронных схемах должен формироваться в момент внешних воздействий (в нашем случае при нажатии кнопок “a” и “b”), потому он будет вырабатываться схемой “Преобразователь внешних воздействий” рис. 10. Для хранения номера состояния в периоды между моментами переходов обычно используется триггеры.

Триггер - устройство с двумя устойчивыми состояниями. Основная его функция - хранить один бит информации неограниченное время до тех пор, пока эта информация не будет изменена воздействием на вход триггера. Существует довольно много разновидностей триггеров, различающихся по входным условиям смены состояния. Коротко опишем алгоритм работы D-триггера, который мы будем использовать далее (см. рис. 15). Когда на выходе Q - “1”, а на выходе Q - “0”, говорят, что триггер установлен в единичное состояние. В противном случае (Q - “0”, Q - “1”), считается, что триггер сброшен в нулевое состояние. На выходе Q триггера всегда устанавливается уровень напряжения, противоположный уровню напряжения на Q.

Рис. 15

Непосредственная установка или сброс триггера осуществляется подачей напряжения низкого уровня на входы S (Set-установка) или R (Reset - сброс) соответственно. Подавать логический ноль на оба входа сразу недопустимо. Если низкий уровень присутствует на R или S, то сигналы на входах D и C никак не влияют на состояние триггера. Однако в функциональном плане более важными являются именно входы D (data) и C (clock). Триггер работает так, что сигнал от входа D передается на выход Q в момент положительного перепада напряжения на С. При этом во время постоянного уровня напряжения или в момент отрицательного перепада напряжения на С значение Q не может измениться. Чтобы триггер переключался правильно, уровень на входе D следует зафиксировать заранее, перед приходом тактового перепада на С. Минимальное время между появлением сигнала на D и на С называется защитным интервалом. При работе в таком режиме, на входах R и S должен присутствовать уровень логической единицы.

Использование элементов памяти при реализации конечного автомата имеет некоторые особенности. Дело в том, что в момент переключения автомата необходимо одновременно подавать на вход схемы F (рис. 14) код старого состояния и запоминать код нового, получаемый с выхода этой схемы. Иными словами, существует (возможно, малый) период времени, когда в блоке памяти должны храниться как код старого состояния, так и код нового состояния, получившегося в результате преобразования F. Для разрешения этого противоречия, можно для каждого разряда кода состояния использовать два триггера. Эти триггеры соединяются последовательно (см. рис. 16), и простым приемом достигается то, что информация о номере состояния на выходе F при одном переключении автомата будет использоваться на входе F при следующем переключении. Рассмотрим, как это делается (рис. 16).

Сигналы x и s появляются практически одновременно. На выходе F после появления x на входе устанавливается код следующего состояния (пара Q1 и Q2), который необходимо запомнить в триггерах Т1-Т2. Необходимо помнить, что в тот момент, когда на тактовый вход С поступает положительный перепад напряжения, сигнал на информационном входе D должен быть установлен заранее. Поэтому на С входы триггеров T1 и T2 мы будем подавать синхроимпульс s с - задержкой t1 такой, что t0 < t1 < ts. Здесь t0 - это сумма задержки сигнала в блоке F и защитного интервала триггера, а ts - продолжительность синхроимпульса s. Положительный перепад напряжения на тактовые входы С триггеров T3-T4 надо подать только после окончания действия синхроимпульса. Это можно сделать инверсией сигнала, который мы подаем на С входы Т1-Т2.

Рис. 16

Требуемый выход устройства управления электронных часов - управляющие микрокоманды - получаются из кодов состояний и выходов автомата довольно просто. Потенциальные микрокоманды, как функции состояний автомата, снимаются с выходов логической схемы FL (см. рис. 16), являющейся, фактически, дешифратором. Импульсные микрокоманды являются функцией выходных сигналов управляющего автомата. В нашем случае кодировка выходов автомата выбрана так, что каждый разряд выходного сигнала является одной из искомых микрокоманд, и дополнительного функционального преобразователя строить не надо. Однако для того, чтобы эти микрокоманды имели импульсную форму, определим микрокоманду i как конъюнкцию выхода у схемы F и синхроимпульса s.

Организация передачи внешних воздействий на вход конечного автомата

Рассмотрим теперь организацию подачи внешних воздействий на вход управляющего автомата. В нашем случае внешнее воздействие - это нажатие одной из двух кнопок (“a” или “b”, рис. 10). Необходимо построить схему, которая при таком нажатии вырабатывала бы синхроимпульс и подавала бы на вход автомата код нажатой кнопки (1 для “a” и 0 для “b”). Время, которое человек держит кнопку часов нажатой, не может быть меньше нескольких миллисекунд, а сформированный на основе этого нажатия синхроимпульс должен быть гораздо короче и не зависеть от продолжительности физического нажатия кнопки. “Укоротить” импульс может помочь так называемый формирователь импульсов с укорачивающей RC-цепью (см. рис. 17). Подбором емкости и сопротивления можно построить схему, которая вырабатывает необходимую нам продолжительность сигнала.

Рис. 9.17

На рис. 18 представлена схема передачи внешних воздействий на вход автомата. Анализируя ее, необходимо помнить, что в ТТЛ-схемах “висячий провод” на входе элемента эквивалентен логической единице.

Рис. 18

Как видно из графиков напряжений (рис. 19), синхроимпульс появляется лишь тогда, когда нажата одна кнопка, а другая - нет. Также нужно учесть, что выход x используется только в период действия s и, таким образом, напряжение на x только в это время должно соответствовать коду кнопки, нажатие которой вызвало появление этого s.

Рис. 19

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

Общая функциональная схема часов

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