Cela revient à une question de bande passante et de latence. Pour un système simple, supposons une sonde avec une bande passante de 100 MHz avec un taux d'échantillonnage de 1GS / s et un convertisseur A / N 10 bits (j'ai eu de mauvaises expériences avec des étendues 8 bits).
Je veux un affichage en temps réel sur le PC avec une fenêtre d'échantillonnage minimale de disons 10ns - 1 cycle d'une onde sinusoïdale de 100 MHz et une fenêtre maximale de (je serai généreux pour vous dans ce cas) une demi-seconde. En d'autres termes, le réglage de l'heure le plus bas sera quelque chose comme 1ns / div et le plus élevé est 0,05 s / div. Je veux également plusieurs modes de tension - plage de 100 mV jusqu'à 20 V, disons.
Quel type de débit de données cela implique-t-il?
1 Gs / s * 10 bits / échantillon = 10 Gbits / s
Ce ne sont pas des vitesses USB. Loin de là. Et je n'ai même pas pris en compte les frais généraux. Tout d'abord, vous n'avez tout simplement pas la bande passante. Et ce n'est pas seulement la bande passante. Pour votre affichage en temps réel, vous devez être cohérent. Vous devez transférer 100 bits vers votre couche d'application toutes les 10 nano secondes. Ce type de cohérence ne peut pas être obtenu à partir de l'USB. Il n'est pas conçu pour répondre à un seul appareil avec des exigences extravagantes - il est conçu comme un bus. Et vous ne pouvez pas contrôler quand vous possédez le bus - les appareils ne sont que des esclaves. Si l'hôte laisse un autre appareil parler lorsque vous devez envoyer des données, vos données sont perdues.
Vous pouvez être en train de pleurer - pourquoi transférer des données en temps réel vers l'ordinateur alors que le «temps réel» pour une personne est de 60 Hz? Si tout ce que vous avez à faire est de mettre à jour l'affichage, vous n'avez certainement pas besoin de beaucoup de données. Sauf si vous le faites - votre affichage est une combinaison linéaire de tous les échantillons que vous avez collectés. Interpolation spline cubique moyennée, quadratique moyenne, peu importe. Pour faire un joli joli affichage qui n'est pas seulement un tas de points, vous avez le plus besoin de toutes ces données et vous devez les post-traiter. Un déclenchement? Les calculs doivent être effectués sur l'hôte - au niveau de la couche application. Quelle que soit la façon dont vous le découpez, pour des affichages en temps réel à des taux de 1GS / s pour une précision qui en vaut la peine, vous devez transférer des ordres de grandeur plus de données que l'USB ne peut gérer et vous devez le faire de manière plus fiable que vous.
Quels sont les moyens de contourner cela? Ne faites pas d'affichage en temps réel. Certaines portées USB ne proposent que des modes déclenchés. Le déclenchement est géré sur l'appareil et lorsqu'un déclencheur est trouvé, les données sont collectées dans un tampon. Lorsque le tampon se remplit, la portée USB le transfère lentement à l'application, puis l'application l'affiche. Cela suffit pour beaucoup d'utilisation de la portée, mais ce n'est pas en temps réel. Et le transfert - cela prend aussi du temps. C'est gênant. Et généralement, les pilotes sont nulles. Vous pouvez dire que j'ai eu de mauvaises expériences.
Je me suis toujours demandé pourquoi Firewire n'était pas utilisé pour les oscilloscopes. Cela évite certains des maux de tête de l'USB. Il est pair à pair, offre des modes isochrones (synchronisation cohérente) et une bande passante relativement élevée. Vous pourriez être en mesure de créer une portée en temps réel de 10 MHz avec cela.
Pour traiter vos points après la modification:
La facilité d'utilisation d'une lunette augmente énormément avec le prix. Lorsque vous passez d'une portée USB de 200 $ à une portée autonome de 500 $, vous obtenez d'énormes augmentations des fonctionnalités et des fonctionnalités de base. Pourquoi dépenser seulement 200 $ alors que pour un peu plus, vous pouvez obtenir une vraie portée? Maintenant que la Chine a ouvert les vannes de portées efficaces et bon marché, il n'y a pas de raison de vouloir économiser 300 $ qui ne feront que vous frustrer plus tard. Les portées «fantaisies» qui ont ces fonctionnalités sont bon marché de nos jours.
Oui, limiter votre transfert de données pour ne fournir que quelque chose d'environ 60 Hz de données cohérentes sera plus facile avec USB, mais ce n'est toujours pas quelque chose que vous voulez faire. N'oubliez pas vos classes DSP - récupérer uniquement certaines données du flux équivaut à une décimation. Lorsque vous décimez, vous devez ajouter des filtres d'anticrénelage. Lorsque vous faites cela, vous perdez de la bande passante. Cela rend votre portée moins utile - cela limitera votre bande passante sur l' affichage en temps réel (et seulement pour les modes déclenchés en temps réel serait correct) à beaucoup moins que la bande passante de votre frontal analogique. La gestion des aspects de traitement du signal d'un oscilloscope est une affaire délicate.
Affichage réactif clair? Le PC? Pas toujours. Quelle que soit la façon dont vous procédez, vous devez mettre les données en mémoire tampon. Comme je l'ai déjà dit, l'USB ne garantit pas le débit de vos données. Je le dirai différemment: l' USB n'est pas conçu pour accueillir un transfert de données en temps réel difficile. Bien sûr, pour des quantités de données suffisamment petites à de grands intervalles, vous pouvez obtenir de bonnes performances, mais pas des performances cohérentes. Vous utiliserez la mise en mémoire tampon et de temps en temps, vous manquerez de transférer votre mémoire tampon en temps opportun. Ensuite, votre affichage saute, les données sont périmées, etc. etc. Des affichages en temps réel clairs et réactifs nécessitent des liaisons de données en temps réel, point final.
Déclenchement simple - encore une fois, nous revenons au rapport coût / complexité / réactif. Pour effectuer un déclenchement sur l'appareil afin de détecter les transitoires, votre appareil ne peut pas être simplement un canal de données stupide qui transfère des échantillons de manière irresponsable via USB. Vous devez tamponner, tamponner, tamponner les échantillons sur l'appareiljusqu'à ce que vous voyiez votre condition de déclenchement. Cela signifie que vous avez besoin de mémoire et d'intelligence sur votre appareil - soit un grand FPGA ou un grand microcontrôleur. Cela ajoute à la taille et à l'espace. Si vous utilisez un FPGA, vous devez équilibrer la quantité de logique de déclenchement avec votre besoin de beaucoup de RAM pour l'espace tampon. Votre tampon est donc plus petit que vous ne le souhaiteriez déjà. Cela signifie que vous obtenez une quantité infime de données autour de votre point de déclenchement. Sauf si vous ajoutez de la mémoire externe, vous pouvez faire plus. Cela augmente cependant la taille et le coût de votre appareil - ce ne sera certainement pas juste une sonde avec un câble USB attaché.
Vous auriez la chance d'obtenir une bande passante de 100 MHz - généralement 10 fois la fréquence d'échantillonnage est considérée comme la coupure minimale de la bande passante. Donc, si vous avez un taux d'échantillonnage de 1GS / s, vous obtenez à peine une bande passante de 100 MHz. Vous ne pouvez pas obtenir plus - une onde carrée de 200 MHz va ressembler à une onde sinusoïdale de 200 MHz. Ça craint. C'est idiot - c'est loin d'être professionnel.
Votre autre ensemble de points:
- 200 $? Comment figurez-vous? Quelle est la liste des pièces?
- De bonnes portées pour lire des signaux à haute vitesse ne coûtent pas des milliers de dollars. Ils coûtent peut-être mille dollars. 100 MHz est un jeu d'enfant dans le département de la portée et votre idée ne répondra même pas à cette référence ainsi qu'une portée de 1000 $
- Oui, d'après la façon dont vous le décrivez, ce serait effectivement très limité. Les aspects techniques de même les quelques exigences que vous avez représentent un appareil très limité.
- Ce ne serait pas aussi utile que la lunette de 1100 $ que j'ai achetée avec un analyseur logique et une bande passante analogique de 60 MHz. Je préfère payer mon équipement de test qui gicle avec des jouets pour enfants intentionnellement limités.
Vous vivez et mourez par votre équipement de test en tant qu'ingénieur. Si vous n'êtes pas certain de pouvoir lui faire confiance, vous perdez votre temps. Compte tenu du manque d'expertise que vous avez montrée sur la communication à haute vitesse, le traitement du signal et la puissance du traitement intégré (dans les FPGA ou les microcontrôleurs), je ne parierais pas que vous êtes en train de le concevoir vous-même et personne d'autre qui a répondu n'est rien autre qu'ambivalent.
S'il y avait un ensemble d'exigences mieux ciblées qui répondaient à un besoin réel dans la communauté qui n'était pas desservi, que je pourrais voir être techniquement faisable, je serais à bord. Mais vos exigences vagues ne semblent pas recherchées. Vous devez faire une enquête sur les options disponibles pour les amateurs - quelles portées USB et autonomes les gens utilisent, quelles sont leurs forces et leurs faiblesses, et déterminer si des niches ne sont pas remplies. Sinon, c'est juste fantasmer.