Сопряжение LCD дисплея c компьютером, через LPT. Управление нагрузкой через LPT порт Интерактивное управление выходами LPT порта с помощью клавиатуры или мыши

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

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

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

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

Список самых популярных причин, почему не печатает принтер подключённый по LPT

  • Первым номером в этом списке, является проверка кабеля. Да-да банально, но все же как ни крути сначала проверяем на целостность наш кабель LPT. А именно, что бы на нем не было различных физических повреждений, так же, обратите внимание непосредственно на сами коннекторы, которые подключаются к принтеру и компьютеру, они должны быть тоже в хорошем состояние, без каких либо поломанных частей или креплений.
  • Следующей причиной почему может не печатать принтер подключенный по LPT – это не плотно подсоединён кабель к LPT порту на задней стенке системного блока. На крепление по обеим сторонам присутствуют 2 винта, которые вам нужно обязательно, подключив LPT, закрепить его с помощью отвёртки.Как два незакрепленных винтика могут повлиять на работу принтера? Смотрите, ну например, так, кабель который вы подключили, через время чуть отошел, вследствие чего соединение между устройствами уже не полноценное. В результате, ваш принтер в списке устройств будет отображать состояние «Подключен » но, на самом деле печать не будет работать.

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

    Так вот, если у вас Windows 7,8 или 10, рекомендую заходить на сайт производителя и качать от туда драйвера для Windows Vista. Хоть эти операционные системы разные, но архитектура у них одна поэтому, все драйвера, которые идут на Vista подойдут и для остальных более новых систем.Этот вариант я тоже практикую постоянно и он ни разу меня ещё не подводил, принтеры которые не печатали по LPT, начинали работать как ни в чём не бывало.
  • Если вы всё-таки не нашли нужный вам драйвер для вашего устройства (Например: HP LaserJet 5L или 4L ) и вам не подошли, то программное обеспечение, которое заранее установлено в операционной системе, тогда я, вам рекомендую, попробовать скачать «универсальный драйвер для печати ».

    Как правило, подобные драйвера присутствуют у всех производителей принтеров и МФУ. Заметил такую штуку, что при обращение в техническую поддержку с проблемой связанной с драйверами (Например, не можете найти нужный драйвер ), тех. служба сразу же рекомендует попробовать и проверить результат.Скажу от себя, что иногда он помогает, но, попадаются случаи, когда установив этот драйвер, с принтером ничего не происходит и он продолжает молчать как и ранее.Но всё же, если у вас не печатает принтер подключенный по LPT и вы не можете найти нужное вам программное обеспечение, тогда обязательно скачайте и попробуйте тот универсальный драйвер, который вам предложит производитель вашего принтера. Возможно вы окажитесь счастливчиком и он вам поможет, но может быть и на оборот, так что не огорчайтесь.
  • Попробуйте подключить другой LPT кабель. Конечно, если вы не нашли на основном кабеле ни одного повреждения о которых я говорил в первом пункте, тогда скорей всего с ним всё нормально. Но все же, если у вас есть такая возможность как взять совсем другой LPT и подключить его, тогда сделайте это, да бы полностью исключить этот вариант неисправности устройства
  • Иногда, причиной по которой не печатает принтер подключенный по LPT капелью, является неправильная настройка принтера при первом его подключение. А именно, я имею веду тот момент, когда вы начинаете , у вас просят выбрать порт к которому подключено устройство, вам нужно однозначно выбрать LPT1 (Так как на материнской плате обычно присутствует только один порт LPT ).

    Многие по случайности выбирают LPT2 или LPT 3, что неверно и в результате в дальнейшем тратят уйму времени на то, что бы разобраться в чем была ошибка из-за которой не печатает принтер и как её исправить. Так что при выборе порта будьте внимательны, и обязательно выбирайте LPT 1, и тогда всё у вас будет работать нормально.
  • Ну и в заключительном пункте, расскажу о такой штуке, как Parallel port, с помощью которого и подключается принтер к компьютеру. Данный порт включается, отключается и полностью настраивается в БИОСе, кстати, именно из-за этих настроек иногда принтер подключённый по LPT и не печатает.Дело в том, что на некоторых материнках Parallel port по умолчанию отключен и принтер начинает печатать только после его включения. Но, чаще всего это происходит в тех случаях, когда , и все установки сбрасываются к заводским, как в общем и настройки порта.

    В результате при следующем включение принтер уже не будет печатать так, как нужный порт, будет попросту отключен в меню BIOS. Поэтому, и проверяем не отключен ли там нужный нам Parallel por, если стоит «Disable», тогда включаем его и радуемся работе принтера.

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

