• No se han encontrado resultados

III. Clasificación de las bibliotecas según los recursos del sistema a gestionar

III.4 Biblioteca “ZigBee”

Desde el punto de vista de las comunicaciones, esta biblioteca es la más importante y una de las más complejas e interesantes a nivel de procesamiento, puesto que se encarga de gestionar completamente la capa de comunicaciones haciendo un extenso uso de la biblioteca _CEI_queue. Aunque sus bloques funcionales están enfocados principalmente para el control de los recursos del protocolo inalámbrico ZigBee, también se incluyen funcionalidades adicionales como la gestión de mensajes relacionados con la comunicación con el PC al ser ello también parte de la red en si misma (monitorización y control desde el ordenador central).

Es necesario destacar que esta biblioteca, denominada _CEI_zb, está desarrollada principalmente para el control del módulo de comunicaciones “de facto” implementado en la plataforma Cookies, que es el ETRX2 de la empresa Telegesis, tal

y como se ha descrito en el capítulo I. De hecho, los bloques funcionales están basados en los recursos de dicho módulo.

En este punto se hace necesario estudiar ciertos aspectos con el fin de responder a los requisitos de portabilidad y flexibilidad de la plataforma software. Aunque se trate de un módulo especifico de comunicaciones, la filosofía de los bloques funcionales de esta biblioteca se basa en determinados aspectos clave para el control del protocolo ZigBee, que son de aplicación común a cualquier módulo existente en el mercado puesto que finalmente se trata de un protocolo que posee características estandarizadas para su funcionamiento y gestión. Estos aspectos se enumeran de forma general a continuación, aunque su uso se extiende en toda la biblioteca:

Interfaz serie y control basado en comandos AT: La mayoría de los módulos comerciales actualmente poseen firmwares basados en el control mediante los comandos AT, por lo que no es sólo una característica intrínseca del módulo ETRX2.

Gestión de parámetros de la Red: Aspectos como direcciones MAC y Short Address, identificadores de red, conexión y reconexión a una red, configuración de claves de seguridad, canal de comunicación, entre otros parámetros básicos de ZigBee, se pueden encontrar en cualquier módulo de comunicaciones comercial en la actualidad.

Registros de configuración y control: Tanto el ETRX2 como muchos otros fabricantes poseen la opción de modificar registros de configuración en los módulos, con el fin de poder variar parámetros relacionados con la comunicación serie, periféricos de entrada y salida, GPIO, claves de seguridad, entre otros parámetros básicos para el funcionamiento del hardware.

Implementación del ZigBee Device Object (ZDO): el módulo ETRX2 proporciona funciones para gestionar el ZDO, lo cual es fundamental para controlar y depurar la red inalámbrica ZigBee, además de ser uno de los mecanismos que permite realizar la interoperabilidad entre módulos. El ZDO, como se comentará más adelante, es un estándar dentro de la pila ZigBee y por tanto ha de estar implementado en la mayoría de los módulos de comunicaciones comerciales.

Aunque es cierto que las instrucciones y los comandos utilizados para las funciones de la biblioteca están basados en el firmware del ETRX2, y la descripción de las características del módulo ZigBee se hará desde el punto de vista de este módulo, los parámetros de configuración han de ser los mismos para cualquier otro módulo que

se implemente, sólo realizando ajustes a bajo nivel para adaptar la configuración a otro dispositivo en concreto. De hecho, como se verá en el capítulo 5, la biblioteca fue implementada y probada en una aplicación real de despliegue con un módulo de comunicaciones de otro fabricante, el Zigbit de la empresa Atmel [ATMEL], pero la filosofía de los bloques funcionales y la interfaz con los niveles superiores era la misma, comprobando su correcto funcionamiento en condiciones reales de funcionamiento.

A continuación se muestra la estructura global de _CEI_zb, y los bloques funcionales incluidos en su arquitectura:

Figura 3.4: estructura general de la biblioteca _CEI_zb.

Como se verá más adelante, esta biblioteca permite tener un control total de las tareas relacionadas con el módulo de comunicaciones y las conexiones inalámbricas, sobre todo por el hecho de que facilita y ahorra un gran trabajo al desarrollador de una aplicación gestionar los parámetros de la red ZigBee, puesto que con unos simples cambios en la configuración se puede establecer y mantener una red totalmente operativa. Del mismo modo, la biblioteca permite gestionar tanto los mensajes que se envían y reciben a través del módulo ZigBee, pero además de ello, se pueden también gestionar los mensajes que se pretenden enviar a la estación central donde se encuentra la interfaz de monitorización del sistema conjunto (caso del COO) para así poder mostrar mensajes de información y alertas sobre los eventos

que ocurren en la red inalámbrica.

Como se ha comentado anteriormente, estos 5 bloques funcionales de _CEI_Zb hacen especial uso de la biblioteca _CEI_queue, para así poder realizar una gestión eficiente de los mensajes que circulan por la comunicación serie mediante la UART.

Hasta ahora se ha hecho una presentación general de las cuatro bibliotecas base que forman parte de la plataforma software y se ha comentado las principales características y funcionalidades típicas de cada una. En el siguiente apartado se entrará en los detalles funcionales de cada uno de los bloques de cada biblioteca, haciendo especial hincapié en aquellos que son críticos para el funcionamiento tanto de la plataforma hardware, como de las comunicaciones inalámbricas.