Ich möchte ein USB-Oszilloskop bauen. Ich habe über verschiedene USB-Übertragungsarten gelesen . Welcher Übertragungstyp eignet sich am besten, um die gesammelten ADC-Samples von einem USB-Oszilloskop auf einen PC zu übertragen?
Unten sind ein paar meiner Erkenntnisse. Bitte korrigieren Sie mich und es wäre auch gut, wenn jemand einen guten Übertragungstyp vorschlagen könnte.
Bei Massenübertragungen gehen keine Daten verloren, es gibt jedoch keine garantierte Mindestbandbreite. (Andererseits können sie höhere Geschwindigkeiten erreichen, da sie die gesamte Bandbreite nutzen können, die nicht wirklich von anderen Übertragungen verwendet wird.)
Was passiert, wenn die Datenübertragung Ihres Oszilloskops verzögert wird (entweder aufgrund von Fehlern oder aufgrund anderer Geräte) und sich neue Daten anhäufen? Halten Sie das Gerät an, bis die alten Daten übertragen sind, oder werfen Sie die alten Daten weg, um die aktuellen Daten übertragen zu können?
Isochrone Übertragungen sind für „Echtzeit“-Daten ausgelegt. Sie haben keine Wahl bezüglich der Fehlerbehandlung, aber Ihre Bandbreite wird auf dem Bus reserviert.
Die Frage ist fast völlig unabhängig von Ihrer Verwendung als Oszilloskop und wird vollständig von den Arten der Kommunikation bestimmt, die Sie von USB verlangen. Zum Beispiel:
Sobald Sie wissen, welche Art von Daten Sie übertragen und unter welchen Quality of Service (QoS)-Bedingungen die Daten ankommen müssen, können Sie entscheiden, welcher USB-Übertragungsmechanismus verwendet werden soll. Sie werden wissen, dass Sie bereit sind, diese Entscheidungen zu treffen, wenn das Wort „Oszilloskop“ nicht mehr erforderlich ist, um die Daten und QoS zu beschreiben, die Sie benötigen. Dann wissen Sie, dass es in objektiven Worten genug ist, um diese Probleme anzusprechen.
Bei einem Oszilloskop ist die Bandbreite der Übertragung der Parameter, den Sie maximieren möchten. Die Massenübertragung wurde speziell für hohe Bandbreiten entwickelt, daher ist dies die richtige Wahl. Während isochrone und Interrupt-Übertragungen der Latenz Grenzen setzen, sind sie nur für Datenströme mit niedriger bis mittlerer Bandbreite gedacht.
Verwenden Sie einfach Massenüberweisungen. Ein Oszilloskop ist eigentlich kein Gerät mit hoher Datenrate. Wenn Sie nicht vorhaben, ein digitales Phosphor-Design zu erstellen, ist ein Oszilloskop wirklich nur ein Fenster in einen sehr kleinen Teil einer Wellenform. Angenommen, Sie möchten 1000 horizontale Pixel anzeigen und die Anzeige mit etwa 30 Hz aktualisieren. Wenn die Samples jeweils 8 Bit groß sind (dies ist typisch) und zwei Kanäle vorhanden sind, sehen Sie nur 60.000 Bytes/Sekunde. USB mit voller Geschwindigkeit kann etwa 1.000.000 Bytes/s verarbeiten, sodass Sie weniger als 6 % der Busdurchsatzkapazität verwenden. Das gibt genügend Zeit, um den Massenübertragungsmodus seine Arbeit tun zu lassen (Fehler korrigieren, anderen Busverkehr umgehen), und es ist unwahrscheinlich, dass Sie jemals auf eine reale Buskonfiguration stoßen, die Ihnen nicht genug Bandbreite zuweisen kann für so viele Daten.
Passant
Benutzer253751
Mitch