Управление выходами по заранее заданному сценарию (скрипту)

Программа управляет выходами LPT порта компьютера в соответствии с заранее заданным сценарием. В версиях, начиная с 0.2.9 есть возможность управления устройствами через COM порт (или USB-COM) с управлением до 32 выходов.Сценарий (скрипт) представляет собой текстовый файл (ASCII или Unicode), в котором последовательно записаны управляющие команды и значения, которые следует вывести в порт.
Программа идеально подходит для управления панелью из двенадцати светодиодов , непосредственно подключенных к порту.

Кроме того, благодаря WndLpt LPT порт может быть использован для управления шаговым двигателем, блоками реле, неответственными процессами, которые управляются дискретными сигналами.

Светомузыка через LPT-порт

К LPT-порту подключены 8 или 12 светодиодов?

— В таком случае легким движением руки WndLpt превращается... в светомузыкальюную установку. В этом режиме программа записывает звук с выбранного источника звуковой карты и превращает его в светомузыку. Рекомендуется выбирать источник «Стерео микшер» или «Моно выход».

Вам по душе плагины к плеерам Winamp/AIMP2/WMP?

— Да, WndLpt умеет работать как плагин визуализации для трех популярнейших плееров Winamp, AIMP2, WMP! При этом светомузыка может работать как от звука плеера, так и от любого доступного источника звуковой карты.

Интерактивное управление выходами LPT порта с помощью клавиатуры или мыши

— На вкладке «Manual » изображена схема клавиатуры; на ней отмечены кнопки, которыми можно пользоваться для управления светодиодами. Впрочем, нажимать на них можно и мышью.

— На вкладке «Pins » находятся 12 флажков (Out pins), соответствующих 12-ти выходным пинам LPT-порта. Кроме того присутствуют 5 дополнительных флажка (Input pins) не доступных для изменения. Они являются индикаторами логического уровня, подаваемого на пять входных пинов LPT порта. Правее изображен и сам порт. Красным цветом показаны пины, на которые подано напряжение соответствующее уровню логической единицы. Синим — соответствующее уровню логического нуля. Бледн ым цветом отображены входные пины; когда к ним ничего не подключено — они находятся в состоянии логической единицы. Бел ым цветом показаны «общие» пины.

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

Примеры управления светодиодами

О том, как подключить 12 (или 8) светодиодов к LPT порту читаем в статье «Подключение двенадцати светодиодов к LPT порту ».

О том, как заставить WndLpt управлять светодиодной иллюминацией рассказано в статье «Светодиодная иллюминация с помощью WndLpt ».


Быстрый старт

Работа WndLpt по сценарию

1. Запустить исполняемый файл wndlpt.exe из главного меню или папки с программой.

3. Сценарий будет автоматически откомпилирован и запущен. Можно наблюдать за светодиодами или другим устройством, подключенным к LPT порту.

Работа WndLpt в качестве самостоятелной светомузыки

1. Запустить исполняемый файл wndlpt.exe.

2. Выбрать вкладку «Music».

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

4. Клик левой кнопкой по картинке панели светодиодов меняет предполагаемый цвет светодиодов. Правой кнопкой — расположение светодиодов.

Работа WndLpt в качестве плагина визуализации Winamp, AIMP2, WMP

1. Установить WndLpt Plugin for Winamp/AIMP2/WMP.

3. Запустить плеер и активировать плагин визуализации WndLpt.

Прочее

* При запуске без параметров командной строки программа выполняет скрипт autorun.txt, в случае, если таковой присутствует в папке исполняемого файла.

* Окно программы можно скрыть (фоновый режим) и обратно показать — эти действия можно выполнить при помощи контекстного меню иконки, появляющейся в панели задач . Скрытие и показ окна могут быть заложены в сценарии.

* Можно выполнить перезапуск сценария (в любое время) при помощи функциональной клавиши F6 или соответствующей кнопки в системном меню, при этом файл сценария будет считан и откомпилирован заново.

* Отладчика открывается по кнопке F12.

* Исправлено: Stroboscope длина паузы обновляется при изменении с клавиатуры

* Новое: WndLpt SDK

* Новое: Команда: random call Function1 Function2 Function3 ; вызов произвольной функции

