PDF de programación - Contenidos dinámicos en micro servidores web para sistemas embebidos

Imágen de pdf Contenidos dinámicos en micro servidores web para sistemas embebidos

Contenidos dinámicos en micro servidores web para sistemas embebidosgráfica de visualizaciones

Publicado el 14 de Enero del 2017
1.025 visualizaciones desde el 14 de Enero del 2017
246,4 KB
13 paginas
Creado hace 11a (06/07/2012)
Contenidos dinámicos en micro servidores web

para sistemas embebidos

E. Sergio Burgos1 and Leonardo Giovanini23

1 Universidad Tecnológica Nacional, Facultad Regional Paraná,

Almafuerte 1033, 3100 Paraná, Entre Ríos, Argentina

2 Universidad Nacional del Litoral, Facultad de Ingeniería y Ciencias Hídricas

3 Consejo Nacional de Investigaciones Científicas y Tecnológicas

[email protected]

[email protected]

Resumen El uso de servidores web en sistemas embebidos suele ha-
cer uso de páginas html generadas dinámicamente para interactuar con
el usuario. En este trabajo se presenta como alternativa la generación
dinámica de contenidos XML como origen de datos para aplicaciones
Adobe Flash c, lográndose reducir el flujo de información entre el clien-
te y el servidor; mejorando la experiencia de usuario.

Keywords: micro web server, sistemas embebidos, control, internet,
tcp/ip

1.

Introducción

La creciente potencia que se observa en los microcontroladores existentes
en el mercado y el uso cada vez más común de redes TCP/IP e Internet han
ocasionado que cada vez sea más común el uso de servidores web en sistemas
embebidos. En general el objetivo es permitir la interacción con el usuario a
través de páginas webs almacenadas en el microcontrolador para, de esta forma,
modificar parámetros del sistema, controlarlo o presentar el estado del mismo[5].
Es por esto que los servidores web embebidos permiten trabajar tanto con con-
tenido estático (páginas web cuyo contenido no cambia) como dinámico (páginas
web cuyo contenido se conforma como resultado de algún tipo de procesamien-
to). Debido a los pocos recursos de los que en general se dispone en sistemas
embebidos la generación de contenidos dinámicos está asociada a implementa-
ciones no estándares que permiten generar contenido html. El problema que se
suele presentar al trabajar con estos entornos es que se trata de lograr la mayor
interacción posible con el usuario utilizando la menor cantidad de recursos del
sistema. Por esto, la mayoría de las páginas solo incorporan los elementos defi-
nidos en el estándar html, imágenes y, ocasionalmente, javascript para mejorar
la experiencia de usuario.
Una alternativa para enriquecer el contenido html, es el uso de aplicaciones que
se ejecutan en el navegador, tales como java applets o aplicaciones Flash c. Sin
embargo, su uso, presenta un nuevo desafío, la comunicación entre la aplicación

13th Argentine Symposium on Technology, AST 201241 JAIIO - AST 2012 - ISSN 1850-2806 - Page 143 ejecutada en el navegador web y el sistema embebido. En este trabajo se presenta
la metodología utilizada para resolver este problema y los resultados obtenidos
en la implementación de una aplicación web, desarrollada en Adobe Flash, para
interactuar con un sistema embebido utilizando un microcontrolador LM3S2776
de la empresa Texas Instruments.
El objetivo del desarrollo era lograr una aplicación web que permitiera interac-
tuar con los diversos periféricos incorporados en el kit y representar el estado de
las entradas analógicas gráficamente. Específicamente las operaciones de interés
eran controlar (encender y apagar) el led de estado, enviar texto introducido por
el usuario a la pantalla LCD, borrar el contenido de la pantalla y graficar los
valores presentes en las 4 entradas analógicas del conversor analógico digital más
el valor de temperatura registrado en el sensor incorporado en el microcontrola-
dor.
El tipo de control perseguido requiere el flujo de información en diferentes sen-
tidos, pero más allá de esto la única alternativa para su solución es la ejecución
de rutinas para la generación de contenido dinámico. Las acciones directas sobre
el kit, tales como encender un led no requieren más que el acceso a un contenido
particular que dispare la ejecución de una rutina. Para el caso del acceso a los
valores correspondientes al conversor análogico/digital, estas rutinas deben re-
tornar valores obtenidos de la conversión. La diferencia significativa se plantea
para el control del LCD, ya que este involucra el uso de datos que, originados
en el navegador, deben ser utilizados en el kit.
Este trabajo se organiza como se detalla a continuación. En la Sección 2, se
comenta brevemente el sistema embebido utilizado para el desarrollo. En la Sec-
ción 3 se describe el servidor web utilizado para la aplicación. En la Sección 4,
se describe el desarrollo realizado. Finalmente, en la Sección 5 se presentan las
conclusiones.

2. El sistema embebido

