Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Дребезг контактов клавиатуры.



У кнопок клавиатуры есть большой недостаток. За счет упругих свойств материала кнопка при нажатии замыкается не сразу, а многократно случайным образом " замыкается-размыкается". Это явление называется дребезгом контактов. Так как МП во много раз быстрее обрабатывает информацию, чем происходит этот процесс, последний может быть интерпретирован программой работы МП как многократное нажатие кнопки. Чтобы устранить это негативное явление применяют либо аппаратные средства устранения дребезга, либо программные. При аппаратном решении этого вопроса используется эффект R-S-триггера. При программной реализации идея устранения дребезга заключается в многократном считывании состояния кнопки до тех пор, пока ее фиксируемое состояние не станет устойчивым за заданный промежуток времени, характерный для окончания процессов дребезга. Пример функционального алгоритма устранения дребезга контактов приведен на рис.18, где В – предыдущее состояние кнопки; С – счетчик характерного времени дребезга; А – текущее состояние кнопки.

Рис.18

Асинхронный обмен.

До сих пор речь шла о синхронном обмене, когда ВУ " успевало" реагировать на команды МП. Если же внешнее устройство достаточно медленное, МП должен дождаться его реакции, иначе обмен будет сорван. Такой обмен с ожиданием реакции ВУ называется асинхронным. Для организации асинхронного обмена необходимо еще две управляющие шины (помимо " Запись" и " Чтение" ): " Готовность" – ВУ сигнализирует МП, что оно готово (или не готово) к обмену; " Ожидание" – МП оповещает ВУ о том, что он его ждет. При этом взаимодействие МП и ВУ выглядит так, как показано на рисунке 19. На рисунке 20 приведен протокол обмена для асинхронного режима. Если ВУ не отвечает, то время ожидания может быть сколь угодно большим. Говорят, что МП " зависает". Такая ситуация недопустима при функционировании МПС и необходимо предусматривать меры для ее предотвращения.

Рис.19 Рис.20

Подводя итог рассмотрению программно-управляемого обмена, можно констатировать, что для его организации необходимо всего четыре управляющие шины: " Запись", " Чтение", " Готовность" и " Ожидание". Его особенностями (достоинствами и недостатками) являются:

· минимизация аппаратных затрат на создание блока сопряжения;

· значительные затраты времени работы МП по организации обмена с ВУ, особенно в режиме ожидания;

· увеличение программных затрат, связанных с взаимодействием с ВУ;

· пассивность ВУ, не способных инициировать обмен.

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

Обмен по прерываниям.

Простота программно-управляемого ввода-вывода оборачивается " бездельем" МП, который почти все время находится в ожидании вво­да или вывода. Например, если на принтер выводится информация с быстродействием 1000 символов в секунду, то полезное время работы МП составит всего 0, 1% и менее.

При недопустимости такой ситуации требуется обеспечить такой режим работы МП, когда он выполняет две независимые программы, одна из которых - программа управления обменом с ВУ (программно-управляемый обмен) - вызывается только тогда, когда ВУ необходимо выполнить какие-то действия (аварийные, допусковые ситуации и др.). Указанный режим реализуется с помощью механизма прерываний. Данный способ представляет собой расширение " демократии" взаимодействия между элементами в системе и, как следствие, требует дополнительных организационных затрат: аппаратных и программных.

Для организации обмена по прерываниям необходимо дополнительно ввести две шины управления: " Запрос прерывания" (ЗПР) – ВУ запрашивает обслуживания у МП, " Разрешение прерывания" (РПР) – МП подтверждает начало обслуживания (рис.21).

Рис.21 Рис.22

На МП возлагаются следующие функции:

· принять сигнал ЗПР;

· завершить выполнение текущей команды основной программы;

· запомнить в стеке (ОЗУ) адрес следующей для исполнения команды;

· передать управление подпрограмме обработки прерывания (обслуживания запроса ВУ);

· выдать сигнал РПР.

Так как МП не " знает", где в запоминающем устройстве расположена подпрограмма обработки прерывания, он передает управление не ей, а команде ЗУ, расположенной чаще всего по адресу 0 (или любой другой, обусловленной схемотехникой МП). На программиста возлагается задача расположить по этому адресу команду передачи управления подпрограмме обработки запроса ВУ (см. рис.22).

Для корректного использования такого способа ввода-вывода между фоновой программой и программой обмена существуют некоторые соглашения. Так как основная программа будет продолжена, подпрограмма обработки прерывания ВУ должна:

1. Запомнить в стеке состояние всех используемых регистров основной программы.

2. Выполнить обмен информацией между МП и ВУ, устранив причину запроса.

3. Восстановить из стека состояние используемых регистров основной программы.

4. Передать управление в основную программу (адрес возврата находится в стеке).

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

Случай нескольких ВУ.

Если предполагается, что несколько ВУ может работать в режиме прерывания, то возникают дополнительные проблемы:

· у МП не хватает входов " ЗПР";

· требуется несколько подпрограмм обслуживания прерывания с организацией механизма передачи им управления;

· необходимо определить, какое ВУ выдает сигнал " ЗПР";

· при одновременном запросе прерывания от нескольких ВУ нужно выяснить, какое ВУ обслужить в первую очередь.

Обычно эти проблемы решаются двумя путями.

1. На аппаратном уровне выделяется отдельный блок сопряжения, называемый блоком приоритетных прерываний (БПП), на который возлагаются следующие функции (см. рис.23):

· объединение всех выходов " Запрос прерывания" от ВУ в один для соединения с входом " Запрос прерывания" МП;

· маскирование несущественных в текущий момент " Запросов прерывания" от ВУ;

· ранжирование ВУ по приоритетам (при их одновременных запросах);

· передача МП информации о том, какой подпрограмме обслуживания передать управление для обработки запроса прерывания.

2. На программном уровне в основной программе программист должен выполнить предварительную настройку БПП на текущие потребности; создать столько подпрограмм обработки прерываний, сколько имеется активных ВУ; организовать передачу им управления при получении соответствующей информации от БПП.

Рис.23

Совокупность всех выходов " Запрос прерывания", подсоединенных к МПС, называется вектором прерывания. В МП предусматривается несколько команд передачи управления на определенные адреса – ровно столько, какой размерности допустим вектор прерывания. Такие команды - однословные, длиной, соответствующей разрядности шин данных в МП. При обработке прерывания МП после выдачи сигнала " Разрешение прерывания" принимает с ШД код такой команды, выставленный БПП, и тем самым " узнает", на какой адрес передать управление для обработки данного прерывания. Так в персональных ЭВМ клона РС такие прерывания называются " Int" (interrupt, прерывание).

Протокол обмена между БПП и МП в момент поступления запроса на прерывания от ВУ выглядит следующим образом:

1. БПП выставляет сигнал " ЗПР" на МП.

2. МП завершает выполнение текущей команды, сохраняет в стеке адрес возврата и выдает на БПП сигнал " РПР", освобождая магистраль.

3. При получении " Разрешение прерывания" БПП выставляет на магистраль код команды безусловного перехода на фиксированную область памяти, соответствующую активированному входу " ЗПР" БПП.

4. МП принимает код этой команды с магистрали и исполняет ее.

Если количество ВУ больше, чем имеет входов " ЗПР" у БПП, применяется каскадное подключение нескольких БПП. В этом случае на программу возлагается либо опрос состояния БПП ( аппаратный полинг ), либо опрос состояния ВУ ( программный полинг ).


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-11; Просмотров: 805; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.017 с.)
Главная | Случайная страница | Обратная связь