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.
Alexander Müllner schrieb: > ... den ich schon in einen anderen Beitrag beschrieben habe. Bitte einen Link zum Beitrag.
Der Link zum vorhin erwähnten Beitrag: Beitrag "ARM-Webserver auf uIP-Basis" Bei Fragen oder weiterer Interesse einfach fragen =)
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.
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.
Ich möchte nur kurz hinzufügen das der Code mit der IDE Keil µVision 4 erstellt worden ist.
Und weiters plane ich auch noch eine kleine Platine für den Webserver zu entwerfen worauf sich nur der µC und der ENC28J60+Buchse befinden. Weiters wird die fertige Platine dann noch Stifleisten besitzen, damit das ganze auch auf anderen Platinen oder am Steckbrett verwendbar ist.
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
Nimm einen Cortexm3 LM3S6965. Da ist Ethernet PHY + MAC schon drinnen. Du brauchst keinen weiteren Schip. Einfach den µC mit der Ethernetbuchse verbinden und fertig. :-)
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.
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 =)
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
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.