Overview
L'acquisition de données (DAQ) intelligente est une acquisition de données multifonction qui présente un traitement embarqué défini par l'utilisateur pour une flexibilité complète du cadencement et du déclenchement du système. Grâce au Module NI LabVIEW FPGA, vous pouvez créer une fonctionnalité matérielle personnalisée sans connaissance préalable ni savoir-faire en conception de matériel bas niveau. Une fois la fonctionnalité compilée, elle n'a plus besoin du Module LabVIEW FPGA, et peut s’obtenir avec un programme hôte dans LabVIEW pour Windows ou LabVIEW Real-Time en utilisant le driver NI-RIO. Ce tutorial décrit la façon de s'interfacer à une fonctionnalité DAQ personnalisée, et contient de la documentation sur des exemples de fonctionnalités qui peuvent se télécharger et s'exécuter sur du matériel DAQ intelligent de la Série R.
Table of Contents
Introduction
La flexibilité du cadencement et du déclenchement est un élément essentiel dans le choix du matériel d'acquisition de données (DAQ). Plutôt qu'un ASIC pré-déterminé pour contrôler les fonctionnalités du matériel, l'acquisition de données (DAQ) intelligente utilise un contrôleur de cadencement système basé FPGA afin de rendre toutes les E/S analogiques et numériques configurables pour un fonctionnement propre à l'application. En créant des fonctionnalités DAQ personnalisées, un matériel unique peut satisfaire, à lui seul, les besoins les plus exigents et peut facilement être reconfiguré pour des applications ultérieures.
Figure n°1. Matériel DAQ intelligent PCI-7831R
En utilisant les matériels DAQ intelligents, vous pouvez créer une fonctionnalité matérielle personnalisée sans connaissance préalable ni savoir-faire en conception de matériel bas niveau. Une "fonctionnalité" DAQ est pour l'essentiel une application LabVIEW FPGA qui a été compilée dans un fichier bitfile contenant des informations sur la configuration FPGA. Une fois le fichier bitfile généré, une fonctionnalité DAQ n'a plus besoin du Module LabVIEW FPGA et peut être accessible dans LabVIEW pour Windows ou LabVIEW Real-Time en utilisant le driver NI-RIO. La fonctionnalité peut aussi être téléchargée vers la mémoire flash non volatile du matériel DAQ lui-même et configurée pour se charger au démarrage.
Mise en œuvre d'une fonctionnalité DAQ personnalisée
Le Module LabVIEW FPGA prend des diagrammes LabVIEW et les implémente ensuite pour les exécuter sur silicium, sur un circuit FPGA. Le matériel DAQ intelligent est spécifié dans l'exploreur de projets LabVIEW, et lorsqu'on appuie sur la flèche Exécuter, un VI LabVIEW FPGA va commencer à être compilé en un fichier bitfile de fonctionnalité. Une fois le fichier bitfile généré, tous les objets de la face-avant (commandes et indicateurs) du VI LabVIEW FPGA sont représentés sous forme de registres sur le circuit FPGA, et peuvent être accessibles depuis une application hôte en utilisant le driver NI-RIO.
La Figure n°2 présente le diagramme d'une application LabVIEW FPGA qui a été compilée en un fichier bitfile, et sera utilisée comme exemple de fonctionnalité DAQ personnalisée dans ce tutorial.
Figure n°2. Exemple de fonctionnalité DAQ personnalisée avec échantillonnage multifréquence et quatre compteurs d'événements simples 64 bits
Cet exemple de fonctionnalité échantillonne deux voies d'entrées analogiques séparément, et inclut aussi quatre compteurs d'événements simples 64 bits. Chaque boucle d'entrée analogique référence une ligne séparée d'E/S numériques pour le déclenchement, et acquiert un nombre fini d'échantillons à chaque front montant. Dans les matériels DAQ intelligents de la Série R, la valeur analogique est numérisée lorsque le nœud des E/S FPGA analogiques s'exécute. L'échantillon obtenu est ensuite transféré immédiatement sur le bus PCI vers la mémoire hôte, en utilisant un nœud FIFO DMA. Échantillonner des voies analogiques différentes à des vitesses indépendantes n'est pas possible sur du matériel d'acquisition de données classique.
La Figure n°3 présente la face-avant du même VI LabVIEW FPGA.
Figure n°3. Face-avant d'un exemple de fonctionnalité DAQ personnalisée
Les commandes et indicateurs de la face-avant sont importants parce qu'ils constituent le seul accès vers un diagramme LabVIEW FPGA compilé. Comme mentionné précédemment, tous les objets de la face-avant sont convertis en registres matériels sur le FPGA. Cet exemple utilise des commandes pour configurer le nombre d'échantillons et la période d'échantillonnage (en microsecondes) pour les deux voies d'entrées analogiques. La valeur 64 bits des registres descompteurs figure aussi sur la face-avant, et peut, par conséquent, être lue depuis l'application hôte. Les sections suivantes mettront l'accent sur le développement de l'application hôte pour cet exemple de fonctionnalité DAQ.
Pour obtenir plus d'informations sur la programmation LabVIEW FPGA pour les applications d'acquisition de données, référez-vous à :
Techniques avancées d'acquisition de données avec du matériel DAQ intelligent
Construire un VI hôte pour une fonctionnalité compilée LabVIEW FPGA
Une fois que la fonctionnalité DAQ personnalisée a été créée, vous pouvez interagir avec des registres matériels en développant une application hôte à l'aide du driver NI-RIO. Le logiciel driver NI-RIO est inclus avec le matériel DAQ intelligent de la Série R, et installe automatiquement la palette Interface hôte FPGA présentée dans la Figure n°4.
Figure n°4. Open FPGA VI Reference.vi sur la palette Interface hôte FPGA
La fonction Open FPGA VI Reference.vi sur la palette Interface FPGA ouvre une référence vers le matériel DAQ intelligent, ainsi que le VI LabVIEW FPGA, ou le fichier bitfile.
Figure n°5. Choisir un fichier bitfile LabVIEW FPGA compilé
Le menu contextuel de la fonction Open FPGA VI Reference.vi vous permet de spécifier un VI LabVIEW FPGA dans le projet LabVIEW, ou de rechercher un fichier bitfile LabVIEW FPGA compilé. Une fois que le VI ou le fichier bitfile a été spécifié, le matériel DAQ de la Série R peut être sélectionné. Cela peut aussi se faire dans le menu en choisissant Select Address…, ou peut être réalisé par programmation en choisissant Show Resource Input.
Figure n°6. Choisir une cible DAQ intelligente de Série R
Ensuite, la fonction Read/Write Control.vi sert à lire et à écrire sur n'importe quel(le) commande ou indicateur LabVIEW FPGA.
Figure n°7. Read/Write Control.vi sur la palette Interface hôte FPGA
Une fois que la référence du VI LabVIEW FPGA est câblée à l'entrée de cette fonction, une liste de toutes les commandes et indicateurs de la face-avant est établie, semblable aux nœuds de propriété LabVIEW. La lecture de cette fonction dans une boucle va utiliser les transferts par bus PCI pour interroger les registres sur le FPGA à la vitesse de la boucle. La fonction Read/Write Control.vi est très efficace pour transférer les valeurs des données uniques vers et depuis le VI LabVIEW FPGA compilé.
Figure n°8. Écrire sur des objets de la face-avant du VI FPGA dans l'application d'interface hôte
Une différence essentielle entre la DAQ multifonction traditionnelle avec le driver NI-DAQmx et la DAQ intelligente est la façon dont le transfert de données DMA est implémentée. Le driver NI-DAQmx va gérer tous les transferts du matériel vers l'ordinateur hôte, alors que cela doit être complètement programmé dans LabVIEW pour tout le matériel basé FPGA. Lire ou écrire sur des canaux DMA sur le matériel DAQ intelligent se fait en utilisant la fonction Invoke Method.vi. Une fois que l'entrée de cette fonction est câblée avec une référence de VI LabVIEW FPGA, tous les canaux DMA sont listés dans le menu, et peuvent être choisis comme dans la figure ci-dessous.
Figure n°9. Invoke Method.vi sur la palette Interface hôte FPGA
La quantité de RAM allouée au buffer côté hôte est configurée en choisissant Configure dans le sous-menu. Par défaut, c'est deux fois la taille configurée sur le FPGA.
La lecture d'une FIFO DMA produit un tableau d'entiers 32 bits non signés, ainsi que le nombre d'éléments restant dans le buffer du PC. Les données doivent être converties en type de données 16 d'entiers signés (I16), et mises à l'échelle en conséquence, comme le montre la Figure n°10.
Figure n°10. Mise à l'échelle des valeurs de données dans les FIFO DMA
Pour en savoir plus sur la façon de créer des FIFO DMA dans LabVIEW FPGA, référez-vous à >>
http://zone.ni.com/devzone/cda/tut/p/id/2993
http://zone.ni.com/devzone/cda/tut/p/id/2993#toc6
http://zone.ni.com/devzone/cda/tut/p/id/4534
Enfin, la référence doit être fermée, en utilisant la fonction Close FPGA VI Reference.vi dans la palette d'interface FPGA.
Figure n°11. Close FPGA VI Reference.vi sur la palette Interface hôte FPGA
La figure ci-dessous est le diagramme final d'une application hôte qui enregistre les données depuis une voie d'entrée analogique et affiche la valeur de quatre compteurs d'événements simples 64 bits.
Figure n°12. Diagramme du VI de l'application hôte finale
Figure n°13. Face-avant du VI de l'application hôte finale
Vous vous souvenez peut-être que cet exemple de fonctionnalité DAQ est en train de lire deux voies d'entrées analogiques différentes, à deux vitesses différentes. La figure suivante est le diagramme d'une application hôte différente qui lit les deux boucles d'entrées analogiques à des vitesses différentes.
Figure n°14. Diagramme du second VI de l'application hôte
Figure n°15. Face-avant du second VI de l'application hôte
Cela présente le nombre d'applications hôte différentes qui peuvent être créées pour la fonctionnalité DAQ, en fonction l'utilisabilité recherchée.
Télécharger des exemples de fonctionnalités DAQ personnalisées et de la documentation
DAQ analogique équilibrée
8 voies d'entrées analogiques, 8 voies de sorties analogiques, 4 compteurs et 16 lignes d'E/S numériques
La fonctionnalité DAQ personnalisée est une carte d'E/S analogiques équilibrées qui présente 8 voies d'entrées analogiques échantillonnées simultanément et 8 voies de sorties analogiques simultanées. En outre, cette fonctionnalité inclut aussi 4 compteurs d'événements simples avec filtrage anti-rebond et 16 lignes DIO (d'entrées/sorties numériques) statiques.
Cliquez ici pour voir l'exemple de fonctionnalité DAQ analogique équilibrée
Sortie analogique multifréquence
8 voies de sorties analogiques avec plusieurs vitesses de rafraîchissement
Cet exemple de fonctionnalité DAQ utilise les 8 sorties analogiques sur cartes de la Série R PCI et PXI-7833R. Chaque voie de sortie analogique peut servir soit en mode de génération continue soit en mode regénération. En mode de génération continue, les nouveaux échantillons sont envoyés en continu depuis le VI hôte vers le FPGA et sont générés au fur et à mesure qu'ils sont reçus. En mode regénération, les échantillons sont chargés dans un bloc de mémoire embarquée, et l'application FPGA indexe en continu ces échantillons sans interaction hôte supplémentaire. Cet exemple de fonctionnalité peut mettre à jour des groupes de voies de sorties analogiques à des vitesses différentes, ce qui n'est pas possible avec d'autres matériels DAQ.
Cliquez ici pour voir l'exemple de fonctionnalité DAQ de sorties analogiques multifréquences
Entrée et sortie PWM
16 voies PWM (modulation de largeur d'impulsion) configurables en entrée et sortie
La fonctionnalité PWM a été conçue pour cibler les besoins en grand nombre de voies pour les sorties et entrées PWM. À l'heure actuelle, il n'y a pas de matériel DAQ capable de plus de 4 sorties PWM. La solution actuelle est d'utiliser plusieurs cartes DAQ capables de PWM et de synchroniser leurs sorties. Cette fonctionnalité nous dispense de cette nécessité en personnalisant une carte DAQ pour avoir 16 voies PWM configurables en entrée et sortie. L'exemple de code hôte joint utilise 12 sorties PWM et 4 entrées PWM.
Cliquez ici pour voir l'exemple de fonctionnalité DAQ PWM (modulation de largeur d'impulsion)
Carte compteur 64 bits
16 compteurs d'événements simples 64 bits (40 MHz)
Cet exemple de fonctionnalité DAQ intelligente comporte 16 compteurs d'événements simples, chacun avec 64 bits de résolution. Avec la capacité de compter jusqu'à 264- 1, ces compteurs peuvent compter indéfiniment. En plus d'être la plus élevée en résolution et en nombre de voies, cette fonctionnalité permet aux utilisateurs de spécifier le nombre de terminaux, génère les impulsions des sorties que la valeur de comptage est atteinte, et offre des capacités de filtrage pour supprimer le bruit et les parasites dans le signal source.
Cliquez ici pour voir l'exemple de fonctionnalité DAQ du compteur 64 bits
Conclusion
Même si les circuits ASIC pré-établis comme le DAQ-STC2 satisfont la plupart des besoins en acquisition de données, la flexibilité complète et la personnalisation peuvent s'obtenir uniquement avec le contrôle du cadencement reconfigurable des E/S basées FPGA de la DAQ intelligente. En créant des fonctionnalités DAQ personnalisées, un élément du matériel peut satisfaire les besoins les plus exigents et peut facilement être reconfiguré pour des applications ultérieures. Le Module LabVIEW FPGA rend le déclenchement et le cadencement aussi simples que le fait de dessiner le diagramme pour faire exactement ce dont vous avez besoin, et une fois la fonctionnalité compilée, on peut l'atteindre depuis une application hôte avec le driver NI-RIO. Que ce soit de l'échantillonnage multivitesse, une opération de comptage personnalisée, ou une prise de décision embarquée à 40 MHz, les fonctionnalités DAQ intelligentes mettent la personnalisation des cartes à la disposition du matériel standard.
Ressources supplémentaires
Commentaires sur les exemples de fonctionnalités DAQ personnalisées
Techniques avancées d'acquisition de données avec la DAQ intelligente
Présentation multimédia sur la DAQ intelligente à la carte
Que puis-je faire avec LabVIEW FPGA ?
DAQ intelligente de la Série R
Module NI LabVIEW FPGA
Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).
