Порты (COM и LPT). Драйвер для работы с LPT портом (интегрированным или в виде платы PCI) Программный класс использования библиотек работы с LPT портом

The Chinese company ID-Cooling, known first of all for low-cost cooling systems, announced the release of a new, unattended processor Auraflow 240. The novelty is compatible with all current processor platforms, and its main customers, according to the manufacturer"s idea, should become fans of LED RGB-illumination and are to be owners of motherboards from ASUS.

Specifications

Thickness - 1.1" (2.2" w/fans)

Width - 4.7" (120mm)

Depth - 10.8" (274mm)

Pump Height - 1.7" (43mm)

Controller - None (BIOS)

Cooling Fans - (2) 120 x 25mm

Connectors - (1) 3-pin, (2) PWM

Weight - 38 Ounces

Intel Sockets - 775, 115x, 1366, 2011x/2066

AMD Sockets - AM4, 4-bolt Legacy

Warranty - 3 Years

The Auraflow 240 is in black color, and its size is really great. On the front side of the box there is a beautiful photo of the pump and radiator of the SZHO, and just below there are the key features of …

Kolink has announced the Observatory chassis, aimed at assembling desktop systems with rather strict, though eye-catching outer appearance.

The novelty, performed in black, possesses the front and one side panels out of smoked tempered glass 4 mm thick. The case encloses four 120 mm fans, supplied with the multi-coloured RGB-backlighting, three of which are located on the front, and one - at the rear. Users may also add two 120 mm coolers in the top part.

This framework presupposes the utilizing of E-ATX (up to 279 mm wide), ATX, Micro-ATX and Mini-ITX motherboards. There also are mounting seats for seven expansion cards. The length of discrete graphics accelerators should not overcome 390 mm. Besides, the Observatory chassis is able to house two drives of the 3.5” or 2.5” form factor. In the case of liquid cooling system applying one may install 240 mm heatsinks at the front and atop, while the CPU cooler is …

Zotac, a well-known designer of graphics solutions, has developed a unique in design graphics card. Entitled Zotac GeForce GTX 660 Thunderbolt, this card is heading a new Thunderbolt Edition series that is considered to be a more affordable product than Extreme series. The novice is equipped with an original PCB and an effective cooling system.

Zotac GeForce GTX 660 Thunderbolt is primarily characterized by a unique cooling system that consists of a large aluminum heatsink, three cooper heat pipes which get in contact with GPU from one side, and a couple of 100 mm fans. It should be mentioned that Zotac developers have realized a dedicated Eclean technology in their card that enables a hassle-free demounting of fans and top cover with the purpose of cleaning the cooler from dust.

GK106 chip, designed on Kepler architecture under 28 nm technological process, functions as the basic element in GeForce GTX 660 Thunderbolt card. It involves 960 CUDA cores and operates at 980 MHz …

С этой проблемой сталкиваются все, кто пытается подключить какие-либо устройства к LPT -порту. Как только Вы скажите программе «используй LPT », то получите ошибку – она отражена на скриншоте справа. Итак, давайте попробуем разобраться и устранить её.

Я столкнулся с ней, когда добавлял плату контроллера с 1-LPT и 2-COM портами. В этом была определённая необходимость – подключение Band -decoder RU -005A . Об этом в будет рассказано в следующей статье. А пока, хотелось бы получить корректно работающий LPT -port в Win -Test под ОС Windows -7 (64 bit ).

Современные компьютеры уже достаточно давно не содержат параллельный порт. Как вариант, можно поставить в него дополнительный контроллер. Не пугайтесь этому слову, страшного в этом ничего нет. Причина, по которому возникает указанная выше ошибка проста - драйвера и библиотеки DriverLINX (DLPortIO.sys + DLPortIO.dll) не существует для версий Windows под архитектуру x86-64 (AMD64, Intel64). Разработчик Scientific Software Tools Inc прекратил поддержку драйвера, передав другой фирме, а те остановились только на 32-битном варианте. Макрософт пожимает плечами и отправляет к производителю. Тем не менее существует хороший комплект - это InpOut32 (hwinterface.sys+inpout32.dll), а даже 64-битная версия InpOutx64 с hwinterfacex64.sys драйвером.

Перейдём от теории к практическому воплощению. В наличии:

  • Win -Test версии 4.10 , обновлённый до релиза Revision: 524 от 13-Jul-2013.
  • Windows 7 Ultimate (64 bit ) со всеми обновлениями.
  • Intel Core i7-3770 (3.4 GHz) + PC3-10700 (667 MHz) 8x2=16 Gb + Asus P8Z77-V LX
  • Контроллер * PCI COM/LPT (2+1)port WCH353 bulk

Установка контроллера

Сам котроллер не представляет из себя ничего интересного по сути и его название даёт почти полное представление – два COM и один LPT порт, устанавливается он в PCI . Само устройство недорогое и обошлось в 360 рублей (около 12 $) , производство – Китай.

Упаковка была OEM . В комплекте – два шлейфа с СОМ портами на планке и диск с якобы драйверами. Устанавливать я их не стал, так уже заранее знал – они не подходят. Все дороги вели на сайт производителя. На всякий случай даю ссылку , и выкладываю тот самый драйвер в архиве.


Процедура установки контроллера проблем не вызвала – всё достаточно просто. Выключаем компьютер, устанавливаем его в свободный PCI -слот, включаем, устанавливаем драйвер. В комплекте есть программа-установщик. Её интерфейс не сложный и понятный. У меня всё прошло на автоматическом определении типа карты и достаточно было нажать только Install driver . Процесс установки сопровождается двигающейся полоской на интерфейсе, всё предельно ясно.

Программа позволяет переназначать порты, если есть в этом необходимость. Например, при наличии виртуальных СОМ-портов. Для этого после инсталляции нажмите About и кнопку Modify Port Name .

В особых комментариях приведённые скриншоты не нуждаются, нажмите и картинки станут больше. Всё в ваших руках – конфигурируйте появившиеся новые порты на своё усмотрение и под свои нужды.

Финалом того, что инсталляция прошла успешно должно послужить наличие этих устройств в Диспетчере Устройств на компьютере. Перейдите туда и проверьте. В моём случае на материнской плате уже стоял интегрированный COM -port (ну.. нужен он мне). Соответственно, список портов получился таким:

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

LPT -1 - 378

LPT -2 - 278

LPT -3 - 3BC

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

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


Итак, рассмотрим следующий вариант работы с портами ввода/вывода в ОС Windows NT. Этим "вариантом" будет специальный драйвер GiveIO.sys , который позволяет приложению, запустившему его, свободно работать с любыми портами. Этот драйвер написал Dale Roberts черт знает когда, но актуальности от не потерял до сих пор.



В кратце расскажу как он работает: в начале работы нашей программы для общения с портами необходимо обратиться к драйверу GiveIO.sys . При этом он установит такие значения системного битового массива карты разрешения (I/O Permission Map) для нашего приложения, что для него будет разрешен прямой доступ к любым портам. I/O Permission Map - это составная часть системы защиты ввода-вывода Windows NT. Он представляет собой битовый массив, каждый бит которого соответствует порту ввода-вывода. Если бит = 1, то доступ к порту закрыт, если 0, то открыт. Для любого пользовательского приложения все биты установлены в 1, и соответственно мы не можем напрямую вмешаться в работу порта. GiveIO.sys внаглую "влезает" в этом массив и везде устанавливает 0 - т.е. мы получаем возможность обращаться к любому порту из приложения.



Для начала скачиваем архив с драйвером и файлом установки:


Теперь нам необходимо зарегистрировать и установить драйвер в системе. Для этого необходимо сделать ряд операций. Во-первых, копируем файл драйвера GIVEIO.sys в папку C:\Windows\system32\drivers\ если, конечно, система у Вас установлена на диск С:\ и вы не меняли пути установки Windows.

Нажимаем Да . При этом вы получите сообщение об успешном внесении информации в реестр. Можно убедиться в этом. В программе редактора реестра regedit.exe в ветви HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\giveio можно увидеть следующее:

Для того что бы сделанные нами изменения вступили в силу в обязательном порядке нужна ПЕРЕЗАГРУЗКА КОМПЬЮТЕРА.


Настало время взяться за программирование. В код нашей программы Port.exe (см. ) внесем некоторые изменения, которые позволят ей обращаться к портам не только в Windows 9x как было раньше, но и в Windows NT. Итоговый код примет вид:

#include "iostream.h" #include "conio.h" #include "stdlib.h" #include "windows.h" int main() { int Address = 888; cout<<"Test LPT port with GiveIO.sys"<

Все. Компилируем, запускаем. Щелкаем 1-0: все должно работать. Если выскочило сообщение Error! Can"t open driver! Press any key to exit... , значит установка драйвера прошла неудачно, и его надо переустановить заново.

Благодаря giveio.sys успешно отработают и такие ассемблерные письмена:

Asm { mov dx, 378h mov al, 1 out dx, al }

© Дмитрий Иванов
2005-2006

Подключение контроллера с использованием переходника USB-LPT

1 Настройка для работы программы Mach3 с переходником USB-LPT

1.1 При использовании переходника USB-LPT, необходимо скопировать файл mach3usb.dll в папку c:\mach3\plugins.

1.2 Для работы устройства также понадобится установить драйвер.

Для этого подключаемадаптер к USB порту компьютера.

Ждем пока операционная система обнаружит подключенное устройство.

Отрываем «Панель управления»→ «Диспетчер устройств», находим в разделе «Другие устройства» - CNC controller, рисунок 1.

Рисунок 1.

Щелкнув правой кнопкой по нему, и выбрав " С войства", нажать кнопку "Обновить драйвер ы ".

В открывшимся окне выбираем пункт «Поиск драйверов на этом компьютере (Поиск и установка драйверов вручную)».

Указываем путь к папке с драйверами, рисунок 2.


