Als Mikrocontroller (µC oder uC, auch: µController, Micro Controller Unit (MCU), weniger bekannt, der Einchipmikrorechner) werden Halbleiterchips bezeichnet, die einen Prozessor und auch Peripheriefunktionen enthalten. In vielen Fällen befindet sich auch der Arbeits- und Programmspeicher teilweise oder komplett auf demselben Chip bzw. der integrierten Schaltung (IC).
Ein Mikrocontroller ist damit ein „Ein-Chip-Computersystem“ und bringt alle notwendigen Bausteine für einen kleinen Computer mit sich. Eine MCU unterscheidet sich damit von einem Mikroprozessor (µP). Für spezielle Mikrocontroller, die weitere IC-Bausteine auf einem System vereinen, wird auch von einem System-on-a-Chip (SoC) gesprochen.
mini|Mikrocontroller im Keramikgehäuse mit Quarzglasfenster
Einsatzbereiche Der Mikrocontroller tritt in Gestalt von eingebetteten Systemen im Alltag oft unbemerkt in technischen Gebrauchsartikeln auf, zum Beispiel in Waschmaschinen, Chipkarten (Geld-, Telefonkarten), Unterhaltungselektronik (Videorekordern, CD-/DVD-Spieler, Radios, Fernsehgeräten, Fernbedienungen), Büroelektronik, Kraftfahrzeugen (Steuergeräte für z. B. ABS, Airbag, Motor, Kombiinstrument, ESP usw.), Mobiltelefonen und sogar in Uhren und Armbanduhren. Darüber hinaus sind sie in praktisch allen Computer-Peripheriegeräten enthalten (Tastatur, Maus, Drucker, Monitor, Scanner uvm.).
Mikrocontroller sind in Leistung und Ausstattung auf die jeweilige Anwendung angepasst. Daher haben sie gegenüber „normalen“ Computern Vorteile bei den Kosten und der Leistungsaufnahme. Kleine Mikrocontroller sind in höheren Stückzahlen für wenige Cent verfügbar.
Abgrenzung zu Mikroprozessoren mini|Rockwell R6511 Mikrocontroller, basierend auf dem 6502
Die Grenze zwischen Mikrocontrollern und Mikroprozessoren ist etwa seit den 2000er Jahren teilweise fließend, was sich auch darin zeigt, dass oft nach einiger Zeit auch Mikrocontroller-Varianten einer neuen Mikroprozessor-Architektur erschienen sind. Im einfachsten Fall geschieht dies, indem die bei einem klassischen Mikroprozessor als Unterstützungs- und Peripheriebausteine realisierten Komponenten wie Takt- und Reset-Erzeugung, Interruptcontroller, Zeitgeber, Schnittstellenbaustein und zum Teil auch Speichercontroller in den Chip selbst integriert werden, so dass für ein funktionsfähiges Prozessorsystem oft nur noch ein Quarz (für den Takt) und Speicherbausteine nötig sind. Typische Vertreter dieser Gattung sind z. B. der Intel 80186 (vom 8086 abgeleitet), die XScale-Familie (ARM) sowie ColdFire (MC680xx) von Freescale (vormals Motorola). Diese Controller-Baureihen werden oft auch noch dann weitergeführt, wenn die betreffende Mainstream-CPU schon längst nicht mehr produziert wird (z. B. 6502, MC680xx).
Teilweise werden Mikrocontroller auch als Bestandteil eines (MCM) verwendet. Das geschieht meistens dann, wenn verschiedene Halbleiterprozesse kombiniert werden sollen, die sich schlecht oder gar nicht auf einem Chip kombinieren lassen. Beispiele dafür sind Kombinationen von Mikrocontrollern mit Hochfrequenzschaltungen für Funkverbindungen (z. B. Atmel, Cypress, Microchip stellen solche MCMs her), mit Leistungselektronik (z. B. Freescale, STMicroelectronics) oder mit Flash-ROM in dessen Anfangszeiten (z. B. Micronas Intermetall). Teilweise wird die Lösung mit einem MCM auch benutzt, wenn bereits vorhandene Chips miteinander kombiniert werden sollen, aber der Aufwand für einen Neuentwurf vermieden werden soll. Beispiele dafür sind Kombinationen mit Netzwerkcontrollern, bzw. den Anschlusstreibern für Netzwerke (PHY) oder LCD-Controllern.
Demgegenüber gibt es aber auch „klassische“ Mikrocontrollerarchitekturen, die von Anfang an nicht als reines Mikroprozessorsystem gedacht waren, sondern primär auf Steuerungsaufgaben zielten. Diese zeichnen sich z. B. dadurch aus, dass mit ihnen auch ein Single-Chip-Betrieb völlig ohne externe Speicherbausteine möglich ist, ebenso wie der Befehlssatz der CPU meist spezialisierte Befehle für das Steuern einzelner Signalleitungen (mittels sogenannter Bitmanipulationen) bietet. Ebenfalls wichtig ist für solche Controller eine möglichst kurze Interrupt-Latenzzeit, also die Zeitspanne, die der Controller braucht, um auf die Unterbrechungsanforderung einer Signalquelle (Zeitgeber, Peripheriebaustein etc.) zu reagieren. Typische Vertreter dieser Gattung sind z. B. der 8051 von Intel sowie der C166 von Siemens (heute Infineon) und Infineon TriCore. Zur Funktionsüberwachung von Mikrocontrollersteuerungen werden in der Regel sogenannte Watchdog-Schaltungen eingesetzt, die teilweise aber auch schon in den Mikrocontroller integriert sind.
Diese Trennung fand beim Intel 8085 statt – danach gab es die reinen Datenverarbeiter (Mikroprozessor; z. B. 8086-Familie) und die Datenübersetzer (Mikrocontroller; z. B. 8048, 8051) als Schnittstelle zwischen der Hardware und dem zentralen Mikroprozessor. Mikrocontroller können auch eine passive Bus-Schnittstelle haben (z. B. 8041A, eine Variante des 8048) – aus Sicht des Mikroprozessors wie ein Peripherie-Chip. Ob TV, VHS-Rekorder, Röntgengerät, Auto oder PC, überall gibt es heute die Arbeitsteilung zwischen diesen beiden Typen. Durch die Einführung der Busse (K-Bus, CAN-Bus, LIN, FlexRay) kann sich der zentrale Prozessor völlig auf die Auswertung der Message (Telegramm) konzentrieren – z. B. „Taster Handbremse_Ein gedrückt“. Nur der zuständige Controller kennt das Ereignis in der Hardware oder auf einem untergeordneten Bus, das zur Entstehung dieser Message führte. Sendet der Prozessor nun eine Message, z. B. „Handbremse lösen“, wird der Controller die Hardware entsprechend ansteuern bzw. den untergeordneten Bus informieren. Allerdings sind heutige Controller auch schon so rechenstark, dass sie oft auch ohne einen übergeordneten Mikroprozessor auskommen und alle anfallenden Aufgaben selbst komplett bewältigen können.
Schnittstellen und Bausteine Auf modernen Mikrocontrollern finden sich häufig auch komplexe Peripheriefunktionen wie z. B. CAN- (), LIN- (), USB- (Universal Serial Bus), I²C- (Inter-Integrated Circuit), SPI- (), serielle oder Ethernet-Schnittstellen, PDM-Ausgänge, LCD-Controller und -Treiber sowie Analog-Digital-Umsetzer (ADU). Einige Mikrocontroller verfügen auch über programmierbare digitale und/oder analoge bzw. hybride Funktionsblöcke.
Architekturen Die Anzahl der verbauten Mikrocontroller überschreitet bei weitem die Zahl der Mikroprozessoren. Die überwiegende Mehrzahl der verwendeten Mikrocontroller basiert auf 8-Bit-Prozessoren, deren grundlegende Architektur teilweise noch aus der ersten Hälfte der 1970er Jahre stammt. Es gibt jedoch auch 4-, 16- und 32-Bit-Mikrocontroller. Mengenmäßig sind auch die 4-Bit-Mikrocontroller nach wie vor stark vertreten, da sie aufgrund ihres einfachen Aufbaus entsprechend billig herzustellen sind und für einfache Aufgaben, wie z. B. Uhren, ausreichen.
8- und 16-Bit-Mikrocontroller sind mittlerweile dabei, Marktanteile an die 32-Bit-Mikrocontroller zu verlieren. Der Grund ist, dass in modernen Halbleiterprozessoren zwischen 8 und 16 und 32 Bit kein sehr großer Unterschied im Fertigungsaufwand mehr liegt, der Vorteil durch das einfachere Speichermanagement der 32-Bit-Mikrocontroller und der damit einfacheren Programmierung aber erheblich ist. Allerdings benötigen 8- und 16-Bit Mikrocontroller weniger Transistoren, was dazu führt, dass sie, sofern sie auf einem modernen Prozessordesign mit Stromsparmechanismen basieren, meist sparsamer als die 32-Bit-Mikrocontroller sind.
Viele der heute eingesetzten Mikrocontroller basieren auf Prozessorkernen, die zuvor als Mikroprozessoren eingesetzt wurden. Bei den 8- und 16-Bit-Mikrocontrollern werden die Mikroprozessoren mittlerweile meist nicht mehr hergestellt. Es gibt aber auch Mikrocontrollerkerne, die nicht als Mikroprozessor gefertigt wurden, wie Atmel AVR, PIC-Mikrocontroller, Silicon Labs EFM8 oder EFM32, TI MSP430, Infineon TriCore, XMC4000, XMC1000, XE166, XC800, Aurix und weitere.
Benutzte Programmspeicher mini|Verschiedene Varianten der MC68HC05J Familie. Von links: MC68HC705JJ7 mit EPROM, MC68HC705J1A mit PROM, MC68HC05J1A mit Masken-ROM Freigabemuster, MC68HC05J1A mit Masken-ROM Produktionsversion
mini|Kurzzeitig existierende Zwischenlösung (piggyback) mit externem EPROM (oben) auf einem fest integrierten Sockel und integrierter Schnittstellenlogik.
Die in Mikrocontrollern eingesetzten Speichertypen haben sich im Laufe der Jahre geändert und hängen teilweise auch von der Architektur und wirtschaftlichen Gesichtspunkten ab. In der Anfangszeit der Mikrocontroller, und auch heute noch bei den 4-Bit-Architekturen, gab es fast ausschließlich ROM-Speicher. Software für solche Mikrocontroller muss mit entsprechenden Entwicklungssystemen erstellt werden, die eine Simulation des Mikrocontrollers erlauben und meist über einen In-Circuit-Emulator verfügen. Die so erstellte Software wird dann an den Hersteller des Mikrocontrollers übermittelt, der dann die Chips im Fertigungsprozess mit dieser Software versieht. Meist geschieht das bei der Aufbringung der letzten Metalllage auf den Chip (der letzten „Maske“, daher auch „maskenprogrammierte Mikrocontroller“).
Nachteilig bei diesem Verfahren ist die geringe Flexibilität, da bei einer Änderung der Software eine Verzögerung von mehreren Wochen oder sogar Monaten auftritt. Für kleinere Projekte ist diese Technik gar nicht einsetzbar, da die meisten Hersteller Mindestbestellmengen von 20.000 Chips vorsehen. Zudem ist die Fehleranfälligkeit hoch, da die Software nicht auf dem endgültigen Chip, sondern nur mithilfe des Entwicklungssystems getestet werden konnte. Demgegenüber steht der günstigere Preis der Chips, da der Fertigungsprozess für ROM-Speicher etwas einfacher ist als der für programmierbare Speicher und natürlich der Wegfall des Programmierens als Fertigungsschritt. Aus diesem Grund werden heute noch bei Produkten mit sehr großen Stückzahlen und dadurch niedrigen Stückpreisen fast ausschließlich Varianten mit ROM-Speicher eingesetzt.
Um den Entwicklungsprozess zu vereinfachen und Projekte mit kleinen Stückzahlen zu ermöglichen, erschienen in der zweiten Hälfte der 1970er Jahre Mikrocontroller auf dem Markt, die EPROMs () verwendeten. Bei diesen Mikrocontrollern konnte der Programmspeicher mit einem entsprechenden Programmiergerät beschrieben werden und durch UV-Licht wieder gelöscht werden. Damit stand ein wesentlich preisgünstigeres Entwicklungswerkzeug zur Verfügung, das außerdem einen sehr praxisnahen Test erlaubte. Zusätzlich wurden damit auch Projekte mit kleineren Stückzahlen möglich. Besonders durch das aufwändige Keramikgehäuse mit eingelassenem Quarz-Fenster für das Löschen des EPROM-Speichers waren diese Chips allerdings gegenüber den ROM-Versionen deutlich teurer.
Aufgrund der zunehmenden Verwendung der EPROM-basierten Mikrocontroller wurden dann in den 1980er Jahren auch Chips verfügbar, die in einem Kunststoffgehäuse ohne Fenster montiert sind, also nach dem Programmieren nicht mehr durch UV-Licht gelöscht werden können. Diese auch OTP ( – einmal programmierbar) genannten Mikrocontroller sind preislich den ROM-Versionen relativ nahe. Die größere Flexibilität und der Wegfall der Startkosten (für ROM-Versionen berechnet der Hersteller einmal anfallende Werkzeugkosten für jede neue Softwareversion) führt dazu, dass bei zahlreichen Schaltungen auch bei größeren Stückzahlen diese OTP-Chips eingesetzt werden.
Mittlerweile dominiert bei neuen Mikrocontrollern und kleineren Stückzahlen bzw. in der Entwicklungsphase Flash-Speicher als Programmspeicher. Da dieser direkt elektrisch löschbar und wiederbeschreibbar ist, entfällt das aufwändige Keramikgehäuse, und der Speicher kann im Herstellungsprozess komplett getestet werden. Bei wirklich großen Stückzahlen ist weiterhin der Kostenvorteil der ROM-Version wirksam.