Ethernet Pakete empfangen(MII)

OP #4949644
Lesenswert?
• ▲
▼
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:
OP #4949684
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
#4957869
Lesenswert?
• ▲
▼
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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.