Communications de données sur port USB

Signaler
Messages postés
6
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
13 février 2010
-
Messages postés
12
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
16 mai 2010
-
Bonjour à tous,
Je suis nouveau sur le forum. Je m'appelle Nicolas et je suis en école d'ingénieur à l'INSA de Rennes.
Je suis en train de programmer un logiciel sous Visual Studio 2008 en MFC. Ce logiciel rentre dans le cadre d'un projet électronique et permettra à un utilisateur de rentrer un certain nombre de données qui seront codées et ensuite transmises vers un PIC18F4550 par le port USB.
La partie récupération d'informations de l'utilisateur et codage est finie.
Il reste donc la partie qui communique les données du logiciel vers le périphérique (PIC) via le port USB. Après pas mal de recherche, je n'ai pas trouver la solution à mon souci (la plupart des programmateurs passent par le langage Delphi alors que mon logiciel est en C++).
Je me tourne donc vers vous pour savoir comment je peut transmettre mon tableaux de données au port USB.
Merci de vos futures réponses.
Nico

19 réponses

Messages postés
6
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
13 février 2010

Merci de ta réponse très rapide. Mais ce qui m'intéresse, c'est de communiquer mes données sur le port USB et non pas sur le port COM. Je ne souhaite pas non plus communiquer les données sur le port COM et ensuite utiliser un câble de conversion.
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
1
WDK (windows driver kit) avec l'exemple "usbsamp".
Tu trouveras un driver pour "parler" sur le canal bulk ou iso + logiciel pour dialoguer avec le driver.

@+
Arnotic,
Admin CS
Messages postés
6
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
13 février 2010

Salut arnotic, merci pour ta réponse
WDK (windows driver kit) avec l'exemple "usbsamp".
Tu trouveras un driver pour "parler" sur le canal bulk ou iso + logiciel pour dialoguer avec le driver.


J'ai télécharger les WDK. Il y a bien un USBsample, mais le souci c'est qu'il a été écrit pour fonctionner avec le OSR USB-FX2 Learning Kit.
De plus, j'utilise un PIC18F4550 dont les drivers sont fournis par le fabriquant Microchip. Je ne pense dons pas avoir besoin de développer d'autres drivers. Par contre, ce que je souhaite savoir c'est quelles sont les lignes à écrire dans mon programme sous Visual Studio pour envoyer mon tableau de données sur mon périphérique USB.
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
1
En fait le driver communique et marche avec autre chose "OSR USB-FX2". Il suffit de changer dans le .inf le PID et le VID de ta carte. Après les communications USB sont standards.

Si tu as déjà le driver, il fallait le dire, dans ce cas il te suffit juste de dialoguer avec celui là. Et là par contre chaque driver à ses propres interfaces. Vois avec les exemples fournis avec ton kit de dev.

@+
Arnotic,
Admin CS
Messages postés
6
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
13 février 2010

OK d'accord je vais voir avec les exemple fournit par Microchip mais je n'ai pas de kit de dev, juste un simple microcontrôleur que je vais programmer moi même. J'ai aussi qu'on pouvait passer par les HID dont les librairie et header sont fournis avec le WDK. Est ce que tu pense que c'est une bonne solution?
Merci en tout cas de tes réponses.
Nico
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
1
La bonne solution, je pense est celle de parler à ton PIC en passant par l'USB via le driver fourni.

@+
Arnotic,
Admin CS
Messages postés
9
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
26 novembre 2010

Bonjour,

je suis encore novice concernant les driver!
J'ai installé le wdk, mais j'ai pas encore bien saisit son utilisation!

Mon but, c'est de créer un driver pour m'amuser à faire "tout ce je veux" sur une clé usb!

Je suis entrain de configurer le UsbSample!

Pourrai-je avoir une petite explication concernant la structure d'un driver (ici .dll et .inf car c'est en mode user, si jme trompe pas)??

Mais vous avez dis qu'il suffit de faire qque modif pour avoir la possibilité de travailler sur n'importe quelle cléusb! Dans mon cas, est-ce que je peux prendre cette exemple comme base???????
Messages postés
9
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
26 novembre 2010

RE je te remercie, mais c'est chaud, deja que je ne trouve pas d'explication sur le "mode user"!!

