Применение LPT-порта

Применение LPT-порта

 Применение LPT-порта

Порт «LPT» редко встречается на современных компьютерах. Это специальный разъем компьютера для подключения принтера. Некоторые компьютеры были снабжены несколькими портами «LPT». Эти порты нумеровались: «LPT1», «LPT2» и так далее.

Параллельные порты

Исторически так сложилось, что порты для подключения компьютера разделены на категории: серийные и параллельные порты. «LPT» относится к параллельным портам. Это значит, что информация перемещается по восьми различным проводам, то есть одновременно и параллельно. Компьютеры имеют дело с двоичной информацией. Двоичность преобразует информацию в массивы нулей и единиц. Одно двоичное число (ноль или единица) называется битом. Группа из восьми бит называется байтом. Восемь бит каждого байта, которые перемещаются из компьютера в параллельный порт, перемещаются одновременно. Другой тип кабеля, подключенный к серийному порту, перемещает восемь бит каждого байта друг за другом.

Значение

У параллельного порта есть название. По умолчанию название для единственного параллельного порта компьютера «LPT1». Данный вид портов в основном используется для подключения принтера. К таким портам можно подключить и другие устройства, однако пользователи используют принтер гораздо чаще, чем другие устройства. Подключение принтера к компьютеру делает его «периферией». «Периферийным» может быть любое подключенное с помощью специального кабеля к компьютеру дополнительное устройство. Это «периферийное» оборудование одновременно может использоваться только одним компьютером. Единственный способ подключить уже подключенное «периферийное» устройство к другому компьютеру, чтобы использовать принтер, подключенный к первому компьютеру – с помощью сети и программного обеспечения. Этот процесс отличен от сетевого принтера, который подключается к сети, а не к одному компьютеру. В этом случае используется другой тип кабеля и другой тип порта.

Подключение

Параллельный порт «LPT» и соответствующий разъем имеет 25 штифтов и называется «DB-25», либо «D-Type 25». В разъеме штифты оголены. Они вставляются в 25 отверстий параллельного порта. Восемь из 25 штифтов отвечают за передачу данных, остальные несут либо данные управления, либо инструкции принтера вроде сообщений от принтера о отсутствии бумаги в принтере.

Будущее

Сетевые принтеры подключаются к компьютеру не с помощью порта «LPT», а с помощью порта «Ethernet». К порту «LPT» можно подключить не только принтер, но и другие устройства. Сегодня «периферийные» устройства не используют параллельные порты. И порты «LPT», и серийные порты сегодня ушли в историю и на смену им пришел «USB» порт, либо сетевой порт. Способность беспроводного подключения новых принтеров и периферийных устройств предоставляет еще одну альтернативу «LPT» порту, как способу подключения принтера к компьютеру.

Компьютер обрабатывает сигналы параллельными потоками, поэтому ему легче «общаться» с параллельными, а не с последовательными внешними портами. В 1984 г. в составе IBM PC впервые появился параллельный порт. Задуман он был как средство подключения матричных принтеров, отсюда и название LPT - Line PrinTer или Line Printer Terminal. В дальнейшем для принтеров стали использовать быстродействующий интерфейс USB, а LPT-порт начал постепенно вытесняться из компьютерных спецификаций. Остряки сравнивают LPT с чемоданом без ручки - и выбросить жалко, и тащить невозможно. Тем не менее, «ветеран» ещё на многое способен, если, конечно, он присутствует в конкретном компьютере.

Разъём LPT-порта имеет 25 контактов. Нормой «де-факто» считается розетка DB-25F в компьютере и вилка DB-25M в ответном кабеле (Табл. 4.2). Нумерация контактов вилок и розеток зеркальная (Рис. 4.7, а, б).

Таблица 4.2. Раскладка сигналов в 25-контактном разъёме LPT-порта

Расшифровка

Направление

Вход/выход

Вход/выход

Подтверждение

Готовность

Нет бумаги

Автоперенос

Вход/выход

Инициализация

Вход/выход

Выбор входа

Вход/выход

Рис. 4.7. Внешний вид спереди 25-контактных разъёмов LPT-порта: а) розетка DB-25F в компьютере; б) вилка DB-25M в соединительном кабеле.

Первоначально линии LPT-порта были однонаправленными SPP (Standard Parallel Port). Часть из них работала только на вход, часть - только на выход, что по набору сигналов и протоколу обмена соответствовало принтерному интерфейсу «Centronics». В 1994 г. был утверждён новый стандарт параллельного интерфейса IEEE 1284, предусматривающий двунаправленные линии и три режима работы: SPP, EPP (Enhanced Parallel Port), ECP (Extended Capabilities Port).

Уровни электрических сигналов LPT-порта совпадают с обычными «пятивольтовыми» логическими микросхемами. Раньше в компьютерах применялись буферные TTJl-микросхемы серии 74LSxx, позднее - КМОП-микросхемы и БИС, примерно эквивалентные серии 74ACxx. В последнем случае можно ориентировочно считать, что НИЗКИЙ уровень равен 0.1..0.2 В, а ВЫСОКИЙ - 4.5…4.9 В.

Стандартом регламентируется нагрузка 14 мА по каждому выходу при сохранении напряжения не менее +2.4 В ВЫСОКОГО и не более +0.4 В НИЗКОГО уровня. Однако в разных материнских платах выходные буферы LPT-порта могут иметь разную нагрузочную способность, в том числе и ниже стандарта («слабый» порт).

Требования к соединительным кабелям, подключаемым к LPT-порту:

Сигнальные провода должны быть свиты в пары с общим проводом GND;

Каждая пара должна иметь импеданс 56…68 Ом в диапазоне частот 4… 16 M Гц;

Если применяется плоский ленточный кабель, то сигнальные провода должны физически чередоваться с общим проводом GND (локальные экраны);

Уровень перекрёстных помех между сигналами не более 10%;

Кабель должен иметь экран, покрывающий не менее 85% внешней поверхности. На концах кабеля экран должен быть окольцован и соединён с «земляным» контактом разъёма;

В разъёме кабеля можно запаять на контакты 1…17 последовательные резисторы C2-23 (OMJIT-O.125) сопротивлением 100…300 Ом (Рис. 4.8). Это позволит защитить компьютер от случайных коротких замыканий в нагрузке и уменьшить высокочастотный «звон» на фронтах сигналов.

Рис. 4.8. Электрическая схема LPT-кабеля с «антизвонными» резисторами.

Схемы соединения MK с LPT-портом можно разделить на три группы:

Приём сигналов от компьютера (Рис. 4.9, а…з);

Передача сигналов в компьютер (Рис. 4.10, а…д);

Приём/передача сигналов одновременно (Рис. 4.11, a…e).

В схемах приняты некоторые упрощения. В качестве входного сигнала указывается в основном «DO», а в качестве выходного - «АСК», хотя могут быть и другие, перечисленные в Табл. 4.2. На каждом конкретном компьютере работоспособность самодельных схем необходимо проверять экспериментально, что связано с наличием «сильных» и «слабых» LPT-портов по нагрузочной способности.

Рис. 4.9. Схемы ввода сигналов из LPT-порта в MK (начало):

а) резистор R1 ограничивает входной ток. Элементы R2, C1 могут отсутствовать, но они уменьшают «звон» на фронтах сигналов при длинном кабеле;

