Vous êtes sur la page 1sur 8

Type de document: Tutorial Support par NI: oui Date de publication: 10 avr.

2009

Contrle d'instruments par USB


Introduction Ce tutorial constitue un point de dpart dans l'utilisation de NI-VISA pour communiquer avec un matriel USB. Toutefois, il ne s'agit pas d'une introduction l'architecture USB ni aux diffrents protocoles utiliss dans les communications par USB. Aprs lecture de ce tutorial, vous serez capable d'installer un matriel USB et d'utiliser NI-VISA pour communiquer avec ce matriel, en ayant assimil le fonctionnement du protocole de communication. Table des matires 1. 2. 3. 4. 1. Connaissances de base sur l'USB et sur VISA 2. Configuration de NI-VISA pour le contrle d'un bus USB 3. Utilisation de NI-VISA pour communiquer avec un matriel USB 4. L'USB sous Linux et Mac

1. Connaissances de base sur l'USB et sur VISA VISA est une API (interface de programmation d'applications) haut niveau utilise pour communiquer avec les bus d'instrumentation. Elle est indpendante de la plate-forme, du bus et de l'environnement. Autrement dit, la mme API est utilise pour crer un programme de communication aussi bien avec un matriel USB grce LabVIEW sur une machine sous Windows 2000 qu'avec un matriel GPIB en C sur une machine sous Mac OS X. L'USB est un bus de communication bas messages. Cela signifie qu'un PC et un matriel USB communiquent par envoi de commandes et de donnes sur le bus sous forme de donnes textuelles ou binaires. Chaque matriel USB possde son propre jeu de commandes. Les fonctions NI-VISA d'criture et de lecture permettent d'envoyer et de lire ces commandes. Vous pouvez obtenir les commandes de votre instrument en contactant son constructeur. NI-VISA supporte les communications par USB partir de la version 3.0. Deux classes de ressources VISA sont supportes : USB INSTR et USB RAW. Les matriels USB conformes au protocole USB de classe test et mesure (USBTMC) utilisent les ressources de classe USB INSTR. Les matriels USBTMC sont conformes un protocole que la classe de ressources VISA USB INSTR peut comprendre. Pour communiquer avec un matriel USBTMC, aucune configuration n'est ncessaire. Dans ce but, consultez le paragraphe 3. Pour en savoir plus sur la spcification USBTMC, consultez le lien du forum USB-IF (USB Implementers Forum). Tout instrument USB autre que ceux qui sont spcifiquement conformes la spcification USBTMC est un instrument USB RAW. Pour l'utilisation d'un matriel USB RAW, suivez les instructions du paragraphe 2 afin de configurer NI-VISA pour contrler le matriel. Contactez le fournisseur de l'instrument pour obtenir des informations dtailles sur le protocole de communication et sur le jeu de commandes utilis par l'instrument. Pour en savoir plus sur l'API NI-VISA, consultez l' Aide NI-VISA. Ce document est inclus avec NI-VISA et peut tre obtenu en suivant le lien figurant la fin de ce tutorial.

2. Configuration de NI-VISA pour le contrle d'un bus USB Ce paragraphe parcourt les tapes de configuration d'un matriel USB RAW pour son contrle par NI-VISA 3.0 partir d'un ordinateur sous Windows. Pour un matriel compatible USBTMC, connectez le matriel et passez directement au paragraphe 2.3. ce stade, NI-VISA doit tre dj install sur l'ordinateur et le matriel USB ne doit pas tre connect. De plus, le driver du matriel USB ne doit pas tre install. Trois tapes sont ncessaires pour configurer un matriel USB pour utiliser NI-VISA : 1. Cration d'un fichier INF grce l'Assistant de dveloppement de drivers (DDW). 2. Installation du fichier INF et du matriel USB grce au fichier INF. 3. Test du matriel avec NI-VISA Interactive Control. Tout au long de ce tutorial, on utilise un botier NI DAQPad-6020E install sur un systme Windows XP, comme exemple de matriel USB. Comme ce tutorial est destin expliquer la configuration d'un matriel USB gnrique, les spcifications dtailles du DAQPad-6020E ne sont pas traites ici. Rappelez-vous que NI-DAQ est le seul driver support pour contrler un DAQPad-6020E. 2.1. Cration d'un fichier INF grce l'Assistant de dveloppement de drivers (DDW) Avant d'utiliser NI-VISA, il faut indiquer Windows de l'utiliser en tant que driver par dfaut du matriel. Dans l'environnement Windows, ceci est ralisable avec un fichier ".INF". Le driver NI-VISA 3.0 (et suprieur) inclut l'Assistant VISA Driver Development Wizard (DDW), qui permet de crer un fichier INF pour le matriel USB. 1. Pour ouvrir DDW, slectionnez DmarrageTous les programmesNational InstrumentsVISAVISA Driver Developer Wizard. La Figure n1 montre l'cran d'ouverture.