* Новое: Команда: random jump Label1 Label2 Label3 ; переход на произвольную метку

* Новое: Команда: 00??00??00?? ; ? - бит, устанавливаемый случайным образом

* Новое: Команда: ? (3,4,7,8,11,12) ; биты, устанавливаемые случайным образом

* Улучшено: Команда: call Func1 Func2 Func3 Func4 последовательно вызывает указанные функции

* Новое: Библиотека wndlpt_remap.dll для переназначения пинов порта (шаблон для C++ и Delphi)

* Новое: Проект wndlpt_gate как шаблон программы (C++, VB.NET) использующей WndLpt для прямого доступа к LPT порту

* Новое: Stepdrive для управления с помощью произвольных систем

* WndLpt plugin: Добавлена поддержка AIMP3

* Утилиты LPT Buttons, Stroboscope, EasyDrive работают в Windows Vista/Seven/7

* LPT Buttons: добавлена возможность редактирования положения кнопок

* EasyDrive: добавлены кнопки для ручного выполнения шагов, добавлены новые системы управления

* Исправлены надписи «Pin 2, 3, 4» на вкладке «Pins»

* Исправлена работа мышкой с кнопками виртуальной клавиатуры

### Добавлены новые утилиты ###

* LPT Buttons - новое средство для управления пинами порта

* Stroboscope - удобное управление стробосткопом

* EasyDrive - управление шаговым двигателем

* Реакция на 5 входных сигналов LPT порта «test i 1»

* Реакция на 12 выходных сигналов LPT порта «test q 3»

* Реакция на состояние пинов порта "test pin 12"

* Синтаксис: test

* Ветвления по командам jz , jnz

* На вкладке «Manual» флажок «Arrows like 1, 2, 3, 4» - стрелки работают как кнопки 1, 2, 3, 4

* На вкладке «Manual» флажок «Not fix digital buttons» - меняет логику работы цифровых кнопок

* Эмуляция часов с минутной и часовой стрелкой «cmd enable_clock 1»

* Установка нового состояния числом в десятичной системе $ 95

* Установка нового состояния числом в шестнадцатеричной системе $ 5Fh, $ 0xFED

* Добавлена настройка степени фильтрации (вызывается правым кликом по слову Filter)

* Добавлены ярлыки для запуска плееров в Windows Vista и 7

* Добавлены ярлыки для помещения в автозапуск (папка WndLpt => Links в меню Пуск )

* Добавлены исполняемые файлы для работы в Windows 98/ME (wndlpt98.exe, vis_wl98.dll, lptport98.exe)

* Добавлена новая утилита для управления стробоскопом (stroboscope.exe)

* Новые вкладки: Manual, Pins, Settings

* Новая команда "cmd enable_music 1"

* Новая команда "cmd music_preset [+num | -num | num]"

* Новая команда "shift [=num | +num | -num]"

* Доработана команда "cmd switch_to_music"

* Доработан плагин визуализаци vis_wndlpt.dll для WMP 11 (Windows Media Player)

* wndlpt.exe является загрузчиком для vis_wndlpt.dll

* Вкладка Manual для управления выходами с клавиатуры

* Вкладка Pins для управления выходами с помощью мыши

* Вкладка Settings для выбора базового адреса LPT-порта

* Добавлен плагин визуализаци vis_wndlpt.dll для Winamp 5

* Добавлен плагин визуализаци vis_wndlpt.dll для WMP 10 (Windows Media Player)

* Добавлен плагин визуализаци vis_wndlpt.dll для AIMP2

* Файл vis_wndlpt.dll одинаков для всех плееров.

* Добавлен выбор источника звука для светомузыки

* Добавлена автоподстройка светомузыки под уровень звука

* Добавлено переключение режимов Моно/Стерео

* Добавлена фильтрация

* Добавлена возможность изменения количества светодиодов

* Добавлена визуализация музыки — светомузыка

* Добавлена картинка, отображающая ожидаемое состояние светодиодов

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

Схема устройства

За исходную схему была взята одна из схем , найденных в Internet и выглядела она вот так:

Но только с небольшим изменением: между 1-ым пином оптопары 4N25 и 2-ым пином LPT был добавлен резистор на 390 Ом, и еще добавлен светодиод для индикации включения. Схема была собрана в тестовом режиме, т.е. просто соединена проводами так как нужно и проверена. В этом варианте она просто включала и выключала старый советский фонарик.
Было решено, что если уже делать управление, то не для одного устройства, а минимум на 4 устройства (из расчёта: одна лампа на столе, люстра на два выключателя, запасная розетка). На данном этапе стало необходимо построение полной схемы устройства, начался выбор различных программ.
Были установлены:

  1. KiCAD
  2. Eagle
