Efektivnější přizpůsobení požadavkům aplikací díky vysoce integrovaným mikrokontrolérům Arm® Cortex®

By Stephen Evanczuk

Contributed By DigiKey's North American Editors

Při plnění rostoucí řady požadavků na chytré produkty v aplikacích, které zahrnují spotřebitelské a průmyslové produkty, chytré město a zdravotnictví, čelí vývojáři mnoha výzvám. Každá aplikace přináší svůj jedinečný soubor požadavků týkajících se výkonu, zabezpečení, extrémně nízké spotřeby energie, bezdrátového připojení s velkým dosahem a ceny. Příliš často jsou vývojáři s ohledem na tyto požadavky nuceni dělat kompromisy kvůli špatné shodě mezi aplikací a možnostmi dostupných řešení mikrokontrolérů („microcontroller unit“, MCU).

V tomto článku je představena sada procesorových řešení od společnosti STMicroelectronics, která může poskytnout vhodné kombinace výkonu, výdrže baterie, zabezpečení a bezdrátového připojení, které jsou pro úspěch návrhu v širokém spektru aplikací rozhodující.

Splnění přísných bezpečnostních požadavků

Mikrokontroléry se spouštěcí pamětí flash STM32H7R/S společnosti STMicroelectronics (obrázek 1) poskytují vysoký výkon, grafiku, zabezpečení a menší kusovníky („bill of material“, BOM), což jsou vlastnosti, které jsou v mnoha chytrých produktech pro průmyslové aplikace, spotřební elektroniku, chytré město a zdravotnictví vyžadovány. Tyto mikroprocesory založené 600MHz procesoru Arm® Cortex®-M7 s jednotkou s plovoucí desetinnou čárkou („floating-point unit“, FPU) s dvojitou přesností obsahují integrovanou grafiku, bezpečnostní subsystémy a komplexní sadu periferií a propojovacích rozhraní.

Schéma – mikrokontrolér se spouštěcí pamětí flash STM32H7R/S společnosti STMicroelectronicsObrázek 1: Mikrokontroléry se spouštěcí pamětí flash STM32H7R/S obsahují vysoce výkonný procesor Arm Cortex-M7 s kompletní sadou periferií, funkčních bloků a specializovaných funkcí potřebných k poskytování bezpečných chytrých produktů. (Zdroj obrázku: společnost STMicroelectronics)

Kromě mezipaměti L1 procesorů, která obsahuje 32 kB instrukční mezipaměti a 32 kB datové mezipaměti, jsou tyto mikrokontroléry dodávány s 620 kB statické paměti s náhodným přístupem („static random-access memory“, SRAM), 64 kB vestavěné paměti flash a s několika rozhraními pro vysokorychlostní přístup k externím pamětem. Tato kombinace paměti SRAM, vestavěné paměti flash a přístupu k externí paměti se schopností provádění na místě („execute-in-place“, XiP) nabízí vývojářům při implementaci vysoce výkonných a bezpečných vestavěných systémů vysokou míru flexibility.

K zajištění bezpečnosti v aplikacích běžících v externí paměti obsahují mikrokontroléry STM32H7S také tři paměťové šifrovací moduly („memory cipher engine“, MCE), které provádějí šifrování a dešifrování za chodu v externích nevolatilních a volatilních pamětech, s naprogramovaným řízením přístupu až ke čtyřem různým oblastem pro každý MCE. V kombinaci s dalšími hardwarovými bezpečnostními funkcemi, včetně diferenciální analýzy výkonu a ochrany proti útokům postranním kanálem, jsou mikrokontroléry STM32H7S certifikovány podle norem SESIP a PSA Assurance Level 3.

