Îndepliniți mai eficient cerințele aplicațiilor cu ajutorul MCU-urilor Arm® Cortex® puternic integrate

By Stephen Evanczuk

Contributed By DigiKey's North American Editors

Dezvoltatorii se confruntă cu numeroase provocări în ceea ce privește îndeplinirea unei game tot mai largi de cerințe pentru produsele inteligente în aplicații care includ produse de consum, industria, orașul inteligent și asistența medicală. Fiecare aplicație are un set unic de cerințe în ceea ce privește performanța, securitatea, consumul de energie ultra-redus, conectivitatea fără fir cu rază lungă de acțiune și costurile. De prea multe ori, dezvoltatorii sunt forțați să facă compromisuri în ceea ce privește aceste cerințe din cauza unei corespondențe slabe între aplicație și capacitățile soluțiilor disponibile pentru unitățile de microcontroler (MCU).

Acest articol prezintă un set de soluții de procesoare de la STMicroelectronics care pot oferi combinații adecvate de performanță, autonomie, securitate și conectivitate wireless, esențiale pentru succesul proiectării într-o gamă largă de aplicații.

Îndeplinirea unor cerințe stricte de securitate

MCU-urile STM32H7R/S bootflash de la STMicroelectronics (Figura 1) oferă performanțe ridicate, grafică, securitate și o listă de materiale (BOM) redusă, necesare în multe produse inteligente pentru aplicații industriale, electronice de consum, pentru orașe inteligente și pentru sănătate. Bazate pe un procesor Arm® Cortex®-M7 de 600 megahertzi (MHz) cu o unitate în virgulă mobilă (FPU) de dublă precizie, aceste MCU-uri dispun de grafică integrată, subsisteme de securitate și un set complet de periferice și interfețe de conectivitate.

Diagrama MCU-urilor STM32H7R/S bootflash de la STMicroelectronicsFigura 1: MCU-urile STM32H7R/S bootflash integrează un Arm Cortex-M7 de înaltă performanță cu un set complet de periferice, blocuri funcționale și capacități specializate necesare pentru a furniza produse inteligente sigure. (Sursa imaginii: STMicroelectronics)

Pe lângă memoria cache L1 a procesoarelor, care include 32 de kilobiți (KBytes) de memorie cache de instrucțiuni și 32 Kbytes de memorie cache de date, aceste MCU-uri sunt dotate cu 620 Kbytes de memorie statică cu acces aleatoriu (SRAM), 64 Kbytes de memorie flash încorporată și interfețe multiple pentru acces de mare viteză la memorii externe. Această combinație de SRAM, memorie flash încorporată și acces la memoria externă cu capacitatea de execuție la fața locului (XiP) oferă dezvoltatorilor un grad ridicat de flexibilitate atunci când implementează sisteme încorporate de înaltă performanță și sigure.

Pentru a garanta securitatea aplicațiilor care rulează în memoria externă, MCU-urile STM32H7S integrează și trei motoare de criptare a memoriei (MCE) care realizează criptarea și decriptarea din mers pe memoriile externe volatile sau nevolatile, cu control programat al accesului la până la patru regiuni diferite pentru fiecare MCE. Combinate cu caracteristici suplimentare de securitate bazate pe hardware, inclusiv analiza diferențială a puterii și protecția împotriva atacurilor pe canal lateral, MCU-urile STM32H7S sunt certificate pentru SESIP și PSA Assurance Level 3.

Pentru a asigura o performanță fiabilă a sarcinilor critice din punctul de vedere al timpului, cum ar fi rutinele de serviciu de întrerupere, o parte din SRAM este mapată pe interfața de memorie strâns cuplată (TCM) a MCU-urilor, oferind o memorie cu stare de așteptare zero pentru instrucțiuni și date critice. Pentru a asigura integritatea sistemului, MCU combină mai multe caracteristici de securitate cu memoria flash încorporată pentru a permite inițializarea securizată și verificarea integrității aplicațiilor, oferind root-of-trust (RoT) pentru sistemul și software-ul de aplicație care rulează în memoria pe cip sau în afara cipului. Atunci când este combinată cu mecanisme de protecție hardware adecvate, această utilizare a flash-ului încorporat pentru stocarea bootloader-ului de încredere oferă avantaje semnificative în ceea ce privește flexibilitatea în comparație cu utilizarea memoriei numai pentru citire (ROM) în MCU-urile tradiționale.

Multiple căi către pentru o inițializare securizată

Pentru a oferi RoT esențială pentru securitatea sistemului, inițializarea securizată se bazează pe un cod imuabil de încredere care rulează întotdeauna imediat după resetarea sistemului. Acest cod verifică faptul că numai software-ul de încredere rulează în următoarea fază a secvenței de pornire a sistemului. Cu ajutorul MCU-urilor STM32H7R/S, dezvoltatorii au la dispoziție mai multe căi de inițializare securizată la construirea sistemelor de încredere. Acestea pot utiliza firmware-ul RoT preinstalat sau pot controla singure secvența de inițializare (Figura 2).

Diagrama căilor de inițializare a MCU STM32H7R/S de la STMicroelectronics (faceți clic pentru mărire)Figura 2: MCU-urile STM32H7R/S oferă mai multe căi de inițializare concepute pentru a simplifica dezvoltarea. (Sursa imaginii: STMicroelectronics)

După resetarea sistemului, toate MCU-urile STM32H7R/S încep secvența de inițializare prin rularea serviciilor de tip „root secure services” (RSS) localizate în memoria flash protejată a sistemului. Etapele ulterioare din secvența de inițializare depind de tipul de MCU și de calea de inițializare aleasă de dezvoltator. Cu fiecare cale de inițializare, MCU-urile STM32H7R/S utilizează mecanismul de ascundere a nivelului de protecție (HDPL) pentru a asigura izolarea temporală a fiecărui nivel de inițializare. Pe măsură ce secvența de inițializare trece de la un nivel de inițializare la următorul, contorul HDPL crește, iar resursele asociate cu nivelul de inițializare anterior sunt ascunse de nivelul curent.

Menținerea RoT pe parcursul întregii secvențe de inițializare

În calea de inițializare pentru sistemele de producție bazate pe STM32H7R, RSS rulează imediat după resetarea sistemului. RSS rulează firmware-ul RoT imuabil (iRoT) al producătorului de echipamente originale (OEM), localizat în memoria flash a utilizatorului. Deoarece HDPL este incrementat la acest nivel următor, RSS rămâne ascuns de firmware-ul OEMiRoT, care se ocupă de următorul pas din secvența de inițializare. În cazul în care aplicația este proiectată pentru a suporta firmware-ul RoT actualizabil (uRoT), OEMiRoT rulează firmware-ul OEMuRoT din memoria externă. În etapa finală a secvenței de inițializare, firmware-ul OEMiRoT (sau OEMuRoT opțional) rulează codul aplicației. HDPL se asigură că RSS, OEMiRoT și OEMuRoT opțional sunt ascunse de aplicație.

Sistemele de producție bazate pe STM32H7S pot fi configurate să urmeze o cale de inițializare similară cu cea a sistemelor STM32H7R, lăsând dezvoltatorului controlul complet al procesului de inițializare. De asemenea, cu MCU-urile STM32H7S dezvoltatorii pot alege o cale foarte sigură care invocă firmware-ul STMicroelectronics iRoT (STiRoT) preinstalat, localizat în memoria flash protejată a sistemului.

În calea de inițializare activată de STiRoT, o rutină (iLoader) localizată în memoria flash încorporată protejată încarcă codul pentru următorul nivel de inițializare în SRAM internă. STiRoT verifică apoi integritatea și autenticitatea codului înainte de a-i permite să se execute. Pentru căile de inițializare cu o singură etapă, iLoader încarcă codul aplicației în SRAM. În cazul căilor de inițializare cu două etape, iLoader încarcă OEMuRoT din memoria flash externă în SRAM.

