Ich habe USB Scope Probe gelesen – Bitte um Kommentare und Ideen und es hat mich zum Nachdenken gebracht. Was ich wirklich möchte, ist ein Oszilloskop mit sehr hoher Leistung, eines, das etwa 10.000 US-Dollar kosten würde. Sicher hätten auch viele andere gerne eins. Und mit dem auf dieser Website verfügbaren Fachwissen sollte es sicherlich möglich sein, eine solche zu entwerfen und als Open Source zu veröffentlichen.
Hier ist meine Idee:
Ist das ein Narr? Was vermisse ich?
Hinzugefügt, weitere Details als Antwort auf die Antworten:
Punkte mit nach Hause nehmen:
Dies läuft auf eine Frage der Bandbreite und Latenz hinaus. Nehmen wir für ein einfaches System einen Tastkopf mit 100 MHz Bandbreite mit 1GS/s Abtastrate und einem 10-Bit-A/D-Wandler an (mit 8-Bit-Oszilloskopen habe ich schlechte Erfahrungen gemacht).
Ich möchte eine Echtzeitanzeige auf dem PC mit einem minimalen Abtastfenster von beispielsweise 10 ns - 1 Zyklus einer 100-MHz-Sinuswelle und einem maximalen Fenster von (ich bin dabei großzügig) einer halben Sekunde. Mit anderen Worten, die niedrigste Zeiteinstellung ist etwa 1 ns/div und die höchste 0,05 s/div. Ich möchte auch mehrere Spannungsmodi - sagen wir 100 mV-Bereich bis zu 20 V.
Welche Datenraten sind damit verbunden?
1 Gs/s * 10 Bit/Abtastung = 10 Gbit/s
Das sind keine USB-Geschwindigkeiten. Weit davon entfernt. Und ich habe noch nicht einmal die Nebenkosten berücksichtigt. Zunächst einmal haben Sie einfach nicht die Bandbreite. Und es ist auch nicht nur Bandbreite. Für Ihre Echtzeitanzeige müssen Sie konsistent sein. Sie müssen alle 10 Nanosekunden 100 Bits auf Ihre Anwendungsschicht übertragen. Diese Art von Konsistenz kann von USB nicht erreicht werden. Es ist nicht für ein Gerät mit extravaganten Anforderungen konzipiert, sondern als Bus konzipiert. Und Sie können nicht kontrollieren, wann Ihnen der Bus gehört – die Geräte sind nur Sklaven. Wenn der Host ein anderes Gerät sprechen lässt, wenn Sie Daten senden müssen, gehen Ihre Daten verloren.
Sie weinen vielleicht schlecht - warum Echtzeitdaten auf den Computer übertragen, wenn "Echtzeit" für eine Person 60 Hz beträgt? Wenn Sie nur die Anzeige aktualisieren müssen, benötigen Sie sicherlich nicht so viele Daten. Abgesehen von Ihnen - Ihre Anzeige ist eine lineare Kombination aller Proben, die Sie gesammelt haben. Gemittelte, nach der Methode der kleinsten Quadrate angenäherte, kubische Spline-Interpolation - es spielt keine Rolle. Um ein schönes Display zu erstellen, das nicht nur aus einem Haufen Punkte besteht, benötigen Sie die meisten dieser Daten und müssen sie nachbearbeiten. Irgendein Trigger? Die Berechnungen müssen auf dem Host durchgeführt werden – auf der Anwendungsschicht. Egal wie Sie es schneiden, für Echtzeitanzeigen mit 1GS/s-Raten für jede verdammte Genauigkeit müssen Sie um Größenordnungen mehr Daten übertragen, als USB verarbeiten kann, und Sie müssen dies zuverlässiger tun als Sie.
Was sind die Möglichkeiten, dies zu umgehen? Führen Sie keine Echtzeitanzeige durch. Einige USB-Oszilloskope bieten nur getriggerte Modi. Die Triggerung wird auf dem Gerät gehandhabt und wenn ein Trigger gefunden wird, werden Daten in einem Puffer gesammelt. Wenn sich der Puffer füllt, überträgt das USB-Oszilloskop ihn langsam an die Anwendung und die Anwendung zeigt ihn dann an. Das reicht für viele Bereiche aus, aber es ist nicht in Echtzeit. Und die Übertragung - das dauert auch. Es ist unbequem. Und normalerweise sind die Fahrer scheiße. Man merkt, dass ich schlechte Erfahrungen gemacht habe.
Ich habe mich immer gefragt, warum Firewire nicht für Oszilloskope verwendet wurde. Es vermeidet einige der Kopfschmerzen von USB. Es ist Peer-to-Peer, bietet isochrone Modi (konsistentes Timing) und hat eine relativ hohe Bandbreite. Möglicherweise können Sie damit ein 10-MHz-Echtzeit-Oszilloskop oder so erstellen.
Um Ihre Punkte nach der Bearbeitung anzusprechen:
Die Verwendbarkeit eines Oszilloskops steigt enorm mit dem Preis. Wenn Sie den Sprung von einem 200-Dollar-USB-Oszilloskop zu einem 500-Dollar-Standalone-Oszilloskop schaffen, erhalten Sie eine enorme Steigerung der Funktionen und Grundfunktionen. Warum nur 200 Dollar ausgeben, wenn Sie für ein bisschen mehr ein echtes Zielfernrohr bekommen können? Jetzt, da China die Schleusen billiger, effektiver Zielfernrohre geöffnet hat, gibt es wenig Grund, 300 Dollar sparen zu wollen, die Sie später nur frustrieren werden. Die „ausgefallenen“ Zielfernrohre mit diesen Merkmalen sind heutzutage billig.
Ja, die Beschränkung Ihrer Datenübertragung auf konsistente Daten im Wert von etwa 60 Hz ist mit USB einfacher, aber das ist immer noch nicht etwas, was Sie tun möchten. Vergessen Sie nicht Ihre DSP-Klassen – nur bestimmte Daten aus dem Stream zu greifen, kommt einer Dezimierung gleich. Wenn Sie dezimieren, müssen Sie Antialiasing-Filter hinzufügen. Wenn Sie das tun, verlieren Sie Bandbreite. Dies macht Ihr Oszilloskop weniger nützlich - es begrenzt Ihre Bandbreite auf der Echtzeitanzeige (und nur für Echtzeit - getriggerte Modi wären in Ordnung) auf viel weniger als die Bandbreite Ihres analogen Front-Ends. Die Verwaltung der Signalverarbeitungsaspekte eines Oszilloskops ist eine heikle Angelegenheit.
Klares responsives Display? Der PC? Nicht konsequent. Unabhängig davon, wie Sie dies tun, müssen Sie Daten puffern. Wie ich bereits sagte, garantiert USB nicht, wann Ihre Daten durchkommen. Ich sage es anders: USB ist nicht für die Datenübertragung in harter Echtzeit ausgelegt. Sicher, für ausreichend kleine Datenmengen in großen Intervallen erhalten Sie möglicherweise eine gute Leistung, aber keine konsistente Leistung. Sie WERDEN Puffern verwenden und hin und wieder WERDEN Sie es versäumen, Ihren Puffer rechtzeitig zu übertragen. Dann springt Ihre Anzeige, Daten sind veraltet usw. usw. Klare und reaktionsschnelle Echtzeitanzeigen erfordern harte Echtzeitdatenverbindungen, Punkt.
Einfaches Auslösen – wieder kommen wir zurück zu Kosten vs. Komplexität vs. Responsive. Um auf dem Gerät zu triggern, um Transienten zu erkennen, darf Ihr Gerät nicht nur eine dumme Datenleitung sein, die Samples unverantwortlich über USB überträgt. Sie müssen Samples auf dem Gerät puffern, puffern, puffernbis Sie Ihre Triggerbedingung sehen. Das bedeutet, dass Sie Speicher und Intelligenz auf Ihrem Gerät benötigen – entweder ein großes FPGA oder einen großen Mikrocontroller. Das erhöht die Größe und den Platz. Wenn Sie ein FPGA verwenden, müssen Sie die Menge an Triggerlogik mit Ihrem Bedarf an viel RAM für Pufferspeicher abwägen. Ihr Puffer ist also kleiner, als Sie es bereits möchten. Das bedeutet, dass Sie eine winzige Datenmenge um Ihren Triggerpunkt herum erhalten. Es sei denn, Sie fügen externen Speicher hinzu - dann können Sie mehr tun. Das erhöht jedoch die Größe und die Kosten Ihres Geräts - dies wird sicherlich nicht nur eine Sonde mit einem daran angeschlossenen USB-Kabel sein.
Sie haben Glück, wenn Sie eine Bandbreite von 100 MHz erhalten - normalerweise wird das 10-fache der Abtastrate als Mindestgrenze für die Bandbreite angesehen. Wenn Sie also eine Abtastrate von 1 GS / s haben, erhalten Sie kaum eine Bandbreite von 100 MHz. Mehr geht nicht - eine 200-MHz-Rechteckwelle sieht aus wie eine 200-MHz-Sinuswelle. Das ist Scheiße. Das ist dumm - es ist bei weitem kein professionelles Niveau.
Ihre anderen Punkte:
Als Ingenieur leben und sterben Sie von Ihren Prüfgeräten. Wenn Sie sich nicht sicher sind, ob Sie ihm vertrauen können, verschwenden Sie Ihre Zeit. Angesichts des Mangels an Fachwissen, das Sie über Hochgeschwindigkeitskommunikation, Signalverarbeitung und die Leistungsfähigkeit der eingebetteten Verarbeitung (in FPGAs oder Mikrocontrollern) gezeigt haben, würde ich nicht darauf wetten, dass Sie in der Lage sind, es selbst zu entwerfen, und niemand sonst, der geantwortet hat, etwas ist alles andere als ambivalent.
Wenn es eine zielgerichtetere Reihe von Anforderungen gäbe, die ein echtes Bedürfnis in der Community treffen, das nicht bedient wird, das ich für technisch machbar halten könnte, wäre ich dabei. Aber Ihre vagen Anforderungen scheinen nicht recherchiert zu sein. Sie müssen eine Übersicht über die verfügbaren Optionen für Hobbyisten erstellen – welche USB-Oszilloskope und Standalone-Geräte werden verwendet, welche Stärken und Schwächen sie haben, und feststellen, ob Nischen nicht besetzt werden. Ansonsten ist das nur Fantasie.
Sie möchten nicht, dass es sich um ein handgehaltenes Sondenformat handelt, da ein Einkanal-Oszilloskop nicht sehr nützlich ist. Die zusätzlichen Kosten von 2 Kanälen (auch wenn Sie den ADC muxen) sind ein kleiner Prozentsatz zusätzlicher Kosten, aber eine enorme Steigerung des Nutzens.
Wenn Sie nicht mehr als 500 mA ziehen möchten, gibt es keinen Grund, eine Batterie zu verwenden, da Sie einen isolierten DC-DC-Wandler haben könnten. Es ist jedoch nicht trivial, eine hohe Bandbreite über eine Isolationsbarriere hinweg zu bekommen.
Nun, hier gibt es ein paar Probleme. Wenn wir als Referenzstandard ein analoges 1-GHz-Oszilloskop (wie ein gutes Tektronix) nehmen, leidet dieses vorgeschlagene Oszilloskop auf folgende Weise:
1) Der ASD5010 ist ein 8-Bit-Konverter. 8 Bit reichen bei weitem nicht aus, um mit einem guten analogen Oszilloskop mithalten zu können.
2) Verwechseln Sie Abtastrate nicht mit analoger Bandbreite. Für den von Ihnen ausgewählten Chip wäre die äquivalente analoge Bandbreite wahrscheinlich viel näher an 100 MHz als an 1 GHz.
Das soll nicht heißen, dass es nicht möglich ist, ein solches Zielfernrohr zu konstruieren, man kann eindeutig eines kaufen, das diese Spezifikationen erfüllt. Es ist einfach nicht trivial, eine Bandbreite von 1 GHz zu erreichen, und es wären spezielle Technik und bessere Teile erforderlich.
8-Bit-ADCs sind in Oszilloskopen ziemlich verbreitet, die Technik zur Verwendung von ADCs ist jedoch etwas anders. Wie ich einige interne Oszilloskope gesehen habe, besteht der übliche Fall darin, 4 ADC-Chips zu verwenden, von denen jeder mit 90-Grad-Phaseninkrement getaktet ist, sodass Sie 4x Samples pro Taktzyklus erhalten, und deshalb ist die Clk-Frequenz ziemlich niedrig, aber die Datenbandbreite ist hoch. Wie auch immer, ein solches Projekt wird mehr Geld verschwenden als der Kauf eines brandneuen Zielfernrohrs :-) Es könnte jedoch eine gute Übung zum Selbstlernen sein. OTOH, denken Sie an die analoge Seite des Oszilloskops. Dieser Teil ist verdammt schwer und sehr schwierig zu tun.
Andere Probleme:
Schutz : Sie möchten sicher nicht, dass es beim ersten Mal bricht, wenn Sie fälschlicherweise 20-30 V an den Eingang anlegen;
Kalibrierung : Selbst bei 8-Bit-Genauigkeit müssen Sie den Fehler immer noch innerhalb von 1/256 = 0,4 % insgesamt kontrollieren; nicht trivial mit Standardkomponenten;
Rauschfilterung : Es muss abgeschirmt und gefiltert werden, und das reicht nicht aus, da auch das FPGA wahrscheinlich Rauschen erzeugt, sodass Sie den analogen und den digitalen Bereich trennen müssen.
Wie auch immer, über die USB-Verbindung denke ich, dass es funktionaler ist, die Daten intern zu verarbeiten und direkt an das Display anzuschließen.
Das Photon
Klatsch
jsolarski
Benutzer17819
MDMoore313
MDMoore313