Zigbee, Comunicación para Dispositivos

En los últimos años el uso de computadoras se ha incrementado notablemente, y no sólo me refiero a las computadoras de escritorio o portátiles; sino que también incluyo esas pequeñas computadoras que se han ido posicionado en nuestro entorno cotidiano sin hacerse notar mucho: computadoras que se encuentran en televisores, equipos de sonido, lavadoras, automóviles, ventiladores, sistemas de alarma entre otros; y al igual que cualquier otra computadora, éstas requieren de software para funcionar. Es un fenómeno que afecta directamente la demanda de desarrollo de software. Surgen nuevas aplicaciones, nuevas necesidades y con ello nuevas oportunidades de desarrollo. Una de ellas son las redes inalámbricas de sensores: pequeños dispositivos con poder de procesamiento y radio comunicación que con un par de baterías AA pueden operar por años sin mantenimiento alguno, además son lo suficientemente baratos como para integrarlos en televisores, modulares, lámparas, sensores, etcétera; con la finalidad de habilitar el control y monitoreo remoto.

Existen actualmente varias tecnologías propuestas para resolver el problema de comunicación inalámbrica en este tipo de redes, entre ellas se encuentra Zigbee, misma que presentaremos a continuación. Desde su arquitectura hasta su aplicación. Abordando temas como ahorro de energía, interoperabilidad, interconectividad, seguridad, implementaciones existentes en el mercado y áreas de oportunidad.

¿Qué es Zigbee y Quién lo Promueve?
La alianza Zigbee es un ecosistema internacional de compañías (Motorola, Philips, Samsung, Honeywell y Siemens entre otras) cuyo objetivo es habilitar redes inalámbricas con capacidades de control y monitoreo que sean confiables, de bajo consumo de energía y de bajo costo; todo basado en un estándar público global que permita a los fabricantes alrededor del mundo crear productos que sean compatibles entre ellos. Una de las tareas más importantes de la alianza es definir el conjunto de protocolos que habilitarán la comunicación entre los dispositivos, y es a esta definición de protocolos a la que se le conoce como Zigbee. En otras palabras: ZigBee es un protocolo de comunicaciones inalámbricas basado en el estándar para redes inalámbricas de área personal (WPANs) IEEE 802.15.4.

Resumen Técnico
Zigbee es una tecnología inalámbrica que opera en las bandas libres ISM (Industrial, Scientific & Medical) de 2,4 GHz, 868 MHz (Europa) y 915 MHz (EEUU). Tiene una velocidad de transmisión de 250 Kbps y un rango de cobertura de 10 a 75 metros. A pesar de coexistir en la misma frecuencia con otro tipo de redes como WiFi o Bluetooth su desempeño no se ve afectado, esto es debido a su baja tasa de transmisión y, a características propias del estándar IEEE 802.15.4. Como se puede apreciar en la figura 1, Zigbee cubre un área en la que otras tecnologías no desempeñan un buen papel, ya que fueron diseñadas a partir de diferentes requerimientos. Como es el caso de UWB (Ultra Wide Band) alta velocidad de transmisión sin importar el poco alcance, o bien el caso de las redes celulares donde el alcance es lo que más importa. El mismo Bluetooth que se compara constantemente con Zigbee tiene diferentes capacidades en cuanto a velocidad de transmisión y rango de cobertura.

Zigbee se caracteriza por la capacidad de operar redes de gran densidad, situación que ayuda a aumentar la confiabilidad de la comunicación, ya que entre más nodos existan dentro una red, mayor número de rutas alternas existen para garantizar que un paquete llegue a su destino. Cada red Zigbee tiene un identificador de red único, lo que permite que coexistan varias redes en un mismo canal de comunicación sin problema alguno. Teóricamente pueden existir hasta 16,000~ diferentes redes en un mismo canal y cada red puede estar constituida por hasta 65,000~ nodos, obviamente estos limites se ven truncados por algunas restricciones físicas (memoria disponible, ancho de banda). Por otra parte, Zigbee también delimita las características de la red y esto lo hace en función del área de aplicación en la que se utilice. Es también un protocolo de comunicación multi-salto, esto quiere decir que existe comunicación entre dos nodos aun cuando estén fuera del rango de transmisión, siempre y cuando existan otros nodos intermedios que los interconecten. Esta propiedad incrementa significativamente el área de cobertura de la red. Una de las características de mayor valor de Zigbee es su topología de malla (MESH), que permite a la red auto recuperarse de problemas en la comunicación aumentando su confiabilidad.

Zigbee define tres tipos de dispositivos diferentes:
• Coordinador: es el dispositivo que inicia una red, y forma la raíz de ésta. Es capaz de almacenar información de su red, y puede actuar como “centro de confianza” al almacenar y administrar las llaves de seguridad. Solamente puede haber un coordinador por red.
• Ruteador: además de ejecutar alguna función aplicativa, un ruteador puede funcionar como intermediario, sirviendo como puente de datos hacia otros dispositivos.
• Dispositivo final: contiene solamente la funcionalidad necesaria para hablar con su nodo padre; no puede pasar datos a otros dispositivos. Por lo general este tipo de dispositivo mantiene desactivado el radio transmisor la mayor parte del tiempo, con la finalidad de consumir la menor cantidad de energía posible y así obtener una larga vida de las baterías, lo cual es uno de los principales beneficios de Zigbee.

