Está en la página 1de 5

Web server embebido para visualización de variables

en tiempo-real
Implementación de un web server embebido en microcontroladores NXP.

Lucas Iogna Prat; Jorge Osio; Walter Aroztegui, José Rapallini


Centro de Técnicas Analógico – Digitales (CeTAD)
Facultad de Ingeniería – Universidad Nacional de La Plata
La Plata, Argentina
ip_lucas@hotmail.com ; jorge.osio@ing.unlp.edu.ar; walter.aroztegui@gmail.com, josrap@gmail.com

Resumen — El presente proyecto tiene como objetivo la general se dispone en sistemas embebidos la generación de
implementación de un web server como sistema embebido. La contenidos dinámicos está asociada a implementaciones no
finalidad de dicho servidor, consiste en poder acceder a datos estándares que permiten generar contenido HTML. El
tomados como entradas del sistema, a través de cualquier problema que se suele presentar al trabajar con estos entornos
dispositivo que posea un navegador web y conexión a internet. es que se trata de lograr la mayor interacción posible con el
Además, se propuso también adaptar este servidor para usuario utilizando la menor cantidad de recursos del sistema.
aplicaciones industriales, y por lo tanto, poder visualizar las Por esto, la mayoría de las páginas solo incorporan los
variables de campo en tiempo real a través de un navegador elementos definidos en el estándar HTML, imágenes y,
web. ocasionalmente, JavaScript para mejorar la experiencia de
Se optó por utilizar microcontroladores de la familia LPC usuario.
de la empresa NXP [1], que sirvan para comunicaciones de Por lo tanto, el objetivo de este proyecto será realizar un
propósito general. Se utilizó una placa fabricada por NXP que servidor web embebido capaz de trabajar con contenido
incorpora un LPC1769 sobre su placa base, la cual, posee el dinámico, con el propósito de que el cliente pueda visualizar,
hardware necesario para hacer las correspondientes en su navegador web, información adquirida y procesada por el
simulaciones. microcontrolador. A modo de ejemplo práctico, se pretende
que esta información esté relacionada con datos de Variables
Palabras Clave – Sistemas Embebidos, Web Server, actualizadas en tiempo real.
Procesadres Cortex. A lo largo de este informe se hará un estudio de las
posibilidades que se tenían para llevar a cabo este trabajo,
I. INTRODUCCIÓN describirá el hardware utilizado, el hardware adicional
La creciente potencia que se observa en los confeccionado, los principios y fundamentos teóricos en los
microcontroladores existentes en el mercado y el uso cada vez cuales se basa el servidor implementado, así como también las
mayor de redes TCP/IP e Internet [2], han ocasionado que el tareas que se llevaron a cabo para implementarlo.
uso de servidores web se vuelva una herramienta común en Por último se analizarán las ventajas y desventajas del
sistemas embebidos. En general el objetivo es permitir la mismo, y las futuras tareas que podrán llevarse a cabo para
interacción con el usuario a través de páginas webs mejorar su funcionamiento y ampliar los servicios que ofrece.
almacenadas en el microcontrolador para, de esta forma,
modificar parámetros del sistema, controlarlo o presentar el
II. DESCRIPCIÓN DE LOS MICROCONTROLADORES
estado del mismo.
Se optó por utilizar microcontroladores de la empresa NXP,
Es por esto que los servidores web embebidos [3] permiten
debido a que tiene una amplia gama de microcontroladores de
trabajar tanto con contenido estático (páginas web cuyo
32 bits, y además, brinda numerosas notas de aplicación e
contenido no cambia) como dinámico (páginas web cuyo
información técnica, lo cual facilita potencialmente cualquier
contenido se conforma como resultado de algún tipo de
desarrollo. Por otra parte, es importante el hecho de que se
procesamiento). Debido a los pocos recursos de los que en
disponga de un importador oficial en el país.
Como el objetivo de este proyecto no es ni el muy bajo B. El LPC1769[5]
consumo ni la elevada complejidad, sino más bien lograr un La familia de microcontroladores LPC1700 se basa en la
equilibrio entre ambos, la familia LPC17xx resulta ser una arquitectura ARM Cortex-M3 para aplicaciones embebidas que
buena opción. En particular, las familias LPC2300 y LPC2400 ofrecen un alto nivel de apoyo a la integración de bloques y
están pensadas para comunicaciones multipropósito. bajo consumo de energía.
A. Modulo Ethernet El LPC1700 es pin a pin compatible con muchos de los
ARM7 de la serie LPC2000 lo que permite migrar la aplicación
El programa de aplicación se realizó utilizando el lenguaje
a otra familia de Microcontroladores. Esta compatibilidad
de programación C y la aplicación LPCxpressoV4 [4].
permite a los usuarios evaluar tanto el procesador Cortex-M3
El bloque de Ethernet que se muestra en la Figura 1
como los productos basados en ARM7 en el mismo socket y
incorpora un controlador de acceso al medio (MAC) Ethernet
elegir cuál de los microcontroladores será adecuado para sus
10/100 Mbit/s diseñado para proveer una alta performance,
aplicaciones.
inclusive cuando se lo utiliza en combinación con el módulo
Gracias a la arquitectura de bus del LPC1769 se puede
USB. Realiza todas las funciones especificadas en el estándar
tomar ventaja especialmente para aplicaciones que requieren
IEEE 802.3 e incluye características especiales como un juego
gran ancho de banda de datos de Ethernet, USB y CAN sin
completo de registros para el control de paquetes, de flujo, etc.,
cuellos de botella.
además de disponer de herramientas de software para
Por otra parte, este microcontrolador incorporar un bloque
simplificar las tareas al momento de realizar nuevos diseños.
llamado SYSTICK, que es ideal para aplicaciones donde se
requieran distintas bases de tiempo.
La programación del micro se realiza a través del programa
LPCXpresso, el cual además incorporar un conjunto amplio de
librerías, sumamente útiles para comenzar a utilizar las
distintas placas proporcionadas por la empresa.
Figura 1. Bloque Ethernet dentro del diagrama en bloques del LPC2478

