Параллельные интерфейсы

LPT разъем

   Параллельные интерфейсы характеризуются тем, что в них для передачи бит в слове используются отдельные сигнальные линии, и биты передаются одновременно. Параллельные интерфейсы используют логические уровни ТТЛ (транзисторно-транзисторной логики), что ограничивает длину кабеля из-за невысокой помехозащищенности ТТЛ-интерфейса. Гальва- ническая развязка отсутствует. Параллельные интерфейсы используют для подключения принтеров. Передача данных может быть как однонаправленной (Centronics), так и двунап- равленной (Bitronics). Иногда параллельный интерфейс ис- пользуют для связи между двумя компьютерами - получается сеть, "сделанная на коленке" (LapLink). Ниже будут рассмотрены протоколы интерфейсов Centronics, стандарт IEEE 1284, а также реализующие их порты PC.

Интерфейс Centronics и LPT-порт

   Для подключения принтера по интерфейсу Centronics в PC был введен порт параллельного интерфейса - так возникло название LPT-порт (Line PrinTer - построчный принтер). Хотя сейчас через этот порт подключаются не только построчные принтеры, название "LPT" осталось.

Интерфейс Centronics

   Понятие Centronics относится как к набору сигналов и протоколу взаимодействия, так и к 36-контактному разъему на принтерах. Назначение сигналов приведено в табл. 1. Интерфейс Centronics поддерживается принтерами с параллельным интерфейсом. Его отечественным аналогом является интерфейс ИРПР-М. Традиционный порт SPP (Standard Parallel Port) является однонаправленным портом, через который программно реа- лизуется протокол обмена Centronics. Порт вырабатывает аппаратное прерывание по импульсу на входе Ack#. Сигналы порта выводятся на разъем DB-25S (розетка), установленный непосредственно на плате адаптера (или системной плате) или соединяемый с ней плоским шлейфом. Название и назначение сигналов разъема порта (табл. 2) соответствуют интерфейсу Centronics.

Таб. 1. Назначение сигналов Centronics.
Сигнал
I/O*
Контакт
Назначение
Strobe
I
1
Строб данных. Данные фиксируются по низкому уровню сигнала
Data [0:7]
I
2-9
Линии данных. Data 0 (контакт 2) - младший бит
Ack#
0
10
Acknowledge - импульс подтверждения приема байта (запрос на прием следующего). Может использоваться для формирования запроса прерывания
Busy
0
11
Занято. Прием данных возможен только при низком уровне сигнала
PaperEnd
0
12
Высокий уровень сигнализирует о конце бумаги
Select
0
13
Сигнализирует о включении принтера (обычноно в принтере соединяется резистором с цепью +5 В)
AutoLF#
I
14
Автоматический перевод строки. При низком уровне принтер, получив символ CR (Carriage Re
turn - возврат каретки), автоматически выполняет и функцию LF (Line Feed - перевод строки)
Error
0
32
Ошибка: конец бумаги, состояние OFF-Line или внутренняя ошибка принтера
lnit#
I
31
Инициализация (сброс в режим параметров умолчания, возврат к началу строки)
Select ln#
 
36
Выбор принтера (низким уровнем). При высоком уровне принтер не воспринимает остальные сигналы
интерфейса
GND
-
19-30, 33
Общий провод интерфейса

Рис. 1. Передача данных по протоколу Centronics

Таб. 2. Название и назначение сигналов разъема порта
Контакт
DB-25S
Номер
провода
в кабеле
Назначение
I/O*
Reg. Bit**
Сигнал
1
1
0/1
CR.O
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
Data3
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
1***
SR.6
Ack#
11
21
1
SR.A
Busy
12
23
1
SR.5
PaperEnd
13
25
1
SR.4
Select
14
2
0/1
CR.1
Auto LF#
15
4
1
SR.3
Error*
16
6
0/1
CR.2
lnit#
17
8
0/1
CR.3
Select ln#
18-25
10, 12,14,
16, 18.20,
22, 24, 26
-
   

    * I/O задает направление передачи (вход/выход) сигнала порта. 0/1 обозначает выходные линии, состояние которых считывается при чтении из портов вывода; (I) - выходные линии, состояние которых может быть считано только при особых условиях (см. ниже).

    ** Символом "\" отмечены инвертированные сигналы (1 в регистре соответствует низкому уровню линии).

    *** Вход Ack# соединен резистором (10 кОм) с питанием +5 В.

