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).
Danke für die Antwort :) Habe jetzt mal die MAC vom Board geändert, aber LV sagt nein ^^
Hat dein PC noch ein zweites Bein ins Netz oder wie ist das Ding angeschlossen? Zweite Ethernet-Karte?
Ne, ich muss immer umstöpseln wenn ich Daten vom Board haben will WLAN ist deaktiviert.
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
:
Bearbeitet durch User
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?
Versuch' mal (in einem cmd-Fenster):
1 | arp -s 192.168.100.83 00-ad-be-ef-01-00 |
und dann noch mal probieren. Vielleicht vorher ein
1 | arp -a |
und gucken, ob die MAC-Adresse vielleicht schon im ARP-Stack angekommen ist.
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: > jedoch über LabView bekomme ich keine Daten. Könnte Labview gfs einfach zu langsam sein, es anzunehmen?
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??
Vielleicht bist Du auch unter die minimale Ethernetframegröße von 64 Bytes gerutscht. Dann wirft der Netzwerkstack das Paket auch weg. Duke
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.