1. Параллельные интерфейсы Параллельные интерфейсы характеризуются тем, что в них для передачи бит в слове используются отдельные сигналь- ные линии, и биты передаются одновременно. Параллельные интерфейсы используют логические уровни ТТЛ (транзистор- но-транзисторной логики), что ограничивает длину кабеля из- за невысокой помехозащищенности ТТЛ-интерфейса. Гальва- ническая развязка отсутствует. Параллельные интерфейсы используют для подключения принтеров. Передача данных может быть как однонаправленной (Centronics), так и двунап- равленной (Bitronics). Иногда параллельный интерфейс ис- пользуют для связи между двумя компьютерами - получает- ся сеть, "сделанная на коленке" (LapLink). Ниже будут рассмотрены протоколы интерфейсов Centronics, стандарт IEEE 1284, а также реализующие их порты PC. 1.1. Интерфейс Centronics и LPT-порт Для подключения принтера по интерфейсу Centronics в PC был введен порт параллельного интерфейса - так возникло название LPT-порт (Line PrinTer - построчный принтер). Хотя сейчас через этот порт подключаются не только по- строчные принтеры, название "LPT" осталось. 1.1.1. Интерфейс Centronics Понятие Centronics относится как к набору сигналов и про- токолу взаимодействия, так и к 36-контактному разъему на принтерах. Назначение сигналов приведено в табл. 1.1, а вре- менные диаграммы обмена с принтером - на рис. 1.1. Интерфейс Centronics поддерживается принтерами с парал- лельным интерфейсом. Его отечественным аналогом явля- ется интерфейс ИРПР-М. Традиционный порт SPP (Standard Parallel Port) является однонаправленным портом, через который программно реа- лизуется протокол обмена Centronics. Порт вырабатывает -------------------------------------------------------------------------------- аппаратное прерывание по импульсу на входе Ack#. Сигна- лы порта выводятся на разъем DB-25S (розетка), установ- ленный непосредственно на плате адаптера (или системной плате) или соединяемый с ней плоским шлейфом. Название и назначение сигналов разъема порта (табл. 1.2) соответству- ют интерфейсу Centronics. Сигнал I/O* Контакт Назначение Strobe" I 1 Строб данных. Данные фиксируют- ся по низкому уровню сигнала Data [0:7] I 2-9 Линии данных. Data 0 (контакт 2) - младший бит Ack# 0 10 Acknowledge - импульс подтверж- дения приема байта (запрос на прием следующего). Может исполь- зоваться для формирования запроса прерывания Busy 0 11 Занято. Прием данных возможен только при низком уровне сигнала PaperEnd о 12 Высокий уровень сигнализирует о конце бумаги Select о 13 Сигнализирует о включении прин- тера (обьгано в принтере соединя- ется резистором с цепью +5 В) AutoLF# I 14 Автоматический перевод строки. При низком уровне принтер, получив символ CR (Carriage Re- turn - возврат каретки), автомати- чески выполняет и функцию Lf (Line Feed - перевод строки) Error" о 32 Ошибка: конец бумаги, состояние OFF-Line или внутренняя ошибка принтера lnit# I 31 Инициализация (сброс в режим параметров умолчания, возврат к началу строки) Select ln# 36 Выбор принтера (низким уровнем). При высоком уровне принтер не воспринимает остальные сигналы интерфейса GND - 19-30, 33 Общий провод интерфейса -------------------------------------------------------------------------------- Рис. 1.1. Передача данных по протоколу Centronics Контакт DB-25S Номер провода в кабеле Назначение I/O* Reg. Bit** Сигнал 1 1 0/1 CR.O\ Strobe" 2 3 0(1) DR.0 DataO 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 В. -------------------------------------------------------------------------------- 1.1.2. Традиционный 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). Единичное значение соответствует высокому уровню ли- нии - сигналу о включении принтера. s8 SR.3 - Error - отображения состояния линии Error (15). Нулевое значение соответствует низкому уровню линии - сигналу о любой ошибке принтера. ®? SR.2 - PIRQ - флаг прерывания по сигналу Ackft (толь- ко для порта PS/2). Бит обнуляется, если сигнал Ack# вызвал аппаратное прерывание. Единичное значение ус- -------------------------------------------------------------------------------- танавливается по аппаратному сбросу и после чтения ре- гистра состояния. ^ SR[1:OJ - зарезервированы. Control Register (CR) - регистр управления, wpec^BASE+2. Как и регистр данных, этот 4-битный порт вывода допуска- ет запись и чтение (биты 0-3), но его выходной буфер обычно имеет тип "открытый коллектор". Это позволяет корректно использовать линии данного регистра как входные при про- граммировании их в высокий уровень. Биты О, 1, 3 инвер- тируются. Назначение бит регистра управления: SB CR[7:6] - зарезервированы. т CR.5 - Direction - бит управления направлением переда- чи (только для портов PS/2). Запись единицы переводит порт данных в режим ввода. При чтении состояние бита не определено. ^ CR.4 - AcklntEn (Ack Interrupt Enable) - единичное зна- чение разрешает прерывание по спаду сигнала на линии Ack# - сигнал запроса следующего байта. is CR.3 - Select In - единичное значение бита соответству- ет низкому уровню на выходе Select ln# (17) - сигналу, разрешающему работу принтера по интерфейсу Centronics. ^ CR.2 - Init - нулевое значение бита соответствует низко- му уровню на выходе 1п'Л# (16) - сигналу аппаратного сброса принтера. т 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 операций ввода/вывода. -------------------------------------------------------------------------------- 1.1.3. Расширения параллельного порта Недостатки стандартного порта частично устраняли новые типы портов, появившиеся в компьютерах 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, в том числе встроенные. 1.2. Стандарт 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. Остальные режимы подробно рассмотрены ниже. 1.2.1. Физический и электрический интерфейсы Стандарт IEEE 1284 определяет физические характерис- тики приемников и передатчиков сигналов. Специфика- ции стандартного порта не задавали типов выходных схем, предельных значений величин нагрузочных резисторов и емкости, вносимой цепями и проводниками. На относи- тельно невысоких скоростях обмена разброс этих парамет- ров не вызывал проблем совместимости. Однако расши- ренные (функционально и по скорости передачи) режимы -------------------------------------------------------------------------------- требуют четких спецификаций. IEEE 1284 определяет два уровня интерфейсной совместимости. Первый уровень (Level I) определен для устройств медленных, но исполь- зующих смену направления передачи данных. Второй уро- вень (Level II) определен для устройств, работающих в расширенных режимах, с высокими скоростями и длин- ными кабелями. К передатчикам предъявляются следую- щие требования: ^ Уровни сигналов без нагрузки не должны выходить за пределы -0,5... +5,5 В. ^ Уровни сигналов при токе нагрузки 14 мА должны быть не ниже +2,4 В для высокого уровня (Уон) и не выше +0,4 В для низкого уровня (VoiJ на постоянном токе. ii Выходной импеданс 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, в которой динамические -------------------------------------------------------------------------------- терминаторы не применяются. Рекомендованные схемы входных, выходных и двунаправленных цепей приведены на рис. 1.2. Стандарт IEEE 1284 определяет три типа используемых разъемов. Типы A (DB-25) и В (Centronics-36) используются в традиционных кабелях подключения принтера, тип С - новый малогабаритный 36-контактный разъем. Рис. 1.2. Оконечные цепи линий интерфейса IEEE 1284: а - однонаправленных, б - двунаправленных Традиционные интерфейсные кабели имеют от 18 до 25 про- водов, в зависимости от числа проводников цепи GND. Эти проводники могут быть как перевитыми, так и нет. К экра- нированию кабеля жестких требований не предъявлялось. Такие кабели вряд ли будут надежно работать на скорости передачи 2 Мбайт/с и при длине более 2 м. Стандарт IEEE 1284 регламентирует свойства кабелей. -------------------------------------------------------------------------------- ^ Все сигнальные линии должны быть перевитыми с от- дельными обратными (общими) проводами. ^ Каждая пара должна иметь импеданс 62±б Ом в частот- ном диапазоне 4-16 МГц. ^ Уровень перекрестных помех между парами не должен превышать 10%. ^ Кабель должен иметь экран (фольгу), покрывающий не менее 85% внешней поверхности. На концах кабеля эк- ран должен быть окольцован и соединен с контактом разъема. Кабели, удовлетворяющие этим требованиям, маркируются надписью "lEEEStd 1284-1994 Compliant^. Они могут иметь длину до 10 метров, обозначения типов приведены в табл. 1.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 С С 1.2.2. Режимы передачи данных IEEE 1284 определяет пять режимов обмена, один из кото- рых полностью соответствует стандартному выводу по про- токолу Centronics. Стандарт определяет способ, по которому ПО может определить режим, доступный и хосту (PC), и ПУ (или присоединенному второму компьютеру). Режимы нестандартных портов, реализующих протокол обмена Centronics аппаратно (Fast Centronics, Parallel Port FIFO Mode), -------------------------------------------------------------------------------- могут и не являться режимами IEEE 1284, несмотря на на- личие в них черт ЕРР и ЕСР. При описании режимов обмена фигурируют следующие по- нятия: ^ Хост - компьютер, обладающий параллельным портом. ^ ПУ - периферийное устройство, подключаемое к этому порту. ^ Ptr - в обозначениях сигналов обозначает передающее ПУ. is Прямой канал - канал вывода данных от хоста в ПУ. ^ Обратный канал - канал ввода данных в хост из ПУ. Полубайтный режим ввода - Nibble Mode Предназначен для двунаправленного обмена. Может рабо- тать на всех стандартных портах. Порты имеют 5 линий вво- да состояния, используя которые ПУ может посылать в хост байт тетрадами (nibble - полубайт, 4 бита) за два приема. Сигнал Ack#, вызывающий прерывание, которое может ис- пользоваться в данном режиме, соответствует биту 6 регис- тра состояния, что усложняет программные манипуляции с битами при сборке байта. Сигналы порта приведены в табл. 1.4, временные диаграммы - на рис. 1.3. Рис. 1.3. Прием данных в полубайтном режиме Прием байта данных в полубайтном режиме состоит из сле- дующих фаз: 1. Хост сигнализирует о готовности приема данных уста- новкой низкого уровня на линии HostBusy. 2. ПУ в ответ помещает тетраду на входные линии состоя- ния. -------------------------------------------------------------------------------- 3. ПУ сигнализирует о готовности тетрады установкой низ- кого уровня на линии PtrClk. 4. Хост устанавливает высокий уровень на линии HostBusy, указывая на занятость приемом и обработкой тетрады. 5. ПУ отвечает установкой высокого уровня на линии PtrClk. 6. Шаги 1-5 повторяются для второй тетрады.
|