Tarjeta de expansión ST X-NUCLEO-53L1A2 - Configuraciones de interrupción

UM2606
Manual de usuario

Comenzando con el libro mayor distribuido de IOTA
Expansión de software de tecnología para STM32Cube

Introducción

El X-CUBO-IOTA1 paquete de software de expansión para Cubo STM32 se ejecuta en STM32 e incluye middleware para habilitar las funciones de la tecnología de contabilidad distribuida (DLT) de IOTA.
IOTA DLT es una capa de transferencia de datos y liquidación de transacciones para Internet de las cosas (IoT). IOTA permite que las personas y las máquinas transfieran dinero y / o datos sin tarifas de transacción en un entorno sin confianza, sin permisos y descentralizado. Esta tecnología incluso hace posible los micropagos sin la necesidad de un intermediario de confianza de ningún tipo. La expansión se basa en la tecnología de software STM32Cube para facilitar la portabilidad entre diferentes microcontroladores STM32. La versión actual del software se ejecuta en B-L4S5I-IOT01A Kit de descubrimiento para el nodo IoT y se conecta a Internet a través de la interfaz Wi-Fi adjunta.

ENLACES RELACIONADOS

Visite el ecosistema STM32Cube web página en www.st.com para obtener más información
https://www.iota.org/get-started/what-is-iota
https://docs.iota.org/docs/getting-started/1.1/introduction/overview
https://iota-beginners-guide.com
https://chrysalis.docs.iota.org
https://iota-beginners-guide.com/future-of-iota/iota-1-5-chrysalis
https://www.boazbarak.org/cs127/Projects/iota.pdf

Siglas y abreviaturas

Tabla 1. Lista de siglas

Acrónimo Descripción
Tecnología de distribución distribuida Tecnología de contabilidad distribuida
IDE Entorno de desarrollo integrado
Internet de las cosas Internet de las cosas
PoW Prueba de trabajo

Expansión del software X-CUBE-IOTA1 para STM32Cube

Encimaview

El X-CUBO-IOTA1 el paquete de software se expande Cubo STM32 funcionalidad con las siguientes características clave:

  • Firmware completo para crear aplicaciones IOTA DLT para placas basadas en STM32
  • Bibliotecas de middleware con:
    - FreeRTOS
    - Gestión de Wi-Fi
    - cifrado, hash, autenticación de mensajes y firma digital (Cryptolib)
    - seguridad a nivel de transporte (MbedTLS)
    - API de cliente IOTA para interactuar con Tangle
  • Controlador completo para crear aplicaciones que accedan a sensores ambientales y de movimiento
  • Examparchivos para ayudar a comprender cómo desarrollar una aplicación IOTA DLT Client
  • Fácil portabilidad en diferentes familias de MCU, gracias a STM32Cube
  • Términos de licencia gratuitos y fáciles de usar

La expansión del software proporciona el middleware para habilitar IOTA DLT en un microcontrolador STM32. IOTA DLT es una capa de transferencia de datos y liquidación de transacciones para Internet de las cosas (IoT). IOTA permite que las personas y las máquinas transfieran dinero y / o datos sin tarifas de transacción en un entorno sin confianza, sin permisos y descentralizado. Esta tecnología incluso hace posible los micropagos sin la necesidad de un intermediario de confianza de ningún tipo.

IOTA 1.0

Las tecnologías de libro mayor distribuido (DLT) se basan en una red de nodos que mantiene un libro mayor distribuido, que es una base de datos distribuida protegida criptográficamente para registrar transacciones. Los nodos emiten transacciones a través de un protocolo de consenso.
IOTA es una tecnología de contabilidad distribuida diseñada específicamente para IoT.
El libro mayor distribuido de IOTA se llama el enredo y se crea mediante las transacciones emitidas por los nodos en la red de IOTA.
Para publicar una transacción en el enredo, un nodo debe:

  1. validar dos transacciones no aprobadas llamadas propinas
  2. crear y firmar la nueva transacción
  3. realizar suficiente prueba de trabajo
  4. difundir la nueva transacción a la red IOTA

La transacción se adjunta al enredo junto con dos referencias que apuntan a las transacciones validadas.
Esta estructura se puede modelar como un gráfico acíclico dirigido, donde los vértices representan transacciones individuales y los bordes representan referencias entre pares de transacciones.
Una transacción de génesis está en la raíz del enredo e incluye todos los tokens IOTA disponibles, llamados iotas.
IOTA 1.0 utiliza un enfoque de implementación poco convencional basado en la representación trinaria: cada elemento en IOTA se describe usando trits = -1, 0, 1 en lugar de bits y trytes de 3 trits en lugar de bytes. Un tryte se representa como un número entero de -13 a 13, codificado con letras (AZ) y el número 9.
IOTA 1.5 (Chrysalis) reemplaza el diseño de transacciones trinarias con una estructura binaria.
La red IOTA incluye nodos y clientes. Un nodo está conectado a pares en la red y almacena una copia del enredo. Un cliente es un dispositivo con una semilla que se utilizará para crear direcciones y firmas.
El cliente crea y firma transacciones y las envía al nodo para que la red pueda validarlas y almacenarlas. Las transacciones de retiro deben contener una firma válida. Cuando una transacción se considera válida, el nodo la agrega a su libro mayor, actualiza los saldos de las direcciones afectadas y transmite la transacción a sus vecinos.

IOTA 1.5 - Crisálida

El objetivo de la Fundación IOTA es optimizar la red principal de IOTA antes de Coordicide y ofrecer una solución lista para empresas para el ecosistema de IOTA. Esto se logra mediante una actualización intermedia llamada Chrysalis. Las principales actualizaciones introducidas por Chrysalis son:

  • Direcciones reutilizables: la adopción del esquema de firma Ed25519, que reemplaza al esquema de firma única de Winternitz (W-OTS), permite a los usuarios enviar tokens de forma segura desde la misma dirección varias veces;
  • No más paquetes: IOTA 1.0 usa el concepto de paquetes para crear transferencias. Los paquetes son un conjunto de transacciones vinculadas entre sí por su referencia raíz (troncal). Con la actualización IOTA 1.5, la construcción del paquete anterior se elimina y se reemplaza por las transacciones Atomic más simples. El vértice Tangle está representado por el mensaje, que es una especie de contenedor que puede tener cargas útiles arbitrarias (es decir, carga útil Token o carga útil de indexación);
  • Modelo UTXO: originalmente, IOTA 1.0 usó un modelo basado en cuentas para rastrear tokens IOTA individuales: cada dirección IOTA contenía una cantidad de tokens y el número agregado de tokens de todas las direcciones IOTA era igual al suministro total. En cambio, IOTA 1.5 usa el modelo de salida de transacciones no gastadas, o UTXO, basado en la idea de rastrear cantidades no gastadas de tokens a través de una estructura de datos llamada salida;
  • Hasta 8 padres: con IOTA 1.0, siempre tenía que hacer referencia a 2 transacciones de padres. Con Chrysalis, se introduce un mayor número de nodos padres referenciados (hasta 8). Para obtener los mejores resultados, se recomiendan al menos 2 padres únicos a la vez.

ENLACES RELACIONADOS
Para obtener más información sobre Chrysalis, consulte esta página de documentación.

Prueba de trabajo

El protocolo IOTA utiliza Prueba de trabajo como un medio para limitar la velocidad de la red.
IOTA 1.0 utilizó el Curl-P-81 función hash trinaria y requería un hash con el número correspondiente de trits ceros finales para emitir una transacción al Tangle.
Con Chrysalis, es posible emitir mensajes binarios de tamaño arbitrario. Esta RFC describe cómo adaptar el mecanismo PoW existente a los nuevos requisitos. Su objetivo es ser lo menos disruptivo posible para el mecanismo actual de PoW.

Arquitectura

Esta expansión STM32Cube permite el desarrollo de aplicaciones que acceden y utilizan el middleware IOTA DLT.
Se basa en la capa de abstracción de hardware STM32CubeHAL para el microcontrolador STM32 y extiende STM32Cube con un paquete de soporte de placa específico (BSP) para la placa de expansión de micrófono y componentes de middleware para procesamiento de audio y comunicación USB con una PC.
Las capas de software que utiliza el software de la aplicación para acceder y utilizar la placa de expansión del micrófono son:

  • Capa STM32Cube HAL: proporciona un conjunto genérico de varias instancias de API para interactuar con las capas superiores (la aplicación, las bibliotecas y las pilas). Consiste en API genéricas y de extensión basadas en una arquitectura común que permite que otras capas, como la capa de middleware, funcionen sin configuraciones específicas de hardware de unidad de microcontrolador (MCU). Esta estructura mejora la reutilización del código de la biblioteca y garantiza una fácil portabilidad del dispositivo.
  • Capa Board Support Package (BSP): es un conjunto de API que proporciona una interfaz de programación para ciertos periféricos específicos de la placa (LED, botón de usuario, etc.). Esta interfaz también ayuda a identificar la versión específica de la placa y brinda soporte para inicializar los periféricos MCU requeridos y la lectura de datos.

Figura 1. Arquitectura del software X-CUBE-IOTA1

Paquete de software de expansión X-CUBE-IOTA1 - Expansión X-CUBE-IOTA1

Estructura de la carpeta

Figura 2. Estructura de carpetas X-CUBE-IOTA1Paquete de software de expansión X-CUBE-IOTA1: estructura de carpetas

Las siguientes carpetas están incluidas en el paquete de software:

  • Documentación: contiene un HTML compilado file generado a partir del código fuente y documentación detallada de los componentes de software y las API
  • Conductores: contiene los controladores HAL y los controladores específicos de la placa para la placa y las plataformas de hardware compatibles, incluidos los de los componentes integrados y la capa de abstracción de hardware independiente del proveedor CMSIS para la serie de procesadores ARM® Cortex®-M
  • Medios: contiene bibliotecas con FreeRTOS; Gestión de Wi-Fi; cifrado, hash, autenticación de mensajes y firma digital (Cryptolib); seguridad a nivel de transporte (MbedTLS); API de cliente IOTA para interactuar con Tangle
  • Proyectos: contiene examparchivos para ayudarlo a desarrollar una aplicación IOTA DLT Client para la plataforma basada en STM32 compatible (B-L4S5I-IOT01A), con tres entornos de desarrollo, IAR Embedded Workbench for ARM (EWARM), RealView Kit de desarrollo de microcontroladores (MDK-ARM) y STM32CubeIDE
API

La información técnica detallada con la función API de usuario completa y la descripción de los parámetros se encuentran en un HTML compilado file en la carpeta "Documentación".

Descripción de la aplicación IOTA-Client

El proyecto fileLos s para la aplicación IOTA-Client se pueden encontrar en: $ BASE_DIR \ Projects \ B-L4S5IIOT01A \ Applications \ IOTA-Client.
Los proyectos listos para construir están disponibles para múltiples IDE.
La interfaz de usuario se proporciona a través del puerto serie y debe configurarse con los siguientes ajustes:

Figura 3. Tera Term: configuración del terminalPaquete de software de expansión X-CUBE-IOTA1: configuración del puerto serie

Figura 4. Tera Term: configuración del puerto seriePaquete de software de expansión X-CUBE-IOTA1: configuración del terminal

Para ejecutar la aplicación, siga el procedimiento a continuación.
Paso 1. Abra un terminal serial para visualizar el registro de mensajes.
Paso 2. Ingrese la configuración de su red Wi-Fi (SSID, modo de seguridad y contraseña).
Paso 3. Configure los certificados de CA raíz de TLS.
Paso 4. Copie y pegue el contenido de Projects \ B-L4S5I-IOT01A \ Applications \ IOTAClient \ usertrust_thetangle.pem. El dispositivo los usa para autenticar los hosts remotos a través de TLS.

Nota: Después de configurar los parámetros, puede cambiarlos reiniciando la placa y presionando el botón Usuario (botón azul) dentro de los 5 segundos. Estos datos se guardarán en la memoria Flash.

Figura 5. Configuración de los parámetros de Wi-Fi

Paquete de software de expansión X-CUBE-IOTA1: configuración de parámetros de Wi-FiPaso 5. Espere a que aparezca el mensaje “Presione cualquier tecla para continuar”. Luego, la pantalla se actualiza con la lista de las funciones principales:

  • Enviar un mensaje de indexación genérico
  • Envíe un mensaje de sensor de indexación (incluido el tiempoamp, Temperatura y humedad)
  • Conseguir el equilibrio
  • Enviar transacción
  • Otras funciones

Figura 6. Menú principal
Paquete de software de expansión X-CUBE-IOTA1 - Menú principal

Paso 6. Elija la opción 3 para probar una de las siguientes funciones:

Obtener información del nodo Obtener consejos
Obtener salida Salidas de dirección
Conseguir el equilibrio Error de respuesta
Recibir mensaje Enviar mensaje
Buscar mensaje Billetera de prueba
Generador de mensajes Prueba cripto

Figura 7. Otras funcionesPaquete de software de expansión X-CUBE-IOTA1 - Otras funciones

ENLACES RELACIONADOS
Para obtener más detalles sobre las funciones de IOTA 1.5, consulte la documentación del Cliente IOTA C

Guía de configuración del sistema

Descripción del hardware
STM32L4 + Kit de descubrimiento nodo IoT

El kit de descubrimiento B-L4S5I-IOT01A para nodo IoT le permite desarrollar aplicaciones para conectarse directamente a servidores en la nube.
El kit Discovery permite una amplia variedad de aplicaciones aprovechando la comunicación de bajo consumo, la detección multidireccional y las características de la serie STM4L32 + basadas en el núcleo ARM®Cortex® -M4 +.
Admite conectividad Arduino Uno R3 y PMOD que proporciona capacidades de expansión ilimitadas con una gran variedad de placas adicionales dedicadas.

Figura 8. Kit de descubrimiento B-L4S5I-IOT01APaquete de software de expansión X-CUBE-IOTA1 - B-L4S5I-IOT01A Discovery ki

Configuración de hardware

Se necesitan los siguientes componentes de hardware:

  1. un kit STM32L4 + Discovery para nodo IoT equipado con interfaz Wi-Fi (código de pedido: B-L4S5I-IOT01A)
  2. un cable USB tipo A a Mini-B USB tipo B para conectar la placa de descubrimiento STM32 a la PC
Configuración del software

Los siguientes componentes de software son necesarios para configurar el entorno de desarrollo para crear aplicaciones IOTA DLT para el B-L4S5I-IOT01A:

  • X-CUBE-IOTA1: el firmware y la documentación relacionada están disponibles en st.com
  • cadena de herramientas de desarrollo y compilador: el software de expansión STM32Cube admite los siguientes entornos:
    - IAR Embedded Workbench para cadena de herramientas ARM ® (EWARM) + ST-LINK / V2
    - RealView Conjunto de herramientas del kit de desarrollo de microcontroladores (MDK-ARM) + ST-LINK / V2
    - STM32CubeIDE + ST-LINK / V2
Configuración del sistema

La placa Discovery B-L4S5I-IOT01A permite la explotación de las funciones de IOTA DLT. La placa integra el depurador / programador ST-LINK / V2-1. Puede descargar la versión correspondiente del controlador USB ST-LINK / V2-1 en STSW-LINK009.

Historial de revisiones

Tabla 2. Historial de revisión del documento

Fecha Revisión Cambios
13 de junio de 19 1 Lanzamiento inicial
18 de junio de 19 2 Se actualizó la Sección 3.4.8.1 TX_IN y TX_OUT, Sección 3.4.8.3 Envío de datos a través de valor cero
transacciones y la Sección 3.4.8.4 Envío de fondos mediante transacciones de transferencia.
6 de mayo de 21 3 Introducción actualizada, Sección 1 Siglas y abreviaturas, Sección 2.1 Másview, Sección 2.1.1 IOTA 1.0, Sección 2.1.3 Prueba de trabajo, Sección 2.2 Arquitectura, Sección 2.3 Estructura de carpetas, Sección 3.2 Configuración del hardware, Sección 3.3 Configuración del software y Sección 3.4 Configuración del sistema.
Se eliminó la Sección 2 y se reemplazó por un enlace en la Introducción.
Se eliminó la Sección 3.1.2 Transacciones y paquetes, Sección 3.1.3 Cuenta y firmas, Sección
3.1.5 Hash. Sección 3.4 Cómo escribir aplicaciones y subsecciones relacionadas, Sección 3.5 Descripción de la aplicación IOTALightNode y subsecciones relacionadas, y Sección 4.1.1 STM32
Plataforma Nucleo Se agregó la Sección 2.1.2 IOTA 1.5 - Chrysalis, Sección 2.5 Descripción de la aplicación IOTA-Cliente, Sección 2.4 API y Sección 3.1.1 STM32L4 + Kit de descubrimiento del nodo IoT.

 

AVISO IMPORTANTE: LEA DETENIDAMENTE

STMicroelectronics NV y sus subsidiarias ("ST") se reservan el derecho de realizar cambios, correcciones, mejoras, modificaciones y mejoras en los productos ST y / o en este documento en cualquier momento sin previo aviso. Los compradores deben obtener la información relevante más reciente sobre los productos ST antes de realizar pedidos. Los productos ST se venden de conformidad con los términos y condiciones de venta de ST vigentes en el momento de la confirmación del pedido.

Los compradores son los únicos responsables de la elección, selección y uso de los productos ST y ST no asume ninguna responsabilidad por la asistencia con la aplicación o el diseño de los productos de los compradores.
ST no concede aquí ninguna licencia, expresa o implícita, sobre ningún derecho de propiedad intelectual.
La reventa de productos ST con disposiciones diferentes a la información aquí establecida anulará cualquier garantía otorgada por ST para dicho producto.
ST y el logotipo de ST son marcas comerciales de ST. Para obtener información adicional sobre las marcas comerciales ST, consulte www.st.com/trademarks. Todos los demás nombres de productos o servicios son propiedad de sus respectivos dueños.
La información contenida en este documento reemplaza la información proporcionada previamente en cualquier versión anterior de este documento.
© 2021 STMicroelectronics – Todos los derechos reservados

Documentos / Recursos

Paquete de software de expansión ST X-CUBE-IOTA1 para STM32Cube [pdf] Manual del usuario
ST, X-CUBE-IOTA1, Expansión, Paquete de software, para STM32Cube

Referencias

Deja un comentario

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados *