Reducción del consumo de energia del protocolo ZigBee implementando un protocolo MAC de bajo consumo Resumen de la memoria Pablo Suárez Hernández Stockholm, Febrero de 2008, Proyecto Fin de Carrera Saab Communication - Swedish Institute of Computer Science Escuela Superior de Ingenieros - Universidad de Sevilla Reducción del consumo de energia del protocolo ZigBee implementando un protocolo MAC de bajo consumo INDICE Indice 1 Introduccion 1 2 Redes de sensores inalambricos 3 2.1 Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Posibles escenarios . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Rendimiento de una red. Parámetros y métricas . . . . . . . . . 5 3 El protocolo ZigBee 7 3.1 El nivel fı́sico (PHY) . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2 El nivel de control de acceso al medio (MAC) . . . . . . . . . . . 10 3.3 El nivel de Red (NWK) . . . . . . . . . . . . . . . . . . . . . . . 11 3.4 El nivel de aplicación (APL) . . . . . . . . . . . . . . . . . . . . . 11 4 El sistema operativo Contiki 12 5 El protocolo X-MAC 14 6 Implementacion 16 7 Experimentos 20 7.1 Experimento 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 7.2 Experimento 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 7.3 Experimento 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 8 Conclusiones 26 I INDICE II Reducción del consumo de energia del protocolo ZigBee implementando un protocolo MAC de bajo consumo 1. Introduccion Capı́tulo 1 Introduccion El incremento de aplicaciones basadas en comunicaciones inalámbricas experimentado en los últimos años está cambiando la mentalidad y las reglas del campo de las Tecnologı́as de la Información. Recientemente, los avances en la industria de los semiconductores han permitido la aparición de dispositivos de tamaño y coste reducido, conocidos como nodos sensores. La introducción de esta tecnologı́a en la industria ha permitido el desarrollo de una serie de nuevas aplicaciones y la mejora de muchas otras ya existentes. Dichas aplicaciones van desde el campo de la demótica y la automatización industrial a la defensa civil y usos militares. El mercado ha crecido en los últimos años y muchas compañı́as han comenzado a mostrar interés en el desarrollo de nuevos productos basados en sensores inalámbricos. Uno de los principales desafı́os que el desarrollo de una red de estos elementos presenta es la disminución del consumo energético de los nodos para alargar el tiempo de vida de las baterı́as, durante tanto tiempo como para que puedan ser considerados una opción adecuada en aquellos escenarios en los que el re emplazamiento de dispositivos debe evitarse en la medida de lo posible. Extender el tiempo de vida de las baterı́as pueda mejorar sensiblemente las posibles aplicaciones y asegurar el éxito comercial. Es por lo tanto uno de los principales campos de investigación hoy en dı́a. Hay distintas perspectivas para afrontar dicho objetivo. Muchas de ellas se centran en el desarrollo de Protocolos de Control Acceso al Medio (protocolos MAC). Tradicionalmente, la principal tarea de dichos protocolas es evitar colisiones entre dispositivos que intentan acceder simultáneamente al canal de comunicaciones. Existen muchos protocolos ya desarrollados y empleados habitualmente en distintos tipos de redes, como esquemas de multiplexión en el tiempo (TDMA) o CSMA. Sin embargo, las caracterı́sticas especiales de las redes de sensores inalámbricos han motivado el desarrollo de protocolos MAC más especı́ficos que también ahorran la mayor cantidad de energı́a posible. El desarrollo de estándares adoptados por fabricantes y desarrolladores es muy beneficioso dado que un esfuerzo significativo ha sido empleado en desarrollar dichas normativas. La combinación de las normas IEEE 802.15.4 y el protocolo ZigBee son una solución popular y muy versátil para este tipo de sistemas. El 1 1. Introduccion conjunto cubre aspectos como la formación de redes, protocolos de enrutamiento y mecanismos de seguridad. Aun ası́, sigue siendo necesario desarrollar aspectos relacionados con la reducción del consumo energético. El objetivo de este proyecto de fin de carrera consiste en implementar una versión del protocolo ZigBee usando el sistema operativo Contiki, y mejorar el rendimiento desarrollando un protocolo MAC con el fin de reducir el consumo. Distintos experimentos se han realizado para determinar el rendimiento de la implementación diseñada, obteniendo distintas conclusiones e ideas para posibles trabajos futuros. 2 Reducción del consumo de energia del protocolo ZigBee implementando un protocolo MAC de bajo consumo 2. Redes de sensores inalambricos Capı́tulo 2 Redes de sensores inalambricos 2.1 Introduccion Las Redes Inalámbricas de Sensores (WSN) representan un tipo de sistema distinto a las redes inalámbricas tradicionales basadas en la norma IEEE 802.11. Las WSNs necesitan un menor ancho de banda y están basados estrictamente en comunicaciones ”ad-hoc”, sin infraestructuras fijas. El IEEE ha estandarizado los desarrollos previos y ha publicado la especificación 802.15.4, especialmente orientada a WSNs. Una definición inicial y muy clarificadora de este tipo de sistemas puede encontrarse en [7]. Sensores + CPU + Radio = Miles de posibles aplicaciones. Una WSN consiste en un gran número de nodos sensores que emplean comunicaciones radio para transmitir información entre ellos. Los nodos sensores son minúsculos dispositivos con poca capacidad computacional y de memoria, que integran un número de sensores que pueden emplearse para medir caracterı́sticas fı́sicas en su entorno. Los dispositivos que forman una WSN pueden recopilar mediciones y transmitirlas a través de la red. Los nodos sensores están habitualmente equipados con un transceptor, un micro controlador de baja capacidad y una fuente de alimentación (generalmente baterı́as), ası́ como distintos sensores para medir diferentes magnitudes. Su tamaño depende de su complejidad y el nivel de integración. Estudios como [11] han propuesto redes con una gran cobertura formadas por nodos microscópicos y muy bajo coste. El actual estado tecnológico aun necesita desarrollo para alcanzar ese nivel de integración. Existen muchas posibles aplicaciones y servicios que pueden beneficiarse del uso de una WSN. Cada una de ellas tiene sus propias caracterı́sticas y requer3 2. Redes de sensores inalambricos imientos. A continuación se resumen las principales aplicaciones ası́ como sus principales requisitos. 2.2 Posibles escenarios Trabajos previos [7, 3] coinciden en definir los siguientes tipos de aplicaciones como las más relevantes y representativas. La combinación de las caracterı́sticas de cada una de estas aplicaciones básicas resulta en un gran número de posibilidades que prueban la versatilidad de las WSNs y que justifican los esfuerzos puestos en el desarrollo de este tipo de sistemas. • Monitorización ambiental. El bajo coste, la gran autonomı́a y la escalabilidad de las WSNs pueden beneficiar a aquellas actividades basadas en la medida de valores en distintos puntos en grandes aéreas. Un cientı́fico puede desplegar una red de nodos que pueden proporcionar lecturas de diferentes magnitudes fı́sicas y transmitir la información a un nodo receptor que almacene y procese la información. En este escenario especifico, la red debe tener un gran número de nodos distribuidos en una gran superficie, por lo que deben estar permitidos los enlaces con más de un salto. Un nodo coordinador, que podrı́a tener una mayor capacidad computacional que los demás, es el destino final de todos los mensajes transmitidos por la red. La tasa de transmisión en este caso es muy baja, y son necesarias estrategias de enrutamiento adecuadas para asegurar la eficacia del sistema. La autonomı́a de los nodos es un aspecto crucial en este caso. Dado que la mayor parte de la energı́a consumida por los nodos está causada por las operaciones del transceptor, los nodos deben permanecer en estado latente durante tanto tiempo como sea posible, asegurando a la vez la transmisión de manera fiable. Las caracterı́sticas más importantes en este caso son: – Alta autonomı́a. – Baja tasa de transmisión. • Sistemas de seguridad: La versatilidad de los elementos que forman parte de una WSN proporciona un amplio rango de soluciones en los campos de la defensa civil y militar. Una WSN puede desplegarse para vigilar perı́metros defensivos, alertando cuando personal no autorizado accede a aéreas prohibidas. La capacidad de detectar anomalı́as también puede aprovecharse en instalaciones crı́ticas como aeropuertos o plantas energéticas. Una WSN puede integrarse en un sistema integral de seguridad que implemente otros elementos como radares o cámaras inteligentes. Estos sistemas pueden convertirse en una herramienta muy útil para las fuerzas policiales o la seguridad privada, contribuyendo a un mundo más seguro. 4 2. Redes de sensores inalambricos Examinando las caracterı́sticas de la red, es muy importante el hecho de que en vez de recolectar información los nodos normalmente solo tienen que transmitir información cuando ciertos eventos ocurren, activando alarmas que se deben transmitir rápidamente por la red de forma que los operadores puedan tomar las acciones apropiadas. La fiabilidad es también un requisito básico. Cada nodo deberı́a enviar periódicamente una señal para notificar a la red que está funcionando adecuadamente. De este modo, los controladores pueden detectar posibles violaciones de seguridad en zonas en las que los nodos han dejado de funcionar. Adicionalmente, otros requisitos de robustez deben considerarse e implementar redundancia en las rutas disponibles ante un eventual fallo de algún nodo o incluso un ataque electrónico. Los requisitos básicos en este caso son: – Fiabilidad y roubstez – Bajo retardo de transmisión • Seguimiento de recursos. El seguimiento de recursos en un proceso productivo y la gestión de una cadena de suministros son campos interesantes para la implementación de WSNs. En actividades industriales a gran escala, la información en tiempo real sobre la localización de recursos relevantes o personas puede mejorar el rendimiento de muchas operaciones. Dado que una de las caracterı́sticas más relevantes de los nodos sensores es la movilidad, adjuntar estos dispositivos a elementos móviles puede contribuir a un aumento de la productividad. En este tipo de escenario, los nodos móviles transmiten periódicamente una señal detectada por otros nodos fijos, lo que permite su localización en la red continuamente. La red por lo tanto debe estar preparada para poder modificar sus tablas enrutamiento para adaptarse a las nuevas posiciones de los nodos. El bajo coste es otro requisito importante en este caso, ya que un gran número de dispositivos son necesarios para localizar los distintos elementos de interés. Requisitos – Movilidad de los dispositivos – Bajo Coste 2.3 Rendimiento de una red. Parámetros y métricas El rendimiento y las caracterı́sticas de una WSN queda definido mediante los siguientes parámetros: • Tasa de transmisión / carga de tráfico: Cantidad de información que la WSN debe transmitir. Generalmente se mantiene en valores bajos comparado con otros tipos de redes 5 2. Redes de sensores inalambricos • Autonomia: El tiempo de vida de las baterı́as está relacionado con el consumo energético, y a su vez con la carga de tráfico y la latencia que se desea obtener. Esta caracterı́stica se estudia con profundidad en otros secones de la memoria. • Latencia: La latencia o tiempo de respuesta es el tiempo que tarda en trasmitirse un mensaje desde un nodo hasta el destino final de la comunicación. Esquemas que favorezcan la extensión de la autonomı́a generalmente tienen un impacto alargando dicho tiempo de respuesta. • Coste: Existe una relación entre la capacidad general del sistema y el coste. Los distintos elementos deben ser calibrados apropiadamente para minimizar el coste total. • Seguridad: Es necesario encriptar la información e implementar sistemas robustos capaces de tratar con eventos inesperados o ataques externos. 6 Reducción del consumo de energia del protocolo ZigBee implementando un protocolo MAC de bajo consumo 3. El protocolo ZigBee Capı́tulo 3 El protocolo ZigBee Con el fin de cumplir los requisitos generales de las WSNs, distintos protocolos y estándares han sido desarrollados para obtener una solución factible que permita el uso de nodos sensores para todas las posibles aplicaciones descritas previamente. Para este tipo especial de red inalámbrica, el IEEE ha desarrollado la especificación 802.15.4 [8] que es ampliamente utilizada en la mayorı́a de aplicaciones basadas en WSNs. Dicha especificación define los dos niveles más bajos de una torre de protocolos, concretamente el nivel fı́sico y el nivel MAC. Existen diferentes opciones desarrolladas para las capas de Red y aplicación que pueden combinarse con el estándar 802.15.4 para proporcionar distintas funcionalidades dependiendo de la aplicación deseada. Una de dichas opciones es ZigBee [1], desarrollado por una asociación de compañı́as que trabajan para el desarrollo y la mejora de este protocolo. Es importante diferenciar entre los estándares IEEE 802.15.4 y ZigBee. ZigBee solo especifica los niveles de Red (NWK) y aplicación (APL), mientras que el estándar 802.15.4 especifica los niveles fı́sico (PHY) y de acceso al medio (MAC). ZigBee está localizado por encima de las capas definidas por la especificación 802.15.4. Sin embargo, genéricamente el conjunto suele recibir el nombre de ZigBee. La figura 3.1 muestra la estructura de protocolo propuesta. Las principales caracterı́sticas obtenidas de la combinación de ZigBee y la especificación IEEE 802.15.4 se resumen a continuación: • Tawas de transmission de 250kb/s, 100kb/s, 40kb/s, o 20kb/s. • Topologı́as estrella o peer-to-peer. • Esquema de transmisión opcional basado en balizas. • Direccionamiento de 16 o 64 bits • Opción de adjudicación garantizada de slots temporales (GTS) • CSMA/CA 7 3. El protocolo ZigBee Figura 3.1: La torre del protocolo ZigBee. • Transmisión fiable mediante el uso de ACKs • Bajo consumo energético • Detección de nivel de energı́a en el medio • Indicación de calidad de enlace • 49 canales en total, repartidos en las bandas de 2450 MHz, 915 MHz y 868 MHz ZigBee define dos tipos de dispositivos: • Dispositivos de Funcionalidad Completa (FFD): Pueden llevar a cabo todas las operaciones del estándar, incluyendo enrutamiento y tareas de coordinación • Dispositivos de Funcionalidad Reducida (RFD): Solo implementan una versión limitada del protocolo. Deben asociarse con un FFD. No tienen capacidad de enrutamiento. Toda WSN debe incluir un coordinador, que proporciona una sincronización global a la red y gestiona sus elementos. Existen dos topologı́as básicas soportadas por es estándar: estrella y peer to peer. La figura 3.2 representa ambas opciones. En la topologı́a en estrella, un nodo hace las funciones de coordinador y el resto de dispositivos solo pueden comunicarse con él. Cualquier otro dispositivo que quiera unirse a la red o comunicarse con algún otro nodo debe enviar la información al coordinador, que la reenviara o tomara las acciones apropiadas. Debido a las caracterı́sticas de 8 3. El protocolo ZigBee la topologı́a, es conveniente que el coordinador no esté alimentado por baterı́as debido al gran consumo energı́a que presentarı́a debido a la gran cantidad de actividad requerida. Figura 3.2: Topologı́as en estrella y peer-to-peer [8]. Una topologı́a en estrella no es una solución adecuada para la mayorı́a de escenarios propuestos en la sección anterior por muchos motivos. No pueden implementarse redes con enlaces intermedios y es necesario que un nodo este equipado con baterı́as, lo cual reduce la versatilidad. Aun ası́, algunas aplicaciones como automatización domestica puede beneficiarse de esta opción. Una red peer to peer también incluye un coordinador de red aunque sus funciones son mucho más limitadas que en el caso de la topologı́a en estrella. En este caso, la red esta descentralizada y los mecanismos de enrutamiento deben asegurar la conectividad punto a punto. Es importante recordar que solo los FFDs pueden actuar como routers. 3.1 El nivel fı́sico (PHY) El nivel fı́sico es el más cercano al medio y es el responsable de la transmisión de la información a través de un canal radio utilizando la modulación especı́fica de la especificación IEEE 802.15.4. Las principales tareas del nivel PHY incluyen: • Gestión del transceptor. • Detección de Energı́a . • Indicador de calidad de enlace. • Detección de canal libre (CCA). • Sintonización del canal fı́sico. 9 3. El protocolo ZigBee Para llevar a cabo esas tareas, la capa PHY cuenta con dos servicios que proporcionan una interfaz entre la capa MAC y el canal fı́sico. Se trata del Physical Data Service (PD-DATA) y el Physical Layer Management Entity (PLME). La entidad PD-DATA soporta el transporta de las tramas y el PLME proporciona servicios de gestion y control de los distintos dispositivos. Asimismo, el PLME mantiene una base de datos de parámetros pertenecientes a la capa PHY, denominada PHY PAN Information Base (PIB). La figura 3.3 representa las tramas transmitidas y recibidas por el nivel PHY. Figura 3.3: Trama PPDU [8]. 3.2 El nivel de control de acceso al medio (MAC) El nivel MAC proporciona una interfaz entre el nivel fı́sico y los niveles superiores de la torre de protocolo. Sus principales funciones son las siguientes: • Generación de balizas y sincronización con las mismas. • Seguridad. • Empleo del mecanismo CSMA-CA para acceso al canal. • Proporcionar un enlace fiable con entidades MAC de otros dispositivos. De manera similar al nivel fı́sico, el nivel MAC implementa dos servicios para llevar a cabo sus operaciones. El servicio de transmisión de datos es denominado MAC Common Part Sublayer (MCPS) y el servicio de control es denominado Mac Layer Management Entity (MLME). Estos servicios proporcionan la interfaz requerida entre los niveles NWK y PHY. Asimismo, el nivel MAC mantiene una base de datos sobre distintos elementos y parámetros de configuración denominada MAC PAN Information Base (MAC PIB). El nivel MAC define dos modos de operación, según si se emplean o no balizas para sincronizar la comunicación en la red. El modo basado en balizas solo puede emplearse en redes con una topologı́a de estrella, y dado que el objetivo de este estudio son las redes con topologı́a peer-to-peer, no se detalla la información en este resumen. 10 3. El protocolo ZigBee 3.3 El nivel de Red (NWK) La capa NWK proporciona las siguientes funcionalidades implementadas en el protocolo: • Creación de redes. • Configuración de nuevos dispositivos, asignación de direcciones de red. • Mantenimiento de información relacionada con los nodos dentro del rango de comunicación. • Enrutamiento de tramas. • Descubrimiento de nuevas rutas, mantenimiento y reparación de enlaces. • Comunicación unicast, multicast y broadcast. De manera similar a las anteriores capas, el nivel NWK implementa dos servicios para llevar a cabo sus operaciones. El NWK Data Entity (NLDE) es el encargado del transporte de tramas, mientras que el NWK Layer Management Entity (NLME) es la entidad de control y configuración. El nivel NWK también mantiene una base de datos con información sobre distintos parámetros que configuran el funcionamiento del sistema a nivel de red. Igualmente, mantiene tablas con información sobre los distintos nodos vecinos y las rutas conocidas, que son utilizadas para enrutar las tramas generadas. 3.4 El nivel de aplicación (APL) La capa superior definida por ZigBee se denomina de aplicación. A su vez consiste en varias subcapas: Soporte de aplicación (APS), Objeto de Dispositivo ZigBee (ZDO) y los perfiles de dispositivos incluidos por el fabricante. Las funciones generales de la capa de aplicación son: • Mantenimiento de tablas para asociar dos dispositivos en función de los servicios proporcionados. • Mapeado de direcciones de red (16 bits) partiendo de direcciones de 64 bits. • Fragmentación y reconstrucción de la información en tramas adecuadas para la transmisión. • Definición de las capacidades del dispositivo en la red. • Descubrimiento de dispositivos en la red y determinación de los servicios que pueden proporcionar. • Establecimiento de una comunicación segura entre los dispositivos. 11 Reducción del consumo de energia del protocolo ZigBee implementando un protocolo MAC de bajo consumo 4. El sistema operativo Contiki Capı́tulo 4 El sistema operativo Contiki Contiki[5] es un Sistema Operativo desarrollado por el Swedish Institute of Computer Science (SICS). Contiki está orientado a dispositivos con restricciones en memoria y escasa capacidad computacional. Ha sido portado a un gran número de plataformas y es una opción adecuada para el desarrollo de WSNs. Las principales caracterı́sticas de Contiki incluyen: • Kernel multitarea. • Protohilos permitiendo. • Soporte de comunicación TCP/IP. • Navegador web. • Servidor web personal de baja capacidad. • Cliente telnet. Contiki está escrito en lenguaje C y ha sido portado al microcontolador MSP430 de Texas Instruments y a la plataforma Tmote Sky, que han sido usados en la implementación detallada posteriormente. Una aplicación desarrollada para Contiki requiere aproximadamente 2 kilobytes de RAM y 40 kilobytes de ROM. Contiki también incluye dos protocolos de comunicación denominados Rime y uIP. Rime es un protocolo ligero que permite un amplio número de opciones de comunicación. uIP permite la conectividad con Internet gracias a una implementación reducida del protocolo TCP/IP. El núcleo de Contiki incluye el kernel, una selección de funciones comunes y un protocolo de comunicación consistente en un driver y funciones para manejar el hardware de comunicaciones. El núcleo es compilado y almacenado en el dispositivo, mientras que la aplicación del usuario es cargada en el sistema utilizando una funcionalidad del propio núcleo. 12 4. El sistema operativo Contiki El Kernel está basado en comunicación por eventos. Distintas aplicaciones son cargadas y descargadas en tiempo de ejecución, proporcionando capacidad de multitarea. El método del paso de eventos proporciona concurrencia a sistemas que no tienen suficientes recursos para implementar un modelo con múltiples hilos. En un modelo con múltiples hilos, cada uno de ellos requiere su propia pila de memoria, las cuales deben ser reservadas con una gran cantidad de espacio ya que no se conoce su tamaño máximo de antemano. Esto limita mucho las posibilidades de implementación en sistemas limitados en memoria como los nodos sensores. En un sistema regido por eventos, como Contiki, los distintos procesos son implementados como manejadores de eventos. Todos los procesos en ejecución en el sistema comparten la misma pila de memoria, con los problemas de concurrencia que esto representa. Generalmente es necesaria una compleja maquina de estados para el correcto funcionamiento del conjunto, lo cual dificulta la programación. No obstante, Contiki implementa una solución que puede ser considerado como un hibrido entre los dos modelos, basado en un elemento denominado ”Protohilo”. Los protohilos [6] son hilos sin pila propia que proporcionan la posibilidad de ejecutar código linealmente en sistemas operativos basados en el paso de eventos. Un protohilo se ejecuta en una función, y no cede el control al sistema hasta que no se alcanza una lı́nea de código que lo indica. Cuando esto ocurre, el punto de bloqueo queda almacenado pero no el valor de las variables locales, que no se almacenan al carecer de pila el protohilo. La gran ventaja del uso de protohilos reside en la escasa memoria requerida para implementar varios procesos a la vez. Según la versión, entre 2 y 12 bytes de memoria de estado son requeridos por cada protohilo. 13 Reducción del consumo de energia del protocolo ZigBee implementando un protocolo MAC de bajo consumo 5. El protocolo X-MAC Capı́tulo 5 El protocolo X-MAC El protocolo X-MAC, propuesto en [2], es un protocolo MAC de bajo consumo diseñado especı́ficamente para redes de sensores inalámbricos. Se trata de un protocolo basado en un duty cycle, es decir, el protocolo alterna periodos de actividad con periodos en los que el sistema se encuentra en estado latente. X-MAC implementa una versión mejorada de un mecanismo denominado ”Escucha de baja potencia” (Low Power Listening), propuesto inicialmente para el protocolo B-MAC. En X-MAC, los nodos acceden periódicamente al canal para detectar si algún otro dispositivo quiere establecer una comunicación. Cuando un nodo quiere transmitir una trama, comienza a emitir previamente una serie de paquetes que forman la ”secuencia de preámbulo”. Dichos paquetes contienen la dirección del destinatario de la trama que se desea transmitir, ası́ como la dirección del nodo que origina la comunicación. Figura 5.1: Mecanismos de transmision y recepción de X-MAC [2]. Como se ha mencionado, los nodos acceden periódicamente al canal durante un breve periodo de tiempo. Si no detectan la transmision de ninguna secuencia de preámbulo, los nodos vuelven a desactivar su radio al terminar su periodo de escucha. Si detectan la transmision de paquetes de preámbulo con distinto 14 5. El protocolo X-MAC destino, desactivan inmediatamente la radio y permanecen desactivados durante un periodo de tiempo suficientemente largo para asegurarse de que la próxima vez que accedan al canal ya habrá terminado la transmision detectada. Si el nodo detecta una secuencia de preámbulo destinada a sı́ mismo, envı́a un asentimiento especial con el objetivo de que el nodo emisor reciba la notificación de que el destinatario del mensaje esta activo y listo para recibir la trama. Cuando el emisor detecta dicho asentimiento, transmite la trama de datos. La figura 5.1 muestra el proceso de transmision de X-MAC. La configuración de los parámetros del duty cycle determina el rendimiento del protocolo. Con el fin de obtener los parámetros óptimos, en [2] se propone un método para determinar la mejor configuración posible, basándose en las expresiones de la energı́a consumida en la recepción y la transmision. Como se demostrara más adelante, el uso de una configuración adaptada a la cantidad de tráfico que deben soportar los nodos determina el ahorro de energı́a y los demás parámetros de la red. 15 Reducción del consumo de energia del protocolo ZigBee implementando un protocolo MAC de bajo consumo 6. Implementacion Capı́tulo 6 Implementacion Buena parte de la carga de trabajo del presente proyecto de fin de carrera ha recaı́do en diseñar e implementar una versión del protocolo ZigBee utilizando el sistema operativo Contiki, implementando el protocolo X-MAC para mejorar el rendimiento energético del conjunto. A pesar del hecho de que ZigBee es un protocolo de comunicaciones popular y extendido existen muy pocas implementaciones en código abierto disponibles en Internet. Open-ZB [4] esta implementada en el sistema operativo Tiny OS y escrita en lenguaje nesc. La implementación Open-ZB ha sido tomada como referencia para la implementación realizada en Contiki. Considerando las importantes diferencias entre Contiki y TinyOS, la mayor parte del código fuente fue reescrita totalmente en C adaptado a la arquitectura de Contiki. Algunas partes no han sido implementadas, bien por haber sido consideradas fuera de los objetivos de este trabajo o por dificultades técnicas relacionadas con funcionalidades no implementadas en la presente versión de Contiki. La implementación de un protocolo diseñado en distintas capas es siempre una tarea compleja. Existen muchas alternativas para definir la manera en que los distintos niveles interactúan entre sı́. En este caso, se ha optado por la funcionalidad en vez de por seguir de manera estricta la separación en capas y entidades propuesta en la especificación. No obstante, existe una diferenciación entre las funciones implementadas para realizar acciones pertenecientes a cada capa. Las siguientes funcionalidades esta incluidas en la implementación desarrollada: • Versión simplificada de CSMA/CA. • Mecanismos de transmision directa e indirecta. • Construcción de tramas. • Recuperación de carga útil de tramas entrantes. • Tramas de asentimiento (ACK) y otras tramas especiales. 16 6. Implementacion • Creación de red. • Proceso de descubrimiento de rutas. • Gestión de las bases de información de los niveles PHY,MAC y NWK. • X-MAC como protocolo MAC. Caracterı́sticas no implementadas aun: • Mecanismo GTS. • Esquema de transmision basado en baliza. • Escaneo de canales fı́sicos. • Especificaciones de la capa de aplicación. La capa superior (APL) ha sido sustituida por un sencillo proceso que permite realizar los experimentos diseñados para determinar el rendimiento del conjunto. El proceso implementado en dicha “Capa superior” es el único que se ejecuta sin ser parte del núcleo del sistema operativo. Quizás un elemento muy definitorio de una implementación de este tipo es la manera en que los paquetes enviados y recibidos son tratados. En este caso, cuando el chip de radio detecta un paquete entrante, una interrupción llama a una función definida como la función de lectura (perteneciente al protocolo MAC implementado) en cada caso. Un protocolo MAC se define como un servicio de Contiki, y especifica las funciones que deben ser llamadas en cada caso según que evento es detectado (mensajes entrantes o salientes, etc.). La capa de red (NWK) esta implementada mediante una serie de funciones que se emplean para controlar distintas tablas en las cuales la información de enrutamiento y los demás parámetros de red son almacenados. Estos elementos incluyen la tabla de enrutamiento, la tabla de descubrimiento de rutas y la tabla de nodos vecinos. Para llevar a cabo las funciones que le corresponden, la capa NWK hace uso de los servicios ofrecidos por la capa MAC, enviando y recibiendo a través de estas distintas tramas de control. Se han implementado los procedimientos de descubrimiento de nuevas rutas y de enrutamiento, ası́ como la inicialización de nuevas redes. Las tablas anteriormente mencionadas están formadas por los campos especificados en la descripción del protocolo. En cuanto a la capa MAC, esta implementada en dos partes diferenciadas. Por un lado, las funciones equivalentes a las entidades MCPS y MLME están implementadas mediante una serie de funciones que crean tramas con el formato adecuado y que las reconstruyen cuando una secuencia de bits es recibida. También se contemplan distintas opciones para modificar parámetros de configuración y los contenidos en la base de información del nivel mac (MAC PIB). Las funciones “process incoming mpdu” y “create mpdu” son las encargadas de estas tareas. 17 6. Implementacion Por otro lado, también forma parte de la implementación de la capa MAC el protocolo X-MAC diseñado. 3 funciones principales se encargan de controlar el acceso al medio y enviar y recibir tramas de acuerdo con el procedimiento descrito en la sección dedicada a X-MAC. Dichas funciones son read, send y powercycle. Al recibir un paquete, read determina si se trata de un paquete de la secuencia de preámbulo. Si dicho paquete incluye la dirección del nodo que lo recibe, es consciente de que otro dispositivo está intentando enviarle información. El nodo envı́a entonces un mensaje de asentimiento y deja su radio encendida a la espera del paquete final, que llegara unos milisegundos después. Si el paquete del preámbulo tiene otro destino, el nodo apaga inmediatamente la radio para ahorrar energı́a ya que no espera ningún paquete a continuación. La figura 6.1 muestra el esquema de la función de lectura. Figura 6.1: Esquema básico de la función de lectura X-MAC. La función send es empleada para transmitir información. Antes de transmitir una trama de datos, el nodo envı́a una secuencia de paquetes de preámbulo en los que se indica el nodo destinatario de la información. Después de transmitir cada uno de estos paquetes, el transceptor pasa a modo de recepción durante un corto periodo de tiempo esperando recibir un asentimiento a la secuencia del preámbulo. Cuando dicho asentimiento es recibido, el nodo deja de transmitir la secuencia del preámbulo y pasa a enviar la trama de información. La función powercycle se encarga de encender y apagar el transceptor de acuerdo a la configuración del duty cycle seleccionada. Antes de cambiar el estado del transceptor, la función verifica si el nodo está intentando enviar información, para que el proceso no se interrumpa. La figura 6.2 muestra esquemáticamente el funcionamiento de la función. Por debajo del nivel MAC se sitúa el nivel PHY. Este está implementado básicamente empleando los drivers incluidos en la actual versión de Contiki. 18 6. Implementacion while(1) { if(we_are_sending) { PT_WAIT_UNTIL(transmission_complete); } radio->off; set_timer(xmac_off_time); PT_WAIT_UNTIL(timer_expires); ... if(we_are_sending) { PT_WAIT_UNTIL(transmission_complete); } radio->on; set_timer(xmac_on_time); PT_WAIT_UNTIL(timer_expires) } Figura 6.2: Esquema básico de la función powercycle de X-MAC. Cuando un paquete es detectado en el medio, una interrupción hardware es atendida por una función especificada por el usuario. Dicha función corresponde con la función de lectura del protocolo MAC implementado ( X-MAC en este caso), y a su vez dicha función debe hacer uso de una función de lectura del buffer de la radio. En este caso, dicha función es cc2420 read, que accede al buffer y almacena la información recibida en otro registro para que sea procesada por la capa MAC. Igualmente, para el envió de la información se emplea la función cc2420 send. El proceso de transmision comienza en la capa MAC no obstante, y la función del driver fı́sico es empleada para la transmision tanto de las tramas de información como de los paquetes que forman el preámbulo. 19 Reducción del consumo de energia del protocolo ZigBee implementando un protocolo MAC de bajo consumo 7. Experimentos Capı́tulo 7 Experimentos Con el fin de comprobar la validez de la implementación propuesta, 3 escenarios fueron diseñados en los que se ha determinado el consumo energético y el tiempo de ida y vuelta de los paquetes. 7.1 Experimento 1 El primer escenario es el más simple de todos, y su finalidad es comprobar el funcionamiento del protocolo en una situación sencilla con solo dos nodos comunicándose entre sı́. En este caso no hay problemas de contención ya que sólo uno de los dispositivos transmite información al mismo tiempo. La figura 7.1 representa el escenario propuesto. Figura 7.1: Esquema del Escenario 1 Las siguientes tablas resumen los resultados obtenidos: 20 7. Experimentos Tabla 7.1: Tiempo de ida y vuelta. Protocolo MAC RTT(ms) NULLMAC 70.43 X-MAC 20% 156 X-MAC 10% 340 Tabla 7.2: Consumo energético en modo recepción del nodo Protocolo MAC Carga de trafico NULLMAC X-MAC 20% X-MAC 10% mW mW % mW % 2 tramas/s 65.01 23.24 35.74 24.25 37.70 1 tramas/s 65.01 20.68 31.82 19.25 29.61 0.5 tramas/s 65.01 18.63 28.65 15.27 23.49 0.25 tramas/s 65.01 16.77 25.79 13.19 20.30 X-MAC 5% 613 sender. X-MAC 5% mW % 46.81 72.00 37.09 57.05 21.97 33.80 9.91 15.24 Como se puede comprobar, se obtiene una reducción sustancial del consumo de energı́a, manteniendo el rtt unos valores aceptables. Puede observarse el impacto que tiene la cantidad de tráfico en la red a la hora de escoger la configuración correcta del duty cycle. Además, se observa el impacto que tiene dicha elección en la latencia del sistema. 21 7. Experimentos 7.2 Experimento 2 El segundo escenario es similar al primero, pero en este caso dos nodos emisores intentan comunicarse con un tercer nodo receptor. El hecho de que más de un dispositivo trate de comunicar a la vez puede provocar interferencias que imposibilitan la recepción correcta de la información. La figura 7.2 muestra el escenario propuesto. Figura 7.2: Esquema del Escenario 2 El hecho de que generalmente haya varios nodos compartiendo el medio hace que un protocolo MAC deba permitir la comunicación fiable en esta situación. Como puede observarse, las retransmisiones necesarias empeoran el comportamiento del protocolo, especialmente en aquellos casos con mucho tráfico transmitido, ya que las colisiones son más frecuentes. Como puede comprobarse, si hay pocas colisiones el comportamiento de los nodos emisores es similar al obtenidos en el escenario anterior. No obstante, el nodo receptor presenta un mayor consumo debido a que realiza más transmisiones ya que debe enviar un asentimiento por cada mensaje recibido. Se puede también extraer que existe una relación entre la cantidad de trafico transmitido y el consumo, debido a que el transceptor esta encendido durante más tiempo cuando se debe transmitir una secuencia de preámbulo. 22 7. Experimentos Tabla 7.3: Consumo energético en modo recepción de los nodos transmisor 1 y transmisor 2. Protocolo MAC Carga de trafico NULLMAC X-MAC 10% mW mW % % of collisions 2 tramas/s 65.01 31.95 49.14 42.00 1 tramas/s 65.01 18.51 28.48 2.00 0.5 tramas/s 65.01 14.77 22.72 0.5 0.25 tramas/s 65.01 12.61 19.40 0 Tabla 7.4: Consumo energético en modo recepción del nodo receptor. Protocolo MAC Traffic Rate NULLMAC X-MAC 10% mW mW % 2 tramas/s 65.01 34.02 52.33 1 tramas/s 65.01 24.01 36.93 0.5 tramas/s 65.01 19.17 29.48 0.25 tramas/s 65.01 14.89 22.91 Tabla 7.5: Tiempo de ida y vuelta. (X-MAC 10%). Carga de trafico RTT(ms) 2 tramas/s 430 1 tramas/s 349 0.5 tramas/s 344 0.25 tramas/s 341 23 7. Experimentos 7.3 Experimento 3 El tercer escenario es el más complejo y pretende representar un sistema real que incluye nodos situados hasta a 3 saltos del destino de todos los mensajes. Los dispositivos transmiten en este caso menos trafico (1 mensaje cada 30 segundos). La figura 7.3 representa el esquema del escenario. Figura 7.3: Esquema del Escenario 3. En este caso, se compararon diferentes configuraciones incluyendo la obtenida aplicando el procedimiento de optimización propuesto en [2]. Los resultados del experimento son los siguientes: Tabla 7.6: Consumo energético en modo recepción de todos los nodos. Protocolo MAC Nodo NULLMAC X-MAC 10% X-MAC 4.5% X-MAC 2.5% mW mW % mW % mW % Receptor 65.01 12.08 18.59 6.91 10.64 9.48 14.58 Router 1 65.01 7.69 11.83 5.61 8.63 8.30 12.77 Router 2 65.01 7.24 11.14 5.04 7.76 6.63 10.20 Satelites 65.01 6.67 10.26 3.94 6.07 3.09 4.75 (promediado) End node 65.01 6.91 10.64 4.47 6.87 3.17 4.87 24 7. Experimentos Nodo Router 1 Router 2 Satellites (averaged) End node Tabla 7.7: Tiempo de ida y vuelta. Protocolo MAC NULLMAC X-MAC 10% X-MAC 4.5% ms ms ms 78 230 290 166 450 610 78 292 360 270 710 1190 X-MAC 2.5% ms 640 1160 670 2100 Se observa que los distintos nodos presentan distintos consumos de energı́a, lo cual está relacionado con el hecho de que deben transmitir distinta cantidad de tráfico. En el caso de la configuración optima, se obtiene una reducción de consumo de hasta un 90%, mientras que la latencia del sistema se mantiene dentro de parámetros aceptables. 25 Reducción del consumo de energia del protocolo ZigBee implementando un protocolo MAC de bajo consumo 8. Conclusiones Capı́tulo 8 Conclusiones Las redes de sensores inalámbricos tienen un amplio rango de posibilidades. Muchas aplicaciones se pueden beneficiar de su versatilidad y bajo coste. Cada una de las posibles aplicaciones presenta unas caracterı́sticas especiales que condicionan el diseño de la red y los nodos. El uso de un estándar ya desarrollado proporciona un número de ventajas para los desarrolladores y los usuarios finales. ZigBee es una excelente elección para la mayorı́a de aplicaciones relacionadas con este campo, pero debe ser combinado con un protocolo MAC eficiente para conseguir unas caracterı́sticas de consumo aceptables. La versión desarrollada de X-MAC ha demostrado ser una solución adecuada. Como han demostrado los experimentos realizados, el consumo se reduce hasta en un 90% en escenarios parecidos a una implementación real de un sistema inalámbrico. La elección de una configuración apropiada de los parámetros del duty cycle es fundamental para obtener resultados satisfactorios. El uso de una aplicación de optimización permite la obtención analı́tica de dichos parámetros. Sin embargo, y dado que la principal variable de dicho proceso es la carga de tráfico, y que esta puede no mantenerse constante en el tiempo, la posibilidad de hacer este proceso de optimización adaptable en el tiempo debe ser estudiada. Una limitación notable de la actual implementación es que, debido a las limitaciones de los temporizadores empleados en Contiki, el mı́nimo tiempo de escucha es de 20ms. Si esta limitación puede ser disminuida las ventajas en cuanto al consumo energético serán notables, ya que permitirı́a la misma conectividad disminuyendo aun más el tiempo que pasa encendida la radio. Asimismo, otros enfoques del problema del consumo energético deben ser combinados con un protocolo MAC eficiente para obtener una solución integral con unos resultados lo bastante buenos como para obtener un sistema semipermanente. Esos otros enfoques incluyen la posibilidad de establecer una estrategia de enrutamiento basada en el mayor o menor consumo de los distintos nodos de la red [10] , o en modificar el hardware introduciendo, por ejemplo, baterı́as recargables y una placa solar[9]. 26 8. Conclusiones Resumiendo, la combinación de X-MAC y otras soluciones MAC con protocolos de comunicación inalámbrica como ZigBee pueden ampliar el tiempo de vida de baterı́as de manera considerable. No obstante, aun debe hacerse un esfuerzo en la investigación de mejoras en este tipo de solución y en otras alternativas para obtener una mayor reducción en el consumo. 27 Reducción del consumo de energia del protocolo ZigBee implementando un protocolo MAC de bajo consumo BIBLIOGRAFÍA Bibliografı́a [1] ZigBee Specification 2006. ZigBee Alliance, Dec. 2006. 7 [2] Buettner, M., Yee, G., Anderson, E., and Han, R. X-MAC: A short preamble mac protocol for duty-cycledwireless networks. Tech. rep., University of Colorado at Boulder, 2006. 14, 15, 24 [3] Callaway, E. Wireless sensor networks : architectures and protocols. Auerbach Publications, 2004. 4 [4] Cunha, A., Alves, M., and Koubaa, A. An IEEE 802.15.4 protocol implementation(in nesc/tinyos): Reference Guide v1.2. Tech. rep., IPPHURRAY, Instituto Politecnico do Porto, 2007. 16 [5] Dunkels, A., Grönvall, B., and Voigt, T. Contiki - a lightweight and flexible operating system for tiny networked sensors. In Proceedings of the First IEEE Workshop on Embedded Networked Sensors (Emnets-I) (Tampa, Florida, USA, Nov. 2004). 12 [6] Dunkels, A., Schmidt, O., Voigt, T., and Ali, M. Protothreads: Simplifying event-driven programming of memory-constrained embedded systems. In Proceedings of the Fourth ACM Conference on Embedded Networked Sensor Systems (SenSys 2006) (Boulder, Colorado, USA, Nov. 2006). 13 [7] Hill, J. L. System Architecture for Wireless Sensor Networks. PhD thesis, University of California, Berkeley, 2003. 3, 4 [8] IEEE 802.15 Working Group for WPAN. IEEE Standard for Information technology Telecommunications and information exchange between systems Local and metropolitan area networks Specific requirements Part 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (WPANs), 2006. 7, 9, 10 [9] Jeong, J., Jiang, X. F., and Culler, D. E. Design and analysis of micro-solar power systems for wireless sensor networks. Tech. rep., Electrical Engineering and Computer Sciences. University of California at Berkeley, 2007. 26 [10] Li, Q., Aslam, J. A., and Rus, D. Online power-aware routing in wireless ad-hoc networks. In Mobile Computing and Networking (2001), pp. 97–107. 26 28 BIBLIOGRAFÍA [11] Warneke, B., Last, M., Liebowitz, B., and Pister, K. S. Smart dust: Communicating with a cubic-millimeter computer. Computer, vol 34 (2001). 3 29