Hallo und guten Abend. Kürzlich habe ich gesehen, dass der AT32UC3 eine Ethernet Hardware an Bord hat. Da kam mir die Idee, einen Webserver zu realisieren. Dann könnte ich per Webbrowser Ausgänge schalten. Hat das jemand schon mal gemacht? Kenn mich mit uC aus und auch allgemein mit Ethernet (IP, MAC, Subnetz,...), aber was dann alles auf den unteren Ebenen soll (TCP-IP Stack, ...) weiß ich nicht. Ideal wäre für mich ein Quellcode, welcher zumindest den Stack fix und fertig hat.. Habe schon das Webmodul von Ulrich Radig gesehen und auch FreeRTOS. Machen möchte ich alles mit der internen Hardware. Folglich fällt die Software von Ulrich Radig weg (bzw. kann ich dort nur teilweise etwas abschauen). Bei FreeRTOS blicke ich übehaupt nicht durch, was das ganze soll. Was brauche ich an Hardware? Übertrager? Grüße Aaron
Den AT32UC3 kenne ich nicht, aber guck dir mal uIP (sehr klein) oder lwIP (klein) an. Zumindest ersteres fand ich recht übersichtlich programmiert, wenn auch an die Anwendung ein paar ungewöhnliche Anforderungen (Retransmit) gestellt werden. FreeRTOS ist ein Echtzeitbetriebssystem. Wenn du nicht mehrere Tasks brauchst, kannst du darauf auch verzichten. An Hardware brauchst du MAC und PHY, wobei der MAC (selten auch PHY) im µC integriert ist.
Du brauchst neben dem AVR noch einen PHY Chip und einen dazu passenden Übertrager. Auf meiner Homepage findest Du einen Webserver, der auf uIP basiert. http://stefanfrings.de/avr_io/index.html Du musst im Grunde genommen nur den Ethernet Treiber (driver/CP2200.c) ersetzen. Dein Treiber muss nur wenige Dinge tun: - Den MAC (im AVR) initialisieren - Den PHY initialisieren - eine Prozedur kopiert Daten vom RAM in den Puffer des MAC - eine andere Prozedur kopiert Daten vom Puffer des MAC ins RAM Das Kopieren der Daten machst Du sinnvollerweise mit DMA. Meine Firmware macht das noch "zu Fuß" weil sie für einen kleineren Controller ohne DMA Features implementiert wurde. Falls Du Dich wunderst, dass uIP die beiden Prozeduren zum Senden und Empfangen scheinbar gar nicht aufruft: Die Aufrufe findest Du in der main.c. uIP selbst sendet und empfängt nämlich nicht, sondern es verarbeitet nur die empfangenen Daten und stellt welche zum Senden bereit. Die eigentliche Datenübertragung zwischen Ethernet-Puffer (RAM) und Ethernet Controller findet in der Hauptschleife des Programmes statt, also außerhalb der uIP Library.
Die aktuelle Version von uIP findest Du im Contiki Projekt. Für meinen Webserver habe ich sie an einigen Stellen gepatcht um Bugs zu beheben und DHCP hinzuzufügen
Aaron schrieb: > Hallo und guten Abend. > > Kürzlich habe ich gesehen, dass der AT32UC3 eine Ethernet Hardware an > Bord hat. Da kam mir die Idee, einen Webserver zu realisieren. Dann > könnte ich per Webbrowser Ausgänge schalten. > > Hat das jemand schon mal gemacht? Nicht mit dem AT32UC3. Der PIC18F67J60 ist die billigste und kleinstmöglichste Lösung für sowas. In einem TQFP64 ist alles drin, Prozessor, Ethernet MAC und Ethernet PHY (der ist normal nicht integriert, sondern ein extra 48- oder 64 pinniger Chip, auch bei Deinem AVR32). Du brauchst nur noch ein paar passive Bauteile und eine Ethernet-Buchse mit eingebautem Übertrager. Ansonsten ist das eine 1-Chip-Lösung. Die zugehörige Software gibt bei Microchip zum Download. Da ist alles drin, Webserver, DHCP-Client, DNS-Client, usw usw. fchk
Danke für die guten Tipps und Beschreibungen. Nun ist mir schon einiges klarer und ich denke, ich komme damit schon zurecht. Die Komplettlösung mit dem PIC gefällt mir sehr gut, obwohl ich lieber mit Atmels Prozessoren arbeite. Da habe ich bereits Programmer... Aber natürlich sind PIC Programmer kein Problem. Ich werde mir das noch einmal nachlesen, und wenn es mir dann doch nicht gefällt, werde ich wohl den Arduino Ethernet verwenden. Vielen Dank nochmal und noch schönen Abend Aaron
Kauf dir doch das PIC32 Ethernet Starter Kit. Damit brauchst du für den Anfang nicht gleich einen Programmer und du kannst damit auch debuggen. Die Software dazu ist die gleiche wie von Frank K. beschrieben.
Bei Chip45 kannst Du auch ein fertiges Ethernet Modul (mit AVR Xmega128) bekommen. Gib bei der Bestellung an, dass du einen Bootloader drauf haben willst, dann brauchst Du auch dort keinen ISP Programmer sondern nur ein USB Kabel.
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.