Odată ce se află în SRAM internă, codul aplicației (sau firmware-ul OEMuRoT) este verificat pentru integritate și autenticitate fără riscul unui atac în timpul verificării codului care se află în memoria externă. Odată validat, OEMuRoT efectuează verificări de integritate și autenticitate asupra codului aplicației înainte de executarea acesteia. Dezvoltatorii pot extinde cu ușurință această cale de inițializare cu două etape pentru a valida actualizări ale codului aplicației sau chiar ale firmware-ului OEMuRoT (Figura 3).

Diagrama MCU-urilor STMicroelectronics STM32H7S (faceți clic pentru mărire)Figura 3: MCU-urile STM32H7S permit actualizarea și inițializarea securizată printr-un proces în mai multe etape conceput pentru a asigura integritatea și autenticitatea codului la fiecare etapă a procesului. (Sursa imaginii: STMicroelectronics)

În timpul funcționării normale în sistemele de producție, flash-ul încorporat în MCU-urile STM32H7R/S se află într-o stare închisă, în care firmware-ul RoT este aprovizionat și se impune o intrare validă la inițializare. În plus, aceste MCU-urile oferă un total de patru stări PRODUCT_STATE concepute pentru a susține întregul ciclu de viață al produsului (Figura 4).

PRODUCT_STATE Selectarea PRODUCT_STATE Descriere
Deschis NVSTATE = OPEN Această stare permite dezvoltarea produsului, deoarece permite depanarea codului. Utilizarea pinului de inițializare permite lansarea bootloader-ului.
Aprovizionare NVSTATE = CLOSE
OEM_PROVD=!0xB4
și/sau
DBG_AUTH = Not set (!0xB4, !0x51, !0x8A)
Această stare permite aprovizionarea produsului (parțială sau completă). Permite lansarea instalării firmware-ului securizat sau a bootloader-ului pentru a aproviziona produsul. Nu este permisă inițializarea din SRAM.
Închis NVSTATE = CLOSE
OEM_PROVD=0xB4
DBG_AUTH=0x51 sau 0x8A
Această stare consideră că configurația produsului este finalizată. Permite susținerea autentificării de debut pentru reparații pe teren (citiți nota de aplicație dedicată).
Blocat NVSTATE = CLOSE
OEM_PROVD=0xB4
DBG_AUTH=0xB4
Această stare consideră că configurația produsului nu este permisă. Produsul se află definitiv în această stare.

Figura 4: MCU-urile STM32H7R/S funcționează într-una din cele patru stări PRODUCT_STATE concepute pentru a susține întregul ciclu de viață al produsului. (Sursa imaginii: STMicroelectronics)

Dezvoltatorii pot controla PRODUCT_STATE în trei moduri:

  • Stare non-volatilă (NVSTATE), care stabilește memoria flash într-o stare deschisă sau închisă
  • OEM aprovizionat (OEM_PROVD), care definește stabilitatea zonei securizate de protecție a ascunderii (HDP) care garantează că codul executat în această zonă rămâne ascuns după inițializare
  • Metoda de autentificare a depanării (DBG_AUTH), care definește metoda utilizată pentru a deschide depanarea dispozitivului

Cu aceste patru stări, MCU-urile STM32H7R/S sprijină cerințele de securitate din fiecare fază critică a ciclului de viață al produsului: dezvoltarea produsului, fabricarea produsului și implementarea pe teren (Figura 5).

Imaginea diagramei în flux pentru dezvoltarea produsuluiFigura 5: Pe măsură ce un produs trece de la dezvoltare și fabricație la utilizare pe teren, MCU-urile STM32H7R/S pot proteja codul și datele sensibile în memoria flash încorporată, oferind în același timp acces autentificat pentru depanare atunci când este necesar. (Sursa imaginii: STMicroelectronics)

În practică, autentificarea pentru depanare oferă o caracteristică de securitate puternică, concepută pentru a răspunde provocărilor practice ale suportului pentru ciclul de viață al produsului. În cazul sistemelor de producție care funcționează în stare închisă, dezvoltatorii pot utiliza un protocol de autentificare care permite unui depanator securizat să redeschidă accesul fără a compromite RoT într-o sesiune de depanare restricționată. În cazul depanării complete a regresiei, securitatea codului și a datelor nu este garantată.

Satisfacerea nevoii de interfețe de utilizator îmbunătățite în produsele inteligente

Cu toate că securitatea rămâne de o importanță capitală, produsele inteligente depind de interfețe grafice de utilizator (GUI) din ce în ce mai sofisticate. MCU-urile STM32H7R/S îndeplinesc această cerință folosind acceleratoare grafice integrate. Printre acestea se numără acceleratorul Chrom-ART din MCU-urile STM32H7R3/S3 și unitatea de procesare grafică (GPU) NeoChrom din MCU-urile STM32H7R7/S7. În timp ce acceleratorul Chrom-ART 2D și GPU NeoChrom 2.5D acceptă mai multe formate cu operații de desen și blitting, GPU NeoChrom acceptă operațiile necesare pentru cartografierea texturilor (Figura 6).

Caracteristica grafică Chrom-ART GPU NeoChrom
Formate acceptate ARGB8888, ARGB4444, ARGB1555, RGB888, RGB565
A8, A4, L8
AI44, AI88
CLUT (256 intrări), YUV
RGVA8888, ARGB8888
RGBX8888, XRGB8888
RGB888, RGB565, RGBA55551
A8, A4, A2, A1
TSc4, Tsc6 și TSc6A comprimate
Bazat pe lista de comenzi Nu Da
Desene Umplere dreptunghi Umplerea dreptunghiurilor
Desenare de pixeli, linii, triunghiuri, cvadrilatere
Antialiasing 8xMSAA
Blitting Copiere
Amestecare alfa
Conversia formatului de pixeli
Copiere
Amestecare alfa, color keying
Conversia formatului de pixeli
Maparea texturilor Nu Rotație în orice unghi
Scalare
Oglindire
Proiecții corecte în perspectivă 3D
Mapare textură cu eșantionare bi-liniară și punctuală

Figura 6: Acceleratorul grafic Chrom-ART din MCU-urile STM32H7R3/S3 și GPU-ul NeoChrom din MCU-urile STM32H7R7/S7 oferă performanța grafică și funcționalitatea necesară în interfețele grafice pentru produsele inteligente. (Sursa imaginii: STMicroelectronics)

Pentru evaluare și dezvoltare, STMicroelectronics oferă placa de dezvoltare NUCLEO-H7S3L8 STM32 Nucleo-144 pentru STM32H7R3 și kitul Discovery STM32H7S78-DK pentru STM32H7S7.

Proiectată pentru dezvoltarea rapidă a prototipurilor, placa Nucleo-144 include un depanator/programator ST-LINK integrat și oferă leduri, butoane și mai multe opțiuni de conectare a plăcii. Kitul STM32H7S78-DK Discovery oferă Wi-Fi, mai multe leduri și butoane, un depanator/programator STLINK-V3EC încorporat și mai mulți conectori pentru placă, inclusiv doi pentru USB Type-C® și un conector Ethernet RJ45.

