Приложение для тестирования LPT устрой

Министерство образования Республики Беларусь

 

Учреждение образования

«Гродненский государственный университет им. Янки Купалы»

 

 

Физико-технический факультет

 

 

 

 

Специальность: 1-38 02 01 Информационно-измерительная техника

 

 

 

 

 

КУРСОВОЙ ПРОЕКТ

 

 

Тема: Приложение для тестирования LPT устрой

 

 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

 

 

 

 

 

 

 

Разработал:                       ____________________

                                                                        (подпись, дата)

Руководитель проекта:   ____________________ 

                                                                        (подпись, дата)

 

 

 

 

 

 

 

2015

 

Содержание

 

Введение…………………………………………………………………….......... 3

Глава 1 Обзор литературных источников……………………………………… 4

1.1 Что такое LPT-порт…………..……………………………..………….... 4

1.1.1 Параллельный интерфейс: LPT-порт……………………….. 4

1.1.2 Интерфейс Centronics………………………………………… 5

1.1.3 Традиционный LPT-порт…………………………………….. 6 
1.1.4 Функции BIOS для LPT-порта………………………………. 9

1.1.5 Расширения параллельного порта…………………………. 10

1.1.6 Физический и электрический интерфейс………………….. 11

1.1.7Режимы передачи данных…………………………………... 12

1.1.8 Полубайтный режим ввода — Nibble Mode……………… 13

1.1.9 Режим ЕСР………………………………………………….. 20

1.1.10 Развитие стандарта IEEE 1284……………………………. 25 
1.1.11 Конфигурирование LPT-портов…………………………... 26 
1.1.12 Использование параллельных портов……………………. 27

1.1.13 Неисправности и тестирование параллельных портов….. 29

Глава 2                 …………………………………………………………………

Приложение              ………………………………………………..

Заключение        ……………………………………..

Литература       …………………………………………...

 

 

 

 

 

 

 

ведение

Не смотря на то, что на сегодняшний день прочно вошел в моду USB интерфейс  -  порт, для радиолюбительских целей LPT порт и поныне остается достаточно востребованным. Ведь на самом деле, не так уж и важно каким образом и через какой порт, будет происходить управление внешними устройствами от компьютера, важен результат. Почему я решил остановиться на изучении LPT порта? Ответ прост, это достаточно доступный и легко осваиваемый в плане программирования порт, для новичков, это пожалуй не плохое практическое руководство по освоению LPT, а в дальнейшем и других портов – интерфейсов. В данной статье, я постараюсь детально ознакомить начинающих радиолюбителей – программистов с принципами программирования LPT порта. Практическое программирование, будет показано опираясь на языки программирования Паскаль и Делфи. От вас требуются, базовые знания языка Паскаль и Делфи, ну и конечно же радиоэлектроники

 

 

 

 

 

 

 

 

 

 

 

1.1 Что такое LPT-порт?

LPT порт, это то место в компьютере, куда подключается принтер. Но  туда можно воткнуть ещё много  чего интересного. В том числе  и придуманные вами схемы. У  меня, например, через 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

Линии данных. Data 0 (контакт 2) — младший бит

Actt

0

10

Acknowledge — импульс подтверждения приема байта.

Busy

0

11

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

PaperEnd

0

12

Высокий уровень сигнализирует о конце бумаги

Select

0

13

Сигнализирует о включении принтера

Auto LF#

I

14

Автоматический перевод строки.

Еггог

0

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

Data 0

3

5

0(1)

DR: 1

Data 1

4

7

0(1)

DR: 2

Data 2

5

9

0(1)

DR:3

Data 3

6

11

0(1)

DR: 4

Data 4

7

13

0(1)

DR:5

Data 5

8

15

0(1)

DR:6

Data 6

9

17

0(1)

DR:7

Data 7

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 — единичное значение бита соответствует низкому уровню на выходе Auto LF# (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. В этом режиме, называемым также и Hewlett Packard 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 — опрос состояния принтера.

