Ethernet Pakete empfangen(MII)

OP #4949644
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
Angehängte Dateien:
Gast #4949662
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
OP #4949684
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 ;/
#4950255
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.
Gast #4950271
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.
Gast #4950294
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 -?)
OP #4954888
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 :)
Gast #4955333
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
OP #4957688
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
#4957869
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!

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.