Mikrocontroller – Wie funktioniert er?

Lesezeit 8 min.

Der Mikrocontroller ist eines der wichtigsten Geräte in der Robotik. Dieser kleine Ein-Chip-Mikrocomputer, der auch als integriertes Mikroprozessorsystem bezeichnet wird, enthält neben anderen Komponenten einen Arbeitsspeicher, eine CPU und verschiedene Ein-/Ausgabeschaltungen sowie einen ROM- oder Flash-Speicher (oder FRAM und MRAM), der in ein Programm geschrieben wird. Das Gerät wird direkt zur Steuerung elektronischer Geräte verwendet, was in der Robotik natürlich von großer Bedeutung ist. Es lohnt sich, die Funktionsweise aus nächster Nähe kennenzulernen, und zwar anhand von praktischen Daten aus der Robotik.

Was ist ein Mikrocontroller?

Ein Mikrocontroller ist ein kleiner Computer mit ebenso geringer Rechenleistung, die jedoch ausreicht , um die meisten elektronischen Grundgeräte zu steuern. In den meisten Fällen ist das Mikroprozessorsystem eigenständig, es kann aber auch durch Peripheriegeräte ergänzt werden, die seine Fähigkeiten erweitern. Der Mikrocontroller ist in Funktionsblöcke unterteilt, die dafür sorgen, dass verschiedene Arbeiten ausgeführt werden. Ein charakteristisches Merkmal des Mikroprozessors ist seine Taktung, die in der Regel nicht mehr als ein paar hundert MHz erreicht. In der Regel beträgt die optimale Taktung des Mikrocontrollers nicht mehr als ein paar Dutzend MHz und wird in Abhängigkeit von den Anforderungen an die Rechenleistung angepasst.

Geschichte des Mikrocontrollers

Die Geschichte des Mikrocontrollers geht auf das Jahr 1976 zurück, als der erste Chip mit der Bezeichnung Intel 8048 in NMOS-Technologie in Massenproduktion hergestellt wurde. Dieses Modell wurde in der Magnavox Odyssey Computerspielkonsole, in der Korg Trident Serie, in den Roland Jupiter-4 und ProMar Analogsynthesizern und in der Originalversion der beliebten IBM Computertastatur verwendet. Der Erfinder des Intel 8048 Mikrocontrollers ist laut US-Patentamt Gary Boone, der bei Texas Instruments arbeitet. Das in Texas ansässige Unternehmen stellt seit Jahren professionelle Halbleiter her.

Mit der Weiterentwicklung der Technologie wurden immer fortschrittlichere Mikrocontroller mit höherer Zuverlässigkeit, besseren Ressourcen und besserer Leistung entwickelt. Auch die Bauweise dieser Systeme hat sich geändert. Bekanntlich werden umfangreiche und moderne Peripherieschaltungen in Mikrocontrollern eingesetzt, darunter LCD-Display-Controller, ATA-Bus-Controller, Funkmodems, MP3-Decoder und viele, viele mehr. Neben den klassischen 8- und 16-Bit-Lösungen sind auch 32-Bit-Mikrocontroller auf dem Markt erhältlich. Bei einfachen und anspruchslosen Anwendungen werden dagegen vereinfachte Versionen von Mikrocontrollern in kleinen Gehäusen verwendet, was zu einer erheblichen Senkung der Kosten führt. Derzeit gibt es auch Lösungen, um handelsübliche Kerne gängiger Mikrocontroller in komplexere Schaltungen einzubetten und so die Programmierstandards der einzelnen Geräte zu vereinheitlichen und die Realisierung beliebiger Eingabe-Ausgabe-Schaltungen in Hardwareform zu ermöglichen.

Zu den beliebtesten und am weitesten verbreiteten Mikrocontrollern gehören die von der Firma Atmel, Infineon, Espressif Systems, STMicroelectronics, Freescale Semiconductor (früher bekannt als Motorola), Analog Devices, Hitachi sowie NXPdie bis 2006 eine der Abteilungen der Marke Philips war. Der bei weitem führende Hersteller von Mikrocontrollern ist Intel, der Standards für den Massenmarkt vorgibt.

Was steckt in einem Mikrocontroller?

