Informatik

Controller in der Informatik einfach erklärt

Controller in der Informatik einfach erklärt
Controller in der Informatik einfach erklärt
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

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.

Deine Lernziele

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.

Definition

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.

Beispiel

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.

Teste dich
Frage 1 von 1LeichtWelche Textstelle meint einen Interrupt-Controller?
Lösung: „Der 8259A priorisiert Anforderungen an IR0 bis IR7.“ — Die Bezeichnungen 8259A und IR0 bis IR7 gehören zur Verwaltung von Hardware-Interrupts.
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.
Beispiel

Ein Programm soll eine LED einschalten, wenn ein Taster gedrückt wird.

  1. Der Taster ist mit einem GPIO-Eingang verbunden.
  2. Das Programm liest den Eingang ein.
  3. Es entscheidet anhand des gelesenen Zustands.
  4. Es setzt den GPIO-Ausgang der LED.

Das Board erleichtert dabei den Anschluss. Die eigentliche Verarbeitung übernimmt der Mikrocontrollerchip.

Teste dich
Frage 1 von 1MittelEin Board enthält einen Mikrocontrollerchip, einen USB-Anschluss und mehrere LEDs. Welche Aussage ist technisch korrekt?
Lösung: Der Mikrocontroller ist der Chip; USB-Anschluss und LEDs gehören zum Board. — Der Chip verarbeitet das Programm. Das Board ergänzt ihn um gut nutzbare Anschlüsse und weitere Bauteile.
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.

Merke

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.
Beispiel

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:

  1. Die Konstante informiert Software darüber, mit welchem Takt gerechnet werden soll.
  2. Der Takt selbst wird durch Hardwarekonfiguration bestimmt.
  3. Deshalb muss das passende Feld in einem Konfigurationsregister geändert werden.
  4. Anschließend muss geprüft werden, ob Hardwarezustand und Softwareannahme übereinstimmen.

Eine Bezeichnung im Programm ersetzt also keine notwendige Hardwareeinstellung.

Teste dich
Frage 1 von 1MittelEin Sensorprogramm funktioniert grundsätzlich, überschreitet aber das erlaubte Energiebudget. Was ist der sinnvollste nächste Schritt?
Lösung: Prüfen, wie Bibliothek und Hardware konfiguriert sind, und gegebenenfalls Energiesparfunktionen gezielt einstellen. — Bei einer konkreten Ressourcenanforderung musst du die verborgenen Einstellungen der verwendeten Abstraktion untersuchen.
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.
Beispiel

Ein nicht maskiertes Gerät meldet eine Anforderung an IR3.

  1. Der 8259A speichert die Anforderung im IRR.
  2. Er meldet der CPU über INT beziehungsweise INTR, dass Arbeit anliegt.
  3. Die CPU quittiert über INTA.
  4. Der Controller liefert die Interruptnummer. Sie entsteht aus dem konfigurierten Offset und der Eingangsnummer.
  5. Die CPU benutzt diese Nummer als Index für die Interrupt Descriptor Table, kurz IDT. Dort findet sie die Adresse der Behandlungsroutine.
  6. Das zugehörige IRR-Bit wird gelöscht und das ISR-Bit gesetzt.
  7. Die Behandlungsroutine erledigt die notwendige Arbeit.
  8. Ein End of Interrupt, kurz EOI, teilt dem Controller das Ende der Bearbeitung mit und löscht das ISR-Bit.
  9. Mit iret kehrt die CPU zum unterbrochenen Programm zurück und stellt den gesicherten Zustand wieder her.
Gut zu wissen

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.

Lückentext

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.

Lösungen: Lücke 1: IRR; Lücke 2: ISR; Lücke 3: IMR. IRR steht für angeforderte, ISR für gerade bediente und IMR für maskierte Interrupts.
Controller systematisch untersuchen

Wenn ein System nicht wie erwartet arbeitet, hilft eine Prüfung von außen nach innen.

  1. Aufgabe klären: Welches Ereignis soll welche Reaktion auslösen?
  2. Hardware prüfen: Sind Versorgung, Leitungen, Signalpegel und Anschlüsse passend?
  3. Konfiguration prüfen: Sind Takt, GPIO, Timer, Schnittstelle oder Interrupt richtig eingestellt?
  4. Zustände beobachten: Welche Werte stehen in Registern und Variablen?
  5. Ablauf prüfen: Wird die erwartete Routine überhaupt erreicht?
  6. 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.

Beispiel

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.

Teste dich
Frage 1 von 1SchwerEin Programm setzt laut Quelltext ein Ausgangsbit, doch am Pin ändert sich nichts. Welche Untersuchung liefert den stärksten nächsten Hinweis?
Lösung: Im Debugger Konfigurations- und Ausgangsregister prüfen und den tatsächlichen Pinzustand messen. — Systematische Fehlersuche vergleicht Programmabsicht, Registerzustand und reales Hardwaresignal.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • 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
Teste dich
Frage 1 von 3LeichtWoran erkennst du, dass „PIC“ den Intel 8259A und nicht einen Microchip-Mikrocontroller bezeichnet?
Lösung: Am Zusammenhang mit Interrupts, IRQs, IRR, ISR oder IMR. — Die Bedeutung einer mehrdeutigen Abkürzung ergibt sich aus den zugehörigen Fachbegriffen.
Frage 2 von 3MittelWas geschieht beim 8259A mit einer Quelle, deren Bit im IMR gesetzt ist?
Lösung: Ihre Interruptanforderung wird unterdrückt. — Ein gesetztes IMR-Bit maskiert die entsprechende Interruptquelle.
Frage 3 von 3SchwerEin Bibliotheksaufruf liest einen Sensor, aber die Datenrate schwankt für die Anwendung zu stark. Welche Begründung ist fachlich am besten?
Lösung: Die unteren Ebenen müssen untersucht werden, etwa Timing, Interrupts, SPI-Konfiguration oder ein ereignisgesteuerter Ablauf. — Abstraktionen bleiben nützlich. Werden konkrete Zeit- oder Leistungsgrenzen verletzt, musst du jedoch die verborgenen Mechanismen prüfen und deine Lösung begründen.

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.

Passend dazu