Hallo zusammen,
werden bei modernen USB-Oszilloskopen wirklich alle Messdaten (die geben
ja teilweise 500MSample an) auf den PC betragen? Werden die Daten
irgendwie gepackt oder wie schafft man es, diese Datenmengen durch ein
USB2.0 Kabel zu senden?
Danke und VG
Karl
Danke Andreas für deine Antwort.
Werden dann also nur paar Hundert Messdaten ab einer einzigen Triggerung
übertragen? Was ist, wenn die Signale sich bei jedem Triggervorgang
etwas unterscheiden und man sich das im Nachhinein in aller Ruhe in
einer Graphik anschauen will? Z.B. Wenn ein Fehler in einem Gerät
steckt, der nur Spontan auftritt und man in der Zeitachse zu dem
Fehlerzeitpunkt zurück gehen will, um sich genau anzuschauen, was da
passiert ist?
Tja, für sowas braucht man vieeeel Speicher im Oszi, und der ist
sauteuer. Das geht dann mit den billigen Dingern nicht zu machen. Oder
man braucht einen intelligenten Trigger, der eben solche Anomalien
findet. Unter anderem deswegen sind die großen Scopes so teuer. Die
haben dann auch keine USB Anbindung für die Daten sondern zum Beispiel
PCIe (bei den LeCroy Geräten).
Karl schrieb:> Werden dann also nur paar Hundert Messdaten ab einer einzigen Triggerung> übertragen?
Stichwort dazu: Speichertiefe
Zuerst werden die Daten auf dem Oszi "schnell" gespeichert. Und
anschließend "langsam" übertragen.
> Was ist, wenn die Signale sich bei jedem Triggervorgang> etwas unterscheiden und man sich das im Nachhinein in aller Ruhe in> einer Graphik anschauen will?
Pech gehabt.
> Z.B. Wenn ein Fehler in einem Gerät> steckt, der nur Spontan auftritt und man in der Zeitachse zu dem> Fehlerzeitpunkt zurück gehen will, um sich genau anzuschauen, was da> passiert ist?
Wenn die Daten nicht im Speicher sind: Pech gehabt.
Die PC-Oszis haben einen internen Speicher, der beim Samplen beschrieben
wird. Dessen Inhalt wird dann über USB an den PC gesendet und
dargestellt.
Fall a): Die Samplerate liegt unter der max. USB-Datenrate, dann
Darstellung sofort ohne Verzögerung möglich.
Fall b): Abstastrate so hoch, dass der interne Scope-Speicher schneller
voll ist als der USB die Daten übertragen kann. Dann findet ein
verzögerter Transfer zum PC statt. Wenn der Hersteller hier einen
Ringpuffer des internen Scope-Speichers implementiert hat, dann sollte
theoretisch nur wenig verloren gehen, da bereits vom USB übertragenen
Samples freien Speicher für den nächsten Zyklus bedeuten. Es gibt aber
eine Totzeit, da sich ja der Ringpuffer sich selbst überschreiben darf.
Spätestens, wenn der schreibende Pufferindexzeiger den lesenden
erreicht, muss auf den nächsten USB-Transfer gewartet werden. Wenn genau
an dieser Stelle dein Fall des Fehleranteils im Signal auftritt und
dieser so kurz ist, dass er nur von wenigen Samples erfasst werden kann,
sollte der Signalverlust da sein.
Bei Picoscope ist das so, dass man mehrere Screens hintereinander
durchblättern kann. Die Anzahl der Screens, die man haben möchte, kann
man einstellen.
Grundsätzlich haben dieses "Problem" alle digitalen Scopes, nur dass bei
den Nicht-PC-Scopes schnellere DSPs arbeiten, wo auch der
USB-Flaschenhals entfällt. Zudem ist der Speicher i.d.R. bei teureren
Geräten weitaus größer. Nicht zu vergessen die wfm/s
(Aktualisierungsrate), die bei PC-Scopes auch nicht unbedingt hoch ist.
Statistisch selten auftretende Fehler kann man eventuell durch langes
Messen mit der Nachleuchtfunktion (wenn vorhanden) der PC-Applikation
hinbekommen. In Zusammenhang mit einem Maskentest dann auch erfassen.
Mein Ratschlag: lade dir die Picoscope-Software herunter, diese besitzt
einen Demo-Modus, wo das nicht vorhanden Scope simuliert wird. Da kannst
du einen Eindruck bekommen, wie das bei PC-Scopes aussieht.
Ich arbeite lieber mit reinen Scopes, sowohl analog als auch digital.
Die PC-Teile sind je nach Anwendungsbereich auch nicht schlecht, aber
bei hohen Abtastraten in Zusammenhang mit Fehlersuche von Störern in
Signalen entweder nicht geeignet oder einfach zu teuer, wenn mit mehr
Speicher ausgestattet. Da bekommt man von Agilent, Hameg und Tektronix
weitaus bessere Geräte ohne PC-Pflicht.
Wie gesagt, nur meine persönliche Vorliebe, will hier jetzt keine
Glaubensdebatte lostreten ;-)
Gruß
GunB
Gun B. schrieb:> Da bekommt man von Agilent, Hameg und Tektronix> weitaus bessere Geräte ohne PC-Pflicht.
Naja, da ist dann der PC hübsch im Gehäuse des Skops verpackt ;)
luk4s schrieb:> Naja, da ist dann der PC hübsch im Gehäuse des Skops verpackt ;)
Nur hat der Hersteller dann die Möglichkeit einer weitaus schnelleren
Anbindung des Speichers statt langsamen USB zu nutzen und ein
Betriebssystem seiner Wahl einzusetzen, dass u.a. Echtzeit unterstützt
und die laufenden Prozesse und Threads weitestgehend selbst zu
bestimmen, was bei einem PC nicht geht.
Gruß
GunB
Es ist fraglich, ob überhaupt alle Samples übertragen werden oder nur
die relevaten der Anzeige. Ich würde letzteres Vermuten. Nehmen wir doch
nur mal an, wie hätten 500 MSamples/s und nehmen ne Sekunde lang auf.
Bei 8 Bit hat man dann ja nur rnd nen halbes GB an Daten aufgesammelt.
Über USB schicken würde hier bedeuten, um keinen Verlust zu haben, man
müsse rnd 500 MB/s übertragen. Zum Ausrechnen bin ich zu faul aber 50
MB/s sind schon verdammt gut/schnell bei USB 2.0. Ich denke, man wird
hier nur die zur Anzeige notwendigen Daten übertragen, z.B. nur jeden
100. Sample.
Michael schrieb:> Ich denke, man wird> hier nur die zur Anzeige notwendigen Daten übertragen, z.B. nur jeden> 100. Sample.
Durchaus denkbar. Da hast du auch sicher recht, was die Datenmenge
angeht.
Ich möchte dennoch zu einem optionalen Denkansatz anregen:
Der Speicher meines Picoscope hat z.B. 512k, was ja nicht viel ist. Das
Scope kann bei nichtrepetetiven Signalen eine max. Abtastrate von
100MS/s
erreichen.
Nehmen wir an, die maximale Abtastrate sei eingestellt. Der A/D-Wandler
arbeitet mit 8 Bit, dann sind 100MS/s = 100 MB/s. Der Speicher wäre
dann nach 5,12 ms voll. Spätestens jetzt muss der Speicher über USB an
den PC gesendet werden, bevor ein neuer Zyklus startet. An dieser Stelle
ergeben sich Totzeiten, wo das Signal nicht erfasst werden kann.
Die 512kB hat der USB schnell übertragen, der Haken ist aber, dass das
Signal eben nicht ohne Verluste wie zum Beispiel von dir beschrieben 1s
lange ununterbrochen aufgezeichnet werden kann.
Bei einer Zeitbasis, wo ein kompletter Screen z.B. 5ms beträgt, dürfte
dann kaum merkbar ein synchroner Bildaufbau passieren, während z.B. bei
Aufzeichungszeiten von 1s deutlich merkbare Sekunden vergehen, bis das
erste Bild erscheint. So bei mir.
Schlussendlich kann das Scope mit 500MS/s abtasten, die Frage ist aber,
wie groß der Speicher ist, da er bestimmt, wie lange verlustfrei am
Stück gesampelt werden kann. Die anschliessende Übertragung über den USB
kann dann ruhig 20s dauern (Zumutung), das, was dann aber angezeigt
wird, ist mit 500MS/s abgetastet worden und in diesem Sinne wird dann
auch jedes Sample angezeigt.
In der Geschwindigkeit liegt dann eben der Unterschied zu schnellerer
Speicheranbindung bei Nicht-PC-Scopes.
Werde das vielleicht am Wochenende mal mit meinem PC-Scope mit ein paar
Signalen prüfen, interessant zu erfahren.
Gruß
GunB
Gun B. schrieb:> Die 512kB hat der USB schnell übertragen, der Haken ist aber, dass das> Signal eben nicht ohne Verluste wie zum Beispiel von dir beschrieben 1s> lange ununterbrochen aufgezeichnet werden kann.
Das war ja nur das Beispiel, dass das Signal so lange aufgenommen werden
könnte. Ich wollte hier nur verdeutlichen, dass schon bei dieser
Samplerate USB lange nicht hinterherkommt weshalb es unwahrscheinlich
ist, dass jedes Sample übertragen wird. Rein rechnerisch kann USB 2.0
480 MBit/s übertragen, das wären 60 MB/s aber das gilt ja fürs gesamte
Frame und nicht nur für die Nutzdaten, da darf man dann eher so um die
30-40 MB/s erwarten.
Auch der Hintergrund der Anzeige ist so eine Sache die bei der
Übertragung sicherlich eine Rolle spielt. Kommt wahrscheinlich auch auf
die Einstellung drauf an welches Sample übertragen wird. Bleiben wir mal
bei 1 Sekunde und den 500 MSamples/s. Wenn ich mir das auf den üblichen
Screen von ca. 2000 Pixel Breite anschauen will sind 500 MSamples zu
übertragen mehr als übertrieben, mehr als 2000 können eh nicht
dargestellt werden. Von daher würde es Sinn machen nur jedes 250000.
Sample zu übertragen, wenn man noch Zoomen will macht vielleicht jedes
10000. oder 5000. vielleicht noch Sinn aber alles darunter wäre Quatsch
und eine sinnlose Verschwendung von Resourcen da es eh nicht angezeigt
werden kann.
Naja, dass das Quatsch ist, zu übertragen würde ich mal so nicht stehen
lassen. Woher soll die Software/Hardware wissen, was jetzt für mich
wichtig ist? Für die Anzeige wird dann schon mit schlauen und bei jedem
Hersteller etwas anderen Algorithmen die Pixelzahl reduziert. Ein gutes
Scope hält aber den kompletten Sample-Speicher im Hintergrund, für den
Zoom oder das nachträgliche Auswerten des Signals. Bei LeCroy machen die
das jedenfalls so. Da schreibt das Scope per PCIe und DMA direkt in den
Hauptspeicher des PC und verringert so die Totzeit, die bei digitalen
Scopes immer da ist. Da der PC ein Multicore ist, kann der die Anzeige,
Abfrage der Bedienelemente usw. recht gleichzeitig machen. Mein Wave Pro
7 Zi auf Arbeit hat einen Quadcore Prozessor, 4GB RAM und Vista x64. Da
geht richtig die Post ab. Der Samplespeicher ist glaube 40MS groß und
wird je nach Anzahl der aktiven Kanöle aufgeteilt. Will man mehr
Speicher haben (geht glaub bis 256MS bei denen), dann kostet das richtig
Kohle...
Christian R. schrieb:> Ein gutes> Scope hält aber den kompletten Sample-Speicher im Hintergrund, für den> Zoom oder das nachträgliche Auswerten des Signals. Bei LeCroy machen die> das jedenfalls so.
Das Scope ja, aber ich meinte hier doch die Übertragung über USB. Da
wäre es Quatsch die gesamten 500 MSamples zu übertragen.
Michael schrieb:> Das war ja nur das Beispiel, dass das Signal so lange aufgenommen werden> könnte. Ich wollte hier nur verdeutlichen, dass schon bei dieser> Samplerate USB lange nicht hinterherkommt weshalb es unwahrscheinlich> ist, dass jedes Sample übertragen wird.
Hallo Michael,
dein Beispiel ist durchaus berechtigt, ich habe es auch so verstanden,
wie du es beschrieben hast.
Der USB mag zwar nicht hinterherkommen, muss er aber auch nicht, da
zuerst in den internen Speicher des Scopes gesampelt wird und nicht
online zum PC. Somit werden sehr wohl alle Samples angezeigt, die bis
zum Erreichen der internen Speichergrenze des Scopes aufgenommen werden.
Erst während der Übertragung zum PC entsteht die Totzeit.
Nimmt man dein Beispiel, so muss ein Scope mit 512k zum Beispiel
1s/5,12ms = 195 mal den Speicher vollschreiben und zwischendurch
übertragen, wo eben beim Übertragen die Totzeiten entstehen.
Michael schrieb:> Rein rechnerisch kann USB 2.0> 480 MBit/s übertragen, das wären 60 MB/s aber das gilt ja fürs gesamte> Frame und nicht nur für die Nutzdaten, da darf man dann eher so um die> 30-40 MB/s erwarten.
Da stimme ich dir zu, mir sind allerdings im isonchronen USB Mode so um
die 24MB/s für Nutzdaten bekannt. Wie auch immer, aber das macht eben
die Totzeit aus.
Michael schrieb:> Auch der Hintergrund der Anzeige ist so eine Sache die bei der> Übertragung sicherlich eine Rolle spielt. Kommt wahrscheinlich auch auf> die Einstellung drauf an welches Sample übertragen wird.
Da müsste dann bei jedem Zoom am PC der Speicher des PC-Scopes neu
übertragen werden, wenn mal mehr oder mal weniger Samples angezeigt
werden sollten. Das wäre dann wirklich dumm gemacht und so wird es
definitiv nicht gemacht. Es wird der gesamte Speicher zum PC gesendet
und in Abhängigkeit des Zooms werden dann alle oder weniger Samples in
den realen Screen genommen. Bei maximalem Zoom siehst du dann im Fenster
ALLE Samples, wobei dann natürlich nur ein Teil des insgesamt 1s langen
Signals sichtbar ist.
Michael schrieb:> vielleicht noch Sinn aber alles darunter wäre Quatsch> und eine sinnlose Verschwendung von Resourcen da es eh nicht angezeigt> werden kann.
Natürlich kann alles angezeigt werden, nur das Zeitfenster wird
entsprechend immer kleiner. Alles eine Frage des "wieviel Zeit bekomme
ich maximal bei gegebenem Zoom an Samples auf den Screen".
Macht jedes zoombare Scope so. Habe selbst schon Algorithmen für
zoombare Koordinatensysteme zum Sichtbarmachen von schnellen
Samplefolgen programmiert.
Eine Verschwendung an Ressourcen ist das sicher nicht. Gerade damit
werben Firmen wie Agilent, Tektronix, R&S usw., denn deren Scopes haben
i.d.R. im oberen Preissegment hohe Aktualisierungsraten, die u.a.
dadurch entstehen, dass eine schnelle Übertragung der Scopespeicher in
den Bildspeicher gegeben ist, womit statistisch nichtperiodisch
auftretende Störer mit einer höheren Wahrscheinlichkeit erfasst werden
können. Dazu MUSS jedes Sample erfasst und dargestellt werden können.
In diesem Bereich versagen die LowCost-PC-Scopes in aller Regel. Diese
können das Problem nur durch einen großen Speicher halbwegs beseitigen,
was aber dann auch eine lange Übertragungszeit mit USB 2.0 bedeutet. Die
StandAlone-Geräte sind da eben weitaus überlegen, weil sie eine schnelle
Anbindung an den Bildschirmspeicher haben.
Mein älteres Agilent 54622D wie auch das der 6er-Reihe machen sowas ohne
Verzögerung. Hier kannst du u.a. die Interpolation abschalten und die
Samples als Punkte direkt sehen. Und weggeworfen wird kein einziges
Sample, dann wären diese Geräte ihr Geld nicht wert.
Michael schrieb:> Das Scope ja, aber ich meinte hier doch die Übertragung über USB. Da> wäre es Quatsch die gesamten 500 MSamples zu übertragen.
Es wäre äußerst fatal und ein Grund zum Wegschmeißen des Gerätes. Das
Dingens kann doch nicht nach gutdünken was aussortieren. Das macht
garantiert kein ernstzunehmendes USB Scope.
Christian R. schrieb:> Michael schrieb:>> Das Scope ja, aber ich meinte hier doch die Übertragung über USB. Da>> wäre es Quatsch die gesamten 500 MSamples zu übertragen.>> Es wäre äußerst fatal und ein Grund zum Wegschmeißen des Gerätes. Das> Dingens kann doch nicht nach gutdünken was aussortieren. Das macht> garantiert kein ernstzunehmendes USB Scope.
Da stimme ich dir zu.
Allerdings hat Michael auch nicht ganz unrecht, dass je nach gerade
aufgelöstem Bildschirm ein Kompromiss gemacht wird nach dem Motto "wofür
mehr Details übertragen als gerade angezeigt werden sollen". Hier
arbeiten spezielle Interpolationsalgorithmen, die bei "viel Signal mit
weniger Details" im Streaming-Mode des USB Samples zusammenfassen, aber
nicht wie er beschreibt, wegwerfen.
Im Detailmodus müssen dennoch alles Samples angezeigt werden können,
wodurch eben die Übertragung aller Samples notwendig wird.
Ich möchte für alle Interessenten gerne auf folgendes Dokument
verweisen, dass ich vor einiger Zeit mal bei der Suche nach Treibern für
mein Scope gefunden habe:
http://www.picotech.com/support/kb/kbfiles/PicoScopeUSBStreaming.pdf
Denke, dass Michael sich mit seiner Argumentation in diesem Rahmen
bewegt.
Gruß
Gunb
Gibt es für die Picoscope-Sachen eigentlich auch einen Treiber, der die
Daten als Soundkarte im PC verfügbar macht? Sodaß man z.B. mit
SpectrumLab die Daten angezeigt bekommt. Hatte die mal angefragt, aber
es kam keine Antwort zurück.
Bzw. ist das API so gut spezifiziert, das man den Treiber
selberschreiben könnte?
Wozu sollte man das so verkrüppeln? Nimm doch lieber das API von denen,
und mach dir selbst eine Oberfläche, falls dir das nicht passt, was die
haben. Für die Anzeige eignet sich beispielsweise PlotLab ganz
vorzüglich.
Hallo,
ich habe das PicoScope in der großen Ausstattung (8MB Speicher etc.) auf
Arbeit.
Es verhält sich so, dass für die Darstellung auf dem PC nur eine
reduzierte Anzahl Samples via USB übertragen wird. Hat man das Gerät
gestoppt, bspw. nach einem Triggerereignis, so lässt sich der
vollständige ScopeSpeicher auslesen und kann dann nach Belieben in den
Datenpunkten herumscrollen.
Das hat den Vorteil, dass für die reine Signaldarstellung auf dem
Bildschirm das Scope unwahrscheinlich schnell, sprich die
Bildwiederholrate groß ist. Hat man das gewünschte Ereignis, liest man
einfach den Speicher vollständig aus und die volle Samplerate steht zur
Verfügung.
Nebenbei bemerkt habe ich auch ein TDS5104B, bei dem das Scope unter
Win2000 ebenfalls als USB-Gerät läuft. Es ist davon auszugehen, dass Tek
das hier nicht anders gelöst hat.
branadic
@branadic:
Hallo,
ja, was du schreibst macht Sinn. In Zusammenhang mit dem Dokument, auf
das ich oben gelinkt habe, ist diese Vorgehensweise sinnvoll. Die
Datenaggregation zieht immer alle Samples zur qualitativen
Signalbewertung auch bei niedriger Auflösung ein, wodurch eine
reduzierte Übertragung der Ergebnissamples im Streaming-Mode kein
Problem darstellt.
Bei höherer Auflösung, womit ich den maximalen Zoom meine, und einer
Darstellung aller Samples zur exakten Untersuchung OHNE Aggregation muss
dann wie von dir beschrieben der Scopespeicher 1:1 übertragen werden.
Das würde dann ja dem von Picotech beschriebenen Blockmode entsprechen.
Da müsste es doch dann auch bei der 8MB-Version, die du nennst, so sein,
dass einige Zeit vergeht, bis der Speicher zum PC übertragen worden ist,
richtig? Kannst du in diesem Zusammenhang dem Interesse halber Zeiten
nennen?
Gruß
Gunb
Ich denke nicht, dass der gesamte Speicher des Scopes übertragen wird
sondern nur ein Teil. Mittels USB hat man ja eine Kommunikation, mit der
die SW dem Scope z.B. die aktuelle Auflösung mitteilen kann. Ein kluger
Algorithmus, wie auch immer dieser aussehen mag, kann nun entscheiden
welche Samples übertragen werden sollen und welche nicht. Und so machen
das aus Scopes von Agilent, die übertragen nicht den ganzen Speicher.
Ich hab am Port meines Scopes mehrere USB-Geräte und a. seh ich keinen
zeitlichen Versatz zwischen Scope und PC und die anderen Geräte sind
auch noch flott unterwegs. Würde ständig der Speicher übertragen würde
ich hier entweder einen zeitlichen Versatz sehen oder die anderen Geräte
(z.B. externe HDD) würde nicht großartig senden können oder beides. Das
ist aber alles mitnichten der Fall weshalb ich einfach vermute, dass das
Scope nur das nötigste über den USB-Port schickt zum PC und genau das
scheint mir auch das sinnvollste zu sein. Bedenkt auch, wir reden hier
von einem Osziloskop, nicht von einem Datenlogger oder ähnliches.
Manchmal hab ich hier grad den Fall, dass das Skope auch noch ne
Datenloggerfunktion übernehmen soll.
Gun B. schrieb:> Ich möchte für alle Interessenten gerne auf folgendes Dokument> verweisen, dass ich vor einiger Zeit mal bei der Suche nach Treibern für> mein Scope gefunden habe:>> http://www.picotech.com/support/kb/kbfiles/PicoSco...>> Denke, dass Michael sich mit seiner Argumentation in diesem Rahmen> bewegt.
Ja, sowas dachte ich auch. Hier werden doch zwei Methoden beschrieben
(habs nur überfolgen, schau ich mir heute Abend mal genauer an) und bei
beiden Verfahren gehen (nicht grad wenig) Samples verloren.