Ein Mikrocontroller ist ein in sich geschlossenes Mikroprozessorsystem und besteht aus vielen Komponenten, die seinen Betrieb ergänzen. Der gesamte Aufbau ist recht komplex, aber am Ende lassen sich einige grundlegende elektronische Komponenten erkennen, deren Funktionsweise und praktische Merkmale die Arbeit mit ihnen wesentlich erleichtern. In einem vereinfachten Mikrocontroller-Design findet man unter anderem eine CPU (Central Processing Unit), die für die Ausführung eines bestimmten Programms zuständig ist, einen Flash-Speicher, einen Arbeitsspeicher (RAM) und eventuell Peripherieschaltungen. Alle diese Elemente arbeiten über ein geschriebenes Programm, das von der CPU ausgeführt wird.

Die Daten werden über zwei Busse übertragen – den Adressbus und den Datenbus. Der Adressbus überträgt Daten nur in eine Richtung, nämlich vom Prozessor zu den anderen Komponenten (RAM, Flash-Speicher und Peripheriechips), und in einem zweiten Bus in beide Richtungen, damit der Prozessor die von ihnen stammenden Daten zum Arbeiten verwenden kann. Der Datenbus wird jeweils nur von einem Chip genutzt, der Bytes (die kleinste Informationseinheit) überträgt, und zwar diejenige, die gerade benötigt wird, während die anderen darauf warten, dass die aktuelle Übertragung abgeschlossen wird. Hinzu kommt die Taktung, d.h. die Anordnung des Taktsignals. Dabei werden über einen bestimmten Zeitraum hinweg Impulse mit einer festen Frequenz erzeugt.

In AVR-Controllern ist der Bus 8 Bit breit, was bedeutet, dass einige Informationen auf mehrere “Transporte” aufgeteilt werden müssen, was den gesamten Chip beträchtlich verlangsamt. Interessanterweise verfügen moderne Computer mit 64-Bit-Technologie über einen achtmal breiteren Bus, was sich auf die Geschwindigkeit der Arbeit auswirkt.

Prozessor im Mikrocontroller

Der Prozessor, auch Zentraleinheit genannt, ist ein Gerät, das das gesamte System mit Hilfe eines Computerprogramms (in Form von Befehlen) steuert, das normalerweise im FLASH-Speicher gespeichert ist. Ein Befehl enthält Informationen über die Art der Operation und die Argumente. Die CPU ist eine digitale sowie eine sequentielle und synchrone Schaltung und zeichnet sich daher durch eine recht hohe Komplexität aus.

Eine digitale Schaltung bedeutet, dass der Prozessor im Gegensatz zu einer analogen Schaltung nur zwischen entgegengesetzten Spannungszuständen (niedrig oder hoch) unterscheidet, während eine sequentielle Schaltung bedeutet, dass jeder neue Zustand nur vom vorherigen Zustand und dem aktuellen Eingang abhängt. Synchroner Modus bedeutet dagegen, dass die gesamte Arbeit im Rhythmus der Taktfrequenz (Megahertz) ausgeführt wird. Die Arithmetic Logic Unit (ALU) ist für die Durchführung einfacher und komplexer arithmetischer Berechnungen zuständig.

Die CPU führt mathematische Befehle wie Addition, Subtraktion, Multiplikation und Bitoperationen aus und besteht aus mehreren Komponenten, die voneinander abhängig sind. In den 8-Bit-Registern werden die meisten der erforderlichen Daten gespeichert, wie z. B. der IP (Instruction Pointer), der die Abrufadresse des nächsten Befehls speichert, und der IR (Instruction Register), der zur Speicherung des Codes der aktuellen Übertragung verwendet wird. Zu den 8-Bit-Registern gehören außerdem der SP (Stock Pointer), der das obere Ende des Stapels anzeigt, sowie das Statusregister und allgemeine Register. Das Statusregister speichert Flags, die sich hauptsächlich auf arithmetische Operationen beziehen, in Form von Kontrollbits, die während der Programmierung benötigt werden. Die Allzweckregister (mit den Nummern R0 bis R31) stellen dem Prozessor dagegen einen Arbeitsspeicher (Cache) mit wesentlich kürzeren Zugriffszeiten als die RAM-Daten zur Verfügung. Daher ist das Laden von Daten und die Verarbeitung von Informationen praktisch augenblicklich möglich.