Pro zajištění spolehlivého výkonu časově kritických úloh, jako jsou rutiny obsluhy přerušení, je část paměti SRAM namapována na rozhraní pevně vázané paměti („tightly coupled memory“, TCM) mikrokontroléru, které pro kritické instrukce a data poskytuje paměť s nulovým stavem čekání. K zajištění integrity systému kombinuje mikrokontrolér s vestavěnou pamětí flash několik bezpečnostních funkcí, které umožňují bezpečné spouštění a kontrolu integrity aplikací a poskytují důvěryhodný kořenový certifikát („root of trust“, RoT) pro systémový a aplikační software běžící v paměti na čipu nebo mimo něj. V kombinaci s vhodnými hardwarovými ochrannými mechanismy poskytuje toto použití vestavěné paměti flash pro uložení důvěryhodné spouštěcí rutiny významné výhody ve flexibilitě ve srovnání s použitím paměti pouze pro čtení („read-only memory“, ROM) v tradičních mikrokontrolérech.

Více cest k zabezpečenému spouštění

Aby bylo možné zajistit certifikát RoT nezbytný k zabezpečení systému, spoléhá zabezpečené spouštění na důvěryhodný neměnný kód, který se spustí vždy okamžitě po resetu systému. Tento kód ověřuje, že v další fázi sekvence spouštění systému bude spuštěn pouze důvěryhodný software. S mikrokontroléry STM32H7R/S mají vývojáři několik cest, jak zabezpečit spouštění při vytváření důvěryhodných systémů. Mohou používat předem sestavený firmware RoT nebo sami řídit spouštěcí sekvenci (obrázek 2).

Schéma – spouštěcí cesty mikrokontrolérů STM32H7R/S společnosti STMicroelectronics (kliknutím zvětšíte)Obrázek 2: Mikrokontroléry STM32H7R/S nabízejí několik spouštěcích cest navržených pro zjednodušení vývoje. (Zdroj obrázku: společnost STMicroelectronics)

Po resetu systému zahájí všechny mikrokontroléry STM32H7R/S spouštěcí sekvenci spuštěním důvěryhodných kořenových zabezpečených služeb („root secure services“, RSS) umístěných v chráněné systémové paměti flash. Další kroky ve spouštěcí sekvenci závisí na typu mikrokontroléru a volbě vývojáře ohledně spouštěcí cesty. U každé spouštěcí cesty využívají mikrokontroléry STM32H7R/S svůj mechanismus skryté úrovně ochrany („hide protection level“, HDPL), aby zajistily časovou izolaci jednotlivých úrovní spouštění. S tím, jak spouštěcí sekvence přechází z jedné úrovně spouštění na další, se počítadlo HDPL zvyšuje a prostředky spojené s předchozí úrovní spouštění jsou skryty před aktuální úrovní.

Udržování RoT během celé spouštěcí sekvence

Ve spouštěcí cestě pro produkční systémy založené na mikrokontrolérech STM32H7R se RSS spouští okamžitě po resetu systému. RSS spouští neměnný firmware RoT („immutable RoT“, iRoT) výrobce originálního zařízení („original equipment manufacturer“, OEM) umístěný v uživatelské paměti flash. Vzhledem k tomu, že mechanismus HDPL je na této další úrovni inkrementován, zůstávají RSS skryty před firmwarem OEMiRoT, který ve spouštěcí sekvenci zpracovává další krok. Pokud je aplikace navržena tak, aby podporovala aktualizovatelný firmware RoT („updatable RoT“, uRoT), OEMiRoT spustí firmware OEMuRoT z externí paměti. V konečné fázi spouštěcí sekvence spustí firmware OEMiRoT (nebo volitelný OEMuRoT) kód aplikace. Mechanismus HDPL zajišťuje, že RSS, OEMiRoT a volitelný OEMuRoT jsou před aplikací skryty.

Produkční systémy založené na mikrokontrolérech STM32H7S lze nakonfigurovat tak, aby se řídily podobnou spouštěcí cestou jako u systémů s mikrokontroléry STM32H7R, přičemž úplná kontrola nad procesem spouštění je ponechána vývojáři. S mikrokontroléry STM32H7S mohou vývojáři zvolit také vysoce zabezpečenou cestu, která vyvolá předpřipravený firmware iRoT společnosti STMicroelectronics (STiRoT) umístěný v chráněné systémové paměti flash.

