Multicore-Mikrocontroller für IoT-Geräte am Edge einsetzen

2021-12-27 20:06:48 By : Ms. Zede medical

Aktuelle Beiträge aus "Schlagzeilen"

Fröhliche Feiertage und ein gutes Jahr 2022

Erste Bilanz zu Log4Shell

Jahresranking der größten IC-Anbieter

17 Halbleiterhersteller erzielten mehr als 10 Mrd. US-$ Jahresumsatz

Dies waren die meistgelesenen Beiträge 2021

Aktuelle Beiträge aus "Technologie"

KI-Stift eint analoges und digitales Schreiben

Analyse: Kann sich RISC-V durchsetzen?

Aktuelle Beiträge aus "Hardwareentwicklung"

DRAM: Zuverlässigkeit auch unter hoher Last

Grün, rot und gemischt: OLED-Mikrodisplays für Fitnessarmbänder

KI-Stift eint analoges und digitales Schreiben

Aktuelle Beiträge aus "KI & Intelligent Edge"

RISC-V-Embedded-Prozessor für Edge AI und funktionale Sicherheit

Wie vertrauenswürdig ist künstliche Intelligenz?

Aktuelle Beiträge aus "Embedded & IoT"

Python, C und C++ dominieren

Die am häufigsten eingesetzten Embedded-Programmiersprachen 2021

IoT & Edge Developer Survey 2021 der Eclipse Foundation

Was bewegt die IoT-Community im Jahr 2022?

Wenn das Internet der Dinge zur Waffe wird

Aktuelle Beiträge aus "Power-Design"

Knappes Kobalt: Reserven reichen nur noch 11 Jahre

Modulare Netzteile: Präzise, flexibel und günstig

Grüner Wasserstoff aus Wunsiedel: Produktion startet bald

Aktuelle Beiträge aus "FPGA & SoC"

FPGA Conference Europe 2022: Jetzt Vortragsthema einreichen!

Digitale Filter mit Matlab und FPGA-in-the-Loop entwickeln

Chips für assistiertes und autonomes Fahren

Mobileye: Intel will ADAS-Tochter an die Börse bringen

ForgeFPGA: Renesas steigt in den FPGA-Markt ein

Aktuelle Beiträge aus "Fachthemen"

Erste Bilanz zu Log4Shell

Dies waren die meistgelesenen Beiträge 2021

Aktuelle Beiträge aus "Messen & Testen"

Die reale Welt emulieren: Radarsensoren im Labor trainieren

Oszilloskop mit 6 GHz beschleunigt Messungen im Labor

CT-Röntgenprüfsystem beschleunigt den Baugruppentest

Release 17: HF-Transceiver testet Chipsätze bis 71 GHz

Aktuelle Beiträge aus "Branchen & Applications"

Dies waren die meistgelesenen Beiträge 2021

Knappes Kobalt: Reserven reichen nur noch 11 Jahre

Aktuelle Beiträge aus "Elektronikfertigung"

3D-gedruckte Keramik für die Elektronikfertigung

Jahresranking der größten IC-Anbieter

17 Halbleiterhersteller erzielten mehr als 10 Mrd. US-$ Jahresumsatz

Intel investiert 7 Mrd. US-$ in Packaging-Anlage in Malaysia

Aktuelle Beiträge aus "Management & Märkte"

Mit neuem Top-Management auf Wachstumskurs

Dies waren die meistgelesenen Beiträge 2021

Elektronikrohstoffe: Alles wurde teurer – außer Gold

Mit der heute oft geforderten Funktionsfülle von IoT-Endgeräten sind viele Single-Core-Controller überfordert. Zeit für den Einsatz von Multicore-Mikrocontrollern. Wir zeigen, wie der Einstieg gelingt.

Entwickler von Edge-Geräten für das Internet der Dinge (Internet of Things, IoT) müssen immer mehr Funktionen in ihre Produkte inte­grieren. Die Palette reicht von Kommunikations- und Abtastsensoren bis hin zur Ausführung von Inferenzberechnungen für maschinelles Lernen (ML). Gleichzeitig soll der Stromverbrauch der Geräte so gering wie möglich sein. Dies erfordert einen flexiblen architektonischen Ansatz für ein Kernelement ihres Designs – den Mikrocontroller. Da MCUs mit nur einem Prozessorkern mit der geforderten Funktionsvielfalt überfordert sind, kommen vermehrt Multicore-MCUs zum Einsatz. Diese vereinen mehrere, oft unterschiedliche Kerne auf einem Chip.

