Hallo Community, wie der Betreff schon sagt bräuchte ich Hilfe bei meinem Vorhaben einen Embedded Web-Server mit Hilfe eines einfachen Seriellen-Schnittstellenkabel an einen PC (Windows 7) zu verbinden. Verzeiht mir im Voraus sachliche und formale Fehler, korrigiert mich aber bitte! Grobe Übersicht: [Hardware[Web-Server]]-->[RS232]-->[PC[Explorer]] Genaueres zum Embedded Web-Server: Das Projekt befindet sich noch in der Anfangsphase. Auf Seiten der Embedded Hardware gibt es ja unzählige Hilfestellungen und Projekte im Netz. Da nur sehr sehr wenig Ressourcen (schätzungsweise 10k ROM, 1k RAM, vielleicht auch das doppelte) zur Verfügung stehen und die Anforderungen auch sehr gering sind, möchte ich jedoch keinen "komplett" fertigen Webserver verwenden. Folgende Idee möchte ich in den nächsten Tagen/Wochen/Monaten umsetzen: [HTTP-Server]+[TCP/IP Stack/Sockets]+[PPP, SLIP scheint ja nicht mehr verwendet zu werden] Nun zur eigentlichen Frage: Sollte der Netzzugang über PPP realisiert werden stellt sich für mich die Frage, mit welchen Aufwand ich meine HTML-Seite im Explorer des Rechners darstellen kann. Versucht habe ich schon einen Modem-Adapter mit entsprechend ausgewählten COM-Port und IP-Einstellungen (Versuch Rechner und µC in selben IP-Bereich zu bekommen) unter den Netzwerkeinstellungen zu erstellen. Bringt mir das überhaupt etwas? Habe auch schon einmal daran gedacht einen Daemon auf dem Rechner mit einzubringen. Leider zerstört dieser meine Vorstellung von "Kabel rein und einfach IP im Explorer eingeben" etwas (wobei diesen Adapter einzurichten ja auch nicht schneller geht). Hoffe ich konnte mein Anliegen rüber bringen. Offen wäre ich für Vorschläge jeglicher Art die mich auf einen Lösungsansatz bringen könnten. Die Struktur µC-->Seriell-->PC muss jedoch erhalten bleiben, es ist nicht möglich einen Wandler oder sonstiges einzusetzen. Mit Freundlichen Grüßen, Dux
Hmm, hoffe das Thema richtig eingeordnet zu haben.
Warum muss es seriell sein? Weil Deine Hardware sonst zu kompliziert wird? Nein! Oben siehst Du einen kompletten Webserver in einem einzigen Chip für 3.40€ netto mit Ethernet. Das kannst Du einfach an das vorhandene Netzwerk anklemmen, und gut ist. Ohne noch mühsam einen PPP-Zugang in Windows per Hand einzurichten. Denke mal drüber nach. fchk PS: Und wenn nicht Ethernet, dann wenigstens USB. Kaum ein neuer PC hat überhaupt noch eine serielle Schnittstelle. Über USB könntest Du zB einen RNDIS-Adapter implementieren, der beim Anstecken gleich ein neues Netzwerkinterface einrichtet. Da müsste der Benutzer auch weiter nichts machen. fchk
:
Bearbeitet durch User
Der Ansatz mit der seriellen Schnittstelle ist gut. Ich hab auch schon so ein Projekt durchgezogen. Am besten setzt man gleich beim http:// protokoll auf und vergisst den Rest. Also "GET...... ", "POST......" als ASCII Stream, das geht sehr gut.
>PS: Und wenn nicht Ethernet, dann wenigstens USB. Kaum ein neuer PC hat
überhaupt noch eine serielle Schnittstelle. Über USB könntest Du zB
einen RNDIS-Adapter implementieren, der beim Anstecken gleich ein neues
Netzwerkinterface einrichtet. Da müsste der Benutzer auch weiter nichts
machen.
Vergiss den USB Mist. Viel zu limitiert. Seriell wird bleiben. Dann eben
mit einem USB-to-Serial dazwischen.
> Nein! Oben siehst Du einen kompletten Webserver in einem einzigen > Chip für 3.40€ netto mit Ethernet. Das kannst du hier nicht bringen, denn auf dem Board ist ein PIC. Hier darfst Du nur Lösungen mit AVR oder ARM präsentieren, sonst schreien sofort alle los ...
Zac Hobson schrieb: > Vergiss den USB Mist. Viel zu limitiert. Seriell wird bleiben. Dann eben > mit einem USB-to-Serial dazwischen. Was limitiert Dich bei USB? fchk
Warum das alles ? Der Einsatz ist recht einfach zu erklären: Die vorhandene Hardware kann nicht erweitert werden ( liegt auch an der großen Anzahl). Zudem wird wie bereits vermutet ein seriell zu USB kabel verwendet, welchs dann einfach ein com port simuliert. Diese kabel sind vorhanden und werden bereits für andere Kommunikationen zum uC verwendet.
Zac Hobson schrieb: > Der Ansatz mit der seriellen Schnittstelle ist gut. Ich hab auch schon > so ein Projekt durchgezogen. Am besten setzt man gleich beim http:// > protokoll auf und vergisst den Rest. Also "GET...... ", "POST......" als > ASCII Stream, das geht sehr gut. Dh Http Protokoll, dann gleich über Schnittstelle raus und folglich ein Daemon auf dem Rechner?
Das http:// protokoll ist unmittelbar Serial tauglich. Auf dem PC benoetigt man dann einen Serial-zu-Socket konverter, oder prozess. Und auf dem Controller benoetigt man dann einen http Server, der die GET und POST anfragen beantwortet. Das schafft man in ein paar kilobyte Code. Die Seiten, resp die Antworten sind zu einem gewissen Teil statisch, zu einem Teil dynamisch. Man sollte sich im klaren sein, dass man nur eine minimalversion eines PHP Servers implementieren kann. Per Javascript kann man die benoetigte Rechenleistung auf den PC verlagern. Dh man uebertraegt Integerwerte eines ADC und macht die Skalierung per Javascript auf dem PC im Browser.
Zac Hobson schrieb: > Man sollte sich im klaren sein, dass man nur eine > minimalversion eines PHP Servers implementieren kann. Das hängt zwar vom Controller ab. Allerdings ist der auf dem µC laufende Web-Server sowieso eine derrtige Spezialversion, dass man auch ohne PHP auskommt. > Per Javascript > kann man die benoetigte Rechenleistung auf den PC verlagern. Dh man > uebertraegt Integerwerte eines ADC und macht die Skalierung per > Javascript auf dem PC im Browser. Die 3 Zeilen für die Skalierung kann der µC ruhig noch mitmachen. Die sind sicher nicht das große Problem.
Danke dir Zac Hobson, so werde ich das zunächst angehen. Bin weiterhin für Vorschläge offen, hab mal irgendwo gelesen, dass man unter Linux dem COM-Port einfach eine IP Adresse geben kann. Bei Win XP gibt es wohl auch Möglichkeiten in diese Richtung. Gruß Dux
>Habe auch schon einmal daran >gedacht einen Daemon auf dem Rechner mit einzubringen. Leider zerstört >dieser meine Vorstellung von "Kabel rein und einfach IP im Explorer >eingeben" etwas (wobei diesen Adapter einzurichten ja auch nicht >schneller geht). Woher soll der Explorer wissen an welchem COM Port deine Schaltung hängt? Woher soll der Daemon wissen an welchem COM Port deine Schaltung hängt? Plug and Play kriegt man das wohl kaum hin.
Irgend eine Sorte Interpreter sollte man trotzdem vorsehen. Man muss zB die Kommandozeilen Parameter GET.......?XXXX=jhhsd&YYYY=khkjhs& ....auswerten.
holger schrieb: > Woher soll der Explorer wissen an welchem COM Port deine > Schaltung hängt? Kann und soll er ja nicht wissen. Irgendwie müsste der COM Port dann halt eine IP haben, hat ja bei Modems früher auch funktioniert ( kennen mich da nicht aus) holger schrieb: > Woher soll der Daemon wissen an welchem COM Port deine > Schaltung hängt? Das werde ich mit einem socket Server dann hin bekommen.
Frank Schmid schrieb: > holger schrieb: >> Woher soll der Explorer wissen an welchem COM Port deine >> Schaltung hängt? > > Kann und soll er ja nicht wissen. Irgendwie müsste der COM Port dann > halt eine IP haben, hat ja bei Modems früher auch funktioniert ( kennen > mich da nicht aus) Ein COM Port hat keine IP Adresse. Eine serielle Schnittstelle ist etwas komplett anderes als eine Netzwerkanbindung. Was aber nicht heißt, dass es da nicht auch noch Möglichkeiten gibt. Im Prinzip kann man eine virtuell Netzwerkkarte installieren, die daher logischerweise eine IP Adresse hat, und die ihre Daten über die Serielle loswird bzw. empfängt. Gegenüber dem System tritt so ein Gebilde damit als Netzwerkgerät auf, gegenüber der Umwelt als Serielle Schnittstelle.
Karl Heinz schrieb: > Ein COM Port hat keine IP Adresse. > Eine serielle Schnittstelle ist etwas komplett anderes als eine > Netzwerkanbindung. Es wurde nichts anderes behauptet. Karl Heinz schrieb: > Was aber nicht heißt, dass es da nicht auch noch Möglichkeiten gibt. > Im Prinzip kann man eine virtuell Netzwerkkarte installieren, die daher > logischerweise eine IP Adresse hat, und die ihre Daten über die Serielle > loswird bzw. empfängt. Gegenüber dem System tritt so ein Gebilde damit > als Netzwerkgerät auf, gegenüber der Umwelt als Serielle Schnittstelle. Einen Modem Adapter ist ja im Prinzip nichts anderes. Praktisch habe ich auch schon einen erstellt, jedoch bezweifle ich dass ich ihn für meine Zwecke "missbrauchen kann". Zwar kennt der meine COM-Schnittstelle, PPP und auch IP4/6 Einstellungen, aber so eine "Wählverbindung" macht halt Dinge auf die ich Serverseitig nicht reagieren kann. (Vll ist der Wählvorgang aber auch egal)
>holger schrieb: >> Woher soll der Daemon wissen an welchem COM Port deine >> Schaltung hängt? Der Deamon testet die paar freien Comports und belegt den passenden. >Irgendwie müsste der COM Port dann halt eine IP haben, hat ja bei Modems früher auch funktioniert. Es ist die IP des Rechners, und den Port, den man ihm zuweist. Man kann ihm dann default zB 12345 geben, und das beim Broser auch einstellen : http://localhost:12345/index.html
Ohumpf da gab es einen Trick. Das server.exe von win2kpro hatte ich früher schon auf win95 zum laufen gebracht als Alternative zu trumpet winsock. Damit ließ sich "irgendwie" eine Anbindung weiterer Rechner über serielle Leitungen bewerkstelligen. Also ähnlich wie unter Unixen. Damit hatte das Haus dann 4 internetfähige Rechner an einem ISDN Steckkartenmodem. Alle Rechner haben sich auch untereinander gesehen und hatten eigene IP-Adressen. Auch wenn Microsoft http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/protocol_slip.mspx?mfr=true sagt, das ginge nicht. Das muß immer noch funktionieren.
Jeder Rechner hat sowieso eine eingen IP, sonst geht das Netzwerk gar nicht. Eben. Ich wuerde Slip sein lassen. Es gibt http-GET Anfragen an den emebedded Server, und die muss man beantworten, den Rest braucht man nicht. So einen Demon, der TCP/IP auf Serell wandelt ist nicht so schwierig, solange man beachtet eine Anfrage, resp eine Antwort pro IP Packet zu verwenden. Der Demon muss das Protokoll verstehen und warten bis die Meldung komplett ist.
"Oben siehst Du einen kompletten Webserver in einem einzigen Chip für 3.40€ netto mit Ethernet." Wo kann man diesen Webserver mit dem PIC18F67 bekommen?
Dieter schrieb: > "Oben siehst Du einen kompletten Webserver in einem einzigen > Chip für 3.40€ netto mit Ethernet." > > Wo kann man diesen Webserver mit dem PIC18F67 bekommen? Eigenbau. fchk
Frank K. schrieb: > Dieter schrieb: >> "Oben siehst Du einen kompletten Webserver in einem einzigen >> Chip für 3.40€ netto mit Ethernet." >> >> Wo kann man diesen Webserver mit dem PIC18F67 bekommen? > > Eigenbau. > > fchk Hast du das Design veröffentlicht und kannst einen Link posten?
Davis schrieb: >>> Wo kann man diesen Webserver mit dem PIC18F67 bekommen? > Hast du das Design veröffentlicht und kannst einen Link posten? Schau Dir entweder bei Microchip das hier an http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en028217 oder bei Olimex das hier https://www.olimex.com/Products/PIC/Proto/PIC-P67J60/ Da findest Du alle erforderlichen Infos. Die Demoboards haben natürlich noch weitere Peripherie, aber da kannst Du weglassen, was Du nicht brauchst. fchk
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.