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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Разработка микроконтроллерного устройства стабилизации температуры
Эффективная организация контроля информации приобретает всё большее практическое значение, прежде всего как условие успешной практической деятельности людей. Объем информации, необходимой для нормального функционирования современного общества, растёт из года в год. На сегодняшний день складывается ситуация, в которой наряду с самой ...

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