Структура контроллера прерываний
Внутренние и программные прерывания обрабатываются непосредственно процессором, а для предварительной обработки внешних запросов применяют специализированные устройства - контроллеры прерываний. Необходимость использования контроллеров прерываний обусловлена тем, что процессор или микроконтроллер имеет ограниченное число входных линий для приема запросов на прерывание (1-2 – у однокристальных МП, 2-10 – у микроконтроллеров). В то же время количество устройств, требующих взаимодействия с процессором через сигналы прерываний, в реальных системах достигает нескольких десятков. Таким образом, контроллер прерываний выполняет селекцию запросов. Схема на рис.6.1 иллюстрирует взаимодействие процессора и контроллера прерываний при обработке группы внешних запросов. Отметим важную особенность контроллеров прерываний, выполненных в виде интегральных схем, – возможность их программной настройки на требуемые режимы работы.
Рис. 6.1. Структура контроллера прерываний и его взаимодействие с процессором
Контроллеры прерываний являются сложными устройствами; в их структуре можно выделить четыре основных блока: фиксации запросов, разрешения запросов,анализа приоритета запросов и схему управления.
Блок фиксации запросов выполнен на основе регистра фиксации запросов прерываний (РФЗ) и служит для фиксации асинхронных сигналов запросов от внешних устройств.
Блок разрешения запросов предназначен для выборки из поступивших сигналов тех запросов, которые наиболее важны для обработки на конкретном этапе реализации основных алгоритмов. Основу блока составляет регистр разрешения прерываний(РРП). В этот регистр можно записать программным путем двоичный код, который будет определять набор запросов, разрешенный для обработки в данный момент. Пусть, например, в РРП контроллера прерываний, имеющего восемь входов, записан код 01100010. Это означает, что в данный момент разрешены прерывания по входам 1, 5 и 6 (считая с нуля, справа налево). Простейшая структура блока разрешения запросов показана на рис. 6.2.
Рис. 6.2. Схема построения блока фиксации и анализа запросов прерываний
Код, записываемый в РРП, принято называть маской прерываний, так как нулевые биты в этом коде запрещают (маскируют) обработку определенных запросов.
Блок анализа приоритетов запросов предназначен для выбора из группы запросов одного наиболее важного, т.е. наиболее приоритетного для обработки. Программно задаваемая шкала приоритетов определяет последовательность реакции на сигналы, прошедшие через РМП, в случае их одновременного появления. На процессор пропускается сигнал, который был идентифицирован первым в порядке опроса.
Код, определяющий шкалу приоритетов, записывают в регистр приоритетов прерываний (РПП)программным путем. Как правило, контроллеры прерываний имеют встроенную аппаратную шкалу, согласно которой вход с меньшим номером имеет наивысший приоритет. Поэтому запись кода в РПП, по сути, изменяет стандартную аппаратную шкалу.
Как видно из рис. 6.1, процессор также имеет встроенный блок разрешения прерывания и проверки приоритетности. Данный блок служит для согласования внешнего запроса INT и внутренних и программных запросов при их одновременном поступлении.
Хотелось бы обратить ваше внимание на сайт одного из спонсоров нашего сайта - piar4you.com Если вам нужно купить репосты youtube или увеличить количество просмотров вашего youtube-канала, то переходите по ссылке - на сайте вы найдёте всё необходимое.
|