You are on page 1of 5

Escuela de Electrnica y Telecomunicaciones. Febrero, 2012.

Diseo e implementacin de un servidor web


embebido basado en una arquitectura
reconfigurable con FPGAs para el control y
monitoreo de perifricos.
Christian Lojan Herrera, Profesional en formacin, UTPL, e Ing. Manuel Quiones Cuenca, Docente, UTPL.

la verificacin del sistema. Como se muestra en la


Resumen--El presente trabajo se centra en el diseo e Figura 1.
implementacin de un servidor web embebido (SWE)
sobre una tarjeta electrnica Spartan 3E Starter Kit,
destinado al control y monitoreo de perifricos mediante
una interfaz grfica basada en: HTML, CSS y JavaScript.
El sistema se ha diseado mediante el mtodo SoC de
inclusin modular de IPCORES de Xilinx, y est basado en
el Firm Core Microblaze que utiliza un modelo de pila de
protocolos TCP/IP de bajo peso llamado LWIP para:
Figura 1. Codiseo de un SoC. Fuente [2].
proveer un servicio WEB mediante HTTP y un servicio de
medicin de ancho de banda. Finalmente se realizan las
II. DISEO DE HARDWARE
pruebas de estabilidad, conexiones simultneas, ancho de
banda y consumo energtico.
El SWE es capaz de: proveer una comunicacin TCP/IP
Palabras clave-- SWE, HTML, IPCORES, LWIP, confiable a travs de una interfaz fsica RJ-45, un
Microblaze, SoC. reporte de acciones a consola a travs de una interfaz
DB9 sobre un protocolo RS232, una comunicacin
I. INTRODUCCIN RS232 con un mdulo externo ADC va una interfaz
DB9. El esquema de implementacin del SWE puede
Los servidores web embebidos (SWEs), son apreciarse en la Figura 2.
dispositivos construidos a medida para proveer un
servicio de transporte de hipertexto (HTTP) permitiendo
a un cliente visualizar pginas HTML mediante un
navegador WEB [1].

Los SWEs son una solucin muy atractiva para sistemas


de comunicacin Ethernet de bajos requerimientos de
procesamiento. Los sistemas embebidos generan un bajo
consumo energtico y un bajo coste de implementacin
y desarrollo, por lo que, son una opcin muy viable para
Figura 2. Esquema de requerimientos del SWE. Elaborado por
sistemas de control y supervisin remotos.
el Autor.

Un servidor embebido con capacidades HTTP presenta Sistema fue construido sobre una tarjeta electrnica
una interfaz grfica amigable, accesible a travs de Spartan 3E Starter Kit de Digilent, las caractersticas de
cualquier cliente HTML con capacidades de los dispositivos requeridos segn la referencia [3] para
comunicacin TCP/IP. la plataforma de Hardware se pueden apreciar en la
Tabla 1.
La tcnica de desarrollo SoC de un sistema embebido
divide al diseo en etapas mutuamente Tabla 1. Requerimientos del SWE. Elaborado por el Autor.
complementarias. La primera etapa consiste en: Dispositivo Uso en el Sistema.
determinar los requerimos del sistema y la particin del FPGA XC3S500E-
Procesamiento de informacin, permite
sistema en software y hardware. Las dos etapas embeber IPCORES.
4FGG320C
subsiguientes contemplan el diseo del hardware y Plataforma Flash Permite almacenar y descargar
diseo de software. Por ltimo se realiza la integracin y

1
Escuela de Electrnica y Telecomunicaciones. Febrero, 2012.
.

Xilinx XCF04 aplicaciones para el SWE en conjunto con A. Plataforma.


ISE 11.1.

