ST X-NUCLEO-53L1A2 ekspansjonskort -- Avbruddskonfigurasjoner

UM2606
Brukerhåndbok

Komme i gang med IOTA Distribuert Ledger
Teknologiprogramvareutvidelse for STM32Cube

Introduksjon

De X-CUBE-IOTA1 utvidelsesprogramvarepakke for STM32Cube kjører på STM32 og inkluderer mellomvare for å aktivere funksjonene for IOTA Distributed Ledger Technology (DLT).
IOTA DLT er et transaksjonsoppgjør og dataoverføringslag for tingenes internett (IoT). IOTA lar mennesker og maskiner overføre penger og/eller data uten transaksjonsgebyrer i et tillitsløst, tillatelsesløst og desentralisert miljø. Denne teknologien gjør til og med mikrobetalinger mulig uten behov for en pålitelig mellommann av noe slag. Utvidelsen er bygget på STM32Cube-programvareteknologi for å lette portabiliteten på tvers av forskjellige STM32-mikrokontrollere. Den nåværende versjonen av programvaren kjører på B-L4S5I-IOT01A Oppdagelsessett for IoT-node og kobles til Internett via det vedlagte Wi-Fi-grensesnittet.

RELATERTE LENKER

Besøk STM32Cube-økosystemet web side på www.st.com for mer informasjon
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 og forkortelser

Tabell 1. Liste over akronymer

Akronym Beskrivelse
DLT Distribuert hovedbok-teknologi
IDE Integrert utviklingsmiljø
IoT Tingenes internett
PoW Proof-of-Work

X-CUBE-IOTA1 programvareutvidelse for STM32Cube

Overview

De X-CUBE-IOTA1 programvarepakken utvides STM32Cube funksjonalitet med følgende nøkkelfunksjoner:

  • Komplett fastvare for å bygge IOTA DLT-applikasjoner for STM32-baserte kort
  • Mellomvarebiblioteker med:
    – FreeRTOS
    – Wi-Fi-administrasjon
    – kryptering, hashing, meldingsautentisering og digital signering (Cryptolib)
    – Sikkerhet på transportnivå (MbedTLS)
    – IOTA Client API for samhandling med Tangle
  • Komplett driver for å bygge applikasjoner med tilgang til bevegelses- og miljøsensorer
  • Examples for å hjelpe deg med å forstå hvordan du utvikler en IOTA DLT-klientapplikasjon
  • Enkel portabilitet på tvers av forskjellige MCU-familier, takket være STM32Cube
  • Gratis, brukervennlige lisensvilkår

Programvareutvidelsen gir mellomvaren for å aktivere IOTA DLT på en STM32 mikrokontroller. IOTA DLT er et transaksjonsoppgjør og dataoverføringslag for tingenes internett (IoT). IOTA lar mennesker og maskiner overføre penger og/eller data uten transaksjonsgebyrer i et tillitsløst, tillatelsesløst og desentralisert miljø. Denne teknologien gjør til og med mikrobetalinger mulig uten behov for en pålitelig mellommann av noe slag.

IOTA 1.0

Distributed Ledger Technologies (DLT) er bygget på et nodenettverk som opprettholder en distribuert hovedbok, som er en kryptografisk sikret, distribuert database for å registrere transaksjoner. Noder utsteder transaksjoner gjennom en konsensusprotokoll.
IOTA er en distribuert hovedbok-teknologi spesielt utviklet for IoT.
Den IOTA-distribuerte hovedboken kalles floken og skapes av transaksjonene utstedt av nodene i IOTA-nettverket.
For å publisere en transaksjon i floken, må en node:

  1. validere to ikke-godkjente transaksjoner kalt tips
  2. opprette og signere den nye transaksjonen
  3. utføre tilstrekkelig bevis-på-arbeid
  4. kringkaste den nye transaksjonen til IOTA-nettverket

Transaksjonen er festet til floken sammen med to referanser som peker til de validerte transaksjonene.
Denne strukturen kan modelleres som en rettet asyklisk graf, der toppunktene representerer enkelttransaksjoner og kantene representerer referanser mellom par av transaksjoner.
En opprinnelsestransaksjon er ved flokeroten og inkluderer alle tilgjengelige IOTA-tokens, kalt iotas.
IOTA 1.0 bruker en ganske ukonvensjonell implementeringstilnærming basert på trinær representasjon: hvert element i IOTA er beskrevet ved hjelp av trits = -1, 0, 1 i stedet for bits, og tryte på 3 trits i stedet for byte. En tryte er representert som et heltall fra -13 til 13, kodet med bokstaver (AZ) og nummer 9.
IOTA 1.5 (Chrysalis) erstatter det trenære transaksjonsoppsettet med en binær struktur.
IOTA-nettverket inkluderer noder og klienter. En node er koblet til peers i nettverket og lagrer en kopi av floken. En klient er en enhet med et frø som skal brukes til å lage adresser og signaturer.
Klienten oppretter og signerer transaksjoner og sender dem til noden slik at nettverket kan validere og lagre dem. Uttakstransaksjoner må inneholde en gyldig signatur. Når en transaksjon anses som gyldig, legger noden den til i sin hovedbok, oppdaterer saldoene til de berørte adressene og kringkaster transaksjonen til naboene.

