Стандарт 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 | С | С |
Внутренности LPT порта
Если говорить на бытовом уровне, то можно сказать, что LPT порт это набор контактов, на которых мы можем установить напряжение 0 или +5 В (логическая 0 и 1) из программы или это может сделать внешнее устройство снаружи. Давайте разберемся, какими контактами мы можем оперировать, а какими нет. В этом нам поможет рис. ниже (его рисовал не я, автор мне неизвестен. Но он уж больно хорош, я и сам им постоянно пользуюсь)
Из рис. видно, что выводы порта можно разделить на четыре группы: это 'земляные' выводы (не понятно чем руководствовались разработчики интерфейса LPT, сделав этих выводов аж 8 штук). Они обозначены черным цветом (контакты 18-25). Все они соединены между собой, поэтому для своих разработок в качестве земли можно использовать любой из них.
Красным цветом обозначены выводы так называемого регистра Data (контакты 2-9). Под регистром будем понимать (на бытовом уровне) объединение группы контактов LPT порта. В регистре Data их 8 штук. Это самый толковый регистр - он позволяет нам как из программы, так и из внешнего устройства установить на его контактах логическую 0 или 1, т.е. он двунаправленный. Именно его мы и использовали в нашей первой программе Port.exe - подключали светодиод ко 2-му выводу порта (как теперь понятно, этот вывод принадлежит регистру Data, является его нулевым битом) и 25 выводу (земля), и с помощью программы управляли подачей напряжения на вывод 2 относительно земли. Чтобы обращаться к этому регистру, надо знать его адрес: 0x378 - в 16-ричной системе или 888 в десятичной (на рис. написано &H378 - это тоже самое что и 0x378, просто первое обозначение присуще языку Pasсal и ему подобным, мы же пишем на Си).
Опять вспоминая программу Port.exe, заметим, что обращались мы к регистру с помощью следующей функции _outp(Address, 0); где переменная Address была предварительно определена как 888. Теперь понятно, что этим мы указывали функции _outp, что мы хотим работать именно с регистром Data.
Продолжим рассмотрение порта. Осталось еще два регистра. Следующим будет регистр Status (контакты 10-13, 15). Это однонаправленный регистр. Управлять им можно только из снаружи, через внешнее устройство (имеется в виду изменять данные на нем, читать можно из любого регистра в любую строну). Он имеет адрес 0x379 - в 16-ричной системе или 889 в десятичной. И регистр Control (контакты 1, 14, 16-17). Он имеет всего 4 контакта и может управляться только программой. Его адрес: 890 в десятичной системе.
В итоге мы получили:
8 двунаправленых контактов (регистр Data) - данные туда может записать и программа и внешнее устройство
5 однонаправленных контактов (регистр Status) - данные туда может записать только внешнее устройство
4 однонаправленных контакта (регистр Control) - данные туда может записать только программа
Дата: 2019-07-30, просмотров: 233.