Agilice el diseño de conectividad inalámbrica de largo alcance con un SiP LoRaWAN

Por Stephen Evanczuk

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

En aplicaciones de detección remotas que requieren una conectividad de bajo costo, bajo consumo de energía y largo alcance, la tecnología de LoRa se beneficia de alternativas como Bluetooth y Wi-Fi. Con todo, los desarrolladores siguen teniendo dificultades con los matices del diseño RF para que se implementen de manera rentable y rápida los diseños LoRa que maximizan el alcance y las tasas de datos sin violar los presupuestos limitados de energía disponibles para los sistemas IoT más comunes.

Para agilizar el diseño basado en LoRa, los proveedores de silicio han desarrollado módulos de Sistema en paquete (SiP) completos y montones de softwares relacionados a LoRaWAN como soluciones inmediatas para conectividad de largo alcance.

Este artículo discutirá brevemente el enfoque LoRa antes de introducir soluciones de hardware y software compatibles y cómo los diseñadores pueden usarlas para obtener un diseño que funcione rápidamente.

Redes IoT de largo alcance

LoRa, que quiere decir largo alcance (en inglés), define un radio ultraeficiente, de bajo costo, bajo consumo de energía, patentado y de amplio espectro. Su capacidad de soportar sensores que funcionan a batería y otras aplicaciones de bajo consumo de energía hace que se adecue a aplicaciones IoT que operan a distancias mayores que las de los rangos Wi-Fi o Bluetooth. Los diseños con base en LoRa pueden funcionar por años con una batería pequeña y proporcionar conectividad segura a una gran cantidad de redes en kilómetros.

LoRaWAN es una capa de control de acceso a medio (MAC) que se encuentra por encima de la interferencia de radio de LoRa que define cómo funciona la red y establece las tasas de datos (normalmente hasta 50 Kbits/s) (ver, LoRaWAN, parte 1: Cómo obtener 15 km de conectividad inalámbrica y una batería de vida útil de 10 años para IoT). Al funcionar con una topología de red, la arquitectura de la red extendida de LoRaWAN utiliza puertas de enlaces para transmitir mensajes entre dispositivos de terminales múltiples tales como sensores IoT y servidores host (Figura 1). Un radio LoRa se puede utilizar por separado con una capa alternativa MAC para LoRaWAN, pero la interfaz no será compatible con las especificaciones LoRaWAN.

Diagrama de las especificaciones LoRaWAN

Figura 1: Las especificaciones LoRaWAN proporcionan comunicaciones autenticadas y encriptadas entre dispositivos de terminales y servidores de red, utilizando puertas de enlaces para usar como puentes entre la conectividad de largo alcance con los dispositivos de terminales y una conectividad de red extendida con hosts de red en la nube o entornos dedicados. (Fuente de la imagen: LoRa Alliance)

En esta arquitectura, los dispositivos de terminales y los servidores host se comunican a través de los dispositivos de enlaces, lo cuales se pueden configurar para servir simplemente como puentes de comunicación. Para comunicar con los servidores host, las puertas de enlace utilizan opciones de conectividad convencionales tales como Wi-Fi, Ethernet o celular. Para comunicarse con dispositivos de terminales, el enlace depende de la capacidad de la capa patentada física LoRa (PHY) Semtechpara lograr una conectividad de largo alcance utilizando banas de sub-gigahertz (GHz). De cualquier modo, LoRaWAN protege las comunicaciones integrales con la encriptación AES utilizando las claves de la sesión de red o aplicación que se pueden crear durante la producción, puesta en servicio o la activación de programación por aire (OTA).

En una red LoRaWAN, todas las comunicaciones con dispositivos de terminales son bidireccionales, pero las especificaciones de protocolo de LoRaWAN proporcionan tres clases distintas de dispositivos de terminales que permiten a los desarrolladores equilibrar esencialmente el consumo de energía contra la latencia de respuesta. Los dispositivos de terminales de clase A solo pueden recibir durante dos enlaces de ventanas seguido de sus transmisiones. Al limitar los periodos receptores activos, los dispositivos de clase A sirven para dispositivos con energía restringida como los sensores IoT. La clase B combina la clase A con ventanas receptoras adicionales. Por lo tanto, esta clase es apropiada para dispositivos actuadores IoT que necesitan responder con latencia reducida a solicitudes host aun con los costos del consumo de energía Rx incrementados. Finalmente, los dispositivos de clase C proporcionan ventanas receptoras abiertas continuas y son aptas para usarse con enlaces LoRaWAN.