Ve spouštěcí cestě s podporou STiRoT načte rutina (iLoader) umístěná v chráněné vestavěné paměti flash kód pro další úroveň spouštění do interní paměti SRAM. STiRoT poté zkontroluje integritu a autentičnost tohoto kódu, než ho povolí spustit. U jednofázových spouštěcích cest načte iLoader kód aplikace do paměti SRAM. U dvoufázových spouštěcích cest nahraje iLoader OEMuRoT z externí paměti flash do paměti SRAM.

Jakmile je kód aplikace (nebo firmware OEMuRoT) v interní paměti SRAM, zkontroluje se integrita a autentičnost bez rizika útoku během ověřování kódu umístěného v externí paměti. Po ověření provede OEMuRoT kontrolu integrity a autentičnosti kódu aplikace, než aplikaci spustí. Vývojáři mohou tuto dvoufázovou spouštěcí cestu snadno rozšířit o ověření aktualizací kódu aplikace nebo dokonce firmwaru OEMuRoT (obrázek 3).

Schéma – mikrokontroléry STM32H7S společnosti STMicroelectronics (kliknutím zvětšíte)Obrázek 3: Mikrokontroléry STM32H7S umožňují zabezpečenou aktualizaci a bezpečné spouštění prostřednictvím vícekrokového procesu navrženého tak, aby byla zajištěna integrita a autentičnost kódu v každém kroku procesu. (Zdroj obrázku: společnost STMicroelectronics)

Během normálního provozu v produkčních systémech je vestavěná paměť flash v mikrokontrolérech STM32H7R/S v sepnutém stavu, kdy je zřízen firmware RoT a je vynucen platný spouštěcí vstup. Tyto mikrokontroléry navíc poskytují celkem čtyři stavy PRODUCT_STATE určené pro podporu celého životního cyklu produktu (obrázek 4).

PRODUCT_STATE Výběr stavu PRODUCT_STATE Popis
Rozepnutý NVSTATE = OPEN Tento stav umožňuje vývoj produktu, protože poskytuje ladění kódu. Použití spouštěcího pinu umožňuje spuštění spouštěcí rutiny.
Zřizování NVSTATE = CLOSE
OEM_PROVD=!0xB4
anebo
DBG_AUTH = nenastaveno (!0xB4, !0x51, !0x8A)
Tento stav umožňuje zřizování produktu (částečné nebo úplné). Umožňuje spuštění zabezpečené instalace firmwaru nebo spouštěcí rutiny ke zřízení produktu. Spouštění z paměti SRAM není povoleno.
Sepnutý NVSTATE = CLOSE
OEM_PROVD=0xB4
DBG_AUTH=0x51 nebo 0x8A
Tento stav považuje konfiguraci produktu za dokončenou. Umožňuje podporu debutového ověřování pro opravy v provozu (přečtěte si poznámku k vyhrazené aplikaci).
Uzamknuto NVSTATE = CLOSE
OEM_PROVD=0xB4
DBG_AUTH=0xB4
Tento stav považuje konfiguraci produktu za nepovolenou. Produkt je definitivně v tomto stavu.

Obrázek 4: Mikrokontroléry STM32H7R/S fungují v jednom ze čtyř stavů PRODUCT_STATE navržených tak, aby podporovaly celý životní cyklus produktu. (Zdroj obrázku: společnost STMicroelectronics)

Vývojáři mohou stav PRODUCT_STATE ovládat třemi způsoby:

  • Nevolatilní stav (NVSTATE), který nastavuje paměť flash do rozepnutého nebo sepnutého stavu
  • Zřízeno OEM (OEM_PROVD), který definuje stabilitu oblasti bezpečně skryté ochrany („hide protection“, HDP), která zajišťuje, že kód spuštěný v této oblasti zůstane po spuštění skrytý
  • Metoda ověřování ladění (DBG_AUTH), která definuje metodu použitou k otevření ladění zařízení

Díky těmto čtyřem stavům podporují mikrokontroléry STM32H7R/S bezpečnostní požadavky jednotlivých kritických fází životního cyklu produktu: vývoj produktu, výroba produktu a nasazení v provozu (obrázek 5).

