Controller in der Informatik einfach erklärt
Ein Controller steuert oder koordiniert einen bestimmten Ablauf. Was genau damit gemeint ist, entscheidet der Kontext: Ein Mikrocontroller führt Programme auf einem Chip aus, ein Interrupt-Controller ordnet Hardwareanforderungen. Außerhalb der Informatik kann „Controller“ auch einen Beruf im Controlling bezeichnen.
Hake ab, was du schon kannst — und komm am Ende hierher zurück!
Die Bedeutung am Kontext erkennen
Das Wort „Controller“ bezeichnet nicht immer dieselbe Technik. Achte deshalb auf die Wörter, die in seiner Umgebung stehen.
Controller
Ein Controller steuert, regelt oder koordiniert einen abgegrenzten Vorgang. Erst der fachliche Zusammenhang zeigt, welche Art von Controller gemeint ist.
- Stehen Begriffe wie GPIO, Timer, PWM oder Mikrocontroller daneben, geht es um einen programmierbaren Chip oder eine zugehörige Plattform.
- Stehen Interrupt, IRQ, Priorität oder 8259A dabei, ist wahrscheinlich ein Interrupt-Controller gemeint.
- Stehen Personal, Finanzen oder Datenanalyse dabei, bezeichnet „Controller“ eine Tätigkeit im Controlling.
Auch die Abkürzung PIC ist mehrdeutig. Sie kann für eine Mikrocontrollerfamilie von Microchip stehen. Beim Intel 8259A bedeutet sie dagegen Programmable Interrupt Controller.
In dem Satz „Der PIC setzt nach der Quittierung das passende Bit im ISR“ geht es um den Interrupt-Controller 8259A. Die Wörter „Quittierung“ und „ISR“ weisen auf die Interruptverwaltung hin.
In dem Satz „Der PIC18 gibt einen Binärwert über LEDs aus“ bezeichnet PIC18 dagegen einen Mikrocontroller.
Mikrocontrollerchip und Entwicklungsboard unterscheiden
Ein Mikrocontroller ist ein programmierbarer Chip für abgegrenzte Steuerungs- und Verarbeitungsaufgaben. Er verbindet Rechenwerk, Speicher und Ein- beziehungsweise Ausgabefunktionen in einem kompakten System.
Ein Entwicklungsboard ist mehr als dieser Chip. Es führt Anschlüsse heraus und kann beispielsweise Stromversorgung, USB-Verbindung, Taster, LEDs, Sensoren oder einen Programmierzugang ergänzen. Umgangssprachlich wird oft das ganze Board „Mikrocontroller“ genannt; technisch ist der Mikrocontroller nur der darauf eingesetzte Chip.
Wichtige Funktionsgruppen sind:
- GPIO: frei nutzbare digitale Ein- und Ausgänge, etwa für Taster oder LEDs;
- Timer und Counter: zählen Takte oder Ereignisse;
- PWM: steuert durch schnelles Ein- und Ausschalten beispielsweise Helligkeit oder Motorleistung;
- UART, SPI und I²C: übertragen Daten zwischen Bauteilen;
- Interrupts: melden Ereignisse, auf die das Programm zeitnah reagieren soll.
Ein Programm soll eine LED einschalten, wenn ein Taster gedrückt wird.
- Der Taster ist mit einem GPIO-Eingang verbunden.
- Das Programm liest den Eingang ein.
- Es entscheidet anhand des gelesenen Zustands.
- Es setzt den GPIO-Ausgang der LED.
Das Board erleichtert dabei den Anschluss. Die eigentliche Verarbeitung übernimmt der Mikrocontrollerchip.
Zwischen Bibliothek und Registerzugriff wählen
Hardware lässt sich auf unterschiedlichen Abstraktionsebenen programmieren. Eine Abstraktion bietet eine einfachere Bedienoberfläche und verbirgt dabei Einzelheiten der unteren Ebene.
Mit einer Bibliothek kann ein Befehl wie „Sensorwert lesen“ viele notwendige Registerzugriffe zusammenfassen. Das ermöglicht schnelle Ergebnisse. Direkter Registerzugriff verlangt mehr Detailwissen, zeigt aber genauer, wie die Hardware konfiguriert wird.
Eine höhere Abstraktion ist nicht automatisch besser oder schlechter. Entscheidend ist, ob sie die Anforderungen der Aufgabe zuverlässig erfüllt.
Bibliotheken sind besonders hilfreich, wenn eine Standardfunktion schnell und verständlich eingesetzt werden soll. Der Blick in Datenblatt und Registerbeschreibung wird wichtiger, wenn
- keine passende Bibliothek existiert,
- eine Bibliothek fehlerhaft oder unvollständig arbeitet,
- Timing, Energieverbrauch oder Speicherbedarf kritisch sind,
- eine Peripheriefunktion genau konfiguriert werden muss,
- ein Fehler zwischen Software und Hardware gesucht wird.
Ein Mikrocontroller läuft nach dem Start mit einer vorgegebenen Taktkonfiguration. Im Programm wird lediglich eine Konstante eingetragen, die 16 MHz nennt. Dadurch ändert sich der echte Hardwaretakt nicht.
Der entscheidende Denkweg lautet:
- Die Konstante informiert Software darüber, mit welchem Takt gerechnet werden soll.
- Der Takt selbst wird durch Hardwarekonfiguration bestimmt.
- Deshalb muss das passende Feld in einem Konfigurationsregister geändert werden.
- Anschließend muss geprüft werden, ob Hardwarezustand und Softwareannahme übereinstimmen.
Eine Bezeichnung im Programm ersetzt also keine notwendige Hardwareeinstellung.
So verwaltet der 8259A Hardware-Interrupts
Ein Interrupt ist eine Anforderung, die den normalen Programmablauf unterbrechen kann, damit die CPU ein Ereignis behandelt. Der Intel 8259A sammelt, priorisiert und maskiert solche Anforderungen.
Er besitzt acht Eingänge von IR0 bis IR7. Dabei hat IR0 die höchste und IR7 die niedrigste Priorität. Eine Maske kann einzelne Eingänge sperren.
Drei Register halten den Zustand fest:
- IRR – Interrupt Request Register: merkt aufgetretene Anforderungen;
- ISR – Interrupt Service Register: markiert den gerade behandelten Interrupt;
- IMR – Interrupt Mask Register: legt fest, welche Quellen gesperrt sind.
Ein nicht maskiertes Gerät meldet eine Anforderung an IR3.
- Der 8259A speichert die Anforderung im IRR.
- Er meldet der CPU über
INTbeziehungsweiseINTR, dass Arbeit anliegt. - Die CPU quittiert über
INTA. - Der Controller liefert die Interruptnummer. Sie entsteht aus dem konfigurierten Offset und der Eingangsnummer.
- Die CPU benutzt diese Nummer als Index für die Interrupt Descriptor Table, kurz IDT. Dort findet sie die Adresse der Behandlungsroutine.
- Das zugehörige IRR-Bit wird gelöscht und das ISR-Bit gesetzt.
- Die Behandlungsroutine erledigt die notwendige Arbeit.
- Ein End of Interrupt, kurz EOI, teilt dem Controller das Ende der Bearbeitung mit und löscht das ISR-Bit.
- Mit
iretkehrt die CPU zum unterbrochenen Programm zurück und stellt den gesicherten Zustand wieder her.
Im Automatic-EOI-Modus kann der 8259A das ISR-Bit automatisch löschen. Dann ist in dieser Konfiguration kein ausdrücklicher EOI-Befehl durch die Behandlungsroutine nötig.
Für mehr als acht Quellen lassen sich zwei 8259A kaskadieren. Der Slave-Controller ist dabei am Eingang IR2 des Master-Controllers angeschlossen. So werden die Bereiche IRQ0 bis IRQ7 und IRQ8 bis IRQ15 abgedeckt.
Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.
Eine neu aufgetretene Anforderung steht zunächst im . Während der Bearbeitung kennzeichnet das den aktiven Interrupt. Das sperrt ausgewählte Quellen.
Controller systematisch untersuchen
Wenn ein System nicht wie erwartet arbeitet, hilft eine Prüfung von außen nach innen.
- Aufgabe klären: Welches Ereignis soll welche Reaktion auslösen?
- Hardware prüfen: Sind Versorgung, Leitungen, Signalpegel und Anschlüsse passend?
- Konfiguration prüfen: Sind Takt, GPIO, Timer, Schnittstelle oder Interrupt richtig eingestellt?
- Zustände beobachten: Welche Werte stehen in Registern und Variablen?
- Ablauf prüfen: Wird die erwartete Routine überhaupt erreicht?
- Annahmen vergleichen: Passt die Softwareannahme zum tatsächlichen Hardwarezustand?
Ein Debugger kann Register, Speicher, Befehlszähler und Variablen sichtbar machen. Einzelschritte helfen dabei, den Controller nicht als undurchsichtige Black Box zu behandeln. Ein Simulator kann ebenfalls innere Zustände zeigen, bildet externe Hardware aber möglicherweise nur eingeschränkt ab.
Eine LED bleibt dunkel, obwohl das Programm den Ausgang setzen soll.
Ein bloßer Austausch der LED wäre voreilig. Prüfe zuerst, ob der Pin als Ausgang konfiguriert ist, ob das richtige Ausgangsregister verändert wird und ob die Schaltung den erwarteten Signalpegel erhält. Erst diese Beobachtungen grenzen den Fehler ein.
Karteikasten
Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.
Alles auf einen Blick
- Controller in der Informatik
- Bedeutung aus dem fachlichen Kontext erkennen
- Mikrocontrollerchip vom Entwicklungsboard unterscheiden
- Bibliotheken für schnellen Zugang nutzen
- Registerzugriff für Kontrolle und Diagnose einsetzen
- Interrupts mit IRR, ISR und IMR verwalten
- Hardware, Konfiguration und Programmzustand gemeinsam prüfen
Abschluss-Check
Du kannst einen Controller nun über seine Aufgabe und seinen Kontext einordnen. Für technische Entscheidungen verbindest du beide Ebenen: Du nutzt Abstraktion, solange sie die Anforderungen erfüllt, und untersuchst Register, Timing und Hardwarezustände, sobald Genauigkeit oder Fehlersuche es verlangen.
Mit Google fortfahren