Memoria SDRAM Almacena sistemas de ficheros, programas La plataforma de software es donde se asentarn las
DDR SDRAM 32MB para el SWE. funcionalidades del sistema. La plataforma es de tipo
Standalone y posee algunas de las funcionalidades del
Fuente de Poder Brinda la alimentacin regulada de lenguaje C, todas las funcionalidades han sido reducidas
LT3412 potencia para la memoria DDR-SDRAM.
para una integracin completa con el procesador
Fuente de Poder Proporciona la alimentacin regulada de Microblaze.
TPS75003 potencia a la FPGA.
LWIP130 es una biblioteca de funcionalidades que
Realiza el procesamiento Ethernet, necesariamente deben ser incluidas a la plataforma
Ethernet PHY SMSC
independiente, para el servicio de la capa
LAN83C185
fsica con negociacin CSMA/CD.
standalone, ya que brindan la funcionalidad de una
verdadera pila de protocolos TCP/IP en apenas 40 kB de
cdigo [6].
III. IPCORES Y BUSES.
La biblioteca Xilmfs al ser incluida en la plataforma de
La plataforma de hardware fue enteramente diseada en software provee un servicio de sistema de ficheros, as
EDK 11.1, que es parte del ISE 11.1 de Xilinx Inc. Los se puede acceder a ficheros organizados en espacios
dispositivos como: memorias, buses o procesadores se contiguos de memoria [7].
encuentra integrados en la FPGA, como mdulos
denominados IPCORES, todos los IPCORES se La configuracin de biblioteca LWIP130 debe hacerse
encuentran vinculados a una contraparte fsica mediante tomando en cuenta que sobre el protocolo TCP se ha de
un mapeo de puertos del FPGA. transportar hipertexto (HTTP) destinado al servicio
WEB. La biblioteca Xilmfs debe ser coherente con el
El corazn de toda la plataforma es el Firm core RISC inicio del mdulo DDR SDRAM, adems debe
de 32 bits Microblaze que proporciona todas las considerarse que se ha de carga una imagen pre
funcionalidades de un microprocesador [5]. Microblaze construida tipo mfs que contiene los ficheros destinados
interacta con el IPCORE MPMC para hacer uso de la a la visualizacin y operacin del servicio web.
memoria DDR SDRAM, mediante un bus dual XCL por
una interfaz PIM. B. Programas de servicio.

Los perifricos estn representados por dos instancias de El programa principal arranca todos los servicios del
un IPCORE de propsito general de E/S denominado sistema (contadores, controladores, servicio web e
GPIO, para los switchs y leds, dos instancias de UART servicio IPERF) y las libreras asociadas a los mismos.
Lite para el control de la interfaz DB9 DTE y DCE para Adems de establecer una identificacin nica de la
el ADC y la Consola de estado, Ethernet Lite Mac para tarjeta en la Red. En la Figura 3, puede apreciarse el
el control de interfaz de red RJ-45. algoritmo del programa principal.
El sistema conecta todos los componentes mediante
buses de comunicacin: los perifricos hacen uso del
bus PLB (Peripheral Local Bus), el bus P2P para
interactuar con el entorno de programacin ISE.
Finalmente para interconecta la cache interna y los
bloques de DDRAM hace uso de buses LMB (Local
Memory Bus).

IV. DISEO DE SOFTWARE.

El diseo de la plataforma de software se la realiz en


SDK 11.1 que es parte del ISE 11.1 de Xilinx, mientras
que las aplicaciones e interfaces de usuario se las realiz
en WEBUILDER 2010. Se import el diseo de
Hardware desde EDK 11.1, ya que SDK 11.1 provee un
ambiente ms propicio para la programacin en C.

2
Escuela de Electrnica y Telecomunicaciones. Febrero, 2012.
.

C. Interfaz HTML.

La interfaz de usuario fue diseada bajo estndar HTML


v4.1, se complementa con JS, CSS y Yui2, lo que le
agrega a la pgina una mejor presentacin, adems de un
tamao pequeo y un tiempo de desarrollo corto.

CSS optimiza lneas de cdigo al establecer un formato


de estilo a toda la pgina. JavaScript brinda todas las
facilidades para la programacin orientada a objetos que
permite manipular interactivamente los objetos de la
pgina y a travs de ellos a los perifricos. Yui2, es una
biblioteca de Scripts pre construidos que adems de
brindar funcionalidades de conexin y apariencia
optima, permite reducir drsticamente el tiempo de
desarrollo. La pgina puede apreciarse en la Figura 4.

Figura 3. Algoritmo del programa principal. Elaborado por el


Autor.

El servidor WEB, est basado en la versin HTTPV1.1


y nicamente implementa los mtodos de peticin GET
y POST. El mtodo GET est destinado a la obtencin
de ficheros como: imgenes, gifs, pdf, html, txt. El
mtodo POST nicamente es para la obtencin dinmica
del estado de los perifricos como: ADC, leds o switchs.

El servidor cuenta con funciones especficas que


