6 votos

Salida de vídeo a través de USB (u otros medios)

Para un convertidor ADC de velocidad media-alta, mi FPGA recibe actualmente muestras de 16 bits a 54 MHz a través de una interfaz LVDS (4 líneas de señal diferencial más 1 señal de reloj diferencial). Se trata de señales de vídeo/cámara.

Ahora, necesito considerar cómo puedo llevar la imagen desde la FPGA al PC. Tengo un microcontrolador y una interfaz USB-OTG. Pero el USB es de 480 Mbit/s, y probablemente baje a 35 MB/s efectivamente (o menos), lo que no es lo suficientemente alto para 16 bits 1,5 MPixels @ 54 frames/sec. Eso supondría 162 MB/seg, demasiado alto para el USB 2.0. ¿Estoy obligado a utilizar el USB 3.0? Realmente quería sacar las imágenes en bruto al PC. También podría realizar una compresión sin pérdidas en la FPGA.

La segunda cuestión es cómo transmitir estos datos fuera de la FPGA. Podría almacenar los datos del ADC en una memoria RAM externa, o podría establecer una interfaz con el microcontrolador, o incluso dirigir directamente las señales de salida en un puerto. En cualquier caso, ¿qué opciones tengo con respecto a grandes flujos de datos?

Se agradece cualquier ayuda.

0 votos

Quieres usar un microcontrolador para 162MB/s... ¿De verdad? ¿Qué microcontrolador pensabas utilizar exactamente?

0 votos

No, no directamente, por supuesto. Sin embargo, el uController necesita estar en un papel de supervisión.

0 votos

¿Se puede añadir alguna otra interfaz específica para el vídeo? ¿HDMI o algo así?

3voto

Martin Thompson Puntos 6509

Su necesidad de ancho de banda es muy superior a la de USB2 (por un factor de 4-5 veces). A menos que tus imágenes tengan algunas características especiales que puedas aprovechar, la compresión sin pérdidas sólo va a conseguir una mejora del 50% (aproximadamente), por lo que no va a funcionar.

Tienes que aumentar el ancho de banda disponible (USB3) o reducir el requisito de ancho de banda (es decir, la resolución, la velocidad de fotogramas, la profundidad de bits o alguna combinación).

En cuanto a la interfaz FPGA->USB, si quieres algo fácil de poner en marcha, prueba Opal Kelly Ellos han hecho la interfaz USB3/FPGA por ti y puedes concentrarte en lo que te interesa. (No tengo ninguna relación con OK más allá de ser un feliz usuario de su material).

Si no, necesitas un micro con la interfaz USB y algún motor hardware+DMA tipo FIFO para que el micro sólo supervise (como dices) las transferencias de datos. Ciprés hacer algo. FTDI también (aunque son micros, no hay que tocar las tripas, se puede fingir que son un FIFO y los datos aparecen "mágicamente" en el PC).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X