# Zigbee

Zigbee es el nombre de la especificación de un conjunto de protocolos de alto nivel de comunicación inalámbrica para su utilización con radiodifusión digital de bajo consumo, basada en el estándar IEEE 802.15.4 de redes inalámbricas de área personal (wireless personal area network, WPAN). Su objetivo son las aplicaciones que requieren comunicaciones seguras con baja tasa de envío de datos y maximización de la vida útil de sus baterías.
En principio, el ámbito donde se prevé que esta tecnología cobre más fuerza es en domótica, como puede verse en los documentos de la Zigbee Alliance, en las referencias bibliográficas que se dan más abajo en el documento «Zigbee y Domótica». La razón de ello son diversas características que lo diferencian de otras tecnologías:
* Su bajo consumo.
* Su topología de red en malla.
* Su fácil integración (se pueden fabricar nodos con muy poca electrónica).

## Visión general

Zigbee se basa en el nivel físico y el control de acceso al medio (MAC) definidos en la versión de 2003 del estándar IEEE 802.15.4 La relación entre IEEE 802.15.4-2003 y Zigbee es parecida a la existente entre IEEE 802.11 y Wi-Fi Alliance. La especificación 1.0 de Zigbee se aprobó el 14 de diciembre de 2004 y está disponible a miembros del grupo de desarrollo (Zigbee Alliance). Un primer nivel de suscripción, denominado adopter, permite la creación de productos para su comercialización adoptando la especificación por 3500 dólares anuales. Esta especificación está disponible al público para fines no comerciales en la petición de descarga. La revisión actual de 2006 se aprobó en diciembre de dicho año.
Zigbee utiliza la banda ISM para usos industriales, científicos y médicos; en concreto, 868 MHz en Europa, 915 en Estados Unidos y 2,4 GHz en todo el mundo. Sin embargo, a la hora de diseñar dispositivos, las empresas optarán prácticamente siempre por la banda de 2,4 GHz, por ser libre en todo el mundo. El desarrollo de la tecnología se centra en la sencillez y el bajo costo más que otras redes inalámbricas semejantes de la familia WPAN, como por ejemplo Bluetooth. El nodo Zigbee más completo requiere en teoría cerca del 10% del hardware de un nodo Bluetooth o Wi-Fi típico; esta cifra baja al 2% para los nodos más sencillos. No obstante, el tamaño del código en sí es bastante mayor y se acerca al 50% del tamaño del de Bluetooth. Se anuncian dispositivos con hasta 128 kB de almacenamiento.
En 2006 el precio de mercado de un transceptor compatible con Zigbee se acerca al dólar y el precio de un conjunto de radio, procesador y memoria ronda los tres dólares. En comparación, Bluetooth tenía en sus inicios (en 1998, antes de su lanzamiento) un coste previsto de 4-6 dólares en grandes volúmenes; a principios de 2007, el precio de dispositivos de consumo comunes era de unos tres dólares.
La primera versión de la pila suele denominarse ahora Zigbee 2004. La segunda versión y actual a junio de 2006 se denomina Zigbee 2006, y reemplaza la estructura MSG/KVP con una biblioteca de clusters, dejando obsoleta a la anterior versión. Finalmente Zigbee Alliance ha presentado la versión de 2007 de la pila. También se incluyen algunos perfiles de aplicación nuevos, como lectura automática, automatización de edificios comerciales y automatización de hogares basados en el principio de uso de la biblioteca de clusters.
En ocasiones Zigbee 2007 se denomina Pro, pero Pro es en realidad un perfil de pila que define ciertas características sobre la misma.
El nivel de red de Zigbee 2007 no es compatible con el de Zigbee 2004-2006, aunque un nodo RFD puede unirse a una red 2007 y viceversa. No pueden combinarse routers de las versiones antiguas con un coordinador 2007.

## Zigbee vs Bluetooth