Obrázek – vývojové schéma produktuObrázek 5: Při přechodu produktu z vývoje a výroby do provozu mohou mikrokontroléry STM32H7R/S chránit citlivý kód a data ve vestavěné paměti flash a v případě potřeby poskytovat ověřený přístup k ladění. (Zdroj obrázku: společnost STMicroelectronics)

V praxi nabízí ověřování ladění výkonnou bezpečnostní funkci navrženou tak, aby splňovala praktické výzvy podpory životního cyklu produktu. U produkčních systémů pracujících v sepnutém stavu mohou vývojáři použít ověřovací protokol, který umožňuje zabezpečenému debuggeru znovu otevřít přístup, aniž by došlo k ohrožení RoT v omezené relaci ladění. Při plném regresním ladění není zabezpečení kódu a dat zaručeno.

Uspokojení potřeby vylepšených uživatelských rozhraní v chytrých produktech

Přestože zabezpečení zůstává prvořadé, závisí chytré produkty na stále sofistikovanějších grafických uživatelských rozhraních („graphical user interface“, GUI). Mikrokontrolér STM32H7R/S řeší tento požadavek pomocí integrovaných grafických akcelerátorů. Patří mezi ně akcelerátor Chrom-ART v mikrokontrolérech STM32H7R3/S3 a grafický procesor („graphics processing unit“, GPU) NeoChrom v mikrokontrolérech STM32H7R7/S7. Zatímco akcelerátor 2D Chrom-ART a GPU 2.5D NeoChrom podporují více formátů s operacemi kreslení a blittingu, GPU NeoChrom podporuje operace požadované při mapování textur (obrázek 6).

Grafická funkce Chrom-ART GPU NeoChrom
Podporované formáty ARGB8888, ARGB4444, ARGB1555, RGB888, RGB565
A8, A4, L8
AI44, AI88
CLUT (256 záznamů), YUV
RGVA8888, ARGB8888
RGBX8888, XRGB8888
RGB888, RGB565, RGBA55551
A8, A4, A2, A1
Komprimované TSc4, TSc6 a TSc6A
Založení na seznamu příkazů Ne Ano
Kreslení Vyplňování obdélníků Vyplňování obdélníků
Kreslení pixelů, čar, trojúhelníků, čtyřúhelníků
Antialiasing 8xMSAA
Blitting Kopírování
Alfablending
Konverze formátu pixelů
Kopírování
Alfablending, barevné klíčování
Konverze formátu pixelů
Mapování textur Ne Otočení o libovolný úhel
Škálování
Zrcadlení
3D perspektivní správné projekce
Mapování textur s bilineárním a bodovým vzorkováním

Obrázek 6: Grafický akcelerátor Chrom-ART v mikrokontrolérech STM32H7R3/S3 a GPU NeoChrom v mikrokontrolérech STM32H7R7/S7 poskytují grafický výkon a funkce potřebné v GUI pro chytré produkty. (Zdroj obrázku: společnost STMicroelectronics)

Pro vyhodnocování a vývoj nabízí společnost STMicroelectronics vývojovou desku STM32 Nucleo-144 NUCLEO-H7S3L8 pro mikrokontrolér STM32H7R3 a sadu Discovery STM32H7S78-DK pro mikrokontrolér STM32H7S7.

Deska Nucleo-144, navržená pro rychlý vývoj prototypů, obsahuje integrovaný debugger/programátor ST-LINK a nabízí LED diody, tlačítka a možnosti propojení více desek. Sada Discovery STM32H7S78-DK nabízí Wi-Fi, několik LED diod a tlačítek, integrovaný debugger/programátor STLINK-V3EC a několik konektorů na desce, včetně dvou pro konektor USB Type-C® a jednoho ethernetového konektoru RJ45.

Pro vývoj softwaru poskytuje společnost STMicroelectronics jako součást svého ekosystému STM32Cube balíček STM32Cube MCU. Spolu s moduly hardwarové abstraktní vrstvy („hardware abstraction layer“, HAL), balíčky podpory desek („board support package“, BSP) a tenkovrstvými aplikačními programovacími rozhraními („application programming interfaces“, API) na úrovni registrů nabízí balíček STM32Cube MCU komponenty middlewaru, sady konektivity a ukázkový kód. Pro vývoj grafiky nabízí společnost grafický rámec X-CUBE-TOUCHGFX, který obsahuje následující součásti:

  • Nástroj TouchGFX Designer pro vývoj a simulaci grafických aplikací
  • Hardwarově akcelerovaná grafická knihovna TouchGFX Engine
  • TouchGFX Generator, což je modul plug-in STM32CubeMX, který umožňuje vývojářům konfigurovat a generovat abstrakční vrstvu TouchGFX používanou knihovnou TouchGFX Engine pro přístup k základnímu hardwaru a operačnímu systému

Zajištění delší výdrže baterie

Minimální spotřeba energie a maximální výdrž baterie zůstávají v mnoha oblastech použití klíčovými hnacími silami návrhu. Mikrokontroléry řady STM32U0 společnosti STMicroelectronics jsou navrženy tak, aby poskytovaly úspory energie a prodlouženou výdrž baterií, které jsou vyžadovány v mnoha základních průmyslových, zdravotnických, inteligentních měřicích a spotřebitelských aplikacích. Řada mikrokontrolérů STM32U0, postavená na procesoru Arm Cortex-M0+ 56 MHz s extrémně nízkou spotřebou, nabízí tři různé řady, které vývojářům umožňují vybrat si optimální konfiguraci paměti SRAM, paměti flash a periferií, které potřebují pro své návrhy.

Řada STM32U031 nabízí nejkompaktnější konfiguraci s 12 kB paměti SRAM, až 64 kB paměti flash, několika časovači, analogovými periferiemi a možnostmi připojení (obrázek 7).

Obrázek – tři řady v sérii mikrokontrolérů STM32U0 společnosti STMicroelectronicsObrázek 7: Tři řady v sérii mikrokontrolérů STM32U0 staví na rostoucí sadě funkcí, které se v řadě mikrokontrolérů STM32U031 nacházejí. (Zdroj obrázku: společnost STMicroelectronics)

Řada STM32U073 rozšiřuje funkce, které se nacházejí v řadě STM32U031, přidává integrovaný řadič LCD, další propojovací kanály a analogové periferie a zároveň nabízí 40 kB paměti SRAM a až 256 kB paměti flash. Řada STM32U083 staví na těchto funkcích a přidává hardwarový akcelerátor standardu pokročilého šifrování („Advanced Encryption Standard“, AES).

Spolu s vysokou integrací dosahují všechny mikrokontroléry série STM32U0 výkonu s extrémně nízkou spotřebou. V provozním režimu spotřebovávají pouze 52 μA/MHz při provozu s interním regulátorem s nízkým úbytkem napětí („low-dropout“, LDO).

Vývojáři si mohou vybrat z několika režimů nízké spotřeby, včetně tří režimů zastavení, aby minimalizovali spotřebu energie v aplikacích s napájením bateriemi. Například v režimu zastavení s nejnižší spotřebou energie odebírají mikrokontroléry STM32U031 pouze 630 nA s hodinami reálného času („real-time clock“, RTC) nebo 515 nA bez nich. Ve stejném režimu zastavení vyžadují mikrokontroléry STM32U073 a STM32U083 pouze 825 nA s RTC nebo 695 nA bez nich. Nicméně všechny tři řady v sérii STM32U0 pracující s budicími hodinami 24 MHz se z tohoto provozního režimu s nejnižší spotřebou dostanou za pouhých 12,0 µs u paměti flash a 7,67 µs u paměti SRAM.

Navzdory provozu s extrémně nízkou spotřebou a díky integrovanému akcelerátoru paměti adaptivního reálného času („adaptive real-time“, ART) dosahují tyto mikrokontroléry výkonu ekvivalentního spouštění v nulovém čekacím stavu z paměti flash při frekvenci procesoru 56 MHz.

