Интерфейсы ПК

       

Адресный цикл чтения ЕРР


Рисунок 1.6. Адресный цикл чтения ЕРР

Главной отличительной чертой ЕРР является выполнение внешней передачи во время одного процессорного цикла вво-

да/вывода. Это позволяет достигать высоких скоростей об- мена (0,5...2 Мбайт/с). ПУ, подключенное к параллельному порту ЕРР, может работать со скоростью устройства, под- ключаемого через слот ISA. Протокол блокированного кви- тирования (interlocked handshakes) позволяет автоматичес- ки настраиваться на скорость обмена, доступную и хосту, и ПУ. ПУ может регулировать длительность всех фаз обмена с помощью всего лишь одного сигнала Wait#. Протокол ав- томатически подстраивается под длину кабеля - вносимые задержки приведут только к удлинению цикла. Поскольку кабели, соответствующие IEEE 1284 (см. выше), имеют оди- наковые волновые свойства для разных линий, нарушения передачи, связанного с "состязаниями" сигналов, происхо- дить не должно. При подключении сетевых адаптеров или внешних дисков к ЈPP-nopTy можно наблюдать непривыч- ное явление: снижение производительности по мере удли- нения интерфейсного кабеля.

Естественно, ПУ не должно "подвешивать" процессор на шинном цикле обмена. Это гарантирует механизм тайм-аутов PC, который принудительно завершает любой цикл обмена, длящийся более 15 мкс. В ряде реализации ЕРР за тайм-аутом интерфейса следит сам адаптер - если ПУ не отвечает в те- чение определенного времени (5 мкс), цикл прекращается и в дополнительном (не стандартизованном) регистре состоя- ния адаптера фиксируется ошибка.

Устройства с интерфейсом ЕРР, разработанные до принятия IEEE 1284, отличаются началом цикла: строб DataStb# или AddrStb# устанавливается независимо от состояния WAIT#. Это означает, что ПУ не может задержать начало следующе- го цикла (хотя может растянуть его на требуемое время). Такая спецификация называется ЕРР 1.7 (предложена Xircom). Именно она применялась в контроллере 82360. Периферия, совместимая с ЕРР 17, будет нормально рабо- тать и с контроллером ЕРР 1284, но периферия в стандарте ЕРР 1284 может отказаться работать с контроллером ЕРР 1.7.


С программной точки зрения контроллер ЯРР-порта выгля- дит просто (см. табл. 1.7). К трем регистрам стандартного порта, имеющим смещение 0, 1 и 2 относительно базового

адреса порта, добавлены два регистра (ЕРР Address Port и ЕРР Data Port), чтение и запись в которые вызывает генера- цию связанных внешних циклов.

Назначение регистров стандартного порта сохранено для со- вместимости fPP-порта с ПУ и ПО, рассчитанными на при- менение программно-управляемого обмена. Поскольку сиг- налы квитирования адаптером вырабатываются аппаратно, при записи в регистр управления СП биты 0, 1 и 3, соответ- ствующие сигналам Strobeft, AutoFeed# и Selecting должны иметь нулевые значения. Программное вмешательство мог- ло бы нарушить последовательность квитирования. Некото- рые адаптеры имеют специальные средства защиты (ЕРР Protect), при включении которых программная модифика- ция этих бит блокируется.

Использование регистра данных ЕРР позволяет осуществлять передачу блока данных с помощью одной инструкции REP INSB или REP OUTSB. Некоторые адаптеры допускают 16-/ 32-битное обращение к регистру данных ЕРР. При этом адап- тер просто дешифрует адрес со смещением в диапазоне 4-7 как адрес регистра данных ЕРР, но процессору сообщает о раз- рядности 8 бит. Тогда 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 при передаче растровых изображений, которые имеют длинные строки повторяющихся байт. Компрессию можно использо- вать, только если ее поддерживает и хост, и ПУ.

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

Протокол ЕСР переопределяет сигналы SPP (табл. 1.8).



Контакт

Сигнал SPP

Имя в ЕСР

I/O

Описание

1

Strobe"

HostClk

0

Используется в паре с PeriphAck для передачи в прямом направлении (вывод)

14

AutoLF#

HostAck

о

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

17

Selecting

1284Active

о

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

16

lnit#

о

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

ReverseRequest*

10

Ack#

PeriphQk

1

Используется в паре с HostAck для передачи в обратном направлении

11

Busy

PeriphAck

I

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

12

PaperEnd

AckReverse#

I

Переводится в низкий уровень как подтверж- дение сигналу ReverseRequest#

13

Select

Xflag*

I

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

15

Error#

PeriphRequest#*

I

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

2-9

Data [0:7]

Data [0:7]

I/O

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

* Сигналы действуют в последовательности согласования (см. далее).

Адаптер ЕСР тоже генерирует внешние протокольные сиг- налы квитирования аппаратно, но его работа существенно отличается от режима ЕРР.

На Рисунок 1.7а приведена диаграмма двух циклов прямой пе- редачи: за циклом данных следует командный цикл. Тип цлкла задается уровнем на линии HostAck: в цикле данных - вы- сокий, в командном цикле - низкий. В командном цикле байт может содержать канальный адрес или счетчик RLE. Отли- чительным признаком является бит 7 (старший): если он нулевой, то биты 0-6 содержат счетчик RLE (0-127), если единичный - то канальный адрес. На Рисунок 1.76 показана пара циклов обратной передачи.


Содержание раздела