2010-07-05 3 views
4

J'ai un périphérique USB vers port parallèle que je veux utiliser via C++ sur un système d'exploitation Windows moderne (xp et plus récent). J'ai fait quelques recherches mais l'information est un peu inégale quand il s'agit de programmer un de ces périphériques USB vers parallèle (la plupart des informations sont datées et supposent que vous avez un port parallèle intégré dans la carte mère, quelque chose que mon nouvel ordinateur n'a pas). Une référence dit même qu'il n'est pas possible d'interfacer un port USB vers un port parallèle d'un programme C++ sans quelques changements de logiciel. Tout ce que je veux faire est de pouvoir lire ou écrire 8 bits sur le port parallèle via un périphérique USB vers un port parallèle sur un ordinateur moderne exécutant un système d'exploitation Windows moderne (avec des ports dédiés uniquement à la lecture ou à l'écriture).).Contrôle d'un port parallèle via un adaptateur USB sur un matériel et OS moderne

Existe-t-il un moyen rapide et facile de le faire? Un exemple de code serait grandement apprécié.

De plus, combien de ces ports USB vers parallèle puis-je interfacer avec mon ordinateur? Suis-je limité à 3 en raison d'une sorte d'adressage hérité ou puis-je en avoir autant que mon USB et le CPU sont en mesure de prendre en charge?

travail de VC++ 2008, fonctionnant sous Windows 7 x64 avec un Core i7 860.

Edit: un peu plus d'informations ...

J'ai essayé d'utiliser inpout23 ainsi avec un programme de test pré-écrite. Il compilé très bien et a couru très bien en prétendant avoir à la fois lu et écrit sur un port parallèle. J'avais mon USB vers un port parallèle connecté à l'ordinateur et ce port connecté à un câble dans lequel j'avais identifié, dénudé et soudé chacun des 25 fils sur une sorte de prise pour brancher rapidement dans une planche à pain pour les tests. Aucune des broches de sortie n'avait changé à ce que le programme avait dit leur a été écrit (à la place, ils étaient tous réglés sur haut et n'ont jamais changé).

+0

Cela m'intéresse aussi. J'ai fait quelques recherches il y a quelques années et tout ce que j'ai pu découvrir était fondamentalement: acheter une carte avec le port parallèle là-dessus. J'utilise un ordinateur portable maintenant, et les cartes de port parallèle ExpressCard ont tendance à être ~ 10 fois le prix des cartes de port parallèle PCI. :( – AndrejaKo

+0

Oui même idée.Ma pensée: port parallèle * devrait * être facile à programmer, l'USB ne va pas sortir du style pendant une longue période, Windows ne va pas sortir du style pendant une longue période, USB vers les ports parallèles sont sales (5 $ de Chine, livraison gratuite). Tout cela équivaut à des E/S numériques bon marché qui conserveront leur compatibilité pendant de nombreuses années, une excellente plate-forme pour l'électronique et le contrôle à domicile. – Faken

Répondre

0

J'ai déjà travaillé avec un adaptateur de port USB-série et je suppose que l'USB-parallèle devrait être le même. Vous devriez avoir un pilote avec l'adaptateur - cela fait la plupart du travail pour vous, en cachant l'interface USB et en la présentant au système d'exploitation comme un port parallèle traditionnel. Par exemple, lorsque je branche mon adaptateur sur le port USB, il apparaît comme COM4 dans le Gestionnaire de périphériques. Je suppose que le vôtre apparaîtra comme LPT1 ou quelque chose comme ça. À partir de là, il s'agit d'utiliser l'API Windows standard pour accéder à ces ports. (Voir Communications Resources sur MSDN)

+0

J'ai aussi joué avec ces ports USB vers les ports série, ceux-ci semblaient fonctionner correctement et mon ordinateur les a reconnus comme des ports COM. Aucun pilote n'était nécessaire pour ce port série (Windows l'avait déjà) mais il apparaissait comme un "contrôleur IEEE 1284" et était défini comme un "port d'imprimante" sous les propriétés des périphériques. Je n'ai pas pu trouver de code qui a ouvert un port parallèle comme un port "LPT1" comme je l'ai pu avec un port "COM1". Toutes les E/S que j'ai vues dans mes recherches indiquent qu'il génère un système d'adressage 16 bits hérité qui ne semble pas fonctionner pour moi. – Faken

3

Je l'ai fait par le passé et j'ai de bonnes nouvelles et de mauvaises nouvelles. La bonne nouvelle est que cela a toujours fonctionné (parfois avec des ajustements), ce qui rend hommage aux fabricants d'électronique de concevoir des protocoles extrêmement robustes. Apparemment, les convertisseurs USB vers parallèle ont tous fourni l'émulation du port matériel. Les mauvaises nouvelles sont que les performances étaient terribles sur les modèles d'interface 'bitbanging'. Si cela ne vous dérange pas des mises à jour lentes ce n'est pas un problème du tout. Je l'ai utilisé pour programmer des uControllers et bientôt le prix des programmeurs série ou USB a été dépassé par mon impatience. Il suffit d'utiliser l'API Windows pour lire/écrire les ports LPT ou COM et cela fonctionne (lentement).

+0

Que voulez-vous dire par peaufinage? En outre, mon ordinateur ne reconnaît pas un port LPT1, plutôt un "contrôleur IEEE 1284" à la place serait-ce un problème? – Faken

Questions connexes