¿Cómo establecer una comunicación entre FPGA y CPU en tiempo real? [cerrado]

-1

Estoy trabajando en un proyecto que involucra FPGA y comunicación con la CPU (en tiempo real, es decir, la CPU y la FPGA deberían funcionar juntas).

Ya he diseñado y probado el protocolo de comunicación UART en FPGA usando el terminal Hterm (está funcionando de manera espléndida). Pero, para finalizar esto, debo escribir un programa en C ++ o Java en la CPU.

Intenté usar la biblioteca Java RxTx para el mismo. Sin embargo, no se están enviando datos a la FPGA ni recibidos de la FPGA.

¿Alguien puede sugerir aquí el idioma y la herramienta adecuados para establecer una comunicación entre FPGA y CPU mediante un enlace de comunicación serial (UART / RS-232)?

PS :: Cualquier enlace será de gran ayuda.

    
pregunta Aditya Kulkarni

1 respuesta

1

Un programa de C relativamente simple para manejar la comunicación en serie desde un host a un microcontrolador (originalmente Arduino) fue publicado hace muchos años por TodBot

La fuente de C está en github

He usado una versión anterior. Tiene algunas opciones más ahora, pero aún es lo suficientemente corta como para ser relativamente comprensible. Está escrito en C, por lo que debe compilarse en la mayoría de los sistemas con un compilador similar a POSIX y una biblioteca básica.

Los dos archivos principales del código fuente, arduino-serial.c y arduino-serial-lib.c son aproximadamente 350 líneas de C. directa. Ignore arduino-serial-server.c, es irrelevante.

La mayoría de (todos) los sistemas operativos modernos están escritos en C / C ++. C / C ++ funciona bien para este tipo de tarea de línea de comandos. Muchas de las API del sistema operativo están documentadas para su uso directamente desde C / C ++. Por lo tanto, no hay mucho más para causar complejidad, y las preguntas planteadas en C deberían ser las más fáciles de responder. C / C ++ no son los lenguajes más fáciles de usar ni los más bonitos, pero son bien entendidos, tienen muchos usuarios y código fuente y son estables. C es significativamente más simple que C ++, por lo que aprender y usar C será más sencillo para este tipo de tarea.

Es posible que no tenga acceso a una PC con serial / RS232. Obtén un cable USB-UART y úsalo. Uso FTDI USB-UART originales y nunca he tenido problemas. Los sistemas operativos host ya tendrán controladores para USB-UART, por lo que no debería ser necesario instalar ningún controlador si utiliza un producto conocido. Ese programa C fue diseñado para usar un USB-UART FTDI, pero imagino que funcionará correctamente en la mayoría de los productos porque utiliza un pequeño subconjunto de instalaciones de E / S en serie.

    
respondido por el gbulmer

Lea otras preguntas en las etiquetas