Режим ЕРР

в начало

Протокол ЕРР (Enhanced Parallel Port – улучшенный параллельный порт) был разработан задолго до принятия IEEE 1284 компаниями Intel, Xircom и Zenith Data Systems. Он предназначен для повышения производительности обмена по параллельному порту. ЕРР был реализован в чипсете Intel 386SL (микросхема 82360) и впоследствии принят множеством компаний как дополнительный протокол параллельного порта.

Протокол ЕРР обеспечивает четыре типа циклов обмена:

- Цикл записи данных.

- Цикл чтения данных.

- Цикл записи адреса.

- Цикл чтения адреса.

Назначение циклов записи и чтения данных ясно из их названия. Адресные циклы могут быть использованы для передачи адресной, канальной и управляющей информации. Циклы обмена данными явно отличаются от адресных циклов применяемыми стробирующими сигналами. Назначение сигналов порта EPP и их связь с сигналами SPP приведены в таблице 3.3.

 

Таблица 3.3. Сигналы порта в режиме ввода/вывода EPP

Контакт Сигнал SPP Имя в EPP I/O Описание
STROBE# WRITE# O Низкий уровень – признак цикл записи, высокий – чтения
AUTOFEEM# DATASTB# O Строб данных. Низкий уровень устанавливается в циклах передачи данных
SELECTING# ADDRSTB# O Строб адреса. Низкий уровень устанавливается в адресных циклах
INIT# RESET# O Сброс ПУ (низким уровнем)
ACK# INTR$ I Прерывание от ПУ
BUSY# WAIT# I Сигнал квитирования. Низкий уровень разрешает начало цикла (установку строба в низкий уровень), переход в высокий – разрешает завершение цикла (снятие)
2-9 D[8:0] AD[8:0] I/O Двунаправленная шина адреса/данных
PE AckDataReq I Используется по усмотрению разработчика периферии
SELECT Xflag I Используется по усмотрению разработчика периферии
ERROR# DataAvail# I Используется по усмотрению разработчика периферии

 

Цикл записи данных состоит из следующих фаз:

1) Программа выполняет цикл записи (IOWR#) в порт 4 (EPP Data Port).

2) Адаптер устанавливает сигнал Write# (низкий уровень), и данные помещаются на выходную шину LPT-порта.

3) При низком уровне WAIT# устанавливается строб данных.

4) Порт ждет подтверждения от ПУ (перевода WAIT# в высокий уровень).

5) Снимается строб данных – внешний цикл завершается.

6) Завершается процессорный цикл ввода/вывода.

7) ПУ устанавливает низкий уровень WAIT#, указывая на возможность начала следующего цикла (рисунок 3.2).

Рис.3.2. Временная диаграмма

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

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

С программной точки зрения контроллер ЕРР-порта выглядит достаточно просто, К трем регистрам стандартного порта, имеющим смещение 0, 1 и 2 относительно базового адреса порта, добавлены два регистра (ЕРР Address Port и EPP Data Port), чтение и запись в которые вызывает генерацию связанных внешних циклов.

Назначение регистров стандартного порта сохранено, что обеспечивает совместимость ЕРР-порта с периферийными устройствами и программным обес­печением, рассчитанными на применение программно-управляемого обмена.

ЕРР-порт имеет расширенный набор регистров (таблица 3.4), который занимает в пространстве ввода/вывода 5-8 смежных байт.

Таблица 3.4. Регистры ЕРР-порта

Имя регистра Смещение Режим 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 ЕРР R/W Регистр адреса ЕРР. Чтение или запись в него генерирует связанный цикл чтения или записи адреса ЕРР
EPP Data Port +4 ЕРР R/W Регистр данных ЕРР. Чтение (запись) генерирует связанный цикл чтения (записи) данных ЕРР
Not defined +5…+7 ЕРР N/A В некоторых контроллерах могут использоваться для 16-32-битных операций ввода/вывода

 

Таким образом, при обмене данными и обеспечивается производительность, достигающая 2 Мбайт/с, вполне достаточная и для адаптеров локальных сетей, внешних дисков, стримеров и CD-ROM. Адресные циклы ЕРР всегда выполняются только в однобайтном режиме обращения.

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