Welches Übertragungsprotokoll für „Streaming über USB“

Ich programmiere das FPGA auf dem Red Pitaya und verwende es zum Sammeln von Daten und Generieren von Bildern mit diesen Daten. Dann muss ich die Bilder auf ein Android-Gerät übertragen. Ich muss also den USB-Anschluss verwenden (um das Board mit einem Android-Gerät zu verbinden) und ich habe mich gefragt, welches Übertragungsprotokoll ich für die Bildübertragung verwenden sollte. UDP über USB? Seriell über USB? Andere?

Oder gibt es vielleicht schon etwas auf der Red Pitaya?

Danke für deine Antworten.

Entweder Massen- oder isochrone Übertragungen.
Wenn Sie die Bilder beim Generieren lokal speichern, vielleicht als Massenspeichergerät?
Die meisten Spezial-USB-Geräte scheinen sich als serielle Adapter darzustellen, da dies ein einfaches und gut unterstütztes Protokoll ist. Ich weiß jedoch nicht, ob es auf Android unterstützt wird. (Ein weiterer Faktor für diese Wahl ist wahrscheinlich die Verfügbarkeit von FTDI USB-zu-Seriell-Schnittstellenchips)
Danke für deine Antworten. Wenn ich mich nicht irre, ist es eher isochron als Bulk, da ich gerne ein Streaming machen würde ... Was auf pjc50 antwortet. Für den Android-Geräteteil reicht ein USB-A-zu-USB-B-Anschluss, wenn ich mich nicht irre. Ich habe einige Apps gesehen, um die Arbeit zu erledigen. Das verbleibende Problem liegt immer noch auf der RP-Seite der Kommunikation.
Haben Sie die Möglichkeit, eigene Treiber zu schreiben und auf das Android-Gerät zu laden, oder müssen Sie vorgeben, ein Gerät zu sein, das dem Kernel bereits bekannt ist?
Ich muss als vorhandenes Modul (wenn Sie über das Board sprechen) für das Android-Gerät angezeigt werden.
Was ist hier die Elektronikdesign-Frage?
Viele falsche Informationen in den Kommentaren! Android unterstützt nicht wirklich Standard-USB-Geräte, abgesehen von Dingen wie Tastatur/Mäuse. Sie müssen eine App haben, die ihre eigene Userspace-Implementierung eines USB-"Treibers" mitbringt. Das bedeutet umgekehrt, dass Sie im Grunde jedes gewünschte Schema verwenden können, was auch immer Sie möchten verwenden, müssen Sie den Code angeben, der sie implementiert.
USB UVC ist eine gute Wahl für Videostreaming. Raw USB ist auch eine gute Wahl, wenn Sie sich nicht um Kompatibilität kümmern. Oder Ethernet/seriell über USB.

Antworten (2)

suchen Sie nach dem FT232h ftdi-Konverter ... selbst wenn Sie es nicht auf Ihrem Board haben, können Sie es mit Ersatz-E / A verbinden ... Sie können billige Breakout-Boards bei ebay oder aliexpress finden ...

Ich bin mir nicht 100% sicher, aber ich denke, es gibt einen Treiber für Android ...

Auf Ihrem Board befindet sich bereits ein FTDI RS232-Konverter , der mit einer der Micro-USB-Buchsen verkabelt ist. Wenn die zu übertragende Datenmenge moderat ist, können Sie diese verwenden. 1Mbit/s kann man durch so einen Umbau erwarten, manchmal auch etwas mehr. Ich besitze kein solches Board, daher ist dies nur eine Schätzung.

Wenn Sie viele Daten übertragen müssen und 1 Mbit/s nicht ausreicht, sollten Sie Ethernet über USB verwenden. Prüfen Sie, ob für Ihren Kernel ein Kernelmodul namens g_etherverfügbar ist.

Die RS422-Versionen der von mir verwendeten FTDI-Konverter können bis zu etwa 3 Mbit / s erreichen.
FTP ist ein völlig ungeeignetes Protokoll zum Streamen von Daten. Es zielt darauf ab, Dateien zu übertragen , nicht beliebige Daten, und ist relativ komplex zu implementieren. HTTP ist möglicherweise besser geeignet, da es zumindest einige Bestimmungen zum Streamen von Daten enthält.
@duskwuff Das OP erwähnt ausdrücklich das Übertragen von Bildern auf ein Android-Gerät. Was ist falsch daran, diese als Dateien zu übertragen?
@DmitryGrigoryev Der Fragentitel fragt speziell nach einer Lösung für " Streaming über USB". FTP ist kein Streaming-Protokoll.
@uuser39382 Bilder sind zunächst keine geeigneten Daten für das Streaming. Es sind entweder Standbilder als Dateien oder Videos als Stream.