Рисунок 2.

1.3 При запуске программы управления станком MACH3 потребуется выбрать из списка устройств, рисунок 3

Рисунок 3

1.4 Конфигурация плагина mach3usb для USB-LPT адаптера.

Нажимаем кнопку “Reset”, Mach3 устанавливает связь с адаптером. П роизводим настройку плагина. Для этого в ыбираем в меню “Config” пункт " Config pl u gins” , рисунок 4.


Рисунок 4.

Нажимаем кнопку “Config” напротив “mach3usb”, открывается окно конфигурации плагина , рисунок 5 .

Рисунок 5.

1.5 Настройка панели микрошага "Software microstep” (программная интерполяция шага ).

Программн ая интерполяция шага двигателя позволяет обеспечить более точный временной контроль , особенно при работе на малых скоростях. Д вижение будет более гладк им и с более низки м уровнем шума . При использовании программного мульт и пликатора шага двигателя в " Motion plugin”, M ach3 будет работать как будто параметр " StepPer" в настройках шаговых двигаталей выше, чем физически, без уменьшения максимальной скорости. При N = 1 параметры работы шаговых двигателей станка соответ с твуют установленным в п у нкте меню " Motor Tuning”.

Введите коэффициент мультипликации N> 1, и умножите на коэффициент N параметр " StepPer" в настройках двигателей(Motor Tuning) Mach3 , рисунок 6.

Рисунок 6.

После окончания установки параметров, закройте окно настройки плагина. Далее нажмите " EStop" (Reset) перейдите в режим "Стоп" и заново в режим "Пуск", для перезагрузки параметров адаптера.

2 Дополнительные настройки плагина переходника USB-LPT

2.1 Автоматическое отключение сигнала "Enable"

Автоматическое отключение сигнала "Enable", через установленный промежуток времени, в течении которого не производилось перемещений. Если в поле установлено значение 0, то используется параметр по умолчанию — 500мС. При отключении этой функции сигнал "Enable" отключается нажатием кнопки "E-Stop" (Reset).

2.2 Возврат от концевого выключателя базы (Home ).

Рисунок 7.

Устанавливает возврат портала от момента срабатывания концевого выключателя при автоматическом поиске баз по всем осям. (Для исключения ложных

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

2.3 Использование кнопок "Cycle Start" , "Feed Hold", "Stop".

Рисунок 8.

При работе плагина:

Нажатие кнопки "Stop" приводит к быстрой остановке выполнения программы, с потерей всего G- кода содержащегося в буфере данных

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

После нажатия "Feed Hold ", для корректного продолжения работы нажмите кнопку " Regen toolpath " затем " Run", э то обеспечит корректное продолжение программы.

Рисунок 9.

2.4 Таймер.

Рисунок 10.

Activity: время пре-буферизации при старте

Inactivity : время детекции состояний Stop/Pause, а так же ресинхронизации индексных импульсов

Response : время передачи команд статуса. Используется для правильной реализации состояний остановка, движение, синхронизация.

При использовании значений по умолчанию, данные введённые в поля значений не используются. Используются значения 100/300/300.

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

2.5 Панель настройки индексного входа, рисунок 23.

Рисунок 11.

Адаптер имеет конфигурироемый индексный вход -вывод 12.
индексный вход поддерживает следующие функции:
- Измерение числа оборотов шпинделя в минуту и индикации в Mach3 - “RPM measurement”.

Синхронизация старта с паузы в G-коде по появлению синхроимпульса -“Sync pause/start on
pulse” (в том числе и по нажатию кнопок Pause/Start основного экрана Mach3.)
- Синхронизации скорости подачи инструмента с числом оборотов шпинделя- “Sync adapter
speed with RPM”.
Синхронизация скорости подачи с числом оборотов шпинделя производится средствами
адаптера и соответствует формуле:
А=(А1*В)/В1.
Где: А -подача в данный момент времени;
А1- нормальная подача заданная в G-коде;
В - измеренное значение числа оборотов в минуту шпинделя;
В1- число оборотов шпинделя при нормальной подаче;
Поле RPM - число оборотов при нормальной подаче, поле % -величина превышения числа
оборотов над заданными которая может быть отслежена. Если поле % равно нулю, то подача
всегда меньше или равна нормальной подаче заданной в G-коде.

2.6 Буфер.

Рисунок 12.

Иногда возможно временное рассогласование между строкой G-кода отображаемой, как выполняемая в Mach3, и фактически исполняемой строкой, а так же задержка исполнения команд Stop, Feed Hold. Это связано с наличием собственного командного буфера адаптера.
Буфер стабилизирует работу при кратковременных сбоях связи между адаптером и компьютером и при замедлении расчёта Mach3. С одной стороны,чем больше буфер тем стабильнее работа, но в связи с тем что объём буфера может достигать десятков килобайт, возможны задержки исполнения команд FeedHold, Stop до нескольких секунд. Вы можете повысить скорость реакции уменьшив значение буфера до 0, но повысится вероятность сбоя при работе.