1/8

www.ni.com

Figure n1. cran de slection du bus matriel de l'Assistant VISA DDW

Cet assistant peut tre utilis afin de crer un fichier INF destin un matriel PXI/PCI, USB ou IEEE 1394. Pour la cration d'un driver de matriel USB, cliquez sur USB puis sur Next. La fentre des informations de base du matriel de VISA DDW s'ouvre, comme indiqu la Figure n2.

Figure n2. cran des informations de base sur le matriel de VISA DDW

2. cette tape, vous devez connatre l'identifiant (ID) du fournisseur USB et l'ID du produit, pour l'instrument USB. Ces nombres identifient le matriel USB pour son installation et son ciblage, afin de pouvoir communiquer avec lui. Selon la spcification USB, ces deux identifiants sont des nombres hexadcimaux 16 bits et doivent tre fournis par le fabricant du matriel. Si vous ne connaissez pas l'ID du fournisseur USB ni celui du produit, il est possible de les obtenir en connectant le matriel l'ordinateur et en laissant ce dernier reconnatre le nouveau matriel. Annulez l'assistant de recherche de nouveau matriel s'il dmarre. Ouvrez le gestionnaire de priphriques matriels partir du panneau de configuration et trouvez votre matriel dans la liste, habituellement dans la zone "Contrleurs de bus USB". Un point d'exclamation jaune peut tre affich pour indiquer qu'il s'agit d'un matriel inconnu. Double-cliquez sur le matriel pour ouvrir sa fentre de proprits. Slectionnez l'onglet Dtails et vrifiez que le "Numro d'identification de l'instance du priphrique" soit indiqu dans la liste droulante des attributs. Une chane de caractres similaire celle de la Figure n3 doit tre affiche. Les quatre caractres droite de "VID_" et de "PID_" sont respectivement l'ID du fournisseur et l'ID du produit. Notez ces caractres pour votre matriel, fermez le Gestionnaire de priphriques et dconnectez le matriel de l'ordinateur. Une autre solution consiste contacter le fournisseur du matriel pour obtenir ces informations.

2/8

www.ni.com

Figure n3. ID du fournisseur et ID du produit, partir du gestionnaire de priphriques

Pour le DAQPad-6020E, l'ID du fournisseur est 0x3923 et l'ID du produit est 0x12C0. Si votre matriel n'est pas un NI DAQPad-6020E, ces identifiants sont diffrents. Remarque : avant d'utiliser l'Assistant DDW, vrifiez que le matriel soit dconnect de l'ordinateur. Saisissez l'ID du fournisseur, l'ID du produit, le nom du fabricant et le nom du modle pour votre matriel dans les champs correspondants. Cliquez sur Next. La fentre de proprits des fichiers de sortie est affiche comme indiqu la Figure n4.