При вызове INT 17h номер функции задается в регистре АН, номер порта — в регистре 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 — на ввод.

Порт с прямым доступом к памяти (Type 3 DMA parallel port) применялся в PS/2 моделей 57, 90, 95. Этот тип был введен для повышения пропускной способности и разгрузки процессора при выводе на принтер. Программе, работающей с данным портом, требовалось только задать блок данных в памяти, подлежащих выводу, и вывод по протоколу Centronics производился без участия процессора.

 

 

Физический и электрический интерфейс

Стандарт IEEE 1284 определяет физические характеристики приемников и передатчиков сигналов.

К передатчикам предъявляются следующие требования:

Уровни сигналов без нагрузки не должны выходить за пределы -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 пФ.

Стандарт IEEE 1284 определяет три типа используемых разъемов. Типы Л (DB-25) и В (Centronics-36) используются в традиционных кабелях подключения принтера, тип С — новый малогабаритный 36-контактный разъем.

Интерфейсные кабели, традиционно используемые для подключения принтеров, обычно имеют от 18 до 25 проводников, в зависимости от числа проводников цепи GND.

Стандарт IEEE 1284 регламентирует и свойства кабелей:

 Все сигнальные  линии должны быть перевитыми  с отдельными обратными (общими) проводами.

Каждая пара должна иметь импеданс 62(±)6 Ом в частотном диапазоне 4-16 МГц.

Уровень перекрестных помех между парами не должен превышать 10%.

Кабель должен иметь экран (фольгу), покрывающий не менее 85% внешней поверхности. На концах кабеля экран должен быть окольцован и соединен с контактом разъема.

Кабели, удовлетворяющие этим требованиям, маркируются надписью IЕЕЕ Std 1284-1994 Compliant». Они могут иметь длину до 10 метров.

 

Режимы передачи данных

Стандарт IEEE 1284 определяет пять режимов обмена, один из которых полностью соответствует традиционному стандартному программно-управляемому выводу по протоколу 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#

0

HostBusy — сигнал квитирования. Низкий уровень означает готовность к приему тетрады, высокий подтверждает прием тетрады

17

SELECTIN»

0

Высокий уровень указывает на обмен в режиме IEEE 1284 (в режиме 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

0

Импульс (низкого уровня) подтверждает прием байта в конце каждого цикла

14

AUTOFEED#

HostBusy

0

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

17

SELECT-IN»

1284Active

0

Высокий уровень указывает на обмен в режиме IEEE 1284. (В режиме SPP уровень низкий)

16

INIT#

INIT#

0

Не используется, установлен высокий уровень

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 — улучшенный параллельный порт) предназначен для повышения производительности обмена по параллельному порту. ЕРР был реализован в чипсете Intel 386SL (микросхема 82360) и используется как дополнительный протокол параллельного порта.

Протокол ЕРР обеспечивает четыре типа циклов обмена:

Цикл записи данных.

Цикл чтения данных.

Цикл записи адреса.

Цикл чтения адреса.

Адресные циклы могут быть использованы для передачи адресной, канальной и управляющей информации. Циклы обмена данными явно отличаются от адресных циклов применяемыми стробирующими сигналами. Назначение сигналов порта ЕРР и их связь с сигналами SPP приведены в табл. 6.

Таблица 6.

Сигналы LPT-порта в режиме ввода/вывода ЕРР

 

Контакт

Сигнал SPP

Имя в ЕРР

I/O

Описание

1

STROBE»

WRITE»

0

Низкий уровень — признак цикла записи, высокий — чтения

14

AUTOFEEDff

DATASTB#

0

Строб данных. Низкий уровень устанавливается в циклах передачи данных

17

SELECTING

ADDRSTB#

0

Строб адреса. Низкий уровень устанавливается в адресных циклах

16

INIT#

RESETS

0

Сброс ПУ (низким уровнем)

Контакт

Сигнал 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#. Протокол автоматически подстраивается и под длину кабеля — вносимые задержки только приведут к удлинению цикла.

Приложение для тестирования LPT устрой