En cuanto a seguridad se refiere, se utiliza el estándar estadounidense AES128 para cifrado y autentificación de los paquetes que viajan por el aire.

Arquitectura
Zigbee es una pila (stack) de protocolos, que semejante al modelo de referencia OSI está constituido por diferentes capas independientes una de otra, y cada una de ellas cumple funciones especificas. La figura 2 ilustra las diferentes capas que conforman la pila.

• La capa de más bajo nivel es la capa física, que en conjunto con la capa de acceso al medio, brindan los servicios de transmisión de datos por el aire, punto a punto. Estas dos capas están descritas por el estándar IEEE 802.15.4.
• La siguiente es la capa de red, la cual brinda los métodos necesarios para: iniciar la red, unirse a la red, enrutar paquetes dirigidos a otros nodos en la red (el algoritmo de enrutamiento de malla está basado en el protocolo Ad Hoc On-Demand Vector Routing – AODV), proporcionar los medios para garantizar la entrega de paquete al destinatario final, filtrar paquetes recibidos, cifrarlos y autentificarlos.
• La siguiente capa es la de soporte a la aplicación que es la responsable de mantener el rol que el nodo juega en la red, filtrar paquetes a nivel de aplicación, mantener la relación de grupos y dispositivos con los que la aplicación interactúa y simplificar el envío de datos a los diferentes nodos de la red. En el nivel conceptual más alto, se encuentra la capa de aplicación que no es otra cosa que la aplicación misma.

Cada capa se comunica con sus capas subyacentes a través de una interfase de datos y otra de control, las capas superiores solicitan servicios a las capas inferiores y las inferiores reportan resultados a las superiores. Además de las capas mencionadas, a la arquitectura se integran otro par de módulos que realizan tareas especificas: el módulo de seguridad que es quien provee los servicios para cifrar y autentificar los paquetes, y el módulo de administración del dispositivo Zigbee, que es quien se encarga de administrar los recursos de red del dispositivo local, además de proporcionar a la aplicación funciones de administración remota de la red.

Áreas de Aplicación
El mercado para las redes Zigbee comprende una amplia variedad de aplicaciones que sería imposible enumerar en unos cuantos párrafos. Cada vez que platico con alguien sobre este tema terminamos la conversación con un nuevo escenario de aplicación, algunos quizás un tanto ficticios pero la mayoría completamente realizables. El detalle está en encontrar quien financie el desarrollo. Actualmente cerca de 300 compañías se han integrado a la alianza Zigbee; un gran número de ellas se encuentran desarrollando productos que van desde electrodomésticos hasta teléfonos celulares, impulsando el área que les interesa respectivamente. En la figura 3 se presentan los grupos más dominantes de aplicaciones que están en la mira de Zigbee.Hay que recordar que Zigbee está diseñado para aplicaciones que transmiten unos cuantos bytes esporádicamente, que es el caso de una aplicación para automatizar el hogar. Al usar esta tecnología no tendrías que cablear los interruptores y los podrías cambiar de lugar sin problema alguno, sin contar que podrías apagar o prender las luces de tu casa a través de Internet o utilizando tu teléfono celular cuando estás de vacaciones.

Otra de las aplicaciones que ha tomado fuerza, es la de los sistemas de medición avanzada, medidores de agua, luz y gas que forman parte de una red con otros dispositivos como displays ubicados dentro de las casas, que pueden monitorear el consumo de energía y no sólo eso, sino que también pueden interactuar con electrodomésticos o cualquier otro sistema eléctrico como bombas de agua o calefacción, con la finalidad de aprovechar mejor la energía. Zigbee goza de un importante respaldo para la gestión energética y para las soluciones de consumo eficiente por parte de la industria de los servicios públicos; y por parte de los patrocinadores de las redes energéticas inteligentes en varios países. Otra área de aplicación prometedora es el rastreo de bienes, también está en la lista la identificación vehicular, nodos ubicados en vehículos que permiten identificar al vehiculo a distancia y descargar información que ha recopilado por un periodo de tiempo determinado. Este tipo de escenarios se encuentran al alcance de la tecnología actual. Las anteriores son sólo algunas de las múltiples aplicaciones que se le pueden dar a las redes en cuestión.

Como lo mencioné al inicio de este artículo, la demanda del desarrollo de software sigue en aumento, incluido el software embebido.

Figura 1. Tecnologías inalámbricas.

Acerca del autor
Christian P. García actualmente es director de ingeniería de software de Ubilogix, empresa que se dedica al desarrollo de embedded software especializada en comunicación inalámbrica. Es egresado del CICESE, donde obtuvo el grado de maestro en Ciencias de la Computación por su trabajo en el diseño de protocolos de comunicación enfocándose en movilidad transparente en IP, el cual fue publicado por la editorial Springer en su serie LNCS. Los últimos años se ha dedicado a la investigación y desarrollo en redes inalámbricas de sensores, y participó en el desarrollo de una de las implementaciones de Zigbee certificadas. por Zigbee Alliance.