Cómo implementar el firmware por aire (FOTA) LoRa con un consumo mínimo de energía

Por Bill Giovino

Colaboración de Editores de Digi-Key de América del Norte

En octubre de 2018, LoRa Alliance anunció especificaciones que estandarizan las actualizaciones del firmware por aire (FOTA) para las terminales de IoT (Internet de las cosas). Si bien esto es una buena noticia para las redes LoRa, resulta un desafío para los diseñadores de terminales de bajo consumo de IoT LoRa y que utilizan microcontroladores con flash.

En comparación con la lectura, la escritura en la memoria flash de un microcontrolador aumenta de manera temporal pero drástica el consumo de potencia del microcontrolador. También necesita utilizar un regulador de voltaje mayor para poder manejar el incremento de potencia.

Ninguno de estos requisitos son deseables, pero este artículo describe cómo el uso de un microcontrolador con FRAM puede emplearse como una manera de bajo consumo para escribir firmware. Junto con un nuevo transceptor LoRa, esta combinación constituye una solución de menor consumo para FOTA en comparación con el enfoque tradicional del microcontrolador flash.

¿Qué es LoRa?

En la internet de las cosas (IoT), uno de los objetivos es transmitir datos de manera inalámbrica utilizando la menor potencia posible. Los diseñadores de aplicaciones de sensores a batería se han preocupado especialmente por el envío inalámbrico de datos de sensores de baja velocidad a través de varias millas y, a la vez, de minimizar el uso de potencia de la batería. De las soluciones que ya existen, Bluetooth y Sigbee están diseñados para aplicaciones de corto alcance, y los datos celulares consumen relativamente mucha potencia. LoRa nace como una solución popular a este problema.

LoRa significa “largo alcance”. Las redes inalámbricas LoRa fueron desarrolladas para bajos volúmenes de datos, bajo consumo de potencia y un largo alcance de transmisión de datos en tiempo no-real. La velocidad de transferencia de datos es de entre 0.3 kilobits por segundo (kbits/s) y 5.5 kbits/s, lo que las hace adecuadas para las transferencias periódicas de datos de sensores. Mientras que las especificaciones de LoRa describen la modulación y las características eléctricas de la red, LoRaWAN (red de área amplia) describe los protocolos y el formato de los datos de la red LoRa.

Las señales de LoRa son similares a las de FM, ya que modulan una señal cambiándole la frecuencia. Sin embargo, si bien una señal FM correctamente modulada cambia de frecuencia instantáneamente, una señal modulada LoRa aumenta o disminuye lentamente la frecuencia a lo largo del tiempo. Este aumento o disminución gradual en la frecuencia se llama un chirp, y al método se lo conoce como modulación chirp. La velocidad del cambio de frecuencia a lo largo del tiempo se conoce como “chirpiness”.

Las redes LoRaWAN siempre están organizadas en una topología en forma de estrella, y el protocolo de acceso y de señal está diseñado para usar una potencia mínima y reducir las colisiones de señales para múltiples terminales. Cada terminal LoRaWAN envía los datos a una puerta de enlace que transfiere esos datos a otra red como Ethernet o Wi-Fi. Normalmente, la puerta de enlace recibe todos los datos de LoRaWAN y los transfiere por la red hacia una computadora central para que sean almacenados o procesados posteriormente.

El alcance de todas las comunicaciones inalámbricas depende del ambiente. En ciudades y en pueblos, las distancias esperadas de transmisión de LoRaWAN pueden ir de 1 a 3 millas. Las áreas rurales pueden tener alcances de 3 a 9 millas, y las transmisiones de datos en línea directa de visión pueden llegar hasta 131 millas. En un caso, una terminal LoRaWAN en un globo meteorológico fue capaz de transmitir datos a una puerta de enlace en la tierra a 436 millas de distancia usando una potencia de transmisión de solo 25 milivatios (mW).

Cada terminal LoRa tiene tres secciones:

  1. Uno o más sensores para recopilar datos
  2. Un microcontrolador
  3. Un chip de radio LoRa de Semtech.

Los sensores son la razón de la terminal. Las aplicaciones de sensores LoRa pueden incluir el monitoreo de temperatura y humedad, del nivel de fluidos de agua y petróleo, y de las presiones de aire y de líquidos. Estos tipos de sensores recopilan datos estáticos que no cambian con rapidez a lo largo del tiempo y, por eso, pueden ser transmitidos de manera inalámbrica a solo 5.5 kbits/s sin afectar la aplicación.

El chip y la antena de radio se comunican directamente por medio de la red LoRa. Semtech es la empresa que posee las patentes del sistema de transmisión LoRa. Actualmente, todas las radios LoRa usan chips de radio Semtech o módulos de radio que tienen chips de radio Semtech en su interior.

El transceptor de radio LoRa SX1262IMLTRT de Semtech está diseñado para aplicaciones LoRa que funcionan a batería y cumple con la norma de transmisión de radio LoRaWAN (Figura 1). Al transmitir o recibir datos, solo consume 4.2 miliamperios (mA) con una salida de potencia de radiofrecuencia (RF) de +22 dBm. Una versión de menor consumo de potencia, el SX1261, tiene una salida de potencia de RF de +15 dBm. Ambos son transceptores semidúplex que funcionan en el rango por debajo del GHz y manejan diseños de modulación envolvente constante como LoRa, y también de modulación por desplazamiento de frecuencia (FSK). La regulación del convertidor reductor de CC a CC como del regulador de caída baja (LDO) linear están incluidos en la placa.

Diagrama de las radios semidúplex incorporadas SX1262IMLTRT y SX1261 de Semtech

Figura 1: La SX1262IMLTRT y la SX1261 de Semtech son radios semidúplex incorporadas para aplicaciones LoRa que incluyen tanto un convertidor reductor de CC a CC como un LDO linear en la placa. (Fuente de la imagen: Semtech)

Selección de un microcontrolador para una terminal LoRaWAN

El microcontrolador en una terminal LoRaWAN lee y procesa los datos del sensor, y también se interconecta con el SX1262 para transmitir los datos por la red. El microcontrolador debe tener suficiente memoria para los controladores del SX1262, los controladores del sensor y el código de la aplicación. En la Tabla 1 se muestran los requisitos que debe cumplir un microcontrolador en una terminal LoRaWAN usando el chip de radio SX1262 de Semtech.

Requisitos del microcontrolador LoRaWAN Requisitos mínimos Requisitos recomendados
Memoria flash 128 kilobytes 256 kilobytes o más
RAM 8 kilobytes 16 kilobytes o más
Encriptación AES-128 Rutina de firmware Bloqueo de hardware (requerido para conexiones de bajada en multidifusión)
Reloj en tiempo real (RTC) con una resolución de 1 milisegundo No requerido si se utiliza un temporizador interno como base de tiempo Requerido para actualizaciones de firmware por OTA, multidifusión y sincronización del reloj en la red
Pines de interrupción externos para interrupciones generadas del SX126x Dos pines IRQ: OCUPADO y un IRQ programable (DIO1) Cuatro pines IRQ: OCUPADO y tres IRQ programables (DIO1:3)
Interfaz SPI para SX126x Requiere: SCK, MOSI, MISO, CS Requiere: SCK, MOSI, MISO, CS
Generación de EUI de 64 bits del IEEE Requerido, rutina de firmware Requerido, rutina de firmware o bloqueo de hardware
CPU del microcontrolador 8 bits 16 o 32 bits

Tabla 1: Los requisitos mínimos que se muestran corresponden a un microcontrolador de una terminal simple LoRaWAN que recopila y transmite datos de un sensor con un procesamiento mínimo. Los requisitos recomendados proporcionan un sistema más robusto para terminales más complejas. (Fuente de la tabla: Semtech)

Según la tabla, los requisitos mínimos de una terminal LoRaWAN básica e independiente pueden implementarse con un microcontrolador de 8 bits. Un ejemplo sería una terminal LoRaWAN simple, de bajo consumo, que necesita transmitir ocasionalmente datos sin procesar del sensor hacia la puerta de enlace.

Sin embargo, si la terminal maneja mucho tráfico o debe realizar algún tipo de procesamiento en los datos del sensor, se deberían seguir los requisitos recomendados en la Tabla 1. A medida que aumentan la memoria y el poder de procesamiento en una terminal LoRaWAN, aumenta el consumo de potencia de la terminal, lo que requiere una batería de mayor capacidad. Esto se contradice con la intención de diseño de LoRaWAN para lograr terminales de IoT de bajo consumo.

Al diseñar una terminal LoRaWAN es importante mantenerse enfocado en el hecho de que se trata de un sistema de bajo consumo y evitar la adición de características innecesarias que complican el sistema y terminan ocasionando que se utilice más potencia de la necesaria. Al seleccionar un microcontrolador para una terminal LoRaWAN, se le debe prestar atención a mantener la velocidad del reloj y el tamaño de la memoria lo más bajos posibles, dado que estos también afectan al consumo de potencia.

