Аппаратные интерфейсы ПК | страница 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), что эффективно при передаче больших блоков данных.