Wikipedia · einfach zusammengefasst · Stand
Mikrocontroller
Ein Mikrocontroller ist damit ein „Ein-Chip-Computersystem“ und bringt alle notwendigen Bausteine für einen kleinen Computer mit sich. Eine MCU unterscheidet …
Inhalt6 Abschnitte
Grundidee und Bedeutung
Ein Mikrocontroller (µC, uC, MCU oder Einchipmikrorechner) ist ein Halbleiterchip, der einen Prozessor und Peripheriefunktionen enthält. Arbeits- und Programmspeicher liegen häufig teilweise oder vollständig auf derselben integrierten Schaltung (IC). Damit ist er ein „Ein-Chip-Computersystem“: Er bringt die nötigen Bausteine für einen kleinen Computer mit.
Ein spezieller Mikrocontroller, der weitere IC-Bausteine auf einem System vereint, wird auch System-on-a-Chip (SoC) genannt. Mikrocontroller sind auf eine konkrete Aufgabe zugeschnitten und deshalb oft kostengünstiger und stromsparender als normale Computer. Kleine Modelle kosten bei hohen Stückzahlen nur wenige Cent.
Typische Anwendungen
Mikrocontroller arbeiten meist als eingebettete Systeme, also als in ein Gerät integrierte Steuerung. Sie sind unter anderem in Waschmaschinen, Chipkarten, Videorekordern, CD-/DVD-Spielern, Radios, Fernsehgeräten, Fernbedienungen, Büroelektronik, Mobiltelefonen sowie Uhren und Armbanduhren zu finden.
In Kraftfahrzeugen steuern sie beispielsweise ABS, Airbag, Motor, Kombiinstrument und ESP. Auch praktisch alle Computer-Peripheriegeräte wie Tastaturen, Mäuse, Drucker, Monitore und Scanner enthalten Mikrocontroller.
Unterschied zu Mikroprozessoren
Die Grenze zwischen Mikrocontroller und Mikroprozessor ist seit etwa den 2000er Jahren teilweise fließend. Bei einem klassischen Mikroprozessor sind Komponenten wie Takt- und Reset-Erzeugung, Interruptcontroller, Zeitgeber, Schnittstellen und teilweise Speichercontroller oft außerhalb des Prozessors angeordnet. Werden sie in den Chip integriert, genügt für ein funktionsfähiges System häufig nur noch ein Quarz für den Takt sowie Speicherbausteine. Beispiele dafür sind Intel 80186, XScale und ColdFire.
Klassische Mikrocontrollerarchitekturen sind dagegen von Anfang an für Steuerungsaufgaben ausgelegt. Sie können im Single-Chip-Betrieb ohne externe Speicherbausteine arbeiten. Ihr Befehlssatz enthält oft Bitmanipulationen zum Steuern einzelner Signalleitungen. Wichtig ist außerdem eine kurze Interrupt-Latenzzeit: die Zeit, bis der Controller auf eine Unterbrechungsanforderung etwa eines Zeitgebers oder Peripheriebausteins reagiert. Beispiele sind Intel 8051, Siemens C166 und Infineon TriCore. Watchdog-Schaltungen überwachen üblicherweise die Funktion einer Mikrocontrollersteuerung; sie können bereits integriert sein.
Mikrocontroller können als Schnittstelle zwischen Hardware und einem zentralen Mikroprozessor wirken. Über Busse wie K-Bus, CAN-Bus, LIN und FlexRay kann der zentrale Prozessor Nachrichten auswerten, während ein zuständiger Controller die zugehörige Hardware oder einen untergeordneten Bus kennt und ansteuert. Heutige Controller sind jedoch oft leistungsfähig genug, um alle Aufgaben ohne übergeordneten Mikroprozessor zu übernehmen.
Schnittstellen und Prozessorbreiten
Moderne Mikrocontroller besitzen häufig integrierte Schnittstellen und Funktionsblöcke, etwa CAN, LIN, USB, I²C, SPI, serielle oder Ethernet-Schnittstellen, PDM-Ausgänge, LCD-Controller und -Treiber sowie Analog-Digital-Umsetzer (ADU). Manche verfügen zusätzlich über programmierbare digitale, analoge oder hybride Funktionsblöcke.
Es werden weit mehr Mikrocontroller als Mikroprozessoren verbaut. Die meisten basieren auf 8-Bit-Prozessoren; daneben gibt es 4-, 16- und 32-Bit-Mikrocontroller. 4-Bit-Modelle sind wegen ihres einfachen Aufbaus günstig und für einfache Aufgaben wie Uhren ausreichend. 8- und 16-Bit-Mikrocontroller verlieren Marktanteile an 32-Bit-Modelle, weil deren Fertigung nicht wesentlich aufwendiger ist und ihr Speichermanagement sowie ihre Programmierung einfacher sind. 8- und 16-Bit-Modelle benötigen jedoch weniger Transistoren und sind bei modernen Stromsparmechanismen meist sparsamer.
Es gibt Mikrocontrollerkerne, die früher als Mikroprozessoren eingesetzt wurden, sowie speziell entwickelte Kerne wie Atmel AVR, PIC, Silicon Labs EFM8 und EFM32, TI MSP430, Infineon TriCore, XMC4000, XMC1000, XE166, XC800 und Aurix.
Programmspeicher
Die Speichertechnik hängt von Architektur, Anwendung und Kosten ab. Frühe Mikrocontroller und viele 4-Bit-Architekturen verwendeten ROM. Bei maskenprogrammierten Mikrocontrollern liefert der Hersteller die fertige Software bereits während des Fertigungsprozesses ein. Das ist bei großen Stückzahlen günstig, aber unflexibel: Änderungen können mehrere Wochen oder Monate dauern, und Hersteller sehen meist Mindestbestellmengen von 20.000 Chips vor.
Ab der zweiten Hälfte der 1970er Jahre erleichterte EPROM die Entwicklung. Der Programmspeicher wird mit einem Programmiergerät beschrieben und durch UV-Licht gelöscht. Dies erlaubt praxisnahe Tests und kleinere Stückzahlen, erfordert wegen des Quarzfensters im Keramikgehäuse aber teurere Chips. OTP-Mikrocontroller in Kunststoffgehäusen sind nach dem Programmieren nicht löschbar, liegen preislich jedoch nahe bei ROM-Versionen und vermeiden deren Startkosten für neue Softwareversionen.
Bei neuen Mikrocontrollern sowie kleinen Stückzahlen und in der Entwicklung dominiert Flash-Speicher. Er ist elektrisch löschbar und wiederbeschreibbar. Bei sehr großen Stückzahlen bleibt ROM kostengünstiger. ROM kann bei extremen Temperaturanforderungen der einzige ausreichend stabile Speicher sein; EPROM hat dabei noch Vorteile gegenüber Flash.
Typische heutige Größen liegen bei 1 kByte bis 2 MB Programmspeicher und 32 Bytes bis 48 kByte Datenspeicher. Das erwähnte RAM ist intern; für ROM kommen interne und externe Lösungen vor. Viele Modelle können deutlich größeren externen Speicher ansprechen.
Programmierung
Mikrocontroller werden meist mit Assembler, C oder C++ programmiert; auch BASIC, Pascal, Forth und Ada werden eingesetzt. Neuere Angebote lassen sich beispielsweise mit Lua, etwa NodeMCU, oder MicroPython programmieren. Die Wahl der Sprache richtet sich nach Architektur, Ziel und Anforderungen.
Für 4-Bit-Architekturen wird fast ausschließlich Assembler verwendet, weil Compiler die knappen Ressourcen meist nicht effektiv nutzen können. Bei 8-Bit-Architekturen dient Assembler oft hoher Effizienz und Code-Dichte. Wenn nur wenige µC-Ressourcen benötigt werden oder kleine Stückzahlen entstehen, verringern Hochsprachen den Entwicklungsaufwand. 16- und 32-Bit-Architekturen werden überwiegend in Hochsprachen programmiert.
C ist die am häufigsten verwendete Hochsprache, weil sie hardwarenahes Programmieren ermöglicht. Ada wird vor allem in militärischen und anderen sicherheitskritischen Bereichen eingesetzt, etwa in der Avionik. Grafische Entwicklungswerkzeuge können ausführbaren Code erzeugen: LabVIEW unterstützt einige Controller; PSoCexpress soll einfache Steuerungsanwendungen mit PSoC-Mikrocontrollern ohne Programmierkenntnisse ermöglichen.
Einige Mikrocontroller enthalten einen Hochspracheninterpreter. Der 8052AH-BASIC besitzt einen BASIC-Interpreter in einem 8 kByte großen ROM; Rockwell R65F11/R65F12 enthält einen Forth-Interpreter im internen ROM. Zur Programmierung genügt dann ein Rechner mit serieller Schnittstelle und Terminalprogramm. Module, die in Basic oder Forth programmierbar sind, werden besonders bei Hobbyisten sowie bei kleinen Stückzahlen, etwa im Prüfmittelbau und für Labortests, wegen ihrer einfachen Handhabung genutzt.
Lernvideos zu Mikrocontroller
10:14
Der EINFACHSTE Einstieg in Mikrocontroller-Projekte!
Make Magazin · 140.591 Aufrufe
20:46
Mikrocontroller-Architektur erklärt am ATmega328 (Arduino)
FearlessEngineers - Elektrotechnik & Programmieren · 29.693 Aufrufe
7:32
Mikrocontroller Lernpaket - Technik mit Bascom
Computer:Club2 · 13.945 Aufrufe
4:32
Was ist Arduino? Einführung in die Welt der Mikrocontroller
MakerQuests - Arduino & IoT · 13.018 Aufrufe