Hallo zusammen, habe jetzt meine ersten Schritte in dem Themenbereich FPGAs gemacht. Will in meinem Projekt nun einen Microblaze programmieren (mit C), damit er Daten über das Netzwerk schicken kann. Dazu gibt es im EDK ja das Ethernet-Lite Interface, dass ich über den PLB angeschlossen habe. Dazu stehen mir dann bestimmt Treiber zur Verfügung, die mir das EDK erstellt. Habe da die Header xemaclite_i.h xemaclite_l.h und xemaclite.h gefunden. Damit müsste doch recht einfach eine Netzwerkkommunikation aufzustellen sein. Hat einer damit Erfahrung und kann mir gute Tips geben oder Literatur dazu empfehlen? Am besten hier mal ein kleines Codeexample posten, wie ich so ne Kommunikation realisieren kann. Kann man hier auch irgendwie geschickt polling betreiben oder geschieht die Kommunikation über Interrupts? Da ich selber noch Anfänger bin mit dem Thema, bitte um Nachsicht wenn die Fragen vllt zu trivial erscheinen :-)! Schon mal Danke vorab für jede Hilfe. Gruss ferro
Erster Tip: Nicht mit dem Schwersten anfangen. FPGAs sind ja schon komplex genung, aber dann auch noch MicroBlaze und Ethernet... Zweiter Tip: Such nach Beispielapplikationen für Ethernet Lite und versuche diese zu verstehen. Dann kannst Du sie für Deine Zwecke abwandeln. Duke
Danke mal für deine Tips. Hab nun inzwischen bisschen rumgeforscht. Hab entdeckt, dass man dazu einen Network Stack generieren muss (kann mir das jmd bestätigen?). Laut Xilinx Forum entweder lwIP oder ucLinux. Da ich nur über den xilkernel als OS verfüge, muss ich wohl lwIP verwenden, oder? Ist mein Gedankengang richtig? Hab dazu ein Beispielcode angeschaut. Kann man nicht einfach nur mit den Send oder Receive Methoden Pollen, und so irgendwie eine einfach Netzwerkkommunikation aufbauen? PS: Hab noch ne andere Frage: Wenn in der main-methode eines Programms, xilmain-methode aufgerufen wird, dann wird da die kontrolle an das OS übergeben. Wo wie geht es dann im Programm weiter, bzw. so startet man threads? gruss ferro
Hallo Ferro, ich will mich demnächst auch mit dem Thema 'Ethernet lite' bzw. tcp/ip beschäftigen. Im Moment habe ich für eine (einseitige) Datenübertragung (FPGA ==> PC) einen UDP-Stack gebaut (Das UDP-Protokoll ist sehr einfach und für große Datenmengen sehr gut geeignet, aber es gibt bei UDP keine Verbindungskontrolle). Auf PC-Seite ist das UDP-Protokoll mit dem WinSocket auch sehr gut zu handhaben. Ich möchte aber auch tcp/ip mit Verbindungskontolle bzw. httpd für eine WebServer-Anbindung ausprobieren. Ich habe schon mal geschaut, es gibt (wenn man kein Geld ausgeben will) entweder für das EDK ab 10.x (oder 9.x ? weiss jetzt nicht genau) den kostenlosen ethernet-lite . Alternativ gibt es auf opencores.org einen kostenlosen 10/100mbit Ethernet MAC (mit wishbone interface, Schnittstelle zu ethernet is MII). Ich habe auch schon mal einen Blick auf den Ethernet-lite geworfen, bin aber aus der Dokumentation bzw. den Header-Files nicht recht schlau geworfen. Falls Du etwas findest, wäre ich für Hinweise sehr dankbar. Als Plttform verwende ich das Spartan3E starter kit (mit 500er bzw. 1600er Spartan3E). Es gibt übrigens bei den Beispielen für das StarterKit mit dem 1600er ein Web-Demo. Falls Du interessiert bist, kann ich das mal auskramen. -Papa Schlumpf
Such mal nach ML403 auf der Xilinx Seite in den Beispielen ist ein einfacher Webserver mit dem Microblaze enthalten.
ja webserver is an sich sehr schön aber doch nur als bitfile vorhanden oder hat jemand vhdl und c code der dahintersteckt? gruß flo
ferro schrieb: > Hab nun inzwischen bisschen rumgeforscht. > Hab entdeckt, dass man dazu einen Network Stack generieren muss (kann > mir das jmd bestätigen?). Laut Xilinx Forum entweder lwIP oder ucLinux. uCLinux ist kein TCP/IP Stack sondern eine für Mikrocontroller optimierte Linuxdistribution, die ohne MMU auskommt. > Da ich nur über den xilkernel als OS verfüge, muss ich wohl lwIP > verwenden, oder? Es gibt auch noch andere Stacks, da der lwIP Stack aber im EDK mitgebracht wird, ist es naheliegend den zu benutzen. > Kann man nicht einfach nur mit den Send oder Receive Methoden Pollen, > und so irgendwie eine einfach Netzwerkkommunikation aufbauen? Willst du einfach nur Bits durch die Leitung jagen, dann kommst du ganz gut mit den vom EDK erstellten Treibern für den EthernetLite Core aus. Willst du aber den Funktionsumgang richtiger Netzwerkprotokolle nutzen, so kommst du an einem passenden Stack nicht vorbei. > PS: Hab noch ne andere Frage: Wenn in der main-methode eines Programms, > xilmain-methode aufgerufen wird, dann wird da die kontrolle an das OS > übergeben. Wo wie geht es dann im Programm weiter, bzw. so startet man > threads? In den Plattform Settings, im EDK oder SDK, kannst du einstellen, welcher Thread nach "xilmain" gestartet werden soll und ihm dort die Priorität "1" geben, denn wenn dein Programm richtig läuft, dann wird Code, der nach der xilmain steht, nicht gestartet. floGzmo schrieb: > ja webserver is an sich sehr schön aber doch nur als bitfile vorhanden > oder hat jemand vhdl und c code der dahintersteckt? Such mal auf der Xilinx Homepage nach "xapp1026". In dem PDF ist ein Link unter dem du dir das zu dieser Application Note gehörende Referenzdesign runterladen kannst. Dort sind auch die C-Files enthalten, u.a. auch für einen einfachen Webserver. Btw. ein Webserver in VHDL mag unter umständen möglich, aber wenig sinnvoll sein.
okay gefunden. dankeschön jetzt mus sich aber erstmal kucken ob das anstatt mit ml505 auch mit dem ml501 geht :/
floGzmo schrieb: > jetzt mus sich aber erstmal kucken ob das anstatt mit ml505 auch mit dem > ml501 geht :/ Ich hab das ganze auf nem ML410 laufen, wenn überhaupt, musst du da wenig anpassen. Das ML501 müsste ja mit nem Microblaze laufen, oder? Dann wird das auch klappen. Der Code ist für PPC 405, 440 und MB verwendbar. Kleine Anpassungen vorbehalten.
hi, bin grad auch dabei mir eine ethernetcommunikation aufzubauen. hab ein nettes board von trenz-electronic.de: te0320 partan-3A DSP FPGA 3400 kgates. leider hat es weder mac noch phy :(. kennt jemand eine erweiterungsplatine incl. microblaze referenz design? hab bis nur nur den PMod NIC gefunden. Leider gibt es dafür kein referenz design.
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.