Hallo Leute! Ich besitze ein FPGA-Board mit dem Virtex4-XC4VFX12-FPGA und habe schon ein paar VHDL-Designs erstellt. Nun möchte ich über das Netzwerk Daten schicken, ein Empfang ist nicht notwendig. Es geht nur darum, Daten möglichst schnell senden zu können. Dieses Board beinhaltet den BCM5461. Es handelt sich um einen Giga-Bit-Lan-Baustein, der aber reiner Tranceiver ist. Ich habe mir sagen lassen, um sich viel Arbeit zu sparen benötigt man eine MAC-Einheit, die angeblich für den ganzen Paketkram verantwortlich ist. Der FPGA beinhaltet hardwaremäßig diese Mac-Einheit und ich habe mir diese freischalten lassen. Ich kann sie aber nur für ein paar Monate verwenden, aber das sollte für erste Versuche reichen. Leider habe ich nicht die geringste Ahnung, wie ich diese ansteuern soll. Ich kann die Mac-Einheit zwar in mein VHDL-Design implementieren, aber ich weiß nicht wie ich die Pins tooglen muss, um da Daten reinzubekommen. Aber das sollte ein geringeres Problem sein. Das Hauptproblem ist, dass man entweder das TCP-IP oder UDP-Protokoll implementiert. Um das TCP-IP zu implementieren könnten Jahre verehen, habe ich mir sagen lassen. Das UDP soll recht einfach sein. Hat jemand so etwas schon einmal gemacht? Wozu ist die Mac-Einheit jetzt genau gut und wie kann man sie ansteuern? Es gibt zwar ein Datenblatt, aber ich werde nicht recht schlau daraus. Könnt ihr mir bitte weiterhelfen? Danke. Tschüss, Martin
Die MAC Einheit wie du sie nennst dürfte der Ethernetcontroller sein. Der nimmt Daten an und macht daraus die Ethernetpacket, die er dann an den PHY weitergibt. Schau mal unter: http://www.fpga4fun.com/ Da wird das ganz gut beschrieben und ich glaube wenn ich mich richtig entsinne, ist da auch etwas Logik um UDP Packete zu versenden. Auf der Seite opencores.org gibt es einen freien Ethernetcontroller, der geht aber nur bis 100Mbit/s. Aber vielleicht reicht dir das ja.
Hallo Martin, generell würde ich sagen, dass "nur Daten senden" eine schlechte Idee ist. Wenn Du etwas Erfahrung in Daten- übertragung hast, dann weisst Du, dass eine Rückmeldung vom Empfänger immer wichtig ist. Woher soll der Sender sonst wissen, ob die Daten korrekt angekommen sind oder ob er sie nochmal schicken soll ? Die MAC-Einheit ist vereinfacht gesagt die unterste Stufe beim Ethernet-Protokoll. Besorg Dir mal Literatur zum Ethernet, sonst wirst Du da nicht weiterkommen. Habe hier das ETHERNET Buch von O'Reilly, das hat mir geholfen. Es gibt ja ein Beispiel-Design mit diesem Loop-Back Pfad von RX zu TX. Schau Dir das mal an und versuch das Protokoll zum Senden daraus zu entnehmen. Sollte eigentlich kein Problem sein. Zuerst würde ich versuchen, mal ein blankes Ethernet-Paket zu schicken. Also Header, Daten, CRC, das sind max. 1500 Bytes. Auf'm PC den Traffic anschauen mit einem Ethernet-Sniffer, z.B. Ethereal. Vorher sind evt. noch einige Konfigurationen / Abfragen vom MAC bzw. PHY nötig. Es sollten doch genügend Datenblätter und App-Notes existieren. Wirst Dich durch die Dokus ackern müssen - schätze ich.
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.