Vous êtes sur la page 1sur 11

CAPTULO 2

ENTORNO DE TRABAJO.
A lo largo de este captulo, realizaremos una breve descripcin de las
herramientas empleadas durante el desarrollo del proyecto. Se analizar por un
lado, el equipo empleado y, por otro, las distintas aplicaciones y herramientas
software necesarias para el procesamiento de la informacin.

1 Hardware.
Como se ha comentado en el captulo anterior, hemos escogido un equipo
de la empresa Crossbow Technology Inc. para implementar la aplicacin,
concretamente el Professional Kit. Este kit incluye los siguientes dispositivos:

5 Motes: compuestos de una placa principal, que incluye un transceptor


radio y una unidad de procesamiento, y una placa con sensores.

1 Placa programadora: se emplea para programar la unidad de


procesamiento de la placa principal de cada mote.

1 Gateway: compuesto de una placa principal conectada a una placa


programadora cuya funcin es actuar de puente entre la red de sensores y
un PC o servidor.

2
CAPTULO 2. ENTORNO DE TRABAJO

1 Tarjeta de adquisicin de datos: permite integrar otros sensores


comerciales en la red.

1 Placa principal adicional: tarjeta radio con un diseo distinto a la que


incorporan los motes pero con las mismas caractersticas.

1.1 Placa principal.


Los motes se comunican entre s usando el canal radio, enviando y
recibiendo mensajes a una determinada frecuencia. Los componentes necesarios
para la comunicacin entre motes, se encuentran integrados en un chip OEM 1
modelo MPR2600. Este mdulo pertenece a la familia MICAz, dispositivos que
trabajan a una frecuencia de 2.4 GHz, compatibles con el estndar IEEE 802.15.4 y
utilizados en redes inalmbricas de sensores. La Figura 1 muestra la placa principal
de los nodos conectada a la alimentacin.

El mdulo MPR2600, emplea como transceptor radio el Chipcon CC2420 de


Texas Instrument e integra el microcontrolador de 8 bits ATmega128L de Atmel, el
cual dispone de una memoria flash programable interna de 128 KB. Adems, los
nodos disponen de una memoria flash externa de 512 KB para la programacin va
OTAP2 o para almacenar datos muestreados del entorno. En la Figura 2Figura se
representa el diagrama de bloques de la placa principal.

Por otra parte, la placa dispone de tres leds accesibles por el usuario que
pueden usarse a modo de bandera a la hora de depurar cdigo o simplemente para
informar de algn evento.

Figura 1. MPR2600-MICAz

1
Original Equipment Manufacturer (OEM): compaa que ensambla y vende componentes fabricados
por otras empresas como si hubiesen sido fabricados por ella.
2
Over-The-Air-Programing (OTAP): tcnica inalmbrica de programacin de nodos.

3
CAPTULO 2. ENTORNO DE TRABAJO

Para garantizar un correcto funcionamiento del transceptor, es necesario


que la tensin de alimentacin se encuentre dentro del rango 2.7 - 3.6 V. Esta
tensin puede proporcionarse bien mediante dos bateras tipo AA usando el
conector Molex de dos pines, o bien mediante el conector de 51 pines usando la
placa de programacin conectada al puerto USB del PC.

Figura 2. Diagrama de bloques del MPR2600

El transceptor utilizado es compatible con el estndar IEEE 802.15.4 y ha


sido diseado expresamente para aplicaciones de baja potencia y reducidos niveles
de tensin de alimentacin. Utiliza una modulacin O-QPSK (Offset Quadrature
Phase Shift Keying) con pulsos semisinusoidales y una tasa efectiva de transmisin
de 250 Kbps. Adems, se realiza un ensanchamiento de espectro por secuencia
directa con un factor de ensanchado de 9 dB.

De acuerdo con el estndar 802.15.4, se dispone de 16 canales para la


comunicacin con un ancho de banda de 5MHz cada uno. Estos canales se
encuentran numerados del 11 al 26, siendo el canal 11 el correspondiente a la
frecuencia 2.405 GHz y el 26 el correspondiente a 2.480 GHz.

