Was Mikrocontroller von Mikroprozessoren unterscheidet

Mikrocontroller sind allgegenwärtig, mehr als 20 Milliarden kommen jährlich auf den Markt. Sie dienen anderen Zwecken als Mikroprozessoren.

In Pocket speichern vorlesen Druckansicht 50 Kommentare lesen

(Bild: cherezoff / Shutterstock.com)

Lesezeit: 5 Min.
Inhaltsverzeichnis

Ein Blick auf Extremfälle verdeutlicht Unterschiede: Der winzige Mikrocontroller NXP Kinetis KL03 passt mit 1,6 mm × 2 mm Kantenlänge in die Delle eines Golfballs, der mächtige Mikroprozessor AMD Epyc 7002 steckt in einem fast handtellergroßen Gehäuse. Der KL03 kostet unter 1 Euro, hat einen einzigen 32-Bit-Rechenkern vom Typ ARM Cortex-M0+, taktet mit 48 MHz und kommt mit 8 Mikrowatt bis 400 Milliwatt aus. 32 KByte Flash-Speicher sowie 2 KByte Arbeitsspeicher sind eingebaut und mehr RAM kann er auch nicht ansteuern. Ganz anders der AMD Epyc mit 64 64-Bit-Kernen, der bis zu 4 TByte RAM und 128 PCI-Express-Lanes anbindet, aber auch 280 Watt verheizt.

Es gibt allerdings eine breite Grauzone, in der die Unterschiede zwischen Mikrocontrollern und Mikroprozessoren verschwimmen. Erstere gibt es nämlich auch mit mehreren Kernen, die über 1 GHz Taktfrequenz erreichen, mit Virtualisierungsfunktionen und Anschluss für externes DRAM.

Umgekehrt begnügen sich manche Systems-on-Chip (SoC) mit x86-Kernen mit höchstens 6 Watt und besitzen typische Mikrocontroller-Schnittstellen. Einen Mikrocontroller nennt man auch Micro Controller Unit (MCU) oder kürzer µC, für einen Mikroprozessor gibt es die Abkürzungen Central Processing Unit (CPU) und Micro Processing Unit (MPU).

Die grundsätzlichen Unterschiede zwischen µC und CPU liegen auf anderen Ebenen. Eine CPU führt typischerweise ein funktionsreiches Betriebssystem aus, das die Installation und Ausführung vieler verschiedener Programme (oder Apps) ermöglicht, auch gleichzeitig (Multitasking). Die CPU verarbeitet Tausende laufende Prozesse und Threads sehr schnell, aber es kommt selten darauf an, dass diese auf wenige Millisekunden genau vorhersagbar ablaufen.

Ein Mikrocontroller steuert hingegen meistens nur wenige immer gleiche Funktionen, verarbeitet also eher eine Art Firmware. Als Herz einer Steuerung muss ein µC in vorhersagbarer Zeit – quasi in Echtzeit (Real Time) – Berechnungen erledigen. Das Steuergerät eines Verbrennungsmotors muss Messwerte etwa von Kurbelwellensensor, Luftmassenmesser und Gaspedal innerhalb von Millisekunden zu einem Signal für die Einspritzdüsen verarbeiten.

In anderen Anwendungen geht es um "funktionale Sicherheit": Im Regler eines Antiblockiersystems oder Herzschrittmachers dürfen keine Programmfehler auftreten. Dafür gibt es Prüfvorschriften wie IEC 61508 oder für Autos auch ISO 26262 ASIL A bis D (Automotive Safety Integrity Level).

Der µC-Programmcode soll folglich möglichst schlank sein und komplett ins RAM passen; virtuelle Speicherverwaltung sowie die dabei hilfreiche Hardwareeinheit (Memory Management Unit, MMU) sind oft überflüssig oder stören sogar. Für einfache Aufgaben kann man Mikrocontroller ohne Betriebssystem programmieren.

Gängig sind jedoch modulare und für bestimmte Anwendungsbereiche optimierte µC-Betriebssysteme, beispielsweise für Echtzeit-Steuerungsaufgaben (Real Time Operating System, RTOS). Wikipedia verzeichnet mehr als 140 RTOS-Varianten.

In vielen µC ist Flash-Speicher für Code und RTOS eingebaut, um Zusatzbausteine einzusparen. Mikrocontroller für Steuerungsaufgaben haben eine Fülle von Ein- und Ausgängen: Analog-Digital-(A/D-) und Digital-Analog-(D/A-)Wandler, digitale Ein- und Ausgänge (General Purpose I/O, GPIO), Funktionsblöcke für Pulsweitenmodulation (PWM) sowie für standardisierte Schnittstellen wie I2C, SPI und UART, letztere oft als RS-232 oder RS-485 nutzbar.

Bei "Automotive"-µCs für Fahrzeuge ist eine CAN-Bus-Schnittstelle üblich. Viele Hersteller kombinieren einen µC mit zusätzlichen Funktionsblöcken zu einem SoC, etwa Espressif den ESP32 mit WLAN-Einheit für Smart-Home- und IoT-Geräte.

Mikroprozessoren haben tendenziell wenige eingebaute I/O-Schnittstellen, dafür jedoch besonders leistungsstarke wie PCI Express, die Datentransferraten von mehreren Gigabyte pro Sekunde schaffen. Darüber wiederum ist dann oft ein Chipsatz angeflanscht, der etwa SATA, USB, SPI und I2C anbindet.

Bei CPUs dominieren wenige Befehlssatzarchitekturen (Instruction Set Architectures, ISA), weil es auf (Binär-)Kompatibilität zu Betriebssystemen und Software ankommt. Beispiele sind x86 (AMD, Intel, VIA), ARM Cortex-A (Apple, Qualcomm, Samsung, MediaTek), IBM Power, MIPS und RISC-V RV64GC. Bei einem µC sind dagegen die für bestimmte Einsatzbereiche optimierten Funktionsblöcke oft wichtiger als der Rechenkern, von dem es viele verschiedene gibt wie ARM Cortex-M, Tensilica Xtensa (ESP32), Microchip/Atmel AVR (Arduino), PIC und 8051.

Weniger bekannt sind ARC, LatticeMico, NEC 78K, Renesas RL78, TI MSP430, RISC-V RV32I. Eine µC-Baureihe umfasst oft zahlreiche Varianten, etwa mit unterschiedlichen Taktfrequenzen, SRAM- und Flash-Kapazitäten, Schnittstellen und Zusatzfunktionen, aber auch zertifiziert für unterschiedliche Temperaturbereiche und Industriespezifikationen. Diese Spezialisierung macht das µC-Angebot sehr unübersichtlich. Zudem sind µC in vielen anderen Chips integriert: in WLAN-, Ethernet-, Bluetooth-, USB-Adaptern, in SSD- und Festplattencontrollern, sogar in x86-CPUs von AMD und Intel, etwa für ein Trusted Platform Module (fTPM 2.0).

c’t Ausgabe 24/2021

In c’t 24/2021 stellen wir Ihnen unseren optimalen PC 2022 vor. Neben einer ausführlichen Kaufberatung beschreiben wir zwei konkrete Bauvorschläge: einen ausbaufähigen, leisen Allrounder und einen günstigen Mini-PC. Außerdem haben wir Musikstreaming-Dienste getestet und uns angesehen, was 3D-Sound taugt. Ausgabe 24/2021 finden Sie ab dem 5. November im Heise-Shop und am gut sortierten Zeitschriftenkiosk.

(ciw)