Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Программирование контроллера прерываний

Прохождение запроса на прерывание через контроллер

· Сигнал запроса поступает на вход irqx и устанавливает соответствующий бит регистра IRR в «1».

· Регистр маски IMR определяет, какие прерывания разрешены (0 – разрешены, 1- запрещены).

· Если бит IMR =0, то сигнал поступает к регистру приоритета PR. Самый высокий приоритет у уровня irq0. Конфликт возникает, если на входах регистра PR одновременно несколько запросов.

· Регистр PR выбирает запрос на прерывание с наивысшим приоритетом и предает сигнал на схему управления, которая формирует сигнал INT, поступающий на вход INTR микропроцессора.

· Если прерывания разрешены (IF=1, TF=0), то микропроцессор сбрасывает флаг (IF= 0) (запрещает аппаратные прерывания) и передает контроллеру сигнал подтверждения INTA.

 

При поступлении сигнала INTA контроллер выполняет следующее:

1. Сбрасывает бит в регистре IRR,

2. Устанавливает бит в регистре ISR, соответствующий входу irq (фиксирует факт обработки прерывания с данным приоритетом),

3. формирует номер вектора прерываний в виде кода на выходах d0 … d7.

Далее происходит обработка прерывания.

 

Если во время обработки прерывания поступит другой сигнал запроса прерывания того же уровня, то обслуживание запроса будет отложено.

Если поступит запрос более высокого уровня, то текущая процедура обработки остановится, а поступивший запрос вызовет свою процедуру обработки.

Любая процедура, закончив работу, сбрасывает свой бит в регистре ISR, разрешая тем самым обработку прерываний с приоритетами ниже установленного.

Следует помнить, что при запуске обработчика флаг IF будет сброшен и аппаратные прерывания будут запрещены. Обрабатывающая программа должна сама определить, когда внешние прерывания не помешают ее работе. Она может разрешить внешние прерывания (sti) или вновь запретить (cli).

Контроллер прерываний (КП) может настраиваться на работы в одном из 4-х режимов:

 

6. FNN – режим вложенных прерываний. Каждому входу в КП присваивается фиксированное значение приоритета (высший – 0, низший – 7). Здесь более приоритетные прерывания имеют право на прерывание работы менее приоритетного прерывания (режим абсолютных приоритетов).

 

7. ARM – режим циклической обработки прерываний. Приоритет последнего обслуженного прерывания устанавливается наименьшим, а следующий по порядку запрос на прерывание (уровень прерывания) получает наивысший приоритет. Это вариант циклического обслуживания (если на все входы поступили запросы).

 

 

8. CRM – режим адресуемых приоритетов. Система, либо программа в процессе работы самостоятельно назначает уровень прерывания с наивысшим приоритетом

 

9. PM – режим опроса. Инициатором обработки прерываний является сам микропроцессор (в контроллере все прерывания замаскированы)

 

Программирование КП осуществляется через адресное пространство вода/вывода посредством 2-х 8-битовых портов (например, 20h и 21h). В порты можно послать приказы 2-х типов:

 

- ICW (initialization control word) (ICW1, ICW2, ICW3, ICW4) - управляющее слово инициализации,

- OCW (operation control word) (OCW1, OCW2, OCW3). - операционное управляющее слово.

 

<== предыдущая лекция | следующая лекция ==>
Программируемый контроллер прерываний | Формат приказов ICW
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 366; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.