КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Параллельный интерфейс— LPT-порт


Регистровая модель адаптера ЕСР (табл. 1.8) использует свойства архитектуры стандартной шины и адаптеров ISA, где для дешифрации адресов портов ввода-вывода задействуются только 10 младших линий шины адреса. Поэтому, напри¬мер, обращения по адресам Port, Port+400h, Port+800h... будут восприниматься как обращения к адресу Port, лежащему в диапазоне 0-3FFh. Современные PC и адаптеры декодируют большее количество адресных бит, поэтому обращения по адресам 0378h и 0778Н будут адресованы двум различным регистрам. Помещение дополнительных регистров ЕСР «за спину» регистров стандартного порта (сме¬щение 400-402Н) преследует две цели. Во-первых, эти адреса никогда не исполь¬зовались традиционными адаптерами и их драйверами, и их применение в ЕСР не приведет к сужению доступного адресного пространства ввода-вывода. Во-вто¬рых, этим обеспечивается совместимость со старыми адаптерами на уровне режи¬мов 000-001 и возможность определения факта присутствия ЕСР-адаптера по¬средством обращения к его расширенным регистрам.
Каждому режиму ЕСР соответствуют (и доступны) свои функциональные регис¬тры. Переключение режимов осуществляется записью в регистр ECR. «Дежурны¬ми» режимами, включаемыми по умолчанию, являются 000 или 001. В любом из них работает полубайтный режим ввода. Из этих режимов всегда можно переклю¬читься в любой другой, но из старших режимов (010-111) переключение возмож-

34
Глава 1. Параллельный интерфейд — LPT-порт
но только в 000 или 001. Для корректной работы интерфейса перед выходом из старших режимов необходимо дождаться завершения обмена по прямому досту¬пу и очистки FIFO-буфера.
В режиме 000 (SPP) порт работает как однонаправленный программно-управля¬емый SPP-порт.
В режиме 001 (Bi-Di PS/2) порт работает как двунаправленный порт PS/2 типа 1. От режима 000 отличается возможностью реверса канала данных по биту CR. 5.
Режим 010 (Fast Centronics) предназначен только для высокопроизводительного вывода через FIFO-буфер с использованием DMA. Сигналы квитирования по протоколу Centronics вырабатываются аппаратно. Сигнал запроса прерывания вырабатывается по состоянию FIFO-буфера, но не по сигналу Ack# (запрос оди¬ночного байта «не интересует» драйвер быстрого блочного вывода).
Режим 011 является собственно режимом ЕСР, описанным выше, Поток данных и команд, передаваемых в ПУ, помещается в FIFO-буфер через регистры ECPDFIFO и ECPAFIFO соответственно. Из FIFO они выводятся с соответствующим призна¬ком цикла (состояние линии HostAck). Принимаемый поток данных от ПУ извле¬кается из FIFO-буфера через регистр ECPDFIFO.

Hosted by uCoz