Actualización del firmware del microcontrolador en una terminal LoRaWAN

En octubre 2018, LoRa Alliance estandarizó cómo se realizan las actualizaciones de firmware por aire (FUOTA) de las terminales LoRa para todas las redes LoRa. Las nuevas normas consideran la sincronización del reloj para toda la red, lo que reduce notablemente la cantidad de paquetes de datos perdidos. Estas normas también estandarizan las transmisiones multidifusión que se necesitan para transmitir la misma actualización de firmware a varias terminales. Tanto la sincronización del reloj como las transmisiones multidifusión requieren de una base de tiempo, lo que implica que todas las terminales LoRa deben tener microcontroladores con un reloj en tiempo real con una precisión de hasta un milisegundo.

Si bien la actualización de firmware en las terminales LoRaWAN constituye una función importante, trae un nuevo problema. Actualizar firmware implica reprogramar la memoria de programa del microcontrolador, que suele ser una memoria flash no volátil. La programación de la memoria flash necesita de la aplicación de 10 voltios o más a la celda de la memoria. Esto requiere un regulador mayor de voltaje y circuitos relacionados solo para programar la memoria flash. Debido a que las actualizaciones de firmware en algunos sistemas en red pueden ocurrir varias veces al año, esto es una inversión que aumenta el costo y utiliza espacio extra de la placa de manera ineficiente.

Existe una alternativa para los microcontroladores con memoria flash: un microcontrolador con memoria ferroeléctrica de acceso aleatorio (FRAM). La memoria FRAM solo necesita 1.5 voltios para programar una celda. Un buen ejemplo que cumple con los requisitos recomendados para un nodo LoRaWAN es el microcontrolador de 16 bits MSP430FR6047 que utiliza memoria FRAM de Texas Instruments. Este microcontrolador tiene una memoria de programa FRAM de 256 kilobytes y un RTC con calendario y funciones de alarma. Un bloque de encriptación soporta AES-128 y AES-256. Soporta hasta cuatro puertos SPI y tiene suficientes entradas de interrupción externas para soportar las cuatro que necesita el SX1262 de Semtech, lo que hace que la interconexión entre los dos dispositivos sea muy fácil. Además, la generación de identificadores únicos extendidos (EUI) de 64 bits del IEEE puede implementarse fácilmente en el firmware (Figura 2).

Diagrama del MSP430FR6047 de Texas Instruments (haga clic para agrandar la imagen)

Figura 2: El MSP430FR6047 tiene 256 kilobytes de FRAM, 8 kilobytes de SRAM, y un rango amplio de periféricos para aplicaciones basadas en sensores. (Fuente de la imagen: Texas Instruments)

El MSP430FR6047 está diseñado para medidores inteligentes a batería y cuenta con un periférico de detección ultrasónico integrado, lo que brinda una detección altamente precisa del flujo de agua y del nivel de líquidos. Estas características avanzadas se adaptan fácilmente a diferentes aplicaciones de sensores.

Mientras que el MSP430FR6047 solo tiene 8 kilobytes de RAM en vez de los 16 kilobytes recomendados, esto puede no ser un problema en una terminal de sensores LoRaWAN si no se necesita un procesamiento complejo de fusión de sensores. Además, el MSP430FR6047 tiene un alto grado de integración que mejora el desempeño a la vez que ahorra memoria y espacio en la placa. El front-end analógico para aplicaciones de detección ultrasónica incluye un generador de pulsos programable, un convertidor de analógico a digital (ADC) de 12 bits, y un amplificador de ganancia programable, todos muy útiles para la recopilación de datos de sensores analógicos.

El MSP430FR6047 tiene un multiplicador de hardware de 32 bits y un núcleo acelerador de bajo consumo (LEA) para el procesamiento de señales que es capaz de realizar cálculos de la transformada rápida de Fourier (FFT) de 256 puntos independientes del núcleo del MSP430. El LEA acelera el procesamiento de señales para aplicaciones de bajo consumo, lo que extiende la vida de la batería.

El MSP430FR6047 es extremadamente de bajo consumo, incluso en contextos de microcontroladores de 8 bits y 16 bits, que ya son dispositivos de baja potencia. Con el núcleo de 16 bits y los periféricos del MSP430 en funcionamiento, solo consume 120 microamperios por megahercio (µA/MHz). El modo de espera con el RTC en funcionamiento consume solo 450 nanoamperios (nA). El microcontrolador cuenta con un modo de apagado que solo consume 30 nA, pero que también apaga el reloj en tiempo real (RTC), por lo que no se recomienda el modo de apagado para una terminal LoRaWAN.

Diseño con FRAM para FUOTA

Está disponible la placa de evaluación EVM430-FR6047 para el desarrollo de firmware del MSP430FR6047. Se alimenta por USB y contiene todo el hardware necesario para evaluar el MSP430 en una aplicación. La placa de evaluación tiene conectores para módulos BoosterPack™ que permiten agregarle funcionalidades adicionales a la placa. La placa posee pines adicionales para conectar sensores.

Imagen de la placa de evaluación EVM430-FR6047 de Texas Instruments

Figura 3: La placa de evaluación EVM430-FR6047 de Texas Instruments para el MSP430FR6047 tiene una pantalla LCD y otorga acceso a todos los pines en el MSP430FR6047. (Fuente de la imagen: Texas Instruments)

Para la evaluación y el desarrollo del SX1262, Semtech cuenta con el escudo MBED LoRa SX1262MB2CAS (Figura 4).

Imagen del escudo MBED de Semtech para el SX1262

Figura 4: El escudo MBED de Semtech para el SX1262 es una placa de evaluación simple que contiene el transceptor de RF SX1262. (Fuente de la imagen: Semtech)

Los conectores BoosterPack del MSP430 proveen todas las señales necesarias para interconectar el MSP430 al escudo MBED para el SX1262 de Semtech. El conector BoosterPack tiene los cuatro pines SPI necesarios, así como tres entradas y salidas de uso general (GPIO) adicionales que pueden configurarse como entradas de sondeo al MSP430 o como interruptores externos. Si se necesita un interruptor externo adicional, los cuatro pines en el conector BoosterPack están conectados a uno de los transmisores receptores asíncronos universales (UART) del MSP430. Estos pines UART pueden configurarse como GPIO o como interruptores externos para el escudo MBED. Aunque BoosterPack y el escudo MBED no son compatibles físicamente con los pines, pueden ser puenteados fácilmente para proveer las conexiones necesarias entre el MSP430 y el SX1262.

Adicionalmente, Texas Instruments ofrece Code Composer Studio™, un entorno completo de desarrollo integrado (IDE) que soporta la escritura y la depuración del código del MSP430.

Conclusión

LoRa ha surgido como un estándar popular para la transmisión de datos de sensores de IoT. La norma se ha ampliado para incluir FUOTA, lo que trae consigo nuevos desafíos para la larga duración de la batería. Al optar por microcontroladores que utilizan FRAM en vez de memoria flash, los diseñadores pueden reducir enormemente el consumo que se necesita para escribir estas actualizaciones en la memoria del dispositivo.

Además, como se demostró, la elección de microcontroladores se vuelve incluso más importante para minimizar el agotamiento de la batería, a la vez que proporciona suficiente potencia de procesamiento para la aplicación.

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de Digi-Key Electronics o de las políticas oficiales de Digi-Key Electronics.

Información sobre el autor

Bill Giovino

Bill Giovino es ingeniero electrónico con un BSEE de la universidad de Syracuse y es uno de los pocos profesionales capaz de pasar de ingeniería en diseño a ingeniería de aplicación en campo a marketing tecnológico de forma exitosa.

Durante más de 25 años, Bill ha disfrutado promocionar las nuevas tecnologías a audiencias técnicas y no técnicas por igual en muchas empresas, entre ellas STMicroelectronics, Intel y Maxim Integrated. Mientras trabajó en STMicroelectronics, Bill ayudó a dirigir los primeros éxitos de la empresa en la industria de microcontroladores. En Infineon, Bill estuvo a cargo de que el diseño del primer controlador de la empresa tuviera éxito en la industria automotriz de EE. UU. Como consultor de marketing para CPU Technologies, Bill ha ayudado a muchas empresas a convertir sus productos con bajo rendimiento en casos de éxito.

Bill fue uno de los primeros en adoptar el Internet de las cosas, incluso colocar la primera pila de TCP/IP en un microcontrolador. Bill es un ferviente creyente de "Vender a través de la educación" y de la gran importancia de contar con comunicaciones claras y bien escritas a la hora de promocionar productos en línea. Es moderador del grupo en Linkedin denominado Semiconductor Sales & Marketing (Marketing y ventas de semiconductores) y habla sobre el concepto B2E (empresa-empleado) de manera fluida.

Información sobre la editorial

Editores de Digi-Key de América del Norte