Посмотрев все их них я остановился на Eagle, так как в его библиотеке были «похожие» детали. Вот что получилось в нем:

На схеме использован порт DB9 т.е. обычный COM порт, это сделано из соображений экономии как места на плате, так и самих разъёмов (COM"вские у меня были), а так как мы будем использовать только 5 проводников, то этого нам хватит с запасом. Таким образом делаем еще и переходник с DB25 (LPT) на DB9 (COM), в моем случае делается он следующим образом:
LPT 2-9 pin = COM 1-8 pin - это управляющие пины данных;
LPT 18-25 pin (зачастую они соединены между собой) = COM 9 pin - это наша земля.
Так же в схеме используется дополнительное питание на 12В для питания реле, по плану это будет простое китайское зарядное или может быть крона на 9В (одно реле срабатывает нормально, надо проверить на 4 одновременно). Отдельное питание и гальваническая развязка с помощью оптопары используется для того чтобы обезопасить порт компьютера. При желании можно конечно запитаться от 12В блока питания компьютера, но это каждый делает сам и на свой страх и риск.

Необходимые детали для создания устройства
  1. COM порт - 1 шт
  2. коннектор питания - 1 шт
  3. светодиод зелёный - 4 шт
  4. оптопара 4n25 - 4 шт
  5. посадочное место под оптопару (у меня было только на 8 ног) - 4 шт
  6. резистор 390 Ом - 4 шт
  7. резистор 4,7 кОм - 4 шт
  8. транзистор КТ815Г - 4 шт
  9. реле HJR-3FF-S-Z - 4 шт
  10. зажимы на 3 контакта - 4 шт
  11. фольгированный текстолит

Подготовка схемы печатной платы

Попытавшись использовать Eagle для подготовки печатной платы я понял, что это будет сложновато и решил найти более простой вариант. Этим вариантом стала программа sprint layout 5 пусть она и в исполнении для windows, но без проблем запускается в wine под linux. Интерфейс у программы интуитивно понятный, на русском языке и в программе имеется достаточно понятная помощь (help). Поэтому все дальнейшие действия по разработке печатной платы производились в sprint layout 5 (далее SL5).
Хоть и многие используют данную программу для разработки плат своих устройств, в ней не оказалось необходимых мне деталей (даже в куче скачанных коллекций макросов). Поэтому пришлось сначала создать недостающие детали:
  1. COM порт (тот что был не совпал с моим, по отверстиям крепления)
  2. гнездо питания
  3. зажим на три контакта
  4. реле HJR-3FF-S-Z
Вид этих деталей:

После добавления необходимых деталей началось само проектирование печатной платы. Проходило оно в несколько попыток, было их около пяти. Каждый вариант платы печатался на картоне прокалывались отверстия и в них вставлялись детали. Собственно так и было выяснено, что мой COM порт не совпадает с тем который был в SL5. Так же всплыла небольшая ошибка в схеме реле - реально корпус реле был сдвинут на 2-3 мм. Естественно все ошибки были исправлены.
На первом печатном варианте выяснилось еще и не правильное подключение транзистора, были перепутаны два контакта.
После всех исправлений и подгонок получилось плата следующего вида:

В SL5 есть функция «Фотовид» для просмотра платы, вот как она выглядит в нем:

На финальном варианте платы будут еще немного подправлены дорожки, а в остальном она выглядит так же.

В SL5 так же есть удобный вариант печати платы, можно скрывать не нужные слои и выбирать цвет печати каждого слоя, что очень пригодилось.

Подготовка печатной платы

Плату решено было делать методом ЛУТ (лазерно-утюговая технология). Далее весь процесс в фото.

Вырезаем необходимого размера кусок текстолита.

Берем самую мелкую наждачку и аккуратно зачищаем медную поверхность.

После зачистки поверхности её необходимо промыть и обезжирить. Промывать можно водой, а обезжиривать ацетоном (в моем случае это был растворитель 646).
Далее печатаем на лазерном принтере на мелованной бумаге нашу плату, не забыв в принтере установить самую жирную печать (без экономии тонера). Этот вариант получился немного не удачным, так как размазался тонер, но другая попытка была в самый раз.

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

Далее необходимо подготовить раствор для травления. Я использовал для этого хлорное железо. На банке с хлорным железом написано, что раствор необходимо делать 1 к 3. Я немного отступил от этого и сделал 60 г хлорного железа на 240 г воды, т.е. получилось 1 к 4, не смотря на это травление платы происходило нормально, только немного медленнее. Обратите внимание на то, что процесс растворения сухого хлорного железа в воде идёт с выделением тепла, поэтому всыпать его в воду необходимо небольшими порциями и размешивать. Естественно для травления необходимо использовать не металлическую посуду, в моем случае это была пластиковая ёмкость (вроде от селёдки). У меня получился вот такой раствор:

Перед тем как опустить плату в раствор, я с помощью скотча приклеил к её обратной стороне леску, что бы было удобнее доставать и переворачивать плату. Если раствор попадет на руки надо быстро его смыть с мылом (мыло его нейтрализует), но пятна могут все равно остаться, все зависит от конкретных условий. Пятна с одежды вообще не выводятся, но мне повезло этого не проверить на себе. Погружать плату в раствор надо медью вниз и не всю плашмя, а под углом. Время от времени плату желательно очищать от отработки, так как она мешает дальнейшему травлению. Делать это можно при помощи ватных палочек.

Весь процесс травления у меня занял 45 минут, хватило бы и 40 минут, но я был просто занят ещё одним делом.
После травления промываем плату с мылом отрываем скотч с леской и получаем:

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

Следующим шагом является сверление отверстий. У меня на плате предусмотрены были отверстия 1мм и 1.5 мм изначально, так как найти более тонких свёрл не удалось. Так же найти у нас в городе цанговый патрон для крепления его на электромоторчик не удалось, поэтому все делалось большой дрелью.

Первое устройство подошло

На первый раз я взял только два сверла, а при использовании такой дрели этого оказалось мало. Одно сверло сломалось, а второе погнулось. Все что я успел просверлить в первый день:

На следующий день я купил пять свёрл. И их как раз хватило, так как если они не ломаются (кстати из пятёрки сломал только одно), то тупятся, а при сверлении тупыми - портятся дорожки, медь начинает отслаиваться. После полного сверления платы получаем:

После сверления необходимо провести лужение платы. Для этого я использовал старый способ - паяльник, флюс ТАГС и олово. Хотелось попробовать с использованием сплава Розе, но его не найти у нас в городе.

После лужения получаем следующий результат:

Далее необходимо промыть плату для удаления остатков флюса, так как ТАГС водоотмывной, то делать это можно или водой или спиртом. Я сделал что-то среднее - отмывал старой водкой и протирал ватными палочками. После всех этих действий наша плата готова.

Монтаж деталей

Для проверки правильности платы изначально собираю только одну(из четырёх) линию деталей, мало ли где закралась ошибка.

После монтажа деталей идём и подключаем устройство к компьютеру через LPT, для этого спаян переходник с DB25(LPT) на DB9(COM) в следующем виде:

  • 2 пин DB25 к 1 пину DB9
  • 3 пин DB25 к 2 пину DB9
  • 4 пин DB25 к 3 пину DB9
  • 5 пин DB25 к 4 пину DB9
  • 6 пин DB25 к 5 пину DB9
  • 7 пин DB25 к 6 пину DB9
  • 8 пин DB25 к 7 пину DB9
  • 21 пин DB25 (можно любой с 18 по 25) к 9 пину DB9
Так как в качестве провода использовалась обычная витая пара, то не хватило одного проводка, но для данного устройства достаточно только пяти проводов, так что данный вариант подходит. В качестве включаемой нагрузки у нас выступает простой советский фонарик. Ну и в качестве блока питания - универсальный китайский блок питания (4 коннектора и питание от 3 до 12 в). Вот все в сборе:

А вот уже устройство работает:

На этом закончился ещё один вечер и монтаж остальных деталей был оставлен на следующий день.

А вот и уже полностью собранное устройство:

Ну и небольшое видео о том как это работает (качество не очень, не было чем снять нормально)

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

Программная часть

Естественно для управления LPT портом нужно какое-то ПО, но так как у меня дома linux, то было решено просто написать простейшую программку самому, а в последствии её уже дописать и адаптировать как надо. Выглядела она примерно так:
#include
#include
#include
#include
#define BASE 0x378
#define TIME 100000
int main ()
{
int x = 0x0F;
int y = 0x00;
if (ioperm (BASE, 1, 1))
{
perror ("ioperm()");
exit (77);
}
outb (x, BASE);
return 0;
}

Данная программка отправляет в LPT порт 0x0F = 00001111, т.е. подает 1 на 2-5 пины (Data0-Data3), а это и есть наше управляющее напряжение между 2-5 пинами и землей (18-25 пины), таким образом будут включаться все четыре реле. Точно так же действует программа для отправки 0x00 в порт для отключения, просто вместо x отправляется y - outb (y, BASE). Еще можно прочитать состояние порта:
#define BASEPORT 0x378 /* lp1 */
...
printf("статус: %d\n", inb(BASEPORT));
...

Единственный нюанс этой программки в том, что её необходимо выполнять от root, так как простому пользователю не доступна функция ioperm. Думаю, как решать такую проблему можно не рассказывать, каждый выберет более подходящий ему вариант.

В последствии программа была доработана так, что бы передавая ей параметры командной строки можно было указывать с каким устройством и что сделать.
Вывод «sw --help»:
Программа для управления реле через LPT порт.
У программы может быть один или два параметра.
Формат параметров: sw [номер устройства] [действие]
номер устройства - от 1 до 8
действие - "on", "off", "st" - включение, выключение, статус
Пример: "sw 2 on" для включения второго устройства или "sw --help" для вывода помощи

PS если кому понадобится, то потом могу где-нибудь выложить файл схемы платы в sl5 и исходник программки управления.

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

Графический ЖК индикатор - подключение через LPT порт

Графический ЖК индикатор 128x64 пикселя Fordata FDCG12864B (KS0108B)- подключение к компьютеру через LPT порт. Мы его подключили.

- Как подключить ЖК панель?
- В розетку!
- Вы не поняли, имеется ввиду ЖК монитор!
- В розетку и к компьютеру!


Жидкокристаллический индикатор в компьютере смотрится модно и стильно, но полезнее всего он будет смотреться, скорее в медиацентре. Особенно когда он графический. Тут уж есть где поупражняться в искусстве информационной эргономики и монохромного пиксельного арта. Будем заниматься?
Решили единогласно:- "Да, будем!".
Что мы приобрели: пару ЖК индикаторов 128x64 пикселя Fordata FDCG12864B (KS0108B), а остальное у нас было.
А вот что было: LPT кабели Centronics, подстроечные резисторы на 10 КОм, обычные резисторы на 10 Ом (0,25 Вт), разьемы молекс - "папа".
Логичный вопрос: Зачем два ЖК индикатора?
Ответ: Количество индикаторов равно числу соавторов.



После приобретения индикатора первым делом мы решили узнать, что это зверь такой? Оказалось, что он чистокровный "китаец", его "отцы" обитают на сайте fordata.cn , оттуда мы извлекли его скромное описание в количестве 1 страницы в формате.pdf.
Однако, "отцы"-создатели на одной странице умудрились разместить массу полезной информации: размеры девайса, блок схему, фичи, распиновку, механические спецификации, диапазоны питания и электронные характеристики.
Схема соединения ЖК индикатора с LPT портом довольно простая, но требует внимательности, усидчивости и конечно-же умения паять (провода к контактам).
Важно заметить, что контакты на LPT разьеме пронумерованы, следует только внимательно посмотреть, и они станут заметны, то же относится и ЖК индикатору, на противоположной от экрана стороне можно заметить маркировку, подобную той, что указана на схеме:


Схема подключения ЖК индикатора к LPT порту.

LPT порт

ЖК индикатор

GND 1 (Vcc) Общий вывод
+5V 2 (Vdd) Напряжение питания
контрастность 3 (V0) Контрастность
17 4 (RS) Выбор: команда/данные
GND 5 (R/W) Выбор: чтение/запись
1 6 (E) Стробирование данных
2 7 (DB0) Шина данных
3 8 (DB1) Шина данных
4 9 (DB2) Шина данных
5 10 (DB3) Шина данных
6 11 (DB4) Шина данных
7 12 (DB5) Шина данных
8 13 (DB6) Шина данных
9 14 (DB7) Шина данных
14 15 (CS1) Выбор кристалла 1
16 16 (CS2) Выбор кристалла 2
+5V 17 (RST) Начальная установка
контрастность 18 (Vee) Выход DC-DC преобразователя
+5V+10Ohm 19 (A) + питания подсветки
GND 20 (K) - питания подсветки

Поясняем наличие резистора в узле подсветки. Согласно электронным характеристикам прибора (т.е. ЖК индикатора), его номинальное напряжение питания подсветки составляет 4,2V, максимальное 4,5V и этим самым резистором мы немного успокаиваем "нрав блокам питания". На фотографии задней стороны индикатора можно увидеть контактные площадки от CD-ROM-а, заботливо припаянные Альбертом.



Передняя сторона индикатора.


Задняя сторона индикатора.

Спаяли? Прежде, чем подключать, еще раз проверяем соответствие спаянного и схемы. Если всё верно, терпим! Не подключаем! Мы предполагаем, что вы уже подключили, но там ничего не видно кроме подсветки. :-).
Для того, чтобы вывести на индикатор какую-либо информацию, необходима программа обслуживающая индикатор, поэтому..

