РегистрSDFIFO используется для передачи данных в режиме 010. Данные, записанные в регистр (или посланные по каналу DMA), передаются через буфер FIFO по реализованному аппаратно протоколу Centronics. При этом должно быть задано прямое направление передачи (бит CR.5=0).

РегистрDFIFO используется для обмена данными в режиме 011 (ЕСР). Данные, записанные в регистр или считанные из него (или переданные по каналу DMA), передаются через буфер FIFO по протоколу ЕСР.

РегистрTFIFO обеспечивает механизм тестирования FIFO-буфера в режиме 110.

РегистрECPCFGA позволяет считывать информацию об адаптере (идентификационный код в битах [7:4]).

РегистрECPCFGB позволят хранить любую информацию, необходимую драйверу. Запись в регистр не влияет на работу порта.

РегистрECR — главный управляющий регистр ЕСР. Его биты имеют следующее назначение:

♦ ECR[7:5]ЕСР MODE — задают режим ЕСР;

♦ ECR.4ERRINTREN# — (Error Interrupt Disable) запрещает прерывания по сигналу Error# (при нулевом значении бита по отрицательному перепаду на этой линии вырабатывается запрос прерывания);

♦ ECR.3DMAEN — (DMA Enable) разрешает обмен по каналу DMA;

♦ ECR.2SERVICEINTR — (Service Interrupt) запрещает сервисные прерывания, которые вырабатываются по окончании цикла DMA (если он разрешен), по порогу заполнения/опустошения FIFO-буфера (если не используется DMA) и по ошибке переполнения буфера сверху или снизу;

♦ ECR.1FIFOFS — (FIFO Full Status) сигнализирует о заполнении буфера; при FIFOFS=1 в буфере нет ни одного свободного байта;

♦ ECR.0FIFOES — (FIFO Empty Status) указывает на полное опустошение буфера; комбинация FIFOFS=FIFOES=1 означает ошибку работы с FIFO (переполнение сверху или снизу).

Когда порт находится в стандартном или двунаправленном режимах (000 или 001), первые три регистра полностью совпадают с регистрами стандартного порта. Так обеспечивается совместимость драйвера со старыми адаптерами и старых драйверов с новыми адаптерами.

По интерфейсу с программой ECP-порт напоминает EPP: после установки режима (записи кода в регистр ECR) обмен данными с устройством сводится к чтению или записи в соответствующие регистры. За состоянием FIFO-буфера наблюдают либо по регистру ECR, либо по обслуживанию сервисных прерываний от порта. Весь протокол квитирования генерируется адаптером аппаратно. Обмен данными с ЕСР-портом (кроме явного программного) возможен и по прямому доступу к памяти (каналу DMA), что эффективно при передаче больших блоков данных.

<p>1.3.6. Согласование режимов IEEE 1284</p>

ПУ в стандарте IEEE 1284 обычно не требуют от контроллера реализации всех предусмотренных этим стандартом режимов. Для определения режимов и методов управления конкретным устройством стандарт предусматривает последовательность согласования (negotiation sequence). Последовательность построена так, что старые устройства, не поддерживающие IEEE 1284, на нее не ответят, и контроллер останется в стандартном режиме. Периферия IEEE 1284 может сообщить о своих возможностях, и контроллер установит режим, удовлетворяющий и хост, и ПУ.

Во время фазы согласования контроллер выставляет на линии данных байт расширяемости (extensibility byte), запрашивая подтверждение на перевод интерфейса в требуемый режим или прием идентификатора ПУ (табл. 1.9). Идентификатор передается контроллеру в запрошенном режиме (любой режим обратного канала, кроме EPP). ПУ использует сигнал Xflag (Select в терминах SPP) для подтверждения запрошенного режима обратного канала, кроме полубайтного, который поддерживается всеми устройствами IEEE 1284. Бит Extensibility Link request послужит для определения дополнительных режимов в будущих расширениях стандарта.

Таблица 1.9. Биты в байте расширяемости

БитОписаниеДопустимые комбинации бит [7:0]
7Request Extensibility Link — зарезервирован1000 0000
6Запрос режима ЕРР0100 0000
5Запрос режима ЕСР с RLE0011 0000
4Запрос режима ЕСР без RLE0001 0000
3Зарезервировано0000 1000
2Запрос идентификатора устройства с ответом в режиме: 
полубайтный0000 0100
байтный0000 0101
ЕСР без RLE0001 0100
ЕСР с RLE0011 0100
1Зарезервировано0000 0010
0Запрос полубайтного режима0000 0001
noneЗапрос байтного режима0000 0000

Последовательность согласования (рис. 1.6) состоит из следующих шагов.

1. Хост выводит байт расширяемости на линии данных.

Перейти на страницу:

Все книги серии Наиболее полное и подробное руководство

Похожие книги