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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren