In LabView UDP Pakete vom FPGA auslesen

OP #4910498
Hi Zusammen,

Das ARTY FPGA dev Board habe ich mit dem Ethernet Code von Hamsterworks 
'programmiert' : 
http://hamsterworks.co.nz/mediawiki/index.php/ArtyEthernet

Den Code habe ich soweit angepasst, dass Daten von einem Sensor über 
Ethernet an den PC gesendet werden.
Über Wireshark habe ich auch keine Probleme die UDP Pakete mit den 
Sensordaten zu empfangen, jedoch über LabView bekomme ich keine Daten.

Zu UDP LabView gibt es ja viele Beispiel VIs, habe einige getestet und 
auch mein eigenes aufgebaut, aber es kommt nichts an.

Es hat wohl irgendetwas mit DHCP? zu tun, davon verstehe  ich aber recht 
wenig. Habe sämtliche Foren zu diesem Problem durchsucht und auch viele 
Problem"lösungen" angewandt, aber half alles nichts.

Im VHDL-Code des Arty kann ich zB. den Port, die MAC und IP für source 
und destination einstellen. Kann diese dann auch in Wireshark sehen. Den 
Port habe ich natürlich angepasst, wird auf 8012 geschickt.

Hier ist der Code zum ArtyEthernet: 
https://github.com/hamsternz/ArtyEtherentTX

Vielleicht hilft das: Ich konnte das Board auch nicht anpingen über cmd. 
Es ist mit einem LAN kabel am PC angeschlossen.
Angehängte Dateien:
Gast
Moin,

wenn der Ping nicht ankommt: vielleicht kann dein Stack kein ICMP?
An DHCP sollte es nicht liegen (du hast ja offenbar ne statische IP 
vorgesehen), aber ARP sollte dein Stack schon unterstützen. Gibt hier 
einige Threads zu.
Wichtig ist auch, dass die Pakete regelmässig "reinknattern", sonst 
schmeisst der hostseitige Stack einiges weg, dabei sollte aber 
wenigstens ab und an eins ankommen, das wird's also kaum sein.
Jetz ist mir aber grade aufgefallen: Deine deadbeef-MAC ist eine 
Ethernet-Gruppenadresse! Nimm mal eine andere (erstes Byte mal auf 0x00 
setzen).
Irgendwie erschliesst sich mir Dein Setup nicht ganz. Du hast dieses
"Arty FPGA" Board mit einem Ethernet Kabel in Deinem Netzwerk ?
Das Board hat eine fixe IP-Adresse, die in Dein Netzwerk passt ?
Das Board sendet auf welchem UDP Port ? 8011 und 8012 sehe ich im Dump.

Wenn Du die Daten auf dem PC im Whireshark siehst, ist das schon mal 
gut.
Was Du jetzt brauchst ist ein UDP Receiverscript/Programm, welches auf 
dem
entsprechenden UDP-Port lauscht. Ob Labview das kann weiss ich nicht.

Ich sende so meine Wetterdaten von den Sensoren über mein Heimnetzwerk
an ein Display und an zwei PC's.

G D
OP
Der Aufbau ist ganz einfach , Artyboard---Ethernet Kabel---PC , mehr 
nicht.
Die fixe IP-Adresse habe ich ganz einfach im Code des FPGAs frei 
eingetragen, kann aber geändert werden. Das Board sendet auf Port 8012.

Ja ... LabView , wenn man da iwie lauschen könnte .. ;( . Irgendwas 
passt dem Nicht ... ich habe auch das "UDP Send and Receive" in LabView 
getestet(unabhängig vom Board),das läuft.

Hatte den Port auch schon mal geändert, falls der eine besetzt sein 
sollte .. aber nix.
Angehängte Dateien:
Gast
Waldemar M. schrieb:
> ja das geht,
>
> Ich glaube meine Ethernet Implementierung von Hamsterworks unterstützt
> Protokolle wie ARP, IP, ICMP,  DHCP gar nicht... schickt nur stumpf UDP
>
> Muss wohl nach einem besseren IP core suchen :S

Hab mal kurz in den Link geschaut, in der Tat ist das eine "nackte" 
UDP-Engine. Für ARP/ICMP würde ich zu einer SW-Implementation raten, 
aber damit machst du natürlich das Soft-CPU-Fass auf und verlierst je 
nach Architektur Performance (vllt weniger relevant bei deiner 
Anwendung).
Du könntest aber auch ARP als simple state machine dazustricken. Musst 
nur ein paar Stolperfallen beachten und bösartige ARP-Requests 
maskieren.
Mit den ARP-Manipulationstricks von mfro oben sollten deine Pakete aber 
ansich auch so in deinem Labview-UDP-Server ankommen. Merkwürdig...
Gast
Strubi schrieb:
> Für ARP/ICMP würde ich zu einer SW-Implementation raten
Ich prinzipiell auch.
Möglicherweise lässt sich das hamster-Ding aber auch einfach in Hardware 
um ARP-reply und Ping(ICMP)-reply erweitern.
WIMRE schickt man da die empfangenen Pakte leicht modifiziert zurück.

Duke
OP
Nach langem hin und her Hab ichs doch hinbekommen, In LabView Daten zu 
empfangen.
Habe den gleichen Code ARYT EthernetTX von Hamsterworks genommen und den 
Ethernet-Frame nicht gekürtzt, darin lag mein Fehler, dass ich den zu 
klein gemacht habe und dann der Trailer/FCS abgeschnitten wurde??

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.