2010-07-05 6 views
4

У меня есть устройство USB для параллельного порта, с которым я хочу взаимодействовать с помощью C++ в современных ОС Windows (xp и новее).Управление параллельным портом через USB-адаптер на современном оборудовании и ОС

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

Все, что я хочу сделать, это возможность чтения или записи 8 бит на параллельный порт через USB-устройство для параллельного порта на современном компьютере с современной ОС Windows (с портами, предназначенными только для чтения или записи).

Есть ли какой-либо быстрый и простой способ сделать это? Некоторый пример кода был бы весьма полезен.

Кроме того, сколько из этих USB-портов для параллельных портов можно подключить к компьютеру? Я ограничена 3 из-за какой-то устаревшей адресации или могу ли я иметь столько, сколько мой USB и CPU могут поддерживать?

Отработка VC++ 2008, работающий под управлением Windows 7 x64 с Core i7 860.

Edit: немного больше информации ...

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

+0

Я также заинтересован в этом. Несколько лет назад я изучал несколько исследований, и все, что я мог найти, это в основном: купить карту с параллельным портом на ней. Сейчас я использую ноутбук, а карты параллельного порта ExpressCard, как правило, в 10 раз превосходят цены на карты параллельного порта PCI. :( – AndrejaKo

+0

Да, такая же идея.Мое мышление: параллельный порт * должен быть прост в программировании, USB не будет долго выходить из моды, Windows не будет долго выходить из моды, USB-порты параллельны дешево ($ 5 из Китая, бесплатная доставка). Все это приравнивается к дешевому цифровому вводу/выводу, который будет поддерживать совместимость на протяжении многих лет, отличную платформу для бытовой электроники и управления. – Faken

ответ

0

Я работал с адаптером USB-to-serial до и, думаю, USB-to-parallel должен быть таким же. У вас должен быть драйвер вместе с адаптером - это делает большую часть работы для вас, скрывая интерфейс USB и представляя его в ОС как традиционный параллельный порт. Например, когда я подключаю адаптер к порту USB, он просто отображается как COM4 в диспетчере устройств. Я предполагаю, что ваш будет отображаться как LPT1 или что-то еще. Оттуда, это вопрос использования стандартного API Windows для доступа к этим портам. (см. Communications Resources на MSDN)

+0

Я играл с этими USB-портами в последовательные порты, они, похоже, работали нормально, и мой компьютер распознал их как COM-порты. Для этого последовательного порта не было никаких драйверов (в Windows уже было), но он появился как «контроллер IEEE 1284» и был определен как «порт принтера» под свойствами устройств. Я не смог найти какой-либо код, который открыл параллельный порт как порт «LPT1», как я мог с портом «COM1». Все I/O, которые я видел в своих исследованиях, говорят, что он выводит на какую-то устаревшую 16-разрядную систему адресации, которая, похоже, не работает для меня. – Faken

3

Я делал это в прошлом, и у меня есть хорошие новости и плохие новости.

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

Плохая новость заключается в том, что производительность была ужасной на моделях интерфейса «битбинг». Если вы не возражаете против медленных обновлений, это не проблема. Я использовал его для программирования uControllers, и вскоре цена последовательных или USB-программистов была преодолена моим нетерпением.

Просто используйте API окон для чтения/записи LPT или COM-портов, и он работает (медленно).

+0

Что вы подразумеваете под настройкой? Кроме того, мой компьютер НЕ распознает порт LPT1, а скорее «контроллер IEEE 1284», если бы это было проблемой? – Faken