Аппаратные интерфейсы ПК | страница 20



на шаге 4, когда линия >HostClk переходит в высокий уровень. В этот момент модифицируются счетчики переданных и принятых байт. В протоколе ЕСР есть условия, вызывающие прекращение обмена между шагами 3 и 4. Тогда эти данные не должны рассматриваться как переданные.

Из рис. 1.5 видно и другое отличие ЕСР от EPP. Протокол EPP позволяет драйверу чередовать циклы прямой и обратной передачи, не запрашивая подтверждения на смену направления. В ЕСР смена направления должна быть согласована: хост запрашивает реверс установкой >ReverseRequest#, после чего он должен дождаться подтверждения сигналом >AckReverse#. Поскольку предыдущий цикл мог выполняться по прямому доступу, драйвер должен дождаться завершения прямого доступа или прервать его, выгрузить буфер FIFO, определив точное значение счетчика переданных байт, и только после этого запрашивать реверс.

Обратная передача данных состоит из следующих шагов:

1. Хост запрашивает изменение направления канала, устанавливая низкий уровень на линии >ReverseRequest#.

2. ПУ разрешает смену направления установкой низкого уровня на линии >AckReverse#.

3. ПУ помещает данные на шину канала и устанавливает признак цикла данных (высокий уровень) или команды (низкий уровень) на линии >PeriphAck.

4. ПУ устанавливает низкий уровень на линии >PeriphClk, указывая на действительность данных.

5. Хост отвечает установкой высокого уровня на линии >HostAck.

6. ПУ устанавливает высокий уровень линии >PeriphClk; этот перепад может использоваться для фиксации данных хостом.

7. Хост устанавливает низкий уровень на линии >HostAck для указания на готовность к приему следующего байта.

1.3.5. Режимы и регистры ЕСР-порта

Программный интерфейс и регистры ЕСР для адаптеров IEEE 1284 определяет спецификация Microsoft. Порт ЕСР может работать в различных режимах, приведенных в табл. 1.7, где код соответствует полю >Mode регистра >ECR (биты [7:5]).


Таблица 1.7. Режимы ЕСР-порта

КодРежим
000SPP mode, стандартный (традиционный) режим
001Bi-directional mode, двунаправленный порт (тип 1 для PS/2)
010Fast Centronics, однонаправленный с использованием FIFO и DMA
011ЕСР Parallel Port mode, собственно режим ЕСР
100ЕРР Parallel Port mode, режим ЕРР¹
101Зарезервировано
110Test mode, тестирование работы FIFO и прерываний
111Configuration mode, доступ к конфигурационным регистрам

¹ Этот режим не входит в спецификацию Microsoft, но трактуется как ЕРР многими адаптерами портов, если в CMOS Setup установлен режим ЕСР+ЕРР.