Вторая часть софтверная-программная.

Для начала необходимо разрешить программам, взаимодействующим с ЖК индикаторами работать напрямую с LPT портом. Для этого потребуется установить драйвер прямого доступа к портам (Port I/O Driver), который лежит тут - port95nt . Затем потребуется перезапустить компьютер.
После этого, можно устанавливать программу, которая будет обслуживать наш ЖК индикатор. Их много было, остались самые стойкие. Одна скрипто-ориентированная (поддерживает огромное количество индикаторов), другая мышко-кликательная (напоминает, чем-то интерфейсы сред ООП). Название первой LCDHype , а второй LCDStudio (требует наличия в системе компонентов.NET). Каждый выбирает ту, что больше по душе.
Ниже представлены результаты запуска индикатора на стенде с программой LCDStudio. Экраны сделаны авторами в процессе освоения данной программы:



Часы и дата.


Немного системной информации.


Логотип.


Еще один логотип.

Резюме: Как мы видим, ЖК индикаторы производства Fordata прекрасно подключаются к LPT порту компьютера. Выбрав удобный софт - можно рисовать на этом индикаторе что угодно и даже выводить какую-нибудь полезную информацию.

Наблюдения: Замечено, что их изображение в LCDHype не "глючит" от runtime 1, как некоторые индикаторы отечественной фирмы МЭЛТ , который мы так и не смогли найти в наличии у местных дилеров. К недостаткам индикаторов этот факт ни коим образом не относим и даже стоит отметить, что сопровождение и информативность документации самого сайта фирмы МЭЛТ на момент написания статьи -находится на довольно высоком уровне.

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