Традиционный LPT-порт

   Адаптер параллельного интерфейса представляет собой набор регистров, расположенных в пространстве ввода/вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются 3BCh, 378h и 278h. Порт может использовать линию запроса аппаратного прерывания, обычно IRQ7 или IRQ5.    Порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов, BIOS поддерживает до четырех (иногда до трех) LPT-портов (LPT1-LPT4) своим сервисом - прерыванием INT 17h, обеспечивающим через них связь с принтером по интерфейсу Centronics. Этим сервисом BIOS осуществляет вывод символа (по опросу готовности, не используя аппаратных прерываний), инициализацию интерфейса и принтера, а также опрос состояния принтера.

   Стандартный порт имеет три 8-битных регистра, расположенных по соседним адресам в пространстве ввода/вывода, начиная с базового адреса порта (BASE). Data Register (DR) - регистр данных, адрес=ВЛ5Е. Данные, записанные в этот порт, выводятся на выходные линии интерфейса. Данные, считанные из этого регистра, в зависимости от схемотехники адаптера соответствуют либо ранее записанным данным, либо сигналам на тех же линиях, что не всегда одно и то же. Если в порт записать байт с единицами
во всех разрядах, а на выходные линии интерфейса через микросхемы с выходом типа "открытый коллектор" подать какой-либо код (или соединить ключами какие-то линии со схемной землей), то этот код может быть считан из того же регистра данных. Таким образом на многих старых моделях адаптеров можно реализовать порт ввода дискретных сигналов, однако выходным цепям передатчика информации придется "бороться" с выходным током логической единицы выходных буферов адаптера. Схемотехника ТТЛ такие решения не запрещает, но если внешнее устройство выполнено на микросхемах КМОП, их мощности может не хватить
для "победы" в этом шинном конфликте. Однако современные адаптеры часто имеют в выходной цепи согласующий резистор с сопротивлением до 50 Ом. Выходной ток короткого замыкания выхода на землю обычно не превышает 30 мА. Простой расчет показывает, что в случае короткого замыкания контакта разъема на землю при выводе "единицы" на этом резисторе падает напряжение 1,5 В, что входной схемой приемника будет воспринято как "единица". Так что такой способ ввода не будет работать на всех компьютерах. На некоторых адаптерах портов выходной буфер отключается перемычкой на плате. Тогда порт превращается в обыкновенный порт ввода.

   Status Register (SR) - регистр состояния; представляет собой 5-битный порт ввода сигналов состояния принтера (биты SR.4-SR.7), адрес==8ЛЗЕ+7. Бит SR. 7 инвертируется - низкому уровню сигнала соответствует единичное значение бита в регистре, и наоборот.

   Назначение бит регистра состояния (в скобках даны номера контактов разъема):

    SR. 7 - Busy - инверсные отображения состояния линии Busy (11): при низком уровне на линии устанавливается единичное значения бита - разрешение на вывод очередного байта.

    SR.6 - Ack (Acknowledge) - отображения состояния линии Ack# (10).

    SR.5 - РЕ (Paper End) - отображения состояния линии Paper End (12). Единичное значение соответствует высокому уровню линии - сигналу о конце бумаги в принтере.

    SR.4 - Select - отображения состояния линии Select (13). Единичное значение соответствует высокому уровню линии - сигналу о включении принтера.

    SR.3 - Error - отображения состояния линии Error (15). Нулевое значение соответствует низкому уровню линии - сигналу о любой ошибке принтера.

    SR.2 - PIRQ - флаг прерывания по сигналу Ackft (только для порта PS/2). Бит обнуляется, если сигнал Ack# вызвал аппаратное прерывание. Единичное значение устанавливается по аппаратному сбросу и после чтения регистра состояния.

    SR[1:O] - зарезервированы.

    Control Register (CR) - регистр управления, wpec^BASE+2. Как и регистр данных, этот 4-битный порт вывода допускает запись и чтение (биты 0-3), но его выходной буфер обычно имеет тип "открытый коллектор". Это позволяет корректно использовать линии данного регистра как входные при программировании их в высокий уровень. Биты О, 1, 3 инвертируются.

   Назначение бит регистра управления:

    CR[7:6] - зарезервированы.

    CR.5 - Direction - бит управления направлением передачи (только для портов PS/2). Запись единицы переводит порт данных в режим ввода. При чтении состояние бита не определено.

    CR.4 - AcklntEn (Ack Interrupt Enable) - единичное значение разрешает прерывание по спаду сигнала на линии Ack# - сигнал запроса следующего байта.

    CR.3 - Select In - единичное значение бита соответствует низкому уровню на выходе Select ln# (17) - сигналу, разрешающему работу принтера по интерфейсу Centronics.

    CR.2 - Init - нулевое значение бита соответствует низкому уровню на выходе - сигналу аппаратного сброса принтера.

    CR. 1 - Auto LF - единичное значение бита соответствует низкому уровню на выходе Auto LF# (14) - сигналу на автоматический перевод строки (LF - Line Feed) по при ему байта возврата каретки (CR). Иногда сигнал и бит называют AutoFD или AutoFDXT.

    CR.O - Strobe - единичное значение бита соответствует низкому уровню на выходе Strobeft (1) - сигналу стробирования выходных данных.

   Запрос аппаратного прерывания (обьлно IRQ7 или IRQ5) вырабатывается по отрицательному перепаду сигнала на выводе 10 разъема интерфейса (Ack#) при установке CR.4=i. Воизбежание ложных прерываний контакт 10 соединен резистором с шиной +5 В. Прерывание вырабатывается, когда принтер подтверждает прием предыдущего байта. Как уже было сказано, BIOS это прерывание не использует и не обслуживает.

   Процедура вывода байта по интерфейсу Centronics включает следующие шаги (в скобках приведено требуемое количество шинных операций процессора):

    - Вывод байта в регистр данных (1 цикл IOWR#).

    - Ввод из регистра состояния и проверка готовности устройства (бит SR. 7 - сигнал Busy). Этот шаг зацикливается до получения готовности или до срабатывания программного тайм-аута (минимум 1 цикл IORD#).

   По получении готовности выводом в регистр управления устанавливается строб данных, а следующим выводом строб снимается (2 цикла IOWR#). Обычно, чтобы переключить только один бит (строб), регистр управления предварительно считывается, что добавляет еще один цикл IORD#. Видно, что для вывода одного байта требуется 4-5 операций ввода/вывода с регистрами порта (в лучшем случае, когда готовность обнаружена по первому чтению регистра состояния). Отсюда вытекает главный недостаток вывода через стандартный порт - невысокая скорость обмена при значительной загрузке процессора. Порт удается разогнать до скоростей 100-150 Кбайт/с при полной загрузке процессора, что недостаточно для печати на лазерном принтере. Другой недостаток - функциональный - сложность использования в качестве порта ввода.

   Стандартный порт асимметричен - при наличии 12 линий (и бит), нормально работающих на вывод, на ввод работают только 5 линий состояния. Если необходима симметричная двунаправленная связь, на всех стандартных портах работоспособен режим полубайтного обмена - Nibble Mode. В этом режиме, называемом также Hewlett Packard Bitronics, одновременно передаются 4 бита данных, пятая линия используется для квитирования. Таким образом, каждый байт передается за два цикла, а каждый цикл требует по крайней мере 5 операций ввода/вывода.

Расширения параллельного порта

   Недостатки стандартного порта частично устраняли новые типы портов, появившиеся в компьютерах PS/2. Двунаправленный порт 1 (Type 1 parallel port} -интерфейс, введенный в PS/2. Такой порт кроме стандартного режима может работать в режиме ввода или двунаправленном режиме. Протокол обмена формируется программно, а для указания направления передачи в регистр управления порта введен специальный бит CR.5:0 - буфер данных работает на вывод, 1 - на ввод. Не путайте этот порт, называемый также enhanced bi-directional, с ЕРР. Данный тип порта прижился и в обычных компьютерах.

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

   Позже появились другие адаптеры LPT-портов, реализующие протокол обмена Centronics аппаратно - Fast Centronics.
Некоторые из них использовали FIFO-буфер данных - Parallel Port FIFO Mode. He будучи стандартизованными, такие порты разных производителей требовали использования собственных специальных драйверов. Программы, использующие прямое управление регистрами стандартных портов, не умели более эффективно их использовать. Такие порты часто входили в состав мультикарт VLB. Существуют их варианты с шиной ISA, в том числе встроенные.

Стандарт IEEE 1284

   Стандарт на параллельный интерфейс 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) (EPP Mode) - двунаправленный обмен данными. Управляющие сигналы интерфейса генерируются аппаратно во время цикла обращения к порту. Эффективен при работе с устройствами внешней памяти и адаптерами локальных сетей.

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

   В компьютерах с LPT-портом на системной плате режим - SPP, ЕРР, ЕСР или их комбинация - задается в BIOS Setup.
Режим совместимости полностью соответствует стандартному порту SPP. Остальные режимы подробно рассмотрены ниже.

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

   Стандарт IEEE 1284 определяет физические характеристики приемников и передатчиков сигналов. Спецификации стандартного порта не задавали типов выходных схем, предельных значений величин нагрузочных резисторов и емкости, вносимой цепями и проводниками. На относительно невысоких скоростях обмена разброс этих параметров не вызывал проблем совместимости. Однако расширенные (функционально и по скорости передачи) режимы ттребуют четких спецификаций. IEEE 1284 определяет два уровня интерфейсной совместимости. Первый уровень (Level I) определен для устройств медленных, но использующих смену направления передачи данных. Второй уровень (Level II) определен для устройств, работающих в расширенных режимах, с высокими скоростями и длинными кабелями

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

  • Уровни сигналов без нагрузки не должны выходить за пределы -0,5... +5,5 В.
  • Уровни сигналов при токе нагрузки 14 мА должны быть не ниже +2,4 В для высокого уровня (Уон) и не выше +0,4 В для низкого уровня (VoiJ на постоянном токе.
  • Выходной импеданс Ro, измеренный на разъеме, должен составлять 50╠5 Ом на уровне VoH~VoL. Для обеспечения заданного импеданса используют последовательные резисторы в выходных цепях передатчика. Согласование импеданса передатчика и кабеля снижает уровень импульсных помех.
  • Скорость нарастания (спада) импульса должна находиться в пределах 0,05-0,4 В/нс.

   Требования к приемникам:

  • Допустимые пиковые значения сигналов -2,0...+7,0 В.
  • Пороги срабатывания должны быть не выше 2,0 В (V^) для высокого уровня и не ниже 0,8 В (Vi^) для низкого.
  • Приемник должен иметь гистерезис в пределах 0,2...1,2 В (гистерезисом обладают специальные микросхемы - триггеры Шмитта).
  • Входной ток микросхемы (втекающий и вытекающий) не должен превышать 20 мкА, входные линии соединяются с шиной питания +5 В резистором 1,2 кОм.
  • Входная емкость не должна превышать 50 пФ.

   Когда появилась спецификация ЕСР, фирма Microsoft рекомендовала применение динамических терминаторов на каждую линию интерфейса. Однако в настоящее время следуют спецификации IEEE 1284, в которой динамические терминаторы не применяются. Рекомендованные схемы входных, выходных и двунаправленных цепей приведены на рис. 2.

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

Рис. 2. Оконечные цепи линий интерфейса IEEE 1284: а - однонаправленных, б - двунаправленных

   Традиционные интерфейсные кабели имеют от 18 до 25 проводов, в зависимости от числа проводников цепи GND. Эти проводники могут быть как перевитыми, так и нет. К экранированию кабеля жестких требований не предъявлялось. Такие кабели вряд ли будут надежно работать на скорости передачи 2 Мбайт/с и при длине более 2 м. Стандарт IEEE 1284 регламентирует свойства кабелей.

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

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

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

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

   Кабели, удовлетворяющие этим требованиям, маркируются надписью "lEEEStd 1284-1994 Compliant". Они могут иметь длину до 10 метров, обозначения типов приведены в табл. 3.

Таб. 3. Типы кабелей
Тип
Расшифровка
Разъем 1
Разъем 2
АМАМ
Type A Male - Type A Male
А (вилка)
А (вилка)
AMAF
Туре A Male - Type A Female
А (вилка)
А (розетка)
АВ
Type A Male - Туре В Plug (стандартный кабель к принтеру)
А (вилка)
В
АС
Type A Male - Type С Plug (новый кабель к принтеру)
А (вилка)
С
ВС
Type В Plug - Type С Plug
В
С
СС
Туре С Plug - Type С Plug
С
С

На главную Далее