Para optimizar la seguridad LoRaWAN, la reducción de consumo de energía y la conectividad de largo alcance, es posible que los esfuerzos de los desarrolladores se retrasen por los innumerables detalles requeridos para configurar la plataforma de hardware y los sistemas de software. Sin embargo, los hardware y software de Microchip Technology simplifican la implementación de redes LoRaWAN, proporcionando una solución inmediata para implementar la tecnología LoRa.

Soluciones integradas con bajo consumo de energía

Los módulos del Sistema en paquete (SiP) SAM R34/35 de Microchip combinan un transceptorArm® Cortex®-M0+ , Semtech SX1276, flash, RAM, RAM de bajo consumo especial (LP) y una completa colección de tipos de periféricos que suelen requerirse en sistemas de sensores (Figura 2). Junto con los módulos lógicos configurables a medida, el SAM 34/35 incluye un convertidor análogico-a-digital multicanal de 12 bit (ADC), comparadores análogicos, y módulos de comunicación de series múltiples que pueden programarse para soportar I2C, SPI y otras series de interfaces. Los SIP SAM R34 y R35 solo se diferencian en que el R35 no proporciona la interfaz USB incluida con el R34. Además de esa diferencia, los módulos de 6 x 6 mm de SAM R34/35 son los mismos en las tres configuraciones de memoria diferentes:

  • ATSAMR3xJ16BT-I/7JX con flash de 64 Kbytes, SRAM de 8 Kbits, SRAM de bajo consumo de 4 Kbytes
  • ATSAMR3xJ17BT-I/7JX con flash de 128 Kbytes, SRAM de 16 Kbits SRAM, SRAM de bajo consumo de 8 Kbytes
  • ATSAMR3xJ18BT-I/7JX con flash de 256 Kbytes, SRAM de 32 Kbits, SRAM de bajo consumo 4 Kbytes

Diagrama de un módulo de Microchip Technology de SIP SAM R34/35

Figura 2: El módulo de SIP de Microchip Technology SAM R34/R35 combina un núcleo de procesador Arm Cortex-M0+ de bajo consumo, un transceptor SX1276 de Semtech, memoria y múltiples periféricos, sin USB, en el SAM R35. (Fuente de la imagen: Microchip Technology)

Diseñados específicamente para aplicaciones de bajo consumo, los módulos SIP proporcionan varias opciones de software para seleccionar y reducir el consumo durante periodos de menor actividad funcional. Los desarrolladores pueden configurar el SAM R34/R35 para operar en dos niveles de rendimiento distintos. En el mayor nivel de rendimiento, PL2, el núcleo del dispositivos opera con su mayor voltaje, lo que permite que el dispositivo funcione con gran velocidad. En el menor nivel de rendimiento, PL0, el nivel de voltaje del núcleo se escala con una frecuencia de operación reducida, lo que reduce el consumo de energía general.

En el nivel de rendimiento, los desarrolladores también pueden programar y cambiar el dispositivo para que opere en distintos modos de energía. En el modo inactivo, el módulo solo consume 4.5 miliamperios (mA) con periodos cortos de demanda máxima, alcanzando los 28 mA para Tx y 10.3 mA para Rx. Los desarrolladores también pueden implementar el consumo de energía a 1.4 microamperios (µA) al programar el módulo en el modo de reposo, lo que apaga los relojes y las funciones, a excepción de aquellos programar para que continúen la actividad. Además, los módulos soportan las operaciones SleepWalking, lo que permite que los periféricos seleccionados respondan a eventos independientemente del procesador, realicen operaciones periféricas y activen el procesador solo si es necesario. Para reducir el consumo durante los periodos de inactividad largos, los desarrolladores pueden programar al módulo en modo de reposo, que solo consume 790 nanoamperios (nA). Las advertencias de Microchip colocan al dispositivo en estado inactivo de acuerdo con las condiciones de metaestabilidad que surgen de la impedancia del bus SPI.

Implementación de diseño

Gracias a la funcionalidad de integración de los módulos, los requisitos de interfaz de hardware son simples. Además de los capacitadores de desacople para el SAM R34/R35 SiP, los desarrolladores solo deben agregar un interruptor de señal como el Skyworks Solutions SKY13373 y los componentes pasivos necesarios para completar la transmisión y recibir la trayectoria de datos RF (Figura 3).

Diagrama del módulo de Microchip Technology SAM R34/R35 (haga clic para ampliar)

Figura 3: Con el módulo de Microchip Technology SAM R34/R35, los desarrolladores necesitan unos cuantos componentes adicionales además de aquellos requeridos para la trayectoria de señal RF y los interruptores RF asociados, como el Skyworks Solutions SKY13373. (Fuente de la imagen: Microchip Technology)

