1.2.1 Традиционный LPT-порт
Традиционный, он же стандартный, LPT-порт называется стандартным параллельным портом (Standard Parallel Port, SPP), или SPP-портом, и является однонаправленным портом, через который программно реализуется протокол обмена Centronics. Название и назначение сигналов разъема порта (табл. 1.1) соответствуют интерфейсу Centronics.
Рисунок 1.1 - Схема цоколевки
Вилка (устанавливается на кабеле) |
Розетка (устанавливается на корпусе компьютера) |
|
Названия и функциональные назначения выводов
№ вывода |
Обозначение |
Описание |
|
1 |
/STROBE |
Strobe (Строб) |
|
2 |
D0 |
Data Bit 0 (данные, нулевой бит) |
|
3 |
D1 |
Data Bit 1 (данные, 1-й бит) |
|
4 |
D2 |
Data Bit 2 (данные, 2-й бит) |
|
5 |
D3 |
Data Bit 3 (данные, 3-й бит) |
|
6 |
D4 |
Data Bit 4 (данные, 4-й бит) |
|
7 |
D5 |
Data Bit 5 (данные, 5-й бит) |
|
8 |
D6 |
Data Bit 6 (данные, 6-й бит) |
|
9 |
D7 |
Data Bit 7 (данные, 7-й бит) |
|
10 |
/ACK |
Acknowledge (Подтверждение) |
|
11 |
BUSY |
Busy (Занято) |
|
12 |
PE |
Paper End (Нет бумаги) |
|
13 |
SEL |
Select (Выбор) |
|
14 |
/AUTOFD |
Autofeed (Перевод строки) |
|
15 |
/ERROR |
Error (Ошибка) |
|
16 |
/INIT |
Initialize (Инициализация) |
|
17 |
/SELIN |
Select In (Выбор) |
|
18 |
GND |
Signal Ground (Корпус) |
|
19 |
GND |
Signal Ground (Корпус) |
|
20 |
GND |
Signal Ground (Корпус) |
|
21 |
GND |
Signal Ground (Корпус) |
|
22 |
GND |
Signal Ground (Корпус) |
|
23 |
GND |
Signal Ground (Корпус) |
|
24 |
GND |
Signal Ground (Корпус) |
|
25 |
GND |
Signal Ground (Корпус) |
Рисунок 1.2 - Схема цоколевки параллельного порта на принтере (разъем Centronics)
Вилка (устанавливается на кабеле) |
Розетка (устанавливается на корпусе принтера) |
|
№ вывода |
Обозначение |
Описание |
|
1 |
/STROBE |
Strobe (Строб) |
|
2 |
D0 |
Data Bit 0 (данные, нулевой бит) |
|
3 |
D1 |
Data Bit 1 (данные, 1-й бит) |
|
4 |
D2 |
Data Bit 2 (данные, 2-й бит) |
|
5 |
D3 |
Data Bit 3 (данные, 3-й бит) |
|
6 |
D4 |
Data Bit 4 (данные, 4-й бит) |
|
7 |
D5 |
Data Bit 5 (данные, 5-й бит) |
|
8 |
D6 |
Data Bit 6 (данные, 6-й бит) |
|
9 |
D7 |
Data Bit 7 (данные, 7-й бит) |
|
10 |
/ACK |
Acknowledge (Подтверждение) |
|
11 |
BUSY |
Busy (Занято) |
|
12 |
PE |
Paper End (Нет бумаги) |
|
13 |
SEL |
Select (Выбор) |
|
14 |
/AUTOFD |
Auto feed (Перевод строки) |
|
15 |
n/c |
Не используется |
|
16 |
GND |
Signal ground (земля сигнала) |
|
17 |
GND |
Сhassis ground (корпус устройства) |
|
18 |
+5VDC |
Питание, +5V |
|
19-30 |
GND |
Ground (земля сигнала) |
|
31 |
/INIT |
Initialize (Инициализация) |
|
32 |
/ERROR |
Error (Ошибка) |
|
33 |
GND |
Ground (корпус) |
|
34 |
CLK |
Clock (синхросигнал) |
|
35 |
TEST |
Test (тест) |
|
36 |
/SELIN |
Select In (Выбор) |
Адаптер SPP-порта содержит три 8-битных регистра, расположенных по соседним адресам в пространстве ввода-вывода, начиная с базового адреса порта BASE (3BCh, 378h или 278h).
Data Register (DR) -- регистр данных, адрес=ВА5Е. Данные, записанные в этот регистр, выводятся на выходные линии Data[7:0]. Данные, считанные из этого регистра, в зависимости от схемотехники адаптера соответствуют либо ранее записанным данным, либо сигналам на тех же линиях, что не всегда одно и то же. Status Register (SR) -- регистр состояния (только чтение), адрес=ВА5Е+1. Регистр отображает 5-битный порт ввода сигналов состояния принтера (биты SR.4-SR.7) и флаг прерывания. Бит SR. 7 инвертируется -- низкому уровню сигнала соответствует единичное значению бита в регистре, и наоборот.
Control Register (СR) -- регистр управления, адрес=ВА5Е+2, допускает запись и чтение. Регистр связан с 4-битным портом вывода управляющих сигналов (биты 0-3) для которых возможно и чтение; выходной буфер обычно имеет тип "открытый коллектор". Это позволяет корректно использовать линии данного регистра как входные при программировании их в высокий уровень. Биты 0,1,3 инвертируются.
Запрос аппаратного прерывания (обычно IRQ7 или IRQ5) вырабатывается по отрицательному перепаду сигнала на выводе 10 разъема интерфейса (Ack#) при установке CR. 4=1. Во избежание ложных прерываний контакт 10 соединен резистором с шиной +5 В. Прерывание вырабатывается, когда принтер подтверждает прием предыдущего байта. Как уже было сказано, BIOS это прерывание не использует и не обслуживает.
Перечислим шаги процедуры вывода байта по интерфейсу Centronics с указанием требуемого количества шинных операций процессора.
Вывод байта в регистр данных (1 цикл IOWR#).
Ввод из регистра состояния и проверка готовности устройства (бит SR. 7 -- сигнал Busy). Этот шаг зацикливается до получения готовности или до срабатывания программного тайм-аута (минимум 1 цикл IORD#).
По получению готовности выводом в регистр управления устанавливается строб данных, а следующим выводом строб снимается. Обычно, чтобы пере ключить только один бит (строб), регистр управления предварительно считывается, что к двум циклам IOWR# добавляет еще один цикл IORD#.
Видно, что для вывода одного байта требуется 4-5 операций ввода-вывода с регистрами порта (в лучшем случае, когда готовность обнаружена по первому чтению регистра состояния). Отсюда вытекает главный недостаток вывода через стандартный порт -- невысокая скорость обмена при значительной загрузке процессора. Порт удается разогнать до скоростей 100-150 Кбайт/с при полной загрузке процессора, что недостаточно для печати на лазерном принтере. Другой недостаток функциональный -- сложность использования в качестве порта ввода.
Стандартный порт асимметричен -- при наличии 12 линий (и бит), нормально работающих на вывод, на ввод работает только 5 линий состояния. Если необходима симметричная двунаправленная связь, на всех стандартных портах работоспособен режим полубайтного обмена -- Nibble Mode. В этом режиме, называемом также Hewlett Packard Bi-tronics, одновременно принимаются 4 бита данных, пятая линия используется для квитирования. Таким образом, каждый байт передается за два цикла, а каждый цикл требует по крайней мере 5 операций ввода-вывода.
Схемотехника выходных буферов данных LPT-портов отличается большим разнообразием. На многих старых моделях адаптеров SPP-порт данных можно использовать и для организации ввода. Если в порт данных записать байт с единицами во всех разрядах, а на выходные линии интерфейса через микросхемы с выходом типа "открытый коллектор" подать какой-либо код (или соединить ключами какие-то линии со схемной землей), то этот код может быть считан из того же регистра данных. Однако выходным цепям передатчика информации придется "бороться" с выходным током логической единицы выходных буферов адаптера. Схемотехника ТТЛ такие решения не запрещает, но если внешнее устройство выполнено на микросхемах КМОП, их мощности может не хватить для "победы" в этом шинном конфликте. Однако современные адаптеры часто имеют в выходной цепи согласующий резистор с сопротивлением до 50 Ом. Выходной ток короткого замыкания выхода на землю обычно не превышает 30 мА. Простой расчет показывает, что даже в случае короткого замыкания контакта разъема на землю при выводе "единицы" на этом резисторе падает напряжение 1,5 В, что входной схемой приемника будет воспринято как "единица". Поэтому нельзя полагать, что такой способ ввода будет работать на всех компьютерах. На некоторых старых адаптерах портов выходной буфер отключается перемычкой на плате. Тогда порт превращается в обыкновенный порт ввода.
- ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, tЕДИНИЦ, СОКРАЩЕНИЙ И ТЕРМИНОВ
- ВВЕДЕНИЕ
- 1. АНАЛИЗ ИНТЕРФЕЙСОВ ВВОДА-ВЫВОДА КОМПЬЮТЕРНЫХ СИСТЕМ
- 1.1 Основные свойства интерфейсов
- 1.2 Параллельный интерфейс -- LPT-порт
- 1.2.1 Традиционный LPT-порт
- 1.2.2 Физический и электрический интерфейсы
- 1.2.3 Системная поддержка LPT-порта
- 1.2.4 Применение LPT-порта
- 1.2.5 Конфигурирование LPT-портов
- 1.3 Последовательный интерфейс -- СОМ-порт
- 1.3.1 Интерфейс RS-232C
- 1.3.2 Родственные интерфейсы и преобразователи уровней