El sistema embebido utilizado para el desarrollo es un kit de usos múltiples
(figura 1) que incorpora una pantalla LCD de tipo carácter, un conversor digital
analógico, un led indicador de estado y tiene como núcleo un microcontrolador
ARM Cortex-M3 de la línea Stellaris de Texas Instruments, el LM3S2776 [3]. El
microcontrolador incorpora 128 KB de memoria de programa (FLASH), 64 KB
de memoria RAM, conversor analógico digital de 10 bits y puerto de comunica-
ciones serie (UART). Debido a que el kit utilizado carece de interfaz ethernet,
para la implementación se utilizó el protocolo IP sobre línea serie (SLIP)[4] a
través de la UART. Este protocolo permite transferir paquetes TCP/IP a través
de enlaces de comunicación serie, para esto se utilizan códigos especiales para
marcar el comienzo y fin de los paquetes junto a secuencias de escape que per-
miten omitir estas marcas cuando forman parte de los paquetes de datos. De
este modo, desde la perspectiva de la aplicación, se tiene un comportamiento
equivalente a un sistema embebido con interfaz ethernet utilizando TCP/IP.
Para llevar las condiciones de funcionamiento más cercanas al caso de interés se

13th Argentine Symposium on Technology, AST 201241 JAIIO - AST 2012 - ISSN 1850-2806 - Page 144 Figura 1. Foto del kit de desarrollo utilizado

conectó el kit a un equipo PC que permitiera la adaptación entre el protocolo
TCP/IP sobre Wi-Fi a SLIP sobre UART, lográndose de esta manera acceder
al sistema desde diferentes equipos en una red local, lográndose una estructura
como la mostrada en la figura 2

3. Servidor web

La implementación de stack TCP/IP utilizada como base para el desarrollo
fue la librería uIP versión 1.0[2]. Si bien esta fue desarrollada originalmente pa-
ra microcontroladores de 8 bit, puede ser portada a diferentes arquitecturas de
modo simple. Junto a esta librería, se distribuyen un conjunto de aplicaciones a
modo de demostración, entre las que se incluye un servidor web capaz de generar
contenido dinámico a partir de incorporar llamadas a funciones desde el código
de las páginas webs.
El servidor es capaz de procesar solicitudes de páginas html, css (hojas de es-
tilo) y shtml, siendo esta última la extensión asociada a páginas con contenido
dinámico. En lo que respecta a imágenes permite utilizar formatos jpg, gif y png.
Cada uno de estos contenidos está asociado a un tipo de encabezado html, envia-
do por el servidor, a partir del cual el cliente (navegador) es capaz de procesar
el contenido recibido.
En lo que respecta a las peticiones GET y POST del estándar HTTP utiliza-
das para enviar información desde el cliente, la versión original del servidor no
incorpora su procesamiento, siendo posible modificar su código fuente para per-
mitirlo.
Si bien la aplicación desarrollada depende del servidor web utilizado, debido a
que la mayoría de los servidores web para sistemas embebidos disponen de, como

13th Argentine Symposium on Technology, AST 201241 JAIIO - AST 2012 - ISSN 1850-2806 - Page 145 Figura 2. Esquema de la estructura de red utilizada

mínimo, las capacidades del servidor utilizado el desarrollo aquí presentado es
fácilmente extensible a otros servidores web.

4. Desarrollo realizado

La clave del desarrollo consiste en utilizar lenguaje extensible de marcas
(XML) para establecer la comunicación entre el servidor web y la aplicación
Flash, de este modo generando dinámicamente el contenido XML y a partir de
las clases incorporadas en lenguaje Action Script 3.0 es posible implementar una
comunicación de modo simple.
Esto requiere modificar la implementación del servidor web y desarrollar una
aplicación cliente que haga uso de estas modificaciones, estas tareas son aborda-
das en las secciones siguientes.

4.1. Servidor Web

El primer paso para en el desarrollo es agregar a los encabezados HTTP que
incorpora el servidor un par más, uno asociado a contenidos XML (text/xml)
y otro asociado a la aplicación Flash misma (application/x-shockwave-flash).
De este modo los clientes al solicitar este tipo de contenidos podrán procesarlo
de manera adecuada. Este tipo de modificaciones se encuentran previstas en la
implementación del servidor web utilizado, para esto se incorpora un archivo
(http-strings) que define el tipo de contenido a manejar y su extensión. A partir
de éste se generan, utilizando un script perl (makestrings), dos archivos de código
fuente (http-strings.h y http-strings.c) que incluyen el contenido de las cadenas
de texto originales como vectores inicializados.
Habiendo realizado las modificaciones pertinentes es necesario modificar la lógica

13th Argentine Symposium on Technology, AST 201241 JAIIO - AST 2012 - ISSN 1850-2806 - Page 146 del servidor (httpd.c) para que permita enviar los headers adecuados en función
del tipo de solicitud, para eso es necesario modificar la función encargada del
procesamiento de los encabezados tal como se detalla a continuación.

static
PT_THREAD(send_headers(struct httpd_state *s, const char *statushdr))
{

char *ptr;
PSOCK_BEGIN(&s->sout);
PSOCK_SEND_STR(&s->sout, statushdr);
ptr = strrchr(s->filename, ISO_period);
if(ptr == NULL) {

PSOCK_SEND_STR(&s->sout, http_content_type_binary);

} else if(strncmp(http_html, ptr, 5) == 0 ||

strncmp(http_shtml, ptr, 6) == 0) {
PSOCK_SEND_STR(&s->sout, http_content_type_html);

}else if(st
  • Links de descarga
http://lwp-l.com/pdf1593

Comentarios de: Contenidos dinámicos en micro servidores web para sistemas embebidos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad