Mikrocontroller einfach erklärt

Wie Mikrocontroller funktionieren und wieso sie für die Automation unentbehrlich sind

Mikrocontroller-Leitfaden-Banner

Größer ist nicht immer besser: Einfache Steuerungsfunktionen sowohl in der Automation als auch in Geräten im Haushalt übernimmt ein günstiger Mikrocontroller mit Leichtigkeit. Doch worin genau besteht der Unterschied zwischen einem solchen und einem Mikroprozessor? Die Antwort finden Sie in unserem Leitfaden!

Was ist ein Mikrocontroller?

Einfach ausgedrückt: Mikrocontroller (oder microcontroller unit, oft verkürzt auf MCU, µController oder µC) sind im Grunde extrem kleine Computer, die auf einem einzigen Chip aufgebracht sind und ein vollständig in sich geschlossenes System bilden.

Sie sind so konzipiert, dass sie nur ein einzelnes Basisprogramm periodisch ausführen und eignen sich daher bestens für vorprogrammierte, automatisierte Aufgaben, um diese in einer einzigen Vorrichtung wiederholt auszuführen. Dies geschieht üblicherweise in einer zeitgesteuerten Schleife, die man als embedded application (dt. „eingebettete Anwendung“) bezeichnet. Demgegenüber steuern Mikroprozessoren (auch bekannt als MPs oder CPUs) vielseitigere und allgemeinere Anwendungen.

Wie wir im weiteren Verlauf dieses Leitfadens näher ausführen werden, enthalten Mikrocontroller tatsächlich einen Mikroprozessoren als eine ihrer Schlüsselkomponenten. Dabei handelt es sich jedoch typischerweise um eine vergleichsweise weitaus weniger komplexe und dynamische Form der CPU. Der Grund dafür ist, dass sich die MCU als Ganzes im Allgemeinen auf die Ausführung einer einzelnen, hochspezifischen Aufgabe beschränkt und nicht den vollen Funktionsumfang eines Mikroprozessoren, wie Sie ihn beispielsweise in einem PC oder Tablet finden können, benötigt.

Welche Mikrocontroller-Typen gibt es?

Obwohl es heutzutage mehrere Dutzend anerkannte Herstellermarken und Programmierarchitekturen für Mikrocontroller auf dem Markt gibt, werden tatsächlich nur drei verschiedene Arten von MCUs eingesetzt. Zur Auswahl stehen somit:

  • 8-Bit-Mikrocontroller
  • 16-Bit-Mikrocontroller
  • 32-Bit-Mikrocontroller

Auch hier geht ein tiefer Einblick in das gesamte Spektrum und die Auswirkungen der Unterschiede zwischen den einzelnen dieser drei Komponententypen weit über den nützlichen Rahmen dieses grundlegenden Leitfadens hinaus. Für einen einfachen Überblick reicht jedoch schon eine Unterscheidung anhand der Busbreite – oder, für den Laien, aus der Breite der jeweiligen "Datenleitungen“.

Letztlich ist dies die Schlüsselspezifikation, welche die mathematische Genauigkeit der Geschwindigkeit eines bestimmten Mikrocontrollers begrenzt. Kurz gesagt, ein 8-Bit-Mikrocontroller benötigt eine höhere Anzahl von Buszugriffen und mehr Anweisungen, um 16-Bit- oder 32-Bit-Berechnungen durchzuführen, und kommt daher viel langsamer zur "Antwort" (d.h. zum Ausgangsverhalten) als eine 16- oder 32-Bit-MCU.

Ein ausführlicherer Vergleich zwischen 8-, 16- und 32-Bit-Mikrocontrollern würde ein Glossar der Begriffe für Nicht-Programmierer erfordern. Im Hinblick auf Computer unterliegen sie allerdings praktisch der gleichen Art von Einschränkungen wie bei einer "langsamen" CPU (im Gegensatz zu einer "schnelleren" und leistungsfähigeren CPU) vorfindet. Anhand solcher Kriterien richten sich auch die Auswahl der zur Verfügung stehenden Programmiersprachen (wie C++, Python, R, Arduino usw.), die Sie bequem mit einer bestimmten Mikrocontroller-Einheit verwenden können.

Für Kaufinteressenten, die eine Entscheidungshilfe benötigen, sollte an dieser Stelle der Hinweis genügen, dass 8-Bit-MCUs seit langem als die grundlegendsten und kostengünstigsten Optionen angesehen werden, aber in einigen Anwendungen nur eingeschränkte Funktionalität bieten. 16-Bit- und 32-Bit-Mikrocontroller hingegen sind in der Regel zwar deutlich teurer, warten aber mit entsprechenden Leistungssteigerungen auf.

