Выбрать главу

6.1.5. Прерывания

На шине ISA имеются линии запросов маскируемых и немаскируемых аппаратных прерываний. Линии запросов маскируемых прерываний IRQ2-IRQ7 поступают на входы первичного контроллера прерываний, IRQ9-IRQ15 — на входы вторичного. Контакт B4 (IRQ2/9) запрос IRQ2 вырабатывал только у машин PX/XT. На всех современных машинах (класса AT) он является запросом IRQ9, хотя на многих адаптерах (всех 8-битных) он обозначается как IRQ2. Приоритеты у запросов убывают по порядку IRQ9IRQ15 и далее IRQ3IRQ7. Запросы от конкретных линий могут быть замаскированы записью в регистры контроллера (см. п. 12.4), общий запрет/разрешение осуществляется манипулированием флагом разрешения прерываний (IF) процессора. Устройство может использовать одну или несколько линий запроса прерывания. На используемой линии запроса устройство в покое должно формировать низкий уровень сигнала, а при возникновении условия прерывания устанавливать на нем высокий уровень запроса. Неиспользуемые линии должны быть электрически отключены от шины или же их выходные формирователи должны переводиться в третье состояние. Переход из низкого в высокий уровень является сигналом для контроллера прерываний на формирование запроса прерывания к процессору. Устройство должно удерживать высокий уровень запроса до тех пор, пока к нему не обратится программа-обработчик прерывания, что будет означать не только обнаружение, но и правильную идентификацию источника запроса прерывания. Если запрос снят преждевременно, идентификация будет некорректной. Детально механизм обслуживания прерываний рассмотрен в п. 12.4.

Способ подачи сигнала прерывания, принятый в ISA, — чувствительность к уровню, причем к высокому, — имеет меньшую помехозащищенность, чем срабатывание по отрицательному перепаду, и отрезает путь к нормальному разделению (совместному использованию) линий запросов.

Линия IOCHK# позволяет вызывать немаскируемое прерывание (NMI), на которое процессор реагирует вне зависимости от каких-либо флагов. Это прерывание принято использовать для сообщения о серьезных ошибках, требующих реакции системы, но не для регулярной работы. Вызов NMI от данной линии разрешается установкой бита 3 (EIC) системного порта 061h, а признаком того, что прерывание NMI вызвано сигналом IOCHK#, является единичное значение бита 6 (IOCHK) того же порта.

6.1.6. Шина PC/104

Шина PC/104, предназначенная для построения относительно несложных встраиваемых контроллеров, логически эквивалентна ISA. В ее названии 104 — число контактов коннектора, на который выводятся сигналы шины ISA. От ISA шина PC/104 отличается только типом коннектора и нагрузочными характеристиками линий: поскольку протяженность линий значительно сократилась, сигнальные цепи могут быть слаботочными. Формирователи сигналов MEMCS16#, IOCS16#, MASTER# и 0WS# должны обеспечивать вытекающий ток до 20 мА, для остальных достаточно 4 мА.

Вид платы PC/104 приведен на рис. 6.4, назначение контактов дано в табл. 6.5 и 6.6. Плата компьютера с шиной PC/104 имеет разъемы-розетки. Плата расширения имеет вилку PC/104, которая вставляется в плату контроллера. Кроме вилки на плате расширения может присутствовать и розетка PC/104 (коннектор двусторонний), так что можно собрать «бутерброд» из нескольких плат (рис. 6.4, а). Для предотвращения неправильного соединения у розеток в позициях B10 и C19 нет ни контактов, ни отверстий; у вилок в этих позициях штырек отсутствует. Если плат более трех, то сверху «бутерброда» устанавливают терминатор. Для фиксации плат стандартизовано расположение крепежных отверстий. Платы скрепляются четырьмя несущими стоечками высотой 0,6" (или длинными винтами с втулками). Отметим особенности коннекторов: J1 — коннектор шины ISA-8, J2 — его расширение до ISA-16; эти коннекторы обычно имеют дюймовый шаг контактов (2,54 мм), но могут встречаться и метрические, с шагом 2,5 мм (они взаимно несовместимы!). Обратим внимание и на специфическую нумерацию рядов контактов В, А, С, D и номеров контактов (у J2 нумерация начинается с нуля, нулевые контакты не используются).

Рис. 6.4. Компьютер с шиной PC/104: а — стопка плат, б — расположение системных коннекторов

Таблица 6.5. Разъем J1/P1 шины PC-104

РЯДА Ряд В
IOCHK# 1 GND
SD7 2 RESET
SD6 3 +5 В
SD5 4 IRQ2/9
SD4 5 –5 В
SD3 6 DRQ2
SD2 7 –12 В
SD1 8 0WS#
SD0 9 +12 В
IOCHRDY 10 Ключ
AEN 11 SMEMW#
SA19 12 SMEMR#
SA18 13 IOWR#
SA17 14 IORD#
SA16 15 DACK3#
SA15 16 DRQ3
SAM 17 DACK1#
SA13 18 DRQ1
SA12 19 REFRESH*
SA11 20 BCLK
SA10 21 IRQ7
SA9 22 IRQ6
SA8 23 IRQ5
SA7 24 IRQ4
SA6 25 IRQ3
SA5 26 DACK2#
SA4 27 TC
SA3 28 BALE
SA2 29 +5 В
SA1 30 OSC
SA0 31 GND
GND 32 GND