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.
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
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.
Waldemar M. schrieb:> klar, hier bitte
Im Wireshark-Bild steht de:ad:be:ef:01:23 (DEAD BEEF) als Soruce MAC
Adresse. Das ist nicht gut. Wahrscheinlich wurde die MAC Addrese im FPGA
flasch eingestellt?
Board per Ethernet angeschlossen -> leider nicht im ARP angekommen,
danke für die Antworten :) bringt mich auf neue Ideen ~
@mimin icer, danke bereits geändert
Waldemar M. schrieb:> danke für die Antworten :) bringt mich auf neue Ideen ~
keine Ahnung, was Windows macht, wenn sein Gateway plötzlich nicht mehr
da ist. Wenn Du irgendwas anderes per Crosskabel ansteckst - geht das?
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
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...
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
Ja bin jetzt dabei den Microblaze Soft-processor zu verwenden ~
Ja.. dazustricken haha... ich habe vor 2 Wochen mit VHDL angefangen ^^
Aber so ein LAN Interface ohne Soft-processor wäre schon ne feine
Sache...
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??
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