Architekturen

Obwohl nur die oben beschriebenen drei Kernarten von Mikrocontrollern zur Auswahl stehen, gibt es in diesem Bereich doch eine sehr große Bandbreite an Marken und Architekturen von MCU-Herstellern.

Auch hier wollen wir auf die genauen Unterschiede zwischen den verschiedenen verkauften Architekturen und Marken nicht näher eingehen, um nicht den Rahmen dieses Leitfadens zu sprengen. Ohnehin werden die meisten mit dem Kauf eines Mikrocontrollers beauftragten Anwender zumindest mit den Kernbuilds und Maschinensprachen vertraut seien.

Einige der beliebtesten Hersteller- und Prozessoren, nach denen Benutzer häufig Ausschau halten, beinhalten:

  • ARM Kernprozessoren (viele Händler bieten ARM-basierte Komponenten an, von denen vor allem ARM Cortex-M Kerne im Mikrocontroller-Bereich Anwendung finden)
  • Microchip Technology Atmel AVR (8-bit), AVR32 (32-bit) und AT91SAM (32-bit)
  • Microchip Technology PIC (8-bit PIC16, PIC18, 16-bit dsPIC33 / PIC24), (32-bit PIC32)
  • Freescale ColdFire (32-bit) sowie S08 (8-bit)
  • Intel 8051
  • PowerPC ISE
  • Renesas Electronics: RL78 16-bit MCU, RX 32-bit MCU, SuperH, V850 32-bit MCU, H8, R8C 16-bit MCU
  • Silicon Laboratories Pipelined 8-bit 8051 Mikrocontroller und mixed-signal ARM-basierte 32-bit Mikrocontroller
  • Texas Instruments TI MSP430 (16-bit), MSP432 (32-bit) und C2000 (32-bit)
  • Toshiba TLCS-870 (8-bit/16-bit)

Wie funktioniert ein Mikrocontroller?

Wie bereits erwähnt, ist eine Mikrocontroller-Einheit (µC) im Grunde genommen ein sehr kleiner Computer, der vollständig in eine einzige integrierte Schaltung eingebettet ist. Letztere bezeichnet man auch als Chip.

In dieser Hinsicht ähnelt ein Mikrocontroller einem System-on-Chip (SoC), wie er typischerweise in einem Heimcomputers verbaut und der üblicherweise von Intel oder AMD hergestellt wird. Ein Mikrocontroller ist jedoch deutlich weniger anspruchsvoll als der durchschnittliche SoC (letzterer beinhaltet oft einen oder mehrere Mikrocontroller unter seinen vielen Kernkomponenten).

Mikrocontroller funktionieren wie ein sehr einfaches SoC, indem sie externe Signale über eine Vielzahl von Kommunikationsprotokollen erkennen und darauf reagieren können - dazu gehören USB, Touch Response, Umweltsensoren und vieles mehr.

Bei richtiger Programmierung reagiert eine MCU auf bestimmte Eingaben oder Signaldetektionen, und reagiert so schnell, um eine vielfältigen Palette von Funktionen und Anwendungen auszuführen. Diese reichen von einfachen Input-Output (I/O)-Triggern und Komponenten-Steuerungsalgorithmen bis hin zur Beeinflussung des zusätzlichen Komponentenverhaltens in wesentlich komplexeren, voll integrierten Systemen.

Mikroprozessor-Aufbau unter der Lupe

Für ein besseres Verständnis der Funktionsweise von MCUs lohnt es sich durchaus, ein wenig über deren Aufbau zu wissen – vor allem, wenn man die Unterschiede zwischen MCUs und ähnlichen Komponenten erkennen will.

