Полубайтный режим ввода — Nibble Mode

Режим полубайтного обмена является наиболее общим решением задачи двунаправленного обмена данными, поскольку может работать на всех стандартных (традиционных) портах. Все эти порты имеют 5 линий ввода состояния, используя которые периферийное устройство может посылать в PC байт тетрадами (nibble — полубайт, 4 бита) за два приема. Назначение сигналов порта приведено в табл 4.

Таблица 4.

Сигналы LPT-порта в полубайтном режиме ввода

 

Контакт Сигнал SPP I/O Использование сигнала при приеме данных в Nibble Mode
AUTOFEED# HostBusy — сигнал квитирования. Низкий уровень означает готов­ность к приему тетрады, высокий подтверждает прием тетрады
SELECTIN» Высокий уровень указывает на обмен в режиме IEEE 1284 (в режиме SPP уровень низкий)
АСК# ' PtrClk. Низкий уровень означает действительность тетрады, переход в высокий — ответ на сигнал HostBusy
BUSY I Прием бита данных 3, затем бита 7
РЕ I Прием бита данных 2, затем бита 6
SELECT I Прием бита данных 1, затем бита 5
ERRORS I Прием бита данных 0, затем бита 4

Прием байта данных в полубайтном режиме состоит из следующих фаз:

1. Хост сигнализирует о готовности приема данных установкой низкого уровня на линии HostBusy.

2. ПУ в ответ помещает тетраду на входные линии состояния.

3. ПУ сигнализирует о действительности тетрады установкой низкого уровня на линии PtrClk.

4. Хост устанавливает высокий уровень на линии HostBusy, указывая на заня­тость приемом и обработкой тетрады.

5. ПУ отвечает установкой высокого уровня на линии PtrCLk.

6. Шаги 1-5 повторяются для второй тетрады.

Полубайтный режим работает на всех портах со скоростью обмена не выше 50 Кбайт/с. Его применяют в тех случаях, когда прием данных от устройства производится в небольших объемах (например, для связи с принтерами).

Двунаправленный байтный режим Byte Mode

Данный режим обеспечивает прием данных с использованием двунаправленного порта, у которого выходной буфер данных может отключаться установкой бита CR.5=1. Как и в стандартном и в полубайтном режиме, данный режим является программно-управляемым — все сигналы квитирования анализируются и устанавливаются программным драйвером. Назначение сигналов порта приведено в табл. 5.

Таблица 5.

Сигналы LPT-порта в байтном режиме ввода/вывода

Контакт Сигнал SPP Имя в Byte Mode I/O Описание
STROBES HostClk Импульс (низкого уровня) подтверждает прием байта в конце каждого цикла
AUTOFEED# HostBusy Сигнал квитирования. Низкий уровень означает готовность хоста принять байт, высокий уровень устанавливается по приему байта
SELECT-IN» 1284Active Высокий уровень указывает на обмен в режиме IEEE 1284. (В режиме SPP уровень низкий)
INIT# INIT# Не используется, установлен высокий уровень
АСКй Ptrtik     Устанавливается в низкий уровень для инди­кации действительности данных на линиях DATA[7:0]. В низкий уровень устанавливается в ответ на сигнал HostBusy
BUSY PtrBusy I Состояние занятости прямого канала
РЕ AckDataReq* I Устанавливается ПУ для указания на наличие обратного канала передачи*
SELECT Xflag* I Флаг расширяемости*
ERRORS DataAvau#* I Устанавливается ПУ для указания на наличие обратного канала передачи*
2-9 DATA[7:0] DATA[7:0] I/0 Двунаправленный (прямой и обратный) канал данных

 

Прием байта данных в байтном режиме состоит из следующих фаз:

1. Хост сигнализирует о готовности приема данных установкой низкого уровня на линии HostBusy.

2. ПУ в ответ помещает байт данных на линии DATA[7:0].

3. ПУ сигнализирует о действительности байта установкой низкого уровня на линии PtrClk.

4. Хост устанавливает высокий уровень на линии HostBusy, указывая на занятость приемом и обработкой байта.

5. ПУ отвечает установкой высокого уровня на линии PtrClk.

6. Хост подтверждает прием байта импульсом HostClk.

7. Шаги 1-6 повторяются для каждого следующего байта.

Побайтный режим позволяет поднять скорость обратного канала до скорости прямого канала в стандартном режиме. Однако работать он может только на двунаправленных портах, которые применяются в основном лишь на малораспространенных машинах PS/2.

Режим ЕРР

Протокол ЕРР (Enhanced Parallel Port — улучшенный параллельный порт) предназначен для повышения производительности обмена по параллельному порту. ЕРР был реализован в чипсете Intel 386SL (микросхема 82360) и используется как дополнительный протокол параллельного порта.

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

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

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

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

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

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

Таблица 6.

Сигналы LPT-порта в режиме ввода/вывода ЕРР

 

Контакт Сигнал SPP Имя в ЕРР I/O Описание
STROBE» WRITE» Низкий уровень — признак цикла записи, высокий — чтения
AUTOFEEDff DATASTB# Строб данных. Низкий уровень устанавливается в циклах передачи данных
SELECTING ADDRSTB# Строб адреса. Низкий уровень устанавливается в адресных циклах
INIT# RESETS Сброс ПУ (низким уровнем)
Контакт Сигнал SPP Имя в ЕРР I/O Описание
АСК# INTR# I Прерывание от ПУ
BUSY WAIT» I Сигнал квитирования. Низкий уровень разрешает начало цикла (установку строба в низкий уровень), переход в высокий — разрешает завершение цикла (снятие строба)
2-9 D[8:0] AD[8:0] I/O Двунаправленная шина адреса/данных
РЕ AckDataReq* I Используется по усмотрению разработчика перифе­рии
SELECT Xflag* I Используется по усмотрению разработчика перифе­рии
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-битных операций ввода/вывода

 

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

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

«ЗАВИСАНИЕ» процессора на шинном цикле обмена препятствует механизм тайм-аутов PC, который принудительно завершает любой цикл обмена, длящийся более 15 мкс.

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

Назначение регистров стандартного порта сохранено, что обеспечивает совместимость ЕРР-порта с периферийными устройствами и программным обеспечением, рассчитанными на применение программно-управляемого обмена. Поскольку сигналы квитирования адаптером вырабатываются аппаратно, при записи в регистр управления CR биты 0, 1 и 3, соответствующие сигналам STROBES, AUTOFEEDS и SELECTING, должны иметь нулевые значения. В противном случае программное вмешательство может нарушить последовательность квитирования. Некоторые адаптеры имеют специальные средства защиты (ЕРР Protect), при включении которых программная модификация этих бит блокируется.