ARM-Webserver auf uIP-Basis

OP #2948352
Lesenswert?

Hier möchte ich meinen ARM-Webserver auf uIP-Basis hochladen und euch 
zur Verfügung stellen, den ich schon in einen anderen Beitrag 
beschrieben habe.

Es wird ein STM32F103RBT6 µC mit einem ENC28J60 als Ethernetchip 
verwendet, auf einem Board das ich selbst an meiner Schule gebaut habe.

Ich hoffe dennoch das euch der Sourcecode vielleicht bei einem eurer 
Projekte weiterhelfen kann.


LG

Alexander M.
Angehängte Dateien:
Persönliche Seite #2948987
Lesenswert?

Alexander Müllner schrieb:
> Hier möchte ich meinen ARM-Webserver auf uIP-Basis hochladen und euch
> zur Verfügung stellen, den ich schon in einen anderen Beitrag
> beschrieben habe.
>
> Es wird ein STM32F103RBT6 µC mit einem ENC28J60 als Ethernetchip
> verwendet, auf einem Board das ich selbst an meiner Schule gebaut habe.
>
> Ich hoffe dennoch das euch der Sourcecode vielleicht bei einem eurer
> Projekte weiterhelfen kann.

Warum hast du denn kein STM32F103 mit eingebautem Ethernet verwendet? 
Der ist vermutlich bugfreier als der ENC28J60.
Gast #2949255
Lesenswert?

Skeptiker:

Also der eigentliche Webserver ist komplett in C geschrieben, also 
sollte auch für deinen ARM7 funktionieren. Du musst nur die Peripherie 
(SPI zur ENC28J60,Timer,GPIO) von deinen µC anpassen, sonst sollte alles 
funktionieren.


Simon K.:

Ich habe den verwenden müssen, weil wir in unserer Schule ein selbst 
entwickeltes Mikrocontrollerboard verwenden und auf diesen der 
STM32F103RBT6 gelötet ist. Daher war ich gezwungen das Ganze mittels des 
ENC28J60 zu realisieren. Ich glabe aber auch das der STM32F103 kein 
integriertes Ethernet hat, erst ab den STM32F107 gibt es das.

Natürlich wäre es mit anderen µC einfacher, aber die Schule wollte 
natürlich das ich es mit dem gleichen mache den auch die anderen Schüler 
im Unterricht verwenden.
#2951273
Lesenswert?

Na ja, dann könntest Du vielleicht auch den 28J60 durch eine 424J600 
oder 624J600 ersetzen. Dann hättest Du 100 MBit, Crypto-Beschleunigung 
und die Möglichkeit der parallelen Anbindung zwecks Erhöhung der 
Transfergeschwindigkeit.

fchk

PS: Hier mal Zahlen von Microchip. Host ist ein PIC32MX360F512L mit 80 
MHz, der in etwa mit Deinem STM32 leistungsmäßig vergleichbar ist, die 
Werte geben den UDP-Durchsatz in kBytes/s an:

ENC28J60+SPI: 461
ENC624J600+SPI: 692
ENC624J600+Parallel 16 Bit: 2071

Zum Vergleich: PIC32MX795F512L mit internem Ethernet (ansonsten gleiche 
Rechenleistung): 8449
OP #2952450
Lesenswert?

Danke für die zahlreichen Tipps, aber wie schon erwähnt muss ich das auf 
unseren Schulboard programmieren und daher bin ich von meinen Lehrer 
gezwungen diese Kombination zu verwenden.

Und für meine Anwendungen reicht das auch alles aus =)

Ich hätte aber noch eine Frage und vlt. kann mir wer helfen.

Wenn ich mit Windows 7 als OS auf den Webserver zugreife braucht die 
Seite recht lange bis sie geladen ist, aber wenn ich das ganze mit 
Ubuntu mach geht das viel schneller.
Ich bin auch schon draufgekommen das es aufgrund des TCP delayed 
acknowledgment von Windows ist. Da ein ACK vom Windows Client ein Delay 
von 200ms hat und ich aber dieses Delay umgehen möchte.

Nun kann mir wer sagen wie ich das ganze am einfachsten anstelle?
Evt. kann mir jemand einen Sourcecode zukommen lassen.
OP #2955230
Lesenswert?

Ok hab das Problem mit dem TCP ACK Delay nun so gelöst das ich einfach 
die Funktion  enc28j60PacketSend(uip_len,uip_buf); im Hauptprogramm 
immer 2x aufrufe wenn ich ein Paket schicken will.
So sendet nun Windows auch sofort ein ACK und die Übertragung erfolgt 
schneller =)
Gast #3545438
Lesenswert?

Hi,
ich würde gerne Deine Software, mit meinem STM32F103 + enc28j60 nutzen, 
weil der Code gut Dokumentiert ist. Ich möchte einen Web-Server zum Spaß 
an der Freude aufbauen. Ich arbeite mit Coocox. Nun weiß ich leider 
nicht was ich mit den ganzen Dateien wie *.d *.o *.axf *.crf *.lnp *.map 
*.tra *.bax usw. anfangen soll (Hat bestimmt KEIL erzeugt). Ich habe in 
mein Coocox Projekt zu erst einmal nur die *.c und *.h Dateien 
eingepflegt. Das hab ohne Ende Fehlermeldungen (ist ja auch klar). Kann 
der Quellcode nicht nur auf .c und .h reduziert werden von Dir ?

Gruß Daniel44

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren