|
Сигнал SPP |
Имя в ЕРР |
I/O |
Описание |
|
10 |
АСК# |
INTR# |
I |
Прерывание от ПУ |
|
11 |
BUSY |
WAIT» |
I |
Сигнал квитирования. Низкий уровень разрешает начало цикла (установку строба в низкий уровень), переход в высокий — разрешает завершение цикла (снятие строба) |
|
2-9 |
D[8:0] |
AD[8:0] |
I/O |
Двунаправленная шина адреса/данных |
|
12 |
РЕ |
AckDataReq* |
I |
Используется по усмотрению разработчика периферии |
|
13 |
SELECT |
Xflag* |
I |
Используется по усмотрению разработчика периферии |
|
15 |
ERROR |
DataAvaiW* |
I |
Используется по усмотрению разработчика периферии |
ЕРР-порт имеет расширенный набор регистров (табл. 7), который занимает в пространстве ввода/вывода 5-8 смежных байт.
Таблица 7.
Регистры ЕРР-порта
Имя регистра
Смещение
Режим
R/W
Описание
SPP Data Port
+0
SPP/EPP
W
Регистр данных стандартного порта
SPP Status Port
+1
SPP/EPP
R
Регистр состояния стандартного порта
SPP Control Port
+2
SPP/EPP
W
Регистр управления стандартного порта
EPP Address Port
+3
EPP
R/W
Регистр адреса ЕРР. Чтение или запись в него генерирует связанный цикл чтения или записи адреса ЕРР
EPP Data Port
+4
EPP
R/W
Регистр данных ЕРР. Чтение (запись) генерирует связанный цикл чтения (записи) данных ЕРР
Not Defined
+5...+7
EPP
N/A
В некоторых контроллерах могут использоваться для 16-32-битных операций ввода/вывода
В отличие от программно-управляемых режимов, описанных выше, внешние сигналы ЕРР-порта (как информационные, так и сигналы квитирования) для каждого цикла обмена формируются аппаратно по одной операции записи или чтения в регистр порта.
Цикл записи данных состоит из следующих фаз:
1. Программа выполняет цикл записи (IOWR#) в порт 4 (ЕРР Data Port).
2. Адаптер устанавливает сигнал Writeff (низкий уровень), и данные помещаются на выходную шину LPT-порта.
3. При низком уровне WAIT# устанавливается строб данных.
4. Порт ждет подтверждения от ПУ (перевода WAIT# в высокий уровень).
5. Снимается строб данных — внешний ЕРР-цикл завершается.
6. Завершается процессорный цикл ввода/вывода.
7. ПУ устанавливает низкий уровень WAIT#, указывая на возможность начала следующего цикла.
Главной отличительной чертой ЕРР является выполнение внешней передачи во время одного процессорного цикла ввода/вывода. Это позволяет достигать высоких скоростей обмена (0,5-2 Мбайт/с). Периферийное устройство, подключенное к параллельному порту ЕРР, может работать на уровне производительности устройства, подключаемого через слот ISA. Периферийное устройство может регулировать длительность всех фаз обмена с помощью всего лишь одного сигнала WAIT#. Протокол автоматически подстраивается и под длину кабеля — вносимые задержки только приведут к удлинению цикла.
«ЗАВИСАНИЕ» процессора на шинном цикле обмена препятствует механизм тайм-аутов PC, который принудительно завершает любой цикл обмена, длящийся более 15 мкс.
С программной точки зрения контроллер ЕРР-порта выглядит достаточно просто (см. табл.7). К трем регистрам стандартного порта, имеющим смещение 0, 1 и 2 относительно базового адреса порта, добавлены два регистра (ЕРР Address Port и ЕРР Data Port), чтение и запись в которые вызывает генерацию связанных внешних циклов.
Назначение регистров стандартного порта сохранено, что обеспечивает совместимость ЕРР-порта с периферийными устройствами и программным обеспечением, рассчитанными на применение программно-управляемого обмена. Поскольку сигналы квитирования адаптером вырабатываются аппаратно, при записи в регистр управления CR биты 0, 1 и 3, соответствующие сигналам STROBES, AUTOFEEDS и SELECTING, должны иметь нулевые значения. В противном случае программное вмешательство может нарушить последовательность квитирования. Некоторые адаптеры имеют специальные средства защиты (ЕРР Protect), при включении которых программная модификация этих бит блокируется.
Использование регистра данных ЕРР позволяет осуществлять передачу блока данных с помощью одной инструкции REP INSB или REP OUTSB вместо традиционных циклов с интенсивными операциями ввода/вывода. Некоторые адаптеры допускают и 16/32-битное обращение к регистру данных ЕРР. Тогда 16- или 32-битное обращение по адресу регистра данных ЕРР приведет к автоматической генерации двух или четырех шинных циклов по нарастающим адресам, начиная со смещения 4. Эти циклы будут выполняться быстрее, чем то же количество одиночных циклов. Таким образом при обмене данными и обеспечивается производительность, достигающая 2 Мбайт/с, вполне достаточная и для адаптеров локальных сетей, внешних дисков, стриммеров и CD-ROM. Адресные циклы БРР всегда выполняются только в однобайтном режиме обращения.
Важной чертой ЕРР является то, что обращение процессора к периферийному устройству осуществляется в реальном времени. Программный драйвер всегда способен наблюдать состояние и подавать команды в точно известные моменты времени. Циклы чтения и записи могут чередоваться в произвольном порядке или идти блоками. Такой тип обмена наиболее пригоден для регистро-ориентированной периферии или периферии, работающей в реальном времени — сетевых адаптеров, устройств сбора информации и управления, дисковых устройств и т. п.
Режим ЕСР
Протокол ЕСР (Extended Capability Port — порт с расширенными возможностями) был предложен фирмами Hewlett Packard и Microsoft как прогрессивный режим связи с периферией типа принтеров и сканеров. Как и ЕРР, данный протокол обеспечивает высокопроизводительный двунаправленный обмен данными хоста с периферийными устройствами.
Протокол ЕСР в обоих направлениях обеспечивает два типа циклов:
••• Циклы записи и чтения данных. Командные циклы записи и чтения.
Командные циклы подразделяются на два типа: передача канальных адресов и счетчика RLC (Run-Length Count).
В отличие от ЕРР вместе с протоколом ЕСР сразу появился и стандарт на программную (регистровую) модель реализации его адаптера, изложенный в документе «The IEEE 1284 Extended Capabilities Port Protocol and ISA Interface Standard» компании Microsoft. Этот документ определяет специфические свойства реализации протокола, не заданные стандартом IEEE 1284: компрессия данных хост-адаптером по методу RLE;
••• буферизация FIFO для прямого и обратного каналов: применение DMA и программного ввода/вывода.
Компрессия в реальном времени по методу RLE (Run-Length Encoding) позволяет достичь коэффициента сжатия до 64:1 при передаче растровых изображений.
Канальная адресация ЕСР применяется для адресации множества логических устройств, входящих в одно физическое. Например, в комбинированном устройстве факс/принтер/модем, подключаемом только к одному параллельному порту, возможен одновременный прием факса и печать на принтере.
Как и в других режимах 1284, протокол ЕСР переопределяет сигналы SPP (табл. 8).
Таблица 8.
Сигналы LPT-порта в режиме ввода/вывода ЕСР
Контакт
Сигнал SPP
Имя в ЕСР
I/O
Описание
1
STROBE»
HortClk
0
Используется в паре с PeriphAck для передачи в прямом направлении (вывод)
При использовании материалов активная ссылка на источник обязательна.