Asimismo, la potencia de transmisin de los motes es programable,


oscilando en un rango entre 0 dBm y -25 dBm. La Error! No se encuentra el origen
de la referencia. muestra las distintas potencias de transmisin disponibles junto a
su cdigo de seleccin y al correspondiente consumo de corriente:

4
CAPTULO 2. ENTORNO DE TRABAJO

Tabla 1. Potencias de transmisin del CC2420

Para una informacin ms detallada sobre las caractersticas de la placa


principal puede consultarse [41].

1.2 Placa de sensores.


El Professional Kit contiene en cada mote una placa de sensores, conectada
a la placa principal a travs del conector Molex de 51 pines, que permite medir
variables del entorno. En la Figura 3 se aprecia la placa de sensores incluida en el
kit. El modelo en cuestin es el MTS400CA y dispone de los siguientes sensores
[42]:

Sensor de humedad y temperatura.

Sensor de presin baromtrica y temperatura.

Sensor de luz.

Acelermetro de dos ejes.

Figura 3. Placa de sensores MTS400CA

1.3 Placa programadora.


Conectada al PC mediante un puerto USB, la funcin de la placa es
programar cada uno de los motes a travs del conector de 51 pines usando un

5
CAPTULO 2. ENTORNO DE TRABAJO

procesador integrado en la placa (ISP, In System Programmer). Para ello, se


descarga el cdigo de la aplicacin en el ISP a travs del puerto USB y, a
continuacin, se programa el nodo. Para el desarrollo de la aplicacin se ha
empleado el modelo MIB520CB, el cual se muestra en la Figura 4. El diagrama de
operacin de la placa programadora se representa en la Figura 5.

Figura 4. Tarjeta de programacin MIB520CB.

Cuando conectamos una placa de programacin al PC, ste establece dos


puertos serie virtuales, N y N+1, a travs de los cuales se comunicar con la placa.
El puerto N se utiliza en la etapa de programacin de los nodos y el N+1 para la
comunicacin con el PC.

Figura 5. Diagrama de operacin.

1.4 Estacin base (Gateway).


La estacin base est compuesta por una placa principal conectada a una
placa de programacin. Su funcin es actuar como nexo de unin entre la red
inalmbrica de sensores y el PC. La estacin base se muestra en la Figura 6.

Tanto la placa principal como la placa de programacin son iguales a las


empleadas en la comunicacin y en la programacin de los motes,
respectivamente. Por lo tanto, al conectar la estacin base al PC se crearn otros
dos puertos serie virtuales, X y X+1, donde X se emplea para programarla y X+1
para la comunicacin con el PC.

6
CAPTULO 2. ENTORNO DE TRABAJO

Figura 6. Estacin base

1.5 Tarjeta de adquisicin de datos.


La tarjeta de adquisicin de datos se emplea como una plataforma general
de medida para conectar a la red distintos tipos de sensores. Adems, incluye un
sensor de humedad y otro de temperatura. Su diseo se observa en la Figura 7.

Figura 7. Tarjeta de adquisicin de datos MDA300CA

Dispone de 11 canales de entrada para seales analgicas y diferenciales y


otros 6 para seales digitales. Estos ltimos pueden usarse como pines digitales de
entrada/salida. Asimismo, dispone de tres pines que proporcionan 5V, 3.3V y 2.5V
respectivamente para, por ejemplo, poder excitar sensores externos [42].

2 Software.
Las principales herramientas software necesarias para el desarrollo de la
aplicacin de localizacin son, por un lado, los sistemas operativos Ubuntu 8.04 y
TinyOS 2.1 y, por otro, los lenguajes de programacin nesC y Java.

7
CAPTULO 2. ENTORNO DE TRABAJO

