Hallo,
es gibt noch nicht viele Informationen:
Es handelt sich um ein Echtzeitsystem (rtos) auf einem Mikrocontroller.
Am besten wäre es wenn man ein GUI aufrufen kann wenn man sich mit dem
µC verbindet als Client. Wenn das rtos genug Ressourcen, wie
Arbeitsspeicher hat könnte das doch gehen oder ?
Wenn nicht, gibt es die Möglichkeit, dass das rtos nur rohdaten an einen
pc oder server sendet und der für das webinterface sorgt ?
Danke sehr !
fragso schrieb:> Hallo,>> es gibt noch nicht viele Informationen:> Es handelt sich um ein Echtzeitsystem (rtos) auf einem Mikrocontroller.> Am besten wäre es wenn man ein GUI aufrufen kann wenn man sich mit dem> µC verbindet als Client. Wenn das rtos genug Ressourcen, wie> Arbeitsspeicher hat könnte das doch gehen oder ?> Wenn nicht, gibt es die Möglichkeit, dass das rtos nur rohdaten an einen> pc oder server sendet und der für das webinterface sorgt ?>> Danke sehr !
Nennt sich Webserver.
Braucht in jedem Fall genug Platz (Flash) für die Seiten selbst
(HTML+CSS+JavaScript) und genug Ram um die bei einem Request
auszuliefern.
Man kann viel an Logik an den Client (PC) via JavaScript auslagern.
Datenaustausch dann z.B. via JSON. Wenn die Ressourcen reichen. Sonst
halt Binär.
Kann man denn den Speicher so erweitern, dass man z.B. ein Webinterface
von 100 Mb ( evtl. übertrieben.. je nachdem) speichern kann ?
Oder kann der µC das nicht so schnell verarbeiten ?
Irgendwie funktioniert das ja bei einem PC auch xD.
Danke
fragso schrieb:> Kann man denn den Speicher so erweitern, dass man z.B. ein Webinterface> von 100 Mb ( evtl. übertrieben.. je nachdem) speichern kann ?> Oder kann der µC das nicht so schnell verarbeiten ?
Kommt auf den ungenannten µC an. Es gibt µCs, die schaffen es gerade mal
so, irgendein Webinterface zusammenzustoppeln, und es gibt µCs, die
langweilen sich dabei und gucken im Hintergrund noch Netflix ...
Ich hab einen Webserver fuer einen Mega32 geschrieben. Ohne RTOS. Die
Seiten waren auf einem externen Flasch. Bedeutet man kommt mit sehr
wenig Resourcen durch.
Was soll der webserver denn koennen ? Du lieferst ja die Seiten.
Allenfalls kann man dem client Rechenleistung anhaengen, und nicht auf
dem Server rechnen lassen.
Rufus Τ. F. schrieb:> und es gibt µCs, die langweilen sich dabei und gucken im Hintergrund> noch Netflix ...
Ja, die haben auch ne KI und wissen was "Industrie 4.0" ist.
Kommt halt drauf an was man wirklich vor hat. Rufus, das liest sich gut!
Gruß
Beast
Hi danke für die Antworten !
Ist schonmal hilfreich!
Dann wäre die Frage:
Externer Flash Speicher: Flash Speicher könnte ja eine SD Karte sein.
Also wo liegt denn das Problem, wenn man mit einem µC eine SD Karte
verbindet die einen Webserver installiert hat ? Dauert der Zugriff zu
lange ?
Hier hat jmd. auch so ein ähnliches Thema
Beitrag "Externer Flash-Baustein - Grundlegende Fragen"
Computer, welche Web-GUI's einfach & komfortabel ausliefern können, gibt
es viele - vom R-PI bis zum PC. Die Frage ist, warum du das auf einem µC
brauchst, bzw. welcher Teil deiner Anwendung nach einem µC verlangt.
Wenn du nur ein paar Pins langsam schalten möchtest, wäre vielleicht ein
R-PI o.ä. geeignet - dort einen "richtigen" Webserver wie Apache zu
installieren ist sehr einfach, und Pins zu schalten ebenso.
Wenn du parallel zur Web-GUI eine richtige (hart-)echtzeitfähige
Steuerung brauchst, helfen vielleicht die Echtzeit-Erweiterungen für
Linux, oder ein Prozessor mit Echtzeit-Koprozessor wie Beaglebone, oder
einfach eine Kombination aus Linux-fähigem Prozessor/Computer mit
Mikrocontroller, verbunden über UART, USB, I²C, ...
Sag mal mehr zu deinen Anforderungen, damit man das besser einschätzen
kann.
fragso schrieb:> Also wo liegt denn das Problem, wenn man mit einem µC eine SD Karte> verbindet die einen Webserver installiert hat ?
Es ist relativ kompliziert.
fragso schrieb:> Dauert der Zugriff zu> lange ?
Nicht unbedingt, je nach Art der Ansteuerung. R-PI & Konsorten nutzen ja
auch SD-Karten. Für schnelle Zugriffe/Abläufe braucht es Caches und
Nebenläufigkeit, wofür es viel Speicher braucht, was am Besten auf
großen Prozessoren geht, wo wir wieder bei der Größenordnung des R-PI
sind. Vor allem wenn man mehrere Anfragen gleichzeitig verarbeiten
können möchte.
fragso schrieb:> Am besten wäre es wenn man ein GUI aufrufen kann wenn man sich mit dem> µC verbindet als Client.
Wenn der uC zu wenig Resourcen hat, kann man auch einfach ein LAN-Modul
dranpappen per UART oder I2C und dann dessen Webserver verwenden.
Beispielsweise mit den Modulen von AK-Nord geht das rel. einfach und es
gibt ein fertiges Beispiel um einen per I2C angeschlossenen
Temperatursensor auszulesen und den Messwert auf einer Webseite
anzuzeigen:
https://www.ak-nord.de/XT-Nano-SXL-56.html
Johnny B. schrieb:> Wenn der uC zu wenig Resourcen hat, kann man auch einfach ein LAN-Modul> dranpappen per UART oder I2C und dann dessen Webserver verwenden.
Wobei dann die Frage ist, warum man einen zu schwachen Mikrocontroller
nimmt, nur um dann einen stärkeren (welcher sich im LAN-Modul befindet)
extern anzubinden, den man dann auch nicht mehr frei programmieren kann.
Es gibt genug Mikrocontroller, welche genug Leistung für einen Webserver
haben und so ziemlich alles können, was ein ATmega kann. Das trifft z.B.
auf viele STM32 zu. Das Nucleo-767ZI-Board beispielsweise enthält einen
solchen Controller und die zugehörige Ethernet-Hardware, und 2MB Flash
direkt im Controller:
https://www.st.com/en/evaluation-tools/nucleo-f767zi.html
Das STM32F746 Discovery enthält ebenfalls Ethernet-Hardware,
microSD-Slot, 1+16 MByte Flash, 8 MByte RAM:
https://www.st.com/en/evaluation-tools/32f746gdiscovery.html
Das wäre genug Leistung für eine ordentliche Web-Oberfläche. Auf der
SD-Karte kann man auch noch mehr Daten ablegen. Mit z.B. FreeRTOS, lwIP
und FAT-Library kann man sich darauf dann einen Webserver bauen.
Auf einem R-PI oder Beaglebone o.ä. einen Webserver zu installieren
dürfte aber deutlich einfacher sein.
Proletikus schrieb:> Allenfalls genuegt es ja auch den Webserver per Serial anzubinden ? Ein> Ethernet ist nicht zwingend. Dann geht's auch mit einem Mega8, oder> Tiny.
Und wie ruft man das dann vom PC auf? Wo kommt TCP ins Spiel?
Eine eigene Frage?
Dieser Thread ist über 7 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.