Mikrocontroller
Mikrocontroller (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 Mikrocontrollern finden sich zudem häufig auch noch speziellere Peripherieblöcke wie z. B. Taktgeneratoren, E²PROM-Speicher, CAN-, LIN-, USB-, I²C- , SPI 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 in Gestalt von eingebetteten Systemen 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 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.
Die Anwendungszwecke sind nahezu grenzenlos. Mikrocontroller 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 Mikrocontroller 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" Mikrocontroller 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 Mikrocontrollersteuerungen werden in der Regel so genannte Watchdog-Schaltungen eingesetzt.
Die Speichergrößen heutiger Mikrocontroller 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.