Éducation Société Événements NI Developer Zone Support Solutions Produits et Services Contacter NI MyNI

Type de document: Tutorial
Supporté par NI: oui
Date de publication: 4 août 2008


Commentaires


Oui Non

Catégories connexes

Produits

Technologie

Liens connexes - Developer Zone

Liens connexes - Products and Services

Streaming de signaux de NI : maintenir les flux de données haute vitesse sur USB

0 évaluations | 0.00 sur 5
Lire en | Imprimer

Introduction

Pour optimiser l'utilisation du bus USB (Universal Serial Bus) et permettre une acquisition de données hautes performances, National Instruments a créé la technologie NI de streaming de signaux. Le streaming de signaux de NI combine trois éléments innovants matériels et logiciels, pour permettre des flux de données soutenus, haute vitesse et bidirectionnels sur USB. Cette nouvelle technologie permet aux ingénieurs de réaliser des applications hautes performances sur USB, ce qui n'était possible auparavant que sur un bus interne tel que le PCI. Ce tutorial décrit les objectifs associés à l'acquisition de données haute vitesse sur USB et explique pourquoi la technologie de streaming de signaux de NI est essentielle quel que soit le matériel d'acquisition de données USB.

Introduction

Depuis l'introduction du bus PCI en 1993, l'adoption et l'utilisation des technologies d'acquisition de données sur PC ont augmenté à un niveau inégalé, avec plus de 6 millions de nouvelles voies de mesure vendues en 2006 par National Instruments seul. Avec plus de 2 milliards de ports dans le monde entier (usb.org), l'USB a modifié radicalement le paysage de l'acquisition de données, puisque de plus en plus d'ingénieurs préfèrent désormais bâtir un système d'acquisition de données basé sur le bus USB externe, portable et facile d'emploi. Comme ont pu le constater les utilisateurs de la première heure des produits de test, mesure et contrôle USB, il existe un fossé significatif de performances entre les matériels USB et leurs équivalents PCI.

Cette différence de performances entre les produits d'acquisition de données PCI et USB n'est pas due à l'incapacité de placer des composants hautes performances sur les matériels d'acquisition de données, mais dépend de la nature même du bus USB. L'USB présente une bande passante plus étroite, une latence plus faible et des transferts de données initiés par l'hôte. En raison de ces contraintes, les premières applications USB se limitaient au stockage de données, à l’acquisition de données de base et au contrôle d’instruments pour remplacer des bus GPIB et série.

Pour optimiser l'utilisation du bus USB et fournir une acquisition de données hautes performances, National Instruments a créé la technologie de streaming de signaux. Le streaming de signaux de NI combine trois éléments innovants matériels et logiciels, pour permettre des flux de données soutenus, haute vitesse et bidirectionnels sur USB. Cette nouvelle technologie permet aux ingénieurs de réaliser des applications hautes performances sur USB, ce qui n'était possible auparavant que sur un bus interne tel que le PCI.

 Les limites de l’USB pour l'acquisition de données avant le streaming de signaux de NI

La bande passante théorique de l'USB Hi-Speed à 53 Mo/s, est suffisante pour la plupart des applications d'acquisition de données. Cependant, certaines applications matérielles et logicielles d'acquisition de données USB ne peuvent pas tirer parti de la bande passante fournie. L'acquisition de données implique souvent des tâches d'E/S multiples, telles que des entrées analogiques, des sorties analogiques, des entrées numériques, des sorties numériques ainsi que plusieurs compteurs/timers. Pour effectuer l'ensemble de ces tâches simultanément, un matériel d'acquisition de données doit traiter plusieurs flux en parallèle et être capable de transférer des données rapidement de et vers la mémoire du PC. Le PCI et le PCI Express représentent une solution idéale pour les applications d'acquisition de données parce que ces bus offrent une large bande passante, une faible latence, des capacités de bus mastering et des canaux DMA, pour transférer des données directement vers la mémoire du PC. L'USB et les autres bus externes comme Ethernet ne proposent pas de fonctions équivalentes aux bus internes.

Contrairement aux matériels PCI, les matériels d'acquisition de données USB sont limités par un protocole série piloté par l'hôte, sans canal DMA. Le système d'exploitation doit initier chaque requête pour transférer des données de et vers le matériel. Cette contrainte ajoute un temps système significatif aux transferts de données car les matériels ne sont pas capables de prendre le contrôle du bus ni de transférer des données sans interaction avec le processeur. De plus, le transfert de données de et vers la mémoire du PC est contrôlé par le processeur, ce qui, là encore, ajoute un temps système significatif aux communications.

