Mikrocontroller

Einleitung

Mikrokontroller sind die Grundelemente eines eingebetteten Systems (Siehe Übersicht). Sie bestehen aus dem eigentlichen Rechnerteil, der CPU (Central Processing Unit) und mehr oder weniger stark ausgebauter Peripherie. Je nach Komplexität und Leistungsanforderungen eines zu steuernden Systems wird man einen passenden Mikrokontroller inklusive eingebauter Peripheriebausteine auslesen. 

Für ein funktionsfähiges System bedarf es aber noch diverser Softwarekomponenten. Auf unterster Ebene finden wir Softwaretreiber. Sie ermöglichen einem Anwender den Zugriff auf bestimmte Peripheriebausteine. Hat beispielsweise unser Mikrokontroller eine serielle Schnittstelle eingebaut, bietet ein Treiber vielleicht zwei Prozeduren an, welche je ein Byte über diese Schnittstelle senden oder empfangen können. Ein einfaches Anwenderprogramm (Applikation) lässt sich damit bereits realisieren.

Didaktische Idee

Die Unterrichtsinhalte des Kurses werden in Vorlesungen, Gruppenarbeiten und Übungen erarbeitet. Zentral dabei ist, dass Sie alles Gehörte sogleich und unmittelbar auch praktisch anwenden und vertiefen. Der beste Simulator ersetzt nicht die blinkende Leuchtdiode!

Jeder käufliche Mikrokontroller besitzt seine eigene meist umfangreiche Dokumentation. Auch die Entwicklungsumgebung auf dem PC, wo wir unsere Programme für den Mikrokontroller entwerfen und anschliessend in den Speicher des Mikrokontrollers transferieren, will verstanden und richtig benutzt werden. Es ist nicht einfach, sich im Dschungel dieser umfangreichen Dokumentationen zu orientieren und effizient nachschlagen zu können. Dabei wollen wir stets der Hardware angepasste realistische und praxisnahe Beispielanwendungen implementieren.

Inhalt

Im diesem ersten Kurs benutzen wir den populären 8-Bit Kontroller AVR der Firma Atmel. Wir gehen kurz auf den Aufbau dieses Prozessors ein. Ein detaillierteres Bild des Prozessors erhalten Sie im Kurs Rechnerarchitektur. Mit Hilfe des Befehlsatzes des Prozessors programmieren wir erste kleine Beispiele in Maschinencode (Assembler). Wesentlich effizienter, aber auch bereits auf einem abstrakteren Niveau, lässt sich in einer Hochsprache programmieren. Wir benutzen an dieser Stelle einen C-Compiler. Das Wissen über die Unterschiede zwischen Maschinen- und Hochsprache ist ein zentraler Punkt des Kurses. Für ein lauffähiges System benötigen wir weiter auch Speicher für Programm und Daten. Ebenso lernen wir erste Peripheriebausteine kennen. Ein Kontroller kann auf externe Ereignisse, das Drücken einer Taste, das Ankommen eines Zeichens über eine Schnittstelle, usw. mit einem Interrupt reagieren. Ein solcher Interrupt unterbricht den normalen Programmablauf und muss vordringlich behandelt werden.