sonyps4.ru

Lpt порт ввод данных. LPT-port: особенности и принципы работы

Скачать распиновку порта принтера:

IEEE 1284 (порт принтера, параллельный порт, англ. Line Print Terminal, LPT) - международный стандарт параллельного интерфейса

В основе данного стандарта лежит интерфейс Centronics и его расширенные версии (ECP, EPP).

Название «LPT» образовано от наименования стандартного устройства принтера «LPT1» (Line Printer Terminal или Line PrinTer) в операционных системах семейства MS-DOS. Интерфейс Centronics и стандарт IEEE 1284

Параллельный порт Centronics - порт, используемый с 1981 года в персональных компьютерах фирмы IBM для подключения печатающих устройств, разработан фирмой Centronics Data Computer Corporation; уже давно стал стандартом де-факто, хотя в действительности официально на данный момент он не стандартизирован.

Изначально этот порт был разработан только для симплексной (однонаправленной) передачи данных, так как предполагалось, что порт Centronics должен использоваться только для работы с принтером. Впоследствии разными фирмами были разработаны дуплексные расширения интерфейса (byte mode, EPP, ECP). Затем был принят международный стандарт IEEE 1284, описывающий как базовый интерфейс Centronics, так и все его расширения.

Виды Разъёмов паралельного порта

Кабельный 36-контактный разъём Centronics для подключения внешнего устройства (IEEE 1284-B)

25-контактный разъём DB-25, используемый как LPT-порт на персональных компьютерах (IEEE 1284-A)

Порт на стороне управляющего устройства (компьютера) имеет 25-контактный 2-рядный разъём DB-25-female ("мама") (IEEE 1284-A). Не путать с аналогичным male-разъёмом ("папа"), который устанавливался на старых компьютерах и представляет собой 25-пиновый COM-порт.

На периферийных устройствах обычно используется 36-контактный микроразъем ленточного типа Centronics (IEEE 1284-B), поэтому кабели для подключения периферийных устройств к компьютеру по параллельному порту обычно выполняются с 25-контактным разъёмом DB-25-male на одной стороне и 36-контактным IEEE 1284-B на другой (AB-кабель). Изредка применяется AC-кабель с 36-контактным разъемом MiniCentronics (IEEE 1284-C) .

Существуют также CC-кабеля с разъёмами MiniCentronics на обоих концах, предназначенные для подключения приборов в стандарте IEEE 1284-II, который применяется редко.

Длина соединительного кабеля не должна превышать 3 метров. Конструкция кабеля: витые пары в общем экране, либо витые пары в индивидуальных экранах. Изредка используются ленточные кабели.

Для подключения сканера, и некоторых других устройств используется кабель, у которого вместо разъема (IEEE 1284-B) установлен разъем DB-25-male. Обычно сканер оснащается вторым интерфейсом с разъемом DB-25-female (IEEE 1284-A) для подключения принтера (поскольку обычно компьютер оснащается только одним интерфейсом IEEE 1284).

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

Интерфейс разъема

Базовый интерфейс Centronics является однонаправленным параллельным интерфейсом, содержит характерные для такого интерфейса сигнальные линии (8 для передачи данных, строб, линии состояния устройства).

Данные передаются в одну сторону: от компьютера к внешнему устройству. Но полностью однонаправленным его назвать нельзя. Так, 4 обратные линии используются для контроля за состоянием устройства. Centronics позволяет подключать одно устройство, поэтому для совместного очерёдного использования нескольких устройств требуется дополнительно применять селектор.

Скорость передачи данных может варьироваться и достигать 1,2 Мбит/с.

Стандартные шнуры провода кабеля Centronics IEEE 1284 Printer lpt:

Упрощённая таблица - схема сигналов интерфейса Centronics LPT - разъема

Контакты
DB-25 IEEE 1284-A
Контакты
Centronics IEEE 1284-B
Обозначение Примечание Функция
1 1 Strobe Маркер цикла передачи (выход) Управление Computer
2 2 Data Bit 1 Сигнал 1 (выход) Данные Computer
3 3 Data Bit 2 Сигнал 2 (выход) Данные Computer
4 4 Data Bit 3 Сигнал 3 (выход) Данные Computer
5 5 Data Bit 4 Сигнал 4 (выход) Данные Computer
6 6 Data Bit 5 Сигнал 5 (выход) Данные Computer
7 7 Data Bit 6 Сигнал 6 (выход) Данные Computer
8 8 Data Bit 7 Сигнал 7 (выход) Данные Computer
9 9 Data Bit 8 Сигнал 8 (выход) Данные Computer
10 10 Acknowledge Готовность принять (вход) Состояние Printer
11 11 Busy Занят (вход) Состояние Printer
12 12 Paper End Нет бумаги (вход) Состояние Printer
13 13 Select Выбор (вход) Состояние Printer
14 14 Auto Line Feed Автоподача (выход) Управление Computer
15 32 Error Ошибка (вход) Состояние Printer
16 31 Init Инициализация (выход) Initialize Printer (prime-low) Управление Computer
17 36 Select In Управление печатью (выход) Select Input Управление Computer
18-25 16-17, 19-30 GND Общий Земля

Распайку порта Centronics IEEE 1284 Printer Cable lpt - com9 можно и в виде картинки-изображения

Весьма советуем с ним познакомиться. Там Вы найдете много новых друзей. Кроме того, это наиболее быстрый и действенный способ связаться с администраторами проекта. Продолжает работать раздел Обновления антивирусов - всегда актуальные бесплатные обновления для Dr Web и NOD. Не успели что-то прочитать? Полное содержание бегущей строки можно найти по этой ссылке .

Работа с LPT-портом в Win NT/2000/XP

LPT-порт (L ine P rinT er) - порт параллельного интерфейса, который изначально создавался для подключения принтера. BIOS обеспечивает поддержку LPT-порта, необходимую для организации вывода по интерфейсу Centronics. Адресное пространство порта занимает диапазон &H378-&H37F

LPT-порт имеет 12 выходных и 5 входных линий. Такое довольно большое количество линий делает возможным подключение к порту несложной аппаратуры, возможно даже не имеющей своего микроконтроллера. Поэтому этот порт, несмотря на исчезновение принтеров с LPT-интерфейсом, активно используется для подключения простых программаторов микросхем памяти, JTAG-интерфейсов для перепрошивки (замены программного обеспечения) спутниковых рессиверов, DVD-плееров и другой электронной техники. Популярен LPT-порт и у моддеров, поскольку позволяет подключить к компьютеру LCD-дисплеи без изготовления сложных плат-интерфейсов.

Windows 2000/XP не позволяет приложениям обращаться к портам ввода-вывода напрямую. Для этого нужно использовать драйвер, работающий в KERNEL-mode (в режиме ядра операционной системы).

Ограничение доступа к портам ввода-вывода для обычных прикладных программ (работающих в пользовательском режиме) позволяет сделать операционную систему более стабильной. Хотя с другой стороны никто не мешает программисту написать драйвер, обращающийся к портам.

Интересно, что для процессора Intel x86 можно написать драйвер, использующий один из двух принципиально разных подходов. Первый вариант - драйвер сам обращается к портам, а прикладная программа только указывает драйверу, что делать. Этот вариант в общем случае является стандартным и предпочтительным.

Для решения проблемы существуют четыре популярных варианта драйверов, позволяющих прикладной программе обращаться к портам ввода-вывода: драйвер DLPortIO , драйвер UserPort , драйвер GiveIO.sis , драйвер Port95nt .

Все четыре варианта практически равноценны.

Драйвер DLPortIO

DLportIO - драйвер доступа к портам из пакета DriverLINX от Scientific Software Tools, Inc. (http://www.sstnet.com) в сокращённом виде (без описания и лишней документации). Для нормальной работы программ обслуживания LCD-индикаторов можно порекомендовать именно этот вариант драйвера .

Собственно драйвер состоит из двух составляющих:
. DLPortIO.dll - Win32 DLL, обеспечивающая аппаратные функции ввода/вывода и
. DLPortIO.sys - драйвер для WinNT, работающий в режиме ядра ОС (не требуется для Win95/98)

В установочном пакете драйвера, помимо этих двух компонентов, есть ещё файл Install.exe, перемещающий два вышеназванных в папку драйверов Windows и регистрирующий их в системе.

Больше писать про этот драйвер и нечего. Настройка не требуется. Скачали, установили, пользуемся. Не забываем заглянуть в конец статьи и почитать обеспечения работоспособности LPT-порта.

Установка элементарная - запускаем файл Install.exe, устанавливаем. По окончанию установки заглядываем в папку C:\Windows\System32\drivers и проверяем наличие двух файлов драйвера (DLPortIO.sys и DLPortIO.dll). Если видим, что эти файлы так и не скопировались, берем их из установочного пакета и копируем вручную. Не переживайте, с компьютером ничего плохого не случится. Перегружаем компьютер и работаем с LPT-портом.

Если вдруг, в результате манипуляций с оборудованием, вы получите от драйвера сообщение такого плана: "dlportio.sys device driver not loaded. Port I/O will have no effect", не стоит паниковать. Исправляется эта проблема так:
. Запускаем regedit.
. Заходим в реестре в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ .
. В папке dlportio изменяем значение параметра Start на 1 .
. Перезагружаем компьютер.

Драйвер UserPort

Драйвер UserPort открывает доступ к портам в Win NT/2000/XP для программ. Этим вариантом драйвера LPT-порта чаще всего пользуются "технари", работающие с программаторами и JTAG"ами, поскольку драйвер имеет хоть какие-то конфигурирующие настройки. Для работы программ обслуживания LCD-индикаторов его так же можно использовать.

В архиве драйвера имеются три файла:
. UserPort.sys - драйвер для WinNT, работающий в режиме ядра ОС,
. UserPort.exe - программа для настройки драйвера и
. UserPort.pdf - файл описания.

Установка UserPort:
. 1. Распакуйте архив в отдельную папку.
. 2. Скопируйте файл UserPort.sys в C:\Windows\System32\drivers

Настройка UserPort:
. Запустите UserPort.exe.
. Перед нами появится панель с 2-мя окошками.

Левое окошко относится к работе программы в ДОС окне, правое на полном экране. По умолчанию в них прописаны номера портов LPT - все их можно удалить с помощью кнопки "Remove". В оба окна нужно вписать нужные номера портов, которые планируется использовать.

Для использования с драйвера с большинством программаторов, JTAG"ов и программ обслуживания дисплеев, добавьте в левую колонку следующие параметры:
378 , 379 и 37A для LPT1
278 , 279 и 27A для LPT2 (Если в BIOS"е переназначен адрес LPT-порта).

Поясню, что означают цифры. 0x378 - это адрес порта.
. Адрес 0x378 называется базовым и служит для записи и чтения данных в порт и из порта, по шине данных D0-D7 .
. Адрес 0x379 (базовый+1) предназначен для чтения битов состояния из устройства, подключеного к LPT-порту.
. Адрес 0x37A (базовый+2) служит для записи битов управления устройства, подключенного к LPT-порту.

Добавляем так:
0x378-0x378
0x37A-0x37A



Добавлять адреса порта в список нужно через окно ввода и с помощью кнопки "Add". Адрес 0x379 чаще всего не нужен и его можно не вписывать, поскольку он предназначен для чтения битов состояния из устройства, подключеного к LPT-порту, а большинство устройств (программаторы, JTAG"и и LCD-индикаторы тем более) сигналы состояния не формируют. При желании можно наоборот вписать весь диапазон адресов, отведённых системой под LPT-порт 0x378-0x37F .

Заходим в Панель Управления , Система , выбираем закладку Оборудование , Диспетчер устройств , заходим в Порты (COM и LPT) и смотрим свойства LPT порта, по которому вы хотите установить соединение. В Свойствах открываем закладку Ресурсы и смотрим значение параметра Диапазон ввода/вывода (I/O) . (Обычно в Windows XP оно равно 378 - 37F )

После формирования списка адресов, нужно нажать кнопку "Start", драйвер будет запущен и появится сообщение:



Затем нажать кнопку "Update", при этом драйвер будет зарегистрирован в системе, затем "Exit". Разумеется, кнопку "Stop", пока мы пользуемся драйвером, нажимать не нужно.

Если при нажатии кнопки "Update" система уходит в перезагрузку, нужно пробовать запускать регистрацию драйвера в системе с правами администратора или попытаться временно отключить файрволл или антивирус, которые могут блокировать вмешательство в системные процессы. Если что-то не получилось, читайте UserPort.pdf

Для проверки, появился ли доступ к портам, можно запустить программу "lpt-test.exe" .

После старта программы появится окно со следующим содержанием:



Отсутствие сообщения "Тестируется порт LPT (Адрес XXXh)" и последующих за ним строк говорит о том, что драйвер не работает.

Эта программа просто посылает в регистр данных Dx и регистр управления Ux порта LPT различные числа, а потом их же считывает. Регистр статуса Sx порта LPT только считывается. На экран выводится номер и адрес тестируемого порта LPT. Если порт исправный, то для регистров Dx и Ux не должно выдаваться никаких сообщений.



LPT-TEST v1.03 1995-2003 Copyright (C) С.Б.Алеманов. Москва "БИНАР".
Во время тестирования к портам не должно быть подключено периферийных устройств.
Dx - рег. данных (out), Ux - рег. управления (out), Sx - рег. статуса (inp).

Тестируется порт LPT1 (Адрес 378h)
2-й контакт (D0) - нет "1"
3-й контакт (D1) - нет "1"
4-й контакт (D2) - нет "1"
5-й контакт (D3) - нет "1"
6-й контакт (D4) - нет "1"
7-й контакт (D5) - нет "1"
8-й контакт (D6) - нет "1"
9-й контакт (D7) - нет "1"
1-й контакт (U0) - нет "1"
14-й контакт (U1) - нет "1"
17-й контакт (U3) - нет "1"
1-й контакт (U0) - нет "0"
14-й контакт (U1) - нет "0"
17-й контакт (U3) - нет "0"
15-й контакт (S3) - нет "0"


Если регистры Dx или Ux неисправны, то выводится сообщение "нет 0" или "нет 1" и указывается номер контакта на LPT-разъеме (сигналы на этом контакте можно посмотреть осциллографом). На входе регистра статуса Sx может быть как "0" так и "1", но обычно, когда к порту LPT ничего не подключено, на всех входах регистра статуса имеется "1". Появление же на входе регистра статуса "0" может являться признаком того, что вход пробит, если раньше там всегда была "1".
На некоторых машинах, если регистр данных или регистр управления неисправны, то доступ к LPT-порту вообще не появляется. Видимо, BIOS при включении компьютера тестирует порт LPT и, если он неисправный, то отключает его.

Если возникают проблемы, возможно, работе мешают какие-то драйвера, периодически посылая импульсы в порт LPT (это можно увидеть осциллографом). Например, можно в настройках принтера отключиться от порта LPT:
выключить LPT1: Порт принтера
включить FILE: Печатать в файл

После того, как все проблемы устранены и тест пройден, должен появиться доступ к портам и можно запускать программу, использующую LPT-порт. В противном случае устройство, подключеное к порту на такой машине работать не будет.

Драйвер GiveIO.sys

В далеком 1996 году американский программист Дейл Робертс, провел серию экспериментов, результатом которых стал драйвер GiveIO.sys . До сих пор этот драйвер остается одним из популярных инструментов, позволяющих прикладной программе обращаться к портам ввода-вывода.

Сам автор драйвера настоятельно рекомендует использовать этот драйвер только в отладочных целях. Окончательная версия прикладной программы должна вместо самостоятельного обращения к портам ввода-вывода, поручить это дело драйверу, написанному специально для этих целей. Драйвер должен вести себя "корректно", проверяя, не используется ли уже устройство каким-нибудь другим приложением.

Однако, если вы абсолютно уверены в том, что требуемые порты ввода-вывода никто кроме вас не использует (например, у вас нет принтера, подключенного к LPT), вы можете спокойно пользоваться драйвером GiveIO.sys.

Установка драйвера :

1. Скачайте архив, распакуйте и скопируйте файл GiveIO.sys в каталог C:\Windows\System32\Drivers (подразумевается, что ваша Windows установлена в каталог C:\Windows) .
. 2. Запустите файл install.reg. На экране появится следующее сообщение:


. 3. Отвечаем утвердительно. При этом появится сообщение об успешном внесении информации в реестр. При желании, можно убедиться в этом. Запускаем редактор реестра regedit.exe и в ветви HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\giveio проверяем наличие следующих записей:


. 4. Перегружаем компьютер и проверяем работу программ, пользующихся драйвером.

Драйвером GiveIO.sys народ активно пользуется, и, со временем, появились и другие варианты его установки .

Например - драйвер GiveIO.sys при наличии файла с "информацией об оборудовании" GiveIO.inf можно установить через апплет "Установка оборудования".




Драйвер GiveIO.sys мы покажем операционной системе, чтобы она поверила в существование оборудования "GiveIO".

Скачать комплект файлов для такого варианта установки драйвера GiveIO.sys (giveio_sys_v2.rar - 78kb). Архив содержит файлы GiveIO.sys и GiveIO.inf, а так же подробную инструкцию по установке с иллюстрациями.

Помимо вариантов "ручной" установки драйвера, написано несколько вариантов инсталлятора, выполняющего установку в автоматическом режиме.

Скачать комплект файлов для автоматической установки драйвера GiveIO.sys (giveio_sys_install.rar - 28kb). Архив содержит файлы GiveIO.sys и instdrv.exe, а так же файл remove-giveio.cmd, с помощью которого драйвер GiveIO.sys можно удалить из системы.

Драйвер Port95nt

Термин "драйвер Port95nt" здесь будет не совсем корректен. По сути, это тот же драйвер DLPortIO из пакета DriverLINX от Scientific Software Tools, Inc , только в полном варианте, с парой утилит управления портом, с описанием и множеством примеров для программистов. Рядовому пользователю никакой пользы от дополнительных компонентов нет, а компоненты драйвера DLPortIO.sys и DLPortIO.dll абсолютно такие же, как и в сокращённой версии.

Упомянул о Port95nt, как о драйвере, по двум причинам. Первая - для полноты перечня встречающихся в интернете упоминаний о драйверах LPT-порта.

Вторая причина - в некоторых случаях могут быть проблемы с установкой сокращённой версии DLPortIO под WinXP. Обычно, но нечасто, это происходит в урезанных "авторских" сборках WinXP. В таком случае можно взять полную версию инсталлятора (1.5МБ). Хотя, по моему мнению, быстрее получится вручную положить в нужную папку DLPortIO.sys и DLPortIO.dll, чем заморачиваться с подбором инсталлятора, который сможет это сделать за вас.

Дополнительные меры

Кроме установки одного из вышеназванных драйверов, для нормальной работы порта LPT под ОС WinXP необходимо сделать правку реестра с помощью REG-файла xp_stop_polling.reg (xp_stop_polling.rar - 0,48kb)

Под WinXP иногда нестабильно работают устройства, использующие LPT-порт. Причиной таких сбоев может быть работа подсистемы Plug-and-Play (PnP) в Windows, периодически опрашивающей LPT с целью обнаружения подключенных устройств. Такой опрос производится при загрузке системы, но оно может происходить и при работе. К сожалению, драйвер DLportIO.sys и другие варианты драйверов не блокируют доступ к LPT от других программ при работе с портом клиента данного драйвера и подсистема PnP уверена, что порт не занят, обращается к нему и нарушает работу внешних устройств. Для устранения проблемы и служит REG-файл xp_stop_polling.reg . Этот файл прописывает в реестре Windows ключ, запрещающий такой опрос (poll) во время работы системы.

Помимо установки драйвера и ограничения одновременного доступа к порту для программ, для обеспечения аппаратной совместимости и нормальной работы оборудования с LPT-портом, необходимо в BIOS выставить правильный адрес и режим работы порта ("Normal", SPP или ЕРР, но не ECP).

Конфигурированию через BIOS Setup подлежат следующие параметры:

Базовый адрес, который может иметь значение 378h, 278h и 3BCh. При инициализации BIOS проверяет наличие портов по адресам именно в этом порядке и, соответственно, присваивает обнаруженным портам логические имена LPT1, LPT2, LPT3. Адрес 3BCh имеет адаптер порта, расположенный на плате MDA или HGC (предшественники современных видеокарт). Большинство портов по умолчанию конфигурируются на адрес 378h и могут переключаться на 278h.

Используемая линия запроса прерывания, для LPT1 обычно используется IRQ7, для LPT2 - IRQ5. Во многих "настольных" применениях прерывания от принтера не используются, и этот дефицитный ресурс PC можно сэкономить. Однако при использовании скоростных режимов ЕСР (Fast Centronics) работа по прерываниям может заметно повысить производительность и снизить загрузку процессора.

В то же время, режим ЕСР нельзя использовать с устройствами, требующими жёстких таймингов (программаторами и JTAG-интерфейсами).

В завершение немного о терминологии :

. SPP (Standard Parallel Port - стандартный параллельный порт). Нередко, для упрощения понимания, в BIOS"е обозначается термином "Normal ".
. EPP (Enhanced Parallel Port - расширенный параллельный порт) - скоростной двунаправленный вариант интерфейса. Изменено назначение некоторых сигналов, введена возможность адресации нескольких логических устройств и 8-разрядного ввода данных, 16-байтовый аппаратный FIFO-буфер. Максимальная скорость обмена - до 2 Мб/с.
. ECP (Enhanced Capability Port - порт с расширенными возможностями) - интеллектуальный вариант EPP. Введена возможность разделения передаваемой информации на команды и данные, поддержка DMA и сжатия передаваемых данных методом RLE (Run-Length Encoding - кодирование повторяющихся серий).

Lpt порт, нередко называемый параллельным — это один из наиболее старых портов ПК. Хотя, в наши дни такой порт имеется далеко не на всех материнских платах, однако он по-прежнему имеет некоторое распространение, в связи с чем многим пользователям компьютеров и оргтехники, в частности, принтеров, очень интересно узнать о том, что он собой представляет.

Для начала нужно разобрать, что подразумевает под собой аббревиатура lpt порт. Итак, под LPT подразумевается сокращение сочетания нескольких английских слов, а именно: Line Print Terminal. В переводе на русский язык LPT означает построчный принтерный терминал. Исходя из названия, становится понятно, что он в первую очередь предназначен для принтера. Но с теоретической точки зрения, к LPT можно подключать и некоторые другие аппараты. Для этой цели применяют специальный адаптер — переходник lpt. Следует добавить, что он имеет еще одно название, принятое в кругах пользователей – порт принтера.

В целом lpt порт обладает довольно длительной историей развития. Его разработали сотрудники компании Centronics, которая в начале 70-х годов прошлого века специализировалась на производстве матричных печатающих устройств. В начале 80-х годов данный порт принтера стал широко применяться со стороны фирмы IBM, которая использовала его на своих ПК. В то десятилетие lpt-порт даже успел стать стандартным вариантом, необходимым для осуществления подключения устройств с высокими скоростями, имеющихся в те годы.

Первоначально интерфейс LPT был представлен в нескольких отличных друг от друга редакциях. При этом в оригинальной версии он был однонаправленным, т.е. с его помощью можно было осуществлять передачу информации исключительно к периферийному устройству. Безусловно, подобного рода ситуация не устраивала многих пользователей, т.к. уже в те годы выпускались печатающие устройства, требовавшие осуществление передачи данных в двух направлениях. Именно поэтому некоторое время спустя, разработчикам пришлось несколько раз совершенствовать интерфейс LPTl. Данный процесс длился до тех пор, пока не был представлен его стандарт, получивший наименование IEEE 1284. Таким образом, разработчиками была представлена окончательная схема порта. Новый стандарт обладал поддержкой нескольких различных режимов работы. Кроме того, он был совместим с прежними стандартами. В своей финальной редакции интерфейс принтера мог поддерживать достаточно высокую скорость передачи информации на то время, которая достигала 5 Мб/с!

Как работает параллельный порт?

Название параллельный LPT получил вследствие того, что передача данных в подсоединяемом к нему кабеле осуществляется параллельным образом, для чего одновременно используется несколько проводников. Именно благодаря этому он существенным образом отличается от сом, который является последовательным. Количество проводников в кабеле, который подключается к LPT, как правило, восемь. Помимо этого, в нем может быть расположено несколько линий, предназначенных для передачи управляющих сигналов. Таким образом, использование порта com по сравнению с LPT имеет ряд сильных ограничений и недостатков.

Несмотря на то что порт Centronics в большей степени использовался для организации подключения между принтером и ПК, тем не менее его применяли и для других целей. К примеру, с помощью LPT можно непосредственным образом соединить друг с другом два персональных компьютера – для этого обычно используется кабель Interlink. До тех пор, пока сетевые карты Ethernet не приобрели широкое распространение, соединение подобного типа пользовалось большой популярностью. Конечно, оно не могло обеспечить пользователей действительно высокими скоростями передачи информации, но, несмотря на это, такой способ подключения двух компьютеров друг к другу в те годы был чуть ли не единственным возможным. Следует добавить, что есть даже специальные ключи электронного типа, которые предназначаются специально для подключения к параллельному порту.

Об особенностях работы LPT

Как было уже сказано выше, в отличие от com, LPT обладает поддержкой параллельной передачи данных. В первых моделях персональных компьютеров он являлся одним из наиболее скоростных. Его интерфейс благодаря возможности осуществления передачи информации по нескольким линиям, во многом схож по своей архитектуре с шинами, используемыми в ПК. Но именно обстоятельство подобного рода и ограничивает длину кабеля, которая не может превышать 5 метров. В противном случае в подключении между ПК и принтером постоянно будут возникать помехи.

Для организации обычной передачи данных, как правило, необходимо 10 сигнальных линий. Что касается остальных линий, то они применяют для совместимости со стандартом кабеля Centronics. Максимальный параметр напряжения, который применяется в сигнальных линиях LTP, обычно равен +5 В.

Разъем порта и кабель Centronics

Если говорить о разъеме параллельного порта, то он располагается на самой матплате, хотя до середины 90-х годов прошлого столетия данный элемент обычно располагался на т.н. мультикарте, которая вставлялась в слот расширения. Выходом LPT является разъем DB25 с 25-контактами.

Чтобы установить соединение между персональным компьютером и печатающей оргтехникой с помощью персонального порта необходимо воспользоваться кабелем Centronics. При этом разъем, имеющийся на оргтехнике, является 36-контактным. Таким образом, основная особенность данного кабеля заключается в наличии двух разных разъемов по обеим сторонам.
Также примите во внимание, что довольно часто разъемом Centronics называют тот разъем кабеля, который предназначен для матплаты персонального компьютера, но на самом деле им является разъем для принтера – т.е. тот, который включает в себя 36 контактов. Что касается разъема, предназначенного непосредственно для LPT, то он именуется Amphenolstacker. Подобные различия в названиях обязательно нужно знать, чтобы называть все вещи своими именами.

Итог

В заключение можно сказать, что параллельный порт Line Print Terminal является интерфейсом ПК, который к нашему времени уже порядком устарел. Несмотря на большое распространение в последние десятилетия прошлого столетия, на сегодняшний день данный порт не располагает большой поддержкой со стороны многих компаний, выпускающих компьютерное оборудование, оргтехнику и программное обеспечение. Несмотря на это, LPT по-прежнему с успехом применяется на многих устаревших к нашему времени моделях ПК и печатающих устройств. Но довольно часто для организации подключения между компьютером и старым принтером требуется наличие переходника com-lpt. Сегодня их в принципе можно найти в продаже, но при наличии необходимых знаний и навыков, спять такой переходник можно абсолютно самостоятельно.

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

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

LPT порт, это то место в компьютере, куда подключается принтер. Но туда можно воткнуть ещё много чего интересного. В том числе и придуманные вами схемы. У меня, например, через LPT порт, включался свет в комнате, реализовано управление поворотным уст-вом антенны и много было проведено других экспериментов (измерение некоторых параметров радиосхем с использованием порта и пр.).

Так выглядят разъемы на компьютере и соединительные разъемы.

Направление

Сигнал

Для простых схем управления нам понадобятся выводы:

2 - 9 - это выходы Data0-7. 18 - 25 - это земля (минус). Обычно(не всегда) они соединены с корпусом компьютера. Это основной набор контактов, необходимый для изготовления собственных схем. Также хочу обратить внимание на вывод - это "Data Strobe". Как я понял, положительный сигнал на этом выходе говорит устройству, что нужно произвести чтение очередной команды. Если мы не запитаем этот выход программно, то принтер просто не будет обращать внимания на остальные выходы. Для ввода информации в порт используются выводы 10-13, 15. Подробнее позже. Выходы порта могут принимать только 2 состояния - log0 и log1. При включении компьютера состояния выходов быстро меняются, потом переходят в log0. В зависимости от типа материнской платы один-два выхода могут перейти в log1. Далее, при загрузке ОС Windows состояния входов могут снова измениться. После окончания загрузки система не трогает выходы пока не начнется печать или "поиск оборудования. Примеры схем для отладки программ при работе с LPT портом и не только. В этом разделе, я попытаюсь привести несколько примеров схем управляемых при помощи LPT порта. Думаю, что этих схем вполне хватит для изучения принципов работы порта. Когда я начал программировать LPT порт, я спаял себе не большую схемку. Мне кажется, что это самый простой и самый наглядный пример для изучения, советую, не откладывая в долгий ящик спаять себе такую же схемку. Она нам пригодится на протяжении всех занятий:

Все резисторы на схеме по 270 - 470 ом, в зависимости от выбранных светодиодов. Резисторы здесь ограничивают потребляемый ток. По стандарту напряжение между сигнальным выводом и землей должен быть в не более 2,4V - 2.6 mA. Те. очень мало, но на самом деле современные материнские платы рассчитаны на большую нагрузку и очень часто имеют защиту от КЗ. В любом случае, с портом нужно обращаться очень аккуратно, т.к. без него материнская плата компьютера может вообще отказаться работать. Вот самая простая схема подключения реле:

Думаю, что объяснять здесь ничего не нужно. Data - это один из выходов LPT порта, например, вывод 2 (Data-0). Если на нем появится log1, транзистор откроется, сработает реле K1 и подключит какую-то более мощную нагрузку.. В этой схеме LPT порт напрямую подключен к транзистору и в случае его пробоя на выходе data может оказаться опасное для порта напряжение. Чтобы защитить порт нужно использовать гальваническую развязку. Схема с применением оптопары.

В данной схеме порт отделен от высоковольтной части и ему почти ничего не угрожает. В этой схеме я ставил оптоизолятор 4N25 - самый дешевый и маленький. Катушка на схеме - это реле на 12 вольт. Во время экспериментов я подключил к этой схеме реле РЭС22, а к нему настольную лампу. Для пробы написал программку, которая управляла лампой по часам...
Кстати, вот примерчик управления симистором:

Эту схемку я просто воткнул вместо выключателя от основного освещения в своей комнате. Итак, мы рассмотрели некоторые простейшие схемки, которые смело можно использовать в наших экспериментах с LPT портом, а в дальнейшем взять их за основу при разработке управляемых устройств. И так, из этой статьи вы узнали, что такое LPT порт и как его можно использовать в радиолюбительских целях. Так же были приведены примеры простейших радиосхем, которые будут нами использоваться для дальнейших экспериментов. Переходим к теории и практики программирования LPT порта.

|

Интерфейс LPT

Интерфейс LPT также часто называют параллельным (имеется ввиду параллельный порт). Из его названия следует, что обмн данными происходит в этом интерфейсе параллельно Это означает, что биты передаются не один за другим, как это делается в последовательных интерфейсах, а несколько бит передаются одновременно (паралельно), или, точнее, рядом, друг возле друга. То число бит, которое может быть передано за один такт, определяет разрядность интерфейса. Интерфейс LPT является 8-разрядным. Существует также множество других паралельных интерфейсов (например, SCSI, PCI и др.), поэтому название "параллельный" здесь не совсем корректно и оно вовсе не означает, что LPT "параллельнее" остальных - просто исторически сложилось такое название, и нет особых причин его менять.

Сегодня параллельный порт есть в каждом компьютере. Первоначально он предназначался исключительно для подключения принтера (LPT означает Line PrinTer), но впоследствии стали появляться и другие устройства: сканеры, мобильные дисководы, цифровые фотоаппараты, так что сейчас работа параллельного интерфейса не ограничивается только принтером, хотя в большинстве случаев это именно так и есть. LPT также часто называют Centronics в честь соответствующей фирмы, ставшей основным разработчиком параллельного порта. Соответственно и кабель для подключения принтера к РС тоже называется Centronics. Но это тоже не совсем правильно, так как разъем, непосредственно подключаемый к компьютеру, представленный в виде 25-контактной вилки (рисунок, верхняя часть), называют Amphenolstakcer, а собственно разъем Centronics находится на другом конце кабеля, идущего к устройству (нижняя часть рисунка), он тоже представлен в виде вилки, но имеет 36 контактов.

Передача данных по кабелю может вестись только в одном направении. Но некоторые устройства (современные принтеры, дисководы ZIP и т. д.) позволяют осуществлять и обратную связь. Для это го нужен другой кабель, называемый Bitronics. Внешне он (и его разъемы) ничем не отличается от кабеля Centronics, но там нужен еще и улучшенный параллельный порт (EPP/ECP), о котором речь пойдет дальше. Назначение контактов кабеля Centronics вы можете посмотреть в таблице.

25-контактный разъем 36-контактный разъем Обозначение сигнала Вход/выход Назначение
1 1 STROBE Выход Готовность данных
2 2 D0 (Data0) Выход 1 бит данных
3 3 D1 (Data1) Выход 2 бит данных
4 4 D2 (Data2) Выход 3 бит данных
5 5 D3 (Data3) Выход 4 бит данных
6 6 D4 (Data4) Выход 5 бит данных
7 7 D5 (Data5) Выход 6 бит данных
8 8 D6 (Data6) Выход 7 бит данных
9 9 D7 (Data7) Выход 8 бит данных
10 10 ACK (acknoledge) Вход Подтверждение приема данных
11 11 BUSY Вход Принтер не готов к приему (занят)
12 12 PE (Paper End) Вход Конец бумаги
13 13 SLCT (Select) Вход Контроль состояния принтера
14 14 AF (Auto Feed) Выход Автоматический первод строки (LF) после перевода каретки (CR)
15 32 ERROR Вход Ошибка
16 31 INIT (Initialize Printer) Выход Инициализация принтера
17 36 SLCT IN (Select In) Выход Принтер в состоянии On-Line
18 33 GND (Ground) - Корпус
19 19 GND (Ground) - Корпус
20 20 GND (Ground) - Корпус
21 21 GND (Ground) - Корпус
22 22 GND (Ground) - Корпус
23 23 GND (Ground) - Корпус
24 24 GND (Ground) - Корпус
25 25 GND (Ground) - Корпус
- 15 GND/NC (Ground/No Connect) - Корпус/свободный
- 16 GND/NC (Ground/No Connect) - Корпус/свободный
- 17 GND (Ground) - Корпус для монтажной платы принтера
- 18 +5 V DC (External +5 V) Вход +5 V
- 26 GND (Ground) - Корпус
- 27 GND (Ground) - Корпус
- 28 GND (Ground) - Корпус
- 29 GND (Ground) - Корпус
- 30 GND (Ground) - Корпус
- 34 NC (No Connect) - Корпус
- 35 +5 V DC/NC (External +5 V/No Connect) - +5 V/свободный

BIOS компьютера подерживает до трех параллельных портов (которые на практике редко кому требуются). Микросхема одного порта уже встроена в чипсет на материнской плате, другие могут находиться на картах расширения. Раньше такие карты широко использовались, потому что чипсет не имел соответствующих контролеров, но сейчас они вымерли и давно не производятся. Но если есть желание, можно покопаться на рынке в компьютерном хламе и найти такую карточку (на ней также есть два последовательных порта и, как правило, игровой порт и IDE-контроллер) и поставить ее в свой компьютер (правда, здесь может возникнуть проблема, куда ее вставлять, потому что они делались для шины ISA, а теперь хорошую материнскую плату со слотами ISA тяжеловато найти). При загрузке система анализирует наличие параллельных портов по трем базовым адресам: 03BCh, 0378h и затем 0278h. Первому найденному порту присваевается имя LPT1, второму LPT2 и третьему LPT3. LPT1 еще иногда называют PRN (сокращение от printer), потому что к нему, как правило, подключается принтер.

Как вы, наверное, догадались, название "LPT" тоже не совсем правильно. LPT - это название стандартного параллельного порта, самого первого, который сейчас уже вряд ли можно найти даже на рынке. Есть еще паралельные порты, называемые соответственно EPP и ECP. Но обо всем по порядку.

Стандартный парвллельный порт (LPT)

Стандартный параллельный порт, которым обладали самые первые персональные компьютеры, им оснащенные, был предназначен только для односторонней передачи данных от PC к принтеру. Он обеспечивает пропускную способность от 120 до 200 Kb/s. Как уже было сказано, он устарел.

Порт EPP

Фирмы Intel, Xircon, Zenith и ряд других совместно разработали спецификацию улучшенного параллельного порта, назвав ее EPP (Enhanced Parralel Port ).

Порт EPP является дуплексным, то есть обеспечивает передачу восьми битов данных в двух направлениям. Он поддерживает режим, при котором порт, за счет использования DMA, может пересылать информацию из RAM на устройство и обратно минуя процессор, что снижает нагрузку на последний.

EPP принимает и передает данные в несколько раз быстрее, чем стандартный LPT. Этому также способствует буфер, сохраняющий данные до того, как устройство будет способно их принять. Он позволяет подключать устройства количеством до 64 в цепочку, подобно SCSI. Для этого некоторые устройства (например, ZIP-дисковолы) имеют два разъема - один на вход, другой на выход для следующего устройства.

Порт EPP полностью совместим со стандартным портом. Для использования его спецфических функций нужна только BIOS, их поддерживающая. Максимальная скорость передачи может достигать 2 Mbps.

Порт ECP

Дальнейшим развитием параллельного порта явился порт ECP (Extended Capability Port ). Скорость передачи данных по сравнению с EPP немного возрасла, в ECP, также как и в EPP, используется метод DMА. Он позволяет создавать цепочку из 128 устройств.

Одной из самых важных функций, рализованных в ECP, является сжатие данных. Это позволяет еще больше повысить реальную скорость передачи. Сжатие возмодно как программно, путем применения драйвера, так и аппаратно самой схемой порта. Для сжатия используется метод RLE (Run Length Encoding ), при которм последовательность из повторяющихся символов передается двумя байтами: первый определяет повторяющийся байт, а второй - число повторений. Данная функция, однако, не является обязательной. Она работает только в том случае, когда и устройство поддерживает ее. Если таковой поддержки нет, то порт обменивается данными с устройством без сжатия.

Режимы параллельного порта (AT, EPP, ECP) можно выставить в CMOS Setup. Если вс работает нормально, то в любом случае ставьте EPP/ECP. Если порт поддерживает эти режимы (а это любой современный параллельный порт), то эта опция, как правило, уже установлена как оптимальное значение.

Стандарт IEEE 1284

Стандарты портов ECP и EPP были включены в стандарт Американского института инженеров по электротехнике и электронике IEEE 1284 (не путать с IEEE 1394). Большинство современных лазерных принтеров используют этот стандарт.

Стандарт IEEE 1284 определяет четыре режима работы: полубайтовый, байтовый, EPP и ECP, то есть поддерживает все ранее существовавшие стандарты параллельного порта. Все эти режимы также поддерживают двунаправленную передачу. Дополнительно к этим уже рассмотрененным функциям стандарт IEEE 1284 позволяет принтеру послать сигнал при аварии. Всякий раз при возникновении ошибки параллельный порт посылает сигнал прерывания (IRQ). (15-й контакт обычного паралельного порта не использовался для прерывания процессора, и ошибка могла быть обнаружена только если программа (драйвер) предусматривала контроль этой линии.)

Как уже упоминалось, к параллельному порту могут подключаться не только принтеры, но и другие устройства. Существуют даже конвертеры (правда, вряд ли они кем-либо используются) LPT to IDE, которые позволяют подключить к параллельному порту жесткий диск. Однако это, по-моему, уже извращение. Возможностей параллельного порта еле-еле хватает для принтеров, да и то лазерные принтеры заметно тормозят, а печать сложных графических изображений на них (да и на струйных, впрочем, тоже, хотя и в гораздо меньшей степени) будет идти с очень капитальными замедлениями. Например, картинка размером с лист A4 и разрешением порядка 600 точек на дюйм может иметь размеры не в одну сотню мегабайт (правда, лазерный принтер тогда должен иметь не меньшее количество оперативной памяти), и можно представить, сколько будет продолжаься ее передача по параллельному порту со средней скоростью 0.8-1.2 Mb/s. А что уж там говорить о мобильных дисководах, сканерах? А в случае с жестким диском прокачка нескольких гигабайт через параллельный порт может вдохновить разве что лишь самого отчаянного последователя господина Мазоха, да и то, наверное, ему надоест ждать. Так то подключать к LPT что-нибудь кроме принтера или переносного дисковода типа ZIP, когда требуется перенести не слишком большое количество данных на другой компьютер, я бы, честно говоря, не посоветовал бы. Лазерные принтеры в связи тем, что они формируют перед печатью страницу целиком, тоже очень желательно подсоединить к чему-то другому, например, к USB (если принтер не имеет возможности работы через USB, то можно воспользоваться переходником USB to LPT). А для сканеров и дисков существуют SCSI и Mobile Rack. Естественно, все это стоит денег, но тогда же зачем, простите, если нет денег, из всякого отстоя город городить. Да к тому же сейчас все РС имеют USB-разъемы, а периферии с соответствующим интерфейсом по вполне приемлимой цене в магазинах тоже хватает. Конечно, я не хочу сказать, что USB намного быстрее, чем LPT (для тех же сканеров, если вы не хотите наслаждаться притормаживаниями, нужен SCSI а не USB), но все же пропускная способность шины USB немного (на 30-35%) выше, чем пропускная способность параллельного порта. Следует еще отметить, что параллельный интерфейс уже устарел как таковой, и производители периферии давно начали потихоньку сворачивать ее выпуск в LPT-варианте, переходя на USB. Поэтому, когда вы идете в магазин за принтером (или за сканером, но не хотите платить за сканер со SCSI-контроллером), то подумайте, а стоит ли покупать антиквариат с целью выгодно продать его лет этак через 200, может все-таки лучше обзавестись чем-нибудь посовременнее?



Загрузка...