Me he encontrado con personas que crean servidores web utilizando microcontroladores, ¿por qué alguien haría eso? ¿Cuáles son sus aplicaciones? ¿Qué conjunto de habilidades además del lenguaje C se necesita para crear dichos servidores? Tengo mucha curiosidad acerca de estos pequeños servidores que tienen RAM tan pequeña.
microcontroller
embedded
quantum231
fuente
fuente
Respuestas:
He hecho esto en algunos productos. Hasta ahora, la razón ha sido permitir una configuración de campo simple. Cada vez que el producto ya necesitaba estar conectado a ethernet debido a su operación principal. Por lo tanto, el servidor web simplemente se agregó código en el microcontrolador.
La gran ventaja de un servidor HTTP es que no se requiere hardware o software especial para presentar una interfaz de usuario razonable al usuario final. Todos ya tienen un navegador web, por lo que esto no es una molestia para el cliente. Piensa en otras alternativas. Puede proporcionar un puerto RS-232, pero luego debe proporcionar una aplicación personalizada o explicarle a alguien cómo configurar un programa de terminal con la velocidad de transmisión correcta, bits de inicio, bits de parada y paridad. También debe suministrar un cable o esperar que el cliente tenga uno, y alguien tiene que ir a la unidad y conectarse físicamente a ella. USB no tiene el mismo problema de configuración, pero generalmente significaría un micro completamente separado en el producto y allí necesita un programa personalizado para ejecutarse en cualquier plataforma que el cliente pueda tener.
En cuanto a la RAM, eso no es un gran problema para un servidor HTTP. Una pila de protocolo TCP necesita algo de RAM, pero el servidor HTTP no realmente, excepto por los recursos adicionales que puede requerir de la pila de red. Un servidor web necesita principalmente espacio en la ROM, ya que la mayoría de cada página es constante, generalmente con unos pocos valores convertidos en texto e insertados sobre la marcha. Los servidores web para micros pequeños funcionan con sistemas de archivos ROM y secuencias de escape en esos archivos que hacen que se invoque el código de su aplicación para producir cadenas personalizables para su inserción en algunos lugares predefinidos.
Hasta ahora he usado un PIC 18 en todos estos casos. Mientras que menos de 4 kbytes de RAM es una limitación, todavía hay mucho que puedes hacer. El espacio ROM ni siquiera ha estado cerca de un problema. Mi pila de red para el PIC 18 (disponible en mi versión de Herramientas de desarrollo de PIC en www.embedinc.com/pic/dload.htm ) ocupa solo una pequeña fracción del espacio ROM de un 18F67J60, lo cual es una buena parte para tales cosas desde tiene un completo ethernet MAC / PHY incorporado. En un caso, tengo ese PIC como un servidor para 6 conexiones TCP simultáneas. Realmente no es tan pesado como parece pensar la gente.
fuente
Un contribuyente clave al reciente aumento de la popularidad de los servidores web en microcontroladores es el deseo de acceder a la información del sensor físico (temperatura, humedad, nivel de luz, presencia de monóxido de carbono, etc.) de forma remota, así como hacer que las cosas sucedan en el mundo físico (cambiar en un LED, active una alarma, encienda un extractor de emergencia, encienda una bomba de refrigerante) también de forma remota. Esas son las aplicaciones.
¿Qué mejor manera de lograr un acceso remoto genérico, consistente, independiente del dispositivo e independiente del diseñador que el omnipresente protocolo HTTP, a través de una red IP aún más ubicua? La capa física de comunicación podría ser WiFi, Ethernet cableada o cualquier otra opción conveniente que admita redes IP. Es por eso que se están haciendo servidores web en dispositivos integrados.
Para obtener más información, uno podría buscar el " Internet de las cosas " y ver la amplia gama de procesos de pensamiento que se presenta.
Con respecto a los " pequeños servidores que tienen una RAM tan pequeña ", vale la pena señalar que el protocolo HTTP es lo suficientemente simple como para ser implementado en muy poca RAM, con muy poca potencia de procesamiento. Además, los microcontroladores de hoy en día son comparables o, en algunos casos, más potentes que los procesadores en las primeras computadoras personales en las que las personas implementaron no solo la web, sino que también llevaron a cabo una variedad de tareas interactivas, incluso jugaron juegos.
fuente
Muchos dispositivos en red proporcionan un servidor web para examinar y establecer parámetros de configuración, verificar el estado del dispositivo, etc. Por ejemplo, puedo configurar el enrutador en mi sistema apuntando mi navegador a
http:///192.168.0.254
(si no recuerdo mal ...).fuente
Porque ellos pueden.
Porque pueden ser de muy baja potencia. Como debajo de 1W con algunos sorteos pico. Menos de medio amperio. La batería y la energía solar son prácticas, a diferencia de las computadoras más grandes.
Tamaño físico. Un microcontrolador + wifi o chip de ethernet puede ser del tamaño de una memoria USB.
Costo. Un microcontrolador adecuado para esto podría estar en el rango de un solo dólar. Las partes de redes casi tan baratas.
Desechable. Puede ponerlos en proyectos únicos y si mueren, no es tan malo como si una computadora costosa lo hiciera.
Causa justa.
Con el advenimiento de las computadoras en toda regla por decenas de dólares (gratis a $ 100) (shrevaplugs, raspberry pi, teléfonos inteligentes, unidades de memoria linux, dispositivos Android, ROUTERS), probablemente verá menos servidores web de microcontroladores en el futuro, porque hay ya no COST y el tamaño como factor de conducción. Un Raspberry Pi de 35 dólares o un Beaglebone de 45 dólares pueden superar a un escudo Arduino + Ethernet o Wifi en cuanto a costo, rendimiento y facilidad de configuración. Es apenas más grande que el arduino. Lo único que puede hacer el Arduino es una eficiencia de energía de 0.1W (0.5mA a 50 mA de reposo a potencia de computación completa [5v, 16mhz, 100% cpu] solo por ATMEGA) vs 4W para el RPI sin ethernet / hdmi / usb uso en inactivo.
Por lo tanto, los servidores web de microcontroladores pueden funcionar con batería debido al bajo consumo de corriente. Incluso entonces, algunos de los SoC de Linux más nuevos, como un enrutador de bolsillo con un servidor web, pueden estar cerca de ellos.
fuente
La respuesta de Olin es bastante acertada en cada razón por la que he usado un servidor web incorporado. Trabajo desarrollando controles industriales y casi todos los productos que producimos tienen un servidor web incorporado.
La mayoría de los clientes ya tendrán todos sus equipos en su red por varias razones. Por lo tanto, es muy conveniente poder configurarlo y / o controlarlo a través de un navegador web en lugar de instalar docenas de programas personalizados.
Incluso si están utilizando un protocolo industrial como PROFINET , la capa física es la misma que el resto de su Ethernet y luego solo necesitan una pieza de software (un supervisor PROFINET IO) para controlar docenas de máquinas. En mi experiencia, esta configuración es bastante estándar en muchas industrias.
Con respecto a los recursos (potencia de procesamiento, RAM, ROM), cuando se reduce a lo esencial del oso, se necesita un hardware increíblemente mínimo para servir con éxito una página web. webACE Creo que tiene el récord del servidor web más pequeño. Es una pena que ya no puedas visitar la página que alojó.
En cuanto a otras habilidades necesarias, una comprensión profunda de las redes no es realmente necesaria. Nunca he escrito una pila para ningún protocolo porque hay una gran cantidad de bibliotecas disponibles para vincular y usar para cada arquitectura concebible. Conocer algunos HTML básicos sin formato es útil para diseñar y escribir la página real.
Aparte de eso, ser capaz de leer y comprender un registro de Wireshark o Fiddler (analizadores de red) probablemente será la habilidad más útil, ya que ayudará mucho a depurar cualquier problema que tenga. Una pequeña lectura sobre la estructura de paquetes de cualquier protocolo que esté utilizando (TCP, IP, HTTP, UDP, PROFINET, etc.) le dirá dónde buscar en el paquete cualquier información que necesite. Incluso puede encender uno de esos analizadores en este momento y observar el tráfico que viene y va a su computadora para tener una idea.
fuente
Una de las razones es el desafío. Más aún si desarrolla la placa del microcontrolador y / o escribe su propio software.
fuente