III. DESCRIPCIÓN DEL SERVIDOR


Para completar la interfaz Ethernet es necesario el uso de
un dispositivo externo (transceiver) que actúa como interfaz En este trabajo se logró implementar un sistema capaz de
con la red. La comunicación entre el microcontrolador y el procesar señales obtenidas a partir de las entradas del
transceiver se realiza a través de dos protocolos distintos, RMII microcontrolador, y cargar los resultados en una página web, la
(Reduced Media Independent Interfase) para el intercambio de cual se brinda como servicio a través del servidor web
datos y MII (Media Independent Interfase) para acceder a los implementado.
registros de control del transceiver. Este servidor posee un número de IP definido por el
En la Figura 2 se puede ver cómo queda constituida la programador, el cual debe ser único en la red. En este caso, se
interfaz física para enviar datos desde el microcontrolador le designó un número de IP pública perteneciente a una de las
hacia la red. subredes de la Facultad de Ingeniería de la UNLP, en particular
a la subred correspondiente al laboratorio de trabajo. Esta
subred tiene salida a internet, por lo tanto, siempre que el
servidor esté funcionando, se podrá acceder al mismo desde
cualquier dispositivo que posea un navegador web y conexión
a internet (computadores, celulares, iPad, etc.).
El sistema implementa los protocolos y estándares
Figura 2. Diagrama en bloques de la interfaz Ethernet.
necesarios para la comunicación a través de librerías que son
El servidor y el procesamiento de las entradas del sistema proporcionadas por el fabricante del microcontrolador y
requieren distintas bases de tiempo. Este microcontrolador funcionan correctamente, y además pueden ser configuradas
cuenta con un bloque específico de timers, el cual va a ser para una mejor adaptación a la implementación realizada.
utilizado en esta implementación para cumplir con este Dentro de estas librerías se destacan las siguientes:
requerimiento.  Librerías para los protocolos RMII y MIIM, los cuales
se encargan de la comunicación entre el
microcontrolador y el transceptor, y del acceso a los
registros del transceptor respectivamente. Estas
pertenecen a la capa de acceso a la red dentro del Más adelante se describirá la performance del servidor.
modelo en capas TCP/IP, y la principal característica
C. Página web dinámica realizada
a configurar para lograr que funcione el servidor es el
número de MAC de nuestro dispositivo, que debe ser
único en la red.
 Librerías para el conjunto de protocolos TCP/IP, entre
los cuales aparecen TCP, IP, ARP, ICMP, IGMP, etc.
Estas requieren un estudio más profundo para
configurarlas según más nos convenga; es necesario
configurarlas con un número IP válido, número de
máscara y default Gateway (router con salida a
internet). Además necesitan una base de tiempo de
20mseg para poder funcionar.
 Código adicional para la capa de aplicación, donde se
utilizó el protocolo HTTP 1.0.

A. Flujo de la conexión del servidor con un cliente


Dentro del código realizado se realiza un servidor que está
constantemente en modo listening esperando peticiones de
clientes, para los cuales establece una conexión a través de
sockets, para finalmente enviarles la página web, no sin antes
haberla actualizado con los datos obtenidos a partir de las
entradas del sistema.
Figura 4. Página web.

Dentro del código escrito en C, se define la página web


dentro de una cadena de caracteres que contiene el código
escrito en HTML. Dentro del código principal, esta cadena de
caracteres se almacena en un buffer de salida, para luego en
última instancia enviarla como paquete de datos hacia el cliente
a través de la red.
Dentro del código HTML se definen las características de
la página: título, color de fondo, color de letra (en cada línea
se puede personalizar el formato), etc.
Se pueden ver los valores numéricos obtenidos a partir de
una entrada analógica y un sensor de temperatura, así como
también, en forma gráfica. Luego, se muestran valores
obtenidos a partir de la señal de interés, como tiempo entre
picos, frecuencia de la señal de entrada y cantidad de picos
detectados por minuto. Esto se explicará más adelante con más
Figura 3. Diagrama en bloques del flujo de conexión.
detalle.
Los valores se actualizan de forma dinámica cada vez que
B. Respuesta del servidor ante múltiples solicitudes de se actualiza la página web. Para conseguir esto, se realizó un
conexión algoritmo de reemplazo de texto. Entonces, dentro de la cadena
de caracteres donde está el código HTML, se introdujeron
 Las peticiones entrantes quedan en lista de espera,
caracteres especiales en los lugares donde se deben introducir
formando una cola de tipo FIFO.
las distintas variables. Luego, mediante el algoritmo, una vez
 El cliente queda en espera hasta tanto el servidor
que se encuentran los caracteres especiales, se ejecutan las
pueda responder.
funciones correspondientes según se tenga que obtener tensión,
 En caso de no responder dentro de un determinado temperatura, etc. Finalmente, con los valores obtenidos se
lapso de tiempo se produce un error por ―timeout‖.
reemplaza dentro de la cadena de caracteres con el código lectura del mismo pico, y luego se realiza nuevamente una
HTML correspondiente. serie de lecturas del conversor hasta llegar el siguiente pico.
De este modo se obtiene la diferencia de tiempo entre
picos en milisegundos, a partir de lo cual se puede obtener la
IV. RESULTADOS OBTENIDOS
frecuencia en Hz y la cantidad de picos por minuto.
Este procesamiento plantea un nuevo problema para la
 Se pudo acceder al servidor desde múltiples implementación realizada, ya que el tiempo de procesamiento
terminales desde dentro y fuera de la red (internet). de esta señal toma en promedio valores de alrededor de 1
Funciona correctamente con hasta 10 solicitudes de segundo, tiempo donde el servidor no estará disponible para
conexión de distintos clientes, con un tiempo de atender posibles solicitudes.
actualización de 5 segundos. Aumentando este Si el dispositivo es de uso personal, esto no implicaría un
tiempo, aumentaría el número máximo de solicitudes problema, sin embargo si se quisiera implementarlo dentro de
sin producir un timeout. un ambiente industrial para usarlo con varios sensores,
De todas formas, este servidor está pensado para ser entonces se tendría que pensar en una solución para realizar el
accedido desde pocas terminales, ya que solamente procesamiento de las señales en paralelo con el servidor para
deberían acceder a estos datos los responsables de no entorpecer su funcionamiento.
planta que realizan guardias pasivas.
 El tiempo de procesamiento de las entradas analógicas V. TRABAJO A FUTURO
y las entradas provenientes del sensado de Como trabajo a futuro se plantea la adquisición y
temperatura es corto. Entonces, se podrían añadir más, adaptación de otros tipos de señales analógicas de interés.
pudiendo así subir datos de varios sensores al mismo Además, esta señal digitalizada se envía a una PC para
tiempo, lo cual sería muy útil en el caso que se visualizarla en el monitor. Entonces, se podría usar la etapa de
requiera utilizar este dispositivo para el seguimiento adquisición y adaptación de la señal, (y reproducirla la cantidad
de una planta con una cantidad aceptable de sensores. de veces que sea necesario de acuerdo a la cantidad de señales
 El servidor responde siempre con la misma página que se quieran procesar), y leer dicha señal en el
web con los datos actualizados. microcontrolador.
 En la parte final de este trabajo se realizó una última Para lograr que el servidor pueda procesar nuevamente