permiten extraer el mtodo contenido en la carga til del
paquete entrante y proceder segn sea el requerimiento.
Las funciones solo son llamadas si se ha logrado una
conexin TCP exitosa.
Figura 4. Pgina SWE. Elaborado por el Autor.
El servidor analiza las peticiones tipo MIME y las
responde en el mismo formato segn se especifica en la
D. Interfaz HTML.
referencia [8]. Las peticiones mediante GET estn ms
relacionadas con el sistema de ficheros y extraen los
mismos de la imagen mfs en porciones de 1400 bytes El servicio IPERF es un servicio suplementario
para optimizar memoria y el transporte de datos. destinado nicamente a pruebas de rendimiento de red
del sistema, acta como un espejo ante paquetes
El mtodo POST, se utiliza para el acceso a bajo nivel entrantes. Puede ser accedido con un cliente iperf. Al
de los registros de los dispositivos. Los mdulos para el igual que el SWE utiliza las primitivas de conexin
procesamiento POST interactan directamente con los mediante TCP.
dispositivos y tienen acceso a sus registros en bajo nivel
V. INTEGRACIN
para monitorear o controlar los perifricos, el mtodo
POST utiliza la notacin JSON en conjunto con La integracin de hardware y software es una actividad
JavaScript (JS) para realizar peticiones mediante de retroalimentacin y muchas de las veces de ensayo
comandos especficos al sistema. error. La plataforma de hardware debe unirse
estrechamente con la plataforma de software para
garantizar un ambiente ptimo para la ejecucin de los
servicios ofertados por el sistema.

3
Escuela de Electrnica y Telecomunicaciones. Febrero, 2012.
.

La pgina Web debe ser empaqueta en un sistema de


ficheros de tipo mfs para poder ser descargada a la
memoria DDR SDRAM de la tarjeta, esto se lo realiza
mediante la consola xmd y el comando mfsgen.

Los programas de servicio al ser compilados generan un


archivo ejecutable elf, es de vital importancia antes de
su compilacin realizar el Link Script y asignar las
porciones destinadas a heap y stack a la memoria DDR
SDRAM para evitar posibles errores.
Figura 6. Prueba de rendimiento Iperf. Elaborado por el
El primer paso en la integracin es la descarga de la Autor.
descripcin del hardware a la tarjeta (system.bit), luego
se procede con la descarga de la imagen del sistema de C. Tiempo de carga.
ficheros en la memoria DDR SDRAM (*.mfs). Por
ltimo se debe descargar el ejecutable de los programas Mediante el uso del complemento FireBug 1.9.0 para
de servicio (*.elf). Mozilla Firefox 6.0, se ha logrado comprobar que el
tiempo de la carga de la pgina en condiciones normales
VI. PRUEBAS
de operacin es de 7.46 s. con una carga total de 113.2
Se realiza las pruebas de estabilidad, ancho de banda, kB de 23 solicitudes GET y POST.
solicitudes mltiples, tiempos de carga, optimizacin de
LTUS y consumo energtico, segn el esquema que se D. Uso FPGA de plataforma de hardware.
detalla en la Figura 5.
En la Tabla 2, se detalla el uso de los recursos del
sistema basado en FPGA con arquitectura
reconfigurable.

Tabla 2. Uso FPGA. Fuente EDK 11.1.


Utilizacin Usada Disponible Utilizacin
Lgica (%)
Nmero de 3395 9312 36%
slice flip
flops
Nmero de 4255 9312 45%
LUTS de 4
entradas
Figura 5. Esquema de pruebas. Elaborado por el Autor. Nmero de 3206 4656 68%
Slices
A. Mltiples solicitudes. ocupados

E. Consumo energtico.
Ante mltiples solicitudes el servidor ha sido capaz de
atender a 25 solicitudes simultneas, degradando sus
tiempos respuesta a medida que las solicitudes se van Mediante la utilizacin XPE (Xpower Estimator) 11.1
incrementando una media de la degradacin de los [9] para la tarjeta Spartan 3E Starter Kit, se pudo estimar
tiempos de respuesta es 400 ms. Tambin se ha enviado el consumo de potencia de la tarjeta en 0.384 W, en la
30 solicitudes de ping simultneas obteniendo el 80% Figura 7, se puede visualizar en ms detalle los
de los paquetes confirmados. resultados.

B. Ancho de banda IPERF.

El servidor de rendimiento se lo ha ejecutado desde el


cliente 1 mediante IPERF, en 10 pruebas se ha
obteniendo un ancho de banda promedio de 500 kbps.
En la Figura 6 se muestra una captura de una de las
pruebas.

4
Escuela de Electrnica y Telecomunicaciones. Febrero, 2012.
.

Mediante las pruebas realizadas al servidor WEB, se


