Hallo Leute, ich hab mal so ein paar grundsätzliche Fragen.
Ich habe bei meiner Diplomarbeit die Aufgabe diverse, bzw. erst mal
eins, Mikrocontrollermodule mit einem PC über Ethernet kommunizieren zu
lassen. Soweit so gut. Es handelt sich dabei um einen ARM-Kern(LPC2378).
Der PC und das Modul sollen, um eine einfache Kommunikation zu
gewährleisten mit Hilfe von Webservices über Soap kommunizieren. Dadurch
ist gleichzeitig später auch eine dezentrale Steuerung des/der
Moduls/Module möglich.
Ich hoffe, das sich jemand hier evtl. mit Webservices auskennt. Ich habe
mich im Netz informiert und bis jetzt heraus gefunden, das irgendwie
immer Webserver benötigt werden. Was ich nicht ganz verstanden hab ist
ob beide Seiten einen Webserver zur Verfügung stellen müssen, wenn die
Kommunikation bidirektional laufen soll. Theoretisch könnte man doch
auch über ein Polling den TCP-Kanal abfragen.
So, da geht es schon weiter der Controller hat ein eingebautes
Ethernetinterface, heißt das dann ich brauche keinen TCP-Stack mehr?
Des Weiteren bräuchte ich noch nen Soap Parser, was wirklich
brauchbares(schlankes) hab ich da bis jetzt auch noch nicht gefunden.
Mit einem uLinux wäre das ganze wahrscheinlich einfacher zu handlen, da
wär auch der Webserver nicht problematisch. Nun zur Kernfrage, kann man
einen Webserver ohne Betriebssystem aufspielen? Ich meine nicht diese
Derivate, wo letztendlich schon einer integriert ist.
So, ich hoffe mal das war alles nicht zu verwirrend, n paar Sachen
verstehe ich selbst noch nicht so ganz, deswegen sieht das so nach
Brainstorm aus ;-).
Ich danke euch schon mal für eure Antworten, bis dann.
> heißt das dann ich brauche keinen TCP-Stack mehr?
Nein, der LPC2378 bietet keinen TCP-Stack in der Hardware. Der
Ethernetcontroller ist integriert, Treiber dafür muss man bereitstellen
(inkl. PHY-Ansteuerung) und darauf setzt dann ein TPC/IP Stack auf.
>Nun zur Kernfrage, kann man einen Webserver ohne Betriebssystem aufspielen?
Ja, Beispiele fuer einen einfachen http-Server ohne "Betriebsystem"
sollten in uIP vorhanden sein. Man muss dann halt regelmäßig auf neue
Päckchen prüfen. Bei Keil gibt es ein "Web-Server" Beispiel für deren
MCB2300-Board (für Realview Toolchain), habe mir das selbst noch nicht
richtig angeschaut und bin nicht sicher, ob Keil deren RTOS dafür nutzt,
aber einen Blick ist es sicher wert. Weiterhin gibt es von Olimex auf
Anfrage Beispielcodes für deren LPC2378-Board inkl. "Web-Server" ohne
(RT)OS (für IAR EWARM, nicht GNU). Von NXP gibt es kostenlos eine
spezielle LPC23xx/24xx-Version eines kommerziellen Stacks. Noch nicht
angeschaut aber ein http-Server Beispiel dürfte auch dabei sein. Bei
allen genannten: Lizenzen beachten, sind sehr unterschiedlich.
Portierung auf GNU arm-elf/arm-eabi Toolchain sollte nicht allzu
kompliziert sein.
Mit SOAP auf Microcontrollern habe ich mit bisher nicht beschäftigt aber
ein XML-Parser für wenig RAM dürfte zu finden sein.
Martin Thomas
(Thread wäre im uC/Elektronik-Forum besser aufgehoben)
Hi Martin, danke erst mal für die schnelle und hilfreiche Antwort. Ich
dachte im uc&Elektronikforum gehts eher um Hardware, naja, ist halt n
gemischtes Problem, kann ja evtl ein Mod verschieben...
Das mit den Treibern schockt mich ehrlich gesagt ein bischen, ich hatte
vermutet, gehofft, dass ich mir Treiberprogrammierung ersparen kann...
Naja, wir werden sehen, vielleicht hat sich ja schon mal jemand darüber
Gedanken gemacht. Zumindest hab ich wieder ein paar neue Suchstichworte
;-). Falls jemd. noch etwas einfällt immer raus damit.
MfG,
Hendi
P.S.: Ich glaub ich meld mich mal an, das war bestimmt nicht die letzte
Frage
Willkommen in der Welt der Mikrocontroller ;-)
Ich denke in Software ist das ganze flexibler. Jeder hat ja andere
Anforderungen. Und in Hardware wäre auch Entwicklungsaufwand und
Chipfläche notwendig gewesen, was die Controller ein wenig teurer
gemacht hätte. Und wenn man manchmal die Errataliste sieht, kann man
sich freuen, dass man da in Software arbeitet (man bekommt es
wahrscheinlich nicht besser hin, aber Änderungen können einfacher und
kostengünstiger Implementiert werden).
Das mit den Treibern ist aber auch nicht so schwer, es gibt ja wie
bereits erwähnt freie Stacks, die wohl recht gut sind. Du kannst das
Ganze dann ja um die Webservices erweitern. Da freuen sich bestimmt auch
andere.
Ich denke, man kann damit die Integration von Netzwerksensoren in
"normale" Webanwendungen erleichtern (Teperatur des Webservers, der
Küche, des Kellers,... zu Hause auf dem eigenen Server in Webseiten
einbauen) --> Webprogrammierer müssen sich dann nicht mehr um die
embeddedwelt kümmern (oder RS232, USB-Treiber,...).
Just my opinion.
Danke für die Begrüßung :-).
Ich bin nicht ganz neu, hab schon mit PIC zu tun gehabt, aber da hab ich
mir wohl grad mal die Grundlagen erarbeitet, jetzt wirds etwas
lustiger....
Ja, mit der Flexibilität hast du schon recht, hab auch festgestellt, das
die Bsp. bei Keil schon ziemlich gut sind, darauf kann man aufbauen.
Wenn es soweit ist kann ich ja dann die Peripherie mal hier beschreiben,
so dass andere auch was davon haben, hätte mich ja schließlich auch über
ne fertige Lsg. gefreut ;-).
So´ne richtige Webanwendung ist das nicht, im eigentlichen Sinne. Es
soll so laufen, dass ein Leitrechner mehrere Module ansprechen kann und
deren, recht atomare, Dienste für eine Produktionsstrecke nutzen kann.
Also unterschiedliche Module mit spezifischen Aufgaben werden je nach
Prozessanforderung hintereinander geschaltet (Stichwort: Service
orientierte Architektur). Das könnte man auch anders implementieren,
aber mit Hilfe von SOAP und den Webservices hat man einen offenen
Standard, der leicht erweiterbar ist, was später von Vorteil sein
könnte. Ich werd euch auf dem laufenden halten,
bis dann,
Hendi