sitemap link mailform link home

Grundlagen

Beitrag vom 26.05.2016

Von-Neumann-Architektur

Aktuelle Mikroprozessoren und Mikrocontroller orientieren sich zumeist an der Von-Neumann-Architektur:

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 Externer Link AVR-Mikrocontroller der Fa. Atmel, so wird schnell klar, dass das Speicherkonzept eher der Externer Link Harvard-Architektur entspricht - denn Programm- und Datenspeicher sind sehr wohl getrennt:

Harvard-Architektur

Bildquelle: Wikipedia

Die Vorteile getrennter Programm- und Datenspeicher liegen auf der Hand:

  • Das Programm / Betriebssystem kann nicht versehentlich überschrieben werden während der Programm-Laufzeit.
  • Befehle und Daten können parallel (schneller)  verarbeitet werden.

Im Mikrocontroller ATMega8 gibt es sogar drei verschiedene Speicherarten:

  • Flash-Speicher (Programm-Speicher)
  • RAM-Speicher (Datenhaltung während der Laufzeit)
  • EEPROM-Speicher

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:

Lauflichtschaltung

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:

  • Wie viel Flash-Speicher hat mein Mikrocontroller?
  • Wie viel RAM-Speicher hat mein Mikrocontroller?
  • Wie kann der EEPROM programmiert und genutzt werden?
  • Handelt es sich um einen 8-Bit-Mikrocontroller?
  • Welche Datentypen gibt es und wie viel Byte im RAM-Speicher belegen sie?

Eine sehr vereinfachte Darstellung der Speicherarchitektur der AVR-Mikrocontroller (ATMEL) sieht in etwa so aus:

AVR Speicher

.

Letzte Änderung:
October 05. 2018 10:52:47
«    top    »