DISEÑO Y DESPLIEGUE DE UNA RED INALÁMBRICA DE SENSORES COGNITIVA, ROBUSTA Y ESCALABLE

Durante los últimos años se ha observado un notable incremento en la penetración de las redes inalámbricas en nuestra sociedad, teniendo previsiones de crecimiento bastante elevadas con la irrupción de Internet de las Cosas (IoT). Sin embargo, esta interconexión masiva desemboca en la aparición de problemas como son principalmente la saturación del espectro radioeléctrico o las interferencias provocadas entre sistemas, lo que repercute en la calidad del servicio y por lo tanto supone un problema para la conexión de elementos.

El B105 lab tiene como una de sus líneas principales de investigación el desarrollo de redes inalámbricas de sensores cognitivas (CWSN, Cognitive Wireless Sensor Networks), es decir, redes compuestas por dispositivos con la capacidad de modificar sus parámetros de comunicación dinámicamente, seleccionando las zonas del espectro con menos ruido e interferencias y por consiguiente, capaces de optimizar las prestaciones globales de la red.

Proyectos anteriores se centraron en el estudio de estos dispositivos, desarrollando la plataforma cNGD (cognitive New Generation Device). Se trata de un nodo que incluye la torre de protocolos de Microchip, que fue modificada para poder albergar tres transceptores radio, consiguiendo trabajar simultáneamente en las bandas de libre acceso de 434, 868 y 2400 MHz.

Plataforma cNGD sobre la que se ha trabajado
Plataforma cNGD sobre la que se ha trabajado

Este Trabajo Fin de Grado los adopta como base y se centra en diseñar e implementar distintas funcionalidades en la actual pila de protocolos, con el objetivo de conseguir interconectar varios cNGDs bajo un modelo de red de tipo malla fiable, robusto y escalable. Estos mecanismos se deben adaptar al tipo de dispositivo, el orden de su llegada a la red y a la frecuencia de trabajo.  Los principales requisitos que se han impuesto en el diseño de la red son:

  • Aceptar a todos los dispositivos que deseen incorporarse mientras la red disponga de capacidad para registrarlos.
  • Garantizar la unicidad en la asignación de la direcciones de red,  para posteriormente, poder realizar correctamente el encaminamiento de paquetes.
  • Que los coordinadores de red sepan reaccionar ante variaciones en la estructura de la red (principalmente conexión y desconexión de coordinadores).
  • Asegurar un máximo de 4 saltos en el encaminamiento de paquetes hasta alcanzar al destinatario.
  • Otros: Inclusión de mecanismos de fiabilidad en las transmisiones de mensajes, no inundar la red con la emisión de paquetes broadcast o informar a las capas superiores del éxito o fracaso en la realización de las operaciones.

Tras la etapa de implementación, modificación y adaptación del software del cNGD, se ha procedido a desplegar la red, midiendo y analizando los resultados obtenidos. Efectivamente, se han cumplido los requisitos impuestos, es decir, se ha conseguido la interconexión de varios cNGDs bajo un modelo de red robusto y fiable, que puede servir de soporte para futuras líneas de trabajo que se centren en las capas de aplicación o en la capa cognitiva del cNGD.

 

TFG: DESARROLLO DE UNA INTERFAZ INALÁMBRICA IEEE 802.11 PARA LA IMPLEMENTACIÓN DE FUNCIONALIDADES DE UN NODO PASARELA PARA UNA RED INALÁMBRICA DE SENSORES COGNITIVA

Las redes cognitivas de sensores, CWSN por sus siglas en inglés (Cognitive Wireless Sensor Network) son capaces de modificar sus parámetros de transmisión y recepción, adaptándose a las variaciones del entorno, permitiendo optimizar la comunicación. Estas redes son capaces, por ejemplo, de modificar la modulación, la velocidad de transmisión o la frecuencia de emisión, recurriendo a las bandas menos saturadas y por tanto, optimizando la comunicación. Estas redes además, suelen contar con numerosos sensores, algunos de ellos usados para obtener información del entorno y otros empleados en la propia optimización de la comunicación.

Como indica el título del proyecto, durante el mismo se ha trabajo en la mejora del banco de pruebas para redes inalámbricas de sensores cognitivas del B105, conocido como TestBed cNGD, donde cNGD  son las siglas de cognitive New Generation Device, nombre que reciben los nodos que conforman esta red cognitiva.

cNGD

Fotografía de un nodo cNGD

El proyecto se ha centrado en el diseño de un nodo pasarela, que permite una comunicación sencilla entre un ordenador y la CWSN, pudiendo obtener información de ésta. El diseño de este nodo se ha basado en el estándar IEEE 802.11 ya que está muy extendido y existen numerosos dispositivos que lo implementan.

Para diseñar este nodo pasarela, se ha recurrido a las cabeceras de expansión del cNGD, que permiten la colocación de distintos módulos que aumentan sus funcionalidades. Se ha creado, por tanto, un nuevo módulo Wi-Fi compatible con dichos pines. Durante este proyecto se ha realizado tanto el diseño del mismo como la implementación en circuito impreso.

Para que este módulo de expansión sea capaz de funcionar en los nodos, ha sido necesario crear software nuevo propio para el módulo, así como modificar el software del cNGD, añadiendo nuevas funciones, modificando las ya existentes y eliminado las que se han quedado obsoletas.

A día de hoy, aún faltan por realizar algunas pruebas, ¡¡pero la implementación parece ser todo un éxito!!

El módulo de expansión Wi-Fi es el que aparece al principio de esta publicación.

Para dotar a este nodo, y en general, a cualquier nodo de mayor movilidad, se ha realizado también el diseño e implementación de un sistema de carga de baterías de litio. Este módulo de expansión permite actualizar la antigua alimentación a pilas, a una basada en baterías de litio recargables, más cómoda y eficiente. Este sistema de carga, igual que ocurre con el módulo Wi-Fi, hace uso de los pines de expansión con los que cuenta el nodo. El módulo, es capaz de cargar la batería desde diferentes fuentes de alimentación y permite simultáneamente alimentación y carga. Este módulo se puede usar en cualquier nodo de la red sin que sean necesarias modificaciones.

Las pruebas para este módulo sí que se han realizado ya y se ha comportado según lo esperado, por lo que se puede dar por finalizado el mismo y realizar el montaje para que todos los nodos de la red dispongan de un cargador.


ChargerPCB

Módulo de expansión cargador de baterías

 

TFM: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO DE ADQUISICIÓN DE DATOS PARA UN NODO DE UNA RED DE SENSORES INALÁMBRICA

Las Redes de Sensores Inalámbricas (Wireless Sensor Networks, WSN) son un campo en auge en los últimos años debido a sus múltiples aplicaciones en distintos sectores (agricultura, medio ambiente, industria, seguridad, etc.). Las WSN se postulan, dentro de las tecnologías inalámbricas, como una de las opciones de futuro más prometedoras debido, entre otras cosas, a la inminente llegada del Internet de las Cosas (Internet of Things, IoT). Es por estas razones que los grandes fabricantes han lanzado líneas de investigación centradas en esta tecnología.

Las WSN consisten en un conjunto de pequeños nodos sensores que se comunican inalámbricamente para monitorizar distintos parámetros del ambiente, como pueden ser humedad, temperatura, movimiento, actividad, presión, etc.

Estos nodos están formados generalmente por un microcontrolador, sensores, memoria, un transceptor radio y batería; y existen gran cantidad de nodos o plataformas con distintos componentes. Debido a esta gran diversidad de nodos, se hace necesario tener una capa de abstracción hardware o sistema operativo que permita utilizar la misma aplicación de redes de sensores en distintas plataformas hardware y proporcionar herramientas para desarrollar aplicaciones más complejas.ModuleAcquisition

La eficiencia de este sistema operativo es algofundamental en sistemas de bajos recursos como los utilizados, por ello existen numerosas líneas de investigación cuyo objetivo es optimizar estos sistemas operativos haciéndolos dinámicos y proporcionándoles inteligencia. Para ello es necesario proporcionar ciertos datos externos al sistema operativo para que pueda adaptarse dinámicamente al entorno de cara a optimizar su eficiencia. Estos datos externos pueden ser la temperatura del nodo, su movimiento, su consumo, el nivel de batería, así como datos de otros nodos cercanos como la potencia recibida en la interfaz radio, sus parámetros característicos o su estado.

Proporcionar dichos datos externos será el objetivo principal a satisfacer a lo largo de este Trabajo Fin de Máster (TFM). Además, cabe destacar la importancia de la capa de abstracción, ya mencionada anteriormente, que el sistema debe facilitar a la aplicación de nivel superior que utilice sus servicios.

TFM: Diseño y análisis de estrategias para el co-diseño hardware/software

El principal objetivo de este proyecto, es el de caracterizar los parámetros más importantes en el diseño de sistemas empotrados (tiempo de ejecución, consumo, uso de memoria, área, etc.) de una misma aplicación implementada de diferentes formas, para ver las ventajas y desventajas de cada una de las estrategias de co-diseño hardware/software.

La aplicación elegida para este propósito se basa en la utilización del Convertidor de Analógico a Digital (CAD) disponible en la tarjeta ZYBO Board de Xilinx. Esta tarjeta pertenece a la familia Zynq 7000, que está orientada al diseño de sistemas empotrados incluyendo además de una FPGA un microcontrolador ARM embebido. Inicialmente, se ha realizado un control del convertidor sobre máquina desnuda. A continuación, se ha introducido el sistema operativo Linux y se ha realizado un controlador para la lectura del hardware. Se ha elegido la utilización de un módulo integrado en la tarjeta, para analizar la diferencia de prestaciones a la hora de acceder a señales externas, así como la diferencia de complejidad en el diseño y flexibilidad de cada una de estas implementaciones.

Posteriormente, se continuó con el procesado de los datos obtenidos de la lectura del CAD realizando una Transformada de Fourier Rápida (FFT). Se ha elegido este tipo de procesado por ser una funcionalidad típica de los sistemas de procesado de señal, y que requiere alta capacidad de cómputo. Para este cometido, inicialmente se implementó un controlador software para el núcleo del sistema operativo Linux que realice el procesado. Finalmente, se utilizó un módulo hardware para la realización del cálculo, y el controlador correspondiente para la lectura del hardware. Así, es posible comparar la implementación de un cálculo complejo mediante software, o mediante la utilización de un módulo hardware.

Finalmente, se realizaron medidas de tiempo de ejecución, potencia instantánea, energía consumida, porcentaje de cpu y memoria utilizado, y área de la FPGA utilizada para cada una de las aplicaciones.

Gran parte de este proyecto, consiste en el manejo de las distintas herramientas que se utilizan en el proceso de co-diseño hardware/software. En este caso, debido a la plataforma elegida (ZYBO Board de Xilinx) se utilizan las herramientas proporcionadas por el fabricante, dado que son las que dan soporte al hardware utilizado.

En la parte hardware, se utiliza durante todo el proceso la herramienta Vivado Design Suite de Xilinx con el objetivo de configurar la lógica programable necesaria para cada una de las fases del proceso de diseño. Esta herramienta es muy potente, y ofrece múltiples funcionalidades de las cuales en este proyecto se utiliza un pequeño aunque significativo porcentaje.

vivado

En la parte software, se distingue entre la herramienta utilizada para programar aplicaciones en máquina desnuda, y la utilización del sistema operativo Linux. Durante el proceso de co-diseño, especialmente cuando se incluye el uso de un sistema operativo, es importante tener presente un esquema de la arquitectura del sistema y para qué se utiliza cada una de las herramientas.

diagrama_basico

Para la programación de aplicaciones en máquina desnuda, se utiliza la herramienta Software Development Kit (SDK) también de Xilinx. Esta herramienta, se integra perfectamente con Vivado, de forma que permite el desarrollo simultáneo de hardware y software característico del co-diseño. En este caso el esquema anterior se simplifica quedando solo una parte software que accede al hardware directamente sin sistema operativo.

sdk

Para la introducción del sistema operativo Linux, se utiliza también la herramienta SDK en la configuración. El desarrollo de aplicaciones en espacio de usuario y controladores para el sistema operativo Linux, se realiza sobre otro entorno también Unix utilizando el editor convencional gedit. En correspondencia con el esquema anterior, serán los controladores en el núcleo del sistema operativo los que permitan el acceso a hardware, y serán las aplicaciones en espacio de usuario las encargadas de utilizarlos para la realización del acceso de lectura o escritura necesario en cada momento. Además, los controladores pueden realizar procesado software liberando de esta carga a las aplicaciones en espacio de usuario, o incluso, ser ésta su única tarea y no realizar acceso alguno a hardware, repartiendo así la carga de procesado entre el núcleo del sistema operativo y el espacio de usuario.

 

RALPH: Sistema radar de detección de obstáculos.

 

La detección de personas y otros obstáculos a grandes distancias en entornos hostiles mediante sensores de bajo coste es un área de gran interés para muchas aplicaciones. En el laboratorio B105 se ha desarrollado un sistema integrado basado en tecnología radar que permite detectar múltiples objetos simultáneamente en un rango de hasta 25 metros. Se trata de un sensor autónomo, de bajo coste y bajos recursos capaz de proporcionar información de distancia a gran velocidad (100 muestras por segundo) de los objetos que se encuentran en su haz de detección.

Detección multiobjeto con RALPH
Detección multiobjeto con RALPH

 

El sistema integra en una sola plataforma todos los módulos necesarios para la adquisición, adaptación de señal, filtrado, procesamiento, comunicaciones y alimentación; y cuenta con unas dimensiones de 10 cm x 10 cm. Se ha desarrollado de modo que sea útil para distintas aplicaciones y su arquitectura modular permite añadir distintos sensores como los basados en ultrasonidos (de gran precisión en pequeñas distancias). Esta arquitectura permite además la reconfiguración del sistema de manera que se puedan utilizar distintos algoritmos de procesamiento en función del transceptor radar usado, el número de sensores o la aplicación específica.