Реферат: Параллельный интерфейс: 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

еще рефераты
Еще работы по компьютерам и переферийным устройствам