Figure n4. cran des proprits des fichiers de sortie de VISA DDW 3. Le prfixe d'instrument USB est tout simplement un descripteur destin identifier les fichiers utiliss pour ce matriel. Saisissez un prfixe d'instrument USB, slectionnez le rpertoire souhait dans lequel placer ces fichiers, puis cliquez sur Next. La fentre suivante prsente les options d'installation. Par dfaut, le choix propose d'installer les informations d'installation pour le systme d'exploitation et constitue souvent la meilleure option. Une fois cette option slectionne, cliquez sur Finish pour quitter l'assistant. Le fichier INF est cr dans le rpertoire de sortie spcifi l'cran prcdent.

2.2. Installation des fichiers INF et du matriel USB

L'installation des fichiers INF est diffrente pour chaque version de Windows. Lorsque l'Assistant DDW cre un fichier INF, les instructions d'installation sont incluses dans une en-tte au dbut du

3/8

www.ni.com

fichier INF. Comme les fichiers INF sont des fichiers texte ASCII, ils peuvent tre lus par n'importe quel diteur de texte tel que Bloc-notes. Pour en savoir plus sur l'installation d'un fichier INF, ouvrez les fichiers INF dans un diteur de textes et suivez les instructions situes au dbut du fichier. Ce tutorial suppose que l'on utilise Windows XP. 1. Copiez le fichier INF dans le rpertoire INF. Sous Windows XP, l'adresse de ce rpertoire est habituellement C:\WINDOWS\INF. Ce rpertoire peut tre cach, ce qui ncessite ventuellement de modifier les options des dossiers pour visualiser les fichiers cachs. 2. Cliquez avec le bouton droit sur le fichier INF dans C:\WINDOWS\INF puis cliquez sur Installer. Ce processus cre un fichier PNF pour le matriel. Le matriel USB est maintenant prt tre install. 3. Connectez le matriel USB. Parce qu'un matriel USB est enfichable chaud (Hot Plug), Windows doit pouvoir le dtecter et l'Assistant d'ajout d'un nouveau matriel doit dmarrer automatiquement ds qu'il est connect au port USB. Suivez les instructions sur l'cran de l'assistant. Lorsqu'on demande de slectionner un driver pour ce matriel, parcourez l'arborescence jusqu'au rpertoire INF et slectionnez le fichier INF cr grce l'Assistant DDW. Remarque : dans certains cas, Windows peut avoir dj associ un driver par dfaut au matriel USB. Alors, Windows cherchera d'abord installer ce driver. Une fois le matriel USB connect et Windows ayant install le driver par dfaut, cliquez avec le bouton droit sur Poste de travail et slectionnez Proprits. Dans la fentre Proprits systme, slectionnez l'onglet Matriel et cliquez sur le Gestionnaire de priphriques. Une fois celui-ci ouvert, dveloppez l'arborescence "Priphriques d'interface utilisateur (HID)". Puis trouvez quelle instance de "Priphrique d'interface utilisateur" (illustre la Figure n5) correspond votre matriel USB en cliquant avec le bouton droit, en slectionnant Proprits et en vrifiant l'onglet Dtails pour les ID du fournisseur et du produit correspondants.

Figure n5. Proprits de l'instance du priphrique d'interface utilisateur USB Une fois trouve, cliquez sur elle avec le bouton droit puis sur Mettre jour le pilote, comme illustr la Figure n6.

Figure n6. Mise jour du driver pour votre matriel USB Sur le premier cran, slectionnez "Non, pas maintenant/Installer partir d'une liste ou d'un emplacement spcifi (utilisateurs expriments)", puis cliquez sur Suivant. Sur le deuxime cran, slectionnez "Installer partir d'une liste ou d'un emplacement spcifi (utilisateurs expriments)", puis cliquez sur Suivant. Sur le troisime cran, slectionnez "Ne pas rechercher. Je vais choisir le pilote installer." Le quatrime cran ressemble celui de la Figure n7 o le pilote mis en surbrillance est celui que vous avez cr. Slectionnez ce driver, puis cliquez sur Suivant. Lorsque le driver a termin son installation, cliquez sur Termin.

4/8

www.ni.com

Figure n7. Slection du driver VISA pour votre matriel USB

2.3. Test des communications avec VISA Interactive Control

