Beitrag vom 26.05.2016
Von-Neumann-Architektur
Aktuelle Mikroprozessoren und Mikrocontroller orientieren sich zumeist an der Von-Neumann-Architektur:
Bildquelle: Wikipedia
CPU = Central Processing Unit
"Die Von-Neumann-Architektur (VNA) ist ein Referenzmodell für Computer, wonach ein gemeinsamer Speicher sowohl Computerprogrammbefehle als auch Daten hält. Von-Neumann-Systeme gehören nach der Flynnschen Klassifikation zur Klasse der SISD-Architekturen (Single Instruction, Single Data), im Unterschied zur Parallelverarbeitung.
Die Von-Neumann-Architektur bildet die Grundlage für die Arbeitsweise der meisten heute bekannten Computer" (Wikipedia)."
Der vorige Satz kann jedoch angezweifelt werden Betrachtet man beispielsweise AVR-Mikrocontroller der Fa. Atmel, so wird schnell klar, dass das Speicherkonzept eher der Harvard-Architektur entspricht - denn Programm- und Datenspeicher sind sehr wohl getrennt:
Bildquelle: Wikipedia
Die Vorteile getrennter Programm- und Datenspeicher liegen auf der Hand:
Im Mikrocontroller ATMega8 gibt es sogar drei verschiedene Speicherarten:
Das EEPROM (electrically erasable programmable read-only memory) ist wie das Flash ein nichtflüchtiger Speicher, die Daten bleiben also auch nach dem Ausschalten der Betriebsspannung erhalten. Es kann beliebig oft gelesen und mindestens 100.000 mal beschrieben werden. Bei den AVRs kann man es z. B. als Speicher für Messwerte oder Einstellungen benutzen.
Mikroprozessor oder Mikrocontroller?
-> Das lässt sich nicht immer ganz klar definieren, da die Übergänge fließend sind.
Ein Mikroprozessor benötigt immer zusätzliche Peripherie wie Programm- und Datenspeicher, Ein/Ausgabe-Bausteine, Zähler/Zeitgeber, usw.
Ein Mikrocontroller ist sozusagen ein (eher langsamer) Prozessor plus Zusatzmodule wie Speicher, Digital- und Analog- Ein- und Ausgänge, Timer... auf einem Mikrochip!
Man könnte auch sagen:
Ein Mikrocontroller ist ein Ein-Chip-Computersystem bzw. System on a Chip (SoC).
Viele der heute gängigen Mikrocontroller arbeiten mit 8 Bit.
Allerdings gibt es auch SoC-Chips (z.B. ARM Cortex-A53) mit vier Prozessorkernen und 64 Bit, die an die Leistung moderner PC-Prozessoren herankommen oder diese sogar übersteigen. Die ARM-Chips werden gerne in Smartphones und Tablets verbaut.
Bei diesen ARM-Chips würde man sicher nicht mehr vom "Mikrocontroller" sprechen.
Gängige Einsatzbereiche von Mikrocontrollern:
Waschmaschinen
LEGO-Roboter
Chipkarten
Unterhaltungselektronik -> CD/DVD Player, Fernsehgeräte
Steuergeräte im Auto für ABS, Airbag, Motor...
Uhren
elektronische Spielzeuge
Auch PC-Komponenten wie Diskettenlaufwerke, DVD-laufwerke und Festplatten werden von Mikrocontrollern gesteuert. Der Mikroprozessor des PCs erhält also schon vorverarbeitete Daten von den Peripheriegeräten und kann sich voll auf sein "Kerngeschäft konzentrieren" - nämlich schnell zu rechnen und Daten zu verarbeiten.
Mikrocontroller -> ein kompletter kleiner Computer - ohne zusätzliche Komponenten
AVR-Mikrocontroller wie der AtTiny12 brauchen beispielsweise nur eine Stromversorgung (z.B. 4,5 Volt aus einem Batteriepack) und nicht einmal einen Quarz für die Erzeugung des Systemtaktes. Die folgende Schaltung stellt ein Lauflicht dar - natürlich muss der Mikrocontroller dafür entsprechend programmiert werden:
Quelle: http://www.mikrocontroller.net/topic/31388
Speicher, Variablen und Arrays
Wenn man heute Mikrocontroller programmieren möchte, so muss man nicht mehr jedes einzelne Register kennen. Programmierumgebungen wie Arduino oder BASCOM erleichtern dem Anfänger den Einstieg.
Allerdings ist es wichtig, zumindest die Speicherarchitektur zu verstehen:
Eine sehr vereinfachte Darstellung der Speicherarchitektur der AVR-Mikrocontroller (ATMEL) sieht in etwa so aus:
.