Pentru dezvoltarea de software, STMicroelectronics pune la dispoziție pachetul STM32Cube MCU ca parte a ecosistemului STM32Cube. Alături de modulele pentru stratul de abstractizare hardware (HAL), pachetele de suport pentru plăci (BSP) și interfețele de programare a aplicațiilor (API) în registrul de nivel scăzut, pachetul STM32Cube MCU oferă componente middleware, stive de conectivitate și coduri de probă. Pentru dezvoltarea grafică, compania oferă cadrul grafic X-CUBE-TOUCHGFX, care include:

  • Instrumentul TouchGFX Designer pentru dezvoltarea și simularea aplicațiilor grafice
  • Biblioteca grafică accelerată de hardware TouchGFX Engine
  • Generatorul TouchGFX, care este un plugin STM32CubeMX care permite dezvoltatorilor să configureze și să genereze stratul de abstractizare TouchGFX utilizat de motorul TouchGFX pentru a accesa hardware-ul și sistemul de operare de bază

Asigurarea unei autonomii de lungă durată a bateriei

Consumul minim de energie și durata maximă de viață a bateriei rămân factori cheie de proiectare în multe domenii de aplicare. Seria STM32U0 de MCU-uri de la STMicroelectronics este concepută pentru a asigura economiile de energie și durata de viață extinsă a bateriei necesare în multe aplicații industriale, medicale, de măsurare inteligentă și de consum de bază. Construită în jurul unui procesor Arm Cortex-M0+ de 56 MHz cu consum de energie foarte redus, seria de MCU-uri STM32U0 include trei familii diferite pentru a permite dezvoltatorilor să aleagă configurația optimă de SRAM, flash și periferice necesare pentru proiectele lor.

Familia STM32U031 oferă cea mai compactă configurație cu 12 Kbytes de SRAM, până la 64 Kbytes de memorie flash, mai multe temporizatoare, periferice analogice și opțiuni de conectivitate (Figura 7).

Imaginea a trei familii din seria STMicroelectronics STM32U0 MCUFigura 7: Cele trei familii din seria STM32U0 MCU se bazează pe un set tot mai mare de caracteristici găsite în familia STM32U031 MCU. (Sursa imaginii: STMicroelectronics)

Extinzând caracteristicile găsite în familia STM32U031, familia STM32U073 adaugă un controler LCD integrat, canale de conectivitate suplimentare și periferice analogice, oferind în același timp 40 Kbytes de SRAM și până la 256 Kbytes de memorie flash. Familia STM32U083 se bazează pe aceste caracteristici prin adăugarea unui accelerator hardware cu standard de criptare avansată (AES).

Pe lângă un grad ridicat de integrare, toate MCU-urile din seria STM32U0 ating performanțe de foarte mică putere. În modul de funcționare, acestea consumă doar 52 de microamperi pe megahertz (μA/MHz) în timp ce funcționează cu regulatorul lor intern cu cădere mică de tensiune (LDO).

Dezvoltatorii pot alege din mai multe moduri de consum redus de energie, inclusiv trei moduri de oprire, pentru a minimiza consumul de energie în aplicațiile alimentate de baterii. De exemplu, în modul de oprire cu cel mai mic consum de energie, MCU-urile STM32U031 consumă doar 630 de nanoamperi (nA) cu funcționarea ceasului în timp real (RTC), sau 515 nA fără acesta. În același mod de oprire, MCU-urile STM32U073 și STM32U083 necesită doar 825 nA cu RTC sau 695 nA fără. Cu toate acestea, toate cele trei familii din seria STM32U0 care funcționează cu un ceas de trezire de 24 MHz pot ajunge în modul de funcționare din acest mod de operare cu cea mai mică putere în numai 12,0 microsecunde (µs) în flash și 7,67 µs în SRAM.

În ciuda funcționării lor cu consum foarte redus de energie și datorită acceleratorului de memorie adaptivă în timp real (ART) integrat, aceste MCU-uri ating performanțe echivalente cu execuția în stare de așteptare zero din memorie flash la o frecvență a procesorului de 56 MHz.

