Параллельный интерфейс – LPT-порт
ЛАБОРАТОРНАЯ РАБОТА АО-6
ВНЕШНИЕ ИНТЕРФЕЙСЫ ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА
Цель занятия
Освоение принципов организации внешних интерфейсов ПЭВМ
Краткие теоретические сведения
Внешние интерфейсы компьютера предназначены для организации взаимодействия (ввода-вывода) периферийных устройств и ПЭВМ. В зависимости от принципа, используемого при передаче данных, различают параллельные и последовательные интерфейсы. Рассмотрим наиболее используемые и важные из них.
Параллельный интерфейс – LPT-порт
Порт параллельного интерфейса был введен в ПЭВМ для подключения принтера. Отсюда и пошло его название – LPT (англ. «Line Printer Terminal» – порт построчного принтера). Традиционный, он же стандартный, LPT –порт ориентирован на вывод данных, хотя с некоторыми ограничениями позволяет и вводить данные.
С внешней стороны порт имеет 8-разрядную шину данных, 5-разрядную шину сигналов состояния и 4-разрядную шину управляющих сигналов, выведенные на разъем-розетку DB-25S. В LPT-порте используются логические уровни ТТЛ, что ограничивает допустимую длину кабеля из-за невысокой помехозащищенности. Гальваническая развязка отсутствует – схемная общая шина устройства подключаемого устройства соединяется со схемной общей шиной компьютера. Из-за этого порт является уязвимым местом компьютера, страдающим при нарушении правил подключения и заземления устройств.
С программной стороны LPT-порт представляет собой набор регистров, расположенных в адресном пространстве ввода-вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются 3BCh, 378h, 278h. Порт может использовать линию запроса аппаратного прерывания, обычно IRQ7 или IRQ5.
Традиционный LPT-порт называется стандартным параллельным портом (англ. «Standard Parallel Port», SPP). Наименование сигналов порта и их назначение соответствуют интерфейсу Centronics, для которого и вводился данный порт.
Адаптер SPP-порта содержит три 8-разрядных регистра, расположенных по соседним адресам в пространстве ввода-вывода, начиная с базового адреса порта BASE (3BCh, 378h, или 278h).
Регистр данных (Data Register, DR), адрес=BASE. Данные, записанные в этот регистр, выводятся на выходные линии Data [7:0]. Данные, считанные из этого регистра, в зависимости от схемотехники адаптера, соответствуют либо ранее записанным данным, либо сигналам на тех же линиях, что не всегда одно и то же.
Регистр состояния (Status Register, SR), предназначен только для чтения, адрес=BASE+1. Регистр отображает 5-разрядный порт ввода сигналов состояния и флаг прерывания (SR.2).
Регистр управления (Control Register, CR), адрес=BASE+2, допускает запись и чтение. Регистр связан с 4-битным портом вывода управляющих сигналов, для которых возможно и чтение; выходной буфер обычно имеет тип «открытый коллектор». Это позволяет корректно использовать линии данного регистра как входные при программировании их в высокий уровень.
Любые протоколы обмена с устройствами через стандартный LPT‑порт реализуются программно, чтением и записью регистров порта. Например, для вывода одного байта по протоколу Centronics требуется как минимум 4-5 операций ввода-вывода с регистрами порта. Отсюда вытекает главный недостаток обмена через стандартный порт – невысокая скорость при значительной загрузке процессора. Порт удается разогнать до скоростей 100 – 150 Кбайт/с при полной загрузке процессора.
Другой недостаток – неудобство использования LPT-порта в качестве порта ввода. Стандартный порт асимметричен – при наличии 12 линий (и бит) нормально работающих на вывод, на ввод работает только 5 линий состояния. Если необходим ввод данных, на всех стандартных портах работоспособен режим полубайтного обмена (англ. «Nibble Mode»). В этом режиме одновременно принимаются 4 бита данных, пятая линия используется для квитирования. Таким образом, каждый байт принимается за два цикла, а каждый цикл требует по крайней мере 5 операций ввода-вывода.