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
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.
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.
ft245 oder ähnlich falls es ein bisschen mehr Dampf sein soll
Das De0 Nano SOC hat bereits einen "UART to micro USB" on Board. Da brauchts nichts Zusätzliches, einfach nur ein Kabel.
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
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.
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.