Перейти к содержанию

Шина 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-порты и Устройства.