б) буферный транзистор VT1 инвертирует сигнал. Диод VD1 не обязателен, но он защищает транзистор от ошибочной подачи большого отрицательного напряжения. Если не ставить резистор R2, то схема останется работоспособной, однако при отстыковке кабеля от LPT-порта возможны ложные срабатывания транзистора VT1 от внешних помех и наводок;

в) диод VD1 отсекает помехи и повышает порог срабатывания транзистора VT1. Резистор R1 надёжно закрываеттранзистор VT1 при НИЗКОМ уровне с LPT-порта;

г) буферный логический элемент DD1 имеет выход с открытым коллектором. Фронты сигналов формируются элементами R1, C1. Можно вместо инвертора DD1 поставить повторитель К155ЛП9, сделав соответствующие изменения в программе MK и компьютера;

д) триггер Шмитта DD1 (замена - К555ТЛ2) повышает помехоустойчивость. Чем меньше сопротивление резисторов R1, R2, тем больше крутизна фронтов сигнала. При отключённом кабеле от LPT-порта резистор R1 не даёт входу микросхемы DD1 «висеть в воздухе»;

е) последовательное включение двух логических элементов DD11, /)/)/.2увеличивает (восстанавливает) крутизну фронтов сигнала. Резистор R1 устраняет выбросы, «звон»;

Рис. 4.9. Схемы ввода сигналов из LPT-порта в MK (окончание):

ж) данные, поступающие от LPT-порта, предварительно помещаются в промежуточный регистр DD1. Запись производится при ВЫСОКОМ уровне на входе «С» микросхемы DD1, хранение - при НИЗКОМ. Такое решение устраняет помехи, поскольку в LPT-порт в зависимости от установленных в компьютере драйверов периодически могут выводиться случайные данные. Их устраняют программно, например, путём многократного считывания входного сигнала с линий MK;

з) буферизация LPT-порта мощными транзисторными ключами, находящимися в микросхеме DA1 фирмы Texas Instruments. Резисторы R1…R8 могут иметь в 10… 15 раз более низкие сопротивления, что позволяет подключить параллельно выходам микросхемы А4/другие узлы устройства.

Рис. 4.10. Схемы вывода сигналов из MK в LPT-порт (начало):

а) непосредственное подключение выхода MK без буферных элементов. Резисторы R1, R2 уменьшают отражение сигналов в линии. Кроме того, резистор R2 защищает выход MK от случайного короткого замыкания с цепью GND в проводах соединительного кабеля;

б) триггер Шмитта DD1 служит защитным буфером для MK при аварийной ситуации на выходе (короткое замыкание или подача большого напряжения);

в) микросхема DD1 имеет выход с открытым коллектором, что защищает её от короткого замыкания в проводах и разъёмах соединительного кабеля;

г) подача двух противофазных сигналов в компьютер. Цель - программная необходимость или организация дублирующего (контрольного) канала передачи данных;

д) опторазвязка на элементах HL1, BL1, которые применяются в компьютерных механических «мышах». Транзистор КГ/усиливает и инвертирует сигнал. Для нормальной работы устройства компьютер должен выставить ВЫСОКИЙ уровень на линии «D8».

Рис. 4.11. Комбинированные схемы ввода/вывода сигналов между MK и LPT-портом (начало):

а) если компьютер выставляет на линии «DO» ВЫСОКИЙ уровень, то MK в режиме выхода может генерировать сигнал «АСК» через резистор R1. Если MK переводится в режим входа, то компьютер может передавать ему данные по линии «DO» через диод VD1 при этом внутренний « pull-up» резистор MK формирует ВЫСОКИЙ уровень;

б) сигнал от LPT-порта вводится в MK через инвертор на транзисторе VT1 при этом компьютер должен выставить ВЫСОКИЙ уровень на линии «D2». Информация в MK вводится с линии «DO» через резистор R1 Высокое сопротивление резистора R1 физически развязывает входной и выходной каналы;

Рис. 4.11. Комбинированные схемы ввода/вывода сигналов между MK и LPT-портом (окончание):

б) сигнал от LPT-порта вводится в MK через инвертор на транзисторе VT1, при этом компьютер должен выставить НИЗКИЙ уровень на линии «DO». Информация в МК вводится через элементы R1, R3, VT2;

г) сигнал от LPT-порта вводится в MK через повторитель на транзисторе VT1, при этом компьютер должен выставить ВЫСОКИЙ уровень на линии «DO». Информация в MK вводится через повторитель на микросхеме DD1\

ж) сигналы «D0»…«D3» вводятся в MK при НИЗКОМ уровне на линии «INIT», при этом компьютер должен настроить линии «D4»…«D7» как входы. В настройках BIOS компьютера надо установить двунаправленный режим EPP или ЕСР для LPT-порта. Информация в компьютер из МК передаётся по линиям «D4»…«D7» при ВЫСОКОМ уровне на линии «INIT». Резистор R1 переводит выходы микросхемы DD1 в Z-состояние при отключённом кабеле от LPT-порта;

e) сигнал от MK в LPT-порт вводится через повторитель DD1.2, при этом компьютер должен выставить ВЫСОКИЙ уровень на линии «D2» и НИЗКИЙ уровень на линии «D5». Информация в MK вводится через повторитель DD1.1 при НИЗКОМ уровне налинии «D2». Стробирование сигналов по входам «Е1», «Е2» микросхемы DD1 повышает достоверность передачи данных.

Параллельный порт и РпР

Большинство современных периферийных устройств, подключаемых к LPT-nop-ту, поддерживает стандарт 1284 и функции РпР. Для поддержки этих функций компьютером с аппаратной точки зрения достаточно иметь контроллер интерфейса, соответствующий стандарту 1284. Если подключаемое устройство поддерживает РпР, оно по протоколу согласования режимов 1284 способно «договориться» с портом, представляющим «интересы» компьютера, о возможных режимах обмена. Далее, для работы РпР подключенное устройство должно сообщить операционной системе все необходимые сведения о себе. Как минимум это идентификаторы производителя, модели и набор поддерживаемых команд. Более развернутая информация об устройстве может содержать идентификатор класса, подробное описание и идентификатор устройства, с которым обеспечивается совместимость. В соответствии с принятой информацией для поддержки данного устройства операционная система может предпринять действия по установке требуемого программного обеспечения.

Устройства с поддержкой РпР распознаются ОС на этапе ее загрузки, если, конечно же, они подключены к порту интерфейсным кабелем и у них включено пита-ние. Если ОС Windows обнаруживает подключенное устройство РпР, отличающееся от того, что прописано в ее реестре для данного порта (или просто новое устройство), она пытается установить требуемые для устройства драйверы из ди­стрибутива ОС или из комплекта поставки нового устройства. Если Windows не желает замечать вновь подключенного устройства РпР, это может свидетельствовать о неисправности порта или кабеля. Система РпР не работает, если устройство под­ключается дешевым «не двунаправленным» кабелем, у которого отсутствует связь по линии Selectln# (контакт 17 порта LPT и контакт 36 разъема Centronics).

Обычно LPT-порт используют для подключения принтера (см. п. 8.3.1), однако этим его применение не исчерпывается.

Для связи двух компьютеров по параллельному интерфейсу применяются различные кабели в зависимости от режимов используемых портов. Самый простой и медленный - полубайтный режим, работающий на всех портах. Для этого режима в кабеле достаточно иметь 10 сигнальных и один общий провод. Распайка разъемов кабеля приведена в табл. 1.11. Связь двух PC данным кабелем поддерживается стандартным ПО типа Interlnk из MS-DOS или Norton Commander.

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

