C++ USB de Programmation
Je suis nouvelle programmation de matériel(en particulier USB), de sorte s'il vous plaît garder avec moi et mes questions. Je suis à l'aide de C++ et j'ai besoin d'envoyer/recevoir des données (un tableau d'octets) à partir d'un port USB sur un microprocesseur conseil d'administration.
Maintenant, j'ai fait quelques serial port de programmation avant et je sais que pour un port série, vous devez ouvrir un port, de l'installation, effectuer des e/s et enfin fermer le port. Je devine à l'utilisation d'un port USB, il n'est pas aussi simple que ce que j'ai mentionné ci-dessus.
Je sais que je veux utiliser Microsoft pilotes standard et mettre en œuvre des standards de Windows IO commandes pour ce faire, puisque je crois qu'il y a pas de pilotes pour la carte de microprocesseur pour moi d'interagir avec.
Si quelqu'un peut me pointer dans la bonne direction comme pour les étapes nécessaires pour "parler" à un port USB (ouvert, de la configuration i/o) via Windows standard IO commandes, je serais vraiment très reconnaissante. Merci, merci beaucoup!!
- +1 Juste par curiosité que comptez-vous faire? (appologies je ne peux pas aider mais serait intéressé par la réponse)
Vous devez vous connecter pour publier un commentaire.
USB en un mot est excellent parcours de lecture.
Pour un générique USB module essayez LibUSB qui comprend quelques exemples de parler à des appareils standard. LibUSB-Win32 windows est le port de la bibliothèque.
Vous avez le droit, il est nulle part près de aussi simple que d'un port RS232.
Ce microprocesseur utilisez-vous? Est-ce qu'un périphérique USB ou envisagez-vous de le mettre en application tous les logiciels (pas quelque chose que je recommanderais même contemplant!). Beaucoup de microprocesseurs à venir avec des exemples de code qui peut émuler simple CACHÉ périphériques USB tels que claviers /souris etc. que vous pouvez utiliser comme un point de départ. À défaut, il y a probablement un peu hors-the-shelf options qui vous permettra d'économiser beaucoup de maux de tête 🙂
Trouver le chipset USB utilisé sur la carte de microprocesseur, par exemple Ftdi, Cyprès, etc. Ces fabricants proposent des pilotes, les bibliothèques et les programmes d'exemple pour les comms, c'est le moyen le plus facile.
Il n'existe pas de "norme" pilotes en tant que tel, à moins que votre conseil d'administration est mis en place comme un périphérique HID, cependant, si vous utilisez Windows, Microsoft offre un WinUSB.sys "générique" du pilote qui peut ou ne peut pas répondre à vos besoins (il ne supporte pas les transferts Isochrones).
Par le matériel de programmation, voulez-vous dire que vous allez programmer le microcontrôleur? Si oui, il n'y a aucun moyen que vous allez utiliser "les pilotes windows standard" ou quelque chose comme ça.
À la norme USB est très épais. Check it out ici
C'est un très impliqué sujet et je recommande de trouver USB implémentations déjà créé pour votre microcontrôleur. (qui peut être en mesure de trouver si vous nous avez donné plus d'info)
Devriez-vous écrire un pilote pour le périphérique USB qui va attacher lui-même. Si vous connaissez le type de puce qui a l'USB i/o sur le bord, le pilote de ce périphérique.
Il y a peut-être déjà du conducteur pour que la puce si c'est un STM ou il peut y avoir une API pour les aider à développer des pilotes pour elle. Il serait probablement un appareil personnalisé, mais vous devriez regarder à travers les types de périphériques pour voir si il y a un type existant qui correspond à votre appareil. Dans ce cas, il peut aussi être un pilote déjà pour qui vous pouvez utiliser. Informations sur le conseil d'administration est nécessaire.
ÉCRIRE VOTRE PROPRE PILOTE
Avec la sortie de se trop loin en elle, vous devriez apprendre Microsoft modèle de pilote, la différence entre le mode utilisateur et les pilotes en mode kernel, ce pilote nœud représentent, pilote de la hiérarchie et de la façon dont ils logiquement se joindre eux-mêmes, différents types de conducteurs (filtre, fonction, bus), comment kernel driver de communiquer avec l'interface utilisateur, les bibliothèques de liens dynamiques, les cadres et l'API, WDM cadre de l'API, KMDF et UMDF de l'API et c'est juste une courte liste.
OU vous pouvez utiliser un pilote existant.
USB MICROCONTRÔLEUR PILOTE FOURNI
Nous ne savons pas ce que le firmware de la clé USB microcontrôleur est en utilisant, le cas échéant. Si il n'y a pas de firmware (si la puce est venue avec elle ou s'appuie sur des eprom pour le stocker et pas de flash) alors si nous savions que si la puce prend en charge l'usb chargeur de démarrage, vous pouvez le flash ou le charger du microprogramme via les ports USB et il n'est pas nécessaire pour JTAG ou autre peripherials. Probablement l'usb seul est capable de vous obtenir hors de la terre et de n'importe où à partir de là. Généralement, ces types de questions se posent lors de l'examen du conseil avec un microcontrôleur USB.
Voici un lien vers un légèrement pilote connexes. La plupart des microcontrôleurs USB servir le but de commutation de communication USB à UART comme la plupart des microconrollers qui en fait la pensée et de contrôle de tout ce qui ne sont pas équipés avec USB i/o, mais au lieu de l'UART ou certains autres broches d'e/s comme I2C ou SPI etc..
https://www.silabs.com/products/mcu/Pages/USBXpress.aspx
Que le conducteur peut réellement fonctionner, si ce n'est quelque chose de similaire, mais pour le fabricant de votre périphérique USB microcontrôleur; sera presque certainement faire le travail. Espérons que cette aide.
Quel type de microprocesseur et de ce genre de conseil?
Nombre de processeurs livrés avec un support pour les ports USB. Aussi, certains matériels des circuits avec USB contollers trop.
Par exemple, le processeur que ma boutique est en utilisant livré avec deux contrôleurs USB qui peut agir comme un hub ou un périphérique. Nous sommes à même d'en ajouter un autre processeur d'agir comme un contrôleur USB.