2.2.3 Организация прерываний в управляющих процессорах
Источниками прерываний могут быть:
1. Внешние источники. Запрос передается перепадом напряжения на
входе (из «1» в «0» или из «0» в «1») или определенным уровнем
напряжения («0» или «1») на внешнем входе запроса прерывания.
2. Внутренние источники – встроенные модули памяти (обычно от модуля
EEPROM) или модули периферийных устройств:
a) Таймеры/счетчики. Запрос вырабатывается по переполнению;
b) Блоки захвата/сравнения. Запрос по событию входного захвата или
равенства при выходном сравнении.
c) АЦП. Запрос по завершению преобразования.
d) Аналоговые компараторы. Запрос по изменению соотношения
уровней входных сигналов.
e) Приемопередатчики последовательных интерфейсов (RS-232 (SIO),
SPI, I
2
C, USB, CAN, Ethernet, HDLC и т.п.). Запрос вырабатывается:
53
♦ По приему байта или пакета и доступности новых принятых
данных;
♦ По завершению передачи байта или пакета и освобождению
передатчика.
3. Программные прерывания.
Организация прерываний в процессорах для управляющих систем ничем
принципиально не отличается от универсальных процессоров. В различных
семействах управляющих процессоров реализованы различные механизмы
обработки прерываний:
1. Векторный с жестким приоритетом (ST7, AVR, Am186).
2. Векторный с программируемым приоритетом (MCS-51, M16C, i386EX).
3. Векторный с динамической таблицей векторов (M16C).
4. С общим вектором (механизм полинга) (PIC).
Укрупненная схема блока обработки запросов прерываний (механизм
масок)
Механизм масок основан на использовании специального бита для
каждого запроса прерываний, с помощью которого разрешается или
запрещается обработка прерываний, связанных с этим запросом. В процессоре
семейства Intel функцию маски выполняет бит IF, с помощью которого
разрешается (IF=1) или запрещается (IF=0) обработка запросов внешних
прерываний (как правило, от ВУ). При сброшенном флаге IF принято говорить,
что прерывание замаскировано.
Запросы прерываний от ВУ формируются с помощью PIC (Programmable
Interruption Controller), который связан линией запроса с CPU. Запросы от PIC
поступают в CPU на внешний вход INTR.
Для управления прерываниями используется маска прерываний (см. рис.
4), представляющая собой двоичное слово M = m1 m2 … mk с числом разрядов,
равным числу маскируемых причин прерывания. Если разряд маски mk = 0, то
прерывание по причине k запрещено (замаскировано), если разряд маски mk =
1, то прерывание по причине k разрешено (не замаскировано). Маска
прерываний хранится в процессоре, куда она загружается командой
УСТАНОВИТЬ МАСКУ А, где А – адрес. По этой команде слово с адресом А
загружается в качестве маски в процессор и определяет отношение процессора
к сигналам прерывания. Если все разряды маски равны нулю, процессор не
реагирует ни на одну причину прерывания.
В простейших процессорах используется следующий способ маскирования
прерываний. В систему команд компьютера вводятся две системные команды
ЗАПРЕТИТЬ ПРЕРЫВАНИЯ и РАЗРЕШИТЬ ПРЕРЫВАНИЯ, выполнение
54
которых приводит к запрещению и разрешению прерываний одновременно по
всем причинам.
Команды,
маскирующие
прерывания,
относятся
к
группе
привилегированных команд.
Do'stlaringiz bilan baham: |