Читать «Аппаратные интерфейсы ПК. Энциклопедия» онлайн - страница 8

Михаил Юрьевич Гук

¹ I/O задает направление передачи (вход-выход) сигнала порта. O/I обозначает выходные линии, состояние которых считывается при чтении из портов вывода; O(I) — выходные линии, состояние которых может быть считано только при особых условиях (см. ниже).

² Символом «\» отмечены инвертированные сигналы (1 в регистре соответствует низкому уровню линии).

³ Вход Ack# соединен резистором (10 кОм) с питанием +5 В.

Адаптер SPP-порта содержит три 8-битных регистра, расположенных по соседним адресам в пространстве ввода-вывода, начиная с базового адреса порта BASE (3BCh, 378h или 278h).

Data Register (DR) — регистр данных, адрес=BASE. Данные, записанные в этот регистр, выводятся на выходные линии Data[7:0]. Данные, считанные из этого регистра, в зависимости от схемотехники адаптера соответствуют либо ранее записанным данным, либо сигналам на тех же линиях, что не всегда одно и то же.

Status Register (SR) — регистр состояния (только чтение), адрес=BASE+1. Регистр отображает 5-битный порт ввода сигналов состояния принтера (биты SR.4-SR.7) и флаг прерывания. Бит SR.7 инвертируется — низкому уровню сигнала соответствует единичное значению бита в регистре, и наоборот.

Ниже описано назначение бит регистра состояния (в скобках даны номера контактов разъема порта).

♦ SR.7Busy — инверсное отображение состояния линии Busy (11): при низком уровне на линии устанавливается единичное значения бита — разрешение на вывод очередного байта.

♦ SR.6Ack (Acknowledge) — отображение состояния линии Ack# (10).

♦ SR.5РЕ (Paper End) — отображение состояния линии Paper End (12). Единичное значение соответствует высокому уровню линии — сигналу о конце бумаги в принтере.

♦ SR.4Select — отображение состояния линии Select (13). Единичное значение соответствует высокому уровню линии — сигналу о включении принтера.

♦ SR.3Error — отображение состояния линии Error# (15). Нулевое значение соответствует низкому уровню линии — сигналу о любой ошибке принтера.

♦ SR.2PIRQ — флаг прерывания по сигналу Ack# (только для порта PS/2). Бит обнуляется, если сигнал Ack# вызвал аппаратное прерывание. Единичное значение устанавливается по аппаратному сбросу и после чтения регистра состояния.

♦ SR[1:0] — зарезервированы.

Control Register (CR) — регистр управления, адрес=ВАSЕ+2, допускает запись и чтение. Регистр связан с 4-битным портом вывода управляющих сигналов (биты 0–3) для которых возможно и чтение; выходной буфер обычно имеет тип «открытый коллектор». Это позволяет корректно использовать линии данного регистра как входные при программировании их в высокий уровень. Биты 0, 1, 3 инвертируются.