IOTA 1.5 – Chrysalis

Målet med IOTA Foundation er å optimalisere IOTAs hovednett før Coordicide og å tilby en bedriftsklar løsning for IOTA-økosystemet. Dette oppnås ved en mellomliggende oppdatering kalt Chrysalis. De viktigste oppgraderingene introdusert av Chrysalis er:

  • Gjenbrukbare adresser: Adopsjonen av Ed25519-signaturordningen, som erstatter Winternitz-engangssignaturordningen (W-OTS), lar brukerne trygt sende tokens fra samme adresse flere ganger;
  • Ikke flere bunter: IOTA 1.0 bruker konseptet bunter for å lage overføringer. Bunter er et sett med transaksjoner koblet sammen av deres rotreferanse (trunk). Med IOTA 1.5-oppdateringen fjernes den gamle buntkonstruksjonen og erstattes av de enklere Atomic-transaksjonene. Tangle-toppunktet er representert av meldingen som er en slags beholder som kan ha vilkårlige nyttelaster (dvs. Token-nyttelast eller indekseringsnyttelast);
  • UTXO-modell: opprinnelig brukte IOTA 1.0 en kontobasert modell for å spore individuelle IOTA-tokens: hver IOTA-adresse hadde et antall tokens og det aggregerte antallet tokens fra alle IOTA-adresser var lik den totale forsyningen. I stedet bruker IOTA 1.5 den ubrukte transaksjonsutdatamodellen, eller UTXO, basert på ideen om å spore ubrukte mengder tokens via en datastruktur kalt utdata;
  • Opptil 8 foreldre: med IOTA 1.0 måtte du alltid referere til 2 overordnede transaksjoner. Med Chrysalis introduseres et større antall refererte foreldrenoder (opptil 8). For å oppnå best resultat anbefales minst 2 unike foreldre om gangen.

RELATERTE LENKER
For mer informasjon om Chrysalis, se denne dokumentasjonssiden

Proof-of-Work

IOTA-protokollen bruker Proof-of-Work som et middel til å hastighetsbegrense nettverket.
IOTA 1.0 brukte Curl-P-81 trinær hash-funksjon og krevde en hash med matchende antall etterfølgende null trits for å utstede en transaksjon til Tangle.
Med Chrysalis er det mulig å sende ut binære meldinger av vilkårlig størrelse. Denne RFC beskriver hvordan man tilpasser den eksisterende PoW-mekanismen til de nye kravene. Den tar sikte på å være så mindre forstyrrende som mulig for den nåværende PoW-mekanismen.

Arkitektur

Denne STM32Cube-utvidelsen muliggjør utvikling av applikasjoner som får tilgang til og bruker IOTA DLT-mellomvaren.
Den er basert på STM32CubeHAL-maskinvareabstraksjonslaget for STM32-mikrokontrolleren og utvider STM32Cube med en spesifikk bordstøttepakke (BSP) for mikrofonutvidelseskortet og mellomvarekomponenter for lydbehandling og USB-kommunikasjon med en PC.
Programvarelagene som brukes av applikasjonsprogramvaren for å få tilgang til og bruke mikrofonutvidelseskortet er:

  • STM32Cube HAL-lag: gir et generisk, multi-instans sett med APIer for å samhandle med de øvre lagene (applikasjonen, bibliotekene og stabler). Den består av generiske APIer og utvidelses-APIer basert på en felles arkitektur som lar andre lag som mellomvarelaget fungere uten spesifikke maskinvarekonfigurasjoner for mikrokontrollerenhet (MCU). Denne strukturen forbedrer gjenbrukbarheten av bibliotekkoden og garanterer enkel enhetsportabilitet.
  • Board Support Package (BSP)-lag: er et sett med APIer som gir et programmeringsgrensesnitt for visse kortspesifikke perifere enheter (LED, brukerknapp osv.). Dette grensesnittet hjelper også med å identifisere den spesifikke kortversjonen og gir støtte for initialisering av nødvendig MCU-periferiutstyr og lesing av data.

Figur 1. X-CUBE-IOTA1 programvarearkitektur

X-CUBE-IOTA1 utvidelsesprogramvarepakke -- X-CUBE-IOTA1 utvidelse

Mappestruktur

Figur 2. X-CUBE-IOTA1 mappestrukturX-CUBE-IOTA1 utvidelsesprogramvarepakke -- mappestruktur

Følgende mapper er inkludert i programvarepakken:

  • Dokumentasjon: inneholder en kompilert HTML file generert fra kildekoden og detaljert dokumentasjon av programvarekomponentene og APIene
  • Drivere: inneholder HAL-driverne og de kortspesifikke driverne for støttede kort- og maskinvareplattformer, inkludert de for de innebygde komponentene og det CMSIS-leverandøruavhengige maskinvareabstraksjonslaget for ARM® Cortex®-M-prosessorserien
  • Mellomvare: inneholder biblioteker med FreeRTOS; Wi-Fi-administrasjon; kryptering, hashing, meldingsautentisering og digital signering (Cryptolib); sikkerhet på transportnivå (MbedTLS); IOTA Client API for å samhandle med Tangle
  • Prosjekter: inneholder eksamples for å hjelpe deg med å utvikle en IOTA DLT-klientapplikasjon for den støttede STM32-baserte plattformen (B-L4S5I-IOT01A), med tre utviklingsmiljøer, IAR Embedded Workbench for ARM (EWARM), RealView Mikrokontrollerutviklingssett (MDK-ARM) og STM32CubeIDE
API

Detaljert teknisk informasjon med full bruker-API-funksjon og parameterbeskrivelse er i en kompilert HTML file i "Dokumentasjon"-mappen.

Beskrivelse av IOTA-klientapplikasjonen

Prosjektet files for IOTA-klientapplikasjonen finnes i: $BASE_DIR\Projects\B-L4S5IIOT01A\Applications\IOTA-Client.
Byggeklare prosjekter er tilgjengelige for flere IDE-er.
Brukergrensesnittet leveres via seriell port og må konfigureres med følgende innstillinger:

Figur 3. Tera Term – TerminaloppsettX-CUBE-IOTA1 utvidelsesprogramvarepakke -- Seriell portoppsett

Figur 4. Tera Term – Seriell portoppsettX-CUBE-IOTA1 utvidelsesprogramvarepakke -- Terminaloppsett

Følg prosedyren nedenfor for å kjøre applikasjonen.
Trinn 1. Åpne en seriell terminal for å visualisere meldingsloggen.
Trinn 2. Angi Wi-Fi-nettverkskonfigurasjonen (SSID, sikkerhetsmodus og passord).
Trinn 3. Angi TLS rot-CA-sertifikater.
Trinn 4. Kopier og lim inn innholdet i Projects\B-L4S5I-IOT01A\Applications\IOTAClient\usertrust_thetangle.pem. Enheten bruker dem til å autentisere de eksterne vertene gjennom TLS.

Note: Etter å ha konfigurert parameterne, kan du endre dem ved å starte brettet på nytt og trykke på brukerknappen (blå knapp) innen 5 sekunder. Disse dataene vil bli lagret i Flash-minnet.

Figur 5. Wi-Fi-parameterinnstillinger

X-CUBE-IOTA1 utvidelsesprogramvarepakke -- Wi-Fi-parameterinnstillingerTrinn 5. Vent til meldingen "Trykk på hvilken som helst tast for å fortsette" vises. Skjermen blir deretter oppdatert med listen over hovedfunksjonene:

  • Send en generisk indekseringsmelding
  • Send en indekseringssensormelding (inkludert timetamp, temperatur og fuktighet)
  • Få balanse
  • Send transaksjon
  • Andre funksjoner

Figur 6. Hovedmeny
X-CUBE-IOTA1 utvidelsesprogramvarepakke -- Hovedmeny

Trinn 6. Velg alternativ 3 for å teste en av følgende funksjoner:

Få nodeinformasjon Få tips
Få utgang Utganger fra adresse
Få balanse Svarfeil
Få melding Send melding
Finn melding Test lommebok
Meldingsbygger Test krypto

Figur 7. Andre funksjonerX-CUBE-IOTA1 utvidelsesprogramvarepakke -Andre funksjoner

RELATERTE LENKER
For ytterligere detaljer om IOTA 1.5-funksjoner, se IOTA C-klientdokumentasjonen

Systemoppsettveiledning

Maskinvarebeskrivelse
STM32L4+ Discovery kit IoT node

B-L4S5I-IOT01A Discovery-settet for IoT-node lar deg utvikle applikasjoner for å koble direkte til skyservere.
Discovery-settet muliggjør et bredt spekter av applikasjoner ved å utnytte kommunikasjon med lav effekt, flerveis sensing og ARM®Cortex® -M4+ kjernebaserte STM32L4+-seriefunksjoner.
Den støtter Arduino Uno R3 og PMOD-tilkobling og gir ubegrensede utvidelsesmuligheter med et stort utvalg av dedikerte tilleggskort.