2.1 TinyOS.
TinyOS es un sistema operativo de cdigo abierto diseado especficamente
para redes inalmbricas de sensores. Se caracteriza por tener una arquitectura
orientada a componente, lo que facilita una rpida implementacin a la vez que se
minimiza cdigo, siendo este ltimo un factor a destacar debido a las limitaciones
de memoria de este tipo de redes.

La librera de componentes de TinyOS incluye protocolos de red, servicios


distribuidos, drivers de sensores y herramientas de adquisicin de datos ya
configurados para ser usados, aunque tambin es posible modificarlos para
desarrollar aplicaciones especficas.

TinyOS no es un sistema operativo en el sentido tradicional, es un entorno


de programacin para sistemas integrados que permite disear sistemas
operativos con funciones especficas dentro de cada aplicacin. La finalidad de este
sistema de programacin es asegurar que el cdigo correspondiente a cada
aplicacin sea lo menor posible. Adems, TinyOS no posee un sistema de archivos,
soporta nicamente asignacin de memoria esttica, implementa un modelo de
tareas simple y minimiza el nivel de abstraccin.

TinyOS presenta un modelo de programacin codificado en lenguaje nesC.


Al igual que otros sistemas operativos, TinyOS se organiza en capas, de modo que
la capa ms baja es la ms cercana al nivel hardware, mientras que cuanto ms alto
es el componente ms prximo se encuentra a la aplicacin [43].

La estructura de directorios de TinyOS es la siguiente [44]:

/apps: incluye distintas aplicaciones de ejemplo de programacin en


TinyOS.

/support : contiene el cdigo fuente del Toolchain.

/tos : se subdivide en los directorios:

/chips

/interfaces: almacena las interfaces provistas por los componentes


primitivos y las aplicaciones de ejemplo.

/lib: contiene componentes e interfaces del sistema y de las distintas


plataformas soportadas por TinyOS.

/platforms: almacena los ficheros necesarios para la ejecucin en


distintas plataformas.

8
CAPTULO 2. ENTORNO DE TRABAJO

/sensorboard: incluye ficheros especficos de cada placa sensora.

/system: contiene los componentes primitivos que proporciona TinyOS.

/types: incluye los tipos que se usan en las primitivas de TinyOS.

Una aplicacin en TinyOS es un conjunto de componentes que interactan


entre s, siendo cada uno de ellos una entidad funcional. Existen tres conceptos
fundamentales relacionados con la comunicacin entre componentes: los
comandos, los eventos y las tareas. Los comandos y los eventos son mecanismos
empleados en la comunicacin entre componentes, mientras que una tarea se
utiliza en operaciones concurrentes dentro de un mismo nodo.

Un comando es, por lo general, una solicitud de un servicio a otro


componente, por ejemplo, la lectura de un sensor. Un evento sera, siguiendo con
el ejemplo anterior, una seal de respuesta indicando que se ha completado el
servicio solicitado. Los eventos pueden tambin producirse de manera asncrona
por interrupciones hardware o por la llegada de mensajes.

Los comandos y los eventos, en lugar de realizar su funcin en el preciso


instante de la llamada, pueden aplazar su ejecucin usando las tareas. Las tareas, a
diferencia de los comandos y los eventos, son funciones que no se ejecutan en el
instante de la llamada sino que son ejecutadas por el planificador de TinyOS
posteriormente.

2.2 NesC.
NesC [43] es un lenguaje estructurado orientado a componente y diseado
especficamente para sistemas integrados, como por ejemplo, las redes de
sensores. La sintaxis de nesC es similar a la de C y define un modelo de
concurrencia basado en tareas y en manejadores de eventos hardware. Asimismo,
es capaz de detectar condiciones de carrera durante el proceso de compilacin.

El modelo de concurrencia emplea dos hilos durante la ejecucin de una


aplicacin: las tareas y los manejadores de eventos hardware. Las tareas son
funciones cuya ejecucin es postergada, pero que una vez iniciada su ejecucin no
se detienen hasta completarse. Los manejadores de eventos hardware tambin se
ejecutan hasta el final pero, a diferencia de las tareas, s pueden generar
interrupciones en la ejecucin de otra tarea o manejador.

Debido a que las tareas y los manejadores pueden ser interrumpidos


durante su ejecucin por otro cdigo asncrono, los programas en nesC son
susceptibles de sufrir condiciones de carrera. Para evitar estas situaciones, nesC
utiliza declaraciones atmicas.

9
CAPTULO 2. ENTORNO DE TRABAJO

El lenguaje nesC es una extensin de C diseada para abarcar el modelo de


ejecucin de TinyOS. Se muestran a continuacin los conceptos fundamentales
relacionados con nesC/TinyOS:

Aplicacin: consiste en uno o ms componentes ensamblados (wired) que


forman un programa ejecutable.

Componente: constituyen el bloque bsico para las aplicaciones escritas en


nesC. Existen dos tipos de componentes: mdulos y configuraciones. Por
otra parte, un componente puede a su vez, proporcionar y usar interfaces.

Mdulo: componente que implementa una o ms interfaces.

Configuracin: componente que ensambla a otros componentes,


conectando las interfaces usadas por algn componente a las interfaces
provistas por otros. Es lo que se conoce como wiring. La idea es que pueda
desarrollarse una aplicacin como un conjunto de mdulos, uniendo stos
mediante una configuracin dada. Toda aplicacin en nesC est descrita
por una configuracin, conocida como configuracin de alto nivel, que
especifica los componentes de la aplicacin y las interfaces que provee y
usa cada uno.

Interfaz: se emplea para proporcionar una definicin de la interaccin de


dos componentes. En nesC las interfaces son bidireccionales. Para que un
componente pueda llamar a los comandos de una interfaz, debe
implementar los eventos de dicha interfaz. Un nico componente puede
solicitar o proveer mltiples interfaces y mltiples instancias de la misma
interfaz. Las interfaces son el nico punto de acceso de un componente.

2.3 Java.
Java es un lenguaje de programacin orientado a objetos desarrollado por
Sun Microsystems a principios de los aos 90. El lenguaje en s mismo toma mucha
de su sintaxis de C y C++, pero tiene un modelo de objetos ms simple y elimina
herramientas de bajo nivel, como la manipulacin directa de punteros o memoria.

Las aplicaciones Java estn tpicamente compiladas en un bytecode3, a


diferencia de lenguajes como C o C++ que generan un fichero ejecutable durante la
compilacin. Java es, por tanto, un lenguaje interpretado.

3
Fichero binario que contiene el cdigo mquina generado por el compilador e interpretado por una
mquina virtual.

10
CAPTULO 2. ENTORNO DE TRABAJO

Adems de las anteriores, podemos mencionar como caractersticas


fundamentales de Java su robustez, simplicidad y la capacidad de programacin
multihilo [45].

2.4 Ubuntu.
Ubuntu es un sistema operativo de cdigo abierto basado en la
distribucin4 Debian GNU/Linux. Es una distribucin relativamente reciente ya que
fue creada en 2004 por el sudafricano Mark Shuttleworth. Est patrocinada por la
empresa Canonical Ltd. y tiene como objetivo la facilidad y la libertad de uso, los
lanzamientos regulares (cada 6 meses) y la sencillez en la instalacin [46].

En este proyecto se ha empleado la versin con soporte tcnico de larga


duracin (LTS) Ubuntu 8.04: Hardy Heron.

Ubuntu, al igual que la mayora de distribuciones GNU/Linux, tiene como


sistema de archivos predeterminado el sistema ext3, a diferencia del sistema NTFS
empleado por los sistemas operativos Windows de los ltimos aos.

Asimismo, el gestor de ventanas predeterminado es GNOME y el formato


de los paquetes software es, por ser una distribucin basada en Debian, de
extensin deb.

4
Variante del sistema operativo GNU/Linux que incorpora determinados paquetes software para
satisfacer las necesidades de un grupo especfico de usuarios.

11

Vous aimerez peut-être aussi