Шина XPB¶
XPB (eXtension Peripheral Bus) - шина расширения для подключения периферийных устройств, не входящих в базовый набор системы. Через неё подключаются дисковые контроллеры, сетевые карты и другие устройства.
Формат шины¶
Шина передаёт данные синхронно по тактовому сигналу.
<- High | Low ->
X XXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X
^ ╘ PORT ╛ ││││ ╘ DATA IN (32) ════════════════╛ ╘ DATA OUT (32) ═══════════════╛ ╘CAUSE═╛ ┕RI
┕RD│
┕WR
┕RE
┕EN
Легенда:
| Сигнал | Описание |
|---|---|
^ |
Тактовый сигнал |
PORT |
Номер порта (8 бит) |
DATA IN |
Входные данные (32 бита) |
DATA OUT |
Выходные данные (32 бита) |
CAUSE |
Причина прерывания |
RI |
Request Interrupt |
RD |
Read |
WR |
Write |
RE |
Reset |
EN |
Enable |
Протокол карты регистров¶
Каждое XPB-устройство обязано реализовывать базовый набор регистров, называемый DSR (Device Service Registers).
| ID | Доступ | Имя | Описание |
|---|---|---|---|
00h |
R | DEV_DATA |
Класс и производитель устройства |
01h |
- | Reserved | Зарезервировано |
02h |
R/W | DEV_STATUS |
Статус устройства |
03h |
R | FEATURES |
Возможности устройства |
04h–07h |
- | Reserved | Зарезервировано |
08h–0Fh |
- | DSR |
Регистры сервиса устройства |
DSR (Device Service Registers) - это 8 регистров, назначение которых определяется самим устройством.
Банки XPB¶
Диапазон банков FF00h–FFFFh зарезервирован под XPB-устройства. Каждому устройству соответствует один банк.
Важно: банк
0001hи XPB#01всегда зарезервированы под дисковый контроллер.
Дисковый контроллер XPB1¶
Первый XPB-контроллер в системе дисковый. Его регистры находятся по адресам 0x00020110–0x0002011C. Полное описание - в разделах I/O-порты и Устройства.