RAM Arbeitsspeicher

RAM (Random Access Memory) speichert Informationen nur im laufenden Betrieb. Wenn der Chip vom Strom getrennt wird, wird der Speicher vollständig gelöscht. Im Gegensatz zum FLASH-Speicher zeichnet sich der RAM durch sehr kurze Datenzugriffszeiten und keine Schreibbegrenzung aus. Das SRAM (Static RAM) in AVR-Mikrocontrollern besteht aus 32 Adressen von CPU-Allzweckregistern (R0 bis R31) und enthält Peripherie-Steuerregister und arbeitet unabhängig vom FLASH-Speicher.

Flash-Speicher

Der FLASH-Speicher (mit der größten Kapazität aller Mikrocontroller) enthält gespeicherte Befehle, die nicht gelöscht werden, wenn die Stromversorgung unterbrochen wird – einer der vielen Unterschiede zum RAM. Außerdem kann die CPU keine Daten in den FLASH-Speicher schreiben, sondern nur lesen, was bedeutet, dass dieser Speicher hauptsächlich zum Speichern von Programm- und Konstant-Arrays und einigen anderen Informationen verwendet wird. Ein charakteristisches Merkmal des FLASH-Speichers im AVR ist die 8-Bit-Zellenaufteilung und die Aufteilung in Applikations- und Bootloader-Abschnitte.

EEPROM-Speicher

EEPROM (elektrisch löschbarer programmierbarer Festwertspeicher) wird verwendet, um eine kleine Datenmenge zu speichern, die einen Stromausfall überstehen soll. Außerdem kann der Mikroprozessor damit Daten schreiben und löschen, aber das dauert viel länger als bei RAM, und der Zugriff auf das EPROM selbst ist komplizierter. Die Anzahl der gespeicherten Daten ist auf etwa 100.000 begrenzt – diese Grenze wurde von ATMEL festgelegt, aber es ist interessant festzustellen, dass ein Benutzer in der Lage war, mehr als 4 Millionen Datensätze in das EEPROM zu schreiben, und erst nachdem diese Zahl überschritten war, verweigerte der Mikroprozessor die weitere Zusammenarbeit. Es ist auch wichtig zu wissen, dass EEPROM eine Art nichtflüchtiger Computerspeicher ist und im Gegensatz zu EPROM nur mit elektrischem Strom gelöscht werden kann.

Eingangs-/Ausgangsanschlüsse

Die Eingangs-/Ausgangsports sind auf den Mikrocontroller-Chipbeinen implementiert. Sie dienen der Kommunikation mit der Außenwelt, so dass alle Arten von Geräten an die Ports angeschlossen werden können. Interessanterweise können sie bidirektional arbeiten, d. h. auf zwei Arten – die Ports können Informationen ausgeben, die der Mikroprozessor in sie hineinschreibt, oder Daten lesen, die von außen auf der Portleitung erscheinen. Die Beherrschung der gesamten Palette der Ein- und Ausgänge sowie aller Grundlagen ihrer Funktionsweise ist sicherlich ein Garant für die erfolgreiche Programmierung des Mikrocontrollers, sodass es sich lohnt, sich besonders auf dieses Wissen zu konzentrieren, um möglichst viele Informationen daraus zu gewinnen.

Ein wichtiges Merkmal ist, dass je mehr Eingangs-/Ausgangsanschlüsse vorhanden sind, desto größer die Möglichkeit ist, mehr Geräte auf bequemere und einfachere Weise an den Mikrocontroller anzuschließen, ohne dass zusätzliche integrierte Schaltungen erforderlich sind. In den meisten Fällen verwenden Roboter standardmäßige parallele Eingangs-/Ausgangsports, die digitale Signale von PINs empfangen können.

Es ist wichtig zu wissen, dass Alternativen zu den Eingangs-/Ausgangsanschlüssen auch andere Schaltungen sein können, wie z.B. Komparatoren, externe Interrupt-Generatoren oder verschiedene Arten von Timern.

Periphere Systeme in der Robotik

