Si ha estado jugando con algunas placas de desarrollo de Internet de las cosas y redes de sensores inalámbricos, ya debería haber oído hablar del protocolo de comunicación LoRaWAN y otros protocolos de comunicación inalámbrica.
Pero, ¿qué es LoRaWAN? ¿Cómo puede una plaquita de 15 € tener un alcance operativo de muchos kilómetros?¿Cuál es la diferencia entre LoRaWAN y LoRa? ¿Son la misma cosa?
Intentaré responder a todas estas preguntas en este artículo, donde explicaré lo que aprendí durante mi exploración y estudio de este maravilloso pero limitado protocolo de comunicación de largo alcance ampliamente utilizado en muchas aplicaciones de Internet de las cosas.
LoRaWAN: el protocolo de comunicación de largo alcance de Internet de las cosas más barato
¿Cuál es la diferencia entre LoRa y LoRaWAN?
LoRaWAN es un protocolo de comunicación de largo alcance que se utiliza a menudo para crear redes de área amplia de bajo consumo (LPWAN) con un alcance operativo que va desde los 300 metros hasta los 10 kilómetros. Entre los principales protocolos LPWAN, LoRaWAN es uno de los más conocidos y utilizados, dada su arquitectura abierta. A hablar de LoRa y LoRaWAN, se debe especificar que los dos términos se refieren a cosas diferentes: LoRaWAN es un protocolo cuya capa PHY se basa en la modulación LoRa mientras que la capa de Control de Acceso al Medio (MAC) es una arquitectura de red abierta regulada por LoRa Alliance. LoRa en cambio, es una modulación patentada basada en Chirp Spread Spectrum (CSS) que se refiere a la capa física. El protocolo LoRa también está patentado por Semtech Corporation, que es el único productor de chips transceptores LoRa. Por lo tanto, en la pila de protocolos OSI, LoRaWAN (Capa de red) se basa en LoRa (Capa física), como se ve a continuación, ya que define las reglas de acceso a los medios de red, el método de autenticación, el perfil del dispositivo y el cifrado de datos.
Otra diferencia entre LoRa y LoRaWAN es la topología de red, ya que LoRa solo permite enlaces punto a punto, mientras que LoRaWAN, dada su naturaleza de capas de red, define todas las reglas necesarias para crear una topología de red de múltiples estrellas compuesta por muchos nodos finales LoRaWAN y gateways (pasarelas). Las puertas de enlace actúan como puente entre la red LoRaWAN y las redes basadas en IP, entregando datos desde los nodos finales a uno o más servidores y viceversa.
¿Cómo funciona la modulación LoRa?
Los módems LoRa modulan los símbolos en un aumento y disminución de frecuencias chirps, llamados respectivamente up-chirps y down-chirps, como es visible en la ilustración siguiente.
Cada transmisión LoRa tiene un Preámbulo y un Delimitador de Marco de Inicio (Start-Frame-Delimiter, SFD), que preceden a los datos centrales codificados para iniciar y enganchar el receptor LoRa, para escuchar correctamente la transmisión entrante. A su vez, el SFD y el Preámbulo tienen diferente polaridad, por lo que utilizan up-chirps y down-chirps, respectivamente, dependiendo de estos ajustes de polaridad.
La modulación LoRa tiene muchos parámetros, que pueden modificarse parcialmente, dependiendo también de la región operativa del sistema. Son los siguientes:
- Frecuencia portadora: define la frecuencia portadora del medio utilizado tanto para las operaciones de transmisión como para las de escucha. También depende de la región operativa: en Europa, la frecuencia portadora operativa de LoRa es la banda ISM de la UE 863-870MHz, mientras que en EE. UU. Es la banda ISM de 902-928 ~ MHz;
- Ancho de banda de la señal: representa el ancho de las señales de RF LoRa. Por lo general, se establece en 125 kHz, pero se puede aumentar hasta 250 kHz o incluso 500 kHz en algunas regiones para parámetros de modulación particulares;
- Coding Rate: es un parámetro que define la tasa de corrección de errores delantera (FEC) utilizada por los transmisores y receptores LoRa para reducir los efectos perniciosos de las interferencias de RF. Esto afecta el tiempo en antena del símbolo, ya que aumenta la sobrecarga del símbolo para hacerlo más resistente al ruido. De forma predeterminada, su valor se establece en 4/5;
- Factor de propagación: representa el parámetro de propagación del chirp, que define cuántos chirps se envían por segundo. Oscila entre SF7 y SF12. En detalle, un SF grande aumenta el tiempo en el aire del símbolo y el consumo de energía, mejorando así el rango de comunicación, pero reduciendo la velocidad de datos disponible y el tamaño de la carga útil de los mensajes;
- Potencia de transmisión; es la energía irradiada por la antena del nodo LoRa. Además, puede variar desde -4 dBm hasta +20 dBm (+14 dBm en Europa), pero diferentes regiones pueden tener diferentes límites de potencia;
- Polaridad Chirp: define la polaridad de los Chirps transmitidos. A menudo se define por las diferentes implementaciones de protocolos, ya que, por ejemplo, las puertas de enlace LoRaWAN transmiten paquetes a los nodos finales utilizando una modulación de polaridad invertida, de modo que estos mensajes son descartados por las puertas de enlace vecinas, mientras que los dispositivos finales transmiten paquetes utilizando polaridad no invertida, para ser recibidos solo por las pasarelas;
- Sync Word: es un parámetro de valor de un byte definido por los dos últimos Chirps ascendentes del Preámbulo y utilizado para diferenciar redes LoRa que utilizan las mismas bandas de frecuencia. Cualquier dispositivo configurado con una palabra de sincronización determinada descartará cualquier transmisión entrante si la palabra de sincronización es diferente a la definida. Normalmente, el parámetro Sync Word para redes LoRa privadas es 0x12 para dispositivos Semtech SX127x y 0x1424 para dispositivos SX126x, mientras que las redes LoRa públicas (como LoRaWAN o TTN) están representadas por valores iguales a 0x34 para dispositivos Semtech SX127x y 0x3444 para dispositivos SX126x.
¿Cuántas clases de dispositivos LoRaWAN existen?
Los nodos finales LoRaWAN también se pueden clasificar en tres categorías: Clase A, B, y C. Todos los dispositivos LoRaWAN deben implementar la clase A, mientras que las clases B y C son extensiones de los dispositivos de clase A. Estas clases definen el comportamiento de los paquetes de enlace descendente desde las puertas de enlace hasta los nodos finales. Un dispositivo de Clase A admite comunicación bidireccional pero, aunque los mensajes de enlace ascendente se pueden enviar en cualquier momento, los mensajes de enlace descendente solo se pueden recibir durante dos ventanas específicas en momentos específicos después de una transmisión de enlace ascendente, lo que permite el modo de menor consumo de energía. Los dispositivos de clase B son adecuados para actividades relacionadas con el enlace descendente, ya que periódicamente se abre una ventana de recepción sincronizada en el tiempo a través de balizas. En su lugar, los dispositivos de clase C mantienen la ventana de recepción abierta a menos que estén transmitiendo de nuevo, lo que aumenta considerablemente el consumo de energía. Por lo general, las puertas de enlace LoRaWAN actúan como dispositivos de Clase C, ya que están constantemente escuchando la transmisión entrante.
Para transmitir y recibir datos a través de la red LoRaWAN, los nodos finales de LoRaWAN deben estar registrados y habilitados en el proveedor del servidor de aplicaciones, que administra las puertas de enlace de la red abierta. Por lo tanto, el dispositivo LoRaWAN puede unirse a la red de dos maneras: a través de una activación por aire (OTAA) o con un método de activación por personalización (ABP). Ambos métodos funcionan bien, pero el primero es más seguro, ya que cada vez que el nodo final envía un join-request, recibe un join-accept con un NetID, DevAddr y un AppNonce que son usados por el dispositivo para generar una NwkSKey y AppSKey de forma segura. En cambio, un dispositivo ABP ya tiene DevAddr, AppSkey y NwkSkey, que se envían a través de la red en cada transmisión para identificarse.
¿Cuáles son la carga útil, los rangos y las tasas de bits de LoRaWAN?
La modulación LoRa se caracteriza por un factor de propagación (Spreading Factor, SF) que define la duración del tiempo de emisión del chirp. Aumentar el SF aumenta el tiempo del símbolo, lo que permite que la señal viaje una distancia más larga. Limitando el estudio a la banda europea libre de 868 MHz utilizada por LoRa, SF puede variar entre 7 y 12. Cuando SF igual a 7 permite la mayor velocidad de datos y menor tiempo de transmisión de símbolos, mientras que SF igual a 12 devuelve la mayor sensibilidad y rango de transmisión con la tasa de datos más baja y el mayor consumo de energía, dado por la mayor duración de transmisión. SF y las velocidades de bits correspondientes se muestran en la siguiente ilustración, que también muestra otra información de modulación, como el ancho de banda de la señal (típicamente 125 kHz en Europa), la sensibilidad mínima del receptor, el rango operativo relativo, el consumo de energía y el tiempo en el aire.
Una de las cosas más importantes que debe saber al trabajar con LoRaWAN es la carga útil máxima de paquetes (maximum packet payload) para cada SF. Dada la naturaleza de LoRa de baja potencia y baja velocidad de datos, óptima para muchas aplicaciones de Internet de las cosas, la carga útil del paquete es muy susceptible al SF utilizado, ya que este parámetro actúa sobre la velocidad de transmisión de datos. La capa de red LoRaWAN generalmente usa 13 bytes como encabezado de paquete para la operación del protocolo, un valor no despreciable que a un SF alto afecta significativamente la carga útil máxima del paquete. El tamaño máximo de carga útil se alcanza con SF7, que permite hasta 222 bytes de datos de usuario dentro de un solo paquete Lora. El mínimo, en cambio, se alcanza con SF establecido en 12, con un límite de 51 bytes para los datos de usuario. Los límites de carga útil, velocidades de datos, velocidades de bits, sensibilidad del receptor y rango operativo típico relacionado con cada SF con un ancho de banda de 125 kHz a una frecuencia portadora de 868 MHz, se muestran en la siguiente tabla.
A pesar de esto, los rangos de operación de LoRaWAN en el mundo real podrían ser muy diferentes. En mi prueba de alcance de línea de visión LoRaWAN, por ejemplo, pude lograr un alcance operativo de varias decenas de kilómetros sin ningún obstáculo en el medio, con un pico de aproximadamente 75 kilómetros. Sin embargo, en un entorno semiurbano, los rangos operativos son diferentes.
¿Cuáles son los canales y frecuencias Europeos de LoRaWAN?
El protocolo LoRaWAN utiliza ocho canales de enlace ascendente (desde los nodos finales hasta las puertas de enlace) definidos dentro de la banda ISM libre EU863-870 MHz. Los canales de enlace ascendente también se pueden utilizar como canales de enlace descendente en la primera ventana de recepción, pero también hay un noveno canal definido a la frecuencia de 869,525 MHz que se utiliza solo para la segunda ventana de recepción. En la siguiente imagen se muestran los canales de enlace ascendente y descendente de la banda ISM libre EU863-870 MHz.
También hay un noveno canal de enlace ascendente, que tiene una frecuencia fija de 868,8 MHz, pero utiliza una modulación FSK. Otra característica clave del protocolo LoRaWAN es el acceso al medio de radio, basado en el protocolo ALOHA, que se desarrolló en la Universidad de Hawái en la década de 1970.
¿Cuáles son las políticas de uso adecuado de LoRaWAN?
La red LoRaWAN tiene algunas reglas estrictamente políticas, que deben respetarse para un uso justo de la red. Estas son:
- Cualquier dispositivo tiene un tiempo de uso acumulado máximo diario de 30 s para mensajes de enlace ascendente ;
- Cualquier dispositivo tiene un máximo de 10 mensajes de enlace descendente diarios, que incluyen ACK.
Dado que el tiempo en el aire depende del SF y de la carga útil de los mensajes, el límite de mensajes diarios depende estrictamente de estos dos parámetros. Por ejemplo, para una carga útil fija de 10 bytes, esto se traduce en hasta 20 mensajes de enlace ascendente diarios con SF configurado en 12 o alrededor de 500 mensajes de enlace ascendente diarios con SF7. Además, los dispositivos LoRaWAN deben respetar el ciclo de trabajo del ancho de banda, que depende de una región a otra. Para la banda libre EU868 MHz, el ciclo de trabajo va del 0,1% al 10%, según el canal utilizado. Esto significa que cada vez que un dispositivo transmite a través de un canal LoRaWAN, no puede transmitir en este canal durante un cierto período de tiempo, que generalmente es calculado por el propio dispositivo a partir del tiempo en aire de la transmisión anterior.
Por último, otro parámetro que deben respetar los dispositivos LoRaWAN es la potencia máxima de transmisión, que, para la banda EU868 MHz, se establece en +14 dBm, según lo establecido por las leyes del Instituto Europeo de Normas de Telecomunicaciones (ETSI).