Mikrocontroller und Mikroprozessoren
Sie sind das Herz fast jeden elektronischen Gerätes und zählen zu den aktiven Bauteilen. Selbst bei recht einfachen Steuerungsaufgaben setzt man heute aus Kosten-, Platz- und Stromversorgungsgründen eher einen Mikrocontroller ein als eine Ansammlung von Einzel-Schaltkreisen. Jeder Mikrocontroller beherbergt auch einen kleinen Mikroprozessor.
Ein Mikroprozessor hat hingegen vorwiegend die schnelle Verarbeitung umfangreicher Daten in einem aufgesetzten Betriebssystem zur Aufgabe. Er ist eine reine Recheneinheit ohne integrierte Peripherie.
Was ist ein Mikroprozessor?
Der Mikroprozessor ist eine zentrale Verarbeitungseinheit (Central Processing Unit – CPU), die aus logischen Anordnungen von vielen Millionen bis Milliarden Transistoren, Dioden, widerständen und Kondensatoren auf kleinstem Raum besteht. Er setzt sich aus einer Recheneinheit (Arithmetic and Logical Unit – ALU), Registern und einer Kontrolleinheit zusammen.
Der Mikroprozessor kann universell quasi beliebige Daten verarbeiten, die in einem Betriebssystem verwaltet, aufbereitet und weiterverarbeitet werden. Dazu benötigt er umfangreiche, externe Peripherie wie Speicher (RAM/ROM), I/O-Bausteine, Schnittstellen, Taktbausteine, Controller-Bausteine u. v. m., mit denen er über einen Datenbus kommuniziert.
Sein globaler Hauptvorteil ist die Datenverarbeitung mit sehr hoher Verarbeitungsgeschwindigkeit sowie durch den integrierten mathematischen Coprozessor auch schnelle umfangreiche Berechnungen. Dafür werden Taktraten bis weit in den Gigahertz-Bereich eingesetzt.
Der Nachteil ist ein hoher Strombedarf und die nötige, umfangreiche Peripherie. Auch die Herstellung ist aufwändig und damit sind Mikroprozessoren teurer als Mikrocontroller.
Der Haupteinsatzbereich ist in klassischen Computern aller Art. Die Bandbreite reicht vom Großrechner über den PC oder mobile Geräte wie Smartphones und Tablets bis hin zu Consumergeräten oder komplexe Industriesteuerungen.
Was ist ein Mikrocontroller?
Mikrocontroller (im englischen Sprachraum „Microcontroller”) sind eigenständige Einheiten (Mikrocontroller Unit - MCU). Diese bestehen aus einem kleinen Mikroprozessor und allen zum Betrieb nötigen Peripheriekomponenten wie Speicher und I/O-Einheiten oder Timer. Sie sind häufig auf einem sehr kompakten Chip untergebracht. Im Vergleich zum Mikroprozessor sind sie quasi kleine, eigenständige Computer, die in der einfachsten Anwendung keinerlei Peripherie benötigen.
Er erfordert oft nur eine geringe Peripherie wie z. B. eine externe Speichererweiterung oder spezielle Schnittstellenumsetzer. So sind Mikrocontrollerschaltungen sehr kompakt aufzubauen.
Die nahezu ausschließliche interne Datenverarbeitung macht Mikrocontroller in der Verarbeitung definierter Echtzeitaufgaben besonders beliebt. So ist keine externe Bus- und Speicherkommunikation erfordernde Datenverarbeitung nötig und auch kein aufgesetztes Betriebssystem.
Die insgesamt geringere Bauteilmenge/-dichte und die meist deutlich geringeren Taktraten als beim Mikroprozessor bringen dem Mikrocontroller dazu den Vorteil eines deutlich geringeren Stromverbrauchs.
So sind Mikrocontroller auch sehr verbreitet für spezielle Aufgaben in mobilen Geräten, die mit Batterien, Akkus oder z. B. Solarversorgung arbeiten. Sie sind zudem sehr einfach in extrem stromsparende Bereitschaftsmodi zu versetzen und sehr schnell wieder aus diesen zu wecken.
Was macht ein Mikrocontroller?
Gegenüber einem Mikroprozessorsystem benötigt der Mikrocontroller kein spezielles Betriebssystem. Er erhält seine begrenzte Aufgabe über kompilierte Daten. Diese korrespondieren mit seinem Befehlssatz und leiten nach dem Start der Programmverarbeitung eigenständig und andauernd den Programmcode ab – ein Befehl je Taktzyklus.
Alle Daten werden intern verarbeitet. Die Verarbeitungsergebnisse werden über die integrierten Schnittstellen wie z. B. I/O-Ports oder UART ausgegeben bzw. Ereignisse, digitale oder analoge Daten, die an den Ports/Schnittstellen anliegen, zur Verarbeitung eingelesen.
Die Programme können über die verschiedensten Programmierumgebungen erstellt und kompiliert werden. So ist das Programmieren von Mikrocontrollern auch nicht professionellen Programmierern möglich wie etwa über grafische Programmierumgebungen. Zudem sorgen integrierte Programmierschnittstellen wie ISP oder spezielle Bootloader für einfaches Übertragen der Programme auf den Mikrocontroller ohne zusätzliche Programmiergeräte.
Die Programmierung für umfangreichere Aufgaben wie z. B. mit Gleitkommaberechnungen muss allerdings auch sehr klar strukturiert und kompakt erfolgen, um keine Einbußen bei der Programmverarbeitungsgeschwindigkeit zu erleiden. Während lange Mikrocontroller lediglich eine Verarbeitungsbreite von 8 Bit aufwiesen, arbeiten leistungsstarke Mikrocontroller heute bereits mit 32 Bit.
Mikrocontroller sind das Herzstück eigenständig arbeitender Geräte und sie sind als Steuerung in diese integriert (embedded).
Bedeutende Mikrocontrollerreihen – die Atmel-Controller
Der erste Mikrocontroller wurde bereits 1974 vorgestellt – der TMS 1 von Texas Instruments. Weitere historische Mikrocontroller sind z. B. der Intel 848 und der 851 (von NXP: MCS-48/51).
Bedeutende Mikrocontrollerreihen sind u. a. die
Atmel-Controller von Microchip (früher Atmel) – ein Auszug:
- ATtiny
- ATmega
- ATtiny85
- Attiny44
Weitere bekannte Reihen sind bspw. die PIC-Mikrocontrollerreihe (Microchip), die STM-Controller von ST Microelectronics, die MSP-Reihe von Texas Instruments, die ESP-Controller von Espressif und der RP24, der von der Raspberry Pi Foundation kreiert wurde.
Leistungsfähige Mikrocontroller basieren heute vielfach auf der
RISC-ARM-Architektur (Advanced RISC Machines), die u. a. mit integrierter Peripherie als komplexes System on Chip (SoC) ausgeführt sind.