Подключение сканера к LPT-порту эффективно, только если порт обеспечивает хотя бы двунаправленный режим (Bi-Di), поскольку основной поток - ввод. Луч­ше использовать порт ЕСР, если этот режим поддерживается сканером (или ЕРР, что маловероятно).


Подключение внешних накопителей (Iomega Zip Drive, CD-ROM и др.), адаптеров ЛВС и других симметричных устройств ввода-вывода имеет свою специфику. В режиме SPP наряду с замедлением работы устройства заметна принципиальная асимметрия этого режима: чтение данных происходит в два раза медленнее, чем (весьма небыстрая) запись. Применение двунаправленного режима (Bi-Di или PS/2 Туре 1) устранит эту асимметрию - скорости сравняются. Только перейдя на ЕРР или ЕСР, можно получить нормальную скорость работы. В режиме ЕРР или ЕСР подключение к LPT-порту почти не уступает по скорости подключению через ISA-контроллер. Это справедливо и при подключении устройств со стандартным ин­терфейсом шин к LPT-портам через преобразователи интерфейсов (например, LPT - IDE, LPT - SCSI, LPT - PCMCIA). Заметим, что винчестер IDE, под­ключенный через адаптер к LPT-порту, для системы может быть представлен как устройство SCSI (это логичнее с программной точки зрения).

2. Последовательные интерфейсы

Последовательный интерфейс для передачи данных исполь­зует одну сигнальную линию, по которой информационные биты передаются друг за другом последовательно. Отсюда - название интерфейса и порта. Английские термины - Serial Interface и Serial Part (иногда их неправильно переводят как «серийные»). Последовательная передача позволяет сокра­тить количество сигнальных линий и увеличить дальность связи. Характерной особенностью является применение не-ТТЛ сигналов. В ряде последовательных интерфейсов при­меняется гальваническая развязка внешних (обычно вход­ных) сигналов от схемной земли устройства, что позволяет соединять устройства, находящиеся под разными потенциа­лами. Ниже будут рассмотрены интерфейсы RS-232C, RS-422А, RS-423A, RS-485, токовая петля, MIDI, а также СОМ-порт.

2.1. Способы последовательной передачи

Последовательная передача данных может осуществляться в асинхронном или синхронном режимах. При асинхронной пе­редаче каждому байту предшествует старт-бит, сигнализи­рующий приемнику о начале посылки, за которым следуют биты данных и, возможно, бит паритета (четности,). Завер­шает посылку стоп-бит, гарантирующий паузу между посыл­ками (рис. 2.1). Старт-бит следующего байта посылается в любой момент после стоп-бита, то есть между передачами воз­можны паузы произвольной длительности. Старт-бит, имею­щий всегда строго определенное значение (логический 0), обес­печивает простой механизм синхронизации приемника по сигналу от передатчика. Подразумевается, что приемник и передатчик работают на одной скорости обмена. Внутренний генератор синхронизации приемника использует счетчик-де­литель опорной частоты, обнуляемый в момент приема нача­ла старт-бита. Этот счетчик генерирует внутренние стробы, по которым приемник фиксирует последующие принимаемые

биты. В идеале стробы располагаются в середине битовых интервалов, что позволяет принимать данные и при незна­чительном рассогласовании скоростей приемника и пере­датчика. Очевидно, что при передаче 8 бит данных, одного контрольного и одного стоп-бита предельно допустимое рас­согласование скоростей, при котором данные будут распоз­наны верно, не может превышать 5%. С учетом фазовых ис­кажений и дискретности работы внутреннего счетчика синхронизации реально допустимо меньшее отклонение час­тот. Чем меньше коэффициент деления опорной частоты внут­реннего генератора (чем выше частота передачи), тем больше погрешность привязки стробов к середине битового интерва­ла, и требования к согласованности частот становятся более строгими. Чем выше частота передачи, тем больше влияние искажений фронтов на фазу принимаемого сигнала. Взаимо­действие этих факторов приводит к повышению требований к согласованности частот приемника и передатчика с ростом частоты обмена.

Формат асинхронной посылки позволяет выявлять возмож­ные ошибки передачи:

» Если принят перепад, сигнализирующий о начале посыл­ки, а по стробу старт-бита зафиксирован уровень логи­ческой единицы, старт-бит считается ложным и прием­ник снова переходит в состояние ожидания. Об этой ошибке приемник может и не сообщать.

« Если во время, отведенное под стоп-бит, обнаружен уро­вень логического нуля, фиксируется ошибка стоп-бита.

Если применяется контроль четности, то после посылки бит данных передается контрольный бит. Этот бит дополняет количество единичных бит данных до четного или нечетного в зависимости от принятого соглашения. Прием байта с неверным значением контрольного бита приводит к фиксации ошибки.

Контроль формата позволяет обнаруживать обрыв линии:

при этом принимаются логический нуль, который сначала трактуется как старт-бит, и нулевые биты данных, потом срабатывает контроль стоп-бита.

Для асинхронного режима принят ряд стандартных скоро­стей обмена: 50, 75, 110, 150,300,600,1200,2400,4800,9600, 19 200, 38 400, 57 600 и 115 200 бит/с. Иногда вместо еди­ницы измерения «бит/с» используют «бод» (baud), но при рассмотрении двоичных передаваемых сигналов это некор­ректно. В бодах принято измерять частоту изменения со­стояния линии, а при недвоичном способе кодирования (ши­роко применяемом в современных модемах) в канале связи скорости передачи бит (бит/с) и изменения сигнала (бод) могут отличаться в несколько раз (подробнее см. в прило­жении А).

Количество бит данных может составлять 5, 6, 7 или 8 (5- и 6-битные форматы распространены незначительно). Коли­чество стоп-бит может быть 1, 1,5 или 2 («полтора бита» означает только длительность стопового интервала).

Асинхронный обмен в PC реализуется с помощью СОМ-пор­та с использованием протокола RS-232C.

Синхронный режим передачи предполагает постоянную ак­тивность канала связи. Посылка начинается с синхробайта, за которым сразу же следует поток информационных бит. Если у передатчика нет данных для передачи, он заполняет паузу непрерывной посылкой байтов синхронизации. Оче­видно, что при передаче больших массивов данных наклад­ные расходы на синхронизацию в данном режиме будут ниже, чем в асинхронном. Однако в синхронном режиме необхо­дима внешняя синхронизация приемника с передатчиком, поскольку даже малое отклонение частот приведет к ис­кажению принимаемых данных. Внешняя синхронизация возможна либо с помощью отдельной линии для передачи сигнала синхронизации, либо с использованием самосинхронизирующего кодирования данных, при котором на сто­роне приемника из принятого сигнала могут быть выделены импульсы синхронизации. В любом случае синхронный ре­жим требует дорогих линий связи или оконечного оборудо­вания. Для PC существуют специальные платы - адаптеры SDLC (дорогие), поддерживающие синхронный режим об­мена. Они используются в основном для связи с большими машинами (mainframes) IBM и мало распространены. Из синхронных адаптеров в настоящее время применяются адап­теры интерфейса V.35.

