- •Обзор интерфейса Centronics
- •Назначение бит регистра состояния
- •Назначение бит регистра управления:
- •Режимы работы параллельного порта
- •Режим spp работы параллельного порта
- •Полубайтный режим ввода NibbleMode
- •Двунаправленный байтный режим - Byte Mode
- •Режим ерр
- •Режим еср
- •Режимы еср-порта
- •Согласование режимов ieee 1284
- •Электрические характеристики lpt порта
Режим ерр
Протокол ЕРР (Enhanced Parallel Port — улучшенный параллельный порт) предназначен для повышения производительности обмена по параллельному порту.
Протокол ЕРР обеспечивает четыре типа циклов обмена:
запись данных;
чтение данных;
запись адреса;
чтение адреса.
Назначение циклов записи и чтения данных очевидно. Адресные циклы используются для передачи адресной, канальной и управляющей информации. Циклы обмена данными отличаются от адресных циклов применяемыми стробирующими сигналами.
Сигналы LPT порта в режиме ввода/вывода EPP |
||||
Контакт |
Сигнал SPP |
Имя в EPP |
I/O |
Описание |
1 |
Strobe |
Write |
O |
Низкий уровень — цикл записи, высокий — цикл чтения |
14 |
AutoLF |
DataStb |
O |
Строб данных. Низкий уровень устанавливается в циклах передачи данных |
17 |
Selectln |
AddrStb |
O |
Строб адреса Низкий уровень устанавливается в адресных циклах |
16 |
init |
Reset |
O |
Сброс ПУ (низким уровнем) |
10 |
Ack |
INTR |
I |
Прерывание от ПУ |
11 |
Busy |
Wait |
I |
Сигнал квитирования Низкий уровень разрешает начало цикла (установку строба в низкий уровень), переход в высокий — разрешает завершение цикла (снятие строба) |
12 |
PaperEnd |
AckDataReq |
I |
Используется по усмотрению разработчика периферии |
13 |
Select |
Xflag |
I |
Используется по усмотрению разработчика периферии |
15 |
Error |
DataAvail |
I |
Используется по усмотрению разработчика периферии |
2-9 |
Data [0:7] |
Data [0:7] |
I/O |
Двунаправленная шина адреса/данных |
ЕРР-порт имеет расширенный набор регистров, который занимает в пространстве ввода/вывода 5-8 смежных байт.
Регистры EPP порта |
||||
Имя регистра |
Смещение |
Режим |
R/W |
Описание |
SPP Data Port |
+0 |
SPP/EPP |
W |
Регистр данных SPP |
SPP Status Port |
+1 |
SPP/EPP |
R |
Регистр состояния SPP |
SPP Control Port |
+2 |
SPP/EPP |
W |
Регистр управления SPP |
EPP Address Port |
+4 |
EPP |
R/W |
Регистр данных ЕРР. Чтение (запись) генерирует связанный цикл чтения (записи) данных ЕРР |
Not Defined |
Ack |
INTR |
I |
Прерывание от ПУ |
В отличие от программно-управляемых режимов, описанных ранее, внешние сигналы ЕРР-порта для каждого цикла обмена формируются аппаратно по одной операции записи или чтения в регистр порта. Адресный цикл записи отличается от цикла данных только стробом внешнего интерфейса.
Цикл записи данных ЕРР |
|
Цикл записи данных состоит из следующих фаз:
Программа выполняет цикл вывода (IOWR) в порт 4 (ЕРР Data Port).
Адаптер устанавливает сигнал Write (низкий уровень), и данные помещаются на выходную шину LPT-порта.
При низком уровне Wait устанавливается строб данных.
Порт ждет подтверждения от ПУ (перевода Wait в высокий уровень).
Снимается строб данных — внешний ЕРР-цикл завершается.
Завершается процессорный цикл вывода.
ПУ устанавливает низкий уровень Wait, указывая на возможность начала следующего цикла.
Цикл чтения данных отличается только применением другого стробирующего сигнала.
Адресный цикл чтения ЕРР |
|
Главной отличительной чертой ЕРР является выполнение внешней передачи во время одного процессорного цикла ввода/вывода. Это позволяет достигать высоких скоростей обмена (0,5...2 Мбайт/с). ПУ, подключенное к параллельному порту ЕРР, может работать со скоростью устройства, подключаемого через слот ISA.
Протокол блокированного квитирования (interlocked handshakes) позволяет автоматически настраиваться на скорость обмена, доступную и хосту, и ПУ. ПУ может регулировать длительность всех фаз обмена с помощью всего лишь одного сигнала Wait. Протокол автоматически подстраивается под длину кабеля — вносимые задержки приведут только к удлинению цикла. Поскольку кабели, соответствующие IEEE 1284, имеют одинаковые волновые свойства для разных линий, нарушения передачи, связанного с «состязаниями» сигналов, происходить не должно. При подключении сетевых адаптеров или внешних дисков к ЕРР-порту можно наблюдать непривычное явление: снижение производительности по мере удлинения интерфейсного кабеля.
Естественно, ПУ не должно «подвешивать» процессор на шинном цикле обмена Это гарантирует механизм тайм-аутов PC, который принудительно завершает любой цикл обмена, длящийся более 15 мкс. В ряде реализаций ЕРР за тайм-аутом интерфейса следит сам адаптер — если ПУ не отвечает в течение определенного времени (5 мкс), цикл прекращается и в дополнительном (не стандартизованном) регистре состояния адаптера фиксируется ошибка.
Устройства с интерфейсом ЕРР, разработанные до принятия IEEE 1284, отличаются началом цикла: строб DataStb или AddrStb устанавливается независимо от состояния WAIT. Это означает, что ПУ не может задержать начало следующего цикла (хотя может растянуть его на требуемое время).
Адресные циклы ЕРР всегда выполняются только в однобайтном режиме.
Важной чертой ЕРР является то, что обращение процессора к ПУ осуществляется в реальном времени — нет буферизации. Драйвер способен отслеживать состояние и подавать команды в точно известные моменты времени. Циклы чтения и записи могут чередоваться в произвольном порядке или идти блоками.