Da ein Mikrocontroller im Grunde viele derselben grundlegenden Komponenten wie ein "richtiger" Computer braucht, können wir uns quasi dessen einzelnen Bestandteile genauer ansehen:

  • CPU (=central processing unit, dt. Zentraleinheit)
    • Im Wesentlichen das „Gehirn“ des Mikrocomputers. Bei dieser Komponente handelt es sich um einen Mikroprozessor, der alle Prozesse innerhalb der MCU steuert und überwacht.
    • Verantwortlich für das Lesen und Ausführen aller logischen/mathematischen Funktionen.
  • RAM (=random access memory, dt. Direktzugriffsspeicher)
    • Zwischenspeicher, der nur verwendet wird, um die Ausführung und Berechnung der Programme zu erleichtern, die die MCU ausführen soll.
    • Wird während der Nutzung ständig überschrieben
  • ROM (=read-only memory, dt. Nur-Lese-Speicher)
    • Bereits beschriebener "permanenter" Festwertspeicher, der die Daten auch ohne Stromversorgung erhält.
    • Weist die MCU im Wesentlichen an, wie sie ihre Programme auf Anfrage ausführen soll.
  • interner Oszillator (der Haupttimer der MCU)
    • Diese Komponente fungiert als Kerntaktgeber des Mikrocontrollers und steuert die Ausführungsrhythmen seiner internen Prozesse.
    • Wie jede andere Art von Timer behalten sie die Zeit im Auge, die während eines Prozesses vergeht, und unterstützen die MCU bei der Ausführung bestimmter Funktionen in festgelegten Intervallen.
  • I/O (Input/Output)-Anschlüsse
    • Ein oder mehrere Kommunikationsanschlüsse, typischerweise in Form von Pins.
    • Diese ermöglichen die Verknüpfung der MCU mit anderen Komponenten und Schaltungen für den Fluss von Ein-/Ausgangsdatensignalen und der Stromversorgung.
  • Peripheriegeräte-Chips und weiteres optionales Zubehör
    • Abhängig von der Aufgabe, die die MCU zu erfüllen hat.
    • Dies können verschiedene zusätzliche Timer und Zähler, Pulsweitenmodulations (PWM)-Knoten, Analog-Digital-Wandler, Digital-Analog-Wandler, zahlreiche Datenerfassungsmodule, weitere I/O-Optionen und vieles mehr sein.

Umfang und Kapazität dieser Komponenten sind im Gegensatz zu vergleichbaren eines SoC in einem Personal Computer deutlich reduziert. Eine MCU findet man häufig bei der Steuerung von grundlegenden Verhaltensweisen, z.B. in einem Haartrockner oder einem Taschenrechner. Für den Einsatz in komplexeren Maschine wie einem vollständigen Computer sind die Funktionen zu eingeschränkt.

Gut zu wissen!

Sie wollen gleich loslegen und einen Mikrocontroller programmieren oder benötigen Tipps, wie man einen solche nfür bestimmte Aufgaben automatisiert? In unserem Design Spark finden Sie Dutzende von hilfreichen Anleitungen von professionellen Embedded Software Entwicklern und Hobbyprogrammierern, wie man einen Mikrocontroller für bestimmte Aufgaben programmiert und bedient.

Gut zu wissen

Worin unterscheidet sich ein Mikrocontroller von einem Mikroprozessor?

Aufgrund der vielen Ähnlichkeiten zwischen den beiden ist es wenig verwunderlich, dass oft Verwirrung darüber herrscht, was genau einen Mikrocontroller von einem Mikroprozessor (MP) oder System on Chip (SoC) absetzt.

Um es kurz auszuführen: ein Mikrocontroller ist eine vereinfachte, Single-Task-Version eines SoC. Obwohl eine MCU technisch gesehen eine Art CPU/Prozessor als Teil ihrer integrierten Schaltung beinhaltet, handelt es sich dabei um eine stark vereinfachte Version. Dieser leistungsreduzierte Mikroprozessor fungiert effektiv als einfache CPU für die Mikrocontroller-Einheit und verleiht ihr die grundlegende Fähigkeit, ihrer programmierten Aufgabe nachzugehen.

Zur vereinfachten Darstellung der wesentlichen Unterschiede zwischen einer MCU und einem MP genügt ein direkter Vergleich der einzelnen Komponenten. So enthält ein echter Mikroprozessor keinen Speicher (RAM oder ROM) oder I/O-Ports und kann nur als Teil eines breiteren Systems betrieben werden. Beispielsweise werden die Anweisungen, die einem eigenständigen Mikroprozessor sagen, wie er eine bestimmte Funktion ausführen soll, im Allgemeinen extern gespeichert. In einem Mikrocontroller werden alle diese verschiedenen Komponenten - einschließlich des vereinfachten Prozessors - zu einer einzigen in sich geschlossenen Einheit zusammengefasst.

Mit Hinblick auf die Leistung lassen sich die Hardware-Unterschiede wie folgt zusammenfassen:

Mikrocontroller (MPU)

zwei Mikrocontroller

