Cómo una nueva generación de MCU y módulos inalámbricos posibilita aplicaciones de IoT conectadas
Colaboración de Editores europeos de DigiKey
2016-08-16
Cualquier modelo de negocios basado en la Internet de las cosas (loT) depende de comunicaciones inalámbricas confiables y seguras del ejército de nodos externos a través de aplicaciones de análisis y control en la nube. A la hora de diseñar sensores y actuadores basados en microcontroladores, el desarrollador está bien equipado con un host de cadenas de herramientas y plataformas de desarrollo de MCU. El aprovisionamiento de la comunicación inalámbrica en el pasado no ha sido fácil de lograr. Ante aprobaciones inalámbricas regulatorias regionales, la necesidad de usar o crear sus propias pilas de protocolo inalámbricas validadas y las complejidades de “everything RF”, el ingeniero de diseño a menudo adopta un módulo inalámbrico preaprobado en lugar de afrontar los desafíos de crear un diseño discreto.
Una nueva generación de MCU y de módulos inalámbricos, para los que no se requiere host adicional de MCU, abarca la conectividad inalámbrica y responde a las necesidades informáticas relativamente bajas de nodos externos y sensores de IoT. Estos dispositivos y módulos sin host o independientes están acelerando y simplificando todo el proceso de diseño. Sin embargo, no es solo la disponibilidad de un módulo adecuado lo que satisfará las necesidades del desarrollador. En el ambiente actual de desarrollo del producto, el ingeniero en planta no tiene tiempo para aprender desde cero todas las capacidades del módulo. La disponibilidad de controladores de software, los fragmentos de código y las plataformas de evaluación se están volviendo tan importantes como las capacidades del dispositivo. Cuanto más rápido un desarrollador logre que el dispositivo se comunique con la nube, mayor será la probabilidad de que el dispositivo ingrese al mercado y sea en un éxito comercial.
Un ejemplo de un MCU inalámbrico que cumple con todas las expectativas es la serie de dispositivos SimpleLink™ CC3200 de Texas Instruments. Como complemento de los dispositivos SimpleLink, hay un ecosistema completo de placas de evaluación, ejemplos de códigos y un SDK completo. Disponible en una variedad de tamaños de envase, el CC3200 integra un microcontrolador de aplicaciones ARM® Cortex®-M4, que funciona a 80 MHz con un subsistema de procesamiento de red Wi-Fi de 802.11 b/g/n. Este segundo subsistema tiene su propio núcleo MCU ARM, que sirve para descargar todas las pilas de comunicación Wi-Fi desde el MCU de la aplicación.

Figura 1: Diagrama de bloques de las generalidades del hardware del CC3200.
Optimizado para diseños de IoT con batería, el CC3200 tiene un host de otras características como funciones de administración de la batería y un conjunto integral de interfaces periféricas que incluye GPIO, UART, SPI, PWM y un ADC de 12 bits y 4 canales. En la Figura 1 se ilustra el conjunto de características principales. Con RAM de 256 kB, el CC3200 también tiene un motor de cifrado de hardware de 256 bits para el cifrado rápido AES, DES y 3DES junto con las capacidades de autenticación SHA2 y MD5. Con su propio subsistema de administración de energía con convertidores CC a CC, no solo es capaz de adecuar una amplia variedad de tensiones de alimentación, sino también de controlar los modos de bajo consumo de energía al configurar el dispositivo en modo hibernación con el RTC todavía encendido. En este modo consume menos de 4 μA.

Figura 2: Generalidades del software integrado del CC3200.
Se muestra en la Figura 2 otra perspectiva del CC3200, que es la de las capacidades del software integrado de los dispositivos. El subsistema Wi-Fi soporta los modos Estación, Punto de Acceso y Wi-Fi Direct junto con la seguridad WPA2 para uso personal y corporativo y WPS 2.0. Pilas de servidor TCP/IP, TLS/SSL y HTTP integradas en un chip.
Se pueden ver en la Figura 3 todo el alcance de las capacidades del CC3200 con énfasis en las interfaces periféricas y GPIO, la administración de la energía y la cantidad relativamente pequeña de componentes pasivos adicionales y necesarios.
Figura 3: Diagrama funcional en bloques del CC3200.
Es posible que la atención que se ha dedicado al diseño del CC3200 se comprenda cuando investigue las capacidades de multiplexación de clavijas del dispositivo. Como una manera popular de incorporar una gran cantidad de funciones de la interfaz periférica en un tamaño de envase lo más pequeño posible, la multiplexación de clavijas hace posible la correlación del conjunto periférico con las clavijas específicas. La multiplexación de clavijas se logra mediante una combinación de la configuración del hardware y el control de los registros. Los detalles completos de este proceso y las opciones de asignación disponibles se documentan en la ficha del CC3200 de TI. Para contribuir con el proceso de diseño, TI ha creado un cuadro con las configuraciones recomendadas de multiplexación de clavijas para varias instancias diferentes de uso (Figura 4). Este enfoque ayuda a modelar el diseño en una fase temprana a través de una amplia gama de aplicaciones, mediante el uso pleno del conjunto periférico y la configuración disponible de clavijas.
| Uso recomendado de la configuración de clavijas del CC3200 - Ejemplos(1) | |||||||||||
| Juguetes de alta gama de seguridad para el hogar | Audio Wi-Fi ++ Industrial | Etiqueta del sensor | Juguetes de seguridad para el hogar | Audio Wi-Fi ++ Industrial | Wi-Fi remoto con audio y teclado 7x7 | Juguetes de alarma contra incendio y sensores de cierre de puerta sin cámara | Aparatos eléctrodomésticos industriales | Smart-Plug para electrodomésticos industriales | Electrodomésticos industriales | GPIO | |
| Externo de 32 kHz(2) | Externo de 32 kHz(2) | TCXO externo de 40 MHz (-40 a 85° C) | |||||||||
| Cam + I2S (Tx o Rx) + I2C + SPI + SWD + UART-Tx + (registrador de aplicaciones) 2 GPIO + 1 PWM + *4 desactivación superpuesta de hibernación | I2S (Tx oRx) + 1 Ch ADC + UART con cable 1x4 + UART con cable 1x2+ tarjeta SD de 1 bit + SPI + I2C + SWD + 3 GPIO + 1 PWM + 1 GPIO con desactivación de hibernación | I2S (Tx o Rx) + 2 Ch ADC + UART con 2 cables+ SPI + I2C + SWD + 2 PMW + 6 GPIO + 3 GPIO con desactivación de hibernación | Cam + I2S (Tx o RX) + I2C + SWD + UART-Tx + (registrador de aplicaciones) 4 GPIO + 1PWM + *4 desactivación superpuesta de hibernación | I2S (Tx y Rx) + 1 Ch ADC + UART con cable 2x2 + tarjeta SD de 1 bit+ SPI + I2C + SWD + 4 GPIO + 1 PWM + 1 GPIO con desactivación de hibernación | I2S (Tx y Rx) + 1 Ch ADC + UART (solo Tx) I2C + SWD + 15 GPIO + 1 PWM + 1 GPIO con desactivación de hibernación | I2S (Tx y Rx) + 2 Ch ADC + UART con 2 cables+ SPI + I2C + 3 PMW + 3 GPIO con desactivación de hibernación + 5 GPIO SWD + | 4 Ch ADC + UART con cable 1x4 + UART con cable 1x2 + SPI + I2C + SWD + 1 PWM + 6 GPIO + 1 GPIO con desactivación de hibernación que habilita TCXO ext. de 40 MHz | 3 Ch ADC + UART con 2 cables + SPI + I2C + SWD + 3 PWM + 9 GPIO + 2 GPIO con desactivación de hibernación | 2 Ch ADC + UART con 2 cables+ I2C + SWD + 3 PWM + 11 GPIO + 5 GPIO con desactivación de hibernación | ||
| Número de clavija | Configuración de clavijas n.º 11 | Configuración de clavijas n.º 10 | Configuración de clavijas n.º 9 | Configuración de clavijas n.º 8 | Configuración de clavijas n.º 7 | Configuración de clavijas n.º 6 | Configuración de clavijas n.º 5 | Configuración de clavijas n.º 4 | Configuración de clavijas n.º 3 | Configuración de clavijas n.º 2 | Configuración de clavijas n.º 1 |
Figura 4: Configuraciones recomendadas de multiplexación de clavijas del CC3200.
Si quiere incorporar el dispositivo CC3200 a su aplicación, hay varias opciones de desarrollo disponibles para usted. Además de diseñar su propio PCB para la aplicación, podría optar por usar el módulo del CC3200 que incluye un CC3200 examinado, componentes pasivos de apoyo, cristales y antenas de chip en un módulo compacto que mide apenas 20.5 x 17.5 x 1.5 mm.
Para asistir en la creación de prototipos del módulo del CC3200 está disponible la placa de evaluación LaunchPad XL del CC3200 (Figura 5). Capaz de conectarse directamente a una computadora mediante USB, junto con emulación JTAG para programación Flash, la placa contiene una selección de LED de usuario, pulsadores, un acelerómetro y un sensor de temperatura.

Figura 5: Placa de evaluación LaunchPad XL del CC3200.
TI tiene varios recursos dedicados a la familia SimpleLink, que incluyen páginas de productos, Wiki de desarrollo de softwarey páginas dedicadas a socios de ecosistema en la nube. El SDK SimpleLink se descarga de Wiki y proporciona una gran variedad de aplicaciones de ejemplo, el código fuente de la aplicación e información técnica. TI recomienda varios IDE respetados en la industria para usar con el SDK; los cuales son su propio Code Composer Studio e IAR Workbench. También, se proporcionan ficheros de cabecera, junto con scripts compilados por el GCC y otras funciones de biblioteca. Los ejemplos de códigos están bien documentados con una descripción por escrito de la aplicación, los parámetros configurables clave y la manera en que funciona. Para cada uno, se incluye en C el conjunto completo de archivos de cabecera y de código fuente. En un ejemplo, se muestra al CC3200 mientras se comunica con el sitio ‘openweathermap.org’ para solicitar detalles del clima para una ciudad específica y, a continuación, lo muestra en un HyperTerminal conectado. Consulte el resultado de esto en la Figura 6.

Figura 6: Resultados de la aplicación para obtener datos meteorológicos del CC3200.
Otras muestras de códigos abarcan la ejecución de la aplicación cliente/servidor de MQTT, una demostración de correo electrónico y un diseño basado en sensores que aprovecha plenamente el modo hibernación.
Aunque los ejemplos de aplicación en el SDK del CC3200 se enfocan en el uso de C/C++, hay muchas otras opciones disponibles. Una de tales alternativas es MicroPython. Basado en el lenguaje de programación interpretativo Python 3, MicroPython es el resultado de una campaña financiada con éxito en Kickstarter, que está optimizada para uso en microcontroladores. Una versión lista de la red de MicroPython soporta del todo al dispositivo CC3200 y se puede descargar de ese sitio.
El enfoque de SimpleLink CC3200 para proporcionar comunicación Wi-Fi y un procesador de aplicaciones ha recibido un gran apoyo en todo el mercado de IoT. En un ejemplo de IBM, se destaca la conexión de CC3200 LaunchPad a la Plataforma de Fundación IoT Watson de IBM mediante el uso de MQTT. Otros socios de ecosistema de la plataforma en la nube incluyen Temboo y Xively.
Otra familia de módulos Wi-Fi independientes y precertificados es la serie WF121 de Bluegiga de Silicon Labs (Figura 7). Al igual que CC3200, tiene dos componentes principales, un microcontrolador para aplicaciones que usa un microcontrolador de Microchip PIC32 de 32 bits que funciona a 80 MHz y un radio compatible con 2.4 GHz 802.11 b/g/n. Para más detalles sobre esta serie junto con guías de referencia y ejemplos de aplicación, consulte aquí.

Figura 7: WF121 de Bluegiga de Silicon Labs.
La comunicación entre el host y el transceptor inalámbrico es mediante UART, USB o SPI, como se indica en la Figura 8. También se ilustra la arquitectura del software. Si bien es posible usar la biblioteca de host BGLib ANSI C en aplicaciones del programa para el microcontrolador, también es posible usar BGScript, el lenguaje de script de Bluegiga. Basado en una estructura de programación estilo BASIC, el lenguaje ofrece una manera sencilla y fácil de aprender para crear aplicaciones bastante complejas y poderosas. El lenguaje proporciona comandos y funciones para establecer y administrar enlaces, seguridad y transferencia de datos inalámbricos y para interactuar con los periféricos, GPIO, SPI, I2C disponibles, etc.

Figura 8: Entorno de software de Bluegiga.
BGScript también puede usarse en toda la familia de módulos independientes de Bluegiga, incluidos aquellos que proporcionan conectividad Bluetooth. En la Figura 9 se ilustra un corto ejemplo de código BGScript de la lectura del ADC del módulo.

Figura 9: Ejemplo de BGScript para leer el ADC.
La DKWF121 de Bluegiga es una placa de evaluación para crear prototipos de diseños Wi-Fi independientes con el módulo WF121 . La placa contiene las configuraciones de clavijas disponibles del módulo, lo que facilita la conexión a diseños de ensayo. Todas las clavijas GPIO se presentan en botones alrededor de la zona amplia de prototipos. En el sitio de DigiKey, puede encontrar una página útil de catálogo en línea con toda la información introductoria acerca de DKWF121.
Como ya se ha mencionado, la familia Bluegiga también incluye módulos Bluetooth independientes como el BLE113. Dirigido a accesorios y aplicaciones pequeños que funcionan con batería, el desarrollo de aplicaciones que usa BGScript proporciona una forma muy práctica y fácil de usar para establecer un enlace y transferir datos. La línea de productos de Bluegiga está bien respaldada por el desarrollador de IoT y la comunidad Pro-Maker en general, lo que hace posible que las bibliotecas respalden otros lenguajes de desarrollo como bglib para Node.js y bgapi_py para Python. En la Figura 10, se muestra la simplicidad de usar la biblioteca con Node.js para analizar los datos recibidos vía Bluetooth en variables separadas.

Figura 10: Análisis de datos recibidos vía Bluetooth mediante la biblioteca BGLib con Node.js en el módulo BLE113 de Bluegiga.
Gracias al uso de un módulo inalámbrico precertificado, se acelera en gran medida el diseño de una aplicación de IoT. No obstante, si se usa un módulo inalámbrico independiente, se simplifica aún más todo el proceso de diseño al mismo tiempo que se reduce la BOM general. A la hora de investigar este enfoque, se les recomienda a los ingenieros en planta no solo que revisen las capacidades del hardware, sino también la cantidad de herramientas de software, la flexibilidad del lenguaje de programación y los ejemplos de aplicación disponibles. Con este enfoque, los dispositivos de IoT independientes pueden ingresar con rapidez en el mercado, mientras que ahorran presupuesto y recursos valiosos de diseño.
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 DigiKey o de las políticas oficiales de DigiKey.


