Имя портаАдресТип доступа
ADDRESS0279h (Printer status port)Только запись
WRITE_DATA0A79h (Printer status port + 0800h)Только запись
READ_DATAПеремещаемый в диапазоне 0203h-03FFhТолько чтение

Порт ADDRESS используется для адресации регистров PnP — в него записывают индекс требуемого регистра (см. ниже пункт «Конфигурирование карт») перед обращением к портам WRITE_DATA и READ_DATA. Этот же порт используется и для записи последовательности кодов ключа инициализации. Выбор адреса для него обусловлен тем, что ни одна разумно сделанная карта расширения не будет пытаться задействовать для записи адрес регистра состояния стандартного LPT-порта.

Порты WRITE_DATA и READ_DATA используются для обмена данными с регистрами PnP. Адрес порта WRITE_DATA традиционными картами с 10-битным декодированием будет восприниматься как тот же адрес, что и у предыдущего порта, так что конфликт опять-таки исключен. Перемещаемому адресу порта READ_DATA программное обеспечение PnP во время исполнения протокола изоляции может легко найти бесконфликтное положение. Адрес этого порта сообщается всем картам записью в их управляющий регистр PnP.

Вышеперечисленные три порта используются только для конфигурирования и управления картами PnP. Для взаимодействия прикладных программ с функциональными устройствами карты используются иные ресурсы, выделенные карте (порты, области памяти, прерывания и каналы DMA). По включению питания или аппаратному сбросу карты настраиваются на стандартную рабочую конфигурацию, принятую для них по умолчанию (она может храниться в энергонезависимой памяти или задаваться джамперами). Это обязательно, по крайней мере для устройств, участвующих в загрузке, — ввод, вывод (экран) и собственно загрузочное устройство. Остальные устройства могут быть и логически отключенными от шины, до тех пор пока они не будут сконфигурированы программными средствами PnP. Карта PnP должна сообщать обо всех используемых ею ресурсах и, по возможности, предлагать альтернативные конфигурирования. Она обязана подчиняться конфигурационным командам PnP, включая команду деактивации (логического отключения от шины); при невозможности принять указанную конфигурацию карта (или ее логическое устройство) должна отключаться. Строгое выполнение данных требований всеми картами делает возможным работу системы PnP на неприспособленной для этого шине ISA. Непременным условием работоспособности является и уникальность идентификаторов карт (см. ниже).

В плане PnP каждая карта может находиться в одном из четырех состояний.

♦ Wait for key (ожидание ключа) — состояние нормального функционирования (или отключения) логических устройств. В это состояние устройство входит при включении питания, по аппаратному сбросу и по завершению его конфигурирования системой PnP. До подачи ключа в этом состоянии конфигурация карты программными обращениями изменена быть не может.

♦ Sleep («спячка») — состояние, в котором карта ожидает пробуждающей команды Wake[CSN], переводящей ее либо в состояние изоляции, либо в состояние конфигурирования. При нулевом параметре CSN в команде все карты с неназначенным номером CSN переводятся в состояние изоляции. При ненулевом параметре CSN в команде карта с совпадающим номером CSN переводится в состояние конфигурирования.

♦ Isolation (изоляция) — карта отвечает только на чтение регистра Serial Isolation для реализации одноименного протокола (см. далее), с помощью которого ей назначается уникальный номер CSN. Остальные команды PnP ей недоступны.

♦ Config (конфигурирование) — состояние, в котором карта отвечает на все об ращения к регистрам PnP, позволяя считывать и изменять ее конфигурацию. В этом состоянии может находиться лишь одна карта. По окончании конфигурирования карту переводят в режим ожидания ключа, защищая ее конфигурацию.

Протокол изоляции
Перейти на страницу:

Все книги серии Наиболее полное и подробное руководство

Похожие книги