Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LPT-порт.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
163.84 Кб
Скачать

Режим еср

Протокол ЕСР ( порт с расширенными возможностями) был предложен фирмами НР и MS как прогрессивный режим связи с переферией типа принтеров и сканеров . Как и ЕРР, данный протокол обеспечивает высокопроизводительный двунаправленный обмен данными Хоста с ПУ .

Протокол ЕСР в обоих направлениях обеспечивает два типа циклов :

  • цикл записи и чтения данных ;

  • командные циклы записи и чтения .

Командные циклы подразделяются на два типа: передача канальных адресов и счетчика RLC

(Run-Length Count).

В отличии от ЕРР вместе с протоколом ECP сразу появился и стандарт на программную (регистровую) модель реализации его адаптера . Этот документ определяет свойства реализации протокола , не заданные в ІЕЕЕ 1284:

  • компрессия данных хост-адаптером по методу RLE;

  • буферизация FIFO для прямого и обратного канала ;

  • применения DMA и программного ввода/вывода.

Компрессия в реальном времени по методу RLE позволяет достичь коэффициента сжатия до 64:1. Компрессию можно использовать, если ее поддерживает и хост и ПУ.

Канальная адресация ЕСР применяется для адресации множества логических устройств, входящих в одно физическое . Например , в комбинированном устройстве факс/прин-тер/модем, подключаемом только к одному LPT –порту возмлжен одновременный прием факса и печати на принтере. Как и в других режимах ,протокол ЕСР переопределяет сигнал SPP

(табл 6).

Таблица 6. Сигналы LPT-порта в режиме ввода/вывода ECP

Контакт

Сигнал SPP

Имя вEСP

I/0

Описание

1

STROBE#

HostClk

0

Используется впаре с Periph

Ack для передачи в прямом

направлении (вывод)

14

AUTOFEED #

HostAck

0

Индицирует тип команда/ (дан-ные при передаче в прямом направлении . Используется

в паре с PeripClk для передачи в обратном направлении

17

SELECTIN #

1284 Active

0

Высокий уровень указывает на обмен в режиме IEEE 1284

16

INIT#

Reverse Reguest#

0

Низкий уровень переключает канал на передачу в обратном направлении

10

Ack#

PeriphClk

I

Используется в паре с HostAck

для передачи в обратном напра-влении

11

BUSY

PeriphClk

I

Используется в паре с HostClk для передачи в обратном направлении .Инициирует тип команда/данные при передачи

в обратном направлении

12

PE

AckReverSe#

I

Переводится в низкий уровень

как подтверждение сигналу ReverseReguest#

13

SELECT

Xflag*

I

Флаг расширяемости

15

ERROR#

PeriphReguest#

I

Устанавливается ПУ для указания на доступность (наличие) обратного канала передачи

2-9

DATA[0:7]

DATA[0:7}

I/0

Двунаправленный канал данных

Адаптер ЕСР тоже генерирует внешние протокольные сигналы квитирования аппаратно. но его работа существенно отличается от режима ЕРР . За циклом данных следует командный цикл . В командном цикле байт может содержать командный адрес или счетчик RLE. Отличительным признаком является бит 8 (старший): если он нулевой , то биты 1-7 содержат счетчик RLE (0-127), если он единичный –то канальный адрес . Временные диаграммы не содержат циклов системной шины процессора. В режиме ЕСР обмен С ПУ разбивается на два относительно независимых процесса, которые связаны через FIFO –буфер.

Обмен программного драйвера с FIFO-буфером может осуществляться как с использованием DMA, так и программным вводом-выводом. Обмен ПУ с буфером аппаратно выполняет адаптер ЕСР.

Поскольку передачи в ЕСР разделены FIFO –буферами ,которые могут присутствовать на обеих сторонах интерфейса, данные считаются переданными, когда линия HostClk переходит в высокий уровень . В этот момент модифицируют счетчики переданных и принятых байт.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]