1. Ouvrir Measurement & Automation Explorer (MAX). Slectionnez OutilsRafrachir pour ractualiser la vue. Le matriel USB doit figurer sur la liste en tant que matriel USB sous Matriels et interfaces, comme illustr la Figure n8. Le matriel USB est dsormais install et configur pour utiliser NI-VISA. Si vous slectionnez le matriel USB, les informations sur le matriel sont affiches dans la fentre Paramtres USB. Depuis cette fentre, les informations telles que l'ID du fournisseur, le code du modle et le numro de srie du matriel sont accessibles.

Figure n8. Matriel USB vu dans MAX 2. Afin de communiquer avec le matriel grce VISA, utilisez le descripteur d'instrument VISA pour votre matriel. Le format du descripteur d'instrument pour un matriel USB INSTR est le suivant : USB[carte]:: ID du fournisseur:: code de modle:: numro de srie[:: numro de l'interface USB]::INSTR. Le format du descripteur d'instrument pour un matriel USB RAW est le suivant : USB[carte]:: ID du fournisseur:: code de modle:: numro de srie[:: numro de l'interface USB]::RAW. Selon la spcification USBTMC, tous les matriels USBTMC doivent possder un numro de srie. Certains matriels USB RAW peuvent ne pas avoir de numro de srie. Dans ce cas, NI-VISA assigne automatiquement un numro de srie VISA spcifique pour ce matriel. Le format de ce numro de srie est NI-VISA-#, o # est un nombre gnr automatiquement. Certains matriels USB ont plusieurs interfaces, de mme qu'un matriel PCI peut avoir plusieurs fonctions. Si votre matriel ne supporte qu'une seule interface, il n'est pas ncessaire d'inclure un numro d'interface USB. Le DAQPad-6020E utilise la classe RAW, le code du fournisseur et celui du modle sont respectivement 0x3923 et 0x12C0. Pour le DAQPad-6020E, le descripteur de l'instrument est USB0::0x3923::0x12C0::00B50DAE::RAW. Afin de tester les communications avec ce matriel, ouvrez MAX. Slectionnez OutilsNI-VISAVISA Interactive Control. Une fentre similaire celle de la Figure n9 doit s'ouvrir.

5/8

www.ni.com

Figure n9. VISA Interactive Control

3. Le programme VISA Interactive Control (VISAIC) est un utilitaire qui sert communiquer facilement avec n'importe quelle ressource VISA. Aprs la configuration du matriel USB pour l'utilisation de VISA, il devrait apparatre sur la liste dans la catgorie USB. Double-cliquez sur le matriel pour ouvrir une session VISA sur le matriel. Une fentre similaire celle de la Figure n10 doit s'ouvrir.

Figure n10. Session VISA ouverte par VISA Interactive Control

En ouvrant une session VISA avec VISAIC, les onglets Template et Property Node (Set) sont automatiquement slectionns. Pour lire une proprit, slectionnez l'onglet Property Node (Get) et slectionnez la proprit souhaite, puis cliquez sur Execute. La valeur actuelle de la proprit spcifie dans la zone Attribute Name est affiche dans l'indicateur Current Value. Sur la Figure n10, la proprit Resource Name a t lue. Pour en savoir plus sur l'utilisation de VISAIC, consultez le document de Developer Zone : VISA Interactive Control (VISAIC) . Pour en savoir plus sur l'API NI-VISA, consultez l' Aide NI-VISA. Leurs liens figurent la fin de ce tutorial. Afin d'obtenir une liste de commandes valides pour votre instrument USB, contactez le fournisseur de votre instrument.

3. Utilisation de NI-VISA pour communiquer avec un matriel USB Ce paragraphe dcrit comment communiquer avec un matriel USB en utilisant NI-VISA 3.0 et version suprieure. Rappelez-vous qu'il existe deux classes de matriels USB. La mthode de communication dpend de la classe de votre matriel.

3.1 Classe USB INSTR (USBTMC)

Les matriels conformes la Classe USB Test et mesure (USBTMC) utilisent la classe NI-VISA USB INSTR. Ces matriels utilisent un style de communication 488.2. Pour ces matriels, il est possible d'utiliser simplement les fonctions VISA Open, Close, Read et Write de la mme manire que pour communiquer avec des instruments GPIB.

6/8

www.ni.com

La Figure n11 illustre un VI LabVIEW qui communique avec un matriel USBTMC. Dans cet exemple, une session VISA est ouverte vers un matriel USB. Une commande est crite vers le matriel et la rponse est lue en retour. La commande spcifique envoye ici est la requte d'identification du matriel. Vrifiez auprs du fournisseur de votre matriel quel est le jeu de commandes. la fin des communications, la session VISA est ferme.

Figure n11. Exemple de diagramme LabVIEW USBTMC

3.2 Classe USB RAW

Communiquer avec la classe USB RAW est plus compliqu parce que chaque matriel peut utiliser son propre protocole de communication. Contactez le fournisseur de votre matriel pour en savoir plus sur son protocole de communication. L'USB communique grce quatre types de canaux ou de points de terminaison : de commande, en bloc, d'interruption et isochrone. Chaque type de canal transfre un type diffrent d'informations. De plus, les points de terminaison peuvent tre de n'importe quel type. Pensez au point de terminaison d'une socket de communication. Pour en savoir plus sur l'architecture USB, consultez la spcification USB partir du lien ci-dessous. NI-VISA supporte trois types de canaux USB : de commande, en bloc et d'interruption. Lorsque NI-VISA dtecte un instrument USB, il balaye automatiquement l'instrument pour trouver le point de terminaison le plus bas pour chaque type. Lorsque VISA le dtecte, il assigne cette valeur l'attribut VISA appropri. Les points de terminaison d'entre et de sortie en bloc sont stocks dans les attributs VI_ATTR_USB_BULK_IN_PIPE et VI_ATTR_USB_BULK_OUT_PIPE, respectivement. Le point de terminaison d'entre d'interruption est stock dans l'attribut VI_ATTR_USB_INTR_IN_PIPE. Une valeur de -1 indique qu'un matriel USB ne supporte pas ce type de canal. Pour le canal de commande, seul le point de terminaison zro est support. Si vous utilisez l'API C, la fonction viSetAttribute permettra de modifier les points de terminaison. En LabVIEW, utilisez le nud de proprits VISA et la fonction VISA Write. NI-VISA inclut quatre fonctions destines transfrer des donnes via des canaux USB. Avant de pouvoir communiquer avec le matriel grce ces fonctions, il est ncessaire de paramtrer le protocole de communication en utilisant les attributs USB VISA. La liste suivante dcrit les fonctions disponibles. Utilisez les fonctions VISA USB Control In et VISA USB Control Out pour transfrer des donnes par un canal de commande. Pour transfrer des donnes par un canal en bloc, utilisez les fonctions VISA Read et VISA Write. Avec LabVIEW, VISA inclut une fonction supplmentaire utiliser avec le canal d'interruption : VISA Get USB Interrupt Data. Dans l'API C, la mme action peut tre ralise en accdant aux attributs VI_ATTR_USB_RECV_INTR_SIZE et VI_ATTR_USB_RECV_INTR_DATA de l'objet vnement VI_EVENT_USB_INTR. Consultez l' Aide NI-VISA pour en savoir plus sur les vnements VISA. 4. L'USB sous Linux et Mac

4.1 Linux

NI-VISA se base sur une fonctionnalit du noyau Linux pour supporter l'USB. Cette fonctionnalit est dnomme usbfs, et sur les anciens noyaux Linux, usbdevfs. Pour que NI-VISA supporte les matriels USB, cette fonctionnalit doit tre prsente et monte (comme un systme de fichiers virtuel). La plupart des principales distributions de Linux, telles que Red Hat, SuSE et Mandrake, la supporte. La commande de montage peut tre utilise pour afficher la liste des systmes de fichiers actuellement monts, pour vrifier si le systme supporte actuellement cette fonctionnalit. L'utilisateur de VISA doit galement avoir un accs en criture au fichier qui reprsente le matriel USB, typiquement enregistr dans un sous rpertoire de /proc/bus/usb. Si tel n'est pas le cas, le matriel USB n'est pas accessible par VISA (il ne sera pas trouv par la fonction viFindRsrc et la fonction viOpen chouera). Sur la plupart des systmes, la configuration par dfaut permet un accs en criture l'utilisateur racine ; cependant, aucun autre utilisateur n'a cette permission d'accs. Il existe plusieurs options pour permettre l'accs un matriel USB par un utilisateur non racine. Utilisez le package hotplug. Ce package est install par dfaut par la plupart des distributions, dont Red Hat, SuSE et Mandrake. Le package hotplug permet l'utilisateur d'excuter des scripts pour un matriel USB spcifique, sur la base de caractristiques telles que l'ID du fournisseur (VID) et l'ID du produit (PID). Lorsque le package hotplug existe, l'installeur NI-VISA installera par dfaut des scripts qui permettront tous les utilisateurs d'accder en criture l'ensemble des matriels USB TMC et une infrastructure pour les matriels USB RAW. Afin d'ajouter des permissions d'criture pour un matriel USB RAW spcifique, excutez le script inclus : <VXIPNPPATH>/linux/NIvisa/USB/AddUsbRawPermissions.sh Pour en savoir plus sur le package hotplug, consultez le site Web suivant : http://linux-hotplug.sourceforge.net/. La fonctionnalit usbfs (prcdemment dnomme usbdevfs) peut tre monte avec l'option devmode=0666. Cette option donne tous les utilisateurs les accs en lecture et en criture tous les matriels USB. L'utilisateur racine peut ajouter des permissions en criture au fichier qui reprsente le matriel USB, typiquement enregistr dans un sous-rpertoire de /proc/bus/usb. Malheureusement, ces permissions sont perdues si le matriel est dconnect. Pour cette raison, cette approche n'est pas recommande.

7/8

www.ni.com

4.2 Mac OS X Tant qu'aucun autre driver du systme ne revendique le matriel USB, NI-VISA peut tre utilis pour y accder. Aucun paramtrage particulier n'est ncessaire.

Liens : Retour la page d'accueil sur les principes fondamentaux du contrle d'instruments Rfrence : Aide NI-VISA Developer Zone : VISA Interactive Control (VISAIC) . Utilisation de l'Assistant VISA Driver Development Wizard (DDW) et de NI-VISA pour programmer un matriel PXI/PCI sous Windows au niveau du registre Forum USB-IF (USB Implementers Forum) : spcification USB 2.0 : http://www.usb.org/developers/docs Forum USB-IF (USB Implementers Forum) : documents approuvs de spcification des classes : http://www.usb.org/developers/devclass_docs Developer Zone : Communication de commande USB RAW avec LabVIEW Developer Zone : Communication en bloc USB RAW avec LabVIEW Developer Zone : Exemple de fonction Get Interrupt Data en mode VISA USB RAW

Linux est la marque dpose de Linus Torvalds aux tats-Unis et dans d'autres pays. Lgislation Ce tutorial a t dvelopp par National Instruments. Bien qu'un support technique puisse tre fourni pour ce tutorial, il n'a pas t compltement test ni vrifi, et NI ne garantit pas sa qualit, ni qu'il continuera tre support pour les nouvelles versions des produits et drivers qui y sont rattachs. CE TUTORIAL EST FOURNI "EN L'TAT" SANS GARANTIE D'AUCUNE SORTE, ET EST SUJET CERTAINES RESTRICTIONS COMME PLUS SPCIFIQUEMENT DTERMINES DANS LES CONDITIONS D'UTILISATION DE NI.COM ( http://ni.com/legal/termsofuse/unitedstates/us/).

8/8

www.ni.com

Vous aimerez peut-être aussi