Pro podporu vývoje nabízí společnost STMicroelectronics vyhodnocovací desku NUCLEO-U031R8 založenou na mikrokontroléru STM32U031, vyhodnocovací desku NUCLEO-U083RC založenou na mikrokontroléru STM32U083 a sadu Discovery STM32U083C-DK založenou na mikrokontroléru STM32U083. Stejně jako u jiných zařízení z řady STM32 poskytuje balíček STM32Cube MCU pro ekosystém STM32Cube této společnosti moduly HAL, BSP, tenkovrstvá rozhraní API, middleware, sady konektivity a ukázkový kód.

Poskytování bezdrátového připojení s dlouhým dosahem

Efektivní návrhy s bezdrátovou konektivitou s dlouhým dosahem v pásmu do jednoho gigahertzu jsou zásadní v aplikacích internetu věcí (IoT) pro chytrá města, zemědělství, dálkové měření, vzdálené snímání a průmyslové systémy. Mnoho z těchto aplikací musí udržovat spolehlivou komunikaci navzdory rušení z okolních zdrojů, jako je elektrická rozvodná síť nebo strojní zařízení. To ukazuje na použití připojení k sítím pro rozsáhlá území s dlouhým dosahem („long-range wide-area network“, LoRaWAN) odolným proti rušení.

Modul STM32WL5MOCH6TR společnosti STMicroelectronics nabízí řešení s certifikací LoRaWAN, které může být provozováno v Evropě, Asii a Americe. Tato multiregionální provozní schopnost spočívá v podpoře rádiového modulu pro evropské standardy 868 MHz a severoamerické standardy 915 MHz podporující vyšší výstupní výkon. Modul podporuje více modulačních schémat a jeho lineární frekvenční rozsah od 150 do 960 MHz mu umožňuje podporovat provoz po celém světě s různými standardními a proprietárními komunikačními protokoly, jako jsou Sigfox, W-MBUS a mioty.

Modul STM32WL5MOC je založený na dvoujádrové architektuře kombinující Arm Cortex-M0+ a Arm Cortex-M4, a spojuje flexibilní rádiový transceiver, až 64 kB paměti SRAM a až 256 kB paměti flash s komplexním bezpečnostním subsystémem, časovači, analogovými periferiemi, propojovacími rozhraními, ovládacími prvky a pasivními součástkami pro svůj vestavěný spínaný napájecí zdroj („switch mode power supply“, SMPS). Součástí varianty STM32WL5MOCH6STR je kromě toho bezpečnostní prvek STSAFE-A100 společnosti STMicroelectronics (obrázek 8).

Schéma – modul STM32WL5MOC společnosti STMicroelectronicsObrázek 8: Modul STM32WL5MOC poskytuje drop-in řešení pro konektivitu v pásmu do jednoho gigahertzu, kombinuje dvoujádrovou architekturu s flexibilním rádiem, bezpečnostními funkcemi, vícefunkčními bloky a pasivními součástkami. (Zdroj obrázku: společnost STMicroelectronics)

Rozsáhlé integrované funkce modulu STM32WL5MOC a certifikace LoRaWAN poskytují konstruktérům optimalizované hardwarové drop-in řešení pro bezdrátové aplikace s dlouhým dosahem. Společnost STMicroelectronics dále urychluje vývoj pomocí komplexní sady prostředků, včetně rozšiřující desky B-WL5M-SUBG1, která kombinuje modul STM32WL5MOC, 4Mbit paměť flash, 256kbit paměť EEPROM, senzory mikroelektromechanických systémů („microelectromechanical systems“, MEMS) společnosti STMicroelectronics, několik konektorů desky, LED diody a tlačítka. Jako součást ekosystému STM32Cube podporuje balíček STM32CubeWL MCU pro vývoj softwaru desky řady STM32WL.

Závěr

Chytré produkty pro spotřebitelské, průmyslové, zdravotnické a další aplikace mají úrovně zabezpečení, spotřeby energie, konektivity a složitosti návrhu, které jen zřídka odpovídají možnostem jednoho mikrokontroléru. Řada mikrokontrolérů STM32 nabízí konstruktérům široký výběr možností zpracování, které optimálně vyhovují různým požadavkům na konstrukci. Desky a software podporují procesory a zjednodušují vývoj.

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.

About this author

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.

About this publisher

DigiKey's North American Editors