web-dev-qa-db-fra.com

Programmation USB C ++

Je suis nouveau à la programmation matérielle (en particulier USB), alors veuillez supporter avec moi et mes questions. J'utilise C++ et je dois envoyer/recevoir des données (une matrice d'octet) vers/depuis un port USB sur une planche à microprocesseur.

Maintenant, j'ai déjà fait une programmation de port série avant et je sais que pour un port série, vous devez ouvrir un port, votre configuration, effectuer des E/S et enfin fermer le port. Je devine utiliser un port USB, ce n'est pas aussi simple que ce que j'ai mentionné ci-dessus.

Je sais que je souhaite utiliser des pilotes standard Microsoft et implémenter Standard Windows IO commandes pour y accomplir, car je pense qu'il n'y a pas de pilotes pour le plan de microprocesseur pour que je puisse interagir.

Si quelqu'un peut me signaler dans la bonne direction quant aux étapes nécessaires à "parler" à un port USB (Ouvrir, configuration, I/O) via Standard Windows IO commandes, je voudrais vraiment et Appréciez grandement ça. Merci beaucoup !!

23
JB_SO

SB en un mot est une excellente lecture de fond.

Pour un module USB générique, essayez libusb qui comprend quelques exemples de parler à des périphériques standard. libusb-win32 est le port Windows de cette bibliothèque.

Vous avez raison, ce n'est nulle part près aussi simple qu'un port RS232.

Quel microprocesseur utilisez-vous? Est-ce que cela vient avec n'importe quel matériel USB ou envisagez-vous d'essayer de tout mettre en œuvre dans des logiciels (pas quelque chose que je recommanderais même contemplant !)!). Beaucoup de microprocesseurs sont livrés avec des échantillons de code pouvant imiter de simples périphériques USB HID tels que les claviers/souris, etc., que vous pouvez utiliser comme point de départ. À défaut, il y a probablement quelques options hors tension qui vous sauveront beaucoup de maux de tête :-)

17
Jon Cage

Découvrez le chipset USB utilisé sur la carte microprocesseur, par ex. FTDI, Cypress, etc. Ces fabricants fournissent des pilotes, des bibliothèques et des programmes de programmes pour les comms, c'est la voie la plus simple.

Il n'existe aucun pilote "standard" en tant que tel, sauf si votre carte est configurée en tant que périphérique HID, cependant, si vous utilisez Windows, Microsoft Fournissez A WINUSB.SYS 'Generic' Driver qui peut ou ne pas rencontrer Vos besoins (il ne prend pas en charge les transferts isochrones).

4
SoftDeveloper

Par programmation matérielle, voulez-vous dire que vous programmerez le microcontrôleur? Si tel est le cas, vous n'utiliserez aucun moyen d'utiliser des "pilotes Windows standard" ou quelque chose comme ça.

La norme USB est très épaisse. Vérifiez-le ici

C'est un sujet très impliqué et je vous recommande de trouver des implémentations USB déjà créées pour votre microcontrôleur. (ce que nous pourrons peut-être trouver si vous nous donnez plus d'informations)

2
Earlz

Quel genre de microprocesseur et quel genre de planche?

De nombreux processeurs sont fournis avec support pour les ports USB. En outre, certaines planches de quincaillerie sont également contenues avec des contuleurs USB.

Par exemple, le processeur que ma boutique utilise est livré avec deux contrôleurs USB pouvant servir de moyeu ou de dispositif. Nous ajoutons même un autre processeur pour servir de contrôleur USB.

1
Thomas Matthews