Sinon, je me suis amuser avec le UsbSample avec une clé usb bidon! mais je n'arrive pas à changer le pilote! il me di que la version deja present est la meilleure...

Une idée?

+++++
Messages postés
9
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
26 novembre 2010

Bonjour,

personne pour m'aider?

J'ai compilé le usbSample en changeant le PID et VID!

Une fois le pilote installé, il ne reconnait plus du tou tma clé usb!

QQun aurai une idée du problème??

Merci
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
1
Voilà, il faut changer le PID et VID dans INF.

Cependant une clé USB est un périphérique de stokage de mass.

Le driver que tu utilises (usbsamp) n'est pas prévu pour lire le système de fichier et afficher ainsi qu'émuler un lecteur au sein du système.

Il te faut un autre pilote.

@+
Arnotic,
Admin CS
Messages postés
9
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
26 novembre 2010

Merci pour la réponse, ca fait plaiz!

La je suis un tuto pour créer un driver à partir de rien!

Mais pourrai tu me dire ou je peux trouver un exemple de driver pour clé usb?

Merci
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
1
Dans le WDK, si mes souvenir sont bon, tu as des exemples.

@+
Arnotic,
Admin CS
Messages postés
9
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
26 novembre 2010

Salut, je continu a essayer de dev mon drive avec WDK.

J'ai prit la structure d'un présente dans le dossier general (compilation, instal nickel, j pense...=> le pilote est présent dans le gestionnaire des périphérique ) ! Suite à cela, j'aimerai pouvoir m'amuser sur la clé, par exemple: créer un fichier et l'éditer (mon peripherique est une clé usb).

J'ai vu qu'il fallait utilisé la method CreateFile et ensuite faire des requetes....

ET la, ben je suis perdu, je ne sais pas où intégrer la method, si je doi faire apel à cette method et ou, etc

Pouvez-vous m'aider stp??

J'ai deja cherché des tutoriaux mais j'ai rien trouvé de complet...


MERCI MERCI MERCI
Messages postés
9
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
26 novembre 2010

Petite précision, je suis dans l'obligation de crée le driver en mode utilisateur ( pour éviter de bidouiller directement dans le noyau).
J'ai trouvé 2 doc interessante:

La première décrit l'architecture de UMDF:
http://download.microsoft.com/downlo...6/wdf-arch.doc

La seconde décrit comment écrire un driver pour clé usb:
http://download.microsoft.com/downlo...4a/USB_WDF.doc

Mais la j'ai un petit problème: Dans la 1ere, ils disent de créé objet de type FILE pour avoir accès au materiel ( createFile). Alors que dans la 2eme ils demandent de créer un USB target device object pour connecter le driver USB subsystem.

JE sais pas si ça vous dit qqchose mais bon...

MErci
Messages postés
9
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
26 novembre 2010

salut,

On ma propose également d'expérimenter un IOCTL simple et documenté (IOCTL_STORAGE_EJECT_MEDIA par exemple, qui commande l'ejection d'un disque) pour voir comment ça se passe du côté application (CreateFile, DeviceIoControl, etc.) avant de chercher à comprendre ce que le driver lui fait.

Je viens de comprendre une autre chose que tu viens de me dire par rapport à mon application et mon driver: En toute honneteté, je ne faisé pas la diference entre les 2! Je pensais qu'il été confondu! mtn je c ke je doi avoir une application a coté! Et-elle comprise dans le meme projet (dossier) ?
Messages postés
12
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
16 mai 2010

Bonjour
Je suis entrain de développer un logiciel qui communique avec une plateforme d’évaluation Stellaris® LM3S3748 d’Architecture ARM Cortex™-M3. Pour le moment J’ai réussie à le faire communiquer en utilisant WDK (WinUSB) et le driver fourni avec la carte sous XP (le driver fourni avec la carte est compatible Windows XP uniquement)

Comment crée un driver compatible Windows 7 ?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
Tres bons exemples ici de lecture ecriture sur port COM:
http://www.cppfrance.com/code.aspx?ID=22441
http://www.cppfrance.com/code.aspx?ID=18704

ciao...
BruNews, MVP VC++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
Ah oui, port USB, j'avais encore lu trop vite.

ciao...
BruNews, MVP VC++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
Un manuel (en anglais) ici:
http://www.brunews.com/
Dans les manuels: WDM 2

ciao...
BruNews, MVP VC++