Cree rápidamente un dispositivo de red de malla compatible con múltiples protocolos

Por Jim Turley

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

Los dispositivos a menudo se conectan en red utilizando cualquiera de las muchas topologías de malla que enfatizan el área de cobertura, la baja potencia y la resistencia de la red. Normalmente los diseñadores tenían que elegir alguno de estos protocolos incompatibles y contrapuestos para comenzar a implementar la pila de software en la plataforma de hardware elegida. Ambas tareas son exigentes y pueden resultar innecesarias.

Gracias a los avances en la integración, actualmente los desarrolladores tienen la opción de elegir un controlador de red de malla de bajo costo y espacio pequeño compatible con múltiples estándares de la competencia, como Thread, Zigbee y BLE (Bluetooth de bajo consumo). Esto proporciona varios niveles de flexibilidad:

  • Les permite a los desarrolladores proceder con el diseño y seleccionar un protocolo más adelante en el ciclo de diseño.
  • Les permite a los desarrolladores probar y elegir el mejor protocolo para la aplicación, empíricamente, utilizando un único dispositivo y plataforma de desarrollo.
  • Se puede utilizar una única plataforma para múltiples aplicaciones y regiones geográficas.
  • Permite la implementación de un dispositivo con un protocolo y el posterior reemplazo por otro con una actualización de firmware.

Este artículo describirá algunos de los aspectos básicos de las redes de malla inalámbricas antes de presentar la familia de SoC (sistemas en chip) inalámbricos de Mighty Gecko y las herramientas de desarrollo de Silicon Labs. Luego mostrará cómo un diseñador puede usar esto como una plataforma para crear rápidamente una red de malla funcional con base en varios protocolos de red de la competencia.

¿Qué es una red de malla inalámbrica?

Las redes de malla inalámbricas difieren de las redes conocidas de topología en estrella como wifi, o los protocolos de punto a punto, por la especificación original de Bluetooth. En una red de malla, los paquetes de datos pueden “saltar” de un dispositivo conectado a otro hasta alcanzar su destino (Figura 1). Del mismo modo, cada dispositivo individual solo tiene que encontrarse en el rango de otro dispositivo de la red para poder comunicarse con todos los otros dispositivos de la misma red. Por ejemplo, un dispositivo del sótano puede comunicarse con un dispositivo del ático, aunque ninguno tenga suficiente energía de RF para alcanzar al otro directamente. Un buen protocolo de malla optimizará la ruta según los requisitos de la aplicación.

Diagrama de una red de estrella comparada con una red de malla

Figura 1: Una red de estrella (arriba) cuenta con un enrutador o un punto de acceso centrales mediante los que todos los nodos se deben comunicar, mientras que en la red de malla (abajo) todos los nodos cooperan para distribuir los datos en una red. (Fuente de la imagen: Silicon Labs)

Debido a que todos los dispositivos de una red de malla cooperan al reenviar los mensajes a su destino, la res puede tolerar nodos faltantes, defectuosos o apagados. Suponiendo que cada nodo se encuentra dentro del rango de más un nodo, esta capacidad de salto y enrutamiento hace a las redes de malla altamente resistentes y tolerantes a fallas. El concepto es similar al del conjunto de protocolos de TCP/IP que sustenta a la misma Internet: los paquetes de datos al final encuentran su destino, incluso cuando no se observa una ruta directa.

La competencia ofrece varios protocolos de redes de malla que, si bien se basan en principios subyacentes similares, son mutuamente incompatibles. Zigbee, Thread y BLE son tres de estos ejemplos. Todos funcionan dentro de la misma banda de 2.4 GHz (gigahertz), pero usan diferentes protocolos de malla, de manera que no funcionan unos con otros.

Cada protocolo de malla inalámbrica tiene sus ventajas y desventajas, y los desarrolladores tienen la decisión de qué estándar funciona mejor para ellos. En algunos casos, los desarrolladores pueden preferir crear su propia red de malla inalámbrica patentada en vez de adoptar alguno de los estándares. Esto puede deberse a razones de seguridad o diferenciación de los productos o para implementar algún conjunto de características únicas.

Introducción a Mighty Gecko

Para maximizar la flexibilidad y disminuir el tiempo de diseño y desarrollo, es una buena idea elegir un controlador de red inalámbrica que sea compatible con múltiples estándares. Esto les proporciona flexibilidad a los desarrolladores de cuatro maneras. En primer lugar, cuando es posible que existan mejores comentarios del cliente o información del mercado, pospone la decisión sobre la elección del estándar de red durante mucho tiempo dentro del ciclo de diseño. En segundo lugar, le permite a los desarrolladores probar estándares de red diferentes en el laboratorio y elegir el mejor con base en la evidencia empírica. En tercer lugar, permite la implementación de una plataforma única en múltiples productos con estándares de red diferentes. Esto puede ser particularmente útil al trabajar con diferentes mercados geográficos de todo el mundo. En cuarto lugar, permite alterar, mejorar o actualizar el dispositivo o la plataforma en el campo, incluso cambiando la red que respalda.

Para proporcionarles esta flexibilidad a los diseñadores, Silicon Labs desarrolló la familia de dispositivos de SoC inalámbricos de redes de malla (Figura 2). La familia (llamada internamente EFR32MG) incluye varios miembros relacionados, todos ellos basados en el mismo núcleo de procesadores de 32 bits Arm® Cortex®-M4 de 40 MHz.

Diagrama de la familia de SoC Mighty Gecko de Silicon Labs (haga clic para agrandar)

Figura 2: Basada en un Arm Cortex-M4, la familia de SoC Mighty Gecko tiene casi todo lo que se necesita para un controlador de red de malla inalámbrica. (Fuente de la imagen: Silicon Labs)

Las opciones incluyen el tamaño de la memoria flash en el chip (256, 512 o 1024 Kbytes [kilobytes]), el tamaño de la SRAM interna (32, 64, 128 o 256 Kbytes), el tipo de paquete y el rango de temperatura. Todos los SoC Mighty Gecko se especifican para el rango de temperatura industrial (-40 °C a +85°C), y algunos se califican para temperaturas extendidas o automáticas (-40 °C a +125 °C).

Como SoC, el Mighty Gecko cuenta con casi todo lo que se necesita para un controlador de red inalámbrica. La sección del radio de la parte superior izquierda del diagrama de bloque muestra dos secciones de RF separadas: una para la banda de 2.4 GHz con hasta 19 dBm de potencia de transmisión utilizada para Thread, Zigbee y BLE y un radio de subGHz separado de hasta 20 dBm de potencia para implementar las redes patentadas.

El chip también cuenta con una amplia gestión de potencia en el chip, un rango de voltaje de funcionamiento de 1.8 a 3.8 voltios, un convertidor de CC/CC integrado y la capacidad de “activación de radio”, que permite que todo el chip repose en un modo de espera de baja potencia hasta que reciba un paquete de radio. Además, la detección de señal incorporada, la detección del patrón de preámbulo, la detección de cuadros y el tiempo de espera permiten que el chip se active solo en las transmisiones del radio que sean relevantes para este, no necesariamente para todo el tráfico radial.

En lugar de diseñar una placa basada en Mighty Gecko de cero, es mucho más fácil empezar con un kit de evaluación y desarrollo listos para usarse. El kit de inicio de malla SLWSTK6000B tiene todos el hardware y software requerido para configurar y probar una red de malla pequeña.

El kit incluye tres conjuntos de placas idénticos, cada uno compuesto por una placa principal y una selección de placas de radio de conexión (Figura 3). Un conjunto individual puede ser útil para la evaluación y el desarrollo tempranos del software, pero al menos dos serían necesarios dos para probar esta red y tres para probar las capacidades de la malla. Por ello, tiene sentido que el kit SLWSTK6000B esté disponible con tres conjuntos de todo.

Imagen del kit de inicio SLWSTK6000B de Silicon Labs.

Figura 3: Un kit de inicio SLWSTK6000B incluye tres conjuntos idénticos de placas principales y placas de radio de conexión para crear una pequeña red de malla. (Fuente de la imagen: Silicon Labs)

