Forum: Compiler & IDEs Webserver auf Mikrocontroller implementieren


von Peter S. (stutzpeter)


Lesenswert?

Hallo,

ich soll im Rahmen einer Masterarbeit einen Webserver auf einen 
Mikrocontroller implementieren. Das Problem dabei, die Hardware 
existiert bereits, u.a. wird ein TC1796-Mikrocontroller von Infineon 
verwendet.

Hat jemand bereits Erfahrung diesbezüglich gemacht? Für mich stellt sich 
die Frage ob dieser Mikrocontroller überhaupt für die 
Webserver-Anwendung geeignet ist.

Grüße
Peter

von (prx) A. K. (prx)


Lesenswert?

Peter Stutz schrieb:
> ob dieser Mikrocontroller überhaupt für die
> Webserver-Anwendung geeignet ist

Es gibt einfache Webserver auf einfachen 8-Bittern wie dem ATmega32 (+ 
ENC28J60). Beantwortet das deine Frage?

von Peter S. (stutzpeter)


Lesenswert?

Ja, vielen Dank.

Darüber hinaus: es gibt doch mit Sicherheit Webserver, die sich für 
solch eine Verwendung besonders gut eignen. Kann mir da jemand einen 
empfehlen?

Grüße

von radiostar (Gast)


Lesenswert?

Ich nehme an, es soll ein http-Server werden? Dann wäre lighttpd 
vielleicht was.

von Peter S. (stutzpeter)


Lesenswert?

Also kurz zum Ziel der Arbeit:

Die Platine befindet sich in einem Messgerät für Fahrzeuge. Dort soll 
der Webserver laufen. Über einen PC im Büro soll der Webserver dann per 
Browser aufgerufen und das Gerät über Webseiten, die auf der Platine 
gespeichert sind, parametriert werden.

von Frank K. (fchk)


Lesenswert?

Und wie läuft die Verbindung zwischen Büro-PC und Fahrzeug? Kabel? WLAN? 
GSM?

Es gibt GSM/UMTS-Module, die bereits eine erhebliche Eigenintelligenz 
haben, wie das hier, das auch noch automotive-zertifiziert ist. Das 
Modul hat einen eigenen TCP-STack und kann FTP und SMTP.

http://www.telit.com/en/products.php?p_id=3&p_ac=show&p=90

Nur: Über Mobilfunk sitzt Du hinter einem NAT-Gateway, d.h. Du kannst 
ins Internet, aber aus dem Internet kann niemand eine Verbindung zu Dir 
aufbauen. Das wars dann mit Webserver.

fchk

von Peter S. (stutzpeter)


Lesenswert?

Die Verbindung erfolgt erstmal über LAN...Wenn's später funktioniert und 
noch genügend Zeit bleibt, könnte man auf WLAN umsteigen. Aber erstmal 
ohne WLAN-Kabel ;)

von Εrnst B. (ernst)


Lesenswert?

Peter Stutz schrieb:
> Die Platine befindet sich in einem Messgerät für Fahrzeuge. Dort soll
> der Webserver laufen.

Und, ist der "Rest" der Software schon fertig? auf welcher Basis? Läuft 
auf dem µC ein "Betriebssystem", (µC)Linux, VX, ...? Oder alles 
selbstgecoded am Blanken µC? Oder ist noch garnichts da?

Antworten wären dann: Nimm den mitgelieferten Webserver, schau dir µIP 
&Co an, wähle ein Betriebsystem & goto 1.

von Peter S. (stutzpeter)


Lesenswert?

Εrnst B✶ schrieb:
> Peter Stutz schrieb:
>> Die Platine befindet sich in einem Messgerät für Fahrzeuge. Dort soll
>> der Webserver laufen.
>
> Und, ist der "Rest" der Software schon fertig? auf welcher Basis? Läuft
> auf dem µC ein "Betriebssystem", (µC)Linux, VX, ...? Oder alles
> selbstgecoded am Blanken µC? Oder ist noch garnichts da?
>
> Antworten wären dann: Nimm den mitgelieferten Webserver, schau dir µIP
> &Co an, wähle ein Betriebsystem & goto 1.

Die Software ist bereits fertig. Das Gerät befindet sich schon im 
Einsatz, allerdings erfolgte die Parametrierung der Daten bislang nicht 
über LAN.

Das Betriebssystem heißt PXROS

von Εrnst B. (ernst)


Lesenswert?

Peter Stutz schrieb:
> Das Betriebssystem heißt PXROS

