Carte d'interface USB Labview - PIC18F4550 via la communication HID


  Catégorie : Réalisation de cartes électroniques   Mise à jour le : 12/08/2013 21:46
  Ajouté par : Technologuepro   Lectures : 32036
  Commentaires : 4   [ Poster un commentaire ]   Note : 
  

Ce montage consiste à réaliser une carte d’interface USB avec une interface graphique réalisée avec LABVIEW à base de microcontrôleur PIC18F4550 pour commander des sorties numériques et acquérir des entrées numériques et analogiques via le convertisseur du PIC.

Cette carte interface proposé par notre cher ami CHEDLI BOU THAALAB, nécessite deux programmes : un coté PIC18F4550 édité avec Mikropascal et l'autre côté PC réalisé avec Labview.
Interface USB Labview
 
Nous allons commencer par un tutorial sur l’USB dans Labview ;
1.     Introduction
Ce tutorial constitue un point de départ dans l'utilisation de NI-VISA pour communiquer avec un matériel USB. Toutefois, il ne s'agit pas d'une introduction à l'architecture USB ni aux différents protocoles utilisés dans les communications par USB. Après lecture de ce tutorial, vous serez capable d'installer un matériel USB et d'utiliser NI-VISA pour communiquer avec ce matériel, en ayant assimilé le fonctionnement du protocole de communication.
2.     Connaissances de base sur l'USB et sur VISA
VISA est une API (interface de programmation d'applications) haut niveau utilisée pour communiquer avec les bus d'instrumentation. Elle est indépendante de la plate-forme, du bus et de l'environnement. Autrement dit, la même API est utilisée pour créer un programme de communication avec un matériel USB grâce à LabVIEW sur une machine sous Windows.
L'USB est un bus de communication basé messages. Cela signifie qu'un PC et un matériel USB communiquent par envoi de commandes et de données sur le bus sous forme de données textuelles ou binaires.
Chaque matériel USB possède 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 ou créer vos propres commandes.
NI-VISA supporte les communications par USB à partir de la version 3.0. Deux classes de ressources VISA sont supportées : USB INSTR et USB RAW.
Les matériels USB conformes au protocole USB de classe test et mesure (USBTMC) utilisent les ressources de classe USB INSTR. Les matériels USBTMC sont conformes à un protocole que la classe de ressources VISA USB INSTR peut comprendre. Pour communiquer avec un matériel USBTMC, aucune configuration n'est nécessaire.
Tout instrument USB autre que ceux qui sont spécifiquement conformes à la spécification USBTMC est un instrument USB RAW.
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 suivant.
 
3.     Configuration de NI-VISA pour le contrôle d'un bus USB
 Ce paragraphe parcourt les étapes de configuration d'un matériel USB RAW pour son contrôle par NI-VISA 3.0 à partir d'un ordinateur sous Windows. Pour un matériel compatible USBTMC, connectez le matériel et passez directement au paragraphe 4.
À ce stade, NI-VISA doit être déjà installé sur l'ordinateur et le matériel USB ne doit pas être connecté. De plus, le driver du matériel USB ne doit pas être installé. Trois étapes sont nécessaires pour configurer un matériel USB pour utiliser NI-VISA :
  • Création d'un fichier INF grâce à l'Assistant de développement de drivers (DDW).
  • Installation du fichier INF et du matériel USB grâce au fichier INF.
  • Test du matériel avec NI-VISA Interactive Control.
Tout au long de ce tutorial, on utilise un boîtier NI DAQPad-6020E installé sur un système Windows XP, comme exemple de matériel USB. Comme ce tutorial est destiné à expliquer la configuration d'un matériel USB générique, les spécifications détaillées du DAQPad-6020E ne sont pas traitées ici. Rappelez-vous que NI-DAQ est le seul driver supporté pour contrôler un DAQPad-6020E.
 
3.1. Création d'un fichier INF grâce à l'Assistant de développement de drivers (DDW)
Avant d'utiliser NI-VISA, il faut indiquer à Windows de l'utiliser en tant que driver par défaut du matériel. Dans l'environnement Windows, ceci est réalisable avec un fichier ".INF". Le driver NI-VISA 3.0 (et supérieur) inclut l'Assistant VISA Driver Development Wizard (DDW), qui permet de créer un fichier INF pour le matériel USB.
Pour ouvrir DDW, sélectionnez Démarrage»Tous les programmes»National Instruments»VISA»VISA Driver Developer Wizard. La Figure n°1 montre l'écran d'ouverture.
 
 Figure n°1. Écran de sélection du bus matériel de l'Assistant VISA DDW
Figure n°1. Écran de sélection du bus matériel de l'Assistant VISA DDW
 
Cet assistant peut être utilisé afin de créer un fichier INF destiné à un matériel PXI/PCI, USB ou IEEE 1394. Pour la création d'un driver de matériel USB, cliquez sur USB puis sur Next. La fenêtre des informations de base du matériel de VISA DDW s'ouvre, comme indiqué à la Figure n°2.
Figure n°2. Écran des informations de base sur le matériel de VISA DDW
Figure n°2. Écran des informations de base sur le matériel de VISA DDW
 
À cette étape, vous devez connaître l'identifiant (ID) du fournisseur USB et l'ID du produit, pour l'instrument USB. Ces nombres identifient le matériel USB pour son installation et son ciblage, afin de pouvoir communiquer avec lui. Selon la spécification USB, ces deux identifiants sont des nombres hexadécimaux 16 bits et doivent être fournis par le fabricant du matériel.
Si vous ne connaissez pas l'ID du fournisseur USB ni celui du produit, il est possible de les obtenir en connectant le matériel à l'ordinateur et en laissant ce dernier reconnaître le nouveau matériel.
Annulez l'assistant de recherche de nouveau matériel s'il démarre. Ouvrez le gestionnaire de périphériques matériels à partir du panneau de configuration et trouvez votre matériel dans la liste, habituellement dans la zone "Contrôleurs de bus USB". Un point d'exclamation jaune peut être affiché pour indiquer qu'il s'agit d'un matériel inconnu. Double-cliquez sur le matériel pour ouvrir sa fenêtre de propriétés. Sélectionnez l'onglet Détails et vérifiez que le "Numéro d'identification de l'instance du périphérique" soit indiqué dans la liste déroulante des attributs. Une chaîne de caractères similaire à celle de la Figure n°3 doit être affichée. Les quatre caractères à droite de "VID_" et de "PID_" sont respectivement l'ID du fournisseur et l'ID du produit. Notez ces caractères pour votre matériel, fermez le Gestionnaire de périphériques et déconnectez le matériel de l'ordinateur. Une autre solution consiste à contacter le fournisseur du matériel pour obtenir ces informations.
 Figure n°3. ID du fournisseur et ID du produit, à partir du gestionnaire de périphériques
Figure n°3. ID du fournisseur et ID du produit, à partir du gestionnaire de périphériques
 
Pour le DAQPad-6020E, l'ID du fournisseur est 0x3923 et l'ID du produit est 0x12C0. Si votre matériel n'est pas un NI DAQPad-6020E, ces identifiants sont différents.
Remarque : avant d'utiliser l'Assistant DDW, vérifiez que le matériel soit déconnecté de l'ordinateur.
Saisissez l'ID du fournisseur, l'ID du produit, le nom du fabricant et le nom du modèle pour votre matériel dans les champs correspondants.
Cliquez sur Next. La fenêtre de propriétés des fichiers de sortie est affichée comme indiqué à la Figure n°4.
Figure n°4. Écran des propriétés des fichiers de sortie de VISA DDW
Figure n°4. Écran des propriétés des fichiers de sortie de VISA DDW
 
Le préfixe d'instrument USB est tout simplement un descripteur destiné à identifier les fichiers utilisés pour ce matériel. Saisissez un préfixe d'instrument USB, sélectionnez le répertoire souhaité dans lequel placer ces fichiers, puis cliquez sur Next. La fenêtre suivante présente les options d'installation. Par défaut, le choix propose d'installer les informations d'installation pour le système d'exploitation et constitue souvent la meilleure option. Une fois cette option sélectionnée, cliquez sur Finish pour quitter l'assistant. Le fichier INF est créé dans le répertoire de sortie spécifié à l'écran précédent.
 
3.2. Installation des fichiers INF et du matériel USB
L'installation des fichiers INF est différente pour chaque version de Windows. Lorsque l'Assistant DDW crée un fichier INF, les instructions d'installation sont incluses dans une en-tête au début du 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 situées au début du fichier. Ce tutorial suppose que l'on utilise Windows XP.
Copiez le fichier INF dans le répertoire INF. Sous Windows XP, l'adresse de ce répertoire est habituellement C:WINDOWSINF. Ce répertoire peut être caché, ce qui nécessite éventuellement de modifier les options des dossiers pour visualiser les fichiers cachés.
 
Cliquez avec le bouton droit sur le fichier INF dans C:WINDOWSINF puis cliquez sur Installer. Ce processus crée un fichier PNF pour le matériel. Le matériel USB est maintenant prêt à être installé.
Connectez le matériel USB. Parce qu'un matériel USB est enfichable à chaud (Hot Plug), Windows doit pouvoir le détecter et l'Assistant d'ajout d'un nouveau matériel doit démarrer automatiquement dès qu'il est connecté au port USB. Suivez les instructions sur l'écran de l'assistant. Lorsqu'on demande de sélectionner un driver pour ce matériel, parcourez l'arborescence jusqu'au répertoire INF et sélectionnez le fichier INF créé grâce à l'Assistant DDW.
Remarque : dans certains cas, Windows peut avoir déjà associé un driver par défaut au matériel USB. Alors, Windows cherchera d'abord à installer ce driver. Une fois le matériel USB connecté et Windows ayant installé le driver par défaut, cliquez avec le bouton droit sur Poste de travail et sélectionnez Propriétés. Dans la fenêtre Propriétés système, sélectionnez l'onglet Matériel et cliquez sur le Gestionnaire de périphériques. Une fois celui-ci ouvert, développez l'arborescence "Périphériques d'interface utilisateur (HID)". Puis trouvez quelle instance de "Périphérique d'interface utilisateur" (illustrée à la Figure n°5) correspond à votre matériel USB en cliquant avec le bouton droit, en sélectionnant Propriétés et en vérifiant l'onglet Détails pour les ID du fournisseur et du produit correspondants.
 
Figure n°5. Propriétés de l'instance du périphérique d'interface utilisateur USB
Figure n°5. Propriétés de l'instance du périphérique d'interface utilisateur USB
 
Une fois trouvée, cliquez sur elle avec le bouton droit puis sur Mettre à jour le pilote, comme illustré à la Figure n°6.
 
Figure n°6. Mise à jour du driver pour votre matériel USB
Figure n°6. Mise à jour du driver pour votre matériel USB
 
Sur le premier écran, sélectionnez "Non, pas maintenant/Installer à partir d'une liste ou d'un emplacement spécifié (utilisateurs expérimentés)", puis cliquez sur Suivant. Sur le deuxième écran, sélectionnez "Installer à partir d'une liste ou d'un emplacement spécifié (utilisateurs expérimentés)", puis cliquez sur Suivant. Sur le troisième écran, sélectionnez "Ne pas rechercher. Je vais choisir
le pilote à installer." Le quatrième écran ressemble à celui de la Figure n°7 où le pilote mis en surbrillance est celui que vous avez créé. Sélectionnez ce driver, puis cliquez sur Suivant. Lorsque le driver a terminé son installation, cliquez sur Terminé.
 
Figure n°7. Sélection du driver VISA pour votre matériel USB
Figure n°7. Sélection du driver VISA pour votre matériel USB
 
4.  Test des communications avec VISA Interactive Control
Ouvrir Measurement & Automation Explorer (MAX). Sélectionnez  Outils»Rafraîchir pour réactualiser la vue. Le matériel USB doit figurer sur la liste en tant que matériel USB sous Matériels et interfaces, comme illustré à la Figure n°8. Le matériel USB est désormais installé et configuré pour utiliser NI-VISA.
Si vous sélectionnez le matériel USB, les informations sur le matériel sont affichées dans la fenêtre Paramètres USB. Depuis cette fenêtre, les informations telles que l'ID du fournisseur, le code du modèle et le numéro de série du matériel sont accessibles.
 
Figure n°8. Matériel USB vu dans MAX
Figure n°8. Matériel USB vu dans MAX
 
Afin de communiquer avec le matériel grâce à VISA, utilisez le descripteur d'instrument VISA pour votre matériel. Le format du descripteur d'instrument pour un matériel USB INSTR est le suivant : USB[carte]:: ID du fournisseur:: code de modèle:: numéro de série[:: numéro de l'interface USB]::INSTR. Le format du descripteur d'instrument pour un matériel USB RAW est le suivant :
USB[carte]:: ID du fournisseur:: code de modèle:: numéro de série[:: numéro de l'interface USB]::RAW.
Selon la spécification USBTMC, tous les matériels USBTMC doivent posséder un numéro de série. Certains matériels USB RAW peuvent ne pas avoir de numéro de série. Dans ce cas, NI-VISA assigne automatiquement un numéro de série VISA spécifique pour ce matériel. Le format de ce numéro de série est NI-VISA-#, où # est un nombre généré automatiquement.
Certains matériels USB ont plusieurs interfaces, de même qu'un matériel PCI peut avoir plusieurs fonctions. Si votre matériel ne supporte qu'une seule interface, il n'est pas nécessaire d'inclure un numéro d'interface USB.
Le DAQPad-6020E utilise la classe RAW, le code du fournisseur et celui du modèle 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 matériel, ouvrez MAX. Sélectionnez Outils»NI-VISA»VISA Interactive Control. Une fenêtre similaire à celle de la Figure n°9 doit s'ouvrir.
 
Figure n°9. VISA Interactive Control
Figure n°9. VISA Interactive Control
 
Le programme VISA Interactive Control (VISAIC) est un utilitaire qui sert à communiquer facilement avec n'importe quelle ressource VISA. Après la configuration du matériel USB pour l'utilisation de VISA, il devrait apparaître sur la liste dans la catégorie USB. Double-cliquez sur le matériel pour ouvrir une session VISA sur le matériel. Une fenêtre similaire à celle de la Figure n°10 doit
s'ouvrir.
 
 
Figure n°10. Session VISA ouverte par VISA Interactive Control
Figure n°10. Session VISA ouverte par VISA Interactive Control
 
En ouvrant une session VISA avec VISAIC, les onglets Template et Property Node (Set) sont automatiquement sélectionnés. Pour lire une propriété, sélectionnez l'onglet Property Node (Get) et sélectionnez la propriété souhaitée, puis cliquez sur Execute. La valeur actuelle de la propriété spécifiée dans la zone Attribute Name est affichée dans l'indicateur Current Value. Sur la Figure n°10, la propriété 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.
Utilisation de NI-VISA pour communiquer avec un matériel USB
Ce paragraphe décrit comment communiquer avec un matériel USB en utilisant NI-VISA 3.0 et version supérieure. Rappelez-vous qu'il existe deux classes de matériels USB. La méthode de communication dépend de la classe de votre matériel.
Classe USB INSTR (USBTMC)
Les matériels conformes à la Classe USB Test et mesure (USBTMC) utilisent la classe NI-VISA USB INSTR. Ces matériels utilisent un style de communication 488.2. Pour ces matériels, il est possible d'utiliser simplement les fonctions VISA Open, Close, Read et Write de la même manière que pour communiquer avec des instruments GPIB.
La Figure n°11 illustre un VI LabVIEW qui communique avec un matériel USBTMC. Dans cet exemple, une session VISA est ouverte vers un matériel USB. Une commande est écrite vers le matériel et la réponse est lue en retour. La commande spécifique envoyée ici est la requête d'identification du matériel. Vérifiez auprès du fournisseur de votre matériel quel est le jeu de commandes. À la fin des communications, la session VISA est fermée.
 
Figure n°11. Exemple de diagramme LabVIEW USBTMC
Figure n°11. Exemple de diagramme LabVIEW USBTMC
 
 
Classe USB RAW
Communiquer avec la classe USB RAW est plus compliqué parce que chaque matériel peut utiliser son propre protocole de communication. Contactez le fournisseur de votre matériel pour en savoir plus sur son protocole de communication.
L'USB communique grâce à quatre types de canaux ou de points de terminaison : de commande, en bloc, d'interruption et isochrone. Chaque type de canal transfère un type différent d'informations.
De plus, les points de terminaison peuvent être de n'importe quel type. Pensez au point de terminaison d'un socket de communication. Pour en savoir plus sur l'architecture USB, consultez la spécification USB à partir du lien ci-dessous.
NI-VISA supporte trois types de canaux USB : de commande, en bloc et d'interruption. Lorsque NI-VISA détecte un instrument USB, il balaye automatiquement l'instrument pour trouver le point de terminaison le plus bas pour chaque type.
Lorsque VISA le détecte, il assigne cette valeur à l'attribut VISA approprié. Les points de terminaison d'entrée et de sortie en bloc sont stockés dans les attributs VI_ATTR_USB_BULK_IN_PIPE et VI_ATTR_USB_BULK_OUT_PIPE, respectivement. Le point de terminaison d'entrée d'interruption est stocké dans l'attribut VI_ATTR_USB_INTR_IN_PIPE. Une valeur de -1 indique qu'un matériel USB ne supporte pas ce type de canal. Pour le canal de commande, seul le point de terminaison zéro est supporté. Si vous utilisez l'API C, la fonction viSetAttribute permettra de modifier les points de terminaison. En LabVIEW, utilisez le noeud de propriétés VISA et la fonction VISA Write.
NI-VISA inclut quatre fonctions destinées à transférer des données via des canaux USB. Avant de pouvoir communiquer avec le matériel grâce à ces fonctions, il est nécessaire de paramétrer le protocole de communication en utilisant les attributs USB VISA. La liste suivante décrit les fonctions disponibles.
Utilisez les fonctions VISA USB Control In et VISA USB Control Out pour transférer des données par un canal de commande.
Pour transférer des données par un canal en bloc, utilisez les fonctions VISA Read et VISA Write.
Avec LabVIEW, VISA inclut une fonction supplémentaire à utiliser avec le canal d'interruption : VISA Get USB Interrupt Data. Dans l'API C, la même action peut être réalisée en accédant aux attributs VI_ATTR_USB_RECV_INTR_SIZE et VI_ATTR_USB_RECV_INTR_DATA de l'objet événement VI_EVENT_USB_INTR. Consultez l'Aide NI-VISA pour en savoir plus sur les événements
VISA.
 
Programme du PIC;
L'USB a le désavantage d'obliger l'utilisation de composants particuliers. Dans notre application, nous aurons recours au microcontrôleur 18F4550 de Microchip, une puce simple à programmer (en mikropaskal) et munie de tous les composants hardware nécessaire à la communication sur port USB. Le schéma de la mise en place du composant reste très simple:
 
Carte de communication USB Labview
Figure 12: Carte de communication USB Labview
 
Au centre du schéma, nous retrouvons le PIC18F4550, celui-ci est cadencé par un quartz à 20MHz. Nous avons aussi câblé sur ce schéma 4 entrées analogiques: AN0, AN1, AN2, AN3, AN4 et AN5. Sur les broches Rd0 à RD7 nous plaçons des leds qui nous servirons pour notre application. Le port B reste inutilisé pour notre article mais nous plaçons la possibilité d'étendre les fonctionnalités de la carte en installant des borniers.
Les capacités C1 et C2 sont de 22pf. Attention de ne pas se tromper pour le connecteur USB. Il s'agit d'un connecteur femelle de Type B. Pour la connecter au PC, j'utilise un cordon d'imprimante A vers B, le même que les cordons HP.
 Routage:
Routage de la carte
 
Programmation du PIC18F4550:
Créer un nouveau projet pour PIC18F4550, en fixant la fréquence de l'horloge du PIC (pas la fréquence de résonance du quartz, mais la fréquence en sortie du PLL fournie par le tableau ci-après).
 
Horlogue du PIC
 
Ensuite, il faut configurer le comportement du PIC en remplissant ses fusibles. Les fusibles sont différents registres du PIC qui fixent le type d'oscillateur, la vitesse de l'horloge interne, l'état du watchdog...
Pour ce faire, Mikropaskal fournit une interface graphique qui simplifie la configuration du PIC (Project -> Edit Project). Pour que l'interface HID fonctionne correctement, il faut respecter quelques règles:
 
    Activer le régulateur de tension USB
    Assurer une fréquence d'hologe de 4MHz en sortie de la PLL
    Utiliser la sortie de la PLL comme horlog USB    
Mikropascal fournis un ensemble de librairies facilitant la mise en place du protocole HID. Voici les étapes clé de la programmation de l'interface:

Générer le Descripteur de l'interface:

  1. Lancer l'utilitaire HID Terminal de Mikropascal (Tools -> HID Terminal)
  2. Onglet Descriptor
  3. Compléter les informations propres à votre interface
  4. Enregistrer le descripteur pour Mikropascal dans le dossier de votre projet
 USB
· Importer le descripteur dans votre projet: « uses USBdsc; »
· Initialiser le module HID: HID-Enable(&ReadBuf, &WriteBuf);
· Pour lire des informations: while (HID_Read() = 0); uu par interruption
· Pour écrire des informations: HID_Write();
 
Pour envoyer votre programme sur l'interface; il vous faut utiliser un programmateur de PIC. J'utilise un programmateur USB. Ensuite il faut importer le fichier .hex qui à été généré par Mikropascal et programmer le PIC avec. La procédure diffère selon le programmateur.
Poure tester la communication HID, vous pouvez utiliser le HID Terminal fournis par Mikropascal Personnellemet, j'utilise Labview, un environnement de programmation graphique développé par National Instrument, qui offre une grande compatibilité avec la plupart des protocoles de communications.
Voivi un exemple simple de commucication HID pernettant de piloter la luminosité des LEDs de l'interface et lire l’entrée analogique
  

Téléchargement :

Carte électronique + Routage

Programme Mikropascal

Interface LABVIEW + Driver

 Documentation sur l'USB

Liens et sources:

www.ni.com

Aide NI-VISA


  

   Lectures recommandées sur ce thème :


  Commentaires

 yosrazini2



 sofi mohamed

mercii

erreur de création fichier inf
 wajih7

bsr , j'ai windows 8.1 et quand je vais installer le driver de mon materiel usb( phase de création un fichier INF ) il apparait une erreur alors là je peux pas faire la simulation après !

 Claudine75

Coucou, ton forum est trop ! Je viens tous les jours et cela me plait beaucoup
voyance gratuite en ligne par mail

*Poster un commentaire :
Uniquement les membres peuvent poster des commentaires

Haut de page

© 2017 Technologue pro, cours électricité électronique informatique · © 2007 - 2017 Technologue pro - Ressources pédagogiques pour l'enseignement technologique en Tunisie
Usage dans un cadre strictement académiqueMontages electroniques simples, pour les amateurs et pro de l'électronique, offre de montage electronique et cours en ligne gratuit: programmateurs de PIC USB, chargeur pour batteries, insoleuse 3 tubes ultra violet pour circuits imprimés et carte développement microcontrôleur PIC

Licence - Sitemap - Qui somme nous ? - confidentialité- Tunisie Index - Annuaire Tunisie -