Effectiever aansluiten bij toepassingsvereisten met hooggeïntegreerde Arm® Cortex® MCU’s
Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey
2024-06-04
Ontwikkelaars worden geconfronteerd met veel uitdagingen om aan een groeiend aantal vereisten voor slimme producten te voldoen in toepassingen voor onder andere consumenten, industrie, slimme steden en de gezondheidszorg. Elke toepassing heeft zijn eigen unieke vereisten wat betreft prestaties, beveiliging, superlaag stroomverbruik, long-range draadloze connectiviteit en kosten. Maar al te vaak worden ontwikkelaars gedwongen in te leveren op deze vereisten vanwege een slechte match tussen de toepassing en de mogelijkheden van beschikbare microcontrollerunits (MCU’s).
Dit artikel introduceert een reeks processoroplossingen van STMicroelectronics die de geschikte prestatiecombinaties, batterijlevensduur, beveiliging en draadloze connectiviteit kunnen leveren die cruciaal zijn voor ontwerpsucces in een breed scala aan toepassingen.
Aan strenge beveiligingseisen voldoen
De STM32H7R/S bootflash-MCU’s (afbeelding 1) van STMicroelectronics bieden de hoge prestaties, graphics, beveiliging en lagere materiaallijst (BOM) in veel slimme producten voor industriële toepassingen, consumentenelektronica, slimme steden en de gezondheidszorg. Deze MCU’s zijn gebaseerd op een Arm® Cortex®-M7 processor van 600 megahertz (MHz) met een dubbelprecisie floating-point unit (FPU) en hebben geïntegreerde grafische mogelijkheden, beveiligingssubsystemen en een uitgebreide set peripherals en aansluitingsinterfaces.
Afbeelding 1: STM32H7R/S bootflash-MCU’s integreren een krachtige Arm Cortex-M7 met een volledige set peripherals, functionele blokken en gespecialiseerde mogelijkheden die nodig zijn om beveiligde slimme producten te leveren. (Bron afbeelding: STMicroelectronics)
Naast de L1-cache van de processors die bestaat uit 32 kilobyte (kB) instructiecache en 32 kB datacache, worden deze MCU’s geleverd met 620 kB statisch random-access geheugen (SRAM), 64 kB ingebouwd flashgeheugen en meerdere interfaces voor snelle toegang tot externe geheugens. Deze combinatie van SRAM, ingebed flashgeheugen en externe geheugentoegang met execute-in-place (XiP) biedt ontwikkelaars een hoge mate van flexibiliteit bij het implementeren van krachtige en veilige embedded systems.
Om de veiligheid van toepassingen te garanderen die in extern geheugen draaien, zijn in STM32H7S-MCU’s ook drie geheugencodeermachines (MCE) geïntegreerd die on-the-fly encryptie en decryptie uitvoeren op externe niet-vluchtige of vluchtige geheugens, met geprogrammeerde toegangscontrole tot maar liefst vier verschillende regio's voor elke MCE. In combinatie met extra op hardware gebaseerde beveiligingsfuncties, waaronder differentiële vermogensanalyse en bescherming tegen side-channel aanvallen, zijn STM32H7S-MCU’s gecertificeerd voor SESIP en PSA Assurance Level 3.
Voor betrouwbare prestaties van tijdkritische taken zoals interruptserviceroutines wordt een deel van het SRAM toegewezen aan de TCM-interface (tight coupled memory) van de MCU, wat zorgt voor geheugen zonder wachttijd voor kritieke instructies en gegevens. Om de integriteit van het systeem te waarborgen, combineert de MCU meerdere beveiligingsfuncties met de ingebouwde flash om veilig opstarten en integriteitscontrole van toepassingen mogelijk te maken, waardoor een root of trust (RoT) ontstaat voor systeem- en toepassingssoftware die in het on-chip of off-chip geheugen draait. Samen met geschikte hardwarematige beschermingsmechanismen biedt dit gebruik van ingebed flashgeheugen voor het opslaan van de trusted bootloader aanzienlijke voordelen in flexibiliteit vergeleken met het gebruik van ROM (read-only memory) in traditionele MCU’s.
Meerdere manieren voor veilig opstarten
Om de RoT te bieden die essentieel is voor de veiligheid van het systeem, vertrouwt veilig opstarten op vertrouwde onveranderlijke code die altijd onmiddellijk na het resetten van het systeem wordt uitgevoerd. Deze code controleert of in de volgende fase van de opstartprocedure van het systeem alleen vertrouwde software draait. Met STM32H7R/S-MCU’s hebben ontwikkelaars meerdere mogelijkheden om veilig op te starten bij het bouwen van trusted systems. Ze kunnen voorgebouwde RoT-firmware gebruiken of zelf de opstartsequentie bepalen (afbeelding 2).
Afbeelding 2: STM32H7R/S-MCU’s bieden meerdere opstartpaden om de ontwikkeling te vereenvoudigen. (Bron afbeelding: STMicroelectronics)
Na een systeemreset beginnen alle STM32H7R/S-MCU’s met de opstartprocedure door de trusted root secure services (RSS) uit te voeren die zich in het beveiligde flashgeheugen van het systeem bevinden. De daaropvolgende stappen in de opstartsequentie zijn afhankelijk van het type MCU en de keuze van de ontwikkelaar voor het opstartpad. Bij elk opstartpad gebruiken STM32H7R/S-MCU’s hun HDPL-mechanisme (Hide Protection Level) om temporele isolatie van elk opstartniveau te garanderen. Terwijl de opstartsequentie van het ene opstartniveau naar het volgende gaat, wordt de HDPL-teller verhoogd en worden bronnen die geassocieerd zijn met het vorige opstartniveau voor het huidige niveau verborgen.
RoT tijdens de volledige opstartprocedure behouden
In het opstartpad voor STM32H7R-gebaseerde productiesystemen wordt RSS onmiddellijk na het resetten van het systeem uitgevoerd. RSS voert de immutable RoT (iRoT) firmware van de OEM (Original Equipment Manufacturer) uit, die zich in het flashgeheugen van de gebruiker bevindt. Omdat de HDPL op dit volgende niveau wordt verhoogd, blijft RSS verborgen voor de OEMiRoT-firmware, die de volgende stap in de opstartsequentie afhandelt. Als de toepassing is ontworpen om updatable RoT (uRoT) firmware te ondersteunen, wordt de OEMuRoT-firmware door de OEMiRoT vanuit het externe geheugen uitgevoerd. In de laatste fase van de OEMuRoT-firmware voert de OEMiRoT-firmware (of optionele OEMuRoT) de applicatiecode uit. De HDPL zorgt dat RSS, de OEMiRoT en de optionele OEMuRoT allemaal verborgen blijven voor de toepassing.
Op STM32H7S gebaseerde productiesystemen kunnen worden geconfigureerd om een opstartpad te volgen dat vergelijkbaar is met dat van STM32H7R-systemen, waarbij de volledige controle over het opstartproces aan de ontwikkelaar wordt overgelaten. Met STM32H7S-MCU’s kunnen ontwikkelaars ook kiezen voor een zeer veilig pad dat gebruikmaakt van de vooraf gebouwde iRoT (STiRoT)-firmware van STMicroelectronics in het beveiligde flashgeheugen van het systeem.
In het opstartpad dat geschikt is voor STiRoT laadt een routine (iLoader), dat zich in het beschermde ingebedde flashgeheugen bevindt, code voor het volgende opstartniveau in intern SRAM. STiRoT controleert vervolgens de integriteit en authenticiteit van die code voordat deze wordt uitgevoerd. Voor eenfasige opstartpaden laadt iLoader de applicatiecode in SRAM. Voor tweefasige opstartpaden laadt iLoader OEMuRoT vanaf een extern flashgeheugen in SRAM.
Als de applicatiecode (of OEMuRoT-firmware) zich eenmaal in intern SRAM bevindt, wordt de code gecontroleerd op integriteit en authenticiteit zonder het risico van een aanval tijdens de verificatie van code die zich in het externe geheugen bevindt. Na validatie voert de OEMuRoT integriteits- en authenticiteitscontroles uit op de applicatiecode voordat de applicatie wordt uitgevoerd. Ontwikkelaars kunnen dit tweefasige opstartpad eenvoudig uitbreiden om updates van applicatiecode of zelfs van de OEMuRoT-firmware te valideren (afbeelding 3).
Afbeelding 3: Met STM32H7S-MCU’s is beveiligd updaten en veilig opstarten mogelijk via een meerstappenproces dat is ontworpen om de integriteit en authenticiteit van code te garanderen bij elke stap in het proces. (Bron afbeelding: STMicroelectronics)
Bij normaal gebruik in productiesystemen bevindt het ingebouwde flashgeheugen in STM32H7R/S-MCU’s zich in een gesloten toestand, waarbij RoT-firmware wordt geleverd en een geldige opstartingang wordt afgedwongen. Deze MCU’s bieden bovendien vier PRODUCT_STATEs die zijn ontworpen ter ondersteuning van de volledige productlevenscyclus (afbeelding 4).
|
Afbeelding 4: STM32H7R/S-MCU’s werken in een van de vier PRODUCT_STATEs die zijn ontworpen om de gehele levenscyclus van het product te ondersteunen. (Bron afbeelding: STMicroelectronics)
Ontwikkelaars kunnen de PRODUCT_STATE op drie manieren regelen:
- Niet-vluchtige status (NVSTATE), die het flashgeheugen in een open of gesloten status zet.
- OEM geprovisioneerd (OEM_PROVD), die de stabiliteit van het beveiligde HDP-gebied (secure hide protection) definieert dat ervoor zorgt dat code die in dit gebied wordt uitgevoerd, na het opstarten verborgen blijft.
- Debug-authenticatiemethode (DBG_AUTH), die de methode definieert die wordt gebruikt om de debugfunctie van het apparaat te openen.
Met deze vier states ondersteunen STM32H7R/S-MCU’s de beveiligingseisen van elke kritieke fase van de productlevenscyclus: productontwikkeling, productproductie en toepassing in het veld (afbeelding 5).
Afbeelding 5: Terwijl een product van ontwikkeling en fabricage naar het veld gaat, kunnen STM32H7R/S-MCU’s gevoelige code en gegevens in ingebed flashgeheugen beschermen terwijl ze zo nodig geverifieerde debugtoegang bieden. (Bron afbeelding: STMicroelectronics)
In de praktijk biedt debugauthenticatie een krachtige beveiligingsfunctie die is ontworpen voor de praktische uitdagingen van productlevenscyclusondersteuning. Voor productiesystemen in de gesloten state, kunnen ontwikkelaars een authenticatieprotocol gebruiken waarmee een beveiligde debugger opnieuw toegang kan krijgen zonder in te leveren op de RoT in een beperkte debugsessie. Bij volledig regressie debuggen is de veiligheid van code en gegevens niet gegarandeerd.
De behoefte aan verbeterde gebruikersinterfaces in slimme producten
Hoewel beveiliging van het grootste belang blijft, gebruiken slimme producten steeds geavanceerdere grafische gebruikersinterfaces (GUI’s). STM32H7R/S-MCU’s voldoen aan deze eis met behulp van geïntegreerde grafische versnellers. Deze omvatten de Chrom-ART-versneller in STM32H7R3/S3-MCU’s en de NeoChrom grafische verwerkingseenheid (GPU) in STM32H7R7/S7-MCU’s. Terwijl de 2D Chrom-ART-versneller en de 2.5D NeoChrom-GPU meerdere indelingen ondersteunen met teken- en blittingbewerkingen, ondersteunt de NeoChrom-GPU de bewerkingen die nodig zijn bij texture mapping (afbeelding 6).
|
Afbeelding 6: De Chrom-ART grafische versneller in STM32H7R3/S3-MCU’s en de NeoChrom-GPU in STM32H7R7/S7-MCU’s bieden de grafische prestaties en functionaliteit die nodig zijn in GUI’s voor slimme producten. (Bron afbeelding: STMicroelectronics)
Voor evaluatie en ontwikkeling biedt STMicroelectronics het NUCLEO-H7S3L8 STM32 Nucleo-144 ontwikkelbord voor de STM32H7R3 en de STM32H7S78-DK Discovery-kit voor de STM32H7S7.
Het Nucleo-144-bord is ontworpen voor snelle prototypeontwikkeling, bevat een geïntegreerde ST-LINK-debugger/programmer en bevat leds, drukknoppen en meerdere connectoropties op het bord. De STM32H7S78-DK Discovery-kit biedt wifi, diverse leds en drukknoppen, een ingebouwde STLINK-V3EC-debugger/programmer en meerdere aansluitingen op het bord, waaronder twee voor USB Type-C® en een ethernet RJ45-aansluiting.
Voor softwareontwikkeling biedt STMicroelectronics het STM32Cube MCU-pakket als onderdeel van het STM32Cube-ecosysteem. Samen met modules voor de hardware-abstractielaag (HAL), BSP’s (Board Support Packets) en API’s (Application Programming Interfaces) op laag registratieniveau, biedt het STM32Cube-MCU-pakket middleware-componenten, connectiviteitsstacks en voorbeeldcode. Voor grafische ontwikkeling biedt het bedrijf het grafische framework X-CUBE-TOUCHGFX, dat het volgende omvat:
- de TouchGFX Designer-tool voor de ontwikkeling en simulatie van grafische toepassingen
- de TouchGFX Engine hardwareversnelde grafische bibliotheek
- de TouchGFX Generator is een STM32CubeMX-plugin waarmee ontwikkelaars de TouchGFX-abstractielaag kunnen configureren en genereren die door de TouchGFX Engine wordt gebruikt om toegang te krijgen tot de onderliggende hardware en het besturingssysteem
Een langere levensduur van de batterij garanderen
Minimaal energieverbruik en een maximale levensduur van de batterij blijven belangrijke ontwerpcriteria in veel toepassingsgebieden. De MCU’s in de STM32U0-serie van STMicroelectronics zijn ontworpen voor energiebesparing en de langere batterijlevensduur die nodig zijn in veel industriële, medische, smart-metering- en consumententoepassingen. De STM32U0-MCU-serie is gebouwd rond een ultra-low-power 56 MHz Arm Cortex-M0+ processor en heeft drie verschillende series waarmee ontwikkelaars de optimale configuratie van SRAM, flash en peripherals kunnen kiezen voor hun ontwerpen.
De STM32U031-familie biedt de meest compacte configuratie met 12 kB SRAM, tot 64 kB flashgeheugen, meerdere timers, analoge peripherals en aansluitmogelijkheden (afbeelding 7).
Afbeelding 7: De drie families in de STM32U0-MCU-serie bouwen voort op een groeiende reeks functies in de STM32U031-MCU-familie. (Bron afbeelding: STMicroelectronics)
De STM32U073-familie breidt de functies van de STM32U031-familie uit met een geïntegreerde LCD-controller, extra connectiviteitskanalen en analoge peripherals, en biedt 40 kB SRAM en tot 256 kB flashgeheugen. De STM32U083-familie bouwt voort op deze functies door een Advanced Encryption Standard (AES) hardwareversneller toe te voegen.
Naast hoge integratie leveren alle MCU’s uit de STM32U0-serie ultra-lage-stroomprestaties. In de runstand verbruiken ze slechts 52 microampère per megahertz (μA/MHz) terwijl ze draaien met hun interne LDO-regelaar met lage uitval.
Ontwikkelaars kunnen kiezen uit meerdere spaarstanden, waaronder drie stopstanden, om het stroomverbruik in batterijgevoede toepassingen te minimaliseren. Bijvoorbeeld: in de stopmodus met het laagste energieverbruik verbruiken STM32U031-MCU’s slechts 630 nanoampère (nA) met gebruik van de real-time klok (RTC) of 515 nA zonder. In dezelfde stopmodus hebben STM32U073- en STM32U083-MCU’s slechts 825 nA nodig met RTC of 695 nA zonder RTC. Niettemin kunnen alle drie de families in de STM32U0-serie met een 24 MHz wekkerklok de runstand bereiken vanuit deze werkstand met het laagste energieverbruik in slechts 12,0 microseconden (µs) in flash en 7,67 µs in SRAM.
Ondanks hun ultra-low-power werking en dankzij hun geïntegreerde adaptieve real-time (ART) geheugenversneller, bereiken deze MCU’s prestaties die gelijk zijn aan zero-wait-state uitvoering vanuit flash bij een processorfrequentie van 56 MHz.
Voor ontwikkelingsondersteuning biedt STMicroelectronics het NUCLEO-U031R8-evaluatieboard op basis van STM32U031, het NUCLEO-U083RC-evaluatieboard op basis van STM32U083 en de STM32U083C-DK Discovery-kit op basis van STM32U083. Net als bij andere componenten in de STM32-familie biedt het STM32Cube-MCU-pakket voor het STM32Cube-ecosysteem van het bedrijf HAL-modules, BSP’s, low-layer API’s, middleware, connectiviteitsstacks en voorbeeldcode.
Long-range draadloze connectiviteit
Efficiënte ontwerpen met draadloze verbindingen over lange afstanden in sub-gigahertz (GHz) zijn essentieel in Internet of Things (IoT)-toepassingen voor slimme steden, landbouw, afstandsmeting, remote sensing en industriële systemen. Veel van deze toepassingen moeten een betrouwbare communicatie in stand houden, ondanks interferentie van omgevingsbronnen zoals het elektriciteitsnet of machines. Dit wijst op het gebruik van interferentiebestendige connectiviteit via een long-range wide-area netwerk (LoRaWAN).
De STM32WL5MOCH6TR-module van STMicroelectronics biedt een LoRaWAN-gecertificeerde oplossing die geschikt is voor gebruik in Europa, Azië en Noord- en Zuid-Amerika. Deze multiregionale operationele mogelijkheid ligt in de ondersteuning van de radiomodule voor 868 MHz Europese standaarden en 915 MHz Noord-Amerikaanse standaarden die een hoger vermogen ondersteunen. Dankzij de ondersteuning voor meerdere modulatieschema’s en het lineaire frequentiebereik van 150 tot 960 MHz kan de module wereldwijd worden gebruikt met verschillende standaard en bedrijfseigen communicatieprotocollen zoals Sigfox, W-MBUS en mioty.
Gebaseerd op een dual-core architectuur met een combinatie van een Arm Cortex-M0+ en een Arm Cortex-M4 combineert de STM32WL5MOC-module een flexibele radiozendontvanger, tot 64 kB SRAM en tot 256 kB flashgeheugen met een uitgebreid beveiligingssubsysteem, timers, analoge peripherals, connectiviteitsinterfaces, bedieningsfuncties en passieve componenten voor de ingebouwde switch mode voeding (SMPS). Daarnaast is het beveiligde element STSAFE-A100 van STMicroelectronics opgenomen in de STM32WL5MOCH6STR-variant (afbeelding 8).
Afbeelding 8: De STM32WL5MOC-module biedt een drop-in-oplossing voor sub-GHz connectiviteit door de dual-core architectuur te combineren met een flexibele radio, beveiligingsfuncties, meerdere functionele blokken en passieve componenten. (Bron afbeelding: STMicroelectronics)
De uitgebreide geïntegreerde functionaliteit en LoRaWAN-certificering van de STM32WL5MOC-module bieden ontwerpers een geoptimaliseerde drop-in hardwareoplossing voor long-range draadloze toepassingen. STMicroelectronics versnelt de ontwikkeling verder met een uitgebreide set resources, waaronder de B-WL5M-SUBG1-uitbreidingskaart, die een STM32WL5MOC-module, 4 megabit (Mbit) flashgeheugen, 256 kilobit (kbit) EEPROM, STMicroelectronics micro-elektromechanische systemen (MEMS) sensoren, meerdere bordconnectoren, leds en drukknoppen combineert. Voor softwareontwikkeling ondersteunt het STM32CubeWL-MCU-pakket printplaten uit de STM32WL-serie als onderdeel van het STM32Cube-ecosysteem.
Conclusie
Slimme producten voor toepassingen in onder meer consumentenproducten, industrie en gezondheidszorg hebben niveaus van beveiliging, stroomverbruik, connectiviteit en ontwerpcomplexiteit die zelden overeenkomen met de mogelijkheden van een enkele microcontroller. De MCU’s uit de STM32-serie bieden ontwerpers een ruime keuze aan verwerkingsopties voor een optimale afstemming op uiteenlopende ontwerpeisen. Boards en software bieden ondersteuning voor de processors en vereenvoudigen de ontwikkeling.
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.



