Anda di halaman 1dari 7

Implementacin de un Protocolo Bsico

de Comunicacin (BaCoP) sobre Redes


TCP/IP dedicado al Control en
MicroBlaze
MSc. Abel Lorenzo Morera1, Dr. Wilfredo Falcn Urquiaga2,

Dr. Jos Ral Vento lvarez3, Ing. Felix Carlos Prez Ruizcaldern4
1 ATI, Tecnologas de la Informacin y Automtica (UNE). Ciudad de la Habana, Cuba.
abel@ati.une.cu Tel: +537 8360574
2 Dpto. de Telecomunicaciones. Facultad de Informtica y Telecomunicaciones. Universidad de Pinar del Ro, Cuba.
falcon@tele.upr.edu.cu Tel: +5348 755453
3 Dpto. de Telecomunicaciones. Facultad de Informtica y Telecomunicaciones. Universidad de Pinar del Ro, Cuba.
vento@tele.upr.edu.cu Tel: +5348 779359
4 Departamento de Investigacin y Desarrollo, Centro de Desarrollo de la Electrnica y la Automtica. Pinar del Ro, Cuba.
fcarlos@cdea.co.cu

RESUMEN / ABSTRACT
En el presente trabajo se describen las tecnologas y procedimientos necesarios para el diseo e implementacin de un
protocolo de comunicacin para control de recursos de hardware en dispositivos embebidos.
Con este propsito se muestra la perspectiva de implementar sistemas de comunicacin sobre hardware reconfigurable,
haciendo uso de FPGAs, especficamente el kit de desarrollo Spartan 3E, el procesador embebido MicroBlaze, el mdulo IP
Ethernet Lite para el control de acceso al medio fsico; y las libreras de procedimientos de software lwIP y Xilkernel para
atender el paquete de protocolos TCP/IP y un pequeo sistema operativo multitarea que gestione las conexiones concurrentes
respectivamente.
Utilizando los recursos anteriores se implement el Protocolo Bsico de Comunicacin (BaCoP) descrito en el presente
documento.
Palabras Clave: Sistemas embebidos, Redes TCP/IP, Xilinx Spartan 3E, MicroBlaze, Ingeniera de Protocolos.

In this work the necessary technologies and procedures for designing and implementing a hardware resources control
communication protocol, on embedded devices, are described. This research has taken place at the University of Pinar del Ro
Hermanos Saz Montes de Oca.
With this purpose it has been shown the perspective of implementing communication systems on reconfigurable hardware,
specifically discussing the use of FPGAs. In particular the Xilinx Spartan 3E Starter Kit; the MicroBlaze embedded processor;
the Ethernet Lite IP module, for medium access control; and the lwIP and Xilkernel software procedure libraries have been
taken into consideration.
Using these resources the Basic Communication Protocol (BaCoP), described in this document, has been implemented.
KeyWords: Embedded Systems, TCP/IP networks, Xilinx Spartan 3E, MicroBlaze, Protocol Engineering.
Implementation of a Basic Communication Protocol over TCP/IP dedicated to Control in Microblaze