Los desarrolladores pueden evitar estos requisitos simples adicionales de hardware utilizando el kit de evaluación Microchip Technology DM320111 SAM R34 Xplained Pro. Los desarrolladores pueden utilizar el kit para comenzar a evaluar de inmediato el SAM R34 o extender el diseño de referencia de hardware para sus dispositivos personalizados.

Microchip también ayuda con el desarrollo de la velocidad de software a través de la combinación del firmware y software de muestra el módulo SAM R34/R35 disponible con el entorno completo de desarrollo de Atmel Studio 7. Diseñados con el transceptor integrado Semtech SX1276 LoRa y PHY, los SIP de SAM R34/R35 proporcionan una implementación LoRaWAN certificada a través de su Microchip LoRaWAN Stack (MLS) integrado (Figura 4).

Diagrama de Microchip LoRaWAN Stack (MLS)

Figura 4: A través de una variedad de interfaces de programación de aplicaciones (APIs), el Microchip LoRaWAN Stack (MLS) proporciona a los desarrolladores servicios de firmware para MAC, PHY, almacenamiento persistente, administración de energía y más. (Fuente de la imagen: Microchip Technology)

Con base en los controladores de dispositivo de Microchip Advanced Software Framework (ASF) y módulos núcleo, el firmware MLS proporciona interfaces de programación de aplicaciones (APIs) para cada uno de sus servicios, que incluyen:

  • LoRaWAN MAC, que proporciona la capa de funcionalidad LoRaWAN MAC
  • LoRaWAN Radio Layer (TAL), que proporciona acceso al transceptor LoRa
  • Persistent Data Server (PDS), que proporciona una capa de servicio a la memoria flash, lo que reduce el tiempo de acceso y acceso a ciclos para recuperar los parámetros MLS
  • Módulo de administración de energía (PMM), que pone el procesador en modo de reposo durante periodos de inactividad
  • Hardware Abstraction Layer (HAL), que protege los códigos de los detalles de hardware
  • Bibliotecas de cronómetros
  • Planificador, que asigna los recursos del procesador en módulos distintos

Haciendo uso de las funciones API, los desarrolladores pueden ejercer el control de cada aspecto de la funcionalidad del módulo. Por ejemplo, para poner al módulo en modo de reposo, los desarrolladores pueden programar la función PMM API, PMM_Sleep (), la cual usa una estructura de solicitud de reposo que contiene el tiempo de reposo, el modo de reposo (inactivo, espera, reposo o apagado) y la finalización de la función de actividad (Listado 1). Dentro de una aplicación, los desarrolladores pueden programar esta función después de cada tarea. Por ejemplo, la distribución de Microchip ASF incluye una muestra de aplicación de dispositivo de terminal que utiliza su enfoque dentro de una trayectoria interminable (Listado 2). Cada MLS API proporciona puntos de entrada similares a los servicios de firmware MLS.

Copy /* Structure of sleep request */ typedef struct _PMM_SleepReq_t {        /* Sleep time requested to PMM. Unit is milliseconds */        uint32_t sleepTimeMs;     /*  Sleep Modes */        HAL_SleepMode_t sleep_mode;        /* Callback from sleep request */        void (*pmmWakeupCallback)(uint32_t sleptDuration); } PMM_Sleep 

Listado 1: La distribución Microchip Advanced Software Framework (ASF) proporciona un software de ejemplo que demuestra los patrones de diseño y las estructuras de datos claves, como esta estructura utilizada en el módulo de Microchip Technology SAM R34/R35 para llevarlo a un estado de reposo. (Fuente del código: Microchip Technology)

Copy   .
.
.
while (1)     {               serial_data_handler();         SYSTEM_RunTasks(); #ifdef CONF_PMM_ENABLE         if (false == certAppEnabled)         {             if(bandSelected == true)             {                 PMM_SleepReq_t sleepReq;                 /* Put the application to sleep */                 sleepReq.sleepTimeMs = DEMO_CONF_DEFAULT_APP_SLEEP_TIME_MS;                 sleepReq.pmmWakeupCallback = appWakeup;                 sleepReq.sleep_mode = CONF_PMM_SLEEPMODE_WHEN_IDLE;                 if (CONF_PMM_SLEEPMODE_WHEN_IDLE == SLEEP_MODE_STANDBY)                 {                     deviceResetsForWakeup = false;                 }                 if (true == LORAWAN_ReadyToSleep(deviceResetsForWakeup))                 {                     app_resources_uninit();                     if (PMM_SLEEP_REQ_DENIED == PMM_Sleep(&sleepReq))                     {                         HAL_Radio_resources_init();                         sio2host_init();                         /*printf("\r\nsleep_not_ok\r\n");*/                     }                 }             }         } #endif     }   .
.
. 

Listado 2: La muestra de software de Microchip ilustra cómo los desarrolladores pueden utilizar API para volver a un módulo Microchip Technology SAM R34/R35 a un estado de bajo consumo durante periodos de inactividad. (Fuente del código: Microchip Technology)

El código de muestra está disponible en Studio 7 o de manera separada en la distribución ASF, donde proporciona una demostración completa de uso de demandas MLS API en la implementación de una aplicación LoRaWAN. La implementación de muestra de un dispositivo de terminal ilustra operaciones de alto nivel, incluida la inicialización de un dispositivo al recuperar características MLS previas y parámetros del servicio de servidor de datos PDS (Listado 3). Otras muestras de software proporcionan una variedad de rutinas de prueba que permiten a los desarrolladores examinar detalladamente las características de rendimiento LoRaWAN y las demandas MLS API utilizadas para extraer esos valores. Al utilizar las muestras de software de Microchip en combinación con el kit de evaluación SAM R34 Xplained Pro, los desarrolladores pueden obtener experiencia de las operaciones generales de LoRaWAN y del servicio de firmware Microchip en particular.

Copy/*********************************************************************//**\brief Initialization the Demo application*************************************************************************/void mote_demo_init(void){ bool status = false; /* Initialize the resources */ resource_init(); /* Read DEV EUI from EDBG */ dev_eui_read(); startReceiving = false; /* Initialize the LORAWAN Stack */ LORAWAN_Init(demo_appdata_callback, demo_joindata_callback); printf("\n\n\r*******************************************************\n\r"); printf("\n\rMicrochip LoRaWAN Stack %s\r\n",STACK_VER); printf("\r\nInit - Successful\r\n");  status = PDS_IsRestorable(); if(status) { static uint8_t prevBand = 0xFF; uint8_t prevChoice = 0xFF; PDS_RestoreAll(); LORAWAN_GetAttr(ISMBAND,NULL,&prevBand); for (uint32_t i = 0; i < sizeof(bandTable) -1; i++) { if(bandTable[i] == prevBand) { prevChoice = i; break; } } memset(rxchar,0,sizeof(rxchar)); sio2host_rx(rxchar,10); printf ("Last configured Regional band %s\r\n",bandStrings[prevChoice]); printf("Press any key to change band\r\n Continuing in %s in ", bandStrings[prevChoice]);  SwTimerStart(demoTimerId,MS_TO_US(1000),SW_TIMEOUT_RELATIVE,(void *)demoTimerCb,NULL); } else { appTaskState = DEMO_CERT_APP_STATE; appPostTask(DISPLAY_TASK_HANDLER); }}

Listado 3: Este fragmento de aplicación de muestra de dispositivo de terminal Microchip ilustra el patrón de diseño básico asociado con la inicialización del dispositivo, incluidas las características LoRaWAN, si están disponibles (PDS_IsRestorable()) en el servidor PDS. (Fuente del código: Microchip Technology)

Conclusión

La tecnología de LoRa es apta para abordar las necesidades emergentes de conectividad de largo alcance para sensores IoT que funcionan a batería. Sin embargo, en el pasado, los desarrolladores tenían que desarrollar gran parte del hardware y los subsistemas de software. Con los firmware y hardware integrados, los módulos SiP de Microchip SAM R34/R35 eliminan de manera efectiva muchos de los requisitos de diseño asociados con enfoques previos. Si se utilizan en combinación con los hardware y software con base en Microchip LoRaWAN, los desarrolladores pueden implementar rápidamente los dispositivos IoT que funcionan a batería y los enlaces de bajo consumo para obtener comunicaciones seguras y de largo alcance con servidores host en la nube o en entornos dedicados.

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

Stephen Evanczuk

Stephen Evanczuk tiene más de 20 años de experiencia escribiendo para y sobre la industria de electrónica en un amplio rango de temas, entre ellos hardware, software, sistemas y aplicaciones, que incluyen IoT. Se doctoróen neurociencias (redes neuronales) y trabajó en la industria aeroespacial en sistemas seguros con distribución masiva y métodos de aceleración de algoritmos. Actualmente, cuando no escribe artículos sobre tecnología e ingeniería, trabaja en aplicaciones de aprendizaje profundo sobre sistemas de reconocimiento y recomendaciones.

Información sobre la editorial

Editores de Digi-Key de América del Norte