Merkmale

  • Bilden eine komplette in sich geschlossene Einheit, die eine sehr einfache CPU oder Mikroprozessor enthält.
  • Eignen sich ideal für einzelne, spezifische Anwendungen, wie vom Benutzer vorprogrammiert.
  • Weniger Leistung und Datenspeicherkapazität, dafür aber auch geringerer Stromverbrauch.
  • Müssen vom Anwender programmiert werden, um eine sinnvolle Rolle zu übernehmen.
  • Können keine Aufgaben außerhalb eines speziell programmierten Aufgabenbereichs ausführen (der für die MCU geschriebene Code - und die Qualität davon - wird ihre Leistung vollständig bestimmen).
  • Im Allgemeinen für den Einsatz in bestimmten Geräten oder Maschinen vorgesehen, die eine spezifische Aufgabe wiederholt ausführen sollen.
Zum Sortiment

Mikroprozessor (CPU)

Mikroprozessor

Merkmale

  • Sind viel komplexer und vielseitiger in Bezug auf den Funktionsumfang und für den Einsatz im allgemeinen Computing vorgesehen (im Gegensatz zu speziellen One-Task-Geräten).
  • Haben viel schnellere Prozessor- ("Takt"-) Geschwindigkeiten als MCUs, die oft in Gigahertz (GHz) statt in Hz gemessen werden.
  • Sind anspruchsvoller und teurer in der Herstellung, im Gegensatz zu relativ einfachen und billigen Mikrocontrollern.
  • Erfordern weitaus mehr externe Komponenten (RAM, I/O-Ports, Datenspeicher usw.) für den Betrieb, die nicht in den MP selbst integriert sind und separat gekauft und angeschlossen werden müssen.
  • Haben eine wesentlich höhere Leistungsaufnahme und sind folglich unwirtschaftlicher im Dauerbetrieb.
Zum Sortiment

Mikrocontroller-Anwendungen

Schon kurz nach ihrer Einführung erreichten Mikrocontroller eine breite Marktdurchdringung in einer Vielzahl moderner Anwendungen und Branchen. Heutzutage finden sie in allen möglichen Technologien und Geräten Einsatz.

Man kann also durchaus behaupten, dass mehr oder weniger jedes elektronische Gerät, das über einen Sensor, ein Display, eine Benutzeroberfläche und ein programmierbares Ausgangssteuerung/-aktuator verfügt, sehr wahrscheinlich eine MCU als Schlüsselkomponente seiner Funktionsweise aufweist.

  • Zu den gängigsten Anwendungsmöglichkeiten und Einsatzgebieten von Mikrocontrollern gehören derzeit beispielsweise:
  • Automatisierung und Robotik
  • Unterhaltungselektronik und Haushaltsgeräte (von Kühlschränken, Wasserkochern, Mikrowellen und Waschmaschinen bis hin zu Fernsehern, Fernbedienungen, Elektrorasierern und Telefonen fürs Festnetz)
  • Medizin- und Laborgeräte (tragbare Diagnosegeräte, Scanner und Röntgengeräte, Mess-, Analyse- und Überwachungswerkzeuge)
  • Die Automobilindustrie sowie Fahrzeugsteuerungssysteme (Antriebsstranganpassung, Multimedia-Konsolen und Navigationssoftware)
  • Die Steuerung von Industrie- und Produktionsumgebungen (Heizung und Beleuchtung, HLK-Anlagen, Sicherheitsverriegelungen und mehr)

Als Teil eines funktionierenden Kreislaufs in einem Gerät oder System vermag es ein MCU verschiedene Ereignisse, Verhaltensweisen oder Eingangssignale, die er aus seiner Umgebung (oder von anderen Komponenten, an die er angeschlossen ist) zu erkennen, zu überwachen und adäquat darauf zu reagieren.

Häufige Einsatzmöglichkeiten sind auch das Ausgeben eines Ausgangssignals oder Verhaltenssteuerung als Erwiderung auf in der Programmierung definierte Eingabekriterien, einschließlich:

  • Auslösen der Beleuchtung einer (O)LED-Anzeige durch Berührung eines Touchscreens
  • Abspielen von Licht und Ton in temperaturempfindlichen Überwachungsgeräten oder anderen Varianten von Alarm-/WarnsystemenAutomatisches Ein- und Ausschalten eines Motors, zum Beispiel in einer Pumpe oder anderen mechanischen Vorrichtung.
  • Einstellung für Neigung/Balance/Geschwindigkeit in gyroskop- oder beschleunigungssensorbasierten Anwendungen