На физическом уровне последовательный интерфейс имеет различные реализации, различающиеся способом передачи электрических сигналов. Существует ряд родственных меж­дународных стандартов: RS-232C, RS-423A, RS-422A и RS-485. На рис. 2.2 приведены схемы соединения приемни­ков и передатчиков, а также показаны ограничения на дли­ну линии (L) и максимальную скорость передачи данных (V).

Несимметричные линии интерфейсов RS-232C и RS-423A имеют самую низкую защищенность от синфазной помехи, хотя дифференциальный вход приемника RS-423A несколько смягчает ситуацию. Лучшие параметры имеет двухточеч­ный интерфейс RS-422A и его магистральный (шинный) аналог RS-485, работающие на симметричных линиях свя­зи. В них для передачи каждого сигнала используются диф­ференциальные сигналы с отдельной (витой) парой прово­дов.

В перечисленных стандартах сигнал представляется потен­циалом. Существуют последовательные интерфейсы, где информативен ток, протекающий по общей цепи передат­чик-приемник - «токовая петля» и MIDI. Для связи на ко­роткие расстояния приняты стандарты беспроводной инф­ракрасной связи. Наибольшее распространение в PC получил простейший из перечисленных - стандарт RS-232C, реализуемый СОМ-портами. В промышленной автоматике широко применяется RS-485, а также RS-422A, встречаю­щийся и в некоторых принтерах. Существуют преобразо­ватели сигналов для согласования этих родственных ин­терфейсов.

2.2. Интерфейс RS-232C

Интерфейс предназначен для подключения аппаратуры, передающей или принимающей данные (ООД - оконечное оборудование данных или АПД - аппаратура передачи дан­ных; DTE - Data Terminal Equipment), к оконечной аппарату­ре каналов данных (АКД; DCE - Data Communication Equipment). В роли АПД может выступать компьютер, прин­тер, плоттер и другое периферийное оборудование. В роли АКД обычно выступает модем. Конечной целью подключе­ния является соединение двух устройств АПД. Полная схе­ма соединения приведена на рис. 2.3. Интерфейс позволяет исключить канал удаленной связи вместе с парой устройств АПД, соединив устройства непосредственно с помощью нуль-модемного кабеля (рис. 2.4).

Стандарт описывает управляющие сигналы интерфейса, пе­ресылку данных, электрический интерфейс и типы разъе­мов. В стандарте предусмотрены асинхронный и синхрон­ный режимы обмена, но СОМ-порты поддерживают только асинхронный режим. Функционально RS-232C эквивалентен стандарту МККТТ V.24/ V.28 и стыку С2, но они имеют раз­личные названия сигналов.

2.2.1. Электрический интерфейс

Стандарт RS-232C использует несимметричные передатчи­ки и приемники - сигнал передается относительно общего провода - схемной земли (симметричные дифференциаль­ные сигналы используются в других интерфейсах - напри­мер, RS-422). Интерфейс НЕ ОБЕСПЕЧИВАЕТ ГАЛЬВАНИ­ЧЕСКОЙ РАЗВЯЗКИ устройств. Логической единице соответствует напряжение на входе приемника в диапазоне -12...-3 В. Для линий управляющих сигналов это состояние называется ON («включено»), для линий последовательных данных - MARK. Логическому нулю соответствует диапазон +3...+12 В. Для линий управляющих сигналов состояние называется OFF («выключено»), а для линий последователь­ных данных - SPACE. Диапазон -3...+3 В - зона нечувстви­тельности, обусловливающая гистерезис приемника: состоя­ние линии будет считаться измененным только после пересечения порога (рис. 2.5). Уровни сигналов на выходах передатчиков должны быть в диапазонах -12...-5 В и +5...+12 В для представления единицы и нуля соответствен­но. Разность потенциалов между схемными землями (SG) соединяемых устройств должна быть менее 2 В, при более высокой разности потенциалов возможно неверное воспри­ятие сигналов. Интерфейс предполагает наличие ЗАЩИТНОГО ЗАЗЕМЛЕ­НИЯ для соединяемых устройств, если они оба питаются от сети переменного тока и имеют сетевые фильтры.

Подключение и отключение интерфейсных кабелей устройств с автономным питанием должно производиться при отклю­ченном питании. Иначе разность невыровненных потенциа­лов устройств в момент коммутации может оказаться при­ложенной к выходным или входным (что опаснее) цепям интерфейса и вывести из строя микросхемы.

Для интерфейса RS-232C специально выпускаются буфер­ные микросхемы приемников (с гистерезисом и передатчи­ком двуполярного сигнала). При несоблюдении правил за­земления и коммутации они обычно являются первыми жертвами «пиротехнических» эффектов. Иногда их устанав­ливают в «кроватках», что облегчает замену. Цоколевка мик­росхем формирователей сигналов RS-232C приведена на рис. 2.6. Часто буферные схемы входят прямо в состав ин­терфейсных БИС. Это удешевляет изделие, экономит место на плате, но в случае аварии оборачивается крупными фи­нансовыми потерями. Вывести из строя интерфейсные мик­росхемы замыканием сигнальных цепей маловероятно: ток короткого замыкания передатчиков обычно не превосходит 20 мА.

Стандарт RS-232C регламентирует типы применяемых разъе­мов.

На аппаратуре АПД (в том числе на СОМ-портах) принято устанавливать вилки (male - «папа») DB-25P или более ком­пактный вариант - DB-9P. Девятиштырьковые разъемы не имеют контактов для дополнительных сигналов, необходи­мых для синхронного режима (в большинстве 25-штырько-вых разъемов эти контакты не используются).

На аппаратуре АКД (модемах) устанавливают розетки (female - «мама») DB-25Swm DB-9S.

Это правило предполагает, что разъемы АКД могут подклю­чаться к разъемам АПД непосредственно или через переход­ные «прямые» кабели с розеткой и вилкой, у которых кон­такты соединены «один в один». Переходные кабели могут являться и переходниками с 9- на 25-штырьковые разъемы (рис. 2.7).

Если аппаратура АПД соединяется без модемов, то разъемы устройств (вилки) соединяются между собой нуль-модемным кабелем (Zero-modem или Z-modem), имеющим на обоих кон­цах розетки, контакты которых соединяются перекрестно по одной из схем, приведенных на рис. 2.8.

Если на каком-либо устройстве АПД установлена розетка - это почти стопроцентный признак того, что к другому уст­ройству оно должно подключаться прямым кабелем, анало­гичным кабелю подключения модема. Розетка устанавли­вается обычно на тех устройствах, у которых удаленное подключение через модем не предусмотрено.

В табл. 2.1 приведено назначение контактов разъемов СОМ-портов (и любой другой аппаратуры АПД). Контакты разъема DB-25S определены стандартом EIA/TIA-232-E, разъем DB-9S описан стандартом EIA/ TIA-574. У модемов назва­ние цепей и контактов такое же, но роли сигналов (вход-выход) меняются на противоположные.

Подмножество сигналов RS-232C, относящихся к асинхрон­ному режиму, рассмотрим с точки зрения СОМ-порта PC. Следует помнить, что активному состоянию сигнала («вклю­чено») и логической единице передаваемых данных соответ­ствует отрицательный потенциал (ниже -3 В) сигнала ин­терфейса, а состоянию «выключено» и логическому нулю - положительный (выше +3 В). Назначение сигналов интер­фейса приведено в табл. 2.2.

1*- шлейф 8-битных мультикарт.

