Аппаратные интерфейсы ПК - [200]

Шрифт
Интервал

приходит от схем контроля паритета памяти, от линий контроля шины ISA (>IOCHK) или шины PCI (>SERR#). Сигнал >NMI блокируется до входа процессора установкой в 1 бита 7 порта 070h, отдельные источники разрешаются и идентифицируются битами порта 061h:

♦ бит 2 R/W — >ERP — разрешение контроля ОЗУ и сигнала >SERR# шины PCI;

♦ бит 3 R/W — >EIC — разрешение контроля шины ISA;

♦ бит 6 R — >IOCHK — ошибка контроля на шине ISA (сигнал >IOCHK#);

♦ бит 7 R — >PCK — ошибка четности ОЗУ или сигнал >SERR# на шине PCI.

Реакция процессора на маскируемые прерывания может быть задержана сбросом его внутреннего флага >IF (инструкции >СLI — запретить прерывания, >STI — разрешить). По возникновении события, требующего реакции, адаптер (контроллер) устройства формирует запрос прерывания, который поступает на вход контроллера прерываний. Контроллер прерываний формирует общий запрос маскируемого прерывания для процессора, а когда процессор подтверждает этот запрос, контроллер сообщает процессору вектор прерывания, по которому выбирается программная процедура обработки прерываний. Процедура должна выполнить действия по обслуживанию данного устройства, включая сброс его запроса для обеспечения возможности реакции на следующие события и посылку команды завершения в контроллер прерываний. Вызывая процедуру обработки, процессор автоматически сохраняет в стеке значение всех флагов и сбрасывает флаг >IF, что запрещает маскируемые прерывания. При возврате из процедуры (по инструкции >IRET) процессор восстанавливает сохраненные флаги, в том числе и установленный >IF, что снова разрешает прерывания. Если во время работы обработчика прерываний требуется реакция на иные прерывания (более приоритетные), то в обработчике должна присутствовать инструкция >STI. Особенно это касается длинных обработчиков; здесь инструкция >STI должна вводиться как можно раньше, сразу после критической (не допускающей прерываний) секции. Следующие прерывания того же или более низкого уровня приоритета контроллер прерываний будет обслуживать только после получения команды завершения прерывания >EOI (End Of Interrupt).

Маскируемые прерывания используются для сигнализации о событиях в устройствах. Обработка сигналов запросов прерывания выполняется контроллером прерываний, программно совместимым с 8259A. Контроллер прерываний позволяет маскировать отдельные входы запросов и организовывать систему приоритетов запросов от различных входов. В машинах класса AT применяется каскадное соединение двух контроллеров. Ведущий контроллер 8259А#1 обслуживает запросы 0, 1, 3–7; его выход подключается к входу запроса прерываний процессора. К его входу 2 подключен ведомый контроллер 8259А#2, который обслуживает запросы 8-15. При этом поддерживается вложенность приоритетов — запросы 8-15 со своим рядом убывающих приоритетов вклиниваются между запросами 1 и 3 ведущего контроллера, приоритеты запросов которого также убывают с ростом номера. В XT каскадирование не применялось, и один контроллер 8259А обслуживал все 8 линий запросов.

Контроллер прерываний i8259A подробно описан в литературе [1, 7]; здесь приведем лишь необходимые сведения, в большинстве случаев достаточные для работы. Контроллеры расположены по адресам 20-21h (8259A#1) и A0-A1h (8259A#2), обращаться к ним следует как к однобайтным портам ввода-вывода. После инициализации (процедурой POST и при загрузке ОС) все неиспользуемые входы контроллеров замаскированы (на запросы прерываний реагировать не будут), а их векторы прерываний указывают на «заглушку» — процедуру с единственной инструкцией >IRET. Первым делом программа должна загрузить в память свой обработчик и подставить указатель на его начало в соответствующее место таблицы прерываний. Далее следует размаскировать вход, для чего выполняется чтение регистра маски (адрес 21h для 8259А#1, A1h для 8259А#2), обнуление соответствующего бита (см. табл. 12.2) и запись в регистр нового значения маски. При работе с контроллером прерываний от программы требуется лишь управление маской своего запроса (при инициализации программы нужно обнулить маску требуемого запроса) и корректное завершение обработки прерываний. Каждая процедура обработки аппаратного прерывания должна завершаться командой >EOI (End Of Interruption), посылаемой контроллеру:

♦ для 1-го контроллера — посылка байта 20h по адресу 20h;

♦ для 2-го контроллера — посылка байта 20h по адресу A0h (>EOI для ведомого контроллера), затем посылка байта 20h по адресу 20h (>EOI для ведущего контроллера).


Таблица 12.2. Аппаратные прерывания (в порядке убывания приоритета)

Имя (номер¹)ВекторКонтроллер/маскаОписание
NMI02h Контроль канала, паритет (в XT — сопроцессор)
IRQ008h#1/1hТаймер (канал 0 8253/8254)
IRQ109h#1/2hКлавиатура
IRQ20Ah#1/4hXT — резерв, AT — недоступно (подключается каскад IRQ8-IRQ15)
IRQ870h#2/1hCMOS RTC — часы реального времени
IRQ971h#2/2hРезерв
IRQ1072h#2/4hРезерв
IRQ1173h#2/8hРезерв
IRQ1274h#2/10hPS/2-Mouse (резерв)
IRQ 1375h#2/20hМатематический сопроцессор
IRQ1476h#2/40hHDC — контроллер НЖМД
IRQ1577h#2/80hРезерв
IRQ30Bh#1/4hCOM2, COM4
IRQ40Ch#1/10hCOM1, COM3

Рекомендуем почитать
Удаление предустановленной Windows 8

На первый взгляд процедура удаления Windows 8 ничем не отличается от вполне обычного форматирования винчестера с последующей установкой системы. К сожалению, все гораздо сложней.


Программируем Arduino. Профессиональная работа со скетчами.

Arduino — стандартный микроконтроллер, получивший широкое признание у инженеров, мастеров и преподавателей благодаря своей простоте, невысокой стоимости и большому разнообразию плат расширения. Платы расширения, подключаемые к основной плате Arduino, позволяют выходить в Интернет, управлять роботами и домашней автоматикой.Простые проекты на основе Arduino не вызывают сложностей в реализации. Но, вступив на территорию, не охваченную вводными руководствами, и увеличивая сложность проектов, вы быстро столкнетесь с проблемой нехватки знаний — врагом всех программистов.Эта книга задумана как продолжение бестселлера «Programming Arduino: Getting Started with Sketches».


Работаем на нетбуке. Начали!

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


1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера.


Элементы схемотехники цифровых устройств обработки информации

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


Wi-Fi: Все, что Вы хотели знать, но боялись спросить

Жизнь современного человека — это движение. Мобильность для нас становится одним из самых важных моментов для работы, для общения, для жизни. Многие из нас сейчас уже не представляют жизнь без сотовых телефонов, которые из средства роскоши превратились в предмет, без которого жизнь современного человека стала просто немыслима. Многие уже оценили все преимущества Bluetooth, GPRS. Эти устройства превратили наши телефоны из средств связи в незаменимых помощников в работе. К сожалению, один из самых главных недостатков этих беспроводных технологий — малый радиус действия и низкая скорость передачи данных, что сейчас становится очень важным фактором для всех нас.