mikrocontroller.net

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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: FPGA zum Spass (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Quendolin Qlug (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: glub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ft245 oder ähnlich falls es ein bisschen mehr Dampf sein soll

Autor: FPGA zum Spass (Gast)
Datum:

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

Autor: Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: FPGA zum Spass (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Samuel C. (neoexacun)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für den Hinweis.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.