¿Qué idioma para escribir la aplicación USB 3.0 para la placa de demostración ADC? [cerrado]

2

Necesito alguna sugerencia / guía sobre qué idioma / configuración usar para crear una aplicación con conectividad USB 3.0 que procesa 1.6Gbps de datos en tiempo real.

La aplicación recopila datos de un ADC y los grafica en un gráfico en la aplicación. Básicamente, es un tablero de adquisición de datos de alta velocidad que estoy diseñando, y necesito software para emparejarse con el tablero.

El sistema operativo de destino es Windows, pero eventualmente se necesitará soporte para OS X y Linux.

Tengo experiencia en el uso de chips FTDI USB 2.0 en modo serie, pero no estoy seguro de si el USB 3.0 será el mismo para velocidades de 1.6Gbps.

Cualquier comentario / sugerencia de bienvenida.

¡Gracias!

    
pregunta Robin Tsang

1 respuesta

0

Las partes críticas de velocidad que manejan el procesamiento de números en tiempo real deben escribirse en un lenguaje compilado y eficiente, como C o C ++. 1.6Gbps es 200MB / s, así que dependiendo de la cantidad de procesamiento que estés haciendo ... digamos que no deberías escribir esto en ruby o python.

Ahora, si su procesamiento es canalizable (no requiere bifurcarse o moverse hacia arriba y hacia abajo en la pila del programa), o básicamente solo una serie de operaciones que son fijas y no dependen del contenido de los datos, se hará lo mismo con todos los datos, entonces para esto se hicieron las cosas como OpenCL o CUDA. Esto le permite realizar estas operaciones en la GPU de la computadora, usándola casi como DSP. OpenCL funciona en todas las tarjetas gráficas, CUDA es específica de Nvidia, por lo que recomendaría OpenCL. También puede retroceder y usar la CPU.

OpenCL es un marco en lugar de un lenguaje, pero especifica C99 como el idioma preferido para usar con él.

Además, el comentario de Kevin Reid es un gran consejo: los SDR hacen exactamente esto: procesan una gran cantidad de datos provenientes de algún lugar (generalmente USB 2.0 o 3.0) y un excelente lugar para comenzar. Una simple podría ser ver cómo lo hace el controlador rtl-sdr. El código está disponible aquí .

    
respondido por el metacollin

Lea otras preguntas en las etiquetas