Ich möchte ein USB-Oszilloskop bauen. Ich habe über verschiedene USB-Übertragungsarten gelesen . Welche Übertragungsart eignet sich am besten, um die gesammelten ADC-Samples von einem USB-Oszilloskop auf einen PC zu übertragen?
Im Folgenden sind einige meiner Ergebnisse aufgeführt. Bitte korrigieren Sie mich und es wäre auch gut, wenn jemand eine gute Überweisungsart vorschlagen könnte.
- Isochrone Übertragung - Möglicher Datenverlust. Nicht gut für ein Oszilloskop, da jedes Datenelement wertvoll ist. Wie viele Daten könnten verloren gehen?
- Interrupt-Modus - Ich habe keine Ahnung, ob es die USB-Verbindung überfluten würde
- Massenmodus - Scheint mir das Beste, da kein Datenverlust
- Kontrollübertragung - nicht geeignet, da nicht zur Datenübertragung gedacht
usb
oscilloscope
Robomon
quelle
quelle
Antworten:
Massenübertragungen verlieren keine Daten, haben jedoch keine garantierte Mindestbandbreite. (Auf der anderen Seite können sie höhere Geschwindigkeiten erreichen, da sie die gesamte Bandbreite nutzen können, die von anderen Übertragungen tatsächlich nicht genutzt wird.)
Was passiert, wenn die Datenübertragung Ihres Oszilloskops verzögert wird (entweder aufgrund von Fehlern oder aufgrund anderer Geräte) und neue Daten angehäuft werden? Halten Sie das Gerät an, bis die alten Daten übertragen wurden, oder werfen Sie die alten Daten weg, um die aktuellen Daten übertragen zu können?
Isochrone Übertragungen sind für Echtzeitdaten ausgelegt. Sie haben keine Wahl bezüglich der Fehlerbehandlung, aber Ihre Bandbreite ist auf dem Bus reserviert.
quelle
Die Frage ist fast völlig unabhängig von Ihrer Verwendung als Oszilloskop und hängt vollständig von der Art der Kommunikation ab, die Sie von USB verlangen. Beispielsweise:
Sobald Sie wissen, welche Art von Daten Sie übertragen und unter welchen QoS-Bedingungen (Quality of Service) die Daten eingehen müssen, können Sie entscheiden, welcher USB-Übertragungsmechanismus verwendet werden soll. Sie wissen, dass Sie bereit sind, diese Entscheidungen zu treffen, wenn das Wort "Oszilloskop" nicht mehr zur Beschreibung der von Ihnen benötigten Daten und QoS erforderlich ist. Dann wissen Sie, dass es objektiv genug ist, um diese Probleme anzugehen.
quelle
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 die Latenz einschränken, sind sie nur für Datenströme mit niedriger bis mittlerer Bandbreite vorgesehen.
quelle
Verwenden Sie einfach Sammeltransfers. Ein Oszilloskop ist eigentlich kein Gerät mit hoher Datenrate. Ein Oszilloskop ist nur ein Fenster in einen sehr kleinen Teil einer Wellenform, es sei denn, Sie planen ein digitales Leuchtstoffdesign. Angenommen, Sie möchten 1000 horizontale Pixel anzeigen und die Anzeige bei etwa 30 Hz aktualisieren. Wenn die Samples jeweils 8-Bit sind (dies ist typisch) und zwei Kanäle vorhanden sind, sehen Sie nur 60.000 Bytes / Sekunde. Full-Speed-USB kann bis zu 1.000.000 Bytes / Sek. Verarbeiten, sodass Sie weniger als 6% der Bus-Durchsatzkapazität nutzen. Das gibt genügend Zeit, um den Massenübertragungsmodus seine Sache tun zu lassen (Fehler korrigieren, anderen Busverkehr umgehen), und es ist unwahrscheinlich, dass Sie jemals auf eine reale Buskonfiguration stoßen, die nicht in der Lage ist, Ihnen genügend Bandbreite zuzuweisen für so viele Daten.
quelle