Разделы сайта

Ввод-вывод по прерыванию

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

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

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

Общая последовательность реакции процессора на сигналы прерывания.

1. Если прерывания разрешены (регистр IE) процессор завершает текущую команду и устанавливает соответствующий флаг прерывания.

2. Осуществляется запоминание содержимого счетчика команд. Путем автоматической записи в стек.

. Процессор по флагу прерывания идентифицирует прерывающее устройство и находит на соответствии вектор прерывания.

. Выполняется подпрограмма обслуживания данного устройства. Вначале этой подпрограммы программным путем запоминается содержимое регистров PUSH A, PUSH PSW в стек. Далее в подпрограмме обычно выполняется действие по обмену информации со внешними устройством. В конце подпрограммы в обратном порядке извлекаются регистры POP PSW, POP A.

. Восстанавливается состояние прерванной программы, которое инициируется командой RET I, при этом из стека автоматически загружается в счетчик командой PC адрес возврата.

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

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

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

Самое читаемое:

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

www.techstages.ru : Все права защищены! 2024