Um auf den obigen Absatz zurückzukommen: Jede Peripherieschaltung, die eine Alternative zu den Eingangs-/Ausgangsports sein kann, ist durch ihre eigenen Konfigurationslogger gekennzeichnet, deren Aufgabe es ist, ihre Funktionsweise zu bestimmen. Im Falle eines Standard ATmeg Ports können beispielsweise drei Register genannt werden – DDRx, das die Richtung des Datenflusses bestimmt, PORTx, das den Zustand am Ausgang erzwingt, und PINX, das für das Lesen des Zustands am Eingang verantwortlich ist.

Wo werden Mikrocontroller eingesetzt?

Mikrocontroller gehören zu einer Gruppe von Geräten mit einer breiten Palette von Anwendungen. Sie können allgemein in verschiedenen Arten von eingebetteten Systemen verwendet werden. Sie haben die Aufgabe, den Betrieb anderer Geräte oder Teile davon zu steuern. Mikrocontroller werden am häufigsten in Unterhaltungselektronik und Haushaltsgeräten, modernen Elektrowerkzeugen, Computerkomponenten und Peripheriegeräten, Netzwerk- und Telekommunikationsinfrastrukturen sowie in medizinischen Geräten eingesetzt. Darüber hinaus werden Mikrocontroller auch in einer Vielzahl von industriellen Automatisierungsanwendungen sowie in medizinischen Geräten, Implantaten und sogar Spielzeug eingesetzt. Sie sind auch in Motorsteuerungscomputern von Kraftfahrzeugen zu finden.

Was ist ein ISP?

ISP ist ein In-System-Programmier-Chip (ISP), der die Programmierung eines Mikrocontrollers ermöglicht, ohne dass dieser vom Anwendungschip entfernt werden muss. Dies ist eine sehr bequeme Lösung, da ältere Generationen von Mikrocontrollern die Programmierung in speziellen Programmiergeräten erforderten, natürlich, nachdem das Gerät aus der Anwendung entfernt wurde. Aus diesem Grund hat der ISP-Chip die Programmierung sehr viel effizienter und einfacher gemacht, da man nur die Signale des Programmiergeräts mit den Mikrocontroller-Komponenten (Beinen) direkt auf dem Chip verbinden muss und schon kann es losgehen. Nach Abschluss des gesamten Vorgangs setzt sich das Gerät zurück und beginnt dann mit der Ausführung des zuvor im FLASH-Speicher abgelegten Programms.

Mikrocontroller – Programmschreiben

Nach einem Neustart beginnt der Prozessor mit dem Laden und Ausführen eines Befehls aus dem IP und ändert ihn dann, um einen anderen Befehl zu laden. Die IP-Werte müssen sich nicht in 1er-Schritten ändern, so dass das Programm nicht immer in der gleichen Reihenfolge ausgeführt werden muss. Ermöglicht wird dies durch Sprünge in Form von Schleifen und bedingten Anweisungen. Nach der Initialisierung der Peripherieschaltkreise geht das Programm in eine Endlosschleife oder (wenn es keine Schleife gibt) führt alle Funktionen aus und initialisiert den Prozess neu, wenn es die letzte Adresse im FLASH-Speicher erreicht. Die wichtigste Sprache zur Programmierung von Mikrocontrollern ist Assembler, die sich durch ihre relative Einfachheit auszeichnet. Die meisten Befehle sind Abkürzungen englischer Wörter, so dass sie auch für Laien relativ leicht zu verstehen sind, z.B. INC steht für Increment also Anstieg Es gibt einen Befehl pro Taktzyklus.

Anhalten der Schleife – Unterbrechungen

Während der Ausführung des Programms kann eine Situation eintreten, in der die richtige Reaktion des Mikrocontrollers erfolgen soll. Normalerweise stehen diese Arten von Ereignissen im Zusammenhang mit dem Betrieb des gesamten Systems, in dem das Gerät arbeitet. Zu diesem Zweck werden sogenannte Unterbrechungen eingesetzt. Dies sind Ereignisse, die die Ausführung des Hauptprogramms unterbrechen und eine spezielle Unterbrechungsfunktion auslösen sollen. Wenn diese Option eine Unterbrechung verarbeitet, kehrt sie zum Hauptprogramm zurück und setzt die Ausführung an der Stelle fort, an der sie unterbrochen wurde. Um jedoch Schleifenstopps in Ihren Programmen verwenden zu können, müssen Sie wissen, woher sie stammen. Unterbrechungen können intern oder extern sein. Erstere stammen von internen Teilen des Mikrocontrollers, während letztere von externen Geräten erzeugt werden, die vom Mikrocontroller gesteuert werden.