Das wiederum fordert Entwickler heraus: Sie müssen die Unterschiede zwischen symmetrischen und asymmetrischen Mehrkernprozessoren verstehen, müssen Funktionen geschickt verteilen und die MCUs effizient programmieren. Dieser Artikel stellt das Konzept von Multicore-Mikrocontrollern auf Basis der STM32H7-Dual-Core-Baureihe von Halbleiterhersteller STMicroelectronics vor und erklärt, wie sich eine Balance zwischen Rechenleistung und Energieaufnahme finden lässt.

Der Artikel bespricht auch mehrere Anwendungsfälle, in denen Entwickler die Mehrkernverarbeitung nutzen und die Arbeitslast auf mehrere Kerne aufteilen können. Bei Multicore-Mikrocontroller gibt es überwiegend zwei Arten von Konfigurationen: die symmetrische und die asymmetrische Verarbeitung. Symmetrische Konfigurationen enthalten zwei oder mehr exakt gleiche Verarbeitungskerne. In MCUs kommen häufig Prozessoren von IP-Anbieter ARM zum Einsatz, etwa Cortex-M4. Asymmetrische Konfigurationen setzen auf unterschiedliche Kerne, zum Beispiel einen Cortex-M7-Prozessor und einen Cortex-M4-Prozessor oder einen Cortex-M4- und einen Cortex-M0+. Letztlich entscheidet der geplante Einsatzzweck über die Kombination.

Grundsätzlich sind Multicore-Mikrocon­trollern für IoT-Entwickler interessant, da sie ihre Anwendung in mehrere Ausführungsdomänen separieren können. Getrennte Ausführungsdomänen ermöglichen eine präzise Steuerung der Leistung, der Funktionen und des Energiebedarfs der Gesamtanwendung. Beispielsweise kann ein Kern verwendet werden, um mit einem Benutzer über ein hochauflösendes Display und ein Touchpanel zu interagieren, während der zweite Kern dazu dient, Echtzeitanforderungen des Systems zu verwalten, zum Beispiel die Steuerung eines Motors, von Relais und Abtastsensoren.

Die meisten Entwickler teilen ihre Anwendungen in die Blöcke Funktionsumfang und Echtzeit (feature rich/real-time) oder Echtzeit und Sicherheit (real time/security) auf. Es gibt natürlich noch andere Möglichkeiten, die Aufgaben zu verteilen, doch haben sich diese beiden Paradigmen etabliert.

Im ersten Paradigma verwaltet oft ein Kern die funktionsreichen Anwendungskomponenten, etwa die Anzeige, Inferenzberechnungen, Audiowiedergabe und Speicherzugriffe. Der zweite Kern behandelt dann Echtzeitfunktionen wie Motorsteuerung, Sensorik und Kommunikationsstapel (Bild 2).

Das zweite Paradigma trennt die Anwendung in Echtzeit und Sicherheitsfunktionen. Im ersten Kern kann die Anwendung Dinge wie die Anzeige, den Speicherzugriff und die Echtzeit-Audiowiedergabe handhaben. Der zweite Kern agiert ausschließlich als Sicherheitsprozessor. Als solcher übernimmt er das Speichern kritischer Daten wie Geräte- und Netzwerkschlüssel, die Verschlüsselung, den sicheren Bootloader und alle sonstigen Funktionen, die in die Kategorie sichere Software fallen (Bild 3).

Obwohl Multicore-Mikrocontroller immer beliebter werden, zählen sie noch nicht zum Mainstream. Entwickler müssen zunächst entscheiden, welche MCU am besten für ihr Projekt geeignet ist. Dabei helfen Entwicklungsplatinen, die praktisch alle Chiphersteller für ihre Controller anbieten. Diese sollten LCD-Display zur Untersuchung funktionsreicher Anwendungen besitzen, Ein- und Ausgänge zum Anschluss von Erweiterungen haben, günstig sein und von einem breiten Ökosystem unterstützt werden, zu dem Beispielcode, Gemeinschaftsforen und Zugang zu sachkundigen Applikationsingenieuren (FAE) zählen.