2*- шлейф 16-битных мультикарт и портов на системных платах. 3*- вариант шлейфа портов на системных платах. 4*- широкий шлейф к 25-контактному разъему.

2.2.2. Управление потоком данных

Для управления потоком данных (Flow Control) могут ис­пользоваться два варианта протокола - аппаратный и про­граммный. Иногда управление потоком путают с квитиро­ванием, но это разные методы достижения одной цели - согласования темпа передачи и приема. Квитирование (Handshaking) подразумевает посылку уведомления о полу­чении элемента, в то время как управление потокам предпо­лагает посылку уведомления о невозможности последующе­го приема данных.

Аппаратный протокол управления потоком RTS/CTS (Hardware Flow Control) использует сигнал CTS, который поз­воляет остановить передачу данных, если приемник не готов к их приему (рис. 2.9). Передатчик «выпускает» очередной байт только при включенной линии CTS. Байт, который уже начал передаваться, задержать сигналом CTS невозможно (это гарантирует целостность посылки). Аппаратный протокол обеспечивает самую быструю реакцию передатчика на состо­яние приемника. Микросхемы асинхронных приемопередат­чиков имеют не менее двух регистров в приемной части -

сдвигающий, для приема очередной посылки, и хранящий, из которого считывается принятый байт. Это позволяет реали­зовать обмен по аппаратному протоколу без потери данных.

Аппаратный протокол удобно использовать при подключе­нии принтеров и плоттеров, если они его поддерживают (рис. 2.10). При непосредственном (без модемов) соедине­нии двух компьютеров аппаратный протокол требует пере­крестного соединения линий RTS - CTS.

Если аппаратный протокол не используется, у передающего терминала должно быть обеспечено состояние «включено» на линии CTS перемычкой RTS - CTS. В противном случае передатчик будет «молчать».

Программный протокол управления потоком XON/XOFF пред­полагает наличие двунаправленного канала передачи данных. Работает протокол следующим образом: если устройство, принимающее данные, обнаруживает причины, по которым не может их дальше принимать, оно по обратному последо­вательному каналу посылает байт-символ XOFF (13h). Про­тивоположное устройство, приняв этот символ, приостанав­ливает передачу. Когда принимающее устройство снова становится готовым к приему данных, оно посылает символ

XON (llh), приняв который противоположное устройство возобновляет передачу. Время реакции передатчика на из­менение состояния приемника по сравнению с аппаратным протоколом увеличивается по крайней мере на время пере­дачи символа (XON или XOFF) плюс время реакции програм­мы передатчика на прием символа (рис. 2.11). Из этого сле­дует, что данные без потерь могут приниматься только приемником, имеющим дополнительный буфер принимае­мых данных и сигнализирующим о неготовности заблаго­временно (имея в буфере свободное место).

Преимущество программного протокола заключается в от­сутствии необходимости передачи управляющих сигналов интерфейса - минимальный кабель для двустороннего об­мена может иметь только 3 провода (см. рис. 2.8а). Недо­статком, кроме требования наличия буфера и большего вре­мени реакции (снижающего общую производительность канала из-за ожидания сигнала XON), является сложность реализации полнодуплексного режима обмена. В этом слу­чае из потока принимаемых данных должны выделяться (и обрабатываться) символы управления потоком, что ограни­чивает набор передаваемых символов. Минимальный вари­ант кабеля для подключения принтера (плоттера) с прото­колом XON/XOFF приведен на рис. 2.12.

Кроме этих двух распространенных стандартных протоко­лов, поддерживаемых и ПУ, и ОС, существуют и другие. Некоторые плоттеры с последовательным интерфейсом ис­пользуют программное управление, но посылают не стан­дартные символы XON/XOFF, а слова (ASCII-строки). Такой обмен на уровне системной поддержки протокола практи­чески не поддерживается (эти плоттеры непосредственно«разговаривают» с прикладной программой). Конечно, можно написать драйвер СОМ-порта (перехватчик INT 14h), но не­обходимость обработки в нем текстовых сообщений от уст­ройства вывода обычно не вызывает восторга у системного программиста. Кабель для подключения совпадает с приве­денным на рис. 2.12.

2.3. Интерфейс «токовая петля»

Распространенным вариантом последовательного интерфей­са является токовая петля. В ней электрическим сигналом является не уровень напряжения относительно общего про­вода, а ток в двухпроводной линии, соединяющей приемник и передатчик. Логической единице (состоянию «включено») соответствует протекание тока 20 мА, а логическому нулю - отсутствие тока. Такое представление сигналов для описан­ного формата асинхронной посылки позволяет обнаружить обрыв линии - приемник заметит отсутствие стоп-бита (об­рыв линии действует как постоянный логический нуль).

Токовая петля обычно предполагает гальваническую развяз­ку входных цепей приемника от схемы устройства. При этом источником тока в петле является передатчик (этот вариант называют активным передатчиком). Возможно и питание от приемника (активный приемник), при этом выходной ключ передатчика может быть также гальванически развязан с ос­тальной схемой передатчика. Существуют упрощенные ва­рианты без гальванической развязки, но это уже вырожден­ный случай интерфейса. Токовая петля с гальванической развязкой позволяет пере­давать сигналы на расстояния до нескольких километров. Расстояние определяется сопротивлением пары проводов и уровнем помех. Поскольку интерфейс требует пары прово­дов для каждого сигнала, обычно используют только два сиг­нала интерфейса. В случае двунаправленного обмена при­меняются только сигналы передаваемых и принимаемых данных, а для управления потоком используется программ­ный метод XON/XOFF. Если двунаправленный обмен не тре­буется, используют одну линию данных, а для управления потоком обратная линия задействуется для сигнала CTS (ап­паратный протокол) или встречной линии данных (про­граммный протокол).

Преобразовать сигналы RS-232C в токовую петлю можно с помощью несложной схемы (рис. 2.13). Здесь принтер под­ключается по токовой петле к СОМ-порту с аппаратным управлением потоком. Для получения двуполярного сигна­ла, требуемого для входных сигналов СОМ-порта, приме­няется питание от интерфейса.

При надлежащем ПО одной токовой петлей можно обеспечить двунаправленную полудуплексную связь двух устройств. При этом каждый приемник «слышит» как сигналы передатчика на противоположной стороне канала, так и сигналы своего передатчика. Они расцениваются коммуникационными паке­тами просто как эхо-сигнал. Для безошибочного приема пе­редатчики должны работать поочередно.

2.4. Интерфейс MIDI

Цифровой интерфейс музыкальных инструментов MIDI (Musical Instrument Digital Interface) является двунаправ­ленным последовательным асинхронным интерфейсом с ча­стотой передачи 31,25 Кбит/с. Этот интерфейс, разработан­ный в 1983 году, стал фактическим стандартом для сопряжения компьютеров, синтезаторов, записывающих и воспроизводящих устройств, микшеров, устройств специаль­ных эффектов и другой электромузыкальной техники.

В интерфейсе применяется таковая петля 10 мА (возможно 5 мА) с гальванической развязкой входной цепи. Это исклю­чает связь «схемных земель» соединяемых устройств через интерфейсный кабель, устраняя помехи, крайне нежелатель­ные для звуковой техники. Снижению интерференционных помех служит и выбор частоты передачи, которая совпадает с одним из значений частот квантования, принятых в циф­ровой звукозаписи.

Асинхронная посылка содержит старт-бит, 8 бит информации и 1 стоп-бит, контроль четности отсутствует. Старший бит посылки является признаком «команда/данные». Его нуле­вое значение указывает на наличие семи бит данных в млад­ших разрядах. При единичном значении биты содер­жат код команды, а биты - номер канала. Команды могут быть как адресованными конкретному каналу, так и широ­ковещательными безадресными. К последней группе отно­сятся команды старта, стопа и отметки времени, обеспечи­вающие синхронизацию устройств (система синхронизации MIDI Sync и МТС - MIDI Time Code).

Интерфейс определяет три типа портов: MIDI-In, MIDI-Out nMIDI-Thru.

Входной порт MIDI-In представляет собой вход интерфейса «токовая петля 10 мА», гальванически развязанного от при­емника оптроном с быстродействием не хуже 2 мкс. Устрой­ство отслеживает информационный поток на этом входе и реагирует на адресованные ему команды и данные.

Выходной порт MIDI-Out представляет собой выход источ­ника тока 10 мА, гальванически связанного со схемой уст- ройства. Ограничительные резисторы предохраняют выход­ные цепи от повреждения при замыкании на землю или ис­точник 5 В. На выход подается информационный поток от данного устройства. В потоке может содержаться и транс­лированный входной поток.

Транзитный порт MIDI-Thru (не обязателен) служит для ре­трансляции входного сигнала.

В качестве разъемов применяются 5-контактные разъемы DIN, распространенные в бытовой звуковой аппаратуре. На всех устройствах устанавливаются розетки, на кабелях - вилки. Все соединительные кабели MIDI унифицированы (рис. 2.14). Контакт 2 - экран кабеля - соединяется с общим проводом только на стороне передатчика (на разъемах MIDI-Out и MIDI-Thru).

В маркировке входов и выходов, указанной около разъемов, бывают разночтения. Одни производители пишут «In» или «Out» в соответствии с функцией разъема данного устрой­ства (и это) правильно), тогда любой кабель соединяет «In» и «Out». Другие считают, что подпись должна обозначать функ­цию подключаемого устройства. Тогда кабель будет соединять разъемы с обозначениями «In» - «In» и «Out» - «Out».

Интерфейс позволяет объединить группу до 16 устройств в локальную сеть. Топология должна подчиняться правилу:

вход MIDI-In одного устройства должен подключаться к выходу MIDI-Out или MIDI-Thru другого. При планирова­нии MIDI-сети необходимо руководствоваться информа­ционными потоками и связью устройств. Управляющие устройства - клавиатуры, секвенсоры (в режиме воспроиз- ведения), источники синхронизации - должны находиться перед управляемыми. Если устройства нуждаются в двуна­правленном обмене, они соединяются в кольцо. Возможно применение специальных мультиплексоров, позволяющих логически коммутировать несколько входных потоков в один выходной. Вырожденным случаем кольца является двуна­правленное соединение двух устройств. Несколько вариан­тов соединения приведено на рис. 2.15.

В PC MIDI-порт имеется на большинстве звуковых адапте­ров, его сигналы выведены на неиспользуемые контакты (12 и 15) разъема игрового адаптера. Для подключения устройств MIDI требуется переходной адаптер, реализующий интер­фейс «токовая петля». Переходной адаптер обычно встраи­вается в специальный кабель, схема которого приведена на рис. 2.16. Некоторые модели PC имеют встроенные адапте­ры и стандартные 5-штырьковые разъемы MIDI.

В PC для интерфейса MIDI применяются порты, совмести­мые с контроллером MPU-401 (Roland) в режиме UART. В пространстве ввода/вывода MPU-401 занимает два смеж­ных адреса MPU (обычно 330h) и MPU+1:

Порт DATA (адрес MPU+0) - запись и считывание байт, передаваемых и принимаемых по интерфейсу MIDI. Порт STATUS/COMMAND (адрес MPU+1) - чтение со­стояния / запись команд (запись - только для интеллек­туального режима). В байте состояния определены сле­дующие биты:

Бит 7 - DSR (Data Set Ready) - готовность (DSR-0) при­нятых данных для чтения. Бит устанавливается в «I», когда все принятые байты считаны из регистра данных.

Бит 6 - DRR (Data Read Ready) - готовность (DRR=0) UART к записи в регистр данных или команд. Условие готовности к записи не возникнет, если приемник имеет непрочитанный байт данных.

На некоторых системных платах применяются БИС контрол­леров интерфейсов, в которых UART, используемая для СОМ-порта, конфигурированием через BIOS SETUP может быть переведена в режим MIDI-порта.

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Комсомольский-на-Амуре государственный технический университет»

Кафедра «Промышленная электроника»

Тестирование LPT-порта персонального компьютера

Методические указания к лабораторной работе по курсу

«Отладочные средства микропроцессорных систем» для студентов направления 210100 «Электроника и наноэлектроника»

Комсомольск-на-Амуре 2013

Тестирование LPT-порта персонального компьютера: Методические указания к лабоpатоpной работе по курсу "Отладочные средства микропроцессорных систем" для студентов направления 210100 «Электроника и наноэлектроника» / Сост. С.М. Копытов. - Комсомольск-на-Амуpе: Комсомольский-на-Амуpе гос. техн. ун-т, 2013. - 19 с.

Рассмотрены параллельный интерфейс Centronics, сигналы и программная поддержка LPT-порта персонального компьютера, приведены рекомендации по его тестированию.

Предлагаемые методические указания предназначены для студентов направления 210100.

Печатается по постановлению редакционно-издательского совета Комсомольского-на-Амуре государственного технического университета.

Согласовано с отделом стандартизации.

Рецензент В.А. Егоров

Цель работы: изучить основные возможности стандартного LPT-порта. Освоить принципы программно-управляемого обмена информацией через параллельный порт. Научиться проверять его работоспособность.

1 основные сведения

1.1 Описание параллельного интерфейса

Исторически параллельный интерфейс был введен в персональный компьютер (ПК) для подключения принтера (отсюда и аббревиатура LPT – Line Printer – построчный принтер). Однако впоследствии параллельный интерфейс стал использоваться для подключения других периферийных устройств (ПУ). Базовая разновидность порта позволяет передавать данные только в одном направлении (от ПК к ПУ), однако позднее был разработан ряд стандартов двунаправленной передачи данных.

В современных офисных компьютерах LPT-порт, как правило, не предусмотрен, однако, установив мультикарту расширения портов, такой порт можно получить в свое распоряжение.

Адаптер параллельного интерфейса представляет собой набор регистров, расположенных в адресном пространстве устройств ввода/вывода. Количество регистров зависит от типа порта, однако три из них стандартны и присутствуют всегда. Это регистр данных, регистр состояния и регистр управления. Адреса регистров отсчитываются от базового, стандартные значения которого 3BCh, 378h, 278h. Порт может использовать аппаратное прерывание (IRQ7 или IRQ9). Многие современные системы позволяют изменять режим работы порта, его адрес и IRQ из настроек базовой системы ввода-вывода (Base Input Output System – BIOS) Setup.

LPT порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-х битную шину управляющих сигналов. Очевидно, что порт асимметричен  12 линий работают на вывод и только 5 на ввод.

