Hallo, ich möchte für einen 32Bit Mikrocontroller den LwIp Stack benutzen. Für meine Applikation benötige ich den Zugriff auf Layer-2. Mir reicht nicht nur eine UDP bzw. TCP/IP Kommunikation sondern ich möchte direkt auf Layer-2 Telegramm versenden und empfangen können. Dazu müsste ich eventuell den LwIp Stack aufbohren. Bin mir aber hierbei nicht ganz sicher. Was müsste ich tun? Hat hier eventuell jemand sowas mit dem LwIp Stack für einen Mikrocontroller realisiert?
Müsste ich diesen Beitrag eventuell in einer anderen Rubrik reinstellen?
zoro schrieb: > Müsste ich diesen Beitrag eventuell in einer anderen Rubrik reinstellen? Gute Frage, passt irgendwie überall und nirgendwo ;) Also ich persönlich habe noch nicht mit dem lwip-stack gearbeitet, andere allerdings schon -> suche "lwip" = 69 Threads gefunden. Wenn ich mir die feat. Liste so anschaue, kann man eigentlich nicht mehr von "lightwight" sprechen :) , der Stack deckt ja fast alle üblichen Protokolle auf div. Ebenen ab ;) Allerdings gibs die Raw / native API, ggf kannste damit ja Layer 2 Pakete erzeugen wie sie gerne hättest. Ansonsten würd ich mir die ARP Implementierung mal anschauen, die is ja auf Layer2, ggf kannste daraus Dinge für deine Applikation ableiten. http://lwip.wikia.com/wiki/Raw/native_API http://lwip.wikia.com/wiki/ARP
Von dem "uIP" Stack hab ich auch mal beiläufig was gehört. Kann man mit diesem Stack auch UDP sowie TCP/IP und auch Ethernet Frames versenden/empfangen?
Nackte Ethernet-Frames kann man auch ganz ohne TCP/IP-Stack verarbeiten.
Hallo A. K., ja das ist mir klar. Aber ich benötige den TCP/IP-Stack für andere Dinge. Trotzdem müsste es doch möglich sein mit Hilfe dem TCP/IP-Stack Ethernet Frames zu versenden und zu empfangen.
Ich hab im Sourcecode von LwIP eine Headerdatei gefunden. Mit dieser müsste es wahrscheinlich möglich sein ein Ethernet frame zu versenden.
Mit uIP geht es, denn der Empfang von Ethernet-Frames wird in der eigenen Mainloop geprüft und an uIP delegiert. Man kann dort also den besonderen non-IP Frame erkennen und separat handhaben. Senden ist ohnehin kein Problem.
Siehe "doc/example-mainloop-with-arp.c" im offiziellen Quellcode. Die dortigen Behandlung von ARP ist ein Beispiel für einen non-IP-Frame. Senden kann man an beliebiger Stelle ausserhalb von Interrupts, sofern der Puffer im Controller noch Platz hat.
Sag mal zoro befasst du dich ernsthaft mit der Materie? Das du nicht als erstes die (den Projekten beiliegenden) Doku dir anschaust sowie die Codebeispiele, lässt da irgendwie Zweifel aufkommen ... Ich hoffe dir ist klar, dass Netzwerkprogrammierung an sich schon eine komplexe Aufgabe ist, mehr noch auf einem uC. Ich hoffe du bist fit in C und dem TCP/IP Schichtenmodell / Protokollen, sonst wird ne frustrierende Angelegenheit ...
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.