Finn et kompatibelt motstykke for konstruksjonskravene med svært integrerte Arm® Cortex®-mikrokontrollere

Av Stephen Evanczuk

Bidrag fra DigiKeys nordamerikanske redaktører

Utviklere står overfor mange utfordringer forbundet med å oppfylle et økende antall krav til smarte produkter, i bruksområder som inkluderer forbrukere, industri, smartbyer og helsetjenester. Hvert bruksområde har et unikt sett med krav til ytelse, sikkerhet, ultralavt energiforbruk, trådløs konnektivitet over lange avstander og kostnader. Altfor ofte er utviklere tvunget til å inngå kompromisser med hensyn til disse kravene på grunn av dårlig samsvar mellom utrustningen og egenskapene til tilgjengelige mikrokontrollerløsninger.

Denne artikkelen introduserer et sett med prosessorløsninger fra STMicroelectronics som kan levere egnet batterilevetid, sikkerhet, trådløs konnektivitet og ytelseskombinasjoner, som alle er avgjørende for suksess på tvers av et bredt spekter av bruksområder.

Oppfylle strenge sikkerhetskrav

STMicroelectronics STM32H7R/S bootflash-mikrokontrollere (figur 1) tilbyr høy ytelse, grafikk, sikkerhet og reduserte materialkostnader (BOM – bill of materials) som kreves i mange smartprodukter for utrustninger i industrien, forbrukerelektronikk, smartbyer og helsetjenester. Disse mikrokontrollerne er basert på en 600 megahertz (MHz) Arm® Cortex®-M7-prosessor med en flytetallsbrikke (FPU – floating-point unit) som har dobbel presisjon, og de har integrert grafikk, sikkerhetsundersystemer og et omfattende sett med periferiutstyr og tilkoblingsmuligheter.

Skjema over STMicroelectronics STM32H7R/S bootflash-mikrokontrollereFigur 1: STM32H7R/S bootflash-mikrokontrollere integrerer en Arm Cortex-M7 med høy ytelse og et komplett sett med periferiutstyr, funksjonsblokker og spesialfunksjoner som trengs for å levere sikre smartprodukter. (Bildekilde: STMicroelectronics)

I tillegg til prosessorens L1-hurtigbuffer, som består av 32 kilobyte (kB) instruksjonscache og 32 kB datahurtigbuffer, kommer disse mikrokontrollerne med 620 kB SRAM (static random-access memory), 64 kB integrert flashminne og flere tilkoblingsmuligheter for høyhastighetstilgang til eksterne minner. Denne kombinasjonen av SRAM, integrert flashminne og ekstern minnetilgang med XiP-funksjonalitet (XiP – execute-in-place) gir utviklere en høy grad av fleksibilitet når de implementerer integrerte systemer med høy ytelse og sikkerhet.

For å være trygg på sikkerheten i programmer som kjører i eksternt minne, integrerer STM32H7S-mikrokontrollere også tre minnekrypteringsmotorer (MCE – memory cipher engine) som utfører kontinuerlig kryptering og dekryptering på eksterne ikke-flyktige eller flyktige minner, med programmert tilgangskontroll til så mange som fire forskjellige regioner for hver MCE. STM32H7S-mikrokontrollere, kombinert med flere maskinvarebaserte sikkerhetsfunksjoner som differensiell strømanalyse og beskyttelse mot sidekanalangrep, er sertifisert i henhold til SESIP og PSA Assurance Level 3.

For å sikre pålitelig ytelse for tidskritiske oppgaver, for eksempel rutiner for avbruddstjenester, tilordnes noe av SRAM-minnet til mikrokontrollerens TCM-grensesnitt (TCM – tightly coupled memory), noe som gir minne med null-ventetilstand for kritiske instruksjoner og data. For å sikre systemintegritet, kombinerer mikrokontrolleren flere sikkerhetsfunksjoner med det integrerte flashminnet for å muliggjøre sikker oppstart (secure boot) og kontroll av programintegritet, noe som gir en RoT (root of trust) for system- og applikasjonsprogramvare som kjører i minne på-brikke (on-chip) eller utenfor-brikke (off-chip). Når disse kombineres med egnede maskinvarebaserte beskyttelsesmekanismer, gir denne bruken av integrert flashminne for lagring av den sikre oppstartslasteren (trusted bootloader) betydelige fleksibilitetsfordeler sammenlignet med bruken av skrivebeskyttet minne (ROM – read-only memory) i tradisjonelle mikrokontrollere.

Flere baner for sikker oppstart (Secure Boot)

For å oppnå RoT-nivået som trengs for systemsikkerhet, er sikker oppstart avhengig av pålitelig uforanderlig kode som alltid kjøres umiddelbart etter tilbakestilling av systemet. Denne koden bekrefter at kun klarert programvare kjører i den neste fasen av systemoppstartssekvensen. Med STM32H7R/S-mikrokontrollere har utviklere flere baner for sikker oppstart når de bygger pålitelige systemer. De kan bruke forhåndsbygd RoT-fastvare eller selv styre oppstartssekvensen (figur 2).

Skjema over oppstartsbaner for STM32H7R/S-mikrokontrollere fra STMicroelectronics (klikk for å forstørre)Figur 2: STM32H7R/S-mikrokontrollere tilbyr flere oppstartsbaner som er utviklet for å forenkle utviklingen. (Bildekilde: STMicroelectronics)

Etter systemtilbakestillingen begynner alle STM32H7R/S-mikrokontrollere oppstartssekvensen med å kjøre den sikre RSS-tjenesten (RSS – root secure services) som befinner seg i beskyttet systemflashminne. Påfølgende trinn i oppstartssekvensen avhenger av mikrokontrollertypen og utviklerens valg av oppstartsbane. STM32H7R/S-mikrokontrollerne bruker HDPL-mekanismen (HDPL – Hide Protection Level) sin ved hver oppstartsbane for å sikre tidsmessig isolasjon av hvert oppstartsnivå. Etter hvert som oppstartssekvensen går fra ett oppstartsnivå til det neste, økes HDPL-telleren trinnvist og ressursene som er knyttet til det forrige oppstartsnivået skjules fra det nåværende nivået.

Opprettholde RoT gjennom hele oppstartssekvensen

I oppstartsbanen for STM32H7R-baserte produksjonssystemer, kjøres RSS umiddelbart etter tilbakestillingen av systemet. RSS kjører originalprodusentens (OEM – original equipment manufacturer) iRoT-fastvare (iRoT – immutable RoT) som befinner seg i brukerens flashminne. Fordi HDPL-en økes trinnvist på dette neste nivået, forblir RSS skjult fra OEMiRoT-fastvaren, som håndterer neste trinn i oppstartssekvensen. Hvis programmet er utviklet for å støtte oppdaterbar uRoT-fastvare (uRoT – updateable RoT), vil OEMiRoT-fastvaren kjøre fra eksternt minne. I den siste fasen av oppstartssekvensen kjører OEMiRoT-fastvaren (eller valgfri OEMuRoT-fastvare) programkoden. HDPL sørger for at RSS, OEMiRoT og den valgfrie OEMuRoT er skjult fra programmet.

STM32H7S-baserte produksjonssystemer kan konfigureres til å følge en oppstartsbane som ligner oppstartsbanen til STM32H7R-systemer, slik at utvikleren får full kontroll over oppstartsprosessen. Med STM32H7S-mikrokontrollere kan utviklere også velge en svært sikker bane som påkaller den forhåndsbygde STMicroelectronics iRoT-fastvaren (STiRoT) som befinner seg i beskyttet systemflashminne.

I den STiRoT-aktiverte oppstartsbanen, som er en rutine (iLoader) som befinner seg i beskyttet innebygd flashminne, lastes koden for neste oppstartsnivå inn i intern SRAM. STiRoT kontrollerer deretter integriteten og autentisiteten til denne koden før den kan kjøres. For ett-trinns oppstartsbaner laster iLoader programkoden inn i SRAM. For totrinns oppstartsbaner laster iLoader OEMuRoT fra ekstern flash inn i SRAM.

Når den befinner seg i intern SRAM, kontrolleres programkoden (eller OEMuRoT-fastvaren) for integritet og autentisitet, uten at det er noen risiko for angrep under kodeverifiseringen som befinner seg i eksternt minne. Når den er bekreftet, utfører OEMuRoT integritets- og autentisitetskontroller på programkoden før programmet kjøres. Utviklere kan enkelt utvide denne totrinns oppstartsbanen for å bekrefte oppdateringer av programkode eller til og med OEMuRoT-fastvaren (figur 3).

Skjema over STMicroelectronics STM32H7S-mikrokontrollere (klikk på for å forstørre)Figur 3: STM32H7S-mikrokontrollere muliggjør sikker oppdatering og sikker oppstart (Secure Boot) gjennom en flertrinnsprosess som er utformet for å sikre integriteten og autentisiteten til koden gjennom hvert trinn i prosessen. (Bildekilde: STMicroelectronics)

Under normal drift i produksjonssystemer, er det innebygde flashminnet i STM32H7R/S-mikrokontrollere i en lukket tilstand, der RoT-fastvaren klargjøres og gyldig oppstartsoppføring (boot entry) håndheves. Disse mikrokontrollerne har i tillegg totalt fire PRODUCT_STATE-instanser (produkttilstander) som er utformet for å støtte hele livssyklusen til produktet (figur 4).

PRODUCT_STATE Velge PRODUCT_STATE Beskrivelse
Åpen (open) NVSTATE = OPEN Denne tilstanden muliggjør produktutvikling, ettersom den sørger for kodefeilsøking. Ved å bruke boot-pinnen (oppstart-pinne) kan oppstartslasteren startes.
Klargjøring (provisioning) NVSTATE = CLOSE
OEM_PROVD=!0xB4
og/eller
DBG_AUTH = Not set (!0xB4, !0x51, !0x8A)
Denne tilstanden muliggjør produktklargjøring (delvis eller fullstendig). Den gjør det mulig å starte sikker fastvareinstallering, eller oppstartslaster (boot loader) for å klargjøre produktet. Oppstart fra SRAM er ikke tillatt.
Lukket (closed) NVSTATE = CLOSE
OEM_PROVD=0xB4
DBG_AUTH=0x51 eller 0x8A
Denne tilstanden antar at produktkonfigurasjonen er ferdig. Den muliggjør støtte for den innledende autentiseringen for reparasjon ute i felten (les den dedikerte programmerknaden).
Låst (locked) NVSTATE = CLOSE
OEM_PROVD=0xB4
DBG_AUTH=0xB4
Denne tilstanden antar at produktkonfigurasjonen ikke er tillatt. Produktet er definitivt i denne tilstanden.

Figur 4: STM32H7R/S-mikrokontrollere er virksomme i én av fire PRODUCT_STATE-instanser (produkttilstander) som er utformet for å støtte hele livssyklusen til produktet. (Bildekilde: STMicroelectronics)

Utviklere kan kontrollere PRODUCT_STATE på tre måter:

  • Ikke-flyktig tilstand (NVSTATE), som setter flashminnet i en åpen eller lukket tilstand
  • OEM-klargjort (OEM_PROVD), som definerer stabiliteten til det sikre HDP-området (HDP – hide protection) som sørger for at kode som kjøres i dette området forblir skjult etter oppstart
  • Feilsøke autentiseringsmåte (DBG_AUTH), som definerer måten som brukes til å åpne enhetsfeilsøkingen

Med disse fire tilstandene støtter STM32H7R/S-mikrokontrollere sikkerhetskravene for hver kritiske fase av produktets livssyklus: produktutvikling, produktproduksjon og feltdistribusjon (figur 5).

Bilde av flytskjema for produktutviklingFigur 5: Etter hvert som et produkt beveger seg fra utvikling og produksjon til felten, kan STM32H7R/S-mikrokontrollere beskytte sensitiv kode og data i integrert flashminne, samtidig som de tilbyr autentisert feilsøkingstilgang når det er nødvendig. (Bildekilde: STMicroelectronics)