При начальной загрузке BIOS пытается обнаружить параллельный порт, причем делает это примитивным и не всегда корректным образом  по возможным базовым адресам портов передается тестовый байт, состоящий из чередующегося набора нулей и единиц (55h или AAh), затем производится чтение по тому же адресу, и если прочитанный байт совпал с записанным, то считается, что по данному адресу найден LPT порт. Определить адрес порта LPT4 BIOS не может. Для работы с ПУ в BIOS предусмотрено прерывание INT 17h, предоставляющее возможность передавать данные (побайтно), инициализировать ПУ и получать информацию о его состоянии.

Понятие Centronics относится к набору сигналов, протоколу обмена и 36-контактному разъему, ранее устанавливаемому в принтерах. Назначение сигналов и контакты разъема ПУ, на который они выведены приведены в таблице 1.

Таблица 1 - Сигналы интерфейса Centronics

Направление

Назначение

Строб данных. Передается ЭВМ, данные фиксируются по низкому уровню сигнала.

Линии данных. D0 - младший бит.

Acknowledge – импульс подтверждения приема байта (запрос на прием следующего). Может использоваться для формирования прерывания.

Занят. Прием данных возможен только при низком уровне сигнала

"1" сигнализирует о конце бумаги

"1" сигнализирует о включении принтера (ГП – готовность приемника), обычно +5 В через резистор от источника питания ПУ)

Автоматический перевод строки. Если "0", то ПУ при получении символа CR (перевод каретки) выполняет функцию LF – перевод строки

Ошибка ПУ (off-line, нет бумаги, нет тонера, внутренняя ошибка)

Инициализация (переход к началу строки, сброс всех параметров на значения по умолчанию)

Выбор принтера. При "1" принтер не воспринимает остальные сигналы интерфейса

Общий провод

Примечание: столбец "T" – активный уровень сигнала: "1" – высокий активный уровень, "0" – низкий активный уровень. Столбец "Направление" – направление передачи по отношению к принтеру: I – Input (вход), O – Output (выход).

Сигнал Auto LF практически не применяется, но его неправильное значение приводит к тому, что принтер либо делает пропуски строк, либо печатает строки поверх друг друга, либо дублирует строки при печати в два прохода.

Отечественным аналогом интерфейса Centronics является ИРПР-М. Кроме него существует интерфейс ИРПР (устаревший), который отличается протоколом обмена, отсутствием сигнала "Error" и инверсией линий данных. Кроме того, ко всем входным линиям ИРПР подключены пары согласующих резисторов: 220 Ом к +5 В и 330 Ом к общему проводу. Это перегружает большинство интерфейсных адаптеров современных ПК.

Протокол обмена данными по интерфейсу Centronics приведен на рисунке 1.

Рисунок 1 - Протокол обмена данными по интерфейсу Centronics

Передача начинается с проверки источником сигнала Error. Если он установлен, то обмен не производится. Затем проверяется состояние сигнала Busy. Если он равен "0", то источник приступает к передаче байта данных. Для передачи байта источник выставляет на линии D0-D7 байт данных и выдает сигнал Strobe#. Приемник по сигналу Strobe# (здесь и далее по тексту значок "#" после названия сигнала является признаком того, что сигнал имеет низкий активный уровень) читает данные с шины данных и выставляет сигнал Busy на время его обработки. По окончании обработки приемник выдает сигнал ACK# и снимает сигнал Busy.

Если в течение длительного времени (6 – 12 сек) источник не получает ACK#, то он принимает решение об ошибке "тайм-аут" (time-out) устройства. Если после приема байта приемник по какой - либо причине не готов принимать данные, то он не снимает сигнал Busy. При программной реализации обмена по указанному протоколу желательно ограничить время ожидания снятия Busy (обычно 30 – 45 сек), иначе возможно зависание программы.

Стандартный параллельный порт называется SPP (Standard Parallel Port). SPP порт является однонаправленным, на его базе программно реализуется протокол обмена Centronics. Порт обеспечивает возможность генерации IRQ по импульсу ACK# на входе. Сигналы порта выводятся на стандартный разъем DB-25S (розетка), который размещен непосредственно на плате адаптера или соединяется с ним плоским шлейфом (в случае, если адаптер интегрирован с материнской платой).

Названия сигналов соответствуют названиям сигналов интерфейса Centronics (таблица 1), а изображение разъема интерфейсного адаптера со стороны компьютера приведено на рисунке 2.

Таблица 2 - Разъем и шлейф стандартного LPT порта

Провод шлейфа

10, 22, 14, 16, 18, 20, 22, 24, 26

Примечание. I/O – направление передачи: I – вход; O – выход; O(I) – выход, состояние которого может быть считано при определенных условиях, O/I – выходные линии, состояние которых читается при чтении из соответствующих регистров порта. * - Вход ACK# соединен с питанием +5 В через резистор 10 кОм. Это сделано для исключения ложных прерываний, т.к. прерывание генерируется по отрицательному перепаду сигнала на входе ACK#.


Рисунок 2 - Разъем интерфейсного адаптера Cetronics DB-25S

В качестве недостатков стандартного LPT порта (SPP) следует отметить невысокую скорость передачи данных (100 – 150 кБ/сек), загрузку процессора при передаче данных, невозможность двунаправленного побайтного обмена. Существует "радиолюбительская" методика двунаправленного обмена, которая состоит в том, что для ввода данных на линии D0-D7 выставляют "1", а в качестве передатчика используют микросхемы с открытым коллектором, которые при открытом транзисторе могут "подсаживать" напряжение логической единицы до уровня порядка 1.5 – 1.7 В. Ток ограничен на уровне 30 мА. Как очевидно из уровней сигналов, они не соответствуют уровням ТТЛ, поэтому многие порты не работают в таком режиме или работают нестабильно. Кроме того, такой способ может быть опасен для адаптера порта, который будет работать с предельными для него токами.

Стандарт IEEE 1284 , принятый в 1994 году, определяет термины SPP, ЕРР и ЕСР. Стандарт определяет 5 режимов обмена данными, метод согласования режима, физический и электрический интерфейсы. Согласно IEEE 1284, возможны следующие режимы обмена данными через параллельный порт:

Compatibility Mode – однонаправленный (вывод) по протоколу Centronics. Этот режим соответствует стандартному порту SPP;

Nibble Mode – ввод байта в два цикла (по 4 бита), используя для ввода линии состояния. Этот режим обмена может использоваться на любых адаптерах;

Byte Mode – ввод байта целиком, используя для приема линии данных. Этот режим работает только на портах, допускающих чтение выходных данных (Bi-Directional или PS/2 Type 1);

ЕРР (Enhanced Parallel Port) Mode – двунаправленный обмен данными, при котором управляющие сигналы интерфейса генерируются аппаратно во время цикла обращения к порту (чтения или записи в порт). Эффективен при работе с устройствами внешней памяти, адаптерами локальных сетей;

ЕСР (Extended Capability Port) Mode – двунаправленный обмен с возможностью аппаратного сжатия данных по методу RLE (Run Length Encoding), использования FIFO-буферов и DMA. Управляющие сигналы интерфейса генерируются аппаратно. Эффективен для принтеров и сканеров.

В современных машинах с LPT-портом на системной плате режим порта – SPP, ЕРР, ЕСР или их комбинация задается в BIOS Setup. Режим Compatibility Mode полностью соответствует SPP и часто установлен по умолчанию. Все остальные режимы расширяют функциональные возможности интерфейса и повышают его производительность. Кроме того, стандарт регламентирует способ согласования режима, доступного как ПК, так и периферийному устройству.

