FPGA-TCP-Verbindung

Ist eine TCP-Verbindung mit einem FPGA möglich? Ich brauche ein Low-Power-Gerät, das Relais basierend auf empfangenen Ethernet-Paketen steuern und Bestätigungspakete zurücksenden kann.

FPGA ist ein allgemeines Logikgerät. Sie können damit jede digitale Logik ausführen. Einschließlich TCP-Verbindungen. Ich spreche nicht von Aufwand, da Sie nicht gefragt haben.
Ja, obwohl Sie die gesamte Zustandsmaschine selbst bauen müssen. Und sie sind nicht besonders stromsparend. Ein Mikrocontroller wäre einfacher.
Die Entwicklung von TCP ist harte Arbeit. Benötigt werden: Ethernet-Controller (inkl. MDIO-Controller), MAC-Layer, ARP-Layer, IP-Layer und TCP-Layer. TCP ist aufgrund seiner Flusskontrolle komplex. Kannst du UDP nicht verwenden? Es ist viel einfacher.
Zusätzlich zu dem, was @Paebbles gesagt hat, kann sogar ein billiger AVR in Kombination mit einem Ethernet-zu-SPI-Chip dasselbe tun, und zur Steuerung von Relais ist keine hohe Geschwindigkeit erforderlich. Brauchen Sie es wirklich aus einem anderen Grund, FPGA-basiert zu sein?

Antworten (3)

Ja, es ist möglich.

Für das untere Ende können Sie sich http://opencores.org/project,tcp_socket (800 LUTs in Spartan 6) ansehen .

Am oberen Ende siehe http://dx.doi.org/10.1109/FCCM.2015.12 ( Folien ) für 10 Gbps auf Virtex7.

Wow, der erste Link hat mir gerade den Tag versüßt. Ich habe sehr lange darüber nachgedacht, das in einem offenen Kern zu implementieren, und da ist es. :)

Ist es möglich? Ja

Gibt es Zeiten, in denen Sie es tun möchten? Ja

Ist es die richtige Lösung für das von Ihnen beschriebene Problem? ziemlich sicher nicht!

FPGAs eignen sich hervorragend für Dinge, die einfach und repetitiv sind, aber mit sehr engen Timings geschehen müssen und wo der Markt zu klein ist, um kundenspezifisches Silizium zu rechtfertigen, aber für Dinge mit niedrigerer Geschwindigkeit sind sie in der Regel teuer (sowohl in Bezug auf die Hardwarekosten als auch auf die Entwicklung). Zeit) und machthungrige Option.

Relais befinden sich am anderen Ende der Geschwindigkeitsskala. Die Verwendung eines FPGAs zur Steuerung scheint also ziemlich verrückt zu sein. Persönlich würde ich für einen vernetzten Relaiscontroller entweder eine mikrocontrollerbasierte Lösung oder eine eingebettete Linux-basierte Lösung in Betracht ziehen, abhängig von der Kostenbilanz für Entwicklung/Produktion und den erforderlichen Funktionen (es ist viel einfacher, Unterstützung für Dinge wie TLS oder Webschnittstellen auf einem Linux-basierte Lösung als eine Mikrocontroller-basierte Lösung).

Sie können das Ethernet-Modul von Lantronix verwenden. und es gibt viele Unternehmen, die Platinen mit diesen Modulen wie diesem Ethernet-gesteuerten Relais herstellen , sodass Sie diese Platinen mit Relais und Ethernet erhalten können, wodurch die Steuerung des Relais sehr einfach wird. Alles, was Sie brauchen, um Befehle mit Ihrer Master-Hardware zu senden. Diese Lantronix-Module haben auch eine eingebaute Webseite.