Entwicklungsteams stehen vor vielen Herausforderungen, wenn sie ein wachsendes Array von Anforderungen für intelligente Produkte in Anwendungen für Verbraucher, Industrie, Smart City und Gesundheitsfürsorge erfüllen sollen. Jede Anwendung stellt ihre eigenen Anforderungen an Performance, Sicherheit, extrem niedrigen Stromverbrauch, drahtlose Verbindungen mit großer Reichweite und Kosten. Allzu oft müssen bei diesen Anforderungen Kompromisse eingegangen werden, weil die Anwendung und die Fähigkeiten der verfügbaren Mikrocontroller-Einheiten (MCUs) nicht zusammenpassen.
Dieser Artikel stellt eine Reihe von Prozessorlösungen von STMicroelectronics vor, die geeignete Kombinationen aus Performance, Akkulaufzeit und Sicherheit bieten, die für den Erfolg des Designs in einer Vielzahl von Anwendungen entscheidend sind.
STM32-MCUs erfüllen strenge Sicherheitsanforderungen
Die Bootflash-MCUs STM32H7R/S von STMicroelectronics (Bild 1) bieten die für viele intelligente Produkte in den Bereichen Industrie, Unterhaltungselektronik, Smart City und Gesundheitswesen erforderliche hohe Performance, Grafik, Sicherheit und eine reduzierte Stückliste (BOM). Diese MCUs basieren auf einem Arm-Cortex-M7-Prozessor für 600 MHz und einer doppelt genauen Fließkommaeinheit (FPU) und verfügen über integrierte Grafikfunktionen, Sicherheitssubsysteme und eine umfassende Palette von Peripheriekomponenten und Verbindungsschnittstellen.
Neben dem L1-Cache der Prozessoren, der 32 Kilobyte (KBytes) Instruktions-Cache und 32 KByte Daten-Cache umfasst, verfügen diese MCUs über 620 KByte statischen Direktzugriffsspeicher (SRAM), 64 KByte eingebetteten Flash und mehrere Schnittstellen für den Hochgeschwindigkeitszugriff auf externe Speicher. Diese Kombination aus SRAM, eingebettetem Flash und externem Speicherzugriff mit Execute-in-Place-Fähigkeit (XiP) bietet ein hohes Maß an Flexibilität bei der Implementierung leistungsstarker und sicherer eingebetteter Systeme.
Um die Sicherheit von Anwendungen zu gewährleisten, die im externen Speicher laufen, sind in die STM32H7S-MCUs drei Memory Cipher Engines (MCE) integriert, die eine sofortige Ver- und Entschlüsselung auf externen nichtflüchtigen oder flüchtigen Speichern durchführen, mit programmierter Zugriffskontrolle auf bis zu vier verschiedene Regionen für jede MCE. In Kombination mit zusätzlichen hardwarebasierten Sicherheitsfunktionen, einschließlich differenzieller Leistungsanalyse und Schutz vor Seitenkanalangriffen, sind die STM32H7S-MCUs nach SESIP und PSA Assurance Level 3 zertifiziert.
Um die zuverlässige Ausführung zeitkritischer Aufgaben wie Interrupt-Service-Routinen zu gewährleisten, wird ein Teil des SRAM auf die TCM-Schnittstelle (Tightly-Coupled-Memory) der MCU abgebildet, die einen Zero-Wait-State-Speicher für kritische Anweisungen und Daten bereitstellt. Um die Systemintegrität zu gewährleisten, kombiniert die MCU mehrere Sicherheitsfunktionen mit dem eingebetteten Flash, um einen sicheren Start und eine Integritätsprüfung der Anwendung zu ermöglichen und so eine Root of Trust (RoT) für System- und Anwendungssoftware zu schaffen, die im On-Chip- oder Off-Chip-Speicher läuft. In Verbindung mit geeigneten hardwarebasierten Schutzmechanismen bietet die Verwendung von eingebettetem Flash für die Speicherung des vertrauenswürdigen Bootloaders erhebliche Vorteile in Bezug auf die Flexibilität im Vergleich zur Verwendung von Nur-Lese-Speicher (ROM) in herkömmlichen MCUs.
Sichere Bootsequenzen für vertrauenswürdige Systeme
Um die für die Systemsicherheit unerlässliche RoT zu gewährleisten, stützt sich das sichere Booten auf vertrauenswürdigen unveränderlichen Code, der immer sofort nach dem Zurücksetzen des Systems ausgeführt wird. Dieser Code stellt sicher, dass in der nächsten Phase der Systemstartsequenz nur vertrauenswürdige Software ausgeführt wird. Mit den MCUs STM32H7R/S stehen beim Aufbau vertrauenswürdiger Systeme mehrere Wege zum sicheren Booten zur Verfügung. Entwicklungsteams können vorgefertigte RoT-Firmware verwenden oder die Boot-Sequenz selbst steuern.
Nach einem System-Reset beginnen alle STM32H7R/S-MCUs mit der Boot-Sequenz, indem sie die vertrauenswürdigen Root Secure Services (RSS) ausführen, die sich im geschützten System-Flash-Speicher befinden. Die weiteren Schritte in der Boot-Sequenz hängen vom Typ der MCU und der Wahl des Boot-Pfads ab. Bei jedem Boot-Pfad verwenden die STM32H7R/S-MCUs ihren HDPL-Mechanismus (Hide Protection Level), um die zeitliche Isolierung der einzelnen Boot-Ebenen zu gewährleisten. Wenn die Boot-Sequenz von einer Boot-Ebene zur nächsten übergeht, erhöht sich der HDPL-Zähler, und die mit der vorherigen Boot-Ebene verbundenen Ressourcen werden vor der aktuellen Ebene verborgen.
RoT aufrechterhalten während der Boot-Sequenz
Im Boot-Pfad für STM32H7R-basierte Produktionssysteme wird RSS sofort nach dem Zurücksetzen des Systems ausgeführt. RSS führt die unveränderliche RoT-Firmware (iRoT) des Originalgeräteherstellers (OEM) aus, die sich im Flash-Speicher des Benutzers befindet. Da die HDPL auf dieser nächsten Ebene inkrementiert wird, bleibt RSS für die OEMiRoT-Firmware verborgen, die den nächsten Schritt in der Boot-Sequenz übernimmt. Wenn die Anwendung so konzipiert ist, dass sie aktualisierbare RoT-Firmware (uRoT) unterstützt, führt der OEMiRoT die OEMuRoT-Firmware aus dem externen Speicher aus. In der letzten Phase der Boot-Sequenz führt die OEMiRoT (oder optionale OEMuRoT)-Firmware den Anwendungscode aus. Der HDPL sorgt dafür, dass RSS, der OEMiRoT und der optionale OEMuRoT für die Anwendung unsichtbar sind.
STM32H7S-basierte Produktionssysteme können so konfiguriert werden, dass sie einem Boot-Pfad folgen, der dem von STM32H7R-Systemen ähnelt, wobei die vollständige Kontrolle über den Boot-Prozess dem Entwicklungsteam überlassen wird. Bei STM32H7S-MCUs kann auch ein hochsicherer Pfad gewählt werden, der die vorgefertigte iRoT-Firmware von STMicroelectronics (STiRoT) im geschützten System-Flash-Speicher aufruft.
Im STiRoT-aktivierten Boot-Pfad lädt eine Routine (iLoader), die sich im geschützten Embedded Flash befindet, den Code für die nächste Bootebene in das interne SRAM. STiRoT prüft dann die Integrität und Authentizität dieses Codes, bevor er zur Ausführung freigegeben wird. Bei einstufigen Boot-Pfaden lädt der iLoader den Anwendungscode in das SRAM. Bei zweistufigen Boot-Pfaden lädt iLoader OEMuRoT aus dem externen Flash in das SRAM.
Sobald sich der Anwendungscode (oder die OEMuRoT-Firmware) im internen SRAM befindet, wird er auf Integrität und Authentizität geprüft, ohne dass die Gefahr eines Angriffs bei der Überprüfung von Code im externen Speicher besteht. Nach der Validierung führt der OEMuRoT die Integritäts- und Authentizitätsprüfung des Anwendungscodes vor der Ausführung der Anwendung durch. Dieser zweistufige Boot-Pfad kann leicht erweitert werden, um Updates des Anwendungscodes oder sogar der OEMuRoT-Firmware zu validieren (Bild 2).
Während des normalen Betriebs in Produktionssystemen befindet sich der eingebettete Flash in STM32H7R/S-MCUs in einem geschlossenen Zustand, in dem die RoT-Firmware bereitgestellt und ein gültiger Booteintrag erzwungen wird. Diese MCUs bieten zusätzlich insgesamt vier PRODUCT_STATEs, die den gesamten Produktlebenszyklus unterstützen (Tabelle 1).
Der PRODUCT_STATE kann auf drei Arten gesteuert werden:
- NVSTATE - Versetzt den Flash-Speicher in einen offenen oder geschlossenen Zustand
- OEM_PROVD - Definiert die Stabilität des sicheren Hide-Protection-Bereichs (HDP), der sicherstellt, dass der in diesem Bereich ausgeführte Code nach dem Booten verborgen bleibt
- DBG_AUTH - Definiert die Methode zum Öffnen des Geräte-Debugmodus
Mit diesen vier Zuständen unterstützen die STM32H7R/S-MCUs die Sicherheitsanforderungen jeder kritischen Phase des Produktlebenszyklus: Produktentwicklung, Produktherstellung und Feldeinsatz (Bild 3).
In der Praxis bietet die Debug-Authentifizierung eine leistungsstarke Sicherheitsfunktion, die für die praktischen Herausforderungen des Produktlebenszyklus-Supports entwickelt wurde. Für Produktionssysteme, die im geschlossenen Zustand betrieben werden, kann ein Authentifizierungsprotokoll verwendet werden, das es einem sicheren Debugger ermöglicht, den Zugriff wieder zu öffnen, ohne die RoT in einer eingeschränkten Debug-Sitzung zu gefährden. Beim vollständigen Regressions-Debugging ist die Code- und Datensicherheit nicht gewährleistet.
Warum sind STM32-MCUs die Lösung für batteriebetriebene Anwendungen?
Minimaler Stromverbrauch und maximale Batterielebensdauer sind in vielen Anwendungsbereichen nach wie vor wichtige Faktoren für die Entwicklung. Die MCUs der Serie STM32U0 von STMicroelectronics wurden entwickelt, um Energieeinsparungen und eine längere Batterielebensdauer zu ermöglichen, die in vielen grundlegenden industriellen, medizinischen, intelligenten Zähler- und Verbraucheranwendungen erforderlich sind. Die MCU-Serie STM32U0 basiert auf einem stromsparenden 56-MHz-Arm-Cortex-M0+-Prozessor und umfasst drei verschiedene Familien, die es ermöglichen, die optimale Konfiguration von SRAM, Flash und Peripheriekomponenten für jedes Design zu wählen.
Die Familie STM32U031 bietet die kompakteste Konfiguration mit 12 KByte SRAM, bis zu 64 KByte Flash-Speicher, mehreren Timern, analoger Peripherie und Vernetzungsoptionen (Bild 4).
Die Familie STM32U073 erweitert die Funktionen der Familie STM32U031 um einen integrierten LCD-Controller, zusätzliche Verbindungskanäle und analoge Peripheriekomponenten und bietet gleichzeitig 40 KByte SRAM und bis zu 256 KByte Flash-Speicher. Die Familie STM32U083 baut auf diesen Eigenschaften auf, indem sie einen Hardware-Beschleuniger mit AES (Advanced Encryption Standard) hinzufügt.
Neben der hohen Integration erreichen alle MCUs der STM32U0-Serie einen extrem niedrigen Stromverbrauch. Im Betriebsmodus verbrauchen sie nur 52 μA/MHz, während sie mit ihrem internen Low-Dropout-Regler (LDO) arbeiten.
Es kann aus mehreren Stromsparmodi gewählt werden, darunter drei Stoppmodi, um den Stromverbrauch in batteriebetriebenen Anwendungen zu minimieren. Im Stoppmodus mit dem niedrigsten Stromverbrauch verbrauchen die STM32U031-MCUs beispielsweise nur 630 nA mit Echtzeituhr (RTC) oder 515 nA ohne RTC. Im gleichen Stoppmodus benötigen die MCUs STM32U073 und STM32U083 nur 825 nA mit RTC bzw. 695 nA ohne RTC. Nichtsdestotrotz können alle drei Familien der STM32U0-Serie, die mit einem 24-MHz-Wake-up-Takt laufen, aus diesem Betriebsmodus mit dem niedrigsten Stromverbrauch in nur 12,0 µs im Flash und 7,67 µs im SRAM den Betriebsmodus erreichen.
Trotz ihres Ultra-Low-Power-Betriebs und dank ihres integrierten adaptiven Echtzeit-Speicherbeschleunigers (ART) erreichen diese MCUs eine Performance, die einer Zero-Wait-State-Ausführung aus dem Flash bei einer Prozessorfrequenz von 56 MHz entspricht.
Tools und Entwicklungskits für eine optimierte Integration
Zur Entwicklungsunterstützung bietet STMicroelectronics das STM32U031-basierte Evaluierungsboard NUCLEO-U031R8, das STM32U083-basierte Evaluierungsboard NUCLEO-U083RC und das STM32U083-basierte Discovery-Kit STM32U083C-DK an. Wie bei anderen Bausteinen der STM32-Familie bietet das MCU-Paket STM32Cube für das STM32Cube-Ökosystem des Unternehmens HAL-Module, BSPs, Low-Layer-APIs, Middleware, Netzwerk-Stacks und Beispielcode. (na)
Den Original-Artikel finden Sie in der Artikel-Datenbank bei DigiKey.