Zigbee es muy similar al Bluetooth pero con algunas diferencias y ventajas para domótica:
* Una red Zigbee puede constar de un máximo de 65535 nodos distribuidos en subredes de 255 nodos, frente a los ocho máximos de una subred (Piconet) Bluetooth.
* Menor consumo eléctrico que el de Bluetooth. En términos exactos, Zigbee tiene un consumo de 30 mA transmitiendo y de 3 μA en reposo, frente a los 40 mA transmitiendo y 200 μA en reposo que tiene el Bluetooth. Este menor consumo se debe a que el sistema Zigbee se queda la mayor parte del tiempo dormido, mientras que en una comunicación Bluetooth esto no se puede dar, y siempre se está transmitiendo y/o recibiendo.
* Tiene una velocidad de hasta 250 kbit/s, mientras que en Bluetooth es de hasta 3000 kbit/s.
* Debido a las velocidades de cada uno, uno es más apropiado que el otro para ciertas cosas. Por ejemplo, mientras que el Bluetooth se usa para aplicaciones como los teléfonos móviles y la informática casera, la velocidad del Zigbee se hace insuficiente para estas tareas, desviándolo a usos tales como la Domótica, los productos dependientes de la batería, los sensores médicos, y en artículos de juguetería, en los cuales la transferencia de datos es menor.
* Existe una versión que integra el sistema de radiofrecuencias característico de Bluetooth junto a una interfaz de transmisión de datos vía infrarrojos desarrollado por IBM mediante un protocolo ADSI y MDSI.

## Dispositivos
### Tipos de dispositivos

Se definen tres tipos distintos de dispositivo Zigbee según su papel en la red:
* Coordinador Zigbee (Zigbee Coordinator, ZC). El tipo de dispositivo más completo. Debe existir solo uno por red. Sus funciones son las de encargarse de controlar la red y los caminos que deben seguir los dispositivos para conectarse entre ellos.
* Router Zigbee (Zigbee Router, ZR). Interconecta dispositivos separados en la topología de la red, además de ofrecer un nivel de aplicación para la ejecución de código de usuario.
* Dispositivo final (Zigbee End Device, ZED). Posee la funcionalidad necesaria para comunicarse con su nodo padre (el coordinador o un enrutador), pero no puede transmitir información destinada a otros dispositivos. De esta forma, este tipo de nodo puede estar dormido la mayor parte del tiempo, aumentando la vida media de sus baterías. Un ZED tiene requerimientos mínimos de memoria y es por tanto significativamente más barato.
Como ejemplo de aplicación en Domótica, en una habitación de la casa tendríamos diversos Dispositivos Finales (como un interruptor y una lámpara) y una red de interconexión realizada con Routers Zigbee y gobernada por el Coordinador.

### Funcionalidad

Basándose en su funcionalidad, puede plantearse una segunda clasificación:
* Dispositivo de funcionalidad completa (FFD): También conocidos como nodo activo. Es capaz de recibir mensajes en formato 802.15.4. Gracias a la memoria adicional y a la capacidad de computar, puede funcionar como Coordinador o Enrutador Zigbee, o puede ser usado en dispositivos de red que actúen de interfaz con los usuarios.
* Dispositivo de funcionalidad reducida (RFD): También conocido como nodo pasivo. Tiene capacidad y funcionalidad limitadas (especificada en el estándar) con el objetivo de conseguir un bajo coste y una gran simplicidad. Básicamente, son los sensores/actuadores de la red.
Un nodo Zigbee (tanto activo como pasivo) reduce su consumo gracias a que puede permanecer dormido la mayor parte del tiempo (incluso muchos días seguidos). Cuando se requiere su uso, el nodo Zigbee es capaz de despertar en un tiempo ínfimo, para volverse a dormir cuando deje de ser requerido. Un nodo cualquiera despierta en aproximadamente 15 ms. Además de este tiempo, se muestran otras medidas de tiempo de funciones comunes:
* Nueva enumeración de los nodos esclavos (por parte del coordinador): aproximadamente 30 ms.
* Acceso al canal entre un nodo activo y uno pasivo: aproximadamente 15 ms.

## Protocolos