22
comunicacin en Redes TCP/IP para control con el procesador
INTRODUCCIN software MicroBlaze. [5]
La expansin creciente del uso de las redes Ethernet y TCP/IP Para darle solucin al problema expuesto se plantea la
en entornos de rea local ha potenciado que cada vez ms siguiente hiptesis:
esfuerzos estn dirigidos a la interconexin de servicios y todo
Sobre la base de:
ello ha obligado a la incorporacin de soluciones telemticas
que permitan interconectar aplicaciones de control a la red, Los conocimientos existentes sobre Ingeniera de
incorporndolas al mundo online. Protocolos en el diseo de protocolos de comunicacin en
Ya no es ciencia ficcin or hablar de refrigeradores, hornos redes.
microondas o cmaras de vigilancia conectados directamente a Todos los conocimientos existentes en el campo de la
la Internet. Todos estos son equipos electrodomsticos con telemtica actual. Adems teniendo en cuenta las
implementaciones de Circuitos Integrados en su interior, posibilidades actuales de la creacin de herramientas
capaces de comunicarse con la red y de prestar servicios informticas eficientes, as como de software orientados a
especficos en funcin de su diseo. complejos procesos.
Buscando cmo se han solucionado estos problemas en el Que existe experiencia suficiente de trabajo con FPGA en
mundo, se ha constatado que la forma empleada para lograr la UPR, especficamente con el kit de desarrollo Spartan
esta integracin es el diseo de protocolos especficos de 3E-500 Revisin C.
control, o en su defecto aplicaciones basadas en estndares de Que estos kit de desarrollo tienen incorporado una interfaz
comunicacin sobre redes TCP/IP ya consolidados, como es el RJ45 y un circuito integrado capaz de realizar las
caso de la comunicacin web. [1] funciones de control de la interfaz de red del modelo
Para el diseo de protocolos (o Ingeniera de Protocolos) TCP/IP.
existen diferentes metodologas, que en esencia buscan hacer Suponiendo:
verificar y validar as como describir las funciones y
caractersticas bsicas del protocolo con el fin de facilitar su El trabajo con una red local TCP/IP, orientado a conexin
futura implementacin, eliminando estados de los que no se y confiable a nivel de transporte.
sale, garantizando que todos los estados se alcancen, Que los recursos de hardware del kit de desarrollo Spartan
eliminando ambigedades y previendo todas las posibilidades 3E-500 son suficientes para permitir la ejecucin de la
[2]. Entre las ms conocidas se encuentran las Mquinas de torre de protocolos TCP/IP, incluyendo protocolos de
Estado Finitos y las Redes de Petri. Las primeras se utilizan nivel de aplicacin.
bsicamente en sistemas de parada y espera, con transiciones
El proceso de diseo de un protocolo simple de parada y
condicionadas a acciones independientes del tiempo y sin
espera.
periodicidad, mientras que las segundas estn ms relacionadas
con el disparo de temporizadores. Aplicando:
De tal modo, una vez diseado el protocolo entonces es El anlisis de la arquitectura del procesador embebido
posible programarlo en una plataforma habilitada con MicroBlaze.
comunicacin a una red, permitindole de este modo La verificacin del mdulo de propiedad intelectual (IP
interactuar con el resto de los dispositivos conectados a ella. Si core) Ethernet Mac Lite de Xilinx, para el manejo de la
el objetivo del protocolo diseado fuera entonces el control del interfaz fsica, el control de acceso al medio (MAC) y la
hardware de la plataforma se estara en presencia de un gestin del enlace lgico (LLC).
protocolo de comunicacin, muy til en aplicaciones
La implementacin de las funciones de la biblioteca de
domticas o inmticas. [3]
procedimientos de red lwIP (Light Weight Internet
Por otro lado, la posibilidad de incorporar comunicacin Protocol) para la implementacin de la torre de protocolos
TCP/IP a sistemas de hardware reconfigurable, permitiendo TCP/IP, incluyendo ARP, ICMP y UDP; as como el
acortar la fase de diseo y multiplicando la variedad de sistema operativo multitarea Xilkernel.
soluciones a desarrollarse, ofrece un espectro extraordinario de
La Mquina de Estados Finitos como definicin formal
aplicaciones que slo la imaginacin y creatividad del hombre
del Protocolo Bsico de Comunicacin (BaCoP).
sern capaces de llenar. [4]
Se puede afirmar:
Hasta el momento en que se inici esta investigacin no se
tenan antecedentes de la utilizacin de estos kits en la UPR Que los resultados derivados de la integracin de estas
para diseos con comunicacin TCP/IP, y es por ello que la herramientas ofrecern, junto a la definicin formal de una
inexistencia de un protocolo especfico de comunicacin en mquina de estados finitos, la posibilidad de gestionar
Redes TCP/IP para control con MicroBlaze, que permita el remotamente los recursos hardware del kit de desarrollo
control remoto de los recursos de hardware de dicha Spartan 3E-500 Revisin C.
plataforma, constituye el problema cientfico a tratar en esta
investigacin, a partir del cual se traz como objetivo de la
investigacin: la implementacin de un protocolo especfico de
Q = q0 (Espera), q1 (Autenticado)
DEFINICIN FORMAL, q0 (Espera) es el estado inicial.
EXPERIMENTACIN Y VALIDACIN q1 (Autenticado) es el estado final.
DEL PROTOCOLO BSICO DE = {001, 010, 011, 100, 101, 110, 111}
COMUNICACIN (BACOP).
Se dise un protocolo ubicado en el nivel de aplicacin del
Tabla de Transicin de BaCoP
modelo TCP/IP, con funcionalidades similares a aquellas de
protocolos que intercambian caracteres ASCII planos, como 001 010 011 100 101 110 111
por ejemplo HTTP, FTP, SMTP, POP3 y otros, basados en el q0 q1 q0 - - - - -
modelo cliente-servidor.[6]
En principio el servidor BaCoP, implementado en la tarjeta q1 - - q1 q1 q1 q1 q0
Spartan 3E quedar a la escucha de nuevas solicitudes de
conexin en el puerto TCP 5000, que una vez establecidas Funcin de Transicin Extendida:
reaccionan de una forma u otra a la llegada de comandos o
directivas desde el cliente. (q0, 001) q1 (q1, 101) q1
Se han definido dos estados para la mquina de estados finitos (q0, 010) q0 (q1, 110) q1
[7], [8]. Un estado inicial (Espera) y uno final (Autenticado), (q1, 011) q1 (q1, 111) q0
pues los estados concernientes a la conexin a nivel de
transporte como tal son definidos por la entidad de socket, lo (q1, 100) q1
cual no forma parte de los objetivos de este proyecto.
En el estado final, toda vez que se haya establecido la En trminos de Ingeniera de Protocolos y Mquinas de
conexin a nivel de transporte, el protocolo estar en Estados Finitos es evidente que resalten las transiciones sin
condiciones de aceptar nuevas conexiones y de atender las utilizar que aparecen en la tabla antes mostrada. Esto ltimo
establecidas, esperando por informacin de autenticacin para responde a la idea de hacer ms explcito el diseo del
permitir la transicin al estado siguiente y final (Autenticado). protocolo y a la vez apropiado para futuras extensiones y
Una vez en este estado final permitir entonces el acceso al servicios. Ms adelante se ver cmo influye esta decisin en
control de los recursos hardware. la conformacin del diagrama de estados de la mquina de
En el caso particular del protocolo de comunicacin propuesto estados finitos. Debido al nmero de estmulos del estado final
en este trabajo se ha definido un grupo de directivas, (Autenticado) no ha sido posible utilizar slo dos bits para la
asocindolas con las entradas binarias correspondientes (Tabla representacin binaria de los mismos y de esa forma
I), de modo que ms adelante pueda comprenderse mucho reutilizarlos en cada estado, aunque este resultado garantiza
mejor el modelado en Qfsm. una mejor comprensin del protocolo propuesto.