I praksis tilbyr feilsøkingsautentisering en kraftig sikkerhetsfunksjon som er utviklet for å møte de praktiske utfordringene forbundet med støtte under produktets livssyklus. For produksjonssystemer som fungerer i lukket tilstand, kan utviklere bruke en godkjenningsprotokoll som gjør det mulig for en sikker feilsøker å gjenåpne tilgang uten å kompromittere RoT-en i en begrenset feilsøkingsøkt. Ved full regresjonsfeilsøking garanteres ikke kode- og datasikkerhet.

Dekke behovet for forbedrede brukergrensesnitt i smarte produkter

Selv om sikkerhet fortsatt er avgjørende, er smarte produkter avhengig av stadig mer sofistikerte grafiske brukergrensesnitt (GUI – graphical user interface). STM32H7R/S-mikrokontrollere oppfyller dette kravet ved å bruke integrerte grafikkakseleratorer. Disse inkluderer Chrom-ART-akseleratoren i STM32H7R3/S3-mikroprosessorer og NeoChrom-grafikkprosesseringsenheten (GPU – graphics processing unit) i STM32H7R7/S7-mikroprosessorer. Mens 2D Chrom-ART-akseleratoren og 2,5D NeoChrom-grafikkprosessoren støtter flere formater med tegne- og blitterhandlinger, støtter NeoChrom-grafikkprosessoren handlinger som kreves i teksturavbildning (texture mapping) (figur 6).

Grafisk funksjon Chrom-ART NeoChrom GPU
Støttede formater ARGB8888, ARGB4444, ARGB1555, RGB888, RGB565
A8, A4, L8
AI44, AI88
CLUT (256 entry), YUV
RGVA8888, ARGB8888
RGBX8888, XRGB8888
RGB888, RGB565, RGBA55551
A8, A4, A2, A1
Compressed TSc4, TSc6 og TSc6A
Kommandoliste-basert Nei Ja
Tegning Rektangelfylling Rektangelfylling
Piksel-, linje-, trekant-, firkanttegning
8xMSAA-antialiasing
Blitter-funksjonalitet Kopiere
Alfablanding
Konvertering av pikselformat
Kopiere
Alfablanding, fargekoding
Konvertering av pikselformat
Teksturavbildning Nei Rotasjon i alle vinkler
Skalering
Speiling
Korrekte projeksjoner i 3D-perspektiv
Teksturavbildning med bilineær og punktbasert sampling

Figur 6: Chrom-ART-grafikkakseleratoren i STM32H7R3/S3-mikroprosessorer og NeoChrom-grafikkprosessoren i STM32H7R7/S7-mikroprosessorer gir grafikkytelsen og funksjonaliteten som trengs i grafiske brukergrensesnitt for smarte produkter. (Bildekilde: STMicroelectronics)

For evaluering og utvikling tilbyr STMicroelectronics sitt NUCLEO-H7S3L8 STM32 Nucleo-144-utviklingskort for STM32H7R3 og STM32H7S78-DK Discovery-evalueringssettet for STM32H7S7.

Nucleo-144-kortet, som er konstruert for rask utvikling av prototyper, har en integrert ST-LINK-feilsøker/programmeringsenhet, og tilbyr lysdioder, trykknapper og flere korttilkoblingsalternativer. STM32H7S78-DK Discovery-evalueringssettet tilbyr Wi-Fi, flere lysdioder og trykknapper, en integrert STLINK-V3EC-feilsøker/programmeringsenhet og flere kortkontakter, for eksempel to USB Type-C®-kontakter og en Ethernet RJ45-kontakt.

For programvareutvikling tilbyr STMicroelectronics STM32Cube MCU-pakken som en del av STM32Cube-økosystemet. I tillegg til HAL-moduler (HAL – Hardware Abstraction Layer), kortstøttepakker (BSP – Board Support Packages) og programmeringsgrensesnitt (API – Application Programming Interface) på lavt nivå, tilbyr STM32Cube MCU-pakken mellomvarekomponenter, konnektivitetsstakker og eksempelkode. For grafikkutvikling tilbyr selskapet det grafiske rammeverket X-CUBE-TOUCHGFX, som omfatter:

  • TouchGFX Designer-verktøyet for utvikling og simulering av grafikkprogrammer
  • Det maskinvareakselererte grafikkbiblioteket TouchGFX Engine
  • TouchGFX Generator, som er et STM32CubeMX-plugin som gjør det mulig for utviklere å konfigurere og generere TouchGFX-abstraksjonslaget som brukes av TouchGFX Engine til å få tilgang til den underliggende maskinvaren og operativsystemet