Los protocolos se basan en investigaciones recientes sobre algoritmos de red (ad hoc on-demand distance vector, vector de distancias bajo demanda; neuRFon) para la construcción de redes ad hoc de baja velocidad. La mayoría de redes grandes están pensadas para formar un clúster de clusters. También puede estructurarse en forma de malla o como un solo clúster. Los perfiles actuales de los protocolos soportan redes que utilicen o no facilidades de balizado.
Las redes sin balizas (aquellas cuyo grado de balizado es 15) acceden al canal por medio de CSMA/CA. Los routers suelen estar activos todo el tiempo, por lo que requieren una alimentación estable en general. Esto, a cambio, permite redes heterogéneas en las que algunos dispositivos pueden estar transmitiendo todo el tiempo, mientras que otros sólo transmiten ante la presencia de estímulos externos. El ejemplo típico es un interruptor inalámbrico: un nodo en la lámpara puede estar recibiendo continuamente ya que está conectado a la red; por el contrario, un interruptor a pilas estaría dormido hasta que el mecanismo se activa. En una red así la lámpara sería un enrutador o coordinador, y el interruptor un dispositivo final.
Si la red utiliza balizas, los routers las generan periódicamente para confirmar su presencia a otros nodos. Los nodos pueden desactivarse entre las recepciones de balizas reduciendo su ciclo de servicio (duty cycle). Los intervalos de balizado pueden ir desde 15,36 ms a 15,36 ms * 2$^{14}$ = 251,65824 segundos a 250 kbit/s; de 24 ms a 24 ms * 2$^{14}$ = 393,216 segundos a 40 kbit/s; y de 48 ms a 48 ms * 2$^{14}$ = 786,432 segundos a 20 kbit/s. Sin embargo, los periodos largos con ciclos de servicio cortos necesitan que una temporización precisa, lo que puede ir en contra del principio de bajo coste.
En general, los protocolos Zigbee minimizan el tiempo de actividad de la radio para evitar el uso de energía. En las redes con balizas los nodos sólo necesitan estar despiertos mientras se transmiten las balizas (además de cuando se les asigna tiempo para transmitir). Si no hay balizas, el consumo es asimétrico repartido en dispositivos permanentemente activos y otros que sólo no están esporádicamente.
Los dispositivos Zigbee deben respetar el estándar de WPAN de baja tasa de transmisión IEEE 802.15.4-2003. Éste define los niveles más bajos: el nivel físico (PHY) y el control de acceso al medio (MAC, parte del nivel de enlace de datos, DLL). El estándar trabaja sobre las bandas ISM de uso no regulado detalladas más arriba. Se definen hasta 16 canales en el rango de 2,4 GHz, cada uno de ellos con un ancho de banda de 5 MHz. La frecuencia central de cada canal puede calcularse como: F$_C$ = (2405 + 5*(k-11)) MHz, con k = 11, 12,..., 26.
Las radios utilizan un espectro de dispersión de secuencia directa. Se utiliza BPSK en los dos rangos menores de frecuencia, así como un QPSK ortogonal que transmite dos bits por símbolo en la banda de 2,4 GHz. Ésta permite tasas de transmisión en el aire de hasta 250 kbps, mientras que las bandas inferiores se han ampliado con la última revisión a esta tasa desde los 40 kbps de la primera versión. Los rangos de transmisión oscilan entre los 10 y 75 metros, aunque depende bastante del entorno. La potencia de salida de las radios suele ser de 0 dBm (1 mW).
Si bien en general se utiliza CSMA/CA para evitar colisiones en la transmisión, hay algunas excepciones a su uso: por una parte, las tramas siguen una temporización fija que debe ser respetada; por otra, las confirmaciones de envíos tampoco siguen esta disciplina; por último, si se asignan slots de tiempo garantizados para una transmisión tampoco es posible que exista contención.

## Hardware y software

Si bien el hardware es sencillo, el proceso de certificación de un dispositivo conlleva una validación completa de los requerimientos del nivel físico. Esta revisión intensiva tiene múltiples ventajas, ya que todas las radios fabricadas a partir de una misma máscara de semiconductor gozarán de las mismas características de radiofrecuencia. Por otro lado, un nivel físico mal controlado podría perjudicar no sólo al propio dispositivo, sino al consumo de energía de otros dispositivos en la red. Otros estándares pueden compensar ciertos problemas, mientras que Zigbee trabaja en márgenes muy estrechos de consumo y ancho de banda. Por ello, según el 802.15.4, las radios pasan validaciones ISO 17025. La mayoría de fabricantes planea integrar la radio y el microcontrolador en un único chip, lo cual permite crear dispositivos más compactos.

## Conexión
### Topologías de red

Zigbee permite tres topologías de red:
* Topología en estrella: el coordinador se sitúa en el centro.
* Topología en árbol: el coordinador será la raíz del árbol.
* Topología de malla: al menos uno de los nodos tendrá más de dos conexiones.
La topología más interesante (y una de las causas por las que parece que puede triunfar Zigbee) es la topología de malla. Ésta permite que si, en un momento dado, un nodo del camino falla y se cae, pueda seguir la comunicación entre todos los demás nodos debido a que se rehacen todos los caminos. La gestión de los caminos es tarea del coordinador.

### Estrategias de conexión de los dispositivos en una red Zigbee