Tabla I: Representacin binaria de las directivas de protocolo. Modelado y Simulacin del Protocolo en Qfsm.
Envo de contrasea correcta 001 Para el modelado y simulacin del protocolo se ha utilizado el
software Qsfm. Las potencialidades que este software brinda a
Envo de contrasea incorrecta 010 la hora de representar procesos simples de comunicacin en
Estado de hardware (Pines) 011 redes mediante Mquinas de estados finitos, permite
perfectamente reproducir las condiciones bajos las cuales este
Comando incorrecto 100
protocolo funcionar. Se ha seleccionado el tipo Binary
Activacin de Pin 101 (binario), pues aunque la informacin que se intercambia es de
Desactivacin de Pin 110 tipo ASCII, este formato no est totalmente validado en Qfsm
para simular la mquina de estados finitos. La correspondencia
Salir 111 entre los distintos estmulos y sus equivalentes binarios ha sido
previamente definida.

Definicin y modelado del Protocolo Bsico de


Comunicacin.
Se usar la Mquina de estados finitos para definir el
protocolo bsico de comunicacin y para su posterior diseo,
modelado y simulacin se utilizar Qsfm, herramienta software
libre de cdigo abierto.
Siendo el autmata A = {Q, q0, F, } donde:

24
Luego de realizar el chequeo de integridad, la mquina de
estados finitos est lista para su simulacin que se realiza
mediante la interfaz mostrada en la figura 3.