pudo comprobar la estabilidad de conexin ante 25
conexiones entrantes, una de carga mxima de 80 kbps
ante solicitudes simultaneas al servicio. El servidor se
comporta estable y presenta un buen funcionamiento
cuando se generan peticiones de datos HTML con una
cantidad igual o menor a ocho clientes y un factor de
degradacin promedio de 400 ms a medida que se
incrementan los clientes.

El cliente IPERF ha demostrado que el trfico de datos


Figura 7. Estimacin de consumo de potencia. Referencia [9]. en el servidor puede ser menor o igual a 500 kbps y que
la cantidad de trfico se ve degradada a medida que se
VII. CONCLUSIONES
conecten ms clientes al sistema.
Se ha desarrollado un sistema embebido sobre la VIII. REFERENCIAS
tarjeta Spartan 3E Starter Kit, accesible va web con
capacidades HTTP sobre TCP/IP capaz de monitorear y [1] W. Nicholas. Designing an Embedded Web Server (2000). U.S.A:
controlar variables analgicas o digitales sobre un Applied Computing Technologies. Recuperado el 2011 de
http://pdf.cloud.opensystemsmedia.com/embedded-
FPGA. El SWE puede adaptarse a cualquier sistema de computing.com/USSoftware.Win00.pdf
control o monitoreo con una estabilidad operacional [2] A, M., & J, A. (2010). Servidor Web Embebido en una FPGA con
aceptable Codiseo como Metodologa de Diseo. Innovation and
Development for the Americas. Arequipa: LACCEI.
[3] Digilent. (2006).Spartan-3E Starter Kit Board User Guide.
El prototipo posee capacidades HTTP para el Recuperado el 2011, de
transporte de datos adems de una interfaz grfica http://www.digilentinc.com/Data/Products/S3EBOARD/S3EStarte
HTML que facilita la operacin del mismo. El usuario r_ug230.pdf
[4] Atmel Corporation. (2011). Datasheet Atmega32. Recuperado
puede acceder al sistema remotamente mediante el 2011, de www.atmel.com
cualquier intrprete HTML con capacidades JavaScript [5] Xilinx Inc. (2008). MicroBlaze Processor Reference Guide for
y CSS, y est en la capacidad de modificar y monitorear EDK 10.1. Recuperado el 2011, de
parmetros de bajo nivel de los perifricos del sistema http://www.xilinx.com/support/documentation/sw_manuals/mb_re
f_guide.pdf
mediante el uso de objetos DOM HTML como: botones, [6] Dunkels, A. (2001). Design and Implementation of the lwIP
checkboxes, etc. TCP/IP Stack. Suecia: Swedish Institute of Computer Science.
Recuperado el 2011 de Recuperado el 2011 de
Uno de los aportes de este proyecto est en la http://www.sics.se/~adam/lwip/doc/lwip.pdf
[7] Xilinx Inc. (2009). OS and Libraries Document Collection.
experiencia adquirida en el uso de FPGAs de Xilinx, la Recuperado el 2011, de
cual deber ser considerada para realizar desarrollo de http://www.xilinx.com/support/documentation/sw_manuals/xilinx
sistemas basados en comunicaciones Ethernet, ya que se 11/oslib_rm.pdf
comprendi su tendencia aplicativa en campos [8] Network Working Group. (2009). Hypertext Transfer Protocol --
HTTP/1.1. Recuperado el 2011, de
emergentes como: control y supervisin de procesos http://www.w3.org/Protocols/rfc2616/rfc2616.html
productivos, domtica, transporte, tele-medicina, [9] Xilinx Inc. (2011). XPower Estimator User Guide. Recuperado el
posicionamiento global, servicios bancarios, 2011 de
informacin turstica, entre otros. http://www.xilinx.com/support/documentation/user_guides/ug440.
pdf

El Firmware desarrollado programado sobre el FPGA


XC3S500E, ocupa el 47% de los recursos disponibles,
por lo cual posee el 53% de recursos para almacenar
programacin, se puede pensar en una futura
incorporacin de multiprocesamiento mediante la
inclusin de otra instancia del Firm core Microblaze.

Al comprobar la alta capacidad de tecnologas


embebidas basadas en FPGAs, se concluye que se puede
implementar sistemas electrnicos complejos, al quedar
demostrado cmo es factible implementar una
arquitectura de un microcomputador mediante la
incorporacin de: un procesador Microblaze, memorias,
contadores, protocolos de comunicacin, etc.

You might also like