Bild 4: Das STM32H745I-DISCO-Board integriert eine breite Palette von On-Board-Sensoren und Speicherfunktionen, die es Entwicklern ermöglichen, die Dual-Core-Mikrocontroller mit 480 MHz und 240 MHz zu testen. (Bild: STMicroelectronics)

Sehen wir uns einige Beispiele von STMicroelectronics an, beginnend mit dem STM32H745I-DISCO (Bild 4). Dieses Board basiert auf der Dual-Core-MCU STM32 H745ZIT6 mit einem Cortex-M7-Kern, der mit 480 MHz läuft, und einem Cortex-M4-Prozessor, der mit 240 MHz taktet. Dieser Teil enthält eine Gleitkommaeinheit mit doppelter Genauigkeit und einen L1-Cache mit 16 KByte Daten und 16 KByte Befehlscache. Das Evaluierungsboard ist besonders interessant, denn es hat einen SAI-Audio-Codec, ein mikromechanisches MEMS-Mikrofon, integrierten Quad-SPI-Flash, 4 GByte eMMC-Speicher, einen Steckplatz für eine Tochterplatine sowie Anschlüsse für Ethernet und Audio.

Bild 5: Die Baugruppe STM32H757I-EVAL bietet Entwicklern viel Erweiterungsplatz, einfachen Zugang zu Peripheriegeräten und einen LCD-Bildschirm für den Einstieg in Multicore-Anwendungen. (Bild: STMicroelectronics)

Für Entwickler, die nach einer Entwicklungsplatine mit zusätzlichen Fähigkeiten und weit mehr Erweiterungs-E/A suchen, könnte STM32H757I-EVAL besser geeignet sein (Bild 5). Das STM32H757I-EVAL verfügt über zusätzliche Funktionen, etwa 8 M x 32-Bit-SRAM, 1-GBit-Zwei-Quadranten-SPI-NOR-Flash, eingebettete Trace-Makrozelle (ETM) zur Befehlsverfolgung, Potentiometer, LED und diverse Taster und Knöpfe (Manipulation, Joystick, Aufwachen). Diese zusätzlichen Fähigkeiten, insbesondere die E/A-Erweiterung, können für Entwickler, die den Einstieg in die Entwicklung suchen, äußerst nützlich sein.

Unabhängig vom ausgewählten Board benötigen Entwickler zwei Hauptwerkzeuge. Einerseits STM32CubeIDE, eine freie inte­grierte Entwicklungsumgebung (IDE), mit der Entwickler ihren Anwendungscode kompilieren und auf das Entwicklungsboard laden können. STM32CubeIDE bietet auch die notwendigen Ressourcen, um eine Anwendung schrittweise auszuführen und zu debuggen. Es ist für die wichtigsten Betriebssysteme einschließlich Windows, Linux und MacOS verfügbar.

Bild 6: Der STM32Cube_FW_H7 bietet mehrere Beispiele, die den Einstieg in die Multicore-Verarbeitung 
mit OpenAMP demonstrieren und zeigen, wie ein Betriebssystem mit Mehrkernprozessoren konfiguriert 
werden kann. (Bild: Beningo Embedded Group)

Andererseits das Firm­ware-Paket STM32H7. Dazu gehören Beispiele für die STM32H7-Entwicklungsboards für Multicore-Verarbeitung, Verwendung von FreeRTOS, Peripherie-Treiber und FatFS (Dateisystem). Sinnvoll ist es, sich das Firmware-Anwendungspaket herunterzuladen und sich mit den Beispielen vertraut zu machen, die von der gewählten Entwicklungsplatine unterstützt werden. Insbesondere gibt es zwei Ordner, auf die Entwickler achten sollten. Der erste ist der Anwendungsordner mit Beispielen, die zeigen, wie OpenAMP verwendet wird (Bild 6). Diese Beispiele zeigen, wie man Daten zwischen den Mikrocontroller-Kernen überträgt, wobei ein Kern Daten an den anderen Kern sendet, der sie dann wieder an den ersten Kern zurück überträgt. Beide Beispiele führen dies auf unterschiedliche Weise durch: einmal ohne Betriebssystem, einmal mit FreeRTOS.

