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.4
— ERRINTREN#
— (Error Interrupt Disable) запрещает прерывания по сигналу Error#
(при нулевом значении бита по отрицательному перепаду на этой линии вырабатывается запрос прерывания);
♦ ECR.3
— DMAEN
— (DMA Enable) разрешает обмен по каналу DMA;
♦ ECR.2
— SERVICEINTR
— (Service Interrupt) запрещает сервисные прерывания, которые вырабатываются по окончании цикла DMA (если он разрешен), по порогу заполнения/опустошения FIFO-буфера (если не используется DMA) и по ошибке переполнения буфера сверху или снизу;
♦ ECR.1
— FIFOFS
— (FIFO Full Status) сигнализирует о заполнении буфера; при FIFOFS
=1 в буфере нет ни одного свободного байта;
♦ ECR.0
— FIFOES
— (FIFO Empty Status) указывает на полное опустошение буфера; комбинация FIFOFS
=FIFOES
=1 означает ошибку работы с FIFO (переполнение сверху или снизу).
Когда порт находится в стандартном или двунаправленном режимах (000 или 001), первые три регистра полностью совпадают с регистрами стандартного порта. Так обеспечивается совместимость драйвера со старыми адаптерами и старых драйверов с новыми адаптерами.
По интерфейсу с программой ECP-порт напоминает EPP: после установки режима (записи кода в регистр ECR
) обмен данными с устройством сводится к чтению или записи в соответствующие регистры. За состоянием FIFO-буфера наблюдают либо по регистру ECR
, либо по обслуживанию сервисных прерываний от порта. Весь протокол квитирования генерируется адаптером аппаратно. Обмен данными с ЕСР-портом (кроме явного программного) возможен и по прямому доступу к памяти (каналу DMA), что эффективно при передаче больших блоков данных.
1.3.6. Согласование режимов IEEE 1284
ПУ в стандарте IEEE 1284 обычно не требуют от контроллера реализации всех предусмотренных этим стандартом режимов. Для определения режимов и методов управления конкретным устройством стандарт предусматривает
Во время фазы согласования контроллер выставляет на линии данных Xflag
(Select
в терминах SPP) для подтверждения запрошенного режима обратного канала, кроме полубайтного, который поддерживается всеми устройствами IEEE 1284. Бит Extensibility Link request
послужит для определения дополнительных режимов в будущих расширениях стандарта.
Таблица 1.9. Биты в байте расширяемости
Бит | Описание | Допустимые комбинации бит [7:0] |
---|---|---|
7 | Request Extensibility Link — зарезервирован | 1000 0000 |
6 | Запрос режима ЕРР | 0100 0000 |
5 | Запрос режима ЕСР с RLE | 0011 0000 |
4 | Запрос режима ЕСР без RLE | 0001 0000 |
3 | Зарезервировано | 0000 1000 |
2 | Запрос идентификатора устройства с ответом в режиме: | |
полубайтный | 0000 0100 | |
байтный | 0000 0101 | |
ЕСР без RLE | 0001 0100 | |
ЕСР с RLE | 0011 0100 | |
1 | Зарезервировано | 0000 0010 |
0 | Запрос полубайтного режима | 0000 0001 |
none | Запрос байтного режима | 0000 0000 |
1. Хост выводит байт расширяемости на линии данных.