Las redes Zigbee han sido diseñadas para conservar la potencia en los nodos ‘esclavos’. De esta forma se consigue el bajo consumo de potencia. La estrategia consiste en que, durante mucho tiempo, un dispositivo "esclavo" está en modo "dormido", de tal forma que solo se "despierta" por una fracción de segundo para confirmar que está "vivo" en la red de dispositivos de la que forma parte. Esta transición del modo "dormido" al modo "despierto" (modo en el que realmente transmite), dura unos 15ms, y la enumeración de "esclavos" dura alrededor de 30ms, como ya se ha comentado anteriormente.1
En las redes Zigbee, se pueden usar dos tipos de entornos o sistemas:

#### Con balizas

Es un mecanismo de control del consumo de potencia en la red. Permite a todos los dispositivos saber cuándo pueden transmitir. En este modelo, los dos caminos de la red tienen un distribuidor que se encarga de controlar el canal y dirigir las transmisiones. Las balizas que dan nombre a este tipo de entorno, se usan para poder sincronizar todos los dispositivos que conforman la red, identificando la red domótica, y describiendo la estructura de la "supertrama". Los intervalos de las balizas son asignados por el coordinador de red y pueden variar desde los 15ms hasta los 4 minutos.
Este modo es más recomendable cuando el coordinador de red trabaja con una batería. Los dispositivos que conforman la red, escuchan a dicho coordinador durante el "balizamiento" (envío de mensajes a todos los dispositivos -broadcast-, entre 0,015 y 252 segundos). Un dispositivo que quiera intervenir, lo primero que tendrá que hacer es registrarse para el coordinador, y es entonces cuando mira si hay mensajes para él. En el caso de que no haya mensajes, este dispositivo vuelve a "dormir", y se despierta de acuerdo a un horario que ha establecido previamente el coordinador. En cuanto el coordinador termina el "balizamiento", vuelve a "dormirse".

#### Sin balizas

Se usa el acceso múltiple al sistema Zigbee en una red punto a punto cercano. En este tipo, cada dispositivo es autónomo, pudiendo iniciar una conversación, en la cual los otros pueden interferir. A veces, puede ocurrir que el dispositivo destino puede no oír la petición, o que el canal esté ocupado.
Este sistema se usa típicamente en los sistemas de seguridad, en los cuales sus dispositivos (sensores, detectores de movimiento o de rotura de cristales), duermen prácticamente todo el tiempo (el 99,999%). Para que se les tenga en cuenta, estos elementos se "despiertan" de forma regular para anunciar que siguen en la red. Cuando se produce un evento (en nuestro sistema será cuando se detecta algo), el sensor "despierta" instantáneamente y transmite la alarma correspondiente. Es en ese momento cuando el coordinador de red, recibe el mensaje enviado por el sensor, y activa la alarma correspondiente. En este caso, el coordinador de red se alimenta de la red principal durante todo el tiempo.

## Costos de módulos Zigbee en futuro

Se espera que los módulos Zigbee sean los transmisores inalámbricos más baratos de la historia y, además, producidos de forma masiva. Tendrán un costo aproximado de alrededor de los 8 dólares, y dispondrán de una antena integrada, control de frecuencia y una pequeña batería. Ofrecerán una solución tan económica porque la radio se puede fabricar con muchos menos circuitos analógicos de los que se necesitan habitualmente.

## Cronología

* Las redes de la familia de Zigbee se conciben hacia 1998, al tiempo que se hizo claro que Wi-Fi y Bluetooth no serían soluciones válidas para todos los contextos. En concreto, se observó una necesidad de redes ad hoc inalámbricas.
* El estándar IEEE 802.15.4 se aprobó en mayo de 2003.
* En el verano de 2003, Philips Semiconductors puso fin a su inversión en redes de mallas. Philips Lighting ha perpetuado la participación de Philips, que sigue siendo un miembro prominente de la Zigbee Alliance.
* Zigbee Alliance anunció en octubre de 2004 una duplicación en su número de miembros en el último año a más de 100 compañías en 22 países. En abril de 2005 había más de 150 miembros corporativos, y más de 200 en diciembre del mismo año.
* La especificación se aprobó el 14 de diciembre de 2004.
* Zigbee 2004 se puso a disposición del público el 13 de junio de 2005.
* En diciembre de 2006 se publicó la actual revisión de la especificación.
* En noviembre de 2007 se publicó el perfil HOME AUTOMATION de la especificación.

## Ejemplos de dispositivos Zigbee

* Sensores: humedad, incendios, inundación, luminosidad, etc.
* Actuadores: enchufes inteligentes, reguladores de la intensidad de iluminación, motores de apertura de puertas y ventanas, etc.
* Controladores: emisores de infrarrojos, controladores serie remotos, emisores de radiofrecuencia, etc.