Микропроцессорная техника систем автоматизации


Управление на основе прерываний



бет67/77
Дата27.11.2023
өлшемі4,68 Mb.
#128711
1   ...   63   64   65   66   67   68   69   70   ...   77

Управление на основе прерываний


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

    • завершение операций ввода/вывода;

    • истечение заранее заданного интервала времени;

    • попытка деления на нуль;

    • сбой в работе аппаратного устройства и др.

Прерывание (англ. interrupt) – сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение теку- щей последовательности команд приостанавливается и управление передается обработчику прерывания, который реагирует на собы- тие и обслуживает его, после чего возвращает управление в пре- рванный код.
Основная цель введения прерываний – реализация асинхронного режима работы и распараллеливания работы отдельных устройств вычислительного комплекса. Механизм прерываний реализуется аппаратно-программными средствами.
Структуры систем прерываний могут быть самыми различ- ными, но все они имеют общую особенность – прерывание не- пременно ведет за собой изменение порядка выполнения команд процессором.
Обработка прерывания в ПЛК (рис. 104) производится в три этапа:

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

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

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

  1. восприятие запроса на прерывание: прием сигнала и иденти- фикация прерывания;

  2. запоминание состояния прерванного процесса: определяется значением счетчика команд (адресом следующей команды) и со- держимым регистров процессора;

  3. передача управления прерывающей программе (в счетчик ко- манд заносится начальный адрес подпрограммы обработки преры- ваний, а в соответствующие регистры – информация из слова состояния процессора);

  4. обработка прерывания;

  5. восстановление прерванного процесса и возврат в прерван- ную программу.



Рис. 104. Блок-схема обработки прерывания в ПЛК

Главные функции механизма прерывания:



  • распознавание или классификация прерываний;

  • передача управления соответственно обработчику прерываний;

  • корректное возвращение к прерванной программе (перед пе- редачей управления обработчику прерываний содержимое регист- ров процессора запоминается либо в памяти с прямым доступом, либо в системном стеке).



Достарыңызбен бөлісу:
1   ...   63   64   65   66   67   68   69   70   ...   77




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет