ST X-NUCLEO-53L1A2 expansionskort -- Avbrottskonfigurationer

UM2606
Användarmanual

Komma igång med IOTA Distributed Ledger
Teknikprogramvaruexpansion för STM32Cube

Introduktion

De X-CUBE-IOTA1 expansionsprogrampaket för STM32Cube körs på STM32 och inkluderar mellanprogram för att aktivera funktionerna i IOTA Distributed Ledger Technology (DLT).
IOTA DLT är ett lager för transaktionsavveckling och dataöverföring för Internet of Things (IoT). IOTA tillåter människor och maskiner att överföra pengar och/eller data utan några transaktionsavgifter i en förtroendelös, tillståndslös och decentraliserad miljö. Denna teknik gör till och med mikrobetalningar möjliga utan behov av en pålitlig mellanhand av något slag. Expansionen är byggd på STM32Cube mjukvaruteknik för att underlätta portabilitet mellan olika STM32mikrokontroller. Den aktuella versionen av programvaran körs på B-L4S5I-IOT01A Discovery-kit för IoT-nod och ansluter till Internet via det bifogade Wi-Fi-gränssnittet.

RELATERADE LÄNKAR

Besök STM32Cube-ekosystemet web sida på www.st.com för mer information
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

Akronymer och förkortningar

Tabell 1. Lista över akronymer

Akronym Beskrivning
DLT Distribuerad reskontrateknik
ID Integrerad utvecklingsmiljö
IoT Sakernas internet
PoW Proof-of-Work

X-CUBE-IOTA1 mjukvaruexpansion för STM32Cube

Överview

De X-CUBE-IOTA1 mjukvarupaketet expanderar STM32Cube funktionalitet med följande nyckelfunktioner:

  • Komplett firmware för att bygga IOTA DLT-applikationer för STM32-baserade kort
  • Middleware-bibliotek med:
    – FreeRTOS
    – Wi-Fi-hantering
    – kryptering, hashning, meddelandeautentisering och digital signering (Cryptolib)
    – säkerhet på transportnivå (MbedTLS)
    – IOTA Client API för interaktion med Tangle
  • Komplett drivrutin för att bygga applikationer med åtkomst till rörelse- och miljösensorer
  • Exampläser för att förstå hur man utvecklar en IOTA DLT-klientapplikation
  • Enkel portabilitet över olika MCU-familjer, tack vare STM32Cube
  • Gratis, användarvänliga licensvillkor

Mjukvaruexpansionen tillhandahåller mellanvaran för att aktivera IOTA DLT på en STM32-mikrokontroller. IOTA DLT är ett lager för transaktionsavveckling och dataöverföring för Internet of Things (IoT). IOTA tillåter människor och maskiner att överföra pengar och/eller data utan några transaktionsavgifter i en förtroendelös, tillståndslös och decentraliserad miljö. Denna teknik gör till och med mikrobetalningar möjliga utan behov av en pålitlig mellanhand av något slag.

IOTA 1.0

Distributed Ledger Technologies (DLT) är byggda på ett nodnätverk som upprätthåller en distribuerad ledger, som är en kryptografiskt säker, distribuerad databas för att registrera transaktioner. Noder utfärdar transaktioner genom ett konsensusprotokoll.
IOTA är en distribuerad reskontrateknologi speciellt designad för IoT.
Den distribuerade IOTA-reskontran kallas härvan och skapas av transaktionerna som utfärdas av noderna i IOTA-nätverket.
För att publicera en transaktion i härvan måste en nod:

  1. validera två ej godkända transaktioner som kallas tips
  2. skapa och signera den nya transaktionen
  3. utföra tillräckliga bevis på arbete
  4. sända den nya transaktionen till IOTA-nätverket

Transaktionen är fäst vid härvan tillsammans med två referenser som pekar på de validerade transaktionerna.
Denna struktur kan modelleras som en riktad acyklisk graf, där hörnen representerar enstaka transaktioner och kanterna representerar referenser mellan par av transaktioner.
En genesis-transaktion är vid härvans rot och inkluderar alla tillgängliga IOTA-tokens, kallade iotas.
IOTA 1.0 använder en ganska okonventionell implementeringsmetod baserad på trinär representation: varje element i IOTA beskrivs med hjälp av trits = -1, 0, 1 istället för bitar, och tryte på 3 trits istället för byte. En tryte representeras som ett heltal från -13 till 13, kodat med bokstäver (AZ) och nummer 9.
IOTA 1.5 (Chrysalis) ersätter den trinära transaktionslayouten med en binär struktur.
IOTA-nätverket inkluderar noder och klienter. En nod är ansluten till peers i nätverket och lagrar en kopia av härvan. En klient är en enhet med ett frö som ska användas för att skapa adresser och signaturer.
Klienten skapar och signerar transaktioner och skickar dem till noden så att nätverket kan validera och lagra dem. Uttagstransaktioner måste innehålla en giltig signatur. När en transaktion anses giltig lägger noden till den i sin reskontra, uppdaterar saldot för de berörda adresserna och sänder transaktionen till sina grannar.

IOTA 1.5 – Chrysalis

Målet med IOTA Foundation är att optimera IOTA:s huvudnät före Coordicide och att erbjuda en företagsklar lösning för IOTA:s ekosystem. Detta uppnås genom en mellanliggande uppdatering som kallas Chrysalis. De viktigaste uppgraderingarna som introducerats av Chrysalis är:

  • Återanvändbara adresser: antagandet av Ed25519-signaturschemat, som ersätter Winternitz engångssignaturschema (W-OTS), tillåter användare att säkert skicka tokens från samma adress flera gånger;
  • Inga fler paket: IOTA 1.0 använder konceptet paket för att skapa överföringar. Paket är en uppsättning transaktioner länkade samman av deras rotreferens (trunk). Med IOTA 1.5-uppdateringen tas den gamla buntkonstruktionen bort och ersätts av de enklare Atomic-transaktionerna. Tangle vertex representeras av meddelandet som är en sorts behållare som kan ha godtyckliga nyttolaster (dvs. tokennyttolast eller indexeringsnyttolast);
  • UTXO-modell: ursprungligen använde IOTA 1.0 en kontobaserad modell för att spåra individuella IOTA-tokens: varje IOTA-adress innehöll ett antal tokens och det aggregerade antalet tokens från alla IOTA-adresser var lika med det totala utbudet. Istället använder IOTA 1.5 den outnyttjade transaktionsutdatamodellen, eller UTXO, baserat på idén att spåra outnyttjade mängder tokens via en datastruktur som kallas utdata;
  • Upp till 8 föräldrar: med IOTA 1.0 var du alltid tvungen att referera till 2 överordnade transaktioner. Med Chrysalis introduceras ett större antal refererade föräldranoder (upp till 8). För att få bästa resultat rekommenderas minst 2 unika föräldrar åt gången.

RELATERADE LÄNKAR
För mer information om Chrysalis, se denna dokumentationssida

Proof-of-Work

IOTA-protokollet använder Proof-of-Work som ett sätt att hastighetsbegränsa nätverket.
IOTA 1.0 använde Curl-P-81 trinär hash-funktion och krävde en hash med det matchande antalet efterföljande noll-trits för att utfärda en transaktion till Tangle.
Med Chrysalis är det möjligt att utfärda binära meddelanden av godtycklig storlek. Denna RFC beskriver hur man anpassar den befintliga PoW-mekanismen till de nya kraven. Det syftar till att vara så mindre störande som möjligt för den nuvarande PoW-mekanismen.

Arkitektur

Denna STM32Cube-expansion möjliggör utveckling av applikationer som får åtkomst till och använder IOTA DLT-mellanvaran.
Den är baserad på STM32CubeHAL hårdvaruabstraktionslager för STM32-mikrokontrollern och utökar STM32Cube med ett specifikt kortstödspaket (BSP) för mikrofonexpansionskortet och mellanvarukomponenter för ljudbearbetning och USB-kommunikation med en PC.
Programvaruskikten som används av applikationsmjukvaran för att komma åt och använda mikrofonexpansionskortet är:

  • STM32Cube HAL-lager: tillhandahåller en generisk, multi-instans uppsättning API:er för att interagera med de övre lagren (applikationen, biblioteken och stackarna). Den består av generiska och förlängnings-API:er baserade på en gemensam arkitektur som gör att andra lager som mellanvarulagret kan fungera utan specifika hårdvarukonfigurationer för Microcontroller Unit (MCU). Denna struktur förbättrar bibliotekskodens återanvändbarhet och garanterar enkel enhetsportabilitet.
  • Board Support Package (BSP) lager: är en uppsättning API:er som tillhandahåller ett programmeringsgränssnitt för vissa kortspecifika kringutrustning (LED, användarknapp etc.). Detta gränssnitt hjälper också till att identifiera den specifika kortversionen och ger stöd för att initiera nödvändig MCU-kringutrustning och läsa data.

Figur 1. X-CUBE-IOTA1 mjukvaruarkitektur

X-CUBE-IOTA1 Expansion Mjukvarupaket -- X-CUBE-IOTA1 Expansion

Mappstruktur

Figur 2. X-CUBE-IOTA1 mappstrukturX-CUBE-IOTA1 Expansion Software Package -- mappstruktur

Följande mappar ingår i mjukvarupaketet:

  • Dokumentation: innehåller en kompilerad HTML file genereras från källkoden och detaljerad dokumentation av programvarukomponenterna och API:erna
  • Drivrutiner: innehåller HAL-drivrutinerna och de kortspecifika drivrutinerna för kort- och hårdvaruplattformar som stöds, inklusive de för inbyggda komponenter och CMSIS-leverantörsoberoende hårdvaruabstraktionslager för ARM® Cortex®-M-processorserien
  • Mellanvaror: innehåller bibliotek med FreeRTOS; Wi-Fi-hantering; kryptering, hashning, meddelandeautentisering och digital signering (Cryptolib); säkerhet på transportnivå (MbedTLS); IOTA Client API för att interagera med Tangle
  • Projekt: innehåller examples för att hjälpa dig att utveckla en IOTA DLT-klientapplikation för den stödda STM32-baserade plattformen (B-L4S5I-IOT01A), med tre utvecklingsmiljöer, IAR Embedded Workbench for ARM (EWARM), RealView Microcontroller Development Kit (MDK-ARM) och STM32CubeIDE
API

Detaljerad teknisk information med fullständig användar-API-funktion och parameterbeskrivning finns i en kompilerad HTML file i mappen "Dokumentation".

IOTA-klientapplikationsbeskrivning

Projektet files för IOTA-klientapplikationen finns i: $BASE_DIR\Projects\B-L4S5IIOT01A\Applications\IOTA-Client.
Byggfärdiga projekt är tillgängliga för flera IDE:er.
Användargränssnittet tillhandahålls via seriell port och måste konfigureras med följande inställningar:

Figur 3. Tera Term – TerminalinställningX-CUBE-IOTA1 Expansion Software Package -- Seriell portinstallation

Figur 4. Tera Term – Inställning av seriell portX-CUBE-IOTA1 Expansion Software Package -- Terminalinstallation

För att köra programmet, följ proceduren nedan.
Steg 1. Öppna en seriell terminal för att visualisera loggen över meddelanden.
Steg 2. Ange din Wi-Fi-nätverkskonfiguration (SSID, säkerhetsläge och lösenord).
Steg 3. Ställ in TLS rot-CA-certifikat.
Steg 4. Kopiera och klistra in innehållet i Projects\B-L4S5I-IOT01A\Applications\IOTAClient\usertrust_thetangle.pem. Enheten använder dem för att autentisera fjärrvärdarna genom TLS.

Notera: Efter att ha konfigurerat parametrarna kan du ändra dem genom att starta om kortet och trycka på användarknappen (blå knapp) inom 5 sekunder. Dessa data kommer att sparas i Flash-minnet.

Figur 5. Wi-Fi-parameterinställningar

X-CUBE-IOTA1 Expansion Software Package -- Wi-Fi-parameterinställningarSteg 5. Vänta tills meddelandet "Tryck på valfri tangent för att fortsätta" visas. Skärmen uppdateras sedan med listan över huvudfunktionerna:

  • Skicka ett allmänt indexeringsmeddelande
  • Skicka ett indexeringssensormeddelande (inklusive tidamp, temperatur och luftfuktighet)
  • Få balans
  • Skicka transaktion
  • Andra funktioner

Figur 6. Huvudmeny
X-CUBE-IOTA1 Expansion Software Package -- Huvudmeny

Steg 6. Välj alternativ 3 för att testa en av följande funktioner:

Få nodinformation Få tips
Få utdata Utdata från adress
Få balans Svarsfel
Få meddelande Skicka meddelande
Hitta meddelande Testa plånbok
Meddelandebyggare Testa krypto

Figur 7. Övriga funktionerX-CUBE-IOTA1 Expansion Software Package -Andra funktioner

RELATERADE LÄNKAR
För ytterligare information om IOTA 1.5-funktioner, se IOTA C-klientdokumentationen

Systeminstallationsguide

Maskinvarubeskrivning
STM32L4+ Discovery kit IoT-nod

B-L4S5I-IOT01A Discovery-kit för IoT-nod låter dig utveckla applikationer för att direkt ansluta till molnservrar.
Discovery-satsen möjliggör en mängd olika applikationer genom att utnyttja lågeffektkommunikation, flervägsavkänning och ARM®Cortex® -M4+ kärnbaserade STM32L4+-seriefunktioner.
Den stöder Arduino Uno R3 och PMOD-anslutning och ger obegränsade expansionsmöjligheter med ett stort urval av dedikerade tilläggskort.

Figur 8. B-L4S5I-IOT01A Discovery kitX-CUBE-IOTA1 Expansion Software Package -- B-L4S5I-IOT01A Discovery ki

