Cuando estás enviando esa cantidad de datos a través de un microcontrolador, seguramente querrás descargar tanto como puedas a DMA. Si la adquisición y transferencia de datos se puede hacer en trozos de, por ejemplo, Las muestras 256 o 512 reducen considerablemente la sobrecarga de la CPU.
Un UART está prácticamente fuera de discusión. Incluso las velocidades en baudios más rápidas que lograrán algunos microcontroladores es solo la mitad de la tasa de bits que necesita.
Ethernet es un buen punto de partida, pero aún quedan algunas decisiones por hacer. ¿La transferencia de datos debe ser sin pérdidas?
Si se permite cierta pérdida de datos, entonces se acepta el uso de UDP. UDP no requiere ningún intercambio, los pequeños cálculos de CRC y los marcos son casi tan sencillos de configurar como los de Ethernet "sin procesar".
A 100MHz + cortex m4 puede saturar su (¡interno!) controlador de Ethernet de 100MBits sin muchos problemas, si está bien diseñado.
Si necesitas una conexión TCP, las cosas se vuelven mucho más complicadas. Especialmente porque TCP puede requerir una gran cantidad de memoria intermedia si la conexión por cualquier motivo se detiene momentáneamente. Por esa razón, el rendimiento de TCP puede variar drásticamente dependiendo de la pila de software que use, pero desde mi experiencia, 50Mbits es mucho.
Podrías optar por USB2.0 480Mbit / s utilizando los microcontroladores a bordo del periférico. Sin embargo, las pilas USB son bastante complicadas para comenzar a trabajar y, si eres nuevo en eso, te aconsejaría en contra de esta solución.
Podría considerar el uso de un conjunto de chips USB 2.0 HS como el FT232HQ. La interfaz asíncrona 245 FIFO permite el reloj externo y las transferencias a través de un bus paralelo. La hoja de datos cita una velocidad de transferencia de hasta 8Mbytes / seg, lo que parece que es suficiente. Sin embargo, no sé qué tan fácil es lograrlo y configurarlo.