Forum: FPGA, VHDL & Co. Terasic DE0 SoC, sinnvoller Weg zur Kommunikation mit PC?


von Schmidt (Gast)


Lesenswert?

Hallo,

ich habe mir für ein Studienprojekt ein DE0 SoC-Board von Terasic 
gekauft, um mehrere serielle Daten mit Hilfe des FPGA-Teils aufzunehmen 
und mit dem HPS-Teil unter Linux USB-Daten (Kamera) auszulesen.

Diese Daten sollen dann an einen Linux-PC weitergeleitet und dort in 
eine Datenbank abgelegt werden.

Meine Frage an euch wäre nun: welche Schnittstelle würdet ihr mir für 
die SoC-PC-Kommunikation empfehlen. USB oder Ethernet? Oder vielleicht 
besser eine UART-Implementation? Gibt es hier schon fertige Tools für 
die Kommunikation?

Ich freue mich auf einen Tipp von euch.

Mit Gruß

Schmidt

von FPGA zum Spass (Gast)


Lesenswert?

Hallo,

ich nehme an du meinst das DE0-Nano SOC?

Klär doch erstmal ob deine Kamera über den OTG USB Port überhaupt 
ansteuerbar ist.

Was willst du dann alles verschicken?
Bilder? Videos?
Was wird mit dem FPGA Teil aufgenommen? Datenrate?

Scheint mir jedenfalls em ehesten eine Aufgabe zu sein bei der sich 
Ethernet anbietet.

UART hängt am CPU Teil, das macht dann nicht so viel Sinn, zumal das mit 
Bilddaten wenig Spaß macht.

Vom FPGA Teil aus musst du basteln über die GPIOs oder den JTAG Mode vom 
Programmieranschluss benutzen.


In jedem Fall ein äußerst anspruchsvolles Studienprojekt, soviel kann 
man jetzt schon vorraussagen.

von Quendolin Qlug (Gast)


Lesenswert?

Schmidt schrieb:

> Ich freue mich auf einen Tipp von euch.

UART mit dem oder preiswerten Clone:
https://www.reichelt.de/usb-zu-ttl-serieller-uart-wandler-laenge-1-0m-ttl-232r-rpi-p133760.html?&trstct=pos_1

Auf PC seite nimmste ein terminal, auf dem SoC lässte einen flott in C 
geschriebenen Kommandeointerpreter laufen.

von glub (Gast)


Lesenswert?

ft245 oder ähnlich falls es ein bisschen mehr Dampf sein soll

von FPGA zum Spass (Gast)


Lesenswert?

Das De0 Nano SOC hat bereits einen "UART to micro USB" on Board.
Da brauchts nichts Zusätzliches, einfach nur ein Kabel.

von Schmidt (Gast)


Lesenswert?

Hallo und vielen Dank für eure Hinweise,

also einen UART auf dem SoC und dann einen virtuellen COM-Port am PC. 
Das sollte machbar sein. Vielen Dank auch für den Hinweis auf den 
UART-to-USB-Konverter. Den hatte ich noch gar nicht auf dem Schirm.

Sollte es zu höheren Datenraten kommen: habt ihr Erfarungen mit 
Datentransfer per Ethernet (TCP/IP und dann über Sockets) mit dem SoC? 
Wäre das evtl eine Alterative oder wird das eine endlose Geschichte?


Mit Gruß

Schmidt

von FPGA zum Spass (Gast)


Lesenswert?

Ist genauso leicht oder schwer wie jede andere Ethernet Verbindung 
zwischen 2 Linux-PCs.

Beispiele gibts hier:

https://superuser.com/questions/326211/best-way-to-transfer-files-over-a-lan-between-two-linux-computers


Das gilt natürlich nur wenn die Daten schon im CPU Teil vorliegen, weil 
man dann "nur" C programmieren muss, bzw Linux eigene Tools nutzt.

Sie aus dem FPGA Teil zu holen kann einen Anfänger schon ordentlich 
beschäftigen.

von Schmidt (Gast)


Lesenswert?

Vielen Dank für deine Antwort.

Ja, die Daten sollen vom FPGA nur aufgenommen, dann aber von der CPU 
übernommen und weiter verarbeitet werden. Sie liegen also für die CPU 
verfügbar vor.

Vielen Dank das Beipiel. Ich sehe es mir gleich an.

Mit Gruß

Schmidt

von Schmidt (Gast)


Lesenswert?

Hallo,

ich habe den Artikel überflogen und muss feststellen, dass er etwas an 
meinem Problem vorbei geht.

Derzeitiger Plan: Wenn ich mit dem SoC Daten aufnehme, so erhalte ich 
eine Struktur aus Variablen oder einen String, welcher im Speicher 
vorliegt. Keinen abgelegten Datensatz (das würde ich als Alternative 
untersuchen wollen).

Der Transfer müsste somit aus C heraus, analog zu einer Transmission 
über UART, erfolgen. Ich würde somit Variablen (Daten) in ein 
Transferregister legen wollen, diese transferieren und dann auf der 
Seite des PCs aufnehmen und direkt weiter verarbeiten wollen. Z.B. in 
eine Datenbank ablegen.

Wäre da über TCP/IP analog zu UART möglich?

Mit Gruß

Schmidt

von Samuel C. (neoexacun)


Lesenswert?

TCP/IP und UART unterscheiden sich letztendlich nicht großartig. 
http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/025_c_netzwerkprogrammierung_004.htm

von Schmidt (Gast)


Lesenswert?

Vielen Dank für den Hinweis.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.