Hårdvaruinställning

Följande hårdvarukomponenter behövs:

  1. ett STM32L4+ Discovery-kit för IoT-nod utrustad med Wi-Fi-gränssnitt (beställningskod: B-L4S5I-IOT01A)
  2. en USB typ A till Mini-B USB typ B-kabel för att ansluta STM32-upptäckarkortet till datorn
Mjukvaruinstallation

Följande programvarukomponenter behövs för att ställa in utvecklingsmiljön för att skapa IOTA DLT-applikationer för B-L4S5I-IOT01A:

  • X-CUBE-IOTA1: firmware och relaterad dokumentation finns på st.com
  • utvecklingsverktygskedja och kompilator: expansionsprogramvaran STM32Cube stöder följande miljöer:
    – IAR Embedded Workbench för ARM ® (EWARM) verktygskedja + ST-LINK/V2
    – VerkligtView Microcontroller Development Kit (MDK-ARM) verktygskedja + ST-LINK/V2
    – STM32CubeIDE + ST-LINK/V2
Systeminställning

B-L4S5I-IOT01A Discovery-kort tillåter utnyttjande av IOTA DLT-funktionerna. Kortet integrerar ST-LINK/V2-1 debugger/programmerare. Du kan ladda ner den relevanta versionen av ST-LINK/V2-1 USB-drivrutinen på STSW-LINK009.

Revisionshistorik

Tabell 2. Dokumentrevisionshistorik

Datum Revision Ändringar
13 juni 19 1 Initial release
18 juni 19 2 Uppdaterad sektion 3.4.8.1 TX_IN och TX_OUT, sektion 3.4.8.3 Skicka data genom nollvärde
transaktioner och avsnitt 3.4.8.4 Skicka medel genom överföringstransaktioner.
6-21 maj 3 Uppdaterad inledning, avsnitt 1 Akronymer och förkortningar, avsnitt 2.1 Överview, Avsnitt 2.1.1 IOTA 1.0, Avsnitt 2.1.3 Proof-of-Work, Avsnitt 2.2 Arkitektur, Avsnitt 2.3 Mappstruktur, Avsnitt 3.2 Installation av hårdvara, Avsnitt 3.3 Mjukvaruinstallation och Avsnitt 3.4 Systeminstallation.
Tog bort avsnitt 2 och ersattes av en länk i introduktionen.
Borttagen Avsnitt 3.1.2 Transaktioner och paket, Avsnitt 3.1.3 Konto och signaturer, Avsnitt
3.1.5 Hashing. Avsnitt 3.4 Hur man skriver ansökningar och relaterade underavsnitt, Avsnitt 3.5 IOTALightNode-applikationsbeskrivning och relaterade underavsnitt, och Avsnitt 4.1.1 STM32
Nucleo-plattform Lade till avsnitt 2.1.2IOTA 1.5 – Chrysalis, avsnitt 2.5 IOTA-klientapplikationsbeskrivning, avsnitt 2.4 API och avsnitt 3.1.1 STM32L4+ Discovery kit IoT-nod.

 

VIKTIGT MEDDELANDE - LÄS VÄNLIGT NÄR

STMicroelectronics NV och dess dotterbolag (“ST”) förbehåller sig rätten att göra ändringar, korrigeringar, förbättringar, modifieringar och förbättringar av ST-produkter och / eller detta dokument när som helst utan föregående meddelande. Köpare bör få den senaste relevanta informationen om ST-produkter innan de beställer. ST-produkter säljs enligt ST: s försäljningsvillkor på plats vid beställningsbekräftelsen.

Köpare är ensamma ansvariga för val, val och användning av ST-produkter och ST tar inget ansvar för applikationshjälp eller utformningen av köparens produkter.
Ingen licens, uttrycklig eller underförstådd, till någon immateriell rättighet beviljas av ST häri.
Återförsäljning av ST-produkter med bestämmelser som skiljer sig från den information som anges häri upphäver all garanti som beviljats ​​av ST för sådan produkt.
ST och ST-logotypen är varumärken som tillhör ST. För ytterligare information om ST-varumärken, se www.st.com/trademarks. Alla andra produkt- eller tjänstnamn tillhör sina respektive ägare.
Informationen i detta dokument ersätter och ersätter information som tidigare tillhandahållits i tidigare versioner av detta dokument.
© 2021 STMicroelectronics – Alla rättigheter reserverade

Dokument/resurser

ST X-CUBE-IOTA1 Expansionsmjukvarupaket för STM32Cube [pdf] Användarmanual
ST, X-CUBE-IOTA1, Expansion, Mjukvarupaket, för, STM32Cube

Referenser

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *