mikrocontroller.net

Forum: Compiler & IDEs LwIP Stack: Zugriff auf Layer-2


Autor: zoro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: zoro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Müsste ich diesen Beitrag eventuell in einer anderen Rubrik reinstellen?

Autor: Robert F. (fastred)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für sowas ist uIP vielleicht besser geeignet.

Autor: zoro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nackte Ethernet-Frames kann man auch ganz ohne TCP/IP-Stack verarbeiten.

Autor: zoro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: zoro (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab im Sourcecode von LwIP eine Headerdatei gefunden.
Mit dieser müsste es wahrscheinlich möglich sein ein Ethernet frame zu 
versenden.

Autor: Robert F. (fastred)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiers aus und teile deine Erfahrungen ;)

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: zoro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi A. K., dank. Hast du eine kleine Beispielapplikation?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Robert F. (fastred)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.