Lo que podría parecer un CI pequeño en el medio de la placa principal es en realidad una pantalla LCD (Figura 4). La pantalla monocromática de 128x128 píxeles requiere muy poca potencia y almacena internamente los datos de los píxeles, por lo que no es necesario actualizarla. El chip de microcontrolador Mighty Gecko se encuentra en la placa de radio de conexión más pequeña.

Imagen del par de placa principal y placa de radio del kit de inicio de malla SLWSTK6000B de Silicon Labs.

Figura 4: Un par de placa principal y placa de radio del kit de inicio de malla SLWSTK6000B. El dispositivo más grande en el centro es una pantalla LCD en mapa de bits. (Fuente de la imagen: Silicon Labs)

Las placas de radio de conexión son removibles y se pueden remplazar en cada placa principal. El kit está disponible con dos tipos diferentes para cada placa principal (un total de seis placas de radio). Las placas del kit son todas compatibles con Zigbee y Thread en la banda de 2.4 GHz, pero también existen otras placas con otras frecuencias y características de RF, incluidas las que son compatibles con las frecuencias subGHz para las redes patentadas.

Ensamblar el hardware y encenderlo antes de instalar y ejecutar el software del IDE (entorno completo de desarrollo integrado) es una buena idea, pero no es obligatorio. Simplemente elija una placa de radio y presiónela con cuidado sobre las cabeceras correspondientes de la placa principal. Se puede suministrar la energía de múltiples formas (por batería, adaptador de CA o USB), pero un cable USB es la forma más simple y proporciona ventajas adicionales. A menudo la conexión USB se ubica a la izquierda de la placa principal, al frente de la placa de radio.

Cuando la placa esté encendida, una luz led azul cerca del conector USB se encenderá y la LCD cuadrara del centro se iluminará. Después de una pausa corta, un “latido” led verde también se iluminará.

Para los siguientes pasos, es mejor mantener el hardware conectado al sistema de desarrollo mediante el cable USB. También es una buena idea mover el interruptor de encendido pequeño de tres posiciones (cerca de la esquina inferior izquierda de la placa principal) a la posición ”AEM” del extremo derecho.

Instalación del software

Simplicity Studio es el IDE todo en uno de Silicon Labs para Mighty Gecko, así como para muchos de los otros microcontroladores de la empresa. Para descargar el software gratuito, visite la página de descarga de Simplicity Studio de la empresa. Instale y ejecute Simplicity Studio antes de proceder.

Inicie Simplicity Studio y siga las indicaciones para realizar algunos pasos de configuración adicionales específicos para el hardware del kit de desarrollo y el software deseado. Este proceso es sencillo, pero requiere algunas decisiones y posiblemente un paso extra para el registro del hardware.

Si la placa principal aún está conectada a la PC de desarrollo como se recomendó anteriormente, Simplicity Studio detectará la interfaz USB del hardware durante la instalación y descargará y configurará automáticamente algunas características específicas del hardware.

El siguiente paso es descargar el software específico del hardware para este kit de desarrollo. Simplicity Studio ofrece dos opciones: "Instalar por dispositivo” o “Instalar por grupo de productos” (figura 5). Cualquiera de los dos producirá en última instancia el mismo resultado, pero es más fácil seleccionar la primera opción, así que haga clic en el botón grande y verde de “Instalar por dispositivo”.

Imagen del software de Simplicity Studio

Figura 5: Simplicity Studio ofrece dos opciones para cargar el soporte de software específico del proyecto: Instalar por dispositivo o Instalar por grupo de productos. (Fuente de la imagen: Digi-Key Electronics)

Simplicity Studio debería detectar la placa de desarrollo automáticamente, pero, si no lo hace, es fácil ubicar el paquete de software manualmente. Simplemente introduzca “SLWSTK6000B” en el cuadro de búsqueda, como se muestra en la Figura 6. Haga doble clic en el paquete de soporte de software sugerido y luego haga clic en Siguiente.

Imagen del cuadro de búsqueda de Simplicity Studio

Figura 6: Introducir SLWSTK6000B en el cuadro de búsqueda ubicará el software requerido rápidamente. (Fuente de la imagen: Digi-Key Electronics)

Luego Simplicity Studio resaltará el soporte de software adicional disponible para esta configuración de hardware. Los usuarios que se registraron con Silicon Labs o registraron el hardware no pueden acceder a parte del software. Por lo tanto, puede que algunas opciones aparezcan en gris y no estén disponibles temporalmente, como se muestra en la Figura 7.

Imagen de acceso al software de Simplicity Studio

Figura 7: Para acceder a determinada parte del software, se necesitará el comprobante de compra. (Fuente de la imagen: Digi-Key Electronics)

Las pilas de software para Thread, Zigbee y algunos otros protocolos dependen del comprobante de compra del hardware de malla habilitado, como el kit de desarrollo SLWSTK6000B, así que es importante completar los siguientes pasos de registro antes de proseguir.

Empiece por ubicar el código hexadecimal de 10 dígitos en la parte exterior de la caja del kit de inicio de Mighty Gecko. (Para obtener ayuda a fin de encontrar la clave de 10 dígitos, consulte la sección “Acceso a las pilas de malla inalámbrica de Silicon Labs” en la base de datos de Silicon Labs, Zigbee y Thread. Luego haga clic en el enlace de “Registrar kit” en la opción de Thread o en la de EmberZNet (Zigbee), como se mostró anteriormente. Esto completará el registro de hardware y desbloqueará las pilas de protocolo de la red de malla. Haga clic en Siguiente para proceder.

Finalmente, Simplicity Studio presentará una declaración extensa de todas las opciones de software que recomienda instalar, incluidos uno o más compiladores C, sistemas operativos en tiempo real opcionales, herramientas de perfilado y muchas otras opciones (figura 8). Ciertas opciones se pueden habilitar y deshabilitar manualmente, si así se desea, pero generalmente es mejor aceptar la carga sugerida del software. Cuando esté listo, haga clic en Siguiente.

Imagen de la declaración final de software de Simplicity Studio

Figura 8: La declaración final de software de Simplicity Studio muestra todas las opciones de software que recomienda instalar, incluidos uno o más compiladores C, sistemas operativos en tiempo real opcionales y herramientas de perfilado. (Fuente de la imagen: Digi-Key Electronics)

Como paso final, Simplicity Studio mostrará el acuerdo de licencia de software maestro que cubre todos los componentes que va a instalar. Lea y acepte la licencia y luego haga clic en Siguiente una última vez.

La instalación del software se tardará varios minutos. Cuando se haya completado, cierre y reinicie Simplicity Studio. Todo está listo para empezar a crear aplicaciones de red de malla utilizando Thread, Zigbee, Bluetooth o un protocolo personalizado patentado. Simplicity Studio incluye unos programas de demostración preconfigurados simples, así como códigos de ejemplo que se pueden modificar, todo para que los desarrolladores empiecen con el pie derecho.

Conclusión

Crear dispositivos que se conecten inalámbricamente y que usen una red de malla se volvió una tarea fácil gracias a un kit preconfigurado de hardware compatible y software probado preliminarmente. La flexibilidad del hardware permite una evaluación empírica rápida de diferentes protocolos de red, como Zigbee, Thread y BLE, a la vez que permite cambios futuros de un protocolo a otro. Este cambio puede realizarse durante la fase de diseño y desarrollo o después de que se haya implementado el producto final.

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.

Acerca de este autor

Jim Turley

Jim Turley se desempeñó como ingeniero de hardware antes de convertirse en analista tecnológico y escritor especializado en microprocesadores, tecnología de semiconductores y sistemas integrados. Desde 2001 hasta 2018, dirigió la empresa de análisis Silicon Insider. Antes de eso, fue el presidente y CEO de una pequeña empresa dedicada a la propiedad intelectual de microprocesadores, que cotizaba en bolsa. Además, fue el vicepresidente sénior de Marketing de otra empresa con licencia de microprocesadores. Es el autor de siete libros, trabajó como Jefe de ediciones sobre informes de microprocesadores y diseño de sistemas integrados. Además, se desempeñó como presidente de la Conferencia de Sistemas Integrados (ESC).

Acerca de este editor

Editores de Digi-Key de América del Norte