Управление параллельным портом через USB-адаптер на современном оборудовании и ОС - PullRequest
4 голосов
/ 06 июля 2010

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

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

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

Есть ли быстрый и простой способ сделать это? Некоторые примеры кода будут с благодарностью.

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

Отключение VC ++ 2008, запуск Windows 7 x64 с Core i7 860.

Редактировать: немного больше информации ...

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

Ответы [ 2 ]

3 голосов
/ 06 июля 2010

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

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

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

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

0 голосов
/ 06 июля 2010

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

...