Желаем успеха при подключении ЖК индикаторов!

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

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

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

  • Внутренние - для подключения устройств внутри ПК (жесткие диски, видеокарты, платы расширения).
  • Внешние - для подключения внешней периферии (сканера, монитора, клавиатуры, фотоаппарата, флешки).

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

Появление LPT-порта

Изначально LPT-port (его еще называют разрабатывался только для подключения к ПК принтеров, это отражено даже в его названии - Line Printer Terminal, построчный принтерный терминал. Но в дальнейшем этот интерфейс стал применяться и для подключения других устройств: сканеров, дисководов и даже компьютеров между собой.

LPT-port был разработан компанией Centronics, занимавшейся в 70-х годах прошлого века производством матричных принтеров. Но уже через 10 лет его стала использовать фирма IBM для подключения своих скоростных устройств. Дело дошло до того, что было несколько вариантов данного интерфейса от разных производителей периферии.

В первоначальной версии этот порт был однонаправленным, то есть мог передавать данные только в одном направлении: от компьютера к периферийному устройству. Но это ограничение вскоре перестало устраивать пользователей, так как на рынок массово начали выходить устройства с возможностью передачи данных в обоих направлениях. Для этого различные производители предлагали свои усовершенствования - двунаправленный, ECP, EPP и другие. Пока в 1994 году не был принят международный стандарт IEEE 1284.

Схема LPT-порта

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

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

Принцип работы LPT-порта

В простейшей конфигурации, чтобы реализовать принцип работы параллельного интерфейса, хватило бы только одиннадцати проводов, а именно: 1 провод на корпус (масса), 2 провода подтверждения и 8 проводов передачи данных. Но, по общепринятому стандарту IEEE 1284, каждый из восьми проводов передачи (2-9) данных имеет отдельное заземление.

Во время передачи данных оба устройства должны сообщать друг другу сведения о своем состоянии. Это реализуется с помощью контактов 18 и 35, на которые подается напряжение 0 В либо 5 В.

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

По контакту 11 передается компьютеру сигнал BUSY, сообщающий, что устройство выполняет действие (занято), обрабатывая ту информацию, что находится в буфере.

По контактам 12-14 передаются сигналы, сообщающие контрольные сигналы о состоянии принтера и конфликтах в его оборудовании.

По проводнику 12 на ПК передается информация о том, что в принтере нет бумаги. Компьютер реагирует на это передачей сигналов по линиям SELECT и ERROR и останавливает печать.

По проводнику 13 на компьютер передается информация о состоянии принтера - включен и готов или выключен и не готов.

По контакту 14 принтеру передается сигнал об автоматическом переводе строки.

По контакту 31 (16) передается сигнал о переводе принтера в начальное состояние и очищается буфер данных, т. е. все данные стираются из памяти принтера.

По контакту 32 (15) передаются все сигналы об ошибках во время передачи данных. Сигналы, передаваемые по этой линии, влияют на все остальные контакты и могут остановить печать. Например, часто возникающая ошибка принтера - Time Out, возникающая, когда принтер занят однотипной работой с данными и не может передать на ПК через сигнал BUSY, что он не готов к получению новых данных. Через некоторое время по линии ERROR на компьютер передается ошибка Time Out и новые данные не передаются. Иначе, при отсутствии сигнала ERROR, происходила бы дальнейшая передача данных, что привело бы к зависанию всей системы.

По контакту 36 (17) передается информация о готовности принтера к работе, например после устранения ошибки.

Режимы работы LPT-порта

Существует несколько режимов работы LPT-порта, которые позволяет использовать стандарт IEEE 1284:

  • SPP (Standard Parallel Port) — представляет собой однонаправленный порт, который отлично совмещается в работе с интерфейсом Centronics.
  • NibbleMode — использование этого порта является возможностью организации двунаправленного обмена данными в режиме SPP, при помощи использования управляющих линий (4 бит) для передачи данных от периферийного устройства к контроллеру.
  • Byte Mode— режим для двустороннего обмена данными, который используется довольно редко. Его применяли в некоторых старых контроллерах до принятия стандарта IEEE 1284.
  • EPP (Enhanced Parallel Port) — над разработкой этого порта работали сразу несколько известных компаний: Intel, Xircom и Zenith Data Systems. По своей работе это двунаправленный порт, который передает данные со скоростью до 2 Мбайт/сек.
  • ЕСР (Extended Capabilities Port) — этот вариант порта появился в результате работы двух компаний: HP и Microsoft. У него появились уже дополнительные возможности, например, возможность аппаратного сжатия данных, присутствие буфера и способность работать в режиме DMA. Также поддерживает работу двунаправленного обмена данными (симметричного), скорость которого может быть до 2,5 Мбайт/с.

Настройка LPT-порта

Настройка LPT-порта происходит в два этапа: предварительная настройка аппаратных средств порта и текущее переключение режимов порта прикладным ПО.

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

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

Виды реализаций LPT-порта

Раньше большинство производителей материнских плат размещали контроллеры LPT-port на своей продукции либо на задней панели платы. Был еще один вариант расположения. В некоторых случаях было удобно помещать контроллер на самой плате - коннекторе для подключения внешней LPT-port планки. Но с момента появления более скоростных интерфейсов для передачи данных материнских плат с распаянными LPT-портами становилось все меньше и меньше. Сейчас даже не у каждого производителя в ассортименте выпускаемой продукции имеются такие платы. И тогда на помощь приходят карты расширения, подключаемые к более современным интерфейсам:

  • PCI - LPT-port. Переходник между LPT-портом и более современным разъемом PCI.
  • PCI2 - LPT-port (PCI-Ex. 2.0). Переходник между LPT-портом и разъемом PCI-Ex.2.0
  • USB - LPT-port. Переходник между LTP-портом и современной версией широко используемого USB-разъема.

Современное применение LPT-порта

Из-за способности параллельной передачи данных такого порта, в 70-х - 80-х годах он зарекомендовал себя одним из самых быстроработающих интерфейсов компьютера. Поэтому он использовался даже для соединения 2-х компьютеров между собой. Но эта же особенность накладывает и ограничение на максимальную длину кабеля из-за возникающих помех в соседних проводниках. Длина не может превышать 5 м, иначе искажения сигналов превышают допустимые для корректного распознавания данных.

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