Der zweite Satz von Beispielen zeigt, wie beide Kerne mit und ohne RTOS konfiguriert werden können (Bild 6). Einmal wird Free RTOS auf jedem Kern ausgeführt, während im anderen RTOS nur auf einem Kern läuft. Andere Beispiele im Firmware-Paket zeigen weiterreichende Funktionen. Das Laden eines Beispielprojekts führt dazu, dass ein Entwickler ein Projektlayout sieht, das dem in Bild 7 gezeigten ähnelt.

Bild 7: Ein Beispiel für ein OpenAMP-Ping-Pong-Projekt demonstriert Entwicklern, wie ein Kommunikationskanal zwischen den beiden CPU-Kernen erstellt wird. (Bild: Beningo Embedded Group)

Wie veranschaulicht, ist das Projekt für jeden Kern in Anwendungscodes unterteilt. Wenn der Anwendungscode auf mehrere Kerne aufgeteilt ist, kann die Build-Konfiguration so eingerichtet werden, dass ein Entwickler jeweils nur mit einem Kern zur gleichen Zeit arbeitet. Die mit dem Paket mitgelieferte Datei readme.txt enthält eine detaillierte Beschreibung der Funktionsweise. Dies hilft, den Quellcode zu untersuchen, um zu verstehen, wie die Inter-Prozessor-Kommunikation (IPC) tatsächlich erfolgt.

Der Einstieg in die Entwicklung eigener Projekte mit Multicore-Mikrocontrollern ist nicht schwierig. Entwickler müssen allerdings einige zusätzliche Überlegungen zu ihrem geplanten Design anstellen. Dabei können folgende Tipps helfen:

Diesen Beitrag lesen Sie auch in der Fachzeitschrift ELEKTRONIKPRAXIS Ausgabe 21/2020 (Download PDF)

Mit Multicore-MCUs können Entwickler von IoT-Edge-Geräten Funktionalität, Leistung und Stromverbrauch besser auf die Anforderungen der Anwendung abstimmen. Die Bausteine ermöglichen es Schaltungsdesignern, ihre Anwendung in Funktionsbereiche wie Feature Rich/Echtzeit- oder Echtzeit/Sicherheitsverarbeitung aufzutrennen. Entwickler können beispielsweise einen Kern deaktivieren und so Energie sparen, wenn eine Verarbeitungsdomäne nicht mehr benötigt wird. Oder sie schalten ihn gezielt ein, um die Anwendungsleistung zu verbessern. So können die Geräte flexibel auf geänderte Rahmenbedingungen reagieren.

* Rolf Horn ist Applications Engineer bei Digi-Key Electronics

Stellar-MCUs: Sieben Kerne und Strahlungsschild für mehr Funktionssicherheit

Neue Funktionen für Mikrocontroller von ST

Universal Debug Engine unterstützt jetzt SR6-MCUs

Cookie-Manager Leserservice AGB Hilfe Werbekunden-Center Mediadaten Datenschutz Impressum Abo

Copyright © 2021 Vogel Communications Group

Diese Webseite ist eine Marke von Vogel Communications Group. Eine Übersicht von allen Produkten und Leistungen finden Sie unter www.vogel.de

STMicroelectronics; PLS; Elektrosil GmbH; Beningo Embedded Group; gemeinfrei; Rawpixel Ltd.; Stabilo International; Andrea Fabry, KIT; Renesas; Rutronik; Fraunhofer FEP / Fotos: shutterstock und Claudia Jacquemin; Faunhofer IPMS; DFKI; geralt; 2021 IoT & Edge Developer Survey Report / Eclipse Foundation / CC BY 4.0; Emtron Electronic; SWW; VCG; Digilent; Mobileye, an Intel Company; Renesas Electronic; Bosch; Rohde & Schwarz; Omron; TU Chemnitz; Xjet; Intel; www.khablo-photo.com