порта READ_DATA конфликтует с каким-либо устройством. Тогда программа пробует произвести итерацию, переместив адрес порта READ_DATA в допустимом диапазоне адресов. Если при переборе нескольких возможных адресов не удается считать корректный идентификатор, то принимается решение об отсутствии карт PnP в системе (вообще или с неназначенными номерами CSN).

Программа должна обеспечивать задержку 1 мс после подачи ключа перед первой парой чтений и 250 мкс между парами чтений. Это дает карте время для доступа к информации, которая может храниться и в медленных устройствах энергонезависимой памяти.

Итак, по завершении протокола изоляции программное обеспечение имеет список идентификаторов обнаруженных карт и присвоенных им селективных номеров, сообщенных и самим картам. Далее общение программы с каждой картой идет по ее селективному номеру CSN, фигурирующему в командах PnP. Нулевой CSN присваивается картам по программному или аппаратному сбросу и используется как широковещательный адрес.

Конфигурирование карт

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

Каждая карта имеет стандартный набор регистров PnP, причем часть из них относится к карте в целом, а часть — к каждому логическому устройству, входящему в карту. Архитектура PnP поддерживает концепцию многофункциональности, согласно которой каждая карта может включать в себя несколько логических устройств. В любой момент времени в индексном пространстве регистров PnP отображаются стандартные регистры управления картой (см. ниже) и регистры только одного логического устройства (рис. 6.6). Выбор логического устройства, с которым производится общение, осуществляется записью в регистр Logical Device Number, входящий в группу управляющих регистров карты.

Рис. 6.6. Конфигурационные регистры PnP (* — определяется разработчиком)

Все логические устройства карт PnP должны обеспечивать, по крайней мере, минимальную функциональность:

♦ регистры ресурсов при чтении должны отражать фактические текущие на стройки;

♦ бит активации при чтении должен отражать реальное состояние активности устройства на шине ISA;

♦ если программа пытается «навязать» карте конфигурацию, не поддерживаемую устройством, это устройство не должно активироваться и, соответственно, при чтении его флаг активации должен быть сброшен.

Для адресации к карте и ее логическим устройствам, а также для чтения конфигурационной информации используются стандартные регистры управления картой (табл. 6.8).

Таблица 6.8. Стандартные регистры управления картой PnP

Имя Индекс и тип Назначение
Set RD_DATA Port 00H, WO Установка адреса порта для чтения. Биты [7:0] задают значение бит [9:2] адреса порта READ_DATA. Только для записи
Serial Isolation 01h, RO Чтение этого регистра в состоянии Isolation приводит к побитному анализу идентификатора
Config Control 02h, WO Бит [2] — сброс CSN в 0. Бит [1] — возвращение в состояние Wait for Key. Бит [0] — сброс всех логических устройств и перевод конфигурационных регистров в состояние включения питания, но с сохранением номера CSN. Биты не запоминаются, так что необходимости в их программном сбросе нет
Wake[CSN] 03h, WO Запись в этот регистр приведет карту, у которой номер CSN совпадает с записываемым байтом, к переходу из состояния Sleep в состояние Config (если данные не нулевые). Запись нулевого байта переводит все карты с неназначенным номером CSN в состояние Isolation. Указатель последовательно считываемых байт сбрасывается
Resource Data 04h, RO Чтение этого регистра возвращает очередной байт информации о ресурсах. Перед чтением должен опрашиваться регистр Status
Status 05h, RO Регистр состояния. Единичное значение бита [0] указывает на возможность чтения очередного байта ресурсов
Card Select Number 06h, RW Регистр хранения селективного номера CSN, обеспечивающего выбор конкретной карты командой Wake[CSN]. Обнуляется по включению питания и аппаратному сбросу
Logical Device Number 07h, RW Выбор текущего логического устройства, к которому относятся все операции по обмену конфигурационной информацией, проверки диапазона адресов ввода-вывода и
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату