Placa de expansão ST X-NUCLEO-53L1A2 - configurações de interrupção

UM2606
Manual do usuário

Introdução ao livro razão distribuído IOTA
Expansão de software de tecnologia para STM32Cube

Introdução

O X-CUBE-IOTA1 pacote de software de expansão para STM32Cubo é executado no STM32 e inclui middleware para habilitar as funções da IOTA Distributed Ledger Technology (DLT).
O IOTA DLT é uma camada de liquidação de transações e transferência de dados para a Internet das Coisas (IoT). IOTA permite que pessoas e máquinas transfiram dinheiro e / ou dados sem quaisquer taxas de transação em um ambiente descentralizado, sem confiança e sem permissão. Essa tecnologia possibilita até micropagamentos sem a necessidade de um intermediário de confiança de qualquer tipo. A expansão é baseada na tecnologia de software STM32Cube para facilitar a portabilidade entre diferentes microcontroladores STM32. A versão atual do software é executada no B-L4S5I-IOT01A Kit de descoberta para o nó IoT e conecta-se à Internet por meio da interface Wi-Fi anexada.

LINKS RELACIONADOS

Visite o ecossistema STM32Cube web página em www.st.com para mais informações
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

Acrônimos e abreviações

Tabela 1. Lista de siglas

Acrônimo Descrição
DLT Tecnologia de razão distribuída
IDE Ambiente de desenvolvimento integrado
Internet das coisas Internet das coisas
Prisioneiro de guerra Prova de Trabalho

Expansão do software X-CUBE-IOTA1 para STM32Cube

Sobreview

O X-CUBE-IOTA1 pacote de software se expande STM32Cubo funcionalidade com os seguintes recursos principais:

  • Firmware completo para construir aplicativos IOTA DLT para placas baseadas em STM32
  • Bibliotecas de middleware com:
    - FreeRTOS
    - Gerenciamento de Wi-Fi
    - criptografia, hashing, autenticação de mensagem e assinatura digital (Cryptolib)
    - segurança de nível de transporte (MbedTLS)
    - IOTA Client API para interagir com o Tangle
  • Driver completo para construir aplicativos que acessam sensores ambientais e de movimento
  • Examparquivos para ajudar a entender como desenvolver um aplicativo IOTA DLT Client
  • Fácil portabilidade em diferentes famílias de MCU, graças ao STM32Cube
  • Termos de licença gratuitos e fáceis de usar

A expansão do software fornece o middleware para habilitar o IOTA DLT em um microcontrolador STM32. O IOTA DLT é uma camada de liquidação de transações e transferência de dados para a Internet das Coisas (IoT). IOTA permite que pessoas e máquinas transfiram dinheiro e / ou dados sem quaisquer taxas de transação em um ambiente descentralizado, sem confiança e sem permissão. Essa tecnologia possibilita até micropagamentos sem a necessidade de um intermediário de confiança de qualquer tipo.

IOTA 1.0

Distributed Ledger Technologies (DLTs) são construídos em uma rede de nós que mantém um razão distribuído, que é um banco de dados distribuído criptograficamente protegido para registrar transações. Os nós emitem transações por meio de um protocolo de consenso.
IOTA é uma tecnologia de razão distribuída projetada especificamente para IoT.
O livro razão IOTA distribuído é denominado emaranhado e é criado pelas transações emitidas pelos nós na rede IOTA.
Para publicar uma transação no emaranhado, um nó deve:

  1. validar duas transações não aprovadas chamadas dicas
  2. criar e assinar a nova transação
  3. realizar Prova de Trabalho suficiente
  4. transmitir a nova transação para a rede IOTA

A transação é anexada ao emaranhado junto com duas referências apontando para as transações validadas.
Essa estrutura pode ser modelada como um grafo acíclico direcionado, onde os vértices representam transações únicas e as arestas representam referências entre pares de transações.
Uma transação do genesis está na raiz do emaranhado e inclui todos os tokens IOTA disponíveis, chamados iotas.
IOTA 1.0 usa uma abordagem de implementação não convencional baseada na representação trinária: cada elemento em IOTA é descrito usando trits = -1, 0, 1 em vez de bits e trytes de 3 trits em vez de bytes. Um tryte é representado como um número inteiro de -13 a 13, codificado usando letras (AZ) e o número 9.
IOTA 1.5 (Chrysalis) substitui o layout da transação trinária por uma estrutura binária.
A rede IOTA inclui nós e clientes. Um nó é conectado a pares na rede e armazena uma cópia do emaranhado. Um cliente é um dispositivo com uma semente a ser usado para criar endereços e assinaturas.
O cliente cria e assina transações e as envia ao nó para que a rede possa validá-las e armazená-las. As transações de retirada devem conter uma assinatura válida. Quando uma transação é considerada válida, o nó a adiciona ao seu razão, atualiza os saldos dos endereços afetados e transmite a transação para seus vizinhos.

IOTA 1.5 - Crisálida

O objetivo da Fundação IOTA é otimizar a rede principal IOTA antes da Coordicide e oferecer uma solução pronta para empresas para o ecossistema IOTA. Isso é conseguido por uma atualização intermediária chamada Crisálida. As principais atualizações introduzidas pela Crisálida são:

  • Endereços reutilizáveis: a adoção do esquema de assinatura Ed25519, substituindo o esquema de assinatura de tempo de Winternitz (W-OTS), permite que os usuários enviem tokens com segurança do mesmo endereço várias vezes;
  • Chega de pacotes: IOTA 1.0 usa o conceito de pacotes para criar transferências. Pacotes são um conjunto de transações vinculadas por sua referência raiz (tronco). Com a atualização IOTA 1.5, a construção do pacote configurável antigo é removida e substituída pelas transações Atomic mais simples. O vértice do Emaranhado é representado pela Mensagem, que é uma espécie de contêiner que pode ter cargas arbitrárias (ou seja, carga útil de token ou carga de indexação);
  • Modelo UTXO: originalmente, IOTA 1.0 usava um modelo baseado em conta para rastrear tokens IOTA individuais: cada endereço IOTA continha um número de tokens e o número agregado de tokens de todos os endereços IOTA era igual ao fornecimento total. Em vez disso, o IOTA 1.5 usa o modelo de saída de transação não gasto, ou UTXO, com base na ideia de rastrear quantidades não gastas de tokens por meio de uma estrutura de dados chamada saída;
  • Até 8 pais: com IOTA 1.0, você sempre teve que fazer referência a 2 transações pai. Com a Crisálida, um número maior de nós pais referenciados (até 8) é introduzido. Para obter os melhores resultados, pelo menos 2 pais únicos por vez são recomendados.

LINKS RELACIONADOS
Para obter mais informações sobre a crisálida, consulte esta página de documentação

Prova de Trabalho

O protocolo IOTA usa Prova de Trabalho como meio de limitar a taxa da rede.
IOTA 1.0 usou o Curl-P-81 função hash trinária e exigiu um hash com o número correspondente de zero trits à direita para emitir uma transação para o Tangle.
Com a Crisálida, é possível emitir mensagens binárias de tamanho arbitrário. Este RFC descreve como adaptar o mecanismo PoW existente aos novos requisitos. Tem como objetivo ser o menos perturbador possível para o mecanismo PoW atual.

Arquitetura

Esta expansão STM32Cube permite o desenvolvimento de aplicativos acessando e usando o middleware IOTA DLT.
É baseado na camada de abstração de hardware STM32CubeHAL para o microcontrolador STM32 e estende o STM32Cube com um pacote de suporte de placa específico (BSP) para a placa de expansão do microfone e componentes de middleware para processamento de áudio e comunicação USB com um PC.
As camadas de software usadas pelo software aplicativo para acessar e usar a placa de expansão do microfone são:

  • Camada STM32Cube HAL: fornece um conjunto genérico de várias instâncias de APIs para interagir com as camadas superiores (o aplicativo, bibliotecas e pilhas). Ele consiste em APIs genéricas e de extensão com base em uma arquitetura comum que permite que outras camadas, como a camada de middleware, funcionem sem configurações de hardware de unidade de microcontrolador (MCU) específicas. Essa estrutura melhora a reutilização do código da biblioteca e garante fácil portabilidade do dispositivo.
  • Camada Board Support Package (BSP): é um conjunto de APIs que fornece uma interface de programação para determinados periféricos específicos da placa (LED, botão do usuário, etc.). Essa interface também ajuda a identificar a versão específica da placa e fornece suporte para inicializar os periféricos MCU necessários e ler os dados.

Figura 1. Arquitetura de software X-CUBE-IOTA1

Pacote de software de expansão X-CUBE-IOTA1 - Expansão X-CUBE-IOTA1

Estrutura de pastas

Figura 2. Estrutura da pasta X-CUBE-IOTA1Pacote de software de expansão X-CUBE-IOTA1 - estrutura de pastas

As seguintes pastas estão incluídas no pacote de software:

  • Documentação: contém um HTML compilado file gerado a partir do código-fonte e documentação detalhada dos componentes de software e APIs
  • Motoristas: contém os drivers HAL e os drivers específicos da placa para placas suportadas e plataformas de hardware, incluindo aqueles para os componentes on-board e a camada de abstração de hardware independente do fornecedor CMSIS para a série de processadores ARM® Cortex®-M
  • Middlewares: contém bibliotecas com FreeRTOS; Gerenciamento de Wi-Fi; criptografia, hashing, autenticação de mensagem e assinatura digital (Cryptolib); segurança de nível de transporte (MbedTLS); IOTA Client API para interagir com o Tangle
  • Projetos: contém examparquivos para ajudá-lo a desenvolver um aplicativo IOTA DLT Client para a plataforma baseada em STM32 suportada (B-L4S5I-IOT01A), com três ambientes de desenvolvimento, IAR Embedded Workbench for ARM (EWARM), RealView Kit de desenvolvimento de microcontrolador (MDK-ARM) e STM32CubeIDE
API

As informações técnicas detalhadas com a função API do usuário completa e a descrição dos parâmetros estão em um HTML compilado file na pasta “Documentação”.

Descrição do aplicativo IOTA-Client

O projeto files para o aplicativo IOTA-Client podem ser encontrados em: $ BASE_DIR \ Projects \ B-L4S5IIOT01A \ Applications \ IOTA-Client.
Projetos prontos para construção estão disponíveis para vários IDEs.
A interface do usuário é fornecida via porta serial e deve ser configurada com as seguintes configurações:

Figura 3. Tera Term - configuração do terminalPacote de software de expansão X-CUBE-IOTA1 - configuração da porta serial

Figura 4. Tera Term - configuração da porta serialPacote de software de expansão X-CUBE-IOTA1 - configuração do terminal

Para executar o aplicativo, siga o procedimento abaixo.
Passo 1. Abra um terminal serial para visualizar o log de mensagens.
Passo 2. Digite sua configuração de rede Wi-Fi (SSID, Modo de segurança e senha).
Passo 3. Defina os certificados de CA raiz TLS.
Passo 4. Copie e cole o conteúdo de Projects \ B-L4S5I-IOT01A \ Applications \ IOTAClient \ usertrust_thetangle.pem. O dispositivo os usa para autenticar os hosts remotos por meio de TLS.

Observação: Após configurar os parâmetros, você pode alterá-los reiniciando a placa e pressionando o botão Usuário (botão azul) em 5 segundos. Esses dados serão salvos na memória Flash.

Figura 5. Configurações de parâmetro de Wi-Fi

Pacote de software de expansão X-CUBE-IOTA1 - configurações de parâmetro de Wi-FiPasso 5. Aguarde até que a mensagem “Pressione qualquer tecla para continuar” apareça. A tela é então atualizada com a lista das funções principais:

  • Envie uma mensagem de indexação genérica
  • Envie uma mensagem do sensor de indexação (incluindo tempoamp, Temperatura e umidade)
  • Obtenha equilíbrio
  • Enviar transação
  • Outras funções

Figura 6. Menu principal
Pacote de software de expansão X-CUBE-IOTA1 - menu principal

Passo 6. Escolha a opção 3 para testar uma das seguintes funções:

Obter informações do nó Receba dicas
Obter saída Saídas do endereço
Obtenha equilíbrio Erro de resposta
Receber mensagem Enviar mensagem
Encontrar mensagem Carteira de teste
Construtor de mensagens Testar criptografia

Figura 7. Outras funçõesPacote de software de expansão X-CUBE-IOTA1 - Outras funções

LINKS RELACIONADOS
Para obter mais detalhes sobre as funções IOTA 1.5, consulte a documentação do IOTA C Client

Guia de configuração do sistema

Descrição do hardware
STM32L4 + Nó IoT do kit de descoberta

O kit de descoberta B-L4S5I-IOT01A para o nó IoT permite que você desenvolva aplicativos para se conectar diretamente a servidores em nuvem.
O kit Discovery permite uma ampla variedade de aplicações, explorando comunicação de baixa potência, detecção multi-vias e recursos da série STM4L32 + baseados em núcleo ARM®Cortex® -M4 +.
Ele suporta conectividade Arduino Uno R3 e PMOD, fornecendo recursos de expansão ilimitados com uma grande variedade de placas adicionais dedicadas.

Figura 8. Kit de descoberta B-L4S5I-IOT01APacote de software de expansão X-CUBE-IOTA1 - B-L4S5I-IOT01A Discovery ki

Configuração de hardware

Os seguintes componentes de hardware são necessários:

  1. um kit de descoberta STM32L4 + para nó IoT equipado com interface Wi-Fi (código de pedido: B-L4S5I-IOT01A)
  2. um cabo USB tipo A para Mini-B USB tipo B para conectar a placa de descoberta STM32 ao PC
Configuração do software

Os seguintes componentes de software são necessários para configurar o ambiente de desenvolvimento para a criação de aplicativos IOTA DLT para o B-L4S5I-IOT01A:

  • X-CUBE-IOTA1: o firmware e a documentação relacionada estão disponíveis em st.com
  • cadeia de ferramentas de desenvolvimento e compilador: o software de expansão STM32Cube oferece suporte aos seguintes ambientes:
    - Conjunto de ferramentas IAR Embedded Workbench para ARM ® (EWARM) + ST-LINK / V2
    - RealView Conjunto de ferramentas do kit de desenvolvimento de microcontrolador (MDK-ARM) + ST-LINK / V2
    - STM32CubeIDE + ST-LINK / V2
Configuração do sistema

A placa B-L4S5I-IOT01A Discovery permite a exploração dos recursos IOTA DLT. A placa integra o depurador / programador ST-LINK / V2-1. Você pode baixar a versão relevante do driver ST-LINK / V2-1 USB em STSW-LINK009.

Histórico de revisão

Tabela 2. Histórico de revisão do documento

Data Revisão Mudanças
13-jun-19 1 Lançamento inicial
18-jun-19 2 Seção 3.4.8.1 TX_IN e TX_OUT atualizada, Seção 3.4.8.3 Envio de dados por valor zero
transações e Seção 3.4.8.4 Envio de fundos por meio de transações de transferência.
6-Maio-21 3 Introdução atualizada, Seção 1 Siglas e abreviações, Seção 2.1 Acimaview, Seção 2.1.1 IOTA 1.0, Seção 2.1.3 Prova de trabalho, Seção 2.2 Arquitetura, Seção 2.3 Estrutura de pastas, Seção 3.2 Configuração do hardware, Seção 3.3 Configuração do software e Seção 3.4 Configuração do sistema.
Removida a Seção 2 e substituída por um link na Introdução.
Removida a Seção 3.1.2 Transações e pacotes, Seção 3.1.3 Conta e assinaturas, Seção
3.1.5 Hashing. Seção 3.4 Como escrever aplicativos e subseções relacionadas, Seção 3.5, descrição do aplicativo IOTALightNode e subseções relacionadas e Seção 4.1.1 STM32
Plataforma Nucleo Adicionada a Seção 2.1.2IOTA 1.5 - Crisálida, Seção 2.5 Descrição do aplicativo IOTA-Client, Seção 2.4 API e Seção 3.1.1 STM32L4 + Nó IoT do kit de descoberta.

 

AVISO IMPORTANTE - LEIA COM ATENÇÃO

A STMicroelectronics NV e suas subsidiárias (“ST”) reservam-se o direito de fazer alterações, correções, aprimoramentos, modificações e melhorias nos produtos ST e / ou neste documento a qualquer momento sem aviso prévio. Os compradores devem obter as informações relevantes mais recentes sobre os produtos ST antes de fazer pedidos. Os produtos ST são vendidos de acordo com os termos e condições de venda da ST em vigor no momento da confirmação do pedido.

Os compradores são os únicos responsáveis ​​pela escolha, seleção e uso dos produtos ST e a ST não assume nenhuma responsabilidade pela assistência de aplicação ou design dos produtos dos compradores.
Nenhuma licença, expressa ou implícita, para qualquer direito de propriedade intelectual é concedida pela ST aqui.
A revenda de produtos ST com disposições diferentes das informações aqui estabelecidas anulará qualquer garantia concedida pela ST para tal produto.
ST e o logotipo ST são marcas comerciais da ST. Para obter informações adicionais sobre as marcas registradas da ST, consulte www.st.com/trademarks. Todos os outros nomes de produtos ou serviços são propriedade de seus respectivos proprietários.
As informações neste documento substituem e substituem informações fornecidas anteriormente em quaisquer versões anteriores deste documento.
© 2021 STMicroelectronics – Todos os direitos reservados

Documentos / Recursos

Pacote de software de expansão ST X-CUBE-IOTA1 para STM32Cube [pdf] Manual do Usuário
ST, X-CUBE-IOTA1, Expansão, Pacote de software, para, STM32Cube

Referências

Deixe um comentário

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados *