Hi, Mein Smart WebServer für das AVR-NET-IO Board ist endlich fertig. Als Grundlage habe ich den Code von dem uWebSrv genommen. Der neue Server kann jetzt DHCP, die Netzwerk Einstellungen kannman über die serielle Schnittstelle konfigurieren. Das web Interface ist komplett überarbeitet worden, man kann komplexe regeln erstellen um die Ausgänge zu steuern, es gibt ein Support für ein LCD man kann nicht nur statischen text sondern auch die port Zustände ausgeben, mit 2 Buttons zwischen den einzelnen LCD Inhalten (seiten) umschalten und auch pro Seite einen der Output Ports umschalten, ... PS: Wobei ich etwas Hilfe bräuchte wäre das ganze zu optimieren, momentan passt es nur auf einen Atmega 644 und nicht auf den standardmäßig verbauten Atmega 32, wen sich das wer anschauen würde der das kann, wäre ich echt dankbar ;) Viel Spass damit Trax
Hi, leider fehlt in den Paket 'Hardware/Gpio.c' es läßt sich erstmal nicht kompilieren..... Gruß Harry
Also bei mir gehts ohne, wird auch nirgends benutzt, könnte daran liegen das ich eclypse benutze ich denke das macht immer ein neues eigenes makefile.
Schon weit über 50 downloads, wie wäre es mit etwas feadback zu den funktionen usw?
Update: Telnet Server eingebaut. RAM bedarf etwas reduziert. Seiten aufbau stark beschleunigt. das aktuellste makefile von eclypse beigelegt und das aktuellste fertige *.hex File Bitte um viel Feedback ;)
Wie hast du die Fuses beim mega644 gesetzt? Ich habe deine erste Version ausprobiert, musste mir aber für WinAVR ein Makefile basteln. Ergebnis: serielle Schnittstelle bleibt stumm, der Router hat aber eine IP-Adresse zugewiesen. Anpingen geht nicht, ein Webserver meldet sich auch nicht. Ein LCD hab ich nicht angeschlossen, auch keine Tasten. Wo müssen die Tasten eigentlich dran? Da du die R/W-Leitung vom LCD nicht verwendest, denke ich nicht, dass das fehlende LCD ein Problem ist. Na dann flashe ich mal die neue Version...
EESAVE = 0 BOOTSZ1=0 BOOTSZ0=0 BOOTRST=0 SPIEN=0 der rest =1 (unprogrammed) mir fällt grade ein das ich da noch diesen lan bootloader benutze, fals es bei dir nicht geht mach aud der main.c den watchdog raus, der müste eigentlich vom bootloader ausgemacht werden und dan das teil für par sec vom strom damit der aus geht. PS: Die tasten gehen an die B0 und b3 pins des ext steckers, das wird im web gui angezeigt und kan auch umbelegt werden, du kanst den LCD support auch aus machen und den pins des ext steckers beliebige andere funktionen zuweisen Input/output/PWM(letzteres nur 4 der pins )
Ich freue mich, dass meine Software Anklang auch in anderen Projekten findet. Bald bekommt der uWebSrv SD Karten u. FAT Unterstützung. Ich überlege für den uWebSrv (und ggf. Ableger davon) ein halböffentliches SVN anzulegen. In Sachen Feedback kann ich dir aber nicht helfen, ich besitze kein AVR Webserver von Pollin.
Hi, vorweg schonmal große Anerkennung für Deine Arbeit und die Portierung des MicroWebServers auf das Pollin NetIO Board! Ich habe den SmartWebServer auf mein NetIO Board geflashed. Die grüne (Link? LED) leuchtet und die gelbe (Traffic? LED) blinkt. Mit einem Terminalprogramm kann ich über die serielle Schnittstele mit dem Board reden, aber die Befehle zum konfigurieren durchschaue ich noch nicht so ganz. Ich bekomme zwar mit "Setup" eine Ausgabe, das der DHCP "On" ist aber die IP Adresse, Netzmaske und das Gateway sind nicht richtig. (7.255.255.255 ; 255.255.255.255 ; 255.255.255.255) Auch ein "DHCP Renew" brachte keine Veränderung. Eine kurze Übersicht über die Befehle (Was wird wie und mit welchen Parametern konfiguriert) wäre toll. Ich habe auch schon die Shell.c durchgesehen, werde aber nicht ganz schlau daraus und ob ich alles richtig mache... An dem Switch, an dem das NetIO hängt sind noch andere Rechner, die die IP-Adresse korrekt zugewiesen bekommen. Viele Grüße
Hallo, sieht das sehr schoen aus, jetzt potriere ich dieses Projekt nach main Bastelboard mit MEGA128. Muss ich nur makefile ueberschreiben (fuer WinAVR). uWebServer lauft jetzt mit MEGA16, aber 98% Speicher... Spaeter schreibe ich Erfahrungen. PS: Entschulsige ob ich etwas schlecht deutsch schreibe, ich bin Aulslaender (Tschechien)
@Gast Der befehl Setup zeigt die die Voreinstellungen an, also die IP/NM/GW die da wäre wen DHCP aus wäre, ein fallback zu den wen das DHCP nicht geht muss noch rein, um sich die aktuellen Netzwerk Einstellungen anzeigen zu lassen gibt es den befehl "Config", Für das Netzwerk gibts folgende commands SetIP=a.b.c.d setzt die IP SetNM=a.b.c.d setzt dte netwerk maske SetGW=a.b.c.d setzt das lokale gateway/router DHCP=On DHCP=Off DHCP=Renew das "=" zeichen kannman auch mit " "(space) ersätzen, beides ist gültig da ich die selbe funktion für fas parsen der Post parameter vom webserver benutze da sind es halt immer "=" Du kanst also über das shell alles was über das web gui geht, außer die die regeln auflisten zu lassen, also es ist etwas unübersichtlich das zu benutzen. PS: die portierung auf das NetIO-Board hat wer anderer gemacht die portierten src habe ich hier: http://www.mikrocontroller.net/articles/AVR_Net-IO_Bausatz_von_Pollin gefunden, mein Beitrag ist nur das neue WebGui, und die telnet und dhcp Funktionalität die beiden letztern basieren aber auf sample gode des uIP stacks basiert. @Simon K. Ich habe ein kleines Problem und zwar wen ich die Netzwerk Sachen in der main schleife 10man/Sec ausführe, bekomme ich nen relativ langsamen seiten aufbau, bit 100mal/Sec gehts ganz flott aber es gibt viele retransmitts, (ein wert zwischen 10 und 100 würde das wohl beheben, aber unschön) weist Du vielleicht ob man den uIP stack irgendwie anweisen kann länger auf die acks zu warten ohne das man seine sende speed heruntersetzt? LG Trax
Hallo @Trax Vielen Dank für die Infos. Mit einer manuell zugewiesenen IP-Adresse klappt es! DHCP geht noch immer nicht, jetzt bekomme ich immer 0.0.0.0 0.0.0.0 0.0.0.0 mit "Config" angezeigt. Vielleich noch ein Problem mit der MAC-Adresse und der Fritz-Box. Aber das werde ich mal ergründen, irgendwie wird das machbar sein. Durch die Einstellungen und die Portfunktionen muss ich mich noch durcharbeiten, aber auf den ersten Blick solltest Du Control Panel mit einem "l" und einem "n" schreiben ;). Viele Grüße
Ich habe die erste Version jetzt auch zum laufen gebracht. Hatte die Fuse CLKDIV8 gesetzt. DHCP schien mit gesetzter Fuse zu gehen, jedenfalls fand sich die MAC in der Liste der bekannten Geräte meiner Fritzbox. Jetzt geht es nicht, alles auf 255. Manuell konfigurieren geht. Irgendwie habe ich den Eindruck, dass die Platine die Fritzbox zum abstürzen bringt! Während ich experimentiert habe hat die Kiste immer wieder Neustarts gemacht. Nachdem ich das Board wieder abgeklemmt habe, läuft sie wieder ungestört... Von der zweiten Version habe ich nur das mitgelieferte Hex-File geflasht, Konsole geht, allerdings kommt keine Hilfe mehr. DHCP geht nicht, und per Netzwerk war die Platine auch nach manueller Konfiguration nicht zu erreichen. Werde es mal selbst übersetzen.
Trax Xavier wrote: > @Simon K. > Ich habe ein kleines Problem und zwar wen ich die Netzwerk Sachen in der > main schleife 10man/Sec ausführe, bekomme ich nen relativ langsamen > seiten aufbau, bit 100mal/Sec gehts ganz flott aber es gibt viele > retransmitts, (ein wert zwischen 10 und 100 würde das wohl beheben, aber > unschön) weist Du vielleicht ob man den uIP stack irgendwie anweisen > kann länger auf die acks zu warten ohne das man seine sende speed > heruntersetzt? Über welchen uIP Aufruf redest du? Der, der für die Retransmissions verantwortlich ist, oder der ganz normale, der eingehende Pakete bearbeitet? Du hast wahrscheinlich von ersterem die Aufruffrequenz um 10 erhöht, das bedeutet, dass er 10 mal so schnell Retransmissions schickt, weil der Stack im Prinzip eine Retransmission schickt, wenn nach x Aufrufen der Retransmission Funktion kein ACK angekommen ist. Das kann man in der uip_conf.h ändern, irgendwas mit "RETRANSMISSION" und "TCP" halt. *Aber*: Die von dir beobachtete Geschwindigkeitssteigerung ist GENAU deswegen (wegen den Retransmissions). Der Delayed Ack Algorithmus vom Windows Stack wird bei zwei hintereinander hereinkommenden noch-nicht-bestätigten Paketen übergangen und es wird sofort ein ACK vom Windows Stack herausgeschickt. Also würde das genau nichts bringen, leider.
ich meine das hier
1 | int i = UIP_CONNS; |
2 | while (i) |
3 | {
|
4 | i--; |
5 | uip_periodic(i); |
6 | if (uip_len> 0) |
7 | {
|
8 | uip_arp_out(); |
9 | Enc28j60CopyPacket(uip_buf, uip_len); |
10 | Enc28j60Send(); |
11 | }
|
12 | }
|
Trax Xavier wrote: > ich meine das hier > ... Ja genau. Die Stelle sorgt einzig und allein für Retransmissions, mehr nicht. Und die Geschwindigkeitssteigerung ist aus obigem Grund beobachtet worden.
Schade, werde es dann bei den 10mal/sec belassen, irgendwie anderst den speed erhöhen geht nicht, oder doch?
Es gibt noch ein Throughput Boost Hack von dem uip Autor. Ich werde mal sehen wie ich das in die nächste Version von uWebSrv reinbekomme.
Update, habe einpaar fehler behoben. @Simon K. Dieser hack benötigt die uip-split.c aber was soll die funktion uip_split_output aufrufen? zudem wird da die funktion tcpip_output benutzt die ich nirgens sonst bei uip finden konnte :/
Trax Xavier wrote: > Update, habe einpaar fehler behoben. > > @Simon K. > Dieser hack benötigt die uip-split.c > aber was soll die funktion uip_split_output aufrufen? > zudem wird da die funktion tcpip_output benutzt die ich nirgens sonst > bei uip finden konnte :/ Hab letztens auch mal lose drübergeschaut und mich auch gewundert. Kann dir aber im Moment (noch) nicht helfen. Da werde ich mich schätzungsweise nächste oder übernächste Woche mit beschäftigen.
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.