Реферат: Параллельный интерфейс: LPT-порт
Параллельныйинтерфейс: LPT-порт
Порт параллельного интерфейса былвведен вPC дляподключения принтера—LP'T-порт(Line PrinTer — построчныйпринтер).
Адаптер параллельного интерфейсапредставляет собой набор регистров, расположенныхв пространстве ввода/вывода. Регистры порта адресуются относительно базовогоадреса порта, стандартными значениями которого являются 386h,378h и 278h. Порт имеет внешнюю8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шинууправляющих сигналов.
BIOS поддерживает до четырех LPT-портов(LPT1-LPT4) своим сервисом— прерываниемINT 17h, обеспечивающим через них связьс принтерами по интерфейсуCentronics. Этим сервисомBIOS осуществляет вывод символа, инициализацию интерфейса и принтера, атакже опрос состояния принтера.
ИнтерфейсCentronics
ПонятиеCentronics относится как к наборусигналов и протоколу взаимодействия, так и к 36-контактному разъему,устанавливаемому на принтерах. Назначение сигналов приведено в табл.1.
Таблица 1.
СигналыинтерфейсаCentronics
Сигнал
I/O*
Контакт
Назначение
Strobe
I
1
Строб данных. Данные фиксируются по низкому уровню сигнала
Data[0:7]
I
2-9
Линии данных.Data0(контакт2) — младший бит
Actt
10
Acknowledge — импульс подтверждения приема байта (запрос на прием следующего). Может использоваться для формирования запроса прерывания
Busy
11
Занято. Прием данных возможен только при низком уровне сигнала
PaperEnd
12
Высокий уровень сигнализирует о конце бумаги
Select
13
Сигнализирует о включении принтера
Auto LF#
I
14
Автоматический перевод строки.
Еггогй
32
Ошибка: конец бумаги, состояниеOFF-Line или внутренняя ошибка принтера
Imt#
I
31
Инициализация
Slot In#
I
36
Выбор принтера (низким уровнем). При высоком уровне принтер не воспринимает остальные сигналы интерфейса
GND
-
19-30 33
Общий провод интерфейса
*I/O
Задает
Направление
(вход/выход) применительно к принтеру.
ИнтерфейсCentronics поддерживается большинствомпринтеров с параллельным интерфейсом, его отечественным аналогом являетсяинтерфейс ИРПР-М.
ТрадиционныйLPT-порт
Традиционный портSPP (Standard Parallel Port)является однонаправленным портом, на базе которого программно реализуетсяпротокол обменаCentronics.Порт обеспечивает возможность вырабатывания запроса аппаратного прерывания поимпульсу на входе АСК#. Сигналы порта выводятся на разъемDB-25S (розетка), установленныйнепосредственно на плате адаптера (или системной плате) или соединяемый с нейплоским шлейфом. Название и назначение сигналов разъема порта (табл.2) соответствуют интерфейсуCentronics.
Таблица2.
Разъем стандартногоLPT-порта
Контакт DB-25S
Провод шлейфа
Назначение
I/O*
Reg.Bit**
Сигнал
1
1
0/1
CR: 0
Strobe#
2
3
0(1)
DR:0
Data0
3
5
0(1)
DR:1
Data1
4
7
0(1)
DR:2
Data2
5
9
0(1)
DR:3
Data3
6
11
0(1)
DR:4
Data4
7
13
0(1)
DR:5
Data5
8
15
0(1)
DR:6
Data6
9
17
0(1)
DR:7
Data7
10
19
I
SR:6
Ack#
11
21
I
SR: 7
Busy
12
23
I
SR:5
PaperEnd
13
25
I
SR:4
Select
14
2
0/1
CR: 1
Auto LF#
15
4
I
SR:3
Error#
16
6
0/1
CR:2
Init#
17
8
0/1
CR:3
Select In#
18-25
10, 12, 14, 16
18, 20, 22, 24, 26
-
-
*I/O задает направлениепередачи (вход/выход) сигнала порта;0/I обозначает выходныелинии, состояние которых считывается при чтении из соответствующих портоввывода.
**Символом «» отмечены инвертированные сигналы(1в регистре соответствует низкому уровню линии).
***ВходAck# соединенрезистором(10 кОм) с питанием+5 В.
Стандартный порт имеет три 8-битных регистра, расположенных пососедним адресам в пространстве ввода/вывода, начиная с базового адреса порта (BASE).
Data Register (DR)— регистрданных, адрес=BASE.Данные, записанные в этот порт, выводятсяна выходные линии интерфейса. Данные, считанные из этого регистра, взависимости от схемотехники адаптера соответствуют либо ранее записанным данным,либо сигналам на тех же линиях.
Status Register (SR)— регистрсостояния, представляющий собой 5-битныйпорт ввода сигналов состояния принтера (битыSR.4-SR.7), адрес=BASE+1. Бит SR.7 инвертируется— низкому уровню сигнала соответствуетединичное значению бита в регистре, и наоборот.
Назначение бит регистра состояния (в скобках даны номера контактовразъема):
SR.7—Busy — инверсные отображениясостояния линииBusy (11);
SR.6—АСК(Acknowledge) — отображениясостояния линииAck#(10).
SR.5—РЕ(Paper End)— отображения состояния линииPaper End(12).
SR.4—Select — отображениясостояния линииSelect(13). Единичное значение соответствует cигналу о включении принтера.
SR.3—Error — отображения состояниялинииError(15).
SR.2—PIRQ— флаг прерывания по сигналуAck# (только для портаPS/2). Битобнуляется, если сигналAck#вызвал аппаратное прерывание. Единичное значение устанавливается поаппаратному сбросу и после чтения регистра состояния.
SR[1:0] — зарезервированы.
Control Register (CR)— региструправления, адрес=ВА5Е+2. Как и регистр данных, этот 4-битный порт вывода допускает запись и чтение (биты0-3), но его выходной буфер обычно имеет тип открытый коллектор. Это позволяет болеекорректно использовать линии данного регистра как входные при программированииих в высокий уровень. Биты О,1, 3инвертируются— единичному значению врегистре соответствует низкий уровень сигнала, и наоборот.
Назначение бит регистрауправления:
CR[7:6] — зарезервированы.
CR.5—Direction— бит управления направлением передачи (толькодля портовPS/2). Запись единицыпереводит порт данных в режим ввода.
CR.4—ACKINTEN (Ack Interrupt Enable)— единичное значение разрешает прерывание поспаду сигнала на линииAckff —сигнал запроса следующего байта.
CR.3—Select In— единичное значение бита соответствуетнизкому уровню на выходеSelecting(17) — сигналу,разрешающему работу принтера по интерфейсуCentronics.
CR.2—Init— нулевое значение бита соответствует низкому уровню на выходеImt#(16) — сигнал аппаратного сброса принтера.
CR.1—Auto LF— единичное значение бита соответствуетнизкому уровню на выходеAutoLF# (14) — сигналу наавтоматический перевод строки (LF —Line Feed) по приему байтавозврата каретки(CR —Carriage Return).
CR.O—Strobe— единичное значение бита соответствует низкому уровню на выходеStrobeff(1) — сигналу стробирования выходных данных.
Запрос аппаратного прерывания (обычноIRQ7 илиIRQ5) вырабатывается по отрицательномуперепаду сигнала на выводе10 разъемаинтерфейса (АСК#) при установкеCR.4=1. Прерывание вырабатывается, когда принтер подтверждает приемпредыдущего байта.
Процедура вывода байта по интерфейсуCentronics через стандартный портвключает следующие шаги (в скобках приведено требуемое количество шинныхопераций процессора):
Вывод байта в регистр данных(1 циклIOWR#).
Ввод из регистра состояния ипроверка готовности устройства (битSR.7— сигналBUSY).
По получении готовности выводом врегистр управления устанавливается строб данных, а следующим выводом стробснимается(2 циклаlOWRff).
Стандартный порт сильноасимметричен— при наличии12 линий (и бит), нормально работающих навывод, на ввод работает только5 линийсостояния. Если необходима симметричная двунаправленная связь, на всехстандартных портах работоспособен режимполубайтного обмена—Nibble Mode. В этом режиме,называемым также иHewlettPackard Bitronics, одновременно передаются4 бита данных, пятая линия используется для квитирования.
ФункцииBIOSдляLPT-порта
BIOS обеспечивает поддержкуLPT-порта, необходимую для организации вывода по интерфейсуCentronics.
В процессе начальноготестированияPOST BIOSпроверяет наличие параллельных портов по адресам ЗВСЬ,378h и278h и помещает базовые адресаобнаруженных портов в ячейкиBIOS DATA AREA 0:0408h, 040Ah, 040СП, 040ЕП. Эти ячейки хранят адресапортов с логическими именамиLPT1-LPT4. В ячейки 0:0478, 0479,047А, 047В заносятся константы, задающие выдержку тайм-аута для этих портов.
Поиск портов обычно ведется по базовому адресу. Если считанный байтсовпал с записанным, считается, что найденLPT-порт, и его адрес помещают в ячейку BIOS DATA AREA. Адрес портаLPT4 BIOS самостоятельноустановить не может, поскольку в списке стандартных адресов поиска имеютсятолько три вышеуказанных.
Обнаруженные порты инициализируются— записью в регистр управления формируется и снимается сигналInitff, после чегозаписывается значение 00h,соответствующее исходному состоянию сигналов интерфейса.
Программное прерываниеBIOS I NT 17h обеспечиваетследующие функции поддержкиLPT-порта:
00h—вывод символа из регистраAL по протоколуCentronics. Данныепомещаются в выходной регистр и после готовности принтера формируется строб.
01h—инициализаия интерфейса и принтера.
02h —опрос состояния принтера.
При вызовеINT17hномер функции задается в регистре АН, номер порта— в регистреDX(0 —LPT1, 1 — LPT2...).При возврате после любой функции регистр АН содержит код состояния— биты регистрасостоянияSR[7:3] (биты6 и3инвертированы) и флаг тайм-аута в бите0.Флаг тайм-аута устанавливается при неудачной попытке вывода символа.
Расширения параллельного портаНедостатки стандартного портачастично устраняют новые типы портов, появившихся в компьютерах семействаPS/2.
Двунаправленный порт1(Typel parallel port)— интерфейс, введенный сPS/2. Такой порт кроме стандартного режимаможет работать в режиме ввода или двунаправленном. Протокол обмена формируетсяпрограммно, а для указания направления передачи в регистр управления портавведен специальный бит: при CR.5=0буфер данных работает на вывод, приCR.5=1 — на ввод.
Порт с прямым доступом к памяти(Type3DMA parallel port) применялся в PS/2 моделей57,90, 95. Этот тип был введен для повышения пропускной способности иразгрузки процессора при выводе на принтер. Программе, работающей с даннымпортом, требовалось только задать блок данных в памяти, подлежащих выводу, ивывод по протоколуCentronicsпроизводился без участия процессора.
Физический и электрический интерфейсСтандартIEEE1284 определяет физическиехарактеристики приемников и передатчиков сигналов.
К передатчикам предъявляются следующие требования:
Уровни сигналов без нагрузки недолжны выходить за пределы-0,5… +5,5В.
Уровни сигналов при токе нагрузки14 мА должны быть не ниже+2,4 В для высокого уровня(voh)и не выше+0,4 В для низкого уровня(vol)на постоянном токе.
Выходной импедансro,измеренный на разъеме,должен составлять 50(±)5 Ом на уровнеvoh-vol.Для обеспечения заданногоимпеданса в некоторых случаях используют последовательные резисторы в выходныхцепях передатчика. Согласование импеданса передатчика и кабеля снижает уровеньимпульсных помех.
Скорость нарастания (спада)импульса должна находиться в пределах 0,05-0,4В/нс.
Требования к приемникам:
Допустимые пиковые значениясигналов-2,0...+7,0.
Пороги срабатывания должны бытьне выше2,0 В(vih)для высокого уровня и нениже0,8 В(vil)для низкого.
Приемник должен иметь гистерезисв пределах0,2-1,2 В.
Входной ток микросхемы не должен превышать20 мкА.
Входная емкость не должнапревышать50 пФ.
СтандартIEEE1284 определяет три типа используемых разъемов. Типы Л(DB-25) и В(Centronics-36) используются втрадиционных кабелях подключения принтера, тип С— новый малогабаритный36-контактный разъем.
Интерфейсные кабели, традиционно используемые для подключения принтеров, обычноимеют от18 до25 проводников, в зависимости от числа проводников цепиGND.
СтандартIEEE1284 регламентирует и свойствакабелей:
Все сигнальные линии должны быть перевитыми сотдельными обратными (общими) проводами.
Каждая пара должна иметь импеданс62(±)6 Ом в частотном диапазоне 4-16 МГц.
Уровень перекрестных помех междупарами не должен превышать10%.
Кабель должен иметь экран(фольгу), покрывающий не менее85% внешнейповерхности. На концах кабеля экран должен быть окольцован и соединен сконтактом разъема.
Кабели, удовлетворяющие этимтребованиям, маркируются надписью IЕЕЕ Std1284-1994Compliant». Они могут иметь длину до10 метров.
Режимы передачи данныхСтандартIEEE1284 определяет пять режимовобмена, один из которых полностью соответствует традиционному стандартномупрограммно-управляемому выводу по протоколуCentronics. Остальные режимы используются для расширенияфункциональных возможностей и повышения производительности интерфейса.Стандарт определяет способ согласования режима, по которому программноеобеспечение может определить режим, доступный и хосту (в нашем случае это PC), и периферийномуустройству.
Режимы нестандартных портов,реализующих протокол обменаCentronics аппаратно(«Fast Centronics, «Parallel Port FIFO Mode»), могут и не являтьсярежимами IEE1284,несмотря на наличие в них черт ЕРР и ЕСР.
При описании режимов обменафигурируют следующие понятия:
Хост— компьютер, обладающийпараллельным портом.
ПУ— периферийное устройство,подключаемое к этому порту (им может оказаться и другой компьютер). обозначенияхсигналовPtr обозначаетпередающее периферийное устройство.
Прямой канал— канал выводаданных от хоста в ПУ.
Обратный канал канал ввода данных в хост из ПУ.
Полубайтныйрежим ввода—Nibble Mode
Режим полубайтного обменаявляется наиболее общим решением задачи двунаправленного обмена данными,поскольку может работать на всех стандартных (традиционных) портах. Все этипорты имеют5 линий ввода состояния, используя которые периферийное устройствоможет посылать вPCбайт тетрадами (nibble— полубайт,4бита) за два приема. Назначение сигналов порта приведено в табл 4.
Таблица4.
СигналыLPT-порта в полубайтном режиме ввода
Контакт
СигналSPP
I/O
Использование сигнала при приеме данных вNibble Mode
14
AUTOFEED#
HostBusy— сигнал квитирования. Низкий уровень означает готовность к приему тетрады, высокий подтверждает прием тетрады
17
SELECTIN»
Высокий уровень указывает на обмен в режимеIEEE1284 (в режимеSPP уровень низкий)
10
АСК#
'
PtrClk. Низкий уровень означает действительность тетрады, переход в высокий— ответ на сигналHostBusy
11
BUSY
I
Прием бита данных3, затем бита7
12
РЕ
I
Прием бита данных2, затем бита6
13
SELECT
I
Прием бита данных1, затем бита5
15
ERRORS
I
Прием бита данных0, затем бита4
Прием байта данных в полубайтном режиме состоит из следующих фаз:
1.Хост сигнализирует о готовности приема данных установкой низкого уровня налинииHostBusy.
2.ПУ в ответ помещает тетраду на входные линии состояния.
3.ПУ сигнализирует о действительности тетрады установкой низкого уровня на линииPtrClk.
4.Хост устанавливает высокий уровень на линииHostBusy, указывая на занятость приемом и обработкой тетрады.
5.ПУ отвечает установкой высокого уровня на линииPtrCLk.
6.Шаги1-5 повторяются для второй тетрады.
Полубайтный режим работает на всех портах со скоростью обмена невыше50 Кбайт/с. Его применяют в тех случаях, когда прием данных от устройствапроизводится в небольших объемах (например, для связи с принтерами).
Двунаправленный байтный режимByte Mode
Данныйрежим обеспечивает прием данных с использованием двунаправленного порта, укоторого выходной буфер данных может отключаться установкой бита CR.5=1. Как и в стандартном ив полубайтном режиме, данный режим является программно-управляемым— все сигналы квитирования анализируются иустанавливаются программным драйвером. Назначение сигналов порта приведено втабл.5.
Таблица5.
СигналыLPT-порта в байтном режиме ввода/вывода
Контакт
СигналSPP
Имя вByte Mode
I/O
Описание
1
STROBES
HostClk
Импульс (низкого уровня) подтверждает прием байта в конце каждого цикла
14
AUTOFEED#
HostBusy
Сигнал квитирования. Низкий уровень означает готовность хоста принять байт, высокий уровень устанавливается по приему байта
17
SELECT-IN»
1284Active
Высокий уровень указывает на обмен в режиме IEEE1284. (В режимеSPP уровень низкий)
16
INIT#
INIT#
Не используется, установлен высокий уровень
10
АСКй
Ptrtik
Устанавливается в низкий уровень для индикации действительности данных на линиях DATA[7:0]. В низкий уровень устанавливается в ответ на сигналHostBusy
11
BUSY
PtrBusy
I
Состояние занятости прямого канала
12
РЕ
AckDataReq*
I
Устанавливается ПУ для указания на наличие обратного канала передачи*
13
SELECT
Xflag*
I
Флаг расширяемости*
15
ERRORS
DataAvau#*
I
Устанавливается ПУ для указания на наличие обратного канала передачи*
2-9
DATA[7:0]
DATA[7:0]
I/0
Двунаправленный (прямой и обратный) канал данных
Прием байта данных в байтномрежиме состоит из следующих фаз:
1.Хост сигнализирует о готовности приема данных установкой низкого уровня налинииHostBusy.
2.ПУ в ответ помещает байт данных на линииDATA[7:0].
3.ПУ сигнализирует о действительности байта установкой низкого уровня на линииPtrClk.
4.Хост устанавливает высокий уровень на линииHostBusy, указывая на занятость приемом и обработкой байта.
5.ПУ отвечает установкой высокого уровня на линииPtrClk.
6.Хост подтверждает прием байта импульсомHostClk.
7.Шаги1-6 повторяются для каждого следующегобайта.
Побайтный режим позволяет поднятьскорость обратного канала до скорости прямого канала в стандартном режиме.Однако работать он может только надвунаправленных портах, которые применяются в основном лишь на малораспространенныхмашинахPS/2.
Режим ЕРР
Протокол ЕРР(Enhanced Parallel Port— улучшенный параллельный порт) предназначендля повышения производительности обмена по параллельному порту. ЕРР былреализован в чипсетеIntel386SL (микросхема82360) ииспользуется как дополнительный протокол параллельного порта.
Протокол ЕРР обеспечивает четыретипа циклов обмена:
Цикл записи данных.
Цикл чтения данных.
Цикл записи адреса.
Цикл чтения адреса.
Адресные циклы могут бытьиспользованы для передачи адресной, канальной и управляющей информации. Циклыобмена данными явно отличаются от адресных циклов применяемыми стробирующимисигналами. Назначение сигналов порта ЕРР и их связь с сигналамиSPP приведены в табл.6.
Таблица6.
СигналыLPT-порта в режиме ввода/вывода ЕРР
Контакт
СигналSPP
Имя в ЕРР
I/O
Описание
1
STROBE»
WRITE»
Низкий уровень— признак цикла записи, высокий— чтения
14
AUTOFEEDff
DATASTB#
Строб данных. Низкий уровень устанавливается в циклах передачи данных
17
SELECTING
ADDRSTB#
Строб адреса. Низкий уровень устанавливается в адресных циклах
16
INIT#
RESETS
Сброс ПУ (низким уровнем)
Контакт
СигналSPP
Имя в ЕРР
I/O
Описание
10
АСК#
INTR#
I
Прерывание от ПУ
11
BUSY
WAIT»
I
Сигнал квитирования. Низкий уровень разрешает начало цикла (установку строба в низкий уровень), переход в высокий— разрешает завершение цикла (снятие строба)
2-9
D[8:0]
AD[8:0]
I/O
Двунаправленная шина адреса/данных
12
РЕ
AckDataReq*
I
Используется по усмотрению разработчика периферии
13
SELECT
Xflag*
I
Используется по усмотрению разработчика периферии
15
ERROR
DataAvaiW*
I
Используется по усмотрению разработчика периферии
ЕРР-порт имеет расширенный наборрегистров (табл. 7), который занимает впространстве ввода/вывода 5-8 смежных байт.
Таблица7.
Регистры ЕРР-порта
Имя регистра
Смещение
Режим
R/W
Описание
SPP Data Port
+0
SPP/EPP
W
Регистр данных стандартного порта
SPP Status Port
+1
SPP/EPP
R
Регистр состояния стандартного порта
SPP Control Port
+2
SPP/EPP
W
Регистр управления стандартного порта
EPP Address Port
+3
EPP
R/W
Регистр адреса ЕРР. Чтение или запись в него генерирует связанный цикл чтения или записи адреса ЕРР
EPP Data Port
+4
EPP
R/W
Регистр данных ЕРР. Чтение (запись) генерирует связанный цикл чтения (записи) данных ЕРР
Not Defined
+5...+7
EPP
N/A
В некоторых контроллерах могут использоваться для 16-32-битных операций ввода/вывода
В отличие отпрограммно-управляемых режимов, описанных выше, внешние сигналы ЕРР-порта (какинформационные, так и сигналы квитирования) для каждого цикла обменаформируются аппаратно по одной операции записи или чтения в регистр порта.
Цикл записи данных состоит изследующих фаз:
1.Программа выполняет цикл записи(IOWR#) в порт4 (ЕРРData Port).
2.Адаптер устанавливает сигналWriteff (низкий уровень), и данные помещаются на выходную шинуLPT-порта.
3.При низком уровнеWAIT#устанавливается строб данных.
4.Порт ждет подтверждения от ПУ (переводаWAIT# в высокий уровень).
5.Снимается строб данных— внешний ЕРР-циклзавершается.
6.Завершается процессорный цикл ввода/вывода.
7.ПУ устанавливает низкий уровеньWAIT#, указывая на возможность начала следующего цикла.
Главной отличительной чертой ЕРРявляется выполнение внешней передачи во время одного процессорного циклаввода/вывода. Это позволяет достигать высоких скоростей обмена(0,5-2 Мбайт/с). Периферийное устройство, подключенноек параллельному порту ЕРР, может работать на уровне производительностиустройства, подключаемого через слотISA. Периферийное устройство может регулировать длительностьвсех фаз обмена с помощью всего лишь одного сигналаWAIT#. Протокол автоматическиподстраивается и под длину кабеля—вносимые задержки только приведут к удлинению цикла.
«ЗАВИСАНИЕ» процессора на шинном цикле обменапрепятствует механизм тайм-аутовPC, который принудительно завершает любой цикл обмена, длящийся более15 мкс.
С программной точки зрения контроллер ЕРР-порта выглядит достаточнопросто (см. табл.7). К трем регистрамстандартного порта, имеющим смещение 0,1и2 относительно базового адреса порта,добавлены два регистра (ЕРРAddress Port и ЕРРDataPort), чтение и запись в которые вызывает генерацию связанных внешнихциклов.
Назначение регистров стандартногопорта сохранено, что обеспечивает совместимость ЕРР-порта с периферийнымиустройствами и программным обеспечением, рассчитанными на применениепрограммно-управляемого обмена. Поскольку сигналы квитирования адаптеромвырабатываются аппаратно, при записи в регистр управленияCR биты0, 1 и3, соответствующие сигналамSTROBES, AUTOFEEDS иSELECTING,</span