CPU-Arithmetikoperationen

Mit nur grundlegenden mathematischen Operationen in Form von Addition, Subtraktion, Multiplikation und Bitoperationen muss der Prozessor Tausende von mehr oder weniger komplexen Berechnungen durchführen. Interessanterweise bedeutet das Fehlen einer Divisionsfunktion, dass der Prozessor viel mehr Arbeit für die Berechnung des Ergebnisses leisten muss, und die Berechnung kann mehrere Prozessorregister erfordern. Anders verhält es sich bei der Division durch Zweierpotenzen, bei der im Binärsystem die Zahl wie im Dezimalsystem nach rechts oder links verschoben wird. Bei komplexeren logarithmischen Funktionen oder Integralen stellt sich der Fall ganz anders dar. Um die Berechnungen zu beschleunigen, wird eine Funktionsannäherung verwendet, um den gesamten Betrieb des Mikrocontrollers zu rationalisieren. Bei dieser Tätigkeit geht es um die Annäherung (Approximation) von Werten innerhalb bestimmter Bereiche. Bei trigonometrischen Funktionen ist es sinnvoll, Arrays von berechneten Werten zu verwenden, gefolgt von einer genauen Skalierung.

Mikrocontroller – FAQ

Der Mikrocontroller ist ein kleiner Computer, der sich durch eine mäßige Rechenleistung auszeichnet, die jedoch völlig ausreicht, um elektronische Geräte effektiv zu steuern. An den Mikrocontroller kann weiteres Zubehör angeschlossen werden, um seine Funktionalität zu erweitern.

Nein. Ein Mikrocontroller ist eine Schaltung, die aus vielen Komponenten besteht. Einer der wichtigsten ist der Prozessor, die zentrale Recheneinheit. Der Prozessor ist unter anderem für folgende Aufgaben zuständig: für die Verwaltung des gesamten Systems. Dies geschieht mit Hilfe eines Computerprogramms, das in der Regel im FLASH-Speicher abgelegt ist.

Ein Mikrocontroller ist ein kleiner Ein-Chip-Computer, der u. a. über folgende Funktionen verfügt mit Komponenten wie RAM, Eingängen, Ausgängen sowie CPU und Flash oder ROM. Arduino hingegen ist ein eigener Name für eine Plattform, die für so genannte eingebettete Systeme entwickelt wurde. In den meisten Fällen sind 8-Bit-AVR-Mikrocontroller auf Arduino-Boards zu finden. Kurz gesagt, ein Arduino ist eine Platine mit einem Mikrocontroller.

Unterbrechung ist ein Vorgang, der, wie der Name schon sagt, die Kontinuität des Hauptprogramms unterbricht. Außerdem startet sie eine Funktion, die für die gesamte Abwicklung des Prozesses verantwortlich ist. Wenn diese Funktion beendet wird, kehrt sie zu den Hauptprogrammen zurück. Der nächste Schritt besteht darin, den Betrieb genau dort wieder aufzunehmen, wo er unterbrochen wurde.

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 4.4 / 5. Stimmenzahl: 13

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Teilen:

Picture of Grzegorz Galuba

Grzegorz Galuba

GG nie ma czasu na gadu-gadu - jest zawsze na bieżąco z nowościami z oferty, wybiera tylko najlepsze i dba, aby pojawiały się na czas. Jego rozległa wiedza o specyfikacjach technicznych produktów to nieocenione wsparcie dla całej ekipy. Do pracy przyjeżdża rowerem i już najwyższa pora, aby wszyscy zaczęli brać z niego przykład. Oaza spokoju.

Siehe mehr:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Aus Sicherheitsgründen ist die Verwendung des reCAPTCHA-Dienstes von Google erforderlich, der den Google-Datenschutzbestimmungen und Nutzungsbedingungen unterliegt..