Forum: Mikrocontroller und Digitale Elektronik uIP stack server client beispiel


von noob (Gast)


Lesenswert?

Hallo Leute,
ich möchte gerne ein netzwerk bauen womit ich vom PC aus mehrere uC 
ansteuern kann. Dazu dachte ich das ich den PC als server benutze und 
die uC als clients die auf befehle reagieren oder auch in bestimmten 
intervallen messwerte liefern. allerdings fehlt mir da der Ansatz. habt 
ihr vielleicht Links oder der gleichen was mir weiterehelfen könnte?

Vielen Dank!

von netzwerker (Gast)


Lesenswert?

...benutze doch einfach mal die Suchfunktion auf dieser Seite...

von noob (Gast)


Lesenswert?

ich hab schon gesucht, aber stoße meist nur auf webserver. was ich 
möchte ist ja genau der umgekehrte weg:
PC: server
uC: client

von Dennis S. (bzzzt)


Lesenswert?

Hmm, darf ich dir apps/webclient im uip-Tarball ans Herz legen? Dort ist 
fertiger Code für einen HTTP-Client, sollte dir einen Eindruck geben, 
was man für uIP braucht. Lass dich nicht von deren Protothreads 
verwirren.

von noob (Gast)


Lesenswert?

danke!
aber ich komme leider nicht ran. zumindest nicht hier:
http://www.sics.se/~adam/old-uip/

ist da auch ein beispiel für die PC seite enthalten?

von noob (Gast)


Lesenswert?

ich glaub der stack wird nicht mehr gewartet oder?
ist eigentlich der lwIP-stack oversized für mein vorhaben?

sorry aber ich bin leider sehr unerfahren was tcp/ip angeht

von Dennis S. (bzzzt)


Lesenswert?

http://www.sics.se/~adam/download/?f=uip-1.0.tar.gz geht doch. Darin 
enthalten: uip-1.0/apps/webclient/

Wenn ich mich recht entsinne, braucht lwIP mehr Ressourcen als uIP.
uIP ist auf 16-Bit-Maschinen optimiert, sieht man im Code sehr deutlich.
Auf einem ARM würde ich z.B. kein uIP mehr nehmen, auf meinen 
AVR-8-Bittern schon. Microchip hat auch einen TCP/IP-Stack, mangels 
Erfahrung kann ich dir dazu keine Details geben.

Es sind keine Beispiele für die PC-Seite im uIP-Tarball enthalten, weil 
es dort betriebssystemspezifische Schnittstellen gibt. Google liefert 
dir aber Tonnen an funktionierendem Code für Unix-Sockets, Winsock oder 
was auch immer du benutzt.

von noob (Gast)


Lesenswert?

warum würdest du uIP nicht auf einem ARM nehmen und was gibt es da für 
alternativen?

von noob (Gast)


Lesenswert?

ohh  und vielen dank für den Link!

von Dennis S. (bzzzt)


Lesenswert?

Weil uIP doch sehr umständlich zu benutzen ist, wie du vielleicht 
mitbekommen hast. Zumindest im Vergleich mit Unix-Sockets.
Allein die Art und Weise, wie man mit einer TCP-Verbindung umgeht und 
Daten empfängt/sendet, ist umständlich. Auch, dass man die unbestätigten 
Daten auf Nachfrage wieder generieren können muss (weil sie uIP für dich 
nicht puffert). Und weil uIP kein echtes Sliding Window unterstützt. 
Weil man das Delayed ACK des PCs nur mit Tricks umgehen kann (Details 
falls gewünscht).
Das ist halt alles so frickelig, weil uIP mit so wenig Ressourcen 
auskommt.
Und weil, wie gesagt, uIP auf 16- und nicht auf 32-Bit-Maschinen (die 
ganzen ARM-µC, z.B.) optimiert ist.


Aber tut mir leid, für ARM kann ich selbst dir nichts empfehlen.
Kann da vielleicht wer anderes was empfehlen? Nut/OS? lwIP?

von noob (Gast)


Lesenswert?

vielen Dank für die Antwort!

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
Noch kein Account? Hier anmelden.