Аппаратные интерфейсы ПК | страница 23
>Strobe#
) игнорируется.Регистр>ECPAFIFO
служит для помещения информации командных циклов (канального адреса или счетчика >RLE
, в зависимости от бита 7) в FIFO-буфер. Из буфера информация будет выдана в командном цикле вывода.
Регистр>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), что эффективно при передаче больших блоков данных.