Microcontroller
Microcontroller (auch µController, MCU) sind Ein-Chip-Computersysteme, bei welchen (nahezu) sämtliche Komponenten (wie z.B.: CPU, Programmspeicher (ROM), Arbeitsspeicher (RAM), Ein-/Ausgabe-Schnittstellen) auf einem einzigen Chip (Integrierter Schaltkreis) untergebracht sind. Auf modernen Microcontrollern finden sich zudem häufig auch noch speziellere Peripherieblöcke wie z. B. Taktgeneratoren, E²PROM-Speicher, CAN-, LIN-, USB-, I²C oder Ethernet-Schnittstellen, LCD-Controller und -treiber, hochauflösende Analog/Digital-Konverter (mit 8 bis 24 bit Auflösung und bis zu 16 Kanälen) uvm.Diese Form eines Computers begegnet uns im Alltag ständig unbemerkt in technischen Gebrauchsartikeln, zum Beispiel in Waschmaschinen, Chipkarten (Geld-, Telefonkarten), Unterhaltungselektronik (Videorekordern, CD/DVD-Playern, Radios, Fernsehgeräten, Fernbedienungen), Büroelektronik, Kraftfahrzeugen (ABS, Airbag, Motorsteuerung, ESP usw.), Mobiltelefonen und sogar in Uhren und Armbanduhren. Darüber hinaus sind sie in vielen Computer-Peripheriegeräten enthalten (Tastatur, Maus, Drucker, Monitore, Scanner uvm.).
In ihrer gesamten Masse überschreiten sie an Anzahl das, was man sich unter einem 'Computer' eigentlich vorstellt, weit. Die weit überwiegende Mehrzahl der verwendeten Microcontroller 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-Microcontroller.
Die Anwendungszwecke sind nahezu grenzenlos. Microcontroller sind meist anspruchslos im Energiebedarf und in der Serienfertigung äußerst preiswert herzustellen. Dieses ist auf die hohen Stückzahlen, meist geringen Taktraten von weniger als 100 Megahertz und auf die im Vergleich zu Prozessoren geringere Komplexität zurückzuführen.
Für Hobbyanwendungen, Stückzahlen bis zu einigen tausend Stück pro Jahr und bei der Forderung nach hoher Flexibilität (z. B. wegen geplanter Programmupdates im Feld) werden Microcontroller mit Programmspeicher in Flash- oder E²PROM-Technologie eingesetzt. Für größere Stückzahlen (d. h. im Bereich von mehr als einigen zig tausend Stück pro Jahr werden dagegen zumeist so genannte "maskenprogrammierte" Microcontroller eingesetzt. Der einzelne Controller ist hierbei preisgünstiger, jedoch entstehen Initialkosten für die Herstellung einer Maske mit dem jeweiligen Programmcode (siehe Integrierter Schaltkreis).
µController werden meist in Assembler oder auch in C programmiert, weitere Programmiersprachen wie BASIC und FORTH oder Pascal werden ebenfalls eingesetzt. Assembler bietet hierbei den Vorzug, dass die Programme sowohl sehr schnell sind als auch sehr wenig Programmspeicher benötigen. Dies ist deshalb von so großer Bedeutung, da einerseits der Speicherplatz auf einem µController meist sehr eingeschränkt ist und andererseits die CPU natürlich nicht so schnell ist wie beispielsweise die in einem PC. Der Vorteil von C liegt hingegen in der Übersichtlichkeit und Wiederverwendbarkeit des Programmcodes. Funktionen, die immer wieder benutzt werden (wie z. B. die Übertragung von Daten über eine serielle Schnittstelle) müssen so nicht für jedes Projekt neu geschrieben werden bzw. lassen sich einfach anpassen (siehe auch Programmiersprachen). Zur Funktionsüberwachung von Microcontrollersteuerungen werden in der Regel so genannte Watchdog-Schaltungen eingesetzt.
Die Speichergrößen heutiger Microcontroller liegen im Bereich zwischen ca. 1 KB und 1 MB für das Programm und zwischen ca. 32 Bytes und 48 KB für die Daten.