Figur 8. B-L4S5I-IOT01A Discovery-settX-CUBE-IOTA1 utvidelsesprogramvarepakke -- B-L4S5I-IOT01A Discovery ki

Maskinvareoppsett

Følgende maskinvarekomponenter er nødvendig:

  1. ett STM32L4+ Discovery-sett for IoT-node utstyrt med Wi-Fi-grensesnitt (bestillingskode: B-L4S5I-IOT01A)
  2. en USB type A til Mini-B USB Type B-kabel for å koble STM32-oppdagelseskortet til PC-en
Programvareoppsett

Følgende programvarekomponenter er nødvendig for å sette opp utviklingsmiljøet for å lage IOTA DLT-applikasjoner for B-L4S5I-IOT01A:

  • X-CUBE-IOTA1: fastvare og relatert dokumentasjon er tilgjengelig på st.com
  • utviklingsverktøykjede og kompilator: STM32Cube utvidelsesprogramvare støtter følgende miljøer:
    – IAR Embedded Workbench for ARM ® (EWARM) verktøykjede + ST-LINK/V2
    – EkteView Mikrokontroller Development Kit (MDK-ARM) verktøykjede + ST-LINK/V2
    – STM32CubeIDE + ST-LINK/V2
Systemoppsett

B-L4S5I-IOT01A Discovery-kortet tillater utnyttelse av IOTA DLT-funksjonene. Brettet integrerer ST-LINK/V2-1 debugger/programmerer. Du kan laste ned den relevante versjonen av ST-LINK/V2-1 USB-driveren på STSW-LINK009.

Revisjonshistorikk

Tabell 2. Dokumentrevisjonshistorikk

Dato Revisjon Endringer
13. juni-19 1 Første utgivelse
18. juni-19 2 Oppdatert seksjon 3.4.8.1 TX_IN og TX_OUT, seksjon 3.4.8.3 Sende data gjennom nullverdi
transaksjoner og avsnitt 3.4.8.4 Sende midler gjennom overføringstransaksjoner.
6. mai-21 3 Oppdatert introduksjon, del 1 Akronymer og forkortelser, del 2.1 Overview, Seksjon 2.1.1 IOTA 1.0, Seksjon 2.1.3 Proof-of-Work, Seksjon 2.2 Arkitektur, Seksjon 2.3 Mappestruktur, Seksjon 3.2 Maskinvareoppsett, Seksjon 3.3 Programvareoppsett og Seksjon 3.4 Systemoppsett.
Fjernet seksjon 2 og erstattet av en lenke i introduksjonen.
Fjernet del 3.1.2 Transaksjoner og pakker, del 3.1.3 Konto og signaturer, del
3.1.5 Hashing. Seksjon 3.4 Hvordan skrive applikasjoner og relaterte underseksjoner, Seksjon 3.5 IOTALightNode applikasjonsbeskrivelse og relaterte underseksjoner, og Seksjon 4.1.1 STM32
Nucleo-plattform lagt til seksjon 2.1.2IOTA 1.5 – Chrysalis, seksjon 2.5 Beskrivelse av IOTA-klientapplikasjonen, seksjon 2.4 API og seksjon 3.1.1 STM32L4+ Discovery kit IoT-node.

 

VIKTIG MERKNAD - LES NØYE

STMicroelectronics NV og dets datterselskaper (“ST”) forbeholder seg retten til å gjøre endringer, rettelser, forbedringer, modifikasjoner og forbedringer av ST-produkter og / eller til dette dokumentet når som helst uten forvarsel. Kjøpere bør innhente den siste relevante informasjonen om ST-produkter før de bestiller. ST-produkter selges i henhold til STs salgs- og salgsbetingelser på plass på tidspunktet for ordrebekreftelse.

Kjøperne er eneansvarlige for valg, valg og bruk av ST-produkter, og ST påtar seg intet ansvar for applikasjonshjelp eller utforming av kjøpernes produkter.
Ingen lisens, uttrykt eller underforstått, til noen immaterielle rettigheter er gitt av ST heri.
Videresalg av ST-produkter med andre bestemmelser enn informasjonen som er angitt her, vil ugyldiggjøre enhver garanti gitt av ST for slikt produkt.
ST og ST-logoen er varemerker for ST. For ytterligere informasjon om ST-varemerker, se www.st.com/trademarks. Alle andre produkt- eller tjenestenavn tilhører deres respektive eiere.
Informasjonen i dette dokumentet erstatter og erstatter informasjon som tidligere er gitt i tidligere versjoner av dette dokumentet.
© 2021 STMicroelectronics – Alle rettigheter forbeholdt

Dokumenter / Ressurser

ST X-CUBE-IOTA1 utvidelsesprogramvarepakke for STM32Cube [pdfBrukerhåndbok
ST, X-CUBE-IOTA1, Utvidelse, Programvarepakke, for, STM32Cube

Referanser

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket *