- Intel MCS-51
-
MCS-51 ist die Bezeichnung einer 1980 von Intel vorgestellten Familie von 8-Bit-Mikrocontrollern.[1][2] Die MCS-51-Familie trat die Nachfolge der MCS-48-Familie an. Zu Beginn hatte sie nur drei Mitglieder mit den Bezeichnungen 8051, 8031 und 8751. Beim 8031 befindet sich das Anwendungsprogramm in einem externen Baustein, wohingegen sich beim 8051 und 8751 das Anwendungsprogramm im Baustein selbst befindet – entweder in einem maskenprogrammierten ROM (8051) oder in einem EPROM (8751).[3] Im Jahr 1983 wurden die entsprechenden Varianten 8052, 8032 und 8752 mit jeweils doppeltem ROM wie RAM und einem zusätzlichen Timer vorgestellt.[3]
Intel hat den MCS-51-CPU-Kern an viele Halbleiterhersteller lizenziert und damit die Basis für einen herstellerübergreifenden Industriestandard geschaffen. Seit langem werden MCS-51-kompatible Mikrocontroller nicht nur von Intel, sondern auch von Analog Devices, Atmel, Infineon, Maxim/Dallas, Oki, NXP Semiconductors (Philips), Silicon Laboratories, Texas Instruments u. v. a. hergestellt.
Von Intel wurde der SDK-51 als Entwicklungssystem angeboten.
Inhaltsverzeichnis
Struktur
Die MCS-51-Familie hat sehr viele Mitglieder hervorgebracht, u. a. den Siemens 80C517. Sie besitzen folgende Gemeinsamkeiten:
- 8-Bit Prozessorkern mit einheitlichem Befehlssatz
- mindestens 128 Bytes internes RAM
- externes RAM und ROM
- ein einheitliches Adressierungsmodell für so genannte Special Function Register (SFR)
- Full-Duplex-UART
- 5 Interrupt-Quellen
- 2 Interrupt-Prioritäten
- diverse Timer
Aufgrund der unterschiedlichen Befehlslängen von einem bis zu drei Byte sowie den unterschiedlichen Ausführungszeiten für einen Befehl handelt es sich eindeutig um eine CISC-Architektur.
Ein Befehlszyklus entspricht in der ursprünglich von Intel entwickelten Struktur einem bis drei Maschinenzyklen. Ein Maschinenzyklus entspricht 12 Taktzyklen. Heute übliche Varianten des MCS-51 kommen hingegen meist fix mit nur zwei Taktzyklen pro Maschinenzyklus aus. Damit ist bei gleicher Taktfrequenz eine deutlich höhere Befehlsabarbeitung möglich.
Eine Besonderheit dieses Prozessors ist der Bitprozessor, welcher im bitadressierbaren Bereich eine schnelle und einfache Bitmanipulation erlaubt.
Aufgrund der großen Verbreitung dieser Prozessorfamilie und damit verbunden großen Softwarebibliotheken gibt es auch eine Vielzahl von synthetisierbaren MCS-51-Implementierungen. Diese sind als so genannte IP-Cores in einer Hardwarebeschreibungssprache wie beispielsweise VHDL frei und im Quelltext verfügbar.[4] Sie eignen sich für den Einsatz in FPGAs und anwendungsspezifischen integrierten Schaltungen (ASICs). Typische Anwendungsbeispiele sind USB-Controller, wie sie in Druckern oder Schnittstellenadaptern eingesetzt werden. In diese sind zur Steuerung der diversen Protokolle MCS-51-Mikrocontroller integriert.
Varianten
Die MCS-51-Baureihe umfasst folgende bekannte Mikrocontroller (alle Speicherangaben sind in Byte):
NMOS- und CHMOS-Varianten Typ ROM intern RAM intern Bemerkung NMOS CHMOS 8031 – 128 zwei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen[5] x x 8032 – 256 drei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen[5] x x 8051 4096 128 zwei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen, maskenprogrammierbares ROM[5][6] x x 8052 8192 256 drei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen, maskenprogrammierbares ROM[5][7] x x 80C54 16384 256 drei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen, maskenprogrammierbares ROM[7] – x 80C58 32768 256 drei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen, maskenprogrammierbares ROM[7] – x 8751 4096 128 zwei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen, EPROM als OTP oder mit UV-Fenster[5][6] x x 8752 8192 256 drei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen, EPROM als OTP oder mit UV-Fenster[5][7] x x 87C54 16384 256 drei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen, EPROM als OTP oder mit UV-Fenster[7] – x 87C58 32768 256 drei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen, EPROM als OTP oder mit UV-Fenster[7] – x 89C52 32768 256 drei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen, Flash-Speicher – x 8044 4096 192 RUPI™-44 (Remote Universal Peripheral Interface), zwei 16-Bit-Timer, Serial Interface Unit, maskenprogrammierbares ROM[8] x – 8344 – 192 RUPI™-44 (Remote Universal Peripheral Interface), zwei 16-Bit-Timer, Serial Interface Unit[8] x – 8744 4096 192 RUPI™-44 (Remote Universal Peripheral Interface), zwei 16-Bit-Timer, Serial Interface Unit, EPROM als OTP oder mit UV-Fenster[8][9] x – Darüber hinaus gibt es von verschiedenen Firmen erweiterte MCS-51-Mikrocontroller, z. B. von Siemens (heute Infineon) entwickelt und in NMOS-Technologie hergestellt:
Typ ROM intern RAM intern Bemerkung SAB 80515 8192 256 Hersteller: SIEMENS, drei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen, PWM, 8-fach A/D-Wandler, maskenprogrammierbares ROM SAB 80535 – 256 drei 16-Bit-Timer, 1 UART, zwei externe Interruptquellen, PWM, 8-fach A/D-Wandler Die CMOS-Varianten der Siemens MCS-51-Serie sind funktionsgleich, allerdings nicht in allen Varianten pinkompatibel.
Weitere moderne MCS-51-kompatible Mikrocontroller, welche in CMOS-Technologie mit Flash-Speicher hergestellt werden und meistens schnellere Befehlsverarbeitung, mehr Speicher oder spezielle Schnittstellen aufweisen:
Hersteller Typ Flash intern RAM intern Bemerkung ATMEL AT89C2051 2048 128 nur 20 Pins, kein externer Daten-/Adressbus, zwei 16-Bit-Timer, 1 UART, 1 Komparator, Flash-Speicher ATMEL AT89C4051 4096 128 nur 20 Pins, kein externer Daten-/Adressbus, zwei 16-Bit-Timer, 1 UART, 1 Komparator, Flash-Speicher ATMEL AT89C51ED2 16384 256 bis zu 6 Ports (je nach Gehäusegröße), 1792 Bytes internes MOVX-SRAM, RS232 Bootloader im ROM, 2048 Bytes internes Daten-EEPROM, drei 16-Bit-Timer, 1 UART, 1 Komparator, 2 Datenzeiger, PWM, SPI, Flash-Speicher MAXIM/DALLAS DS89C430 16384 256 ein Taktzyklus pro Befehl, max. 33 MIPS bei 33 MHz, 1 KB internes MOVX-SRAM, RS232 Bootloader im ROM, drei 16-Bit-Timer, 1 UART, 1 Komparator, 2 Datenzeiger, Flash-Speicher MAXIM/DALLAS DS89C450 65536 256 ein Taktzyklus pro Befehl, max. 33 MIPS bei 33 MHz, 1 KB internes MOVX-SRAM, RS232 Bootloader im ROM, drei 16-Bit-Timer, 1 UART, 1 Komparator, 2 Datenzeiger, Flash-Speicher Speicherorganisation
In der ursprünglichen Form handelt es sich um eine Harvard-Architektur, jedoch besitzen viele neuere MCS-51-Entwicklerboards eine modifizierte Harvard-Architektur. Mit dieser Architektur wird ein Teil des XRAMs (extended data RAM) mittels eines Adressdekoders in den Programmspeicher gespiegelt. Dies ermöglicht einer meist ab ROM laufenden Terminalsoftware z. B. per Serielle Schnittstelle kommende Software in den Programmspeicher zu laden und nach dem Übertragen auszuführen.
Der Stack befindet sich immer frei definierbar im internen RAM. Die Byte-Reihenfolge ist Little Endian First.
Datenspeicher
Die 4 Registerbänke enthalten jeweils 8 Register, die entweder als Register oder über ihre Adresse ansprechbar sind. Vorteile der Register gegenüber dem "RAM zur allgemeinen Verwendung" sind die kürzeren Befehle. Register 0 und 1 können als 8-Bit-Datenpointer im internen und externen RAM verwendet werden. Durch geschickte Verwendung der Registerbänke lässt sich die Reaktionszeit auf einen Interrupt verkürzen, da die Daten nicht in den Stack verschoben werden müssen.
Da sich das obere RAM und die Special Function Register die Adressen teilen, dient die Adressierungsart zur Unterscheidung. Das obere RAM lässt sich nur indirekt mittels Register 0 und Register 1 ansprechen, während die Special Function Register mittels direkter Adressierung ansprechbar sind.
Bei der Programmierung wird das erweiterte RAM (engl. extended data RAM oder kurz XRAM) vom normalen RAM durch den Befehl unterschieden.
MOV
spricht das interne RAM an, währendMOVX
das XRAM anspricht. Das XRAM ist nur indirekt adressierbar, dafür jedoch linear. Bei den frühen Varianten war das XRAM immer extern, bei neueren Varianten kann es teilweise oder vollständig integriert sein.Aufgrund der Adressbusbreite von 16 Bit sind bis zu 65536 Byte XRAM möglich.
Die Special Function Register bzw. Speicheradressen des XRAMs werden von bestimmten Varianten von Controllern bzw. Controllerboards für Erweiterungen aller Art verwendet. Als Beispiel:
- weitere Ein- und Ausgänge
- 16-Bit-Recheneinheit
- USB-Controller
- ...
Besonders bei den synthetisierbaren MCS-51-Implementierungen bietet sich das an, weil der Befehlssatz der MCS-51-Familie nicht verändert wird, womit die Kompatibilität zu deren Entwicklungstools erhalten bleibt.
Programmspeicher
Da der Adressbus 16 Bit breit ist, kann der externe Programmspeicher bis zu 65536 Byte umfassen. Es kann entweder der interne oder der externe Programmspeicher verwendet werden. Ein gleichzeitiges Betreiben ist nicht möglich.
Mittels
MOVC
kann das Programm vom Programmspeicher lesen, was bei der Implementierung von Tabellen hilfreich ist.Ports
Port 1 und Port 3 dieser Mikrocontroller sind N-Kanal-MOSFETs mit internem Pull-Up.
RMW-Befehle lesen den Wert aus dem Speicher, während alle anderen Befehle die Werte vom Pin holen.
Literatur
- J. Koch (Bearb.): Die 8bit-Mikrocontroller-Familie 8051, 1. Eigenschaften. Philips/Valvo, 1984. ISBN 3-87095-260-1.
- J. Koch (Bearb.): Die 8bit-Mikrocontroller-Familie 8051, 2. Befehlsvorrat. Philips/Valvo, 1984. ISBN 3-87095-261-X.
- Mikrocomputer SAB 8051 Befehlsliste. Hrsg. von der Siemens AG, Bereich Bauelemente, Balanstraße 73, 8000 München 80 (Best-Nr. B/2591).
- Andreas Roth: Das Microcontroller Kochbuch MCS51, 6. Auflage, mitp Verlag, Januar 2002, ISBN 978-3-8266-0722-6.
- R. Leicht: Das große 51er Anwendungsbuch. Franzis Verlag 2005, ISBN 3-7723-5419-X.
- J. Walter: Mikrocomputertechnik mit der 8051-Controller-Familie. 3. Auflage, Springer 2008, ISBN 978-3-540-66758-2.
- M. Baldischweiler: Der Keil C51-Compiler, ISBN 3-9804331-8-8.
- Microcontroller Handbook, Intel Corporation 1984, Order number 210918-002.
- 8-Bit Embedded Controllers, Intel Corporation 1991, Order number 270645-003.
- MCS® 51 Microcontroller Family User's Manual, February 1994, Publication number 121517, Intel Corporation; PDF.
- MCS-51™ Macro Assembler User's Guide, Publication number 9800937, Intel Corporation.
Einzelnachweise
- ↑ John Wharton: An Introduction to the Intel® MCS-51™ Single-Chip Microcomputer Family, Application Note AP-69, May 1980, Publication number 121518, Intel Corporation; PDF.
- ↑ John Wharton: Using the Intel® MCS-51™ Boolean Processing Capabilities, Application Note AP-70, May 1980, Publication number 203830-001, Intel Corporation; PDF.
- ↑ a b Intel's CPU family trees
- ↑ Vollständige Implementierung eines MCS-51-Mikrocontrollers in VHDL unter GNU Lesser General Public License (engl.)
- ↑ a b c d e f MCS® 51 8-Bit Control-Oriented Microcontroller
- ↑ a b 8XC51FX CHMOS Single-Chip 8-Bit Microcontrollers
- ↑ a b c d e f 8XC52/54/58 CHMOS SINGLE-CHIP 8-BIT MICROCONTROLLER
- ↑ a b c 8044AH/8344AH/8744H High Performance 8-Bit Microcontroller With On-Chip Serial Communication Controller
- ↑ M8744H RUPI™-44: Remote Universal Peripheral Interface
Weblinks
Commons: MCS-51 – Sammlung von Bildern, Videos und AudiodateienSchlagen Sie auch in anderen Wörterbüchern nach:
Intel MCS-48 — Intel P8048H. Intel D8749. MCS 48 ist die Bezeichnung e … Deutsch Wikipedia
Intel MCS-48 — Microcontrolador Intel 8048 La serie de microcontroladores (µC) MCS 48, el primer microcontrolador de Intel, fue lanzada originalmente en 1976. Sus primeros miembros fueron el 8048, el 8035, y el 8748. La serie MCS 48 tiene una arquitectura… … Wikipedia Español
Intel MCS-96 — The Intel MCS 96 is a family of microcontrollers (MCU) commonly used in embedded systems. The family is often referred to as the 8xC196 family, or 80196, the most popular MCU in the family. These MCUs are commonly used in hard disk drives, modems … Wikipedia
Intel MCS-296 — The Intel MCS 296 is a family of microcontrollers (MCU), an improved version of the Intel MCS 96, while remaining compatible. The family is often referred to as the 80296. The MCU has improved math performance making it practical in embedded… … Wikipedia
Intel 4004 — Intel C4004 microprocessor Produced From late 1971 to 1981 Common manufacturer(s) Intel Max. CPU clock rate … Wikipedia
Intel 8051 — Intel P8051 Intel 8051 это однокристальный микроконтроллер (не путать с процессором) гарвардской архитектуры, который был впервые произведен Intel в 1980 году … Википедия
Intel 4004 — Der Intel 4004 ist ein 4 Bit Mikroprozessor des Mikrochipherstellers Intel, der am 15. November 1971 auf den Markt kam. Er gilt als der erste Ein Chip Mikroprozessor, der in Serie produziert und am freien Markt vertrieben wurde. Meist wird er… … Deutsch Wikipedia
Intel 8051 — The Intel 8051 is a Harvard architecture, single chip microcontroller (µC) which was developed by Intel in 1980 for use in embedded systems. Intel s original versions were popular in the 1980s and early 1990s, but has today largely been… … Wikipedia
Intel 8259 — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar … Wikipedia Español
Intel 8021 — Intel P8048H. Intel D8749. Der Intel 8048 ist das Grundmodell der von Intel 1977 vorgestellten MCS 48 Familie von Ein Chip Computersystemem (Mikrocontrollern). Bei einem Mikrocontroller sind im Optimalfall alle Tei … Deutsch Wikipedia