Par le passé, il y avait deux options pour construire des applications d’acquisition de données qui dépassaient ces limitations : les compenser ou les ignorer. Les développeurs ont compensé ces limitations en installant des quantités importantes de mémoire onéreuse sur les matériels. La mémoire supplémentaire permettait aux données d’être stockées dans le matériel avant que le processeur puisse exécuter les instructions appropriées pour récupérer les données. Alors que cet ajout de mémoire était sensé alléger les débordements du buffer pendant un temps limité, la latence du matériel a augmenté car les données étaient stockées dans des grandes piles mémoire dans un emplacement inutilisable. Ignorer ces limitations signifie souvent concevoir des matériels d'acquisition de données dédiés à un seul type de tâches d'E/S haute vitesse (en d'autres mots, un matériel avec des entrées analogiques cadencées combinées avec des sorties analogiques statiques et des E/S numériques). Ces solutions n'étaient pas idéales parce que les matériels proposés étaient plus chers sans proposer des performances équivalentes aux cartes PCI.

La technologie de streaming de signaux de NI est basée sur une approche différente pour résoudre le problème en permettant les transferts de données soutenus, haute vitesse et bidirectionnels sur USB. Avant d'expliquer le streaming de signaux, il est important de comprendre comment se déroule une communication USB et comment sont conçus les matériels d’acquisition USB.

 Introduction aux communications USB

L'USB est un protocole série qui transmet des données telles que des adresses, des requêtes et des confirmations par paquet. Il partage la bande passante disponible entre tous les matériels présents. Les systèmes USB intègrent trois composants : l'hôte (typiquement un PC de bureau ou un portable), un matériel USB et le câble USB. L'hôte USB initie tous les transferts de données vers un matériel USB, ce qui nécessite la transmission de trois paquets ou davantage pour une simple transaction : la requête hôte, le transfert de données et la confirmation hôte.

L'information est envoyée de et vers un matériel USB par l'intermédiaire de ses terminaisons. Une terminaison est l’équivalent d’une porte par laquelle toutes les données doivent passer pour entrer ou sortir du matériel USB. Les terminaisons peuvent transmettre les données dans une seule direction : ainsi, les matériels possèdent plusieurs terminaisons pour effectuer à la fois les fonctions d'entrée et de sortie. Les données sont transférées de et vers les terminaisons du matériel au contrôleur hôte grâce à quatre types de transferts, l’un pour le contrôle du bus USB et les trois autres pour le transfert de données :

  • L’interruption de transfert de données permet de transférer des données en petite quantité, de façon fiable et à temps ; elle est souvent utilisée pour un périphérique de type clavier ou souris.
  • Le transfert de données isochrone offre une bande passante prédéfinie avec une perte de données possible ; il est souvent utilisé lorsque que la fourniture des données à temps est plus importante que la précision des données, comme dans le streaming audio et vidéo.
  • Le transfert de données brutes permet des transferts de quantités de données importantes sans aucune perte ; souvent utilisé pour des applications où des paquets de données doivent être transmis sans perte, comme pour des disques durs externes.

Le transfert de données brutes est le choix logique de l'acquisition de données USB, car il intègre la vérification des erreurs et assure des capacités importantes de transfert de données. Mais en pratique, les transferts bruts permettent d'atteindre des performances intéressantes lorsqu’un seul flux de données est envoyé via le port USB. Tout flux supplémentaire peut réduire considérablement les fréquences de transfert, particulièrement lorsque les transferts sont bidirectionnels.

 Approche traditionnelle

Trois points techniques contribuent à l'incapacité de l'USB à satisfaire les attentes de débit et de latence pour l'acquisition de données hautes performances. Le premier point est l'utilisation inefficace du processeur pour la gestion des données. Le standard actuel pour la gestion de données entre le frontal d'acquisition de données et les terminaisons USB est un processeur lent, standard, clé en main. Son but est de distribuer les informations appropriées à chaque terminaison USB. Comparée à une conception personnalisée, il s'agit d'une solution peu onéreuse avec une implémentation relativement aisée.


[+] Agrandir l'image
Figure n°1. Les architectures d'acquisition de données USB traditionnelles utilisent un processeur basses performances pour connecter le frontal d'acquisition de données aux terminaisons USB.

Ces processeurs sont basés sur les instructions, ce sont des éléments de silicium avec un comportement similaire à celui d'un commutateur. Capables d'exécuter une seule instruction à un moment donné, ils constituent le goulot d'étranglement des matériels d'acquisition de données USB. Toute tâche de priorité supérieure, telles que les requêtes de contrôle de l'hôte, peut retarder le processeur dans la gestion du transfert de données, ce qui provoque des débits faibles et des possibilités d'erreur de sous-capacité ou de débordement de capacité. En raison de son architecture, un processeur ne peut pas gérer simultanément plusieurs flux de données et traiter les requêtes de contrôle entrantes, ce qui rend impossible l'acquisition de données hautes performances. En d'autres mots, l'USB ne peut atteindre les performances semblables au DMA du bus PCI pour le streaming de plusieurs types d'E/S simultanément.

Un autre point est la latence. La latence est définie comme étant le retard entre l'initiation d'une requête pour les données et le début du transfert de données réel. L'USB a une latence supérieure à celle du PCI en raison de son accès basé sur l'OS et de sa nature série. Une acquisition de tension monopoint typique peut nécessiter des dizaines d'instructions au niveau du registre, ce qui, lorsqu'elles sont multipliées par une latence de 1 ms, est inacceptable.

Finalement, il faut trouver un compromis entre le débit de données et la latence. Pour obtenir un débit de données élevé, les ingénieurs doivent transférer des jeux de données de taille importante à chaque transfert. Cette façon de procéder réduit les vitesses de réponse du système et augmente la latence, laissant ainsi le matériel sans réponse lors de chaque transfert de taille importante.

L’idéal serait d’utiliser une méthode de transfert de données qui utilise les capacités de streaming d'un transfert de données isochrone et le transfert brut, 100 % dépourvu d'erreur. Pour satisfaire ces exigences, National Instruments a créé une technologie innovante de streaming de données USB : le streaming de signaux de NI.

 Approche du streaming de signaux de NI pour l'acquisition de données USB

NI propose trois améliorations notables avec la technologie de streaming de signaux : la capacité à transférer rapidement des jeux de données de taille importante via USB, des instructions basées messages optimisées et une réactivité accrue via une intelligence ajoutée au matériel USB.

 Transfert rapide de données

Il existe deux exigences pour le transfert de quantités importantes de données haute vitesse via USB. D'abord, l'USB étant un protocole de communication initié par l'hôte, le driver doit envoyer des requêtes de données de manière incessante et successive. Ensuite, du côté du matériel, les données doivent être accessibles sur les terminaisons USB aussi rapidement que possible pour satisfaire les requêtes rapide de l’hôte en entrée.

Du côté hôte, le driver NI-DAQmx assure de manière active une émission continue des requêtes de données. Les requêtes sont mises en attente dans une file et sont prêtes à être envoyées à partir de l'hôte USB, même s'il reçoit et traite les données entrantes en provenance du matériel.

Du côté matériel, le streaming de signaux de NI évite le comportement de type commutateur du processeur grâce au contrôleur de streaming de signaux de NI. Ce contrôleur personnalisé exécute de manière concurrente plusieurs tâches et envoie les données directement vers les terminaisons USB. Le streaming de signaux de NI fonctionne avec le contrôleur de cadencement de systèmes NI-STC 2 qui propose quatre canaux DMA embarqués haute vitesse directement sur quatre terminaisons USB. Cela libère ainsi des ressources pour que le processeur exécute d'autres tâches, comme la traduction de messages. Grâce aux transferts DMA embarqués, les données sont prêtes en permanence à être lues ou écrites sur les terminaisons USB.


[+] Agrandir l'image

Figure n° 2. Le streaming de signaux de NI utilise le contrôleur de streaming de signaux de NI pour mettre en oeuvre des transferts DMA depuis le frontal d'acquisition de données vers les terminaisons USB, et réduit le temps-système introduit par le processeur embarqué.

 Instructions basées messages

Comme on l’a dit précédemment, l'USB a une latence supérieure à celle du PCI. Ce retard est amplifié pour une mesure de tension monopoint qui nécessite la transmission de plusieurs dizaines de commandes au niveau registre. Le streaming de signaux de NI offre des communications basées message pour éviter les lenteurs de transmissions : l'hôte envoie ainsi un seul message haut niveau, comme "acquire.commit", via l’USB. Le processeur du matériel convertit ensuite le message en dizaines de commandes au niveau registre qui sont nécessaires pour configurer correctement le contrôleur de cadencement du système.


[+] Agrandir l'image

Figure n°3. L'utilisation d'instructions basées message évite des dizaines de commandes au niveau registre.

 Intelligence de communication côté matériel

Finalement, le streaming de signaux de NI évite de choisir entre le débit de données et la latence. Pour un débit rapide, des jeux de données de taille importante sont transmis en continu, ce qui empêche de répondre à une requête immédiate pour le transfert d’un jeu de données de petite taille. Pour des matériels d'acquisition de données USB traditionnels, l'hôte USB attend la fin d'un transfert de données de taille importante avant la distribution de toute donnée à l'utilisateur.

Pour les matériels dotés du streaming de signaux de NI, l'intelligence ajoutée au matériel lui permet d'interrompre prématurément des transferts de jeux de données de taille importante et d'envoyer une notification précoce d'achèvement à l'hôte USB, sans compromettre l'intégrité des données. Ceci permet effectivement au matériel de répondre plus rapidement aux requêtes et d'envoyer des jeux de données de taille inférieure lorsque cela s'avère nécessaire.

 Acquisition de données hautes performances par USB

Les transferts de données rapides et les instructions basées messages permettent d’obtenir des débits plus élevés, tandis que l'intelligence ajoutée au matériel et combinée aux instructions basées messages contribue à réduire les latences. Ceci permet une augmentation des performances de l'acquisition monopoint jusqu'à 1600 % sur une entrée analogique et jusqu'à 250 % sur une sortie analogique.

Figure n°4. Graphique des performances pour une entrée analogique et une sortie analogique monopoint

Grâce aux développements d'acquisition de données USB qui intègrent la technologie de streaming de signaux de NI et l'USB Hi-Speed, National Instruments peut tirer parti de l'USB en tant que bus hautes performances pour ses matériels phares NI Série M et NI CompactDAQ. Les matériels USB de la Série M permettent une bonne connectivité des signaux avec des performances qui rivalisent avec celles de leurs équivalents PCI. Ils sont disponibles dans un format alimenté par bus ou alimenté par le secteur.

NI CompactDAQ est un système d'acquisition de données évolutif avec un conditionnement de signaux intégré et des modules échangeables à chaud de la Série C. Les deux plates-formes incluent également d'autres technologies phares de NI développées pour l'acquisition de données hautes performances et haute précision. Tous les matériels d'acquisition de données USB dotés du streaming de signaux de NI offrent quatre canaux de type DMA, capables de transmettre jusqu'à quatre opérations haute vitesse simultanément sur l'USB.


[+] Agrandir l'image
Figure n°5. Plates-formes phares de NI pour l'acquisition de données USB

 Résumé

L'USB était au départ un bus périphérique basse vitesse pour les accessoires, tels que les souris et les claviers. Il a évolué vers un bus haute vitesse capable de satisfaire des applications avec des jeux de données importants. Le streaming de signaux de NI associé à la vérification des erreurs, à la réjection du bruit, à la gestion de l'alimentation et à la distribution de l'alimentation inhérente au protocole USB, permet d’obtenir un bus USB robuste, sûr et fiable, bien adapté aux produits de mesure et de contrôle.

Avec l'introduction de la technologie de streaming de signaux de NI, les matériels USB rivalisent désormais avec les performances que les utilisateurs espèrent habituellement des bus enfichables. En résolvant les problèmes de performance par des transferts de données rapides, un temps-système de communication réduit et une réactivité accrue du matériel, le streaming de signaux de NI est une technologie nécessaire pour tout matériel d'acquisition de données USB. Qu'il s'agisse du streaming de plusieurs types de mesure dans la gamme du mégahertz ou de l'enregistrement de données issues de capteur à quelques hertz, le streaming de signaux de NI offre les performances nécessaires aux applications d'acquisition de données USB.

Nathan Yang
Ingénieur Marketing Produit
nathan.yang@ni.com 

Vous souhaitez en apprendre davantage sur les capacités avancées des produits NI USB ?
Téléchargez le e-kit USB hautes performances dès maintenant.

Liens associés :
Produits d’acquisition de données USB de NI
NI CompactDAQ

 

0 évaluations | 0.00 sur 5
Lire en | Imprimer

Législation
Ce tutorial a été développé par National Instruments. Bien qu'un support technique puisse être fourni pour ce tutorial, il n'a pas été complètement testé ni vérifié, et NI ne garantit pas sa qualité, ni qu'il continuera à être supporté pour les nouvelles versions des produits et drivers qui y sont rattachés. CE TUTORIAL EST FOURNI "EN L'ÉTAT" SANS GARANTIE D'AUCUNE SORTE, ET EST SUJET À CERTAINES RESTRICTIONS COMME PLUS SPÉCIFIQUEMENT DÉTERMINÉES DANS LES CONDITIONS D'UTILISATION DE NI.COM (http://ni.com/legal/termsofuse/unitedstates/us/).