Conexión TCP FPGA

¿Es posible tener una conexión TCP con una FPGA? Necesito un dispositivo de baja potencia que pueda controlar los relés en función de los paquetes de Ethernet que se reciben y enviar paquetes de confirmación.

FPGA es un dispositivo lógico general. Puedes hacer cualquier lógica digital con él. Incluyendo conexiones TCP. No estoy hablando de esfuerzo involucrado ya que no lo has preguntado.
Sí, aunque tienes que construir toda la máquina de estado tú mismo. Y no son particularmente de baja potencia. Un microcontrolador sería más simple.
Desarrollar TCP es un trabajo duro. Necesitará: controlador Ethernet (incluido el controlador MDIO), capa MAC, capa ARP, capa IP y la capa TCP. TCP es complejo debido a su control de flujo. ¿No puedes usar UDP? Es mucho más simple.
Agregando a lo que dijo @Paebbles, incluso un AVR barato combinado con un chip de ethernet a SPI puede hacer lo mismo, y no se requiere alta velocidad para controlar los relés. ¿Realmente necesitas que esté basado en FPGA por alguna otra razón?

Respuestas (3)

Sí, es posible.

Para el extremo inferior, puede echar un vistazo a http://opencores.org/project,tcp_socket (800 LUT en Spartan 6).

En el extremo superior, consulte http://dx.doi.org/10.1109/FCCM.2015.12 ( diapositivas ) para 10 Gbps en Virtex7.

Vaya, el primer enlace acaba de alegrarme el día. He estado pensando en implementar eso en un núcleo abierto durante mucho tiempo, y ahí está. :)

¿Es posible? Sí

¿Hay momentos en los que te gustaría hacerlo? Sí

¿Es la solución adecuada para el problema que describes? casi seguro que no!

Los FPGA son excelentes para hacer cosas que son simples y repetitivas, pero que deben suceder con tiempos muy ajustados y donde el mercado es demasiado pequeño para justificar el silicio personalizado, pero para cosas de menor velocidad tienden a ser costosos (tanto en términos de costos de hardware como de desarrollo). tiempo) y la opción hambrienta de energía.

Los relés están en el extremo opuesto de la escala de velocidad. Entonces, usar un FPGA para controlarlos parece una locura. Personalmente, para un controlador de relé en red, buscaría una solución basada en un microcontrolador o una solución basada en Linux integrado, según el equilibrio de costos de desarrollo/producción y las características requeridas (es mucho más fácil agregar soporte para cosas como TLS o interfaces web en un una solución basada en Linux que una solución basada en un microcontrolador).

puede usar el módulo Ethernet lantronix. y hay muchas empresas que fabrican placas con estos módulos, como este relé controlado por Ethernet , por lo que puede obtener estas placas que tienen relé y Ethernet, lo que hará que controlar el relé sea muy fácil. todo lo que necesita para enviar comandos usando su hardware maestro. estos módulos lantronix también vienen con una página web incorporada.