8051

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Die 8051-Familie (besser: MCS-51) ist eine Prozessorarchitektur von Intel. Der Original 8051 ist mittlerweile veraltet, aber es gibt hunderte Varianten (Derivate) davon, die teilweise durchaus auf dem aktuellen Stand der Technik sind.

Kenndaten des Original 8051:

  • jeweils bis zu 64 kB externer Daten- und Programmspeicher adressierbar
  • 128 Byte internes RAM (8052: 256 Byte)
  • 2 Timer/Counter (8052: 3 Timer/Counter)
  • 2 externe Interrupts
  • 4 8-bit I/O Ports, zwei davon für den Zugriff auf externen Speicher
  • Hardware UART

Der Original 8051 ist ein maskenprogrammierter Mikrocontroller; die ROM-lose Variante heißt 8031. Für einen Befehl benötigt er mindestens 12 Takte. Befehls- und Datenspeicher sind logisch getrennt, auch wenn diese über einen einzigen gemultiplexten externen Bus adressiert werden - sofern externe Speicher verwendet werden. Ob es sich hierbei um eine Harvard-Architektur oder eine Von Neumann-Architektur handelt, ist umstritten (siehe Diskussion:8051). In der Standardbeschaltung ist kein Code im Datenspeicher als Programmcode ausführbar. Dieses lässt sich jedoch durch Verschalten von PSEN und RD per AND-Gatter erreichen. Diese Methode wird während der Programmentwicklung gerne verwendet, siehe BOOT-51.

Ein bekannter Vertreter diese Familie ist der 80C535 von Infineon. Der ist zwar mittlerweile ebenfalls veraltet, wird allerdings gerne noch im Schulunterricht verwendet. Mittlerweile heißt er C515 und wird ab Juli 2005 von Firma Infineon nicht mehr produziert. Das momentan einzige Derivat von Infineon ist die xc800-Reihe(Stand 2009).

Aktuellere Vertreter dieser Familie sind z. B. die MicroConverter® von Analog Devices, die AT89-Familie von Atmel, die MSC12-Familie von Texas Instruments oder die DS89C430 von Maxim (Dallas).

Moderne 8051-Derivate warten unter anderem neben höherer Taktfrequenz, I2C-Bus, DA-Wandler und AD-Wandler mit einer geringeren Taktteilung auf. Dadurch werden zur Ausführung eines Befehls nicht mehr 12, sondern nur noch 6, 4 Takte oder sogar nur noch ein Takt benötigt. Durch einen internen Flash-ROM als Programmspeicher entfällt die Notwendigkeit ein externes EPROM anzuschließen. Darüber hinaus verwenden einige USB-Mikrocontroller einen 8051-Kern, beispielsweise die EzUSB von Cypress, die TUSBxxxx-Serie von Texas Instruments oder der AT89C5131A-M von Atmel.

Die Architektur ist für C-Compiler wegen des begrenzten Stack-Speichers und den vielen notwendigen Spracherweiterungen eher weniger geeignet: push und pop Befehle stehen nur für die unteren 256 Byte Ram zur Verfügung, in denen auch die 4 Bänke a 8 Register liegen. Braucht man einen größeren Stack so ist man darauf angewiesen, das der Compiler push und pop als langsamere XRAM Zugriffe emuliert. (small <-> large memory model). Die SFRs teilen sich 128 Adressen mit dem oberen Teil des internen RAMs. Die SFRs werden direkt, die oberen 128 Byte RAM indirekt adressiert. Bei den unteren 128 Byte RAM sind beide Adressierungsarten möglich. Da es sich um einen indirekten Zugriff handelt, können auch die oberen 128 Byte RAM für den Stack genutzt werden.


Links