XBee

por | 25 julio, 2016

ZigBee

IEEE 802.15.4 es un estándar que define el nivel físico y el control de acceso al medio de redes inalámbricas de área personal con tasas bajas de transmisión de datos (low-rate wireless personal area network, LR-WPAN). El grupo de trabajo IEEE 802.15 es el responsable de su desarrollo. También es la base sobre la que se define la especificación de ZigBee, cuyo propósito es ofrecer una solución completa para este tipo de redes construyendo los niveles superiores de la pila de protocolos que el estándar no cubre.

IEEE802.15.4:

El estandar 802.15.4 simplificado: http://catarina.udlap.mx/u_dl_a/tales/documentos/lem/archundia_p_fm/capitulo4.pdf

Bluetooth y RFID se encuentran en el grupo de trabajo 802.15.

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. 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).

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.1 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.

Zigbee:

Tabla comparativa de módulos 802.1.4 https://en.wikipedia.org/wiki/Comparison_of_802.15.4_radio_modules

El estándar Zigbee se utiliza primordialmente para aplicaciones domóticas donde es mínima la capacidad de transferencia de información y el costo y consumo tienen un papel fundamental. ZigBee se utiliza para controlar la calefacción, iluminación, sistema de seguridad, etc. de cualquier edificio inteligente. Se espera que ZigBee se aplique para industrias, juguetes, periféricos de PC, componentes electrónicos, sistemas de control automático, medicina, etc. pero en este momento su principal aplicación es en los sistemas de domótica y de automatización.

Zigbee Soporta tres tipos de topologías de red:

  • Star o Estrella: presenta larga vida útil como consecuencia del bajo consumo que requiere.
  • Mesh o Malla: en la cual existen múltiples rutas para alcanzar un destino, obteniéndose alta confiabilidad.
  • Cluster Tree o Racimo de Árbol: es una topología del tipo Mesh-Star que encierra los beneficios de ambas.

Las comunicaciones Zigbee se realizan en la banda libre de 2.4GHz. A diferencia de bluetooth no utiliza FHSS (Frequency hooping), sino que realiza las comunicaciones a través de una única frecuencia, es decir, de un canal. Normalmente puede escogerse un canal de entre 16 posibles. El alcance depende de la potencia de emisión del dispositivo así como el tipo de antenas utilizadas (cerámicas, dipolos, …) El alcance normal con antena dipolo en visión directa suele ser aproximadamente (tomando como ejemplo el caso de MaxStream, en la versión de 1mW de potencia) de 100m y en interiores de unos 30m. La velocidad de transmisión de datos de una red Zigbee es de hasta 256kbps. Por último decir que una red Zigbee la pueden formar, teóricamente, hasta 65535 equipos, es decir, el protocolo está preparado para poder controlar en la misma red esta cantidad enorme de dispositivos. La realidad es menor, siendo, de todas formas, de miles de equipos.

Más información: http://www.electrocomponentes.com/articulos/diciembre06/zigbee.html

XBee

XBee es el nombre comercial de Digi de una familia de módulos de comunicación por radio basados en el estándar zigbee, pero Digi tiene muchos módulos Xbee, algunos son zigbee estándar y otros son propietarios o modificaciones del estándar. Existen muchos módulos Xbee basados en el estándar IEEE 802.15.4, también WiFi y Bluetooth, usando todos el mismo factor de forma

Los módulos Xbee han sido diseñados para aplicaciones que requieren de un alto tráfico de datos, baja latencia y una sincronización de comunicación predecible. En términos simples, los XBee son módulos inalámbricos fáciles de usar propiedad de Digi basados en el estándar IEEE 802.15.4.

Xbee es el nombre comercial de la familia de módulos de radio con un factor de forma compatible de Digi International

Los módulos de radio XBee pueden ser usados con un número mínimo de conexiones: Power (3.3V), GND y TX/RX de la UART (DIN/DOUT), junto con otras conexiones recomendables como reset y sleep. La mayoría de los módulos XBee tienen otras conexiones omo flow control, input/output (I/O), analog-to-digital converter (A/D), etc…

Más información de XBee:

La familia de módulos de radio XBee es:

  • XBee 802.15.4 (Series 1) — The initial point-to-point topology or star topology module running the IEEE 802.15.4 protocol.
  • XBee-PRO 802.15.4 — A higher power, longer range version of the XBee 802.15.4
  • XBee DigiMesh 2.4 — A 2.4 GHz XBee module that uses DigiMesh, a sleeping mesh networking protocol developed by Digi International
  • XBee-PRO DigiMesh 2.4 — A higher power, longer range version of the XBee DigiMesh 2.4
  • XBee ZB (Series 2) — An XBee module that incorporates the ZigBee PRO mesh networking protocol.
  • XBee-PRO ZB — A higher power, longer range version of the XBee ZB
  • XBee ZB SMT — A surface mount XBee running the ZigBee protocol
  • XBee-PRO ZB SMT — A higher power, longer range version of the XBee ZB SMT
  • XBee SE — An XBee ZB module that incorporates the security cluster for the ZigBee Smart Energy public profile
  • XBee-PRO SE — A higher power, longer range version of the XBee SE
  • XBee-PRO 900HP — A 900 MHz XBee-PRO module with up to 28 mile range with high-gain antenna that supports DigiMesh networking protocol
  • XBee-PRO 900 (Legacy) — A 900 MHz proprietary point-to-point and star topology module, not recommended for new design
  • XBee-PRO XSC (S3B) — A 900 MHz module compatible over the air with the Digi 9XStream radios
  • XBee-PRO DigiMesh 900 (Legacy) — A 900 MHz module that uses DigiMesh, not recommended for new design (see XBee-PRO 900HP for new designs)
  • XBee-PRO 868 — An 868 MHz 500 mW long-range module that supports proprietary point-to-point and star, for use in Europe
  • XBee 865/868LP — An 868 MHz XBee module that uses DigiMesh, available in Surface Mount form-factor (also configurable to 865 MHz for use in India)
  • XBee ZigBee (S2C) — Incorporates an upgrade to the transceiver chip, replacing the Silicon Labs EM250 with the Silicon Labs EM357, effectively adding more RAM, more flash, faster clock speed and lowering the current draw
  • XBee-PRO ZigBee (S2C) — A higher power, longer range version of the XBee ZigBee (S2C)

Los módulos más sencillos de Xbee son los serie 1 (también llamada 802.15.4) que no soportan mesh (solo redes punto a punto y multipunto) e implementan el estándar 802.15.4. Son los más fáciles de usar y los más recomendados para empezar a trabajar.

Más información Serie1: http://www.digi.com/pdf/ds_xbeemultipointmodules.pdf

Ejemplo de uso Serie1: http://examples.digi.com/get-started/basic-xbee-802-15-4-chat/

Guia de compra de módulos XBee: https://www.sparkfun.com/pages/xbee_guide

Para usar un módulo XBee con Arduino es necesario un Shield o un adaptador para conectar el puerto serie de XBee con el de Arduino.

Para usar o configurar un módulo XBee con un ordenador es necesario un adaptador que generalmente tiene un chip FTDI que hace de pasarela entre el puerto serie y el USB.

XBee explorer: http://tienda.bricogeek.com/modulos-radiofrecuencia/156-xbee-explorer-usb.html

Kits de aprendizaje de XBee de Digi:

Buena página para saber más de XBee: http://xbee.cl/

Arquitectura Básica de una Red XBee

Una red XBee la forman básicamente 3 tipos de elementos. Un único dispositivo Coordinador, dispositivos Routers y dispositivos finales (end points). Los módulos XBee son versátiles a la hora de establecer diversas topologías de red, dependiendo la serie de XBee que escojamos pueden crearse redes

El Coordinador: Es el nodo de la red que tiene la única función de formar una red. Es el responsable de establecer el canal de comunicaciones (como hablábamos antes) y del PAN ID (identificador de red) para toda la red. Una vez establecidos estos parámetros, el Coordinador puede formar una red, permitiendo unirse a él a dispositivos Routers y End Points. Una vez formada la red, el Coordinador hace las funciones de Router, esto es, participar en el enrutado de paquetes y ser origen y/o destinatario de información.

Los Routers: Es un nodo que crea y mantiene información sobre la red para determinar la mejor ruta para enrutar un paquete de información. Lógicamente un router debe unirse a una red Zigbee antes de poder actuar como Router retransmitiendo paquetes de otros routers o de End points.

End Device: Los dispositivos finales no tienen capacidad de enrutar paquetes. Deben interactuar siempre a través de su nodo padre, ya sea este un Coordinador o un Router, es decir, no puede enviar información directamente a otro end device. Normalmente estos equipos van alimentados a baterías. El consumo es menor al no tener que realizar funciones de enrutamiento.

Los módulos XBee son versátiles a la hora de establecer diversas topologías de red, dependiendo la serie de XBee que escojas puedes crear redes:

  • Punto a punto
  • Estrella
  • Malla
  • Árbol
  • Mixtas

Módulos XBee

Los módulos XBee de Digi son pequeños módulos RF (radio frecuencia) que transmiten y reciben datos sobre el aire usando señales de radio. La capacidad inalámbrica es esencial cuando se quieren instalar sensores en lugares donde no hay cables.

Los módulos XBee son altamente configurables y soportan múltiples protocolos para permitir usarlo tanto en un enlace punto a punto como en un diseño complejo con muchos dispositivos en una red mesh.

Algunos ejemplos de uso de los módulos XBee:

  • Controlar un robot remotamente
  • Añadir inteligencia a una casa edificio sin tener que realizar cableados
  • Para aplicaciones industriales, por ejemplo para monitorizar temperatura, presión o máquinas complejas.

Las series

XBee Series 1 (también llamados XBee 802.15.4)  – Son la serie más fácil para trabajar, no necesitan ser configurados, pero incluso así se pueden obtener beneficios de estos módulos. Debido a que son fáciles para trabajar, son los más recomendables especialmente si se está empezando. Para comunicaciones Punto-a-Punto, estos módulos trabajan tan bien como los de la Serie 2, pero sin todo el trabajo de pre configuración previo. El hardware de las Series 1 y las Series 2/2.5/ZB NO SON COMPATIBLES. No trates de mezclarlos, no funcionará.

Guia de usuario serie 1: http://www.hmangas.com/Electronica/Datasheets/Shield%20XBee%20Arduino/XBee-Guia_Usuario.pdf

XBee Znet 2.5 (Formalmente Series 2) Retirado – Los módulos Serie 2 deben ser configurados antes de ser usados. Pueden funcionar en modo Transparente o por medio de comandos API, pero todo esto depende de que firmware se configure en los módulos. También pueden funcionar en una red mesh. Son más difíciles que usar que los de la Serie 1. No existe una forma en que estos módulos sean compatibles con los de la Serie 1. Los módulos Znet 2.5 ya no se venden, pero han sido reemplazados con módulos ZB más compatibles.

Manual: https://www.sparkfun.com/datasheets/Wireless/Zigbee/XBee-2.5-Manual.pdf

XBee ZB (el actual módulo Series2) – Básicamente es el módulo Znet 2.5, pero con un nuevo firmware. Esto significa que también funcionan en modo transparente o por medio de comandos API. También funcionan en redes mesh. Estos a menudo son llamados módulos de Serie 2, por lo que si escuchas a alguien hablar sobre esta serie, probablemente estén hablando de estos módulos. Puede que no sea el término correcto, pero se hace distinción de estos con los módulos de la Serie 1, los cuales son los más populares.

XBee 2B (el más actual módulo Series2) – Son nuevos módulos que poseen mejoras en el hardware respecto de los de la Serie 2, básicamente son los mismo que los anteriores pero con un firmware más nuevo, mejorando por ejemplo el uso de la potencia. Funcionan con el Firmware del módulo ZB, pero debido al cambio de hardware, ya no pueden funcionar con el firmware del módulo Znet 2.5. Por lo que ten cuidado si agregas uno de estos módulos a una red ya existente que utilice módulos Znet 2.5. Actualmente algunas tarjetas son 2B y otras son ZB.

Básicamente el problema es mezclarlos.

Frecuencias 900 MHz vs 2.4GHz – La mayoría de los módulos XBee operan a 2.4 GHz , pero hay unos pocos que operan a 900 MHz. Básicamente los de 900 MHz pueden llegar muy lejos con una antena de alta ganancia (hasta casi 24 Km). Además a menor frecuencia, la señal posee mayor penetración. Otro punto importante es que los módulos de 900 MHz no están permitidos en algunos países, Digi tiene versiones de 868 MHz que sí está permitido en la mayoría de los países.

Documentación módulos XBee:

Regulaciones en paises: http://www.digi.com/resources/certifications

Toda la documentación de Digi para XBee: http://www.digi.com/resources/documentation/digihelp/default.htm

Cómo se comunican los dispositivos XBee

Los dispositivos XBee se comunican entre ellos a través del aire enviando y recibiendo mensajes. Estos dispositivos no pueden gestionar los datos enviados o recibidos, sin embargo pueden comunicarse con otros dispositivos a través del interfaz serie.

Los dispositivos XBee transmiten al aire los datos que llegan del puerto y transmiten al puerto serie cualquier dato que llega por el aire. Los microcontroladores o los PCs pueden controlar que envían los dispositivos XBee y gestionan los mensajes inalámbricos entrantes.

Por lo tanto tenemos dos tipos de comunicación en los dispositivos XBee:

  • Comunicación inalámbrica: es la comunicación entre los módulos XBee, estos módulos deben ser parte de la misma red y usar la misma frecuencia de radio.
  • Comunicación serie: es la comunicación entre el módulo XBee y el microcontrolador o el PC a través de un puerto serie.

En la comunicación inalámbrica los módulos transmiten y reciben información a través de la modulación de las ondas electromagnéticas. Para que se realice la transmisión ambos módulos deben estar en la misma frecuencia y en la misma red. Esto se determina por dos parámetros:

  • Channel (CH) es la frecuencia usada para comunicar, es decir, el canal dentro de la red.
  • Personal Area  Network Identifier (ID) es un identificador único que establece que los módulos están en la misma red.

Un módulo XBee solo recibirá y transmitirá datos a otros XBee dentro de las misma red (mismo ID) y usando el mismo canal (mismo CH).

Direccionamiento

Los módulos de XBee tienen varias direcciones diferentes, cada una con un propósito.

Type Example Unique
64-bit 0013A20012345678 Always
16-bit 1234 Yes, but only within a network
Node identifier Bob’s module Uniqueness not guaranteed

Cada módulo de XBee tiene una dirección única de 64 bits, esta dirección se llama MAC y es análogo a la MAC de las tarjetas de red o wifi. El valor de 64 bits está compuesto por los parámetros Serial Number High (SH) y Serial Number Low (SL), que aparecen impresos en la parte trasera del módulo. El valor SH es generalmente el mismo para todos los módulos XBee (0013A200) e identifica los módulos de Digi. La dirección 000000000000FFFF está reservada para mandar un mensaje de broadcast.

Una dirección de 16 bit puede ser asignada a cada módulo XBee y no es única. Este valor puede leerse o escribirse a través del parámetro MY. Si el valor es FFFF se deshabilita la recepción de paquetes con direcciones de 16 bit.

El identificador de nodo es un string corto que permite identificar fácilmente un módulo con un nombre. Para leer o escribir el node identifier se hace a través del parámetro NI.

Comunicación serie

Un módulo XBee puede funcionar como un módulo independiente o conectado a un microcontrolador o PC. Cuando opera como módulo independiente simplemente manda datos al nodo central de los sensores o dispositivos conectados a los puertos del módulo. Cuando está conectado a un microcontrolador o un PC, el módulo XBee usa la comunicación serie. En el caso de Arduino, este manda a través del puerto serie datos al módulo XBee para que sean transmitidos por el aire.

El módulo XBee hace de interface con el microcontrolador a través de la UART (puerto serie asíncrono). Para más información ver las guías de usuario:

Un arduino o el dispositivo externo conectado a uno módulo XBee mediante puerto serie puede tener varios modos de operación en función de cómo se comunican por el puerto serie. Los módulos XBee soportan dos modos de operación:

  • Modo Transparente (Aplicación transparente). La radio pasa la información tal cual la recibe por el puerto serie. Este modo tiene funcionalidades limitadas pero es la forma más sencilla de comenzar.
  • Modo API (Aplicación de programación). En este caso un protocolo determina la forma en que los datos son intercambiados. Este modo permite hacer una red de comunicaciones más grande.

Ventajas y desventajas de un modo u otro: http://www.digi.com/resources/documentation/Digidocs/90001456-13/Default.htm#concepts/c_xbee_comparing_at_api_modes.htm%3FTocPath%3DHow%2520XBee%2520devices%2520work%7CWireless%2520communication%7CSerial%2520communication%7C_____2

Modo Transparente

En modo transparente el módulo XBee funciona de forma que todo lo recibido por el puerto serie es enviado inmediatamente al aire y todo lo recibido por la radio es se manda tal cual al puerto serie.

En modo transparente para comunicar dos módulos, es necesario configurar la dirección del destino en el módulo que envía datos. Esta dirección se programa en los parámetros:  Destination Address High (DH) y Destination Address Low (DL).

El modo transparente tiene muchas limitaciones, por ejemplo al trabajar con varios módulos es necesario configurar la dirección de destino antes de mandar un mensaje. Sin embargo, el modo transparente es perfecto cuando hay comunicación punto a punto entre solo dos elementos.

En modo transparente podemos usar el modo comando que es un estado en que los caracteres enviados al módulo XBee son interpretados como comandos en lugar de transmitirlos vía radio. Para cambiar a modo comando hay que mandar el string “+++”, cuando el módulo recibe un segundo de silencio seguido del string “+++” (sin /n o /r) y otro segundo de silencio, deja de mandar datos por radio y comienza a aceptar comandos locales. Al entrar en modo comando si transcurren 10 segundo sin recibir datos automáticamente sale de modo comando y vuelve a modo transparente. Para salir del modo configuración usar ATCN.

El propósito del modo comando es leer o escribir la configuración local del módulo XBee. Para ello se usan los comandos AT (https://es.wikipedia.org/wiki/Conjunto_de_comandos_Hayes). Un comando AT comienza con las letras “AT” seguida de dos caracteres que identifican el comando a ejecutar y algunos otros parámetros opcionales.

Por lo tanto desde un Arduino sería muy sencillo configurar un módulo XBee en lugar de usar el interfaz gráfico XBee Configuration and Test Utility (XCTU).

Deja un comentario