adquisición, donde se utilizó un generador de señales peticiones de múltiples clientes, en tiempo real, y mostrar en la
para obtener una analógica con picos de determinadas página datos de varias señales de forma simultánea se deberá
características, con el objetivo de realizar el cálculo de implementar un Sistema Operativo de Tiempo Real [6].
la frecuencia, tiempo entre picos y cantidad de picos Entre otras mejoras que se le podrían seguir haciendo al
por minuto. Una posible aplicación podría ser la señal servidor, se plantea agregar capacidad de procesamiento para
de cromatografía mostrada en la Figura 5 peticiones hechas por el navegador web (más código). Por
ejemplo, peticiones GET y POST:
 Se podría tener más de una página web, lo que
permitiría organizar y visualizar mejor la información.
 Se podría acoplar un servidor de base de datos
Para hacer esto se necesitaría un estudio más profundo de
protocolo HTTP.
Figura 5. Picos de señal de Cromatografía. Siguiendo con esta línea, se podría pensar también en
El procedimiento consistió en realizar la medición de incorporar aplicaciones web o aplicaciones FLASH, para lo
tiempo entre los picos de la señal. cual se debería utilizar un procesador más potente con mucha
El algoritmo diseñado para resolver esto, funciona de la más memoria RAM.
siguiente manera: comienza a funcionar el conversor A/D La mayoría de las aplicaciones del lado del servidor se
tomando sucesivamente valores hasta tanto no se obtenga un programan en PHP, pero se podría decir que las
implementaciones hechas (procesamiento de las entradas) son
valor superior a cierto nivel. Al suceder esto, se toma una
lectura de tiempo usando uno de los contadores que se aplicaciones web del lado de servidor.
En cuanto a las aplicaciones del lado del cliente, se
definieron anteriormente en el módulo SYSTICK, en
particular se utiliza una base de tiempo de 1mseg. Hecho esto, programan generalmente en Java y se instalan en la
computadora de cliente.
se espera un breve tiempo con el fin de no realizar una nueva
Inclusive, la empresa Microchip ofrece en su página remota. Es decir, visualizar datos de una o más variables a
ejemplos (para microcontroladores) de código donde se través de cualquier dispositivo que posea un navegador web y
implementan este tipo de aplicaciones. Estas permiten un flujo conectividad.
de información en ambos sentidos. Esto tiene muchas A lo largo de este trabajo, se utilizó hardware de distintos
aplicaciones en ingeniería, ya que se podrían utilizar distintos tipos: para procesamiento (microcontroladores), para la
periféricos del microcontrolador desde la web. Este último comunicación a través de la red (interfaz realizada), y para la
aspecto, para este proyecto tal vez no es tan útil pero es adquisición de las distintas entradas del sistema, lográndose
interesante para tenerlo en cuenta. un acceso aceptable desde 5 terminales a la vez. Teniendo en
Algunas desventajas sería que la comunicación no es en cuenta que conjuntamente el procesador está procesando una
lenguaje HTML sino que es en XML; el cliente debe tenerla señal analógica.
instalada en su PC para poder utilizarla. Se desarrolló un algoritmo de procesamiento de señales
Pero por otra parte es útil para uso personal, y además analógicas para detectar picos y medir tiempos con muy buena
solamente podrían acceder a los datos el personal calificado, al precisión y bajo error de cálculo.
cual se le debe proveer con esta aplicación. Por último, se realizó una implementación con un alto
grado de portabilidad, capaz de funcionar en varios
microcontroladores (sobre todo de la empresa NXP), y con
VI. CONCLUSIONES
soporte para varios transceptores, pudiendo identificar por sí
Finalmente se logró realizar una implementación a través de solo cual incorpora la interfaz que se utiliza.
la cual se puede realizar el monitoreo de variables de forma
[3] Jan Axelson, Embedded Ethernet a internet complete, Lakeview
Research LLC, 2003
REFERENCIAS [4] NXP Semiconductors, ―LPCxpresso V7 User Guide‖, Rev. 7.5 27 de
[1] NXP Semiconductor: www.nxp.com/ Octubre de 2014
[2] Richard Stevens, ―The Protocols TCP/IP Illustrated,Volume 1‖, 1993 [5] NXP Semiconductors, ―Hoja de Datos:LPC1769‖, REv 9.5, 24 de
junio de 2014
[6] Richard Barry, ―Using de Free RTOS real time kernel‖, 2010

También podría gustarte