Comment puis-je programmer un pilote pour un périphérique USB pour windows plate-forme?
Je suis à la recherche d'un appareil qui lit le câblage des tensions via une interface USB et renvoie les données. Comment pourrais-je aller sur la programmation de quelque chose d'interpréter ces données et dans quelle langue dois-je utiliser?
edit:
Si cela peut aider, ce projet est de développer un numérique tachometre pour les moteurs plus anciens qui ne prennent pas en charge globale ODB2 port de données. Donc, il va lire les tensions sur un circuit de courant continu et de la précision de l'interface graphique. Je n'ai absolument aucune idée de par où commencer avec tout cela, mais je suis déterminé à le faire fonctionner! c'est pour windows.
OriginalL'auteur atomicharri | 2008-10-02
Vous devez vous connecter pour publier un commentaire.
Tricher et utiliser libusb. Je l'ai fait pour un projet, j'ai travaillé pendant un certain temps et a écrit un C++/wxWidgets app pour gérer les données.
J'ai pensé récemment de la ré-écriture de l'application sur le PC dans wxPython même si, comme il est beaucoup plus rapide de l'interface de développement.
Comment vous souhaitez afficher /enregistrer les données? Il ya beaucoup d'options disponibles. Vous pouvez faire des trucs sympas (facilement) avec OpenGL capacités de wxWidgets si c'est en 2D ou en 3D, la représentation des données.
OriginalL'auteur Jon Cage
Si vous le pouvez, je vous recommande d'utiliser une bibliothèque comme libusb, comme kris et Jon Cage ont suggéré.
Si libusb ne va pas à l'adapter à vos besoins et que vous êtes en développement pour Windows, vous devez avoir un regard sur le logiciel que Jungo a fournit. Encore une fois, cela déplace le logiciel usb dans l'espace utilisateur, plutôt que d'exiger noyau de Windows de développement.
(edit 3: Ilya points dans le commentaire que jungo a est aussi disponible pour Linux)
Si vous devez faire un peu de développement du noyau (Windows ou Linux), alors C est bien la seule option que vous avez. Enquêter sur cette livre par Rubini pour le développement de linux. Pour le développement de pilote windows, je peux vous recommander cette livre par Oney.
Mais j'aimerais étudier la libusb option dans les préférences pour le développement de pilotes dans les deux cas.
Btw. Si vous êtes intéressé à être capable de mesurer des tensions sur un périphérique usb (et écrit le code n'est pas important) il existe de nombreux produits là-bas qui vont le faire pour vous. Jetez un oeil à certains de l'offre de National Instruments. Ces traitera avec le travail acharné de l'usb et de l'acquisition de données et de vous donner une belle interface de programmation pour l'utiliser dans votre application.
(edition 2)
Il y a aussi quelques usb-série de jetons (par exemple. ces) qui peut être relié directement à un processeur embarqué on utilise seulement un uart. Généralement, ces avec des pilotes.
Grâce Ilya - mis à jour en conséquence
+1 pour la mention de FTDI, c'est sans doute une option plus simple.
+1 pour les lots de référence. Merci.
OriginalL'auteur Andrew Edgecombe
Ont un coup d'oeil à libusb. Il est disponible pour Linux et Windows.
OriginalL'auteur kris
Puisque vous êtes toujours à la recherche d'un appareil qui convertit les tensions en informations, je vous suggère de jeter un oeil à des dispositifs qui mettent en œuvre un USB-HID (Human Interface Device) de l'interface, tels que ceux trouvé ici.
Ils ont l'avantage de ne pas nécessiter de tout développement de pilote de périphérique ou l'installation de pilotes. Ils sont comme plug-and-play comme une souris, un clavier ou un lecteur flash. L'interface est assez générique, et la plupart des fabricants fournissent également les bibliothèques nécessaires pour lire les informations de l'appareil, être averti lorsqu'un appareil est branché en entrée/sortie, de découvrir des périphériques, et ainsi de suite.
En outre, avoir un regard sur cet article qui explique comment utiliser un périphérique HID en C#, par exemple.
Dave
OriginalL'auteur Dave Van den Eynde
Me semble que si vous voulez lire le câblage des tensions alors vous avez besoin d'un convertisseur A/D. Faites-vous votre propre convertisseur A/D? Si oui, vous avez quelques belles firmware de la programmation à faire sur le côté du dispositif, en plus de l'hôte du côté du conducteur que vous vous posez à propos ici. Sinon, vous allez acheter un convertisseur A/D, et vous pouvez utiliser le pilote le vendeur de fournitures.
OriginalL'auteur Windows programmer
Sauf si vous êtes bit-banging votre propre pilote USB sur le firmware de votre puce va probablement venir avec un pilote pour le PC. Par exemple, les microcontrôleurs PIC de Microchip ne viennent pas seulement avec firmware pour le PIC, mais avec un pilote Windows. J'attends que les autres USB puces serait également venir avec leurs propres pilotes.
Rappelez-vous que pendant que vous interagissez avec le port USB directement sur le firmware côté, sur le côté de PC tous vous réellement interagir avec le pilote pour le contrôleur hôte.
OriginalL'auteur MrZebra
Votre option la plus simple est probablement d'acheter une sorte de hors-the-shelf périphérique d'acquisition de données. Nombreuses sont les entreprises à faire ce genre de chose, mais ils sont parfois effroyablement cher:
Vous pouvez aussi construire votre propre à partir d'un kit, bien que je ne trouve pas de liens pour vous tout à l'heure.
Si vous voulez quelque chose de plus personnalisé, vous pouvez utiliser un EZ-USB ou un PIC. Ils fournissent des pilotes USB (pour Windows, au moins) qui vous permettent d'interagir avec l'appareil sans l'écriture de pilotes.
Avec la plupart de ces vous avez un choix assez large de langages de programmation, j'ai écrit un logiciel de communiquer avec le logiciel EZ-périphériques USB à partir de Visual Basic 6 dans le passé.
OriginalL'auteur Kevin ORourke
La plupart des microcontrôleurs ont construit dans les ADC, et une tonne de ceux-ci ont également construit dans le sous-système usb. Le cyprès, le PIC, AVR viennent à l'esprit. Chaque fois que je fais USB de travail pour mes propres projets, j'utilise pyusb et wxPython. Ils font trés facile de faire le travail, même s'il est assez dure initiale de la courbe d'apprentissage.
Sans vergogne auto plug côté, j'ai écrit un petit pilote python avec pyusb pour un USB-écran LCD de l'appareil. Vous pouvez consulter mon code source ici.
OriginalL'auteur jeremy
Je suis, personnellement, à l'aide de la Puce de Photos - qu'ils ont des convertisseurs AD/DA, les ports USB, les pilotes libres et les chargeurs d'amorçage - et tout cela pour moins de 4$. Après vous branchez un tel dispositif, vous obtenez une chance supplémentaire de port COM - le reste est trivial.
OriginalL'auteur IgorM
Vous ne dites pas quelle plate-forme vous êtes en train de regarder. Si vous ciblez Windows, USB a Révélé est un jeu génial de référence.
OriginalL'auteur plinth
De matériel, de prendre un coup d'oeil à FTDI produits.
Si vous avez du matériel et que vous souhaitez y accéder sous Windows, j'ai récemment découvert WinUSB. Si c'est ce que vous avez besoin, prendre un coup d'oeil à ce livre blanc.
OriginalL'auteur pelesl
En plus de WinUSB, libusb et jungo a, il y a une autre option pour la programmation des périphériques USB à partir du mode utilisateur - User-Mode Driver Framework (UMDF).
L'écriture d'un UMDF pilote est essentiellement la création d'un processus de composant COM avec vos outils préférés.
OriginalL'auteur Taneli Waltari