Pentru asistență la dezvoltare, STMicroelectronics oferă placa de evaluare NUCLEO-U031R8 bazată pe STM32U031, placa de evaluare NUCLEO-U083RC bazată pe STM32U083 și kitul Discovery STM32U083C-DK bazat pe STM32U083. Ca și în cazul altor dispozitive din familia STM32, pachetul MCU STM32Cube pentru ecosistemul STM32Cube al companiei oferă module HAL, BSP-uri, API-uri de nivel redus, middleware, stive de conectivitate și coduri de probă.

Obținerea conectivității wireless cu rază lungă de acțiune

Proiectele eficiente cu conectivitate wireless cu rază lungă de acțiune sub-gigahertz (GHz) sunt esențiale în aplicațiile din Internetul lucrurilor (IoT) pentru orașe inteligente, agricultură, măsurare la distanță, detectare la distanță și sisteme industriale. Multe dintre aceste aplicații trebuie să mențină comunicații fiabile în ciuda interferențelor cauzate de surse de mediu, cum ar fi rețeaua electrică sau utilajele. Acest lucru indică utilizarea conectivității de rețea de mare distanță cu rază lungă de acțiune (LoRaWAN), rezistentă la interferențe.

Modulul STM32WL5MOCH6TR de la STMicroelectronics oferă o soluție certificată LoRaWAN capabilă să funcționeze în Europa, Asia și America. Această capacitate de operare multi-regională constă în suportul modulului radio pentru standardele europene de 868 MHz și pentru standardele Americii de Nord de 915 MHz care suportă o putere de ieșire mai mare. Suportul modulului pentru mai multe scheme de modulație și gama sa de frecvență liniară de la 150 la 960 MHz îi permit să suporte funcționarea la nivel mondial cu diverse protocoale de comunicații standard și brevetate, cum ar fi Sigfox, W-MBUS și mioty.

Bazat pe o arhitectură cu două nuclee care combină un Arm Cortex-M0+ și un Arm Cortex-M4, modulul STM32WL5MOC combină emițătorul-receptorul radio flexibil, până la 64 Kbytes de SRAM și până la 256 Kbytes de memorie flash cu un subsistem de securitate cuprinzător, temporizatoare, periferice analogice, interfețe de conectivitate, funcții de control și componente pasive pentru sursa de alimentare în comutație încorporată (SMPS). În plus, elementul securizat STSAFE-A100 de la STMicroelectronics este inclus în varianta STM32WL5MOCH6STR (Figura 8).

Diagrama modulului STM32WL5MOC STMicroelectronicsFigura 8: Modulul STM32WL5MOC oferă o soluție directă pentru conectivitate sub-GHz, combinând arhitectura sa dual-core cu un radio flexibil, caracteristici de securitate, blocuri funcționale multiple și componente pasive. (Sursa imaginii: STMicroelectronics)

Funcționalitatea extinsă integrată a modulului STM32WL5MOC și certificarea LoRaWAN oferă proiectanților o soluție hardware directă optimizată pentru aplicații wireless cu rază lungă de acțiune. STMicroelectronics accelerează și mai mult dezvoltarea cu un set cuprinzător de resurse, inclusiv placa de expansiune B-WL5M-SUBG1, care combină un modul STM32WL5MOC, memorie flash de 4 megabiți (Mbit), EEPROM de 256 kilobiți (Kbit), senzori de sisteme microelectromecanice (MEMS) STMicroelectronics, conectori multipli pentru plăci, leduri și butoane. Pentru dezvoltarea de software, pachetul MCU STM32CubeWL acceptă plăcile din seria STM32WL ca parte a ecosistemului STM32Cube.

Concluzie

Produsele inteligente pentru aplicații de consum, industriale, medicale și de altă natură au niveluri de securitate, consum de energie, conectivitate și complexitate de proiectare care rareori se potrivesc cu capacitățile unui singur microcontroler. Seria de MCU-uri STM32 oferă proiectanților o gamă largă de opțiuni de procesare pentru a găsi potrivirea optimă pentru diverse cerințe de proiectare. Plăcile și software-ul susțin procesoarele și simplifică dezvoltarea.

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