Das wäre die wichtigste Info am Thread-Start gewesen... Was nützen dir 
sämtliche Tipps zu mini-Webservern, wenn diese nicht auf deinem OS 
einsetzbar sind.

Sorry, PXROS kenne ich nicht. Google meint aber, dass es dafür TCP gibt 
("PXtcp"), das ist schonmal die halbe Miete.

http://d.pcnews.at/ins/pcn/070/009000/main.htm

von Oliver (Gast)


Lesenswert?

Peter Stutz schrieb:
> Das Betriebssystem heißt PXROS

10 Sekunden googlen fördert die Doku dazu zu Tage, weitere 2 Sekunden 
suchen da drin dann diesen Satz:


>4.2.1 TCP/IP stack
>PXtcp implements a TCP/IP stack. An appropriate ethernet driver is required in 
>order
>to be able to use PXtcp.

Das ist dann schon die halbe Miete. Der Rest ist Kinderkram...

Wenn das eine MASTER-Arbeit sein soll, wird es Zeit, den Ansprüchen 
daran gerecht zu werden.

Oliver

von Εrnst B. (ernst)


Lesenswert?

Oliver schrieb:
> Wenn das eine MASTER-Arbeit sein soll, wird es Zeit, den Ansprüchen
> daran gerecht zu werden.

Auf die Gefahr hin, jetzt einen Flamewar loszutreten:
Die oben verlinkte Seite stammt aus einer Matura-Arbeit von 2000.

D.H. vor 13 Jahren war sowas noch Abitur-Niveau in Österreich, 
heutzutage reichts für ne Master-Arbeit?

von Peter S. (stutzpeter)


Lesenswert?

Das klingt schon mal sehr beruhigend. Vielen Dank an alle für die Mühe 
:)

von Karl H. (kbuchegg)


Lesenswert?

Die wichtigste Frage ist doch: Was muss der Web-Server alles an 
Standard-Sachen können?
In seiner einfachsten Form ist ein Web-Server nichts anderes als ein 
Server, der auf Anfrage eine Datei zum Browser schickt. Das diese Datei 
HTML enthält und dass dies für den Browser eine spezielle Bedeutung hat, 
interessiert den Einfachst-Server erst mal überhaupt nicht.
Allerdings sind die Dinge meist nicht ganz so einfach. Gerade bei der 
Anbindung an bestimmte Situationen, fliessen diese in die Operation des 
Web-Servers mit ein, so dass es meist sowieso unumgänglich ist, da 
irgendwelche Anpassungen am Code vom Web-Server vorzunehmen. Es sei 
denn, man kann das ganze soweit treiben und hat auch die Resourcen um 
beispielsweise ein PHP auf dem Server-Rechner laufen zu lassen, so dass 
man diese Anbindung anstelle von im Server-Code in einer 
Programmiersprache schreiben kann, die in das zu verschickende HTML 
eingreift (und natürlich in der umgekehrten Richtung genauso). CGI ist 
da ebenfalls ein Stichwort dazu.
Allerdings ist zb ein PHP auf einem kleinen Rechner, wie es zb ein 
AVR-Mega darstellt, schon weit jenseits dessen, was der schaffen kann. 
D.h. Hier wird der C-Code des Servers direkt angepasst.
Mit deinem PXROS musst du dann eben zusehen, was da noch geht. Aber 
einfach so einen Web-Server von der Stange -- wenn du keinen für PXROS 
in Source Code Form findest, dann wirst du dir da eben selbst was 
überlegen und ausprogrammieren müssen.

von Wusel D. (stefanfrings_de)


Lesenswert?

Der HTTP 1.0 Standard ist im Dokument RFC2616 beschrieben. Da steht auch 
klar drin, welche Teile Optional sind und welce Pflicht sind.

http://www.w3.org/Protocols/rfc2616/rfc2616.html

Aktuell ist allerdings der HTTP 1.1 Standard. Da alle Browser jedoch 
Abwärtskompatibel sind, würde ich erstmal die Version 1.0 implementieren 
und dann später gff. die neuen Features hinzufügen. Für eine 
Konfigurations-Interface sehe ich im HTTP 1.1 allerdings keine Sachen, 
die es Wert wären, dafür Zeit zu investieren.

Weiterhin findest Du ein Einführung in die Programmierung von HTTP 
Servern auf Mikrocontrollern in meinem Buch Band 2: 
http://stefanfrings.de/mikrocontroller_buch/index.html

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
Noch kein Account? Hier anmelden.