Qué protocolo de transferencia para "Streaming over USB"

Estoy programando el FPGA en Red Pitaya y lo estoy usando para recopilar datos y generar imágenes con esos datos. Luego, necesito transferir las imágenes a un dispositivo Android. Necesito usar el puerto USB (para conectar la placa a un dispositivo Android) y me preguntaba qué protocolo de transferencia debo usar para la transferencia de imágenes. ¿UDP por USB? ¿Serie a través de USB? ¿Otro?

¿O tal vez algo ya existe en Red Pitaya?

Gracias por tus respuestas.

Transferencias masivas o isócronas.
Si tiene almacenamiento local para las imágenes a medida que las genera, ¿tal vez presente como un dispositivo de almacenamiento masivo?
La mayoría de los dispositivos USB para propósitos especiales parecen presentarse como adaptadores seriales, ya que es un protocolo simple y bien soportado. Aunque no sé si tiene soporte en Android. (Otro factor para que elijan esto es probablemente la disponibilidad de chips de interfaz FTDI USB a serie)
Gracias por tus respuestas. Si no me equivoco, es más isócrono que masivo ya que me gustaría hacer un streaming... Lo cual responde a pjc50. Para la parte del dispositivo Android, un usb a a usb b es suficiente si no me equivoco. Vi algunas aplicaciones para hacer el trabajo. El problema restante aún está en el lado RP de la comunicación.
¿Tiene la capacidad de escribir sus propios controladores y cargarlos en el dispositivo Android, o tiene que pretender ser un dispositivo que ya conoce el kernel?
Debo aparecer como un módulo existente (si se trata de la placa) para el dispositivo Android.
¿Cuál es la pregunta de diseño electrónico aquí?
¡Mucha información incorrecta en los comentarios! Android realmente no es compatible con dispositivos USB estándar aparte de cosas como teclado/ratón, debe tener una aplicación que brinde su propia implementación de espacio de usuario de un "controlador" USB, por el contrario, eso significa que puede usar básicamente cualquier esquema que desee como lo que sea use tiene que proporcionar el código que lo implementa.
USB UVC es una buena opción para la transmisión de video. Raw USB también es una buena opción si no te importa la compatibilidad. O ethernet/serie a través de USB.

Respuestas (2)

busque el convertidor ftdi FT232h... incluso si no lo tiene en su placa, puede conectarlo con E/S de repuesto... puede encontrar placas de conexión baratas en ebay o aliexpress...

No estoy 100% seguro, pero creo que hay algún controlador para Android...

Ya hay un convertidor FTDI RS232 en su placa, conectado a uno de los enchufes micro-USB. Si la cantidad de datos que desea transferir es moderada, puede usar eso. Podría esperar obtener 1 Mbit/s a través de una conversión de este tipo, a veces un poco más. No tengo una placa de este tipo, así que esto es solo una estimación.

Si necesita transferir muchos datos y 1 Mbit/s no es suficiente, debe usar Ethernet a través de USB. Vea si tiene un módulo de kernel llamado g_etherdisponible para su kernel.

Las versiones RS422 de los convertidores FTDI que he usado pueden llegar hasta unos 3 Mbps.
FTP es un protocolo completamente inadecuado para la transmisión de datos. Su objetivo es transferir archivos , no datos arbitrarios, y es relativamente complejo de implementar. HTTP podría encajar mejor, ya que al menos tiene algunas disposiciones para la transmisión de datos.
@duskwuff El OP menciona específicamente la transferencia de imágenes a un dispositivo Android. ¿Qué tiene de malo transferirlos como archivos?
@DmitryGrigoryev El título de la pregunta solicita específicamente una solución para " transmitir por USB". FTP no es un protocolo de transmisión.
@uuser39382 Para empezar, las imágenes no son un tipo de datos adecuado para la transmisión. Son imágenes fijas como archivos o video como transmisión.