6.1.5. Прерывания
На шине ISA имеются линии запросов маскируемых и немаскируемых аппаратных прерываний. Линии запросов маскируемых прерываний IRQ2
-IRQ7
поступают на входы первичного контроллера прерываний, IRQ9
-IRQ15
— на входы вторичного. Контакт B4 (IRQ2/9
) запрос IRQ2
вырабатывал только у машин PX/XT. На всех современных машинах (класса AT) он является запросом IRQ9
, хотя на многих адаптерах (всех 8-битных) он обозначается как IRQ2
. Приоритеты у запросов убывают по порядку IRQ9
…IRQ15
и далее IRQ3
…IRQ7
. Запросы от конкретных линий могут быть замаскированы записью в регистры контроллера (см. п. 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 |