Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия
- Название:Аппаратные интерфейсы ПК. Энциклопедия
- Автор:
- Жанр:
- Издательство:Издательский дом «Питер»
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-180-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия краткое содержание
Книга посвящена аппаратным интерфейсам, использующимся в современных персональных компьютерах и окружающих их устройствах. В ней подробно рассмотрены универсальные внешние интерфейсы, специализированные интерфейсы периферийных устройств, интерфейсы устройств хранения данных, электронной памяти, шины расширения, аудио и видеоинтерфейсы, беспроводные интерфейсы, коммуникационные интерфейсы, вспомогательные последовательные интерфейсы. Сведения по интерфейсам включают состав, описание сигналов и их расположение на разъемах, временные диаграммы, регистровые модели интерфейсных адаптеров, способы использования в самостоятельно разрабатываемых устройствах. Книга адресована широкому кругу специалистов, связанных с эксплуатацией ПК, а также разработчикам аппаратных средств компьютеризированной аппаратуры и их программной поддержки.
Аппаратные интерфейсы ПК. Энциклопедия - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Для адресации к карте и ее логическим устройствам, а также для чтения конфигурационной информации используются стандартные регистры управления картой (табл. 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 | Выбор текущего логического устройства, к которому относятся все операции по обмену конфигурационной информацией, проверки диапазона адресов ввода-вывода и активации. Если карта имеет только одно устройство, регистр допускает только чтение и всегда имеет нулевое значение |
Card Level Резерв | 08h-1Fh | Зарезервированы на будущее |
Card Level, Vendor Defined | 20h-2Fh | Используются по усмотрению производителя |
Конфигурирование карты начинается с команды WAKE[CSN]
— записи байта CSN
в регистр с индексом 3. Эта операция переводит карту с указанным номером CSN
в состояние Config (конфигурирование), а остальные карты «засыпают» — переходят в состояние Sleep . Для конфигурируемой карты выполняются операции чтения ее конфигурационной информации (как карты в целом, так и логических устройств) и программирования используемых ресурсов. Программирование каждого логического устройства завершается установкой его бита активации, после чего логическое устройство активизируется на шине ISA (начнет реально использовать назначенные ресурсы). Программирование всей карты завершается переводом ее в состояние Wait for key (ожидание ключа). По окончании конфигурирования все карты PnP должны быть переведены в это состояние, и тогда их случайное реконфигурирование будет блокировано 32-байтным ключом.
Доступ к регистрам PnP через ключ возможен в любое время функционирования, однако запись в них должна производиться в полной уверенности о знании последствий. Возможно даже переназначение CSN
«на ходу», но это требуется лишь в устройствах, допускающих «горячие» включения-выключения (что не приветствуется на шине ISA), док-станциях ( Docking Stations ) для подключения портативных компьютеров и системах управления энергопотреблением.
Стандартные регистры управления логическим устройством (табл. 6.9) используются для активации карт и проверки отсутствия конфликтов на шине ISA в выбранном диапазоне адресов ввода-вывода. Когда включен режим проверки конфликтов, на чтение по любому адресу установленного диапазона портов ввода-вывода логическое устройство отвечает байтом 55h или AAh в зависимости от состояния бита 0 регистра проверки. Естественно, что в рабочем режиме этот «автоответчик» должен быть отключен.
Таблица 6.9. Стандартные регистры управления логическим устройством PnP
Имя | Индекс и тип | Назначение |
---|---|---|
Activate | 30h, RW | Регистр активации . Бит [0] единичным значением разрешает активность логического устройства на шине ISA. Биты [7:1] зарезервированы, при чтении должны возвращать нули. Перед активацией должна быть запрещена проверка диапазона адресов ввода-вывода |
I/O Range Check | 31h, RW | Регистр проверки диапазона адресов ввода-вывода . Биты [7:2] зарезервированы, при чтении должны возвращать нули. Бит [1] — разрешение режима проверки. Бит [0] — управление диагностическим ответом: 0 — ответ AAh, 1 — ответ 55h |
Logical Device Control Резерв | 32h-37h | Зарезервированы на будущее |
Logical Device Control Vendor Defined | 38h-3Fh | Используются по усмотрению производителя |
Оперативные данные конфигурирования доступны через регистры логических устройств. Каждое логическое устройство имеет собственные дескрипторы используемых системных ресурсов.
♦ Обычные 24-битные (4) или 32-битные (4) дескрипторы памяти . Для неиспользуемого дескриптора памяти его поля базового адреса и длины должны быть нулевыми. Одна карта не может одновременно задействовать обычные (24-битные) и 32-битные дескрипторы памяти.
♦ Дескрипторы областей портов ввода-вывода (8) . Для неиспользуемого дескриптора портов ввода-вывода его поле базового адреса должно быть нулевым. Размер области адресов определяется в блоке данных, считанном из регистра Resource Data
.
♦ Дескрипторы запросов прерываний (2) . Неиспользуемый селектор запроса прерывания должен быть нулевым (поскольку нулевой номер запроса недопустим — занят системным таймером). Для линии IRQ2/9
шины ISA применяют номер 9.
♦ Дескрипторы каналов прямого доступа к памяти. Неиспользуемый дескриптор канала прямого доступа должен иметь значение 4 (этот канал недоступен, по скольку задействован для каскадирования контроллеров).
Назначение регистров дескрипторов и их положение в индексном пространстве PnP раскрывает табл. 6.10.
Таблица 6.10. Регистры дескрипторов системных ресурсов логических устройств PnP
Индекс и тип | Назначение |
---|---|
40h-5Fh — обычные (24-битные) дескрипторы памяти | |
40h, RW | Дескриптор памяти 0 : базовый адрес памяти, биты [23:16] |
41h, RW | Дескриптор памяти 0 : базовый адрес памяти, биты [15:8] |
42h, RW | Дескриптор памяти 0 : управление. Бит [1] — режим обращения: 0–8 бит, 1 — 16 бит. Бит [0] (RO) — способ задания диапазона: 0 — следующее поле воспринимается как маска адреса, 1 —как старший адрес |
43h, RW | Дескриптор памяти 0 : маска или максимальный адрес области, биты [23:16]. Единичное значение бита в маске указывает, что соответствующий бит адреса участвует в дешифрации адреса области памяти (старшие биты); нулевое — бит адреса используется для адресации в пределах выделенной области) |
44h, RW | Дескриптор памяти 0 : маска или максимальный адрес области, биты [15:8] |
45h-47h | Заполнитель (зарезервировано) |
48h-4Ch | Дескриптор памяти 1 (аналогично предыдущему) |
4Dh-4Fh | Заполнитель (зарезервировано) |
50h-54h | Дескриптор памяти 2 (аналогично предыдущему) |
55h-57h | Заполнитель (зарезервировано) |
58h-5Ch | Дескриптор памяти 3 (аналогично предыдущему) |
5Dh-5Fh | Заполнитель (зарезервировано) |
60h-6Fh — дескрипторы пространства ввода-вывода | |
60h, RW | Дескриптор портов 0 : базовый адрес, биты [15:8]. Если логическое устройство использует только 10-битное декодирование адреса, биты [15:10] могут игнорироваться |
61h, RW | Дескриптор портов 0 : базовый адрес, биты [7:0] |
62h-63h, RW | Дескриптор портов 1 (аналогично предыдущему) |
64h-65h, RW | Дескриптор портов 2 (аналогично предыдущему) |
66h-67h, RW | Дескриптор портов 3 (аналогично предыдущему) |
68h-69h, RW | Дескриптор портов 4 (аналогично предыдущему) |
6Ah-6Bh, RW | Дескриптор портов 5 (аналогично предыдущему) |
6Ch-6Dh, RW | Дескриптор портов 6 (аналогично предыдущему) |
6Eh-6Fh, RW | Дескриптор портов 7 (аналогично предыдущему) |
70h-73h — дескрипторы запросов прерываний | |
70h, RW | Селектор запроса прерывания 0 . Биты [3:0] задают номер IRQ для Interrupt 0 |
71h, RW | Тип сигнала запроса прерывания 0 . Бит[1] — активный уровень: 1 — высокий, 0 — низкий. Бит[0] — тип: 1 — уровень, 0 — перепад. Если карта поддерживает только один тип сигнала, регистр может быть типа RO |
72h, 73h RW | Селектор и тип запроса прерывания 1 (аналогично предыдущему) |
74h-75h — дескрипторы каналов прямого доступа | |
74h, RW | Селектор 0 канала DMA . Биты [2:0] задают номер используемого канала (001 — DMA0…, 111 — DMA7) |
75h, RW | Селектор 1 канала DMA (аналогично предыдущему) |
76h-A8h — 32-битные дескрипторы памяти | |
76h, RW | 32-битный дескриптор памяти 0 : базовый адрес памяти, биты [31:24] |
77h, RW | 32-битный дескриптор памяти 0 : базовый адрес памяти, биты [23:16] |
78h, RW | 32-битный дескриптор памяти 0 : базовый адрес памяти, биты [15:8] |
79h, RW | 32-битный дескриптор памяти 0 : базовый адрес памяти, биты [7:0] |
7Ah, RW | 32-битный дескриптор памяти 0 : управление. Биты [7:3] — зарезервированы, при чтении должны возвращать нули. Биты [2:1] — управление доступом: 00 — 8-битная память, 01 — 16-битная память, 10 — зарезервировано, 11 — 32-битная память. Бит [0] (RO) — способ задания диапазона: 0 — следующее поле воспринимается как размер области, 1 — следующее поле воспринимается как старший адрес |
7Bh, RW | 32-битный дескриптор памяти 0 : размер или старший адрес области, биты [31:24] |
7Ch, RW | 32-битный дескриптор памяти 0 : размер или старший адрес области, биты [23:16] |
7Dh, RW | 32-битный дескриптор памяти 0 : размер или старший адрес области, биты [15:8] |
7Eh, RW | 32-битный дескриптор памяти 0 : размер или старший адрес области, биты [7:0] |
7Fh | Заполнитель (зарезервировано) |
80h-88h | 32-битный дескриптор памяти 1 |
89h-8Fh | Заполнитель (зарезервировано) |
90h-98h | 32-битный дескриптор памяти 2 |
99h-9Fh | Заполнитель (зарезервировано) |
A0h-A8h | 32-битный дескриптор памяти 3 |
Дескрипторы требуемых ресурсов (данные о возможных конфигурациях логических устройств) могут быть считаны последовательно байт за байтом из регистра Resource Data
и использованы для конфигурирования устройств, которое выполняется через регистры, перечисленные в табл. 6.10. Считываться будут данные из карты, находящейся в состоянии config . Если регистр считывается сразу после «победы» карты в протоколе изоляции, считывание начинается с дескриптора версии PnP. Если считывание начинается для карты после ее «пробуждения» командой Wake[CSN]
, сначала будут считаны 8 байт уникального идентификатора, затем байт контрольного кода, который будет недействительным, поскольку генерируется аппаратно регистром LFSR во время побитного считывания идентификатора. Только после этого начнется считывание дескрипторов ресурсов. Порядок считывания дескрипторов существенен — именно в этом порядке должны программироваться регистры дескрипторов ресурсов карты PnP. Последовательность считывания дескрипторов для каждого логического устройства завершается признаком завершения области дескрипторов.
Интервал:
Закладка: