Другая жизнь lpt порта (часть 1)

Другая жизнь lpt порта (часть 1)

С реальной скидкой знакомства Комендантский проспект на лучших условиях.

Размещение сквозной ссылки

Другая «жизнь» LPT порта (часть 1)

Не ожидал, что моя первая статья вызовет такой интерес среди программистов и электронщиков, т.к. я получил массу писем с вопросами и продолжаю их получать до сих пор, хотя прошло уже почти три года с момента написания статьи. Кроме того в первой статье был допущен ряд неточностей . Это все и побудило меня на написание более подробной статьи на эту тему, в которой я постараюсь ответить на большинство вопросов уважаемых читателей и исправить те неточности, которые были допущены в первой статье. Пусть не обижаются на меня читатели первой статьи, но мы снова рассмотрим подробно каждый контактик и битик нашего LPT порта. В первой части статьи будет рассмотрена теория, во второй и последующих (если они будут) мы будем рассматривать электронные устройства, которые можно «подцепить» к этому порту.

  • В тексте вы встретитесь с общепринятой аббревиатурой записывания чисел
  • Например, — двойка в нижнем индексе указывает, что число 5 представлено в двоичном исчислении
  • – десятка в нижнем индексе, говорит о том, что число 124 десятичное

Это так… на всякий случай

Как показала практика, все программы, правильно написанные и дополненные соответствующими библиотеками (vbio32.dll, inpout32.dll, dlportio.dll и т.д.) работают на большинстве компьютеров с операционными системами семейства Windows. Я проверял работу всех своих программ (Visual Basic5.0, 6.0) на Win95, 98, Me, 2000, XP HE, XP Prof и даже в DOS6.22 (QBasic) – все работает прекрасно. В DOS-е вообще никаких библиотек не надо, там все и так работает. Сразу оговорюсь, что vbio32.dll и inpout32.dll НЕ БУДУТ РАБОТАТЬ ПОД Win2000, но совершенно спокойно будут работать под Win95, 98, Me.
Кстати, взять любую из этих библиотек вы можете здесь . Мне захотелось попробовать dlportio.dll и в данный момент я работаю с этой библиотекой. Ну и последнее, перед написанием программ необходимо правильно объявить библиотеку, которую вы используете.

  • Для inpout32.dll
    Private Declare Function Inp Lib «inpout32.dll» Alias «Inp32» ( ByVal PortAddress As Integer ) As Integer
    Private Declare Sub Out Lib «inpout32.dll» Alias «Out32» ( ByVal PortAddress As Integer , ByVal Value As Integer )
  • Для dlportio.dll
    Private Declare Function DlPortReadPortUchar Lib «dlportio.dll» ( ByVal Port As Long ) As Byte
    Private Declare Sub DlPortWritePortUchar Lib «dlportio.dll» ( ByVal Port As Long , ByVal Value As Byte )

Чем отличается Private от Public я писать не буду.

Параллельный порт для связи с принтером (или другим устройством) имеет базовый адрес &H378 (LPT1), &H278 (LPT2), &H3BC (LPT3). В данной статье мы будем рассматривать только LPT1. Адресное пространство данного порта занимает диапазон &H378-&H37F.


    Адрес &H378 называется базовым и служит для записи (чтения, но об этом попозже) данных в порт, на линии D0-D7.

Адрес &H379 (базовый+1) предназначен для чтения битов состояния с устройства, подключенного к LPT-порту (принтер, сканер и т.д)

Адрес &H37A (базовый+2) служит для записи битов управления устройства, подключенного к LPT-порту (принтер, сканер и т.д.).

Контакты 18-25 – «земля» (общий, GND, GROUND и т.д.)

Рассмотрим программирование каждого из адресов

  • Базовый адрес &H378 (LPT1) позволяет записывать данные в порт на линии D0-D7 в диапазоне от 0 до 255
  • Записываем в порт число 69

Код следующий. Для тех, кто использует
inpout32.dll dlportio.dll DOS
Out &H378, 69 DlPortWritePortUchar &H378, 69 OUT &H378, 69

  • Адрес &H379 служит для чтения битов состояния
  • Читаем состояние порта по адресу &H379

    При чтении адреса &H379 необходимо помнить, что первые три бита – не используются и всегда имеют значение лог. «1», а 7-й бит – инверсный. В результате если все контакты 15, 13, 12, 10, 11 посадить на «землю», то при чтении информации вы получите на первых трех битах (которые не используются) 1+2+4 и на 7-м бите (контакт 11-инверсный, значит, при замыкании на землю будет лог. «1») +128 итого 135. Об этом не надо забывать. Во второй части статьи мы остановимся на этом более подробно.

    Код следующий. Для тех, кто использует
    inpout32.dll dlportio.dll DOS
    Dim A as Integer
    A = Inp(&H379)
    Dim A as Integer
    DlPortReadPortUchar(&H379)
    DEFINT A-Z
    A=INP(&H379)

  • Адрес &H37A служит для записи битов управления
  • Записываем сигнал -STROBE (бит управления 0)

    Код следующий. Для тех, кто использует
    inpout32.dll dlportio.dll DOS
    Out &H37A, 10 DlPortWritePortUchar &H37A, 10 OUT &H37A, 10

    Почему 10? Давайте посмотрим в табличку

    Сигналы STROBE, AUTO, SELECT IN – инверсные, значит, чтобы на выходе контактов разъема 1, 14, 17 получить логическую «1» надо подать на эти биты логический «0», т.е. подали одно – получили противоположное. Сигнал INIT прямой (не инверсный), поэтому логическая «1» на контакте 16 появится тогда, когда мы подадим на этот бит логическую «1», т.е. что подали, то и получили.
    Попытаемся получить на контактах 1,17 – низкий уровень сигнала «0», а на контактах 14 и 16 высокий уровень сигнала «1», т.е. на выходе контактов 1,14,16,17 будет присутствовать 0 1 1 0

    На нулевой бит (-STROBE) подаем «1» (на контакте 1 будет «0»), на первый бит (-AUTO) подаем «0» (на контакте 14 будет «1»), на второй бит (INIT) подаем «1» (на контакте 1 будет «1») и, наконец, на третий бит (-SELECT IN) подаем «1» (на контакте 17 будет «0»), т.е. мы записали по адресу &H37A число 10112,-это 1310. Значит, чтобы на выходе получить 6 надо подать 13.

    Для удобства привожу таблицу со всеми возможными комбинациями чисел от 0 до 15

    Ну и, наконец, последнее в этой части статьи. Если ваш компьютер поддерживает стандарт EPP, то четвертым битом по адресу &H37A вы сможете разрешить прерывание (для LPT1 это IRQ7) от принтера, только не спрашивайте меня что это такое, я все равно ничего не знаю про прерывания. А вот пятым битом , например, подав число , вы устанавливаете шину D0-D7 в режим ПРИЕМА данных. При этом все разряды (контакты 2-9) принимают значение логической «1». Чтобы подать на нужный контакт логический «0» надо замкнуть его через сопротивление 240 – 360 Ом на «землю». Таким образом, через LPT порт компьютера мы получаем в стандартном виде устройство с 12-ю выходными сигналами и 5-ю входными, а при переводе порта в режим EPP мы получаем 4 выходных сигнала и 13 входных сигналов.


    Конец первой части.
    Во второй части статьи мы будем подключать к порту различные электронные штучки

    схемопедия

    Каталог электронных схем

    • Добавить статью
    • Обратная связь

    Другая жизнь LPT порта (часть 1)

    Другая жизнь LPT порта (часть 1)

    Не ожидал, что моя первая статья вызовет такой интерес среди программистов и электронщиков, т.к. я получил массу писем с вопросами и продолжаю их получать до сих пор, хотя прошло уже почти три года с момента написания статьи. Кроме того в первой статье был допущен ряд неточностей. Это все и побудило меня на написание более подробной статьи на эту тему, в которой я постараюсь ответить на большинство вопросов уважаемых читателей и исправить те неточности, которые были допущены в первой статье. Пусть не обижаются на меня читатели первой статьи, но мы снова рассмотрим подробно каждый контактик и битик нашего LPT порта. В первой части статьи будет рассмотрена теория, во второй и последующих (если они будут) мы будем рассматривать электронные устройства, которые можно «подцепить» к этому порту.

    Ø В тексте вы встретитесь с общепринятой аббревиатурой записывания чисел.

    Ø Например, 10102 – двойка в нижнем индексе указывает, что число 5 представлено в двоичном исчислении,

    Ø 12410 – десятка в нижнем индексе, говорит о том, что число 124 десятичное.

    Это так… на всякий случай

    Как показала практика, все программы, правильно написанные и дополненные соответствующими библиотеками (vbio32.dll, inpout32.dll, dlportio.dll и т.д.) работают на большинстве компьютеров с операционными системами семейства Windows. Я проверял работу всех своих программ (Visual Basic5.0, 6.0) на Win95, 98, Me, 2000, XP HE, XP Prof и даже в DOS6.22 (QBasic) – все работает прекрасно. В DOS-е вообще никаких библиотек не надо, там все и так работает. Сразу оговорюсь, что vbio32.dll и inpout32.dll НЕ БУДУТ РАБОТАТЬ ПОД Win2000, но совершенно спокойно будут работать под Win95, 98, Me.

    Кстати, взять любую из этих библиотек вы можете здесь. Мне захотелось попробовать dlportio.dll и в данный момент я работаю с этой библиотекой. Ну и последнее, перед написанием программ необходимо правильно объявить библиотеку, которую вы используете.

    Ø Для inpout32.dll

    Private Declare Function Inp Lib «inpout32.dll» Alias «Inp32» (ByVal PortAddress As Integer) As Integer

    Private Declare Sub Out Lib «inpout32.dll» Alias «Out32» (ByVal PortAddress As Integer, ByVal Value As Integer)

    Ø Для dlportio.dll

    Private Declare Function DlPortReadPortUchar Lib «dlportio.dll» (ByVal Port As Long) As Byte

    Private Declare Sub DlPortWritePortUchar Lib «dlportio.dll» (ByVal Port As Long, ByVal Value As Byte)

    Чем отличается Private от Public я писать не буду.

    Параллельный порт для связи с принтером (или другим устройством) имеет базовый адрес &H378 (LPT1), &H278 (LPT2), &H3BC (LPT3). В данной статье мы будем рассматривать только LPT1. Адресное пространство данного порта занимает диапазон &H378-&H37F.

    · Адрес &H378 называется базовым и служит для записи (чтения, но об этом попозже) данных в порт, на линии D0-D7.

    · Адрес &H379 (базовый+1) предназначен для чтения битов состояния с устройства, подключенного к LPT-порту (принтер, сканер и т.д)

    · Адрес &H37A (базовый+2) служит для записи битов управления устройства, подключенного к LPT-порту (принтер, сканер и т.д.).

    На приведенных ниже таблицах «расшифрованы» контакты и сигналы каждого из адресов

    Контакты 18-25 – «земля» (общий, GND, GROUND и т.д.)

    Рассмотрим программирование каждого из адресов.

    · Базовый адрес &H378 (LPT1) позволяет записывать данные в порт на линии D0-D7 в диапазоне от 0 до 255.

    · Записываем в порт число 69

    · Адрес &H379 служит для чтения битов состояния.

    · Читаем состояние порта по адресу &H379

    Ø При чтении адреса &H379 необходимо помнить, что первые три бита – не используются и всегда имеют значение лог. «1», а 7-й бит – инверсный. В результате если все контакты 15, 13, 12, 10, 11 посадить на «землю», то при чтении информации вы получите на первых трех битах (которые не используются) 1+2+4 и на 7-м бите (контакт 11-инверсный, значит, при замыкании на землю будет лог. «1») +128 итого 135. Об этом не надо забывать. Во второй части статьи мы остановимся на этом более подробно.

    · Адрес &H37A служит для записи битов управления.

    · Записываем сигнал –STROBE (бит управления 0)

    Почему 10? Давайте посмотрим в табличку.

    Сигналы STROBE, AUTO, SELECT IN – инверсные, значит, чтобы на выходе контактов разъема 1, 14, 17 получить логическую «1» надо подать на эти биты логический «0», т.е. подали одно – получили противоположное. Сигнал INIT прямой (не инверсный), поэтому логическая «1» на контакте 16 появится тогда, когда мы подадим на этот бит логическую «1», т.е. что подали, то и получили.

    Попытаемся получить на контактах 1,17 – низкий уровень сигнала «0», а на контактах 14 и 16 высокий уровень сигнала «1», т.е. на выходе контактов 1,14,16,17 будет присутствовать 0 1 1 0 (610).

    На нулевой бит (STROBE) подаем «1» (на контакте 1 будет «0»), на первый бит (AUTO) подаем «0» (на контакте 14 будет «1»), на второй бит (INIT) подаем «1» (на контакте 1 будет «1») и, наконец, на третий бит (SELECT IN) подаем «1» (на контакте 17 будет «0»), т.е. мы записали по адресу &H37A число 10112,-это 1310. Значит, чтобы на выходе получить 6 надо подать 13.

    Для удобства привожу таблицу со всеми возможными комбинациями чисел от 0 до 15

    Другая жизнь lpt порта (часть 1)

    Параллельный порт – новое знакомство!

    Автор статьи: Копыльцов Михаил ( ELC )

    Данная серия статей посвящена работе с параллельным ( LPT ) портом компьютера. В статье будут рассмотрены общие принципы передачи сигналов, приведены примеры работы с портом с исходниками кода для Visual Basic 6.0.

    В первой части рассмотрены теоретические основы, разобраны режимы работы порта, в соответствии со стандартом IEEE 1284, приведены временные диаграммы, поясняющие принципы работы порта, рассмотрены вопросы физического и электрического интерфейса.

    Часть I .

    Первое знакомство…

    Исторически так сложилось, что параллельный интерфейс появился в первых компьютерах исключительно как интерфейс подключения принтера. Отсюда и его название LPT ( Line Printer ). Однако впоследствии параллельный порт стал использоваться также и для подключения других устройств – сканеров, дисководов типа ZIP и других устройств. Изначально параллельный интерфейс позволял передавать данные только в одном направлении – от ПК к принтеру. Естественно, в скором времени, потребовалось осуществлять двусторонний обмен данными, в результате чего был разработан стандарт двунаправленной передачи данных.

    Собственно адаптер параллельного интерфейса представляет собой регистры, располагающиеся в адресном пространстве ввода/вывода. Имеются три стандартных (обязательных) регистра, без которых порт не может работать. Это регистр данных, регистр состояния и регистр управления. Стандартный LPT порт имеет 8-битную шину данных, 5-битную шину состояния и 4-битную шину управляющих сигналов.

    При загрузки BIOS пытается обнаружить параллельный порт компьютера, причем делает это совершенно примитивным способом: по базовым адресам портов (а их как правило три — & H 378 ( LPT 1), & H 278 ( LPT 2), & H 3 BC ( LPT 3)) передается тестовый байт, состоящий из набора логических единиц (реже чередование нулей и единиц), а затем производится чтение по тем же адресам. Если прочитанный байт совпал с записанным, то считается, что LPT порт найден и он исправен. Именно по этой причине, после загрузки компьютера, на линии данных порта присутствуют логические единицы. Это надо учитывать при разработке устройств, подключаемых к порту.

    Стандарт IEEE 1284

    Стандарт на параллельный интерфейс IEEE 1284, принятый в 1994 году, определяет режимы передачи данных, методы определения поддерживаемых режимов для ведущего и периферийного устройств, а также определяет физический и электрический интерфейс, в результате чего обеспечивается высокая скорость двунаправленной связи между персональным компьютером и периферией, которая может быть в 50 – 100 раз больше, чем у оригинального (стандартного) параллельного парта. При этом сохраняется полная обратная совместимость со всеми существующими периферийными устройствами параллельного порта и принтерами.

    Стандарт определяет пять режимов передачи данных:

    1. Compatibility Mode (Режим Совместимости) – стандартный однонаправленный режим передачи данных от персонального компьютера к периферийному устройству, используя протокол и интерфейс “ Centronics ”. Иногда в литературе используется под термином SPP ( Standard Parallel Port ).

    2. Nibble Mode (Режим Тетрады) – ввод байта происходит за два цикла (по 4 бита), при этом используются линии состояния (регистры состояния). Иногда в литературе именуется как режим Hewlett Packard Bi — tronics (по имени компании предложивший к использованию данный режим). Используется только для приема информации.

    3. Byte Mode (Режим Байта) – ввод байта производится целиком, для этого используется линия приема данных. Этот режим работает только в портах, допускающих чтение выходных данных ( Bi — Directional или PS /2 Type 1).

    Port ) Mode (Расширенный Параллельный Порт) – поддерживает двунаправленный обмен данными, при котором управляющие сигналы интерфейса генерируются аппаратно во время цикла обращения к порту (чтения/записи). Применяется для работы с внешними устройствами памяти ( CD — ROM , ленточными накопителями, жесткими дисками), сетевыми адаптерами и т.д.

    Port ) Mode (Порт с Расширенными Способностями) – поддерживает двунаправленный обмен с возможностью аппаратного сжатия данных по методу RLE ( Run Length Encoding ). Управляющие сигналы интерфейса генерируются аппаратно. Применяется для принтеров и сканеров нового поколения.

    На сегодняшний день почти все производители материнских плат реализуют три основные режима передачи данных ( SPP , EPP и ECP ) с помощью специализированных чипов ввода-вывода (т.е. обработка данных происходит полностью на аппаратном уровне). В результате байт данных может быть передан периферии простой инструкцией OUT (для режимов EPP и ECP соответственно), что, несомненно, облегчает задачу разработки приложений для LPT порта. Один из режимов работы (или их комбинация) задается в BIOS Setup . Режим Compatibility Mode (или SPP ) часто установлен по умолчанию.

    Подробно о стандарте IEEE 1284 можно прочитать на сайте находящимся по адресу: http :// www . fapo . com /1284 int . htm , где размещена оригинальная версия данного стандарта. Остановимся более подробно на режимах EPP и ECP , как на более современных и простых в понимании режимах работы порта. Но начнем, все-таки, с режима Compatibility Mode , на базе которого реализуется Стандартный Параллельный Порт.

    Стандартный параллельный порт ( Standard Parallel Port) – SPP

    Стандартный Параллельный Порт является однонаправленным, на его базе программно реализуется протокол обмена Centronics . В таком режиме данные передаются на линии данных, состояние периферийного устройства не проверяется ни на какие ошибки и на занятость, затем программно формируется строб данных для тактирования подключенного устройства. Сигналы порта выводятся на стандартный разъем типа DB -25 S , который размещается непосредственно на материнской плате компьютера. Назначение сигналов и контактов разъема порта представлены в таблице 1.

    Особенности и принцип работы Lpt разъема на компьютере

    LPT расшифровывается как line print terminal, что в переводе на русский означает построчный терминал принтера. Действительно, он разрабатывался именно для использования создания соединения между печатающим устройством и персональным компьютером. Параллельный порт Lpt — это уже довольно старая технология, но она используется до сих пор для подключения принтеров к компьютеру. На новых современных материнских платах такой разъем можно уже не встретить. Знать особенности, принцип работы, назначение не будет лишним и всегда пригодится при взаимодействии с печатающими устройствами. В этой статье подробно описаны все вышеупомянутые моменты. Тут же найдете схему распиновки Лпт порта, нюансы использование разъема в операционных системах Windows 7 или 10.

    История

    Датой рождения лпт технологии считается начало 1970-ых годов. Разработкой кабеля занималась фирма Centronics, потому еще можно встретить название Centronics порт. Уже через десять лет идеей заинтересовалась американская компания IBM и интерфейс начал активно использоваться на устройствах этого известного бренда.

    Изначально разъем имел более простую архитектуру. Его первые версии были в состоянии передавать информацию только в одном направлении, но и это считалось большой удачей. Уже более свежие доработки позволили изменить ситуацию. Устройство было усовершенствовано до мирового стандарта IEEE 1284 и могло развивать скорость передачи до 5 Мб за секунду. Позже он был окончательно вытеснен USB, который мы сейчас активно используем.

    Принцип действия

    По принципу действия Lpt интерфейс называется параллельным не просто так. Физически он состоит из множества проводников, по которым информация циркулирует одновременно и параллельно друг другу. Это основное свойство и отличие лпт от последовательного COM кабеля. Lpt разъем включает в себя восемь мелких проводников для передачи данных и несколько линий для отправки сигналов управления.

    Такая структура позволяет соединять между собой два персональных компьютера в одну сеть. Все что нужно для этого — наличие портов и специального шнура Interlink. Во времена, когда сетевые карты были редкостью, такая организация сети была довольно популярной. Но требовалось вносить настройки в BIOS (включать parallel port mode), что вызывало дополнительные неудобства.

    Параллельный порт и кабель Centronics

    Мы уже привыкли, что если в ПК есть Lpt, то он расположен именно на материнской плате. Но так было не всегда. Длительное время разъем располагался отдельно на мультикарте, где были другие порты. Сама карта устанавливалась непосредственно на плату ПК. Выход интерфейса представлял собой 25 контактную розетку. Ее правильное название DB25.

    Для подключения принтера используется специальный кабель фирмы Centronics, который имеет на концах вилки на 25 и 36. Сторона, на которой 36 контактов подключалась к гнезду печатающего устройства. 25 контактная соответственно к разъему на персональном компьютере.

    Особенности работы

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

    Еще одной особенностью работы можно считать использование только десяти линий. Восемь из них привлечены к передаче информации. Одновременно перемещается 8 бит данных, что преобразует их в 1 байт. Еще две линии отвечают за сообщения состояния устройства. Их может быть два — готов и занят. Все остальные каналы используются технологией Centronics в своих целях.

    Видео

    Схема распиновки

    • 1 — Сигнал готовности.
    • 2-9 для передачи восьми бит данных.
    • 10 — подтверждение от устройства.
    • 11 — занят.
    • 12 — нет бумаги.
    • 13 — принтер работает.
    • 14 — автоподача.
    • 15 — error.
    • 16 — начало работы устройства.
    • 17 — выбор.
    • 18–25 — земля.

    Порт Лпт на Windows 7 и 10

    На новых ПК или ноутбуках под управлением современных версий Виндовс, таких, как 7 и 10, можно не встретить в наличии port Lpt. Ситуации бывают разные, потому потребность в таком разъеме возникает очень часто. В этом разделе найдете инструкцию, как вернуть на место нужный порт в семерке и десятке.

    1. Откройте диспетчер устройств. Нажмите комбинацию Windows+R и введите команду devmgmt.msc.

    2. Кликните правой клавишей мыши по названию Вашего ПК и из меню выберите «Установить старое устройство».

    3. Нажимайте кнопку «Далее» без изменений.

    4. В окне выбора места хранения драйвера укажите ручную установку.

    5. В списке найдите «Порты COM и LPT».

    6. Слева выберите «Стандартные порты», а справа нужный тип порта. Последовательный — это COM порт. Порт принтера — это LPT.

    LPT-порт в схемах на микроконтроллере

    Компьютер обрабатывает сигналы параллельными потоками, поэтому ему легче «общаться» с параллельными, а не с последовательными внешними портами. В 1984 г. в составе IBM PC впервые появился параллельный порт. Задуман он был как средство подключения матричных принтеров, отсюда и название LPT — Line PrinTer или Line Printer Terminal. В дальнейшем для принтеров стали использовать быстродействующий интерфейс USB, а LPT-порт начал постепенно вытесняться из компьютерных спецификаций. Остряки сравнивают LPT с чемоданом без ручки — и выбросить жалко, и тащить невозможно. Тем не менее, «ветеран» ещё на многое способен, если, конечно, он присутствует в конкретном компьютере.

    Разъём LPT-порта имеет 25 контактов. Нормой «де-факто» считается розетка DB-25F в компьютере и вилка DB-25M в ответном кабеле (Табл. 4.2). Нумерация контактов вилок и розеток зеркальная (Рис. 4.7, а, б).

    Таблица 4.2. Раскладка сигналов в 25-контактном разъёме LPT-порта

    Рис. 4.7. Внешний вид спереди 25-контактных разъёмов LPT-порта: а) розетка DB-25F в компьютере; б) вилка DB-25M в соединительном кабеле.

    Первоначально линии LPT-порта были однонаправленными SPP (Standard Parallel Port). Часть из них работала только на вход, часть — только на выход, что по набору сигналов и протоколу обмена соответствовало принтерному интерфейсу «Centronics». В 1994 г. был утверждён новый стандарт параллельного интерфейса IEEE 1284, предусматривающий двунаправленные линии и три режима работы: SPP, EPP (Enhanced Parallel Port), ECP (Extended Capabilities Port).

    Уровни электрических сигналов LPT-порта совпадают с обычными «пятивольтовыми» логическими микросхемами. Раньше в компьютерах применялись буферные TTJl-микросхемы серии 74LSxx, позднее — КМОП-микросхемы и БИС, примерно эквивалентные серии 74ACxx. В последнем случае можно ориентировочно считать, что НИЗКИЙ уровень равен 0.1..0.2 В, а ВЫСОКИЙ — 4.5…4.9 В.

    Стандартом регламентируется нагрузка 14 мА по каждому выходу при сохранении напряжения не менее +2.4 В ВЫСОКОГО и не более +0.4 В НИЗКОГО уровня. Однако в разных материнских платах выходные буферы LPT-порта могут иметь разную нагрузочную способность, в том числе и ниже стандарта («слабый» порт).

    Требования к соединительным кабелям, подключаемым к LPT-порту:

    • сигнальные провода должны быть свиты в пары с общим проводом GND;

    • каждая пара должна иметь импеданс 56…68 Ом в диапазоне частот 4… 16 M Гц;

    • если применяется плоский ленточный кабель, то сигнальные провода должны физически чередоваться с общим проводом GND (локальные экраны);

    • уровень перекрёстных помех между сигналами не более 10%;

    • кабель должен иметь экран, покрывающий не менее 85% внешней поверхности. На концах кабеля экран должен быть окольцован и соединён с «земляным» контактом разъёма;

    • в разъёме кабеля можно запаять на контакты 1…17 последовательные резисторы C2-23 (OMJIT-O.125) сопротивлением 100…300 Ом (Рис. 4.8). Это позволит защитить компьютер от случайных коротких замыканий в нагрузке и уменьшить высокочастотный «звон» на фронтах сигналов.

    Рис. 4.8. Электрическая схема LPT-кабеля с «антизвонными» резисторами.

    Схемы соединения MK с LPT-портом можно разделить на три группы:

    • приём сигналов от компьютера (Рис. 4.9, а…з);

    • передача сигналов в компьютер (Рис. 4.10, а…д);

    • приём/передача сигналов одновременно (Рис. 4.11, a…e).

    В схемах приняты некоторые упрощения. В качестве входного сигнала указывается в основном «DO», а в качестве выходного — «АСК», хотя могут быть и другие, перечисленные в Табл. 4.2. На каждом конкретном компьютере работоспособность самодельных схем необходимо проверять экспериментально, что связано с наличием «сильных» и «слабых» LPT-портов по нагрузочной способности.

    Рис. 4.9. Схемы ввода сигналов из LPT-порта в MK (начало):

    а) резистор R1 ограничивает входной ток. Элементы R2, C1 могут отсутствовать, но они уменьшают «звон» на фронтах сигналов при длинном кабеле;

    б) буферный транзистор VT1 инвертирует сигнал. Диод VD1 не обязателен, но он защищает транзистор от ошибочной подачи большого отрицательного напряжения. Если не ставить резистор R2, то схема останется работоспособной, однако при отстыковке кабеля от LPT-порта возможны ложные срабатывания транзистора VT1 от внешних помех и наводок;

    в) диод VD1 отсекает помехи и повышает порог срабатывания транзистора VT1. Резистор R1 надёжно закрываеттранзистор VT1 при НИЗКОМ уровне с LPT-порта;

    г) буферный логический элемент DD1 имеет выход с открытым коллектором. Фронты сигналов формируются элементами R1, C1. Можно вместо инвертора DD1 поставить повторитель К155ЛП9, сделав соответствующие изменения в программе MK и компьютера;

    д) триггер Шмитта DD1 (замена — К555ТЛ2) повышает помехоустойчивость. Чем меньше сопротивление резисторов R1, R2, тем больше крутизна фронтов сигнала. При отключённом кабеле от LPT-порта резистор R1 не даёт входу микросхемы DD1 «висеть в воздухе»;

    е) последовательное включение двух логических элементов DD11, /)/)/.2увеличивает (восстанавливает) крутизну фронтов сигнала. Резистор R1 устраняет выбросы, «звон»;

    Рис. 4.9. Схемы ввода сигналов из LPT-порта в MK (окончание):

    ж) данные, поступающие от LPT-порта, предварительно помещаются в промежуточный регистр DD1. Запись производится при ВЫСОКОМ уровне на входе «С» микросхемы DD1, хранение — при НИЗКОМ. Такое решение устраняет помехи, поскольку в LPT-порт в зависимости от установленных в компьютере драйверов периодически могут выводиться случайные данные. Их устраняют программно, например, путём многократного считывания входного сигнала с линий MK;

    з) буферизация LPT-порта мощными транзисторными ключами, находящимися в микросхеме DA1 фирмы Texas Instruments. Резисторы R1…R8 могут иметь в 10… 15 раз более низкие сопротивления, что позволяет подключить параллельно выходам микросхемы А4/другие узлы устройства.

    Рис. 4.10. Схемы вывода сигналов из MK в LPT-порт (начало):

    а) непосредственное подключение выхода MK без буферных элементов. Резисторы R1, R2 уменьшают отражение сигналов в линии. Кроме того, резистор R2 защищает выход MK от случайного короткого замыкания с цепью GND в проводах соединительного кабеля;

    б) триггер Шмитта DD1 служит защитным буфером для MK при аварийной ситуации на выходе (короткое замыкание или подача большого напряжения);

    в) микросхема DD1 имеет выход с открытым коллектором, что защищает её от короткого замыкания в проводах и разъёмах соединительного кабеля;

    г) подача двух противофазных сигналов в компьютер. Цель — программная необходимость или организация дублирующего (контрольного) канала передачи данных;

    д) опторазвязка на элементах HL1, BL1, которые применяются в компьютерных механических «мышах». Транзистор КГ/усиливает и инвертирует сигнал. Для нормальной работы устройства компьютер должен выставить ВЫСОКИЙ уровень на линии «D8».

    Рис. 4.11. Комбинированные схемы ввода/вывода сигналов между MK и LPT-портом (начало):

    а) если компьютер выставляет на линии «DO» ВЫСОКИЙ уровень, то MK в режиме выхода может генерировать сигнал «АСК» через резистор R1. Если MK переводится в режим входа, то компьютер может передавать ему данные по линии «DO» через диод VD1 при этом внутренний « pull-up» резистор MK формирует ВЫСОКИЙ уровень;

    б) сигнал от LPT-порта вводится в MK через инвертор на транзисторе VT1 при этом компьютер должен выставить ВЫСОКИЙ уровень на линии «D2». Информация в MK вводится с линии «DO» через резистор R1 Высокое сопротивление резистора R1 физически развязывает входной и выходной каналы;

    Рис. 4.11. Комбинированные схемы ввода/вывода сигналов между MK и LPT-портом (окончание):

    б) сигнал от LPT-порта вводится в MK через инвертор на транзисторе VT1, при этом компьютер должен выставить НИЗКИЙ уровень на линии «DO». Информация в МК вводится через элементы R1, R3, VT2;

    г) сигнал от LPT-порта вводится в MK через повторитель на транзисторе VT1, при этом компьютер должен выставить ВЫСОКИЙ уровень на линии «DO». Информация в MK вводится через повторитель на микросхеме DD1

    ж) сигналы «D0»…«D3» вводятся в MK при НИЗКОМ уровне на линии «INIT», при этом компьютер должен настроить линии «D4»…«D7» как входы. В настройках BIOS компьютера надо установить двунаправленный режим EPP или ЕСР для LPT-порта. Информация в компьютер из МК передаётся по линиям «D4»…«D7» при ВЫСОКОМ уровне на линии «INIT». Резистор R1 переводит выходы микросхемы DD1 в Z-состояние при отключённом кабеле от LPT-порта;

    e) сигнал от MK в LPT-порт вводится через повторитель DD1.2, при этом компьютер должен выставить ВЫСОКИЙ уровень на линии «D2» и НИЗКИЙ уровень на линии «D5». Информация в MK вводится через повторитель DD1.1 при НИЗКОМ уровне налинии «D2». Стробирование сигналов по входам «Е1», «Е2» микросхемы DD1 повышает достоверность передачи данных.

    Источник: Рюмик, С. М., 1000 и одна микроконтроллерная схема. Вып. 2 / С. М. Рюмик. — М.:ЛР Додэка-ХХ1, 2011. — 400 с.: ил. + CD. — (Серия «Программируемые системы»).

    Параллельный порт компьютера

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

    История

    Прежде всего, разберемся с названием порта. Возможно, далеко не все знают, что обозначает аббревиатура LPT. На самом деле, LPT – это сокращение от словосочетания Line Print Terminal (построчный принтерный терминал). Таким образом, становится понятным, что LPT-порт предназначался, прежде всего, для подключения принтеров. Именно поэтому порт LPT имеет и еще одно название – порт принтера. Хотя теоретически могут подключаться к LPT и другие устройства.

    LPT-порт имеет давнюю историю. Он был разработан фирмой Centronics (поэтому данный порт часто называют также портом Centronics), производившей матричные принтеры еще до начала эпохи персоналок, в начале 1970-х. А в начале 1980-х LPT-порт стал использоваться фирмой IBM в своих компьютерах и на какое-то время стал стандартным портом для подключения высокоскоростных (на то время) устройств.

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

    Принцип работы параллельного порта

    Порт LPT называется параллельным потому, что в подключаемом к нему кабеле данные передаются параллельно, то есть, одновременно по нескольким проводникам. Этим свойством параллельный порт отличается от другого порта компьютера –последовательного порта COM.

    Проводников, передающих сами данные, в кабеле Centronics насчитывается 8. Кроме того, в кабеле присутствует несколько линий, по которым передаются управляющие сигналы.

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

    Как и в случае многих других устройств на материнской плате, режимы работы параллельного порта часто можно настроить через BIOS Setup. Как правило, для этого используются такие опции BIOS, как Parallel Port, Parallel Port IRQ, Parallel Port DMA и т.п.

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

    Разъем порта LPT обычно располагается непосредственно материнской плате, хотя до середины 1990-x гг. он обычно присутствовал на вставляемой в слот расширения так называемой мультикарте, на которой были также расположены другие порты компьютера. Выход порта представляет собой 25-контактный разъем типа «розетка», который называется разъемом DB25.

    Для подключения к принтеру используется специальный кабель ­­– кабель Centronics. Один конец (вилка) кабеля Centronics подключается к порту, другой (также вилка) – к специальному разъему принтера. Последний разъем имеет 36 контактов. Следовательно, особенностью кабеля Centronics является то, что он имеет разные разъемы с обеих сторон.

    Хотя часто разъем кабеля для материнской платы называется разъемом Centronics, тем не менее, строго говоря, разъемом Centronics называется лишь 36-контактный разъем для подключения к принтеру, а не к материнской плате. Разъем кабеля для подключения к порту называется разъемом Amphenolstacker, от названия разработавшей его американской фирмы Amphenol, производящей разъемы.

    Особенности работы параллельного порта

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

    Максимальное напряжение, использующееся в сигнальных линиях порта, составляет +5 В. Для простой передачи данных требуется всего лишь десять сигнальных линий – это 8 линий собственно данных, линия строб-сигнала, то есть, сигнала о готовности порта к передаче данных, и линия занятости. Остальные линии используются для совместимости со стандартом Centronics.

    Назначение выводов разъема параллельного порта DB25:

    • 1 – Data strobe (Строб-сигнал)
    • 2-9 – Данные, биты 0-7
    • 10 – Acknowledge (Подтверждение от принтера)
    • 11 – Busy (Занят)
    • 12 – Paper Out (Кончилась бумага)
    • 13 – Select (Принтер активен)
    • 14 – Auto Feed (Автоматическая подача)
    • 15 – Error (Ошибка)
    • 16 – Init (Инициализация принтера)
    • 17 – Select Input (Выбор устройства)
    • 18-25 – Земля

    Заключение

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