Mikrocontroller (Microcontroller Unit, MCU)
Ein Mikrocontroller ist ein kompakter integrierter Schaltkreis, der zur Steuerung einer bestimmten Operation in einem eingebetteten System entwickelt wurde. Ein typischer Mikrocontroller umfasst einen Prozessor, einen Speicher und Ein-/Ausgabe-Peripheriegeräte (E/A) auf einem einzigen Chip.
Manchmal auch als eingebettete Controller oder Mikrocontroller-Einheit (Microcontroller Unit, MCU) bezeichnet, finden sich Mikrocontroller unter anderem in Fahrzeugen, Robotern, Maschinen, medizinischen Geräten, Mobilfunk-Transceivern, Verkaufsautomaten und Haushaltsgeräten. Sie sind im Wesentlichen einfache Miniaturcomputer, die so konzipiert sind, dass sie kleine Funktionen einer größeren Komponente steuern können, ohne ein komplexes Front-End-Betriebssystem.
Wie funktionieren Mikrocontroller?
Ein Mikrocontroller ist in ein System eingebettet, um eine einzelne Funktion in einem Gerät zu steuern. Er tut dies, indem er die Daten, die er von seinen E/A-Peripheriegeräten erhält, mit Hilfe seines Zentralprozessors interpretiert. Die temporären Informationen, die der Mikrocontroller empfängt, werden in seinem Datenspeicher gespeichert, wo der Prozessor auf sie zugreift und die in seinem Programmspeicher gespeicherten Anweisungen verwendet, um die eingehenden Daten zu entschlüsseln und anzuwenden. Anschließend verwendet er seine E/A-Peripheriegeräte (Eingabe/Ausgabe), um zu kommunizieren und die entsprechende Aktion auszuführen.
Mikrocontroller werden in einer Vielzahl von Systemen und Geräten eingesetzt. Geräte verwenden oft mehrere Mikrocontroller, die innerhalb des Geräts zusammenarbeiten, um ihre jeweiligen Aufgaben zu erledigen.
Beispielsweise kann ein Auto viele Mikrocontroller haben, die verschiedene Einzelsysteme innerhalb des Fahrzeugs steuern, wie das Antiblockiersystem, die Antriebsschlupfregelung, die Kraftstoffeinspritzung oder die Aufhängungssteuerung. Alle Mikrocontroller kommunizieren miteinander, um über die richtigen Aktionen auszulösen Einige kommunizieren möglicherweise mit einem komplexeren Zentralcomputer im Fahrzeug, andere wiederum nur mit anderen Mikrocontrollern. Sie senden und empfangen Daten über ihre E/A-Peripheriegeräte und verarbeiten diese Daten, um die ihnen zugewiesenen Aufgaben auszuführen.
Was sind die Elemente eines Mikrocontrollers?
Die Kernelemente eines Mikrocontrollers sind:
- Der Prozessor (CPU). Er verarbeitet verschiedene Befehle, welche die Funktion des Mikrocontrollers steuern, und reagiert darauf. Dazu gehört das Ausführen grundlegender arithmetischer, logischer und E/A-Operationen. Er führt auch Datenübertragungsoperationen aus, die Befehle an andere Komponenten im größeren eingebetteten System übermitteln.
- Der Speicher eines Mikrocontrollers wird zum Speichern der Daten verwendet, die der Prozessor empfängt und verwendet, um auf Anweisungen zu antworten, für deren Ausführung er programmiert wurde. Ein Mikrocontroller hat zwei Hauptspeichertypen:
Programmspeicher, der Langzeitinformationen über die von der CPU ausgeführten Befehle speichert. Der Programmspeicher ist ein nichtflüchtiger Speicher, das heißt. er hält Informationen über einen längeren Zeitraum vor, ohne dass eine Stromquelle benötigt wird.
Datenspeicher, der für die temporäre Datenspeicherung während des Ausführens von Befehlen benötigt wird. Der Datenspeicher ist flüchtig, das heißt, die Daten, die er enthält, sind temporär und werden nur beibehalten, wenn das Gerät an eine Stromquelle angeschlossen ist.
- E/A-Peripheriegeräte – Die Ein- und Ausgabegeräte sind die Schnittstelle des Prozessors zur Außenwelt. Die Eingabeports empfangen Informationen und senden sie in Form von Binärdaten an den Prozessor. Der Prozessor empfängt diese Daten und sendet die erforderlichen Anweisungen an Ausgabegeräte, die Aufgaben außerhalb des Mikrocontrollers ausführen.
Während der Prozessor, der Speicher und die E/A-Peripheriegeräte die bestimmenden Elemente des Mikroprozessors sind, gibt es andere Elemente, die häufig enthalten sind. Der Begriff E/A-Peripheriegeräte selbst bezieht sich auf unterstützende Komponenten, die mit dem Speicher und dem Prozessor verbunden sind. Es gibt viele unterstützende Komponenten, die als Peripheriegeräte klassifiziert werden können.
Andere unterstützende Elemente eines Mikrocontrollers sind
- Analog-Digital-Wandler (ADC). Ein ADC ist eine Schaltung, die analoge Signale in digitale Signale umwandelt. Er ermöglicht es dem Prozessor eine Verbindung zu externen analogen Geräten, wie zum Beispiel Sensoren, herzustellen.
- Digital-Analog-Wandler (DAC). Ein DAC übernimmt die umgekehrte Funktion eines ADC und ermöglicht es dem Prozessor in der Mitte des Mikrocontrollers, seine Ausgangssignale an externe analoge Komponenten zu übertragen.
- Systembus. Der Systembus ist die Verbindungsleitung, die alle Komponenten des Mikrocontrollers miteinander verbindet.
- Serieller Port – Die serielle Schnittstelle ist ein Beispiel für eine E/A-Schnittstelle, die es dem Mikrocontroller ermöglicht, sich mit externen Komponenten zu verbinden. Er hat eine ähnliche Funktion wie ein USB- oder Parallelport, unterscheidet sich aber in der Art und Weise, wie er Bits
Eigenschaften des Mikrocontrollers
Der Prozessor eines Mikrocontrollers variiert je nach Anwendung. Die Optionen reichen von einfachen 4-Bit-, 8-Bit- oder 16-Bit-Prozessoren bis hin zu komplexeren 32-Bit- oder 64-Bit-Prozessoren. Mikrocontroller können flüchtige Speichertypen wie RAM (Random Access Memory) und nichtflüchtige Speichertypen verwenden - dazu gehören Flash-Speicher, löschbare EPROMs (Electrically Erasable Programmable Read-only Memory) und elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROM).
Im Allgemeinen sind Mikrocontroller so konstruiert, dass sie ohne zusätzliche Rechnerkomponenten leicht verwendet werden können, da sie mit ausreichend Onboard-Speicher ausgestattet sind und über Pins für allgemeine E/A-Operationen verfügen, so dass sie direkt mit Sensoren und anderen Komponenten verbunden werden können.
Die Mikrocontroller-Architektur kann auf der Harvard-Architektur oder der von Neumann-Architektur basieren, wobei beide unterschiedliche Methoden für den Datenaustausch zwischen Prozessor und Speicher bieten. Bei einer Harvard-Architektur sind der Datenbus und der Befehl getrennt, so dass gleichzeitige Übertragungen möglich sind. Bei einer Von-Neumann-Architektur wird ein Bus sowohl für Daten als auch für Befehle verwendet.
Mikrocontroller-Prozessoren können auf Complex Instruction Set Computing (CISC) oder dem Reduced Instruction Set Computing (RISC) basieren. CISC hat im Allgemeinen etwa 80 Befehle, während RISC etwa 30 hat, sowie weitere Adressierungsmodi, 12-24 im Vergleich zu den drei bis fünf von RISC. Während CISC einfacher zu implementieren ist und eine effizientere Speichernutzung aufweist, kann es aufgrund der höheren Anzahl von Taktzyklen, die für das Ausführen von Befehlen erforderlich sind, zu Leistungseinbußen kommen. RISC, bei dem mehr Wert auf Software gelegt wird, bietet oft eine bessere Leistung als CISC-Prozessoren, bei denen aufgrund des vereinfachten Befehlssatzes Designs mehr Wert auf Hardware gelegt wird, die Software jedoch komplexer sein kann. Welcher ISC verwendet wird, variiert je nach Anwendung.
Als sie erstmals verfügbar wurden, verwendeten Mikrocontroller ausschließlich die Sprache Assembly. Heute ist die Programmiersprache C eine beliebte Option. Andere gebräuchliche Mikroprozessorsprachen sind Python und JavaScript.
MCUs verfügen über Eingangs- und Ausgangspins zum Anschließen von Peripheriefunktionen. Zu diesen Funktionen gehören Analog-Digital-Wandler, LCD-Controller, Echtzeituhr (Real Time Clock, RTC), universeller synchroner/asynchroner Empfänger-Sender ( Universal Synchronous/Asynchronous Receiver Transmitter, USART), Timer, universeller asynchroner Empfänger-Sender (Universal Asynchronous Receiver Transmitter, UART) und USB-Anschlussmöglichkeiten. Sensoren, die unter anderem Daten zu Feuchtigkeit und Temperatur erfassen, werden häufig auch an Mikrocontroller angeschlossen.
Mikrocontroller-Anwendungen
Mikrocontroller werden in einer Vielzahl von Branchen und Situationen eingesetzt, unter anderem in den Bereichen Haushalt und Unternehmen, Gebäudeautomatisierung, Fertigung, Robotik, Automobil, Beleuchtung, Smart Grids, Industrieautomatisierung, Kommunikation und im Internet der Dinge (Internet of Things, IoT).
Eine sehr spezifische Anwendung eines Mikrocontrollers ist seine Verwendung als digitaler Signalprozessor. Häufig sind eingehende analoge Signale mit einem bestimmten Rauschpegel verbunden. Rauschen bedeutet in diesem Zusammenhang mehrdeutige Werte, die nicht ohne weiteres in digitale Standardwerte übersetzt werden können. Ein Mikrocontroller kann seinen ADC und DAC verwenden, um das eingehende verrauschte Analogsignal in ein gleichmäßiges digitales Ausgangssignal umzuwandeln.
Die einfachsten Mikrocontroller erleichtern den Betrieb von elektromechanischen Systemen, die in alltäglichen Gebrauchsgegenständen wie Öfen, Kühlschränken, Toastern, mobilen Geräten, Schlüsselanhängern, Videospielsystemen, Fernsehern und Rasenbewässerungssystemen zu finden sind. Auch in Büromaschinen wie Fotokopierern, Scannern, Faxgeräten und Druckern sowie in intelligenten Zählern, Geldautomaten und Sicherheitssystemen sind sie weit verbreitet.
Aufwändigere Mikrocontroller übernehmen kritische Funktionen in Flugzeugen, Raumfahrzeugen, Seeschiffen, Fahrzeugen, medizinischen und lebenserhaltenden Systemen sowie in Robotern. Im medizinischen Bereich können Mikrocontroller den Betrieb eines künstlichen Herzens, einer Niere oder anderer Organe regulieren. Sie können auch bei der Funktion von Prothesen eine wichtige Rolle spielen.
Mikrocontroller versus Mikroprozessoren
Die Unterscheidung zwischen Mikrocontrollern und Mikroprozessoren ist weniger klar geworden, da die Chipdichte und -komplexität relativ kostengünstig in der Herstellung geworden ist und die Mikrocontroller somit allgemeinere Computerfunktionalitäten integriert haben. Man kann sie danach einteilen, dass Mikrocontroller für sich genommen nützlich sind, mit einer direkten Verbindung zu Sensoren und Aktuatoren, während Mikroprozessoren so konzipiert sind, dass sie die Rechenleistung auf dem Chip maximieren, mit internen Busverbindungen (statt direkter E/A) zu unterstützender Hardware wie RAM und seriellen Schnittstellen. Einfach ausgedrückt: Kaffeemaschinen verwenden Mikrocontroller; Desktop-Computer verwenden Mikroprozessoren.
Mikrocontroller sind preiswerter und verbrauchen weniger Strom als Mikroprozessoren. Mikroprozessoren haben keinen eingebauten RAM, ROM (Read Only Memory) oder andere Peripheriegeräte auf dem Chip, sondern werden mit ihren Pins an diese angeschlossen. Ein Mikroprozessor kann als das Herz eines Computersystems angesehen werden, während ein Mikrocontroller als das Herz eines eingebetteten Systems betrachtet werden kann.
Auswahl des richtigen Mikrocontrollers
Bei der Auswahl eines Mikrocontrollers für ein Projekt gibt es eine Reihe von technologischen und geschäftlichen Erwägungen zu berücksichtigen.
Abgesehen von den Kosten ist es wichtig, die maximale Geschwindigkeit, die Menge an RAM oder ROM, die Anzahl oder Arten von E/A-Pins auf einer MCU sowie den Stromverbrauch und die Einschränkungen und den Entwicklungssupport zu berücksichtigen. Stellen Sie auf jeden Fall Fragen wie
- Welche Hardware-Peripheriegeräte werden benötigt?
- Wird externe Kommunikation benötigt?
- Welche Architektur sollte verwendet werden?
- Welche Ressourcen stehen für den Mikrocontroller zur Verfügung?
- Wie ist die Marktverfügbarkeit des Mikrocontrollers?