Hallo, ich bins wieder mit meinem Arty Board :), mit dem Code von HamsterWorks(ArtyEthernetTX) bin ich in der Lage 100Mb/s Daten an den PC zu senden. (PC<->ArtyBoard direkt mit LAN-Kabel verbunden) Problem ist, dass kontinuierlich Daten am PC ankommen und ich gern vom PC aus , den Datenstrom ein- und auszuschalten würde. Dazu muss das Board in der Lage sein, Pakete zu empfangen mit den Ein/Ausschaltbefehlen(so meine Denkweise). Nun bin ich gerade dabei, den Code von hier: Beitrag "MII Synchronisierung, Ethernet" zum Laufen zu kriegen. Mit Labview broadcaste ich UDP Pakete, leider kommt nichts am Board an. Habe die Register "rx_data_o", "rx_dv_o" und auch das Signal vom PHY "phy_txd" auf Ausgänge geführt, sehe aber keine Daten. Hätte da einer eine Idee? Bin frisch auf dem Gebiet, wahrscheinlich übersehe ich etwas ganz banales :S
Waldemar M. schrieb: > Habe die Register "rx_data_o", "rx_dv_o" und auch das Signal vom PHY > "phy_txd" auf Ausgänge geführt, sehe aber keine Daten. Wie schaust Du Dir die Daten an? Mit einem Multimeter? Bist Du sicher, das die Daten gesendet werden? Blinkt die TX-LED am Host-PC? Duke
Duke Scarring schrieb: > Wie schaust Du Dir die Daten an? > Mit einem Multimeter? Achso sorry, mit einem Oszilloskop > Bist Du sicher, das die Daten gesendet werden? Ja, die Daten werden schon verschickt denke ich, konnte die Pakete nämlich selbst empfangen via UDP tester software ( paket an IP: 192.168.100.255 geschickt) > Blinkt die TX-LED am Host-PC? Nee , die LED blinkt nicht :( .. Stutzig macht mich, dass vom FPGA selbst ja keine IP oder MAC-Adresse mitgeteilt werden hmm .... vielleicht wird deshalb kein Paket an das Board geschickt ;/
:
Bearbeitet durch User
Du möchtest ein Ethernet-Paket verschicken, also muss es an eine MAC-Adresse adressiert werden. IP-Pakete werden aber an IP-Adressen verschickt. Entweder, du implementierst ARP im FPGA oder du musst vorher in der ARP-Tabelle des PC manuell die MAC-Adresse des FPGA einer IP zuweisen. Dann gehen Pakete an diese IP auch an den FPGA raus.
S. R. schrieb: > Entweder, du implementierst ARP im FPGA oder du musst vorher in der > ARP-Tabelle des PC manuell die MAC-Adresse des FPGA einer IP zuweisen. > Dann gehen Pakete an diese IP auch an den FPGA raus. MAC Broad/Multicast mit normalen Ethernet Paketen. Wenn du IP willst bist du eine Ebene höher, wenn du es wirklich brauchst musst es wohl mit ARP machen wie Sven schon geschrieben hat.
S. R. schrieb: > > oder du musst vorher in der > ARP-Tabelle des PC manuell die MAC-Adresse des FPGA einer IP zuweisen. > Dann gehen Pakete an diese IP auch an den FPGA raus. Windows 7: (admin Befehlszeile)
1 | arp -s 157.55.85.212 00-aa-00-63-c6-09 |
Linux: (als root)
1 | arp -s 157.55.85.212 00:aa:00:63:c6:09 |
Der Eintrag ist permanent bis zum reboot (weitere Optionen siehe arp -?)
Hallo nochmal, ich habe das mit dem Code erst mal auf Eis gelegt. Wenn ich den (UDP-Tx)Code von Hamsterworks im Projekt einbinde, kann ich merkwürdigerweise Pakete empfangen, die vom PC aus gebroadcastet werden. Sonst erhalte ich(allein mit dem verlinkten Code oben) keine Daten an den 4 Rx-Pins vom PHY. Da muss also wohl schon gewisse Kommunikation stattfinden, obwohl der Code von Hamsterworks keine Verarbeitung für das empfangen der Pakete hat.(bin noch ziemlich grün hinter den Ohren :)) Naja, letztendlich handhabe ich es so, dass ich die rohen Pakete empfange und wenn diese eine bestimmte Zeichenfolge beinhalten, schaltet ich den Datenstrom an/aus. Danke für die Antworten!, bringen immer neue Ideen :)
Waldemar M. schrieb: > kann ich > merkwürdigerweise Pakete empfangen, die vom PC aus gebroadcastet werden. Na klar, dann kennt ja der Host auch die MAC-Adresse und aktualisiert sein ARP-Tabelle... Nochmal: Für eine minimale UDP-Kommunikation muß man auf ARP-Request reagieren. Und zum Debuggen ist es hilfreich auch auf ICMP (PING)-Request zu antworten. Danach läuft auch UDP zufriedenstellend. Duke
Duke Scarring schrieb: > Na klar, dann kennt ja der Host auch die MAC-Adresse und aktualisiert > sein ARP-Tabelle... Leider steht die MAC-Adresse/IP-Adresse dort(arp Tabelle) nicht drin, nachdem das Board 'programmiert' und die 'Kommunikation' aufgebaut wurde. Das ist auch noch so ein Problem, da ich das board momentan nur mit Broadcasting erreichen kann
Waldemar M. schrieb: > Leider steht die MAC-Adresse/IP-Adresse dort(arp Tabelle) nicht drin, > nachdem das Board 'programmiert' und die 'Kommunikation' aufgebaut > wurde. Ein Broadcast geht an alle und wird nicht bestätigt. Logisch, dass dein Board nicht in der ARP-Tabelle auftaucht. Woher soll dein Computer denn wissen, dass es überhaupt existiert und zuhört? Es reagiert ja nicht auf ARP-Anfragen!
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.