Figura 1
Diagrama de Transicin del Autmata. Figura 3
Simulacin de la Mquina de Estados Finitos.
Como se aprecia en la figura 1, se definen 3 Salidas de Moore
pues as se logran establecer las 7 salidas posibles = {001, Aqu se introducen las posibles entradas al sistema en el
010, 011, 100, 101, 110, 111}. apartado Input. Especficamente en la figura anterior se aprecia
Ya se ha comentado anteriormente la razn de utilizar 3 bits el resultado de haber introducido el estmulo 001 en el
para la representacin, corriendo el riesgo de perder nivel de estado Espera, observndose en el diagrama de transicin de
Completamiento (Completeness), tal y como se muestra en la la mquina de estados finitos que ha ocurrido la transicin
figura 2, haciendo referencia a uno de los parmetros que se esperada.
ofrecen como resultado del chequeo de integridad de la
mquina de estados finitos en Qfsm, pero ganando en claridad
sobre el funcionamiento general del protocolo. Este trmino se Implementacin prctica del protocolo BaCoP en
refiere al uso de cada una de las combinaciones binarias Microblaze.
posibles, dado el nmero de salidas de Moore para representar Una vez que se tiene diseada, modelada y validada la
los estmulos en cada uno de los estados. El resto de esos mquina de estados finitos del protocolo en cuestin, es
parmetros, como se puede apreciar, muestran resultados posible entonces pasar a la fase de implementacin, llevando a
ptimos de diseo del protocolo. lenguaje C++ las rutinas que posibiliten la comunicacin en
funcin de la aplicacin que se est implementando el
protocolo.
En el caso particular de la aplicacin implementada en el
marco de esta tesis slo se ha tenido en cuenta la activacin y
la desactivacin de los leds presentes en la arquitectura de la
Spartan 3E-500.
Sin embargo lo que se ha pretendido es crear las bases para
futuras aplicaciones dando adems las posibilidades de
extender el uso del protocolo BaCoP, as como tomar este
proyecto como un acercamiento al mundo de la Ingeniera de
Protocolos, en el que Cuba apenas comienza a dar sus
primeros pasos.
En la implementacin prctica del protocolo se ha apelado
fundamentalmente a las funciones read y write, para el
intercambio de informacin entre el cliente y el servidor, cuyas
respectivas sintaxis se muestran a continuacin:

read(sd, receiveBuffer, RECV_BUFFER_LENGTH);


Figura 2 write(sd, sendBuffer, strlen(sendBuffer));
Chequeo de Integridad.

25
donde adems ha sido necesario definir las variables: sd, if(!strcmp(comandoPtr, "on")&& atoi(ledPtr)<=8 &&
identificador de socket; receiveBuffer, buffer de recepcin; atoi(ledPtr)>=1)
sendBuffer, buffer de transmisin y las longitudes de los {
arreglos de caracteres definidos por estos dos ltimos.
strcpy(char_buffer, cadena);
Ha sido necesario incluir las bibliotecas de procedimientos,
anteriormente mostradas, que permitirn utilizar las distintas comandPtr = strtok(char_buffer, " ");
funciones que el control del hardware de la tarjeta, el dataPtr = strtok(NULL, "\r");
tratamiento de las cadenas de texto para detectar los comandos pos=atoi(dataPtr);
y la atencin a los recursos de redes. A continuacin se
muestra el segmento de cdigo que habilita las bibliotecas en set_state(pos, 1);
cuestin: activate_state();
/* Xilinx Includes */ sprintf(sendBuffer, "Led %s en %s\r\nEntre
#include "xparameters.h" el comando:", dataPtr, comandPtr);
#include "xemaclite.h" write(sd,sendBuffer, strlen(sendBuffer));
#include "xgpio_l.h" }
#include "xutil.h" La funcin activate_state(), desarrollada en el marco de este
proyecto, es la encargada de invocar a la funcin
#include "xstatus.h" XGpio_mSetDataReg() que es la que a su vez interactuar
#include "xmk.h" directamente con el hardware de la tarjeta.
/* C Library Includes */
#include "string.h" Validacin del protocolo.
#include "stdlib.h" Es preciso aadir que la implementacin prctica del protocolo
/* lwIP Includes */ en este proyecto ha estado concentrada en el caso del servidor.
Se ha utilizado un cliente Telnet (BaCoP utiliza TCP como
#include "netif/xemacliteif.h" protocolo de transporte y permite la transferencia de caracteres
#include "lwip/tcpip.h" ASCII) con el que son perfectamente realizables las pruebas
#include "lwip/memp.h" necesarias para la validacin de la aplicacin. En la figura 5 se
muestra el resultado de las pruebas de comunicacin mediante
#include "netif/etharp.h" Telnet.
#include "lwip/sys.h"
#include "lwip/sockets.h" if (bytesReceived<=2)
Tambin es posible, a travs de una conexin RS232, {
comprobar las distintas etapas de la inicializacin de los
servicios de redes en el diseo (ver figura 4). if(bytesReceived==1)
{
while (bytesReceived==1)
{
strcat(char_buffer, receiveBuffer);
bytesReceived = read(sd, receiveBuffer,
RECV_BUFFER_LENGTH);
}
} else if(!strcmp(receiveBuffer, "\r\n"))
strcat(char_buffer, receiveBuffer);
Figura 4
}
Inicio de servicio BaCoP en MicroBlaze.

Una vez establecida una nueva conexin el sistema comienza a


procesar los comandos introducidos, como muestra la rutina
siguiente, encargada de detectar la correcta recepcin del
comando on n, con 1n8, que permite la activacin del led
identificado con el nmero n.

26
que desde cualquier punto de la red se pueda acceder a los
recursos de hardware de la tarjeta.

Figura 5
Comunicacin BaCoP a travs de cliente Telnet.

Tngase en cuenta que con un cliente Telnet los caracteres son


enviados uno a uno y ha sido por tanto necesario almacenarlos Figura 7
hasta recibir el comando totalmente. En la rutina de lenguaje C Ejemplo de aplicacin utilizando BaCoP.
mostrada anteriormente se muestra cmo se almacenan los
caracteres recibidos hasta que se recibe el carcter de retorno
\r\n. CONCLUSIONES
Se ha podido comprobar que es posible desarrollar la
transmisin confiable de datos sobre redes TCP/IP utilizando
el kit de desarrollo Spartan 3E 500 Starter Kit - revisinC - y
el procesador embebido MicroBlaze.
Especficamente:
Se utiliz el ncleo de propiedad intelectual Ethernet Lite
para la manipulacin de las tramas de datos en una LAN
Ethernet.
Se emple la biblioteca de procedimientos de red lwIP en
su interfaz Socket.
Se implement el Protocolo Bsico de Comunicacin
(BaCoP).
Ante las limitaciones que implica la utilizacin de
Figura 6 herramientas propietarias para modelado, Qfsm como software
Captura de tramas con Ethereal filtrando el puerto 5000 libre constituye una alternativa eficaz que logra implementar,
en una comunicacin con cliente Telnet. modelar y simular el protocolo deseado.

Utilizando el software sniffer Ethereal se realizaron capturas


de tramas durante la comunicacin entre una PC y la tarjeta
AGRADECIMIENTOS
con el servicio BaCoP implementado. En la figura 6 se Esta investigacin se llev a cabo en el marco del proyecto
muestra el resultado del filtrado de dicha captura de tramas ramal del MIC Plataforma Cubana de Conmutacin, con la
usando como parmetro el puerto 5000, por el cual el servidor participacin de la UPR, el ISPJAE y GKT, S.A entre otras
instalado en MicroBlaze estar escuchando nuevas solicitudes instituciones.
de conexin. A todos los compaeros involucrados en dicho esfuerzo
Especficamente en este caso se ha diseado el servidor para transmitimos nuestro eterno agradecimiento.
que responda a comandos que activen o desactiven los leds
presentes en la Spartan 3E-500. En la siguiente figura se
muestra un ejemplo del estado de los leds en el kit de
entrenamiento y la respuesta del protocolo al realizar la
REFERENCIAS
solicitud con el comando correspondiente. Como muestra la 1. PREZ RUIZCALDERN, F. C. Implementacin de un
figura 7 la comunicacin a travs de una red TCP/IP permitir Servidor Web sobre Hardware Reconfigurable. Tesis de

27
Grado. 2009. Universidad Hermanos Saiz Montes de Oca. Telecomunicaciones de la Facultad de Informtica y
Pinar del Ro. Cuba. Telecomunicaciones de la Universidad de Pinar del Ro.
2. MENGUAL GALN L. Ingeniera De Protocolos. vento@tele.upr.edu.cu
Universidad Politcnica de Madrid. 2007.
Wilfredo Falcn Urquiaga, graduado en Ingeniera en
3. TRUJILLO DAZ, A.; PIA RIVERA Y. Diseo e
Telecomunicaciones y Electrnica. Es Doctor en Ciencias y
Implementacin de Protocolo de Aplicacin para Inmtica.
Profesor Auxiliar. Trabaja actualmente en la Universidad de
Tesis de Grado. 2009. Universidad Hermanos Saz Montes de
Pinar del Ro como profesor en la carrera de
Oca. Pinar del Ro. Cuba.
Telecomunicaciones y Electrnica e imparte los temas
4. CABRERA SARMIENTO, A. J. Sistemas empotrados y Electrnica Digital. Se desempea como Decano de la
mdulos IP. Dpto. de Automtica y Computacin, Instituto Facultad de Informtica y Telecomunicaciones y es asociado
Superior Politcnico Jos Antonio Echeverra CUJAE. joven de la Academia de Ciencias de Cuba desde el ao 2007.
5. PORTILLA LPEZ VIGIL, B. M.; IGLESIAS falcon@tele.upr.edu.cu
MARTNEZ, M. E. Y FALCN URQUIAGA, W.
Implementacin de controladores para perifricos del kit de
desarrollo Spartan -3E de Xilinx. UPR. Mayo, 2008.
6. COMER, D. E. Redes globales de informacin con
Internet y TCP/IP. Principios bsicos, protocolos y
arquitectura. Tercera Edicin, Prentice Hall.
7. BAZILIO MARTINS, C. Formal Analysis of Protocols
and Distributed Algorithms: A Based-Language Approach.
Tesis Doctoral. Universidad Catlica de Rio de Janeiro. PUC-
Rio. Brasil. 2005.
8. GUTIRREZ OROZCO J. A. Mquinas de Estados
Finitos. Escuela Superior de Cmputo, 2008.

AUTORES
Abel Lorenzo Morera, graduado de Ingeniera en
Telecomunicaciones y Electrnica. Es Mster en Ciencias de
Sistemas de Telecomunicaciones y Profesor Asistente. Trabaj
durante 8 aos en la Universidad de Pinar del Ro como
profesor de Telemtica. Actualmente trabaja en la Empresa
Tecnologas de la Informacin y Automtica (ATI) de la
Unin Elctrica (UNE) como especialista supervisor de
proyectos de Telecomunicaciones.
abel@ati.une.cu
Felix Carlos Prez Ruizcaldern, graduado en Ingeniera en
Telecomunicaciones y Electrnica. Es Profesor Instructor. En
estos momentos se desempea como Investigador en el Centro
de Desarrollo de la Electrnica y la Automtica (CDEA), su
trabajo se enfoca en el desarrollo de Sistemas Embebidos para
el Monitoreo y Control Automtico, empleando
Microcontroladores y FPGAs as como la creacin de las
interfaces de gestin de los referidos sistemas utilizando los
lenguajes Java, JavaScript, PHP y Bases de Datos del tipo
PostgreSQL.
fcarlos@cdea.co.cu

Jos Ral Vento lvarez, graduado de Ingeniera en


Telecomunicaciones. Es Doctor en Ciencias Tcnicas y
Profesor Auxiliar. Labora actualmente en la Universidad de
Pinar del Ro como Director de Informatizacin de la
Universidad de Pinar del Ro y Profesor del Departamento de

28

Anda mungkin juga menyukai