
Лабораторная работа
Исследование параллельного интерфейса (LPT-порта)
Цель работы: Изучить назначение, условия совместимости и исследовать режимы работы параллельного интерфейса в составе IBM PC совместимых компьютеров.
Назначение: Порт параллельного интнерфейса первоначально был введен в РС для работы ( подключения ) с принтером , отсюда и пошло название LPT порт ( Line Printer – построчный принтер) . В настоящее время , LPT - порт используется и для других целей , например , подключения лазерных принтеров . Кроме того , функции адаптера порта расширены и он может реализовывать и двусторонний обмен данными.
Стандартный (традиционный ) LPT-порт.
Традиционный порт SPP ( Standart Parallel Port) является однонаправленным портом , на базе которого программно реализуется протокол обмена Centronics (назначение сигналов и временную диаграмму обмена, см. лабораторную работу « Исследование печатающих устройств »).
Стандартный порт имеет три 8-битовых регистра расположенных по соедним адресам в пространстве ввода /вывода , начиная с базового адреса порта (BASE) .
Регистр данных ( Date Registr – DR ), адрес = BASE . Данные записанные в этот порт, выводятся на выходные линии интерфейса . Если в порт записать байт с единицами во всех разрядах , а на выходные линии интерфейса через микросхемы типа «открытый коллектор » подать какой – либо код, то этот код может быть считан из этого же регистра данных .
Регистр состояния ( Status Rgistr- SR) , адрес = BASE+1.
Представляет собой порт ввода сигналов состояния принтера.Назначение бит регистра состояния
( в скобках указаны номера контактов разъема DB– 25 S ):
SR.7 – Busy – инверсное отображение состояния линии – Busy (11) : при низком уровне на линии устанавливается единичое значение бита- разрешение на вывод очередного байта;
SR.6 – АСК ( Acknowllolge) – отображение состояния линии Ack # 10.
SR.5 – РЕ (Paper End)- отображение состояния линии Paper End (12). Единичное значение соответствует высокому уровню линии- сигналу о конце бумаги в принтере ;
SR.4- Select – отображение состояния линии Select (13) . Единичное значение соответствует высокому уровню линии- сигналу о включении принтера ;
SR.3- Eeror - отображение состояния линии Error (15). Нулевое значение соответствует низкому уровню линии- сигналу о любой ошибке принтера;
SR.2- PIRQ- флаг прерывания по сигналу Аск # ( только для порта PS/ 2) . Бит обнуляется , если сигнал Аск # вызвал аппаратное прерывание . Единичное значение устанавливается по аппаратному сбросу и после чтения регистра состояния;
SR[1:0] – зарезервированы .
Control Registre ( CR) – регистр управления , , адрес = BASE+2. Как и регистр данных , этот порт вывода допускает запись и чтение (биты 0-3) , но его выходной буфер обычно имеет тип « открытый коллектор» . Это позволяет более корректно использовать линии регистра как выходные
при программировании их в высокий уровень . Биты 0,1,3 инвертируются –единичному значению в регистре соответствует низкий уровень сигнала , и наоборот .
Назначение бит регистра управления :
CR [7:6] –зарезервированы ;
CR5 - Direction –бит управления направление передачи ( только портов PS/2).Запись «1» переводит порт данных в режим ввода . При чтениии состоянию бита не определено;
CR 4- ACKINTEN ( Ack Interrupt Enable ) – единичное значение разрешает прерывание по спаду сигнала на линии Ack # -сигнал запроса следующего байта ;
CR 3 – Select In – единичное значение бита соответствует низкому уровню на выходе Select In # (17) – сигналу , разрешающему работу принтера по интерфейсу Centronics;
CR 2- Inits- нулевое значение бита соответствует низкому уровню на выходе Init # (16) – сигнал аппаратного сброса принтера .
CR 1- Auto LF – единичное значение бита соответствует низкому уровню на выходе Auto LF #( 14) – сигналу на автоматический перевод строки ( LF – Line Feed ) по приему байта возврата каретки ( СR – Carriage Return );
CR 0 – Stroble – единичное значение бита соответствует низкому уровню на выходе Stroble # (1) – сигналу стробирования выходных данных.
Запрос аппаратного прерывания (обычно IRQ5или IRQ7 ) вырабатывается по отрицательному перепаду Ack # (10) при установке CR.4 = 1 . Во избежание ложных прерываний контакт 10 соединен резистором с шиной +5 в . Прерывание вырабатывается , когда принтер подтверждает прием предыдущего байта. BIOS это прерывание не использует и его не обслуживает . В таблице 1 приведены разъемы стандартного LPT- порта , сигналы на них и направления передачи .
Таблица 1. Разъемы стандартного LPT-порта.
Контакт DB- 25 S |
Провод шлейфа |
Назначение
|
Доступность |
||
|
|
I/0 * |
Red. Bit ** |
Сигнал |
|
1 |
1 |
0/I |
CR:0\ |
Strobe # |
|
2 |
3 |
0(I) |
DR:0 |
Data 0 |
|
3 |
5 |
0(I) |
DR:1 |
Data 1 |
|
4 |
7 |
0(I) |
DR:2 |
Data 2 |
|
5 |
9 |
0(I) |
DR:3 |
Data 3 |
|
6 |
11 |
0(I) |
DR:4 |
Data 4 |
|
7 |
13 |
0(I) |
DR:5 |
Data 5 |
|
8 |
15 |
0(I) |
DR:6 |
Data 6 |
|
9 |
17 |
0(I) |
DR:7 |
Data 7 |
|
10 |
19 |
I*** |
SR:6 |
Ack # |
|
11 |
21 |
I |
SR:7\ |
Busy |
|
12 |
23 |
I |
SR:5 |
Paper End |
|
13 |
25 |
I |
SR:4 |
Select |
|
14 |
2 |
0/I |
CR:1\ |
Auto LF # |
|
15 |
4 |
I |
SR:3 |
Error # |
|
16 |
6 |
0/I |
CR:2 |
Init # |
|
17 |
8 |
0/I |
CR : 3\ |
Select In # |
|
18-25 |
10,12,14,16 |
18,20,22,24,26 |
----- |
------ |
|
*-I/0 задает направление передачи (вход/выход ) сигнала порта. I/0 обозначает выходные линии , состояние которых считывается при чтении из соответствующих портов вывода ; 0 (І) – выходные линии , состояние которых может быть считано только при некоторых условиях ;
** Символом \ отмечены инвертированные сигналы ( «1» соответствует низкому уровню линии );
*** Вход Ack # соединен регистером 10 к ОМ с питанием +5 В .
Недостатки стандартного порта :
для вывода одного байта требуется по меньшей мере 4-5 операций ввода/ вывода с регистрами порта ;
невысокая скорость обмена при значительной загрузке процессора ( скорость до 100-150 К байт/ с при полной загрузке процессора ) ;
функциональная сложность использования в качестве порта ввода данных ;
Стандартный порт сильно асимметричен при наличии 12 линий ( и бит) , работающих на вывод ,на ввод работает только 5 линий состояния , что затрудняет реализацию симметричной двусторонней связи. Поэтому на всех стандартных портах работоспособен режим полубайтного обмена ( ввода) .
Функции bios для lpt- порта.
BIOS обеспечивает поддержку LPT- порта , необходимую для организации вывода по интерфейсу Centronics.
Программное прерывание BIOS INT 17h обеспечивает следующие функции поддержки LPT- порта:
00h-вывод символа из регистра AL по протоколу Centronics ( без аппаратных прерываний) .
Данные помещаются в выходной регистр (DR) , и, дождавшись готовности принтера ( снятия сигнала BUSY ), формируется строб.
01h- инициализация интерфейса и принтера ( установка исходных уровней управляющих сигналов , формирование импульса Init # , запрет аппаратных прерываний и переключение на вывод двунаправленного интерфейса );
02h-опрос состояния принтера ( чтение регистра SR порта) .
При вызове INT 17 h номер функции задается в регистре АН , номер порта в регистре DX (0-LPT1,1-LPT2…). При возврате после любой функции регистр АН содержит код состояния – биты регистра состояния SR [7:3] ( биты 6 и 3 инвертированы ) и флаг тайм-аута в бите 0.Флаг тайм –аута устанавливается при неудачной попытке вывода символа , если сигнал BUSY не снимается в течении времени , определяемого для данного порта содержимым ячеек 0: 478 , 479, 047 А,047В ВIOS DATA AREA. В этом случае согласно протоколу Centronics, строб данных не вырабатывается .
Расширения параллельного порта , стандарт ieee 1284 –1994.
Недостатки стандартного порта частично устраняли новые типы портов , появившихся в компьютерах семейства PS/2- это в частности двунаправленный порт , порт с прямым доступом к памяти и другие .
Все расширения были обобщены и оформлены в виде стандарта на параллельный интерфейс IEEE 1284 , принятый в 1994 году .Стандарт определяет термины SPP , EPP ECP, определяет 5 режимов обмена данными , метод согласования режима , физический и электрический интерфейсы.
Согласно IЕEE1284 , возможны следующие режимы обмена данными через параллельный порт:
-Contratibility Mode- однонаправленный ( вывод) по протоколу Centronics . Этот режим соответствует стандартному ( традиционному ) проту SPP.
-Nibble Mode – ввод байта в два цикла ( по 4 бита ) используя для приема линии состояния. Этот режим может использоваться на любых адаптерах ;
- Byte Mode - ввод байта целиком , используя для приема линии данных . Этот режим используется на портах допускающих чтение выходных данных ( Bi – Directional или PS/2 Type 1)
- EPP ( Enhanced Parallel Port Mode) – двунаправленный обмен данными , при котором управляющие сигналы интерфейса генерируются аппаратно во время цикла обращения к порту ( чтения или записи в порт). Эффективен при работе с устройствами внешней памяти , адаптерами локальных сетей ;
- ECP ( Extended Capability Port) Mode – двунаправленный обмен данными с возможностью аппаратного сжатия данных по методу RLE (Run Length Encoding) и использования FIFO –буфера и DMA . Управляющие сигналы генерируются аппаратно . Эффективен для принтеров и сканеров .
В современных АТ-машинах с LPT-портом на системной плате режим порта –SPP , EPP, ECP или их комбинации задаются в BIOS Setup. Режим Compatibilitu Mode полностью соответствует стандартному порту SPP .