Sikre forlenget batterilevetid

Minimalt strømforbruk og maksimal batterilevetid fortsetter å være viktige faktorer for konstruksjoner i mange bruksområder. Mikrokontrollere fra STMicroelectronics i STM32U0-serien er utviklet for å levere energibesparelser og forlenget batterilevetid, noe som kreves i mange grunnleggende industrier, medisinske bransjer, smartmålere og forbrukerprodukter. Mikrokontrollere i STM32U0 MCU-serien er bygget rundt en 56 MHz ArmCortex-M0+-prosessor med svært lavt strømforbruk, som har tre forskjellige familier som gjør det mulig for utviklere å velge den optimale konfigurasjonen av SRAM, flashminne og eksterne enheter som kreves for den gitte konstruksjonen.

STM32U031-familien tilbyr den mest kompakte konfigurasjonen med 12 kB SRAM, opptil 64 kB flashminne, flere timere, analoge periferienheter og tilkoblingsalternativer (figur 7).

Bilde av tre familier i STMicroelectronics STM32U0 MCU-serienFigur 7: De tre familiene i STM32U0 MCU-serien bygger på et stadig økende sett av funksjoner som er å finne i STM32U031 MCU-familien. (Bildekilde: STMicroelectronics)

Ved å utvide funksjonene i STM32U031-familien, legger STM32U073-familien til en integrert LCD-styringsenhet, flere tilkoblingskanaler og analoge periferienheter, samtidig som den tilbyr 40 kB SRAM og opptil 256 kB flashminne. STM32U083-familien bygger videre på disse funksjonene ved å legge til en AES-maskinvareakselerator (AES – Advanced Encryption Standard).

I tillegg til integrasjon på høyt nivå, har alle mikrokontrollere i STM32U0-serien svært lavt strømforbruk. I kjøremodus (run mode) bruker de bare 52 mikroampere per megahertz (μA/MHz) mens de er virksomme med den interne LDO-regulatoren (LDO – low-dropout – lavt spenningsfall) deres.

Utviklere kan velge mellom flere lavenergimoduser, inkludert tre stoppmoduser, for å minimere strømforbruk i batteridrevne utrustninger. I stoppmodus med det laveste strømforbruket, for eksempel, trekker STM32U031-mikrokontrollere bare 630 nanoampere (nA) med sanntidsklokke (RTC – real-time clock) eller 515 nA uten RTC. I samme stoppmodus krever STM32U073- og STM32U083-mikrokontrollere bare 825 nA med RTC eller 695 nA uten RTC. Likevel kan alle tre familiene i STM32U0-serien, som kjører med en vekkeklokke (wake-up clock) på 24 MHz, nå kjøremodus fra denne driftsmodusen med det laveste strømforbruket på bare 12,0 mikrosekunder (µs) i flashminnet og 7,67 µs i SRAM-minnet.

Til tross for driften med svært lavt strømforbruk, og takket være den integrerte adaptive sanntidsminneakseleratoren (ART – adaptive real-time), oppnår disse mikrokontrollerne ytelse som tilsvarer kjøring i tilstander med null ventetid fra flashminnet, ved en prosessorfrekvens på 56 MHz.

For utviklingsstøtte tilbyr STMicroelectronics NUCLEO-U031R8 STM32U031-baserte evalueringskort, NUCLEO-U083RC STM32U083-baserte evalueringskort og STM32U083C-DK STM32U083-baserte Discovery-evalueringssett. I likhet med andre enheter i STM32-familien, tilbyr STM32Cube MCU-pakken for selskapets STM32Cube-økosystem HAL-moduler, BSP-er, lavlag-API-er, mellomvare, konnektivitetsstakker og eksempelkode.

Levere trådløs konnektivitet med lang rekkevidde

Effektive konstruksjoner med trådløs sub-gigahertz (GHz) konnektivitet over lange distanser, er avgjørende i tingenes Internett-utrustninger for smartbyer, landbruk, fjernmåling, fjerndeteksjon og industrielle systemer. Mange av disse utrustningene må opprettholde pålitelig kommunikasjon til tross for forstyrrelser fra kilder i omgivelsene, for eksempel strømnettet eller maskineri. Dette peker på bruken av interferensbestandig LoRaWAN-konnektivitet (LoRaWAN – Long-Range Wide Area Network).

STM32WL5MOCH6TR-modulen fra STMicroelectronics tilbyr en LoRaWAN-sertifisert løsning som kan være virksom i Europa, Asia og Amerika. Denne multiregionale driftskapasiteten ligger i radiomodulens støtte for europeiske standarder på 868 MHz og nordamerikanske standarder på 915 MHz, som støtter høyere effekt. Modulens støtte for flere moduleringsmetoder og det lineære frekvensområdet fra 150 til 960 MHz, muliggjør støtte for verdensomspennende drift med ulike standard og proprietære kommunikasjonsprotokoller som Sigfox, W-MBUS og mioty.

STM32WL5MOC-modulen, som er basert på en tokjerners arkitektur som kombinerer en Arm Cortex-M0+ og en Arm Cortex-M4, kombinerer sin fleksible transceiver, opptil 64 kB SRAM og opptil 256 kB flashminne med et omfattende sikkerhetsundersystem, timere, analoge periferienheter, tilkoblingsmuligheter, styringsfunksjoner og passive komponenter for den integrerte ikke-lineære strømforsyningen (SMPS – switch mode power supply). I tillegg er STSAFE-A100 Secure Element fra STMicroelectronics inkludert i STM32WL5MOCH6STR-varianten (figur 8).

Skjema over STMicroelectronics STM32WL5MOC-modulenFigur 8: STM32WL5MOC-modulen er en ferdigløsning for sub-GHz-konnektivitet, som kombinerer dobbeltkjernearkitekturen med en fleksibel radio, sikkerhetsfunksjoner, flere blokkoblinger og passive komponenter. (Bildekilde: STMicroelectronics)

STM32WL5MOC-modulens omfattende integrerte funksjonalitet og LoRaWAN-sertifisering gir konstruktører en optimalisert maskinvareferdigløsning for utrustninger med lang trådløs rekkevidde. STMicroelectronics fremskynder videre utviklingen med et omfattende sett ressurser, for eksempel B-WL5M-SUBG1-utvidelseskortet, som kombinerer en STM32WL5MOC-modul, 4 megabit (Mb) flashminne, 256 kilobit (kb) EEPROM, STMicroelectronics MEMS-sensorer (MEMS – microelectromechanical systems), flere kortkontakter, lysdioder og trykknapper. For programvareutvikling støtter STM32CubeWL MCU-pakken kort i STM32WL-serien som en del av STM32Cube-økosystemet.

Konklusjon

Smarte produkter for forbrukere, industri, helsevesen og andre bruksområder har nivåer av sikkerhet, strømforbruk, konnektivitet og konstruksjonskompleksitet som sjelden samsvarer med egenskapene til en enkelt mikrokontroller. Mikrokontrollere i STM32-serien gir konstruktører et bredt utvalg av prosesseringsalternativer for å levere et optimalt motstykke på tvers av ulike konstruksjonskrav. Kort og programvare støtter prosessorene og forenkler utviklingen.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Om skribenten

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk has more than 20 years of experience writing for and about the electronics industry on a wide range of topics including hardware, software, systems, and applications including the IoT. He received his Ph.D. in neuroscience on neuronal networks and worked in the aerospace industry on massively distributed secure systems and algorithm acceleration methods. Currently, when he's not writing articles on technology and engineering, he's working on applications of deep learning to recognition and recommendation systems.

Om denne utgiveren

DigiKeys nordamerikanske redaktører