Reducción del consumo de energia del protocolo ZigBee

Anuncio
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
Descargar