Физический и электрический интерфейс. Стандарт IEEE 1284 определяет физические характеристики приемников и передатчиков сигналов. Существенным является то, что при передаче используются уровни ТТЛ логики.

Стандарт IEEE 1284 определяет три типа используемых разъемов: А (DB-25S), B (Centronics-36), C (новый малогабаритный 36-контактный разъем). Интерфейсные кабели могут иметь от 18 до 25 проводников (в зависимости от числа проводников GND). Обычные кабели могут работать только на низких скоростях при длине не более 2 метров. Улучшенные экранированные кабели с сигнальными проводниками, перевитыми с общими проводами, могут иметь длину до 10 метров. Такие кабели маркируются как "IEEE Std 1284 - 1994 Compliant".

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

Контроллер порта расположен в адресном пространстве устройств ввода-вывода и обращение к нему производится посредством команд IN и OUT ассемблера. Информацию о портах LPT1 – LPT3 можно получить, прочитав переменные BIOS, приведенные в таблице 3.

Таблица 3 - Переменные BIOS для LPT портов

Имя порта

Адрес в BIOS

Тип переменной

Описание

Базовый адрес порта LPT1. Если переменная равна 0, то порт LPT1 не найден

Константа, задающая тайм-аут

Базовый адрес порта LPT2. Если переменная равна 0, то порт LPT2 не найден

Константа, задающая тайм-аут

Базовый адрес порта LPT3. Если переменная равна 0, то порт LPT3 не найден

Константа, задающая тайм-аут

Базовый адрес порта LPT4. Если переменная равна 0, то порт LPT4 не найден

Константа, задающая тайм-аут

BIOS ищет порты по адресам Base: 3BCh, 378h, 278h. Порт LPT4 BIOS найти не может:

378h - параллельный адаптер LPT1;

278h - параллельный адаптер LPT2;

3BCh - параллельный адаптер LPT3.

Стандартный порт имеет три 8-битных регистра, расположенных по соседним адресам, начиная с базового (Base) адреса. Перечень данных регистров приведен в таблице 4.

Таблица 4 - Регистры стандартного LPT порта

Регистр данных (DR). Записанные в этот регистр данные выводятся на выходные линии интерфейса D0D7. Результат чтения этого регистра зависит от схемотехники адаптера и соответствуют либо записанным ранее данным, либо сигналам на линиях D0D7, что не всегда одно и тоже. При стандартном включении справедлив первый вариант - читаемые данные равны ранее записанным.

Регистр состояния (SR) . Представляет собой 5-ти битный порт ввода, на который заведены сигналы состояния от внешнего устройства. Допускает только чтение. Назначение битов данного регистра приведены в таблице 5.

Таблица 5 - Биты регистра состояния SR

Название

Назначение

Инверсное отображение состояния линии Busy (11). При низком уровне на линии 11 (Busy) – бит равен "1" – ПУ готово к приему очередного байта

Отображение состояния линии ACK# (10).

"0" – подтверждение приема,

"1" – обычное состояние

Отображение состояния линии Paper End (12).

"0" – норма, "1" – в ПУ нет бумаги

Отображение состояния линии Select (13).

"0" - ПУ не выбрано, "1" - ПУ выбрано

(инверсн.)

Отображение состояния линии Error (15).

"0" – ошибка ПУ, "1" – обычное состояние

Флаг прерывания по ACK# (только PS/2).

Обнуляется, если ACK# вызвал аппаратное прерывание. "1" – после сброса или после чтения регистра состояния

Не используются (резерв)

Регистр управления (CR). Регистр управления представляет собой 4-х битный порт вывода, допускающий чтение и запись. Биты 0, 1, 3 инвертируются, т.е. "1" в данных битах регистра управления соответствует "0" на соответствующих линиях порта. Назначение битов регистра управления приведены в таблице 6. Бит 5 используется только двунаправленными портами.

Таблица 6 - Биты регистра управления CR

Название

Назначение

Бит управления направлением порта.

"1" – режим ввода, "0" – режим вывода

Бит управления генерацией прерывания по ACK# . "1" – разрешить прерывание по спаду ACK# (10)

Управление линией SLCT IN# (17).

"1" – работа принтера разрешена.

Управление линией INIT# (16). "1" – обычное состояние, "0" – аппаратный сброс ПУ

Управление линией Auto LF# (14). "1" – включить режим "Auto LF", "0" – обычное состояние

Управление линией Strobe# (1). "1" – стробирование данных, "0" – обычное состояние

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

Язык высокого уровня следует выбирать, если необходимо производить сложные вычисления, или в случае, если высокое быстродействие программы не требуется. Объектные коды, полученные в результате трансляции программ, написанных на языке высокого уровня, обычно занимают в памяти ЭВМ намного больше места и исполняются медленнее в сравнении с программами на ассемблере. Часто применяется подход, когда критичные к быстродействию части программы пишутся на ассемблере, а вычислительные процедуры – на языке высокого уровня, например, на Паскале или Си.

Рассмотрим работу с регистрами интерфейса CENTRONICS на языке PASCAL или ассемблере:

Х - число типа "byte" (0..255). Например, при посылке 170 10 = =10101010 2 на линии d0–d7 единичный сигнал будет присутствовать на выводах d1, d3, d5, d7 (обозначение выводов начинается с d0). Число 170 останется на выводах разъёма до тех пор, пока Вы не перешлёте туда же другое число (это может сделать и другая программа) или не выключите компьютер. Заметьте, что адрес порта в команде задан в шестнадцатиричном виде, а посылка - в десятичном. Если вместо Паскаль-команды

Port[$378]:=170;

Вы примените

где d – переменная, то переменная примет значение последнего посланного в порт байта или, при переходе в режим приёма, значение байта, поданного на порт внешним устройством.

Пример чтения статус-регистра на языке Pascal:

В переменной d после выполнения программы будет отображено состояние порта. Допустим, переменная вернула значение 126 10 . В двоичном виде оно выглядит как 01111110 2 . Младшие (правые) три бита (нулевой, первый и второй) не используются, и почти равны 1, 1 и 0. Третий бит – 1, значит на ERROR высокий уровень. Та же ситуация на SELECT, Paper End, ACK и BUSY (не забывайте, что сигнал BUSY является инвертированным).

Приведем пример фрагмента программы, которая считывает байт с линий данных D0-D7:

Port[$37A]:=32 ; значение 32 "включает" единицу в пятом

d:=Port[$378] ; бите, переводя порт в режим ввода

Как видно из приведенных примеров, программирование LPT-порта является весьма простой задачей, что позволяет в значительной степени облегчить работу разработчика программного обеспечения устройств с обсуждаемым интерфейсом.

1.2 Тестирование LPT-поpтa

Тестирование LPT-поpтa можно выполнить с помощью простой заглуш­ки, которую можно изготовить, воспользовавшись таблице 7.

Таблица 7 - Таблица цепей заглушки для тестирования LPT-поpтa

Направление

Направление




Самое обсуждаемое
Каком уровне модели osi работает Каком уровне модели osi работает
Тестирование системной платы Тестирование системной платы
Узнаем, что можно сделать из старого бесперебойника от компьютера Использование бесперебойника Узнаем, что можно сделать из старого бесперебойника от компьютера Использование бесперебойника


top