Intel MCS-51

Intel MCS-51 (allgemein gekennzeichnet als 8051) ist eine Architektur von Harvard, einzelner Span-Mikrokontrolleur (µC) Reihe, die von Intel 1980 für den Gebrauch in eingebetteten Systemen entwickelt wurde. Die ursprünglichen Versionen von Intel waren in den 1980er Jahren und Anfang der 1990er Jahre populär. Während Intel nicht mehr den MCS-51 verfertigt, bleiben binäre vereinbare Ableitungen populär heute. Zusätzlich zu diesen realen Geräten, mehrere Gesellschaften auch Ableitungen des Angebots MCS-51 als IP Kerne für den Gebrauch in FPGAs oder ASICs Designs.

Die ursprüngliche MCS-51 Familie von Intel wurde mit der NMOS Technologie entwickelt, aber spätere Versionen, die durch einen Brief C in ihrem Namen (z.B, 80C51) identifiziert sind, haben CMOS Technologie verwendet und haben weniger Macht verbraucht als ihre NMOS Vorgänger. Das hat sie passender für batterieangetriebene Geräte gemacht.

Wichtige Eigenschaften und Anwendungen

Die 8051 Architektur stellt viele Funktionen (Zentraleinheit, RAM, ROM, Eingabe/Ausgabe, Unterbrechungslogik, Zeitmesser, usw.) in einem einzelnen Paket zur Verfügung

  • 8-Bit-ALU, Akkumulator und 8-Bit-Register; folglich ist es ein 8-Bit-Mikrokontrolleur
  • 8-Bit-Datenbus - Es kann auf 8 Bit von Daten in einer Operation zugreifen
  • 16-Bit-Adressbus - Es kann auf 2 Speicherpositionen - 64 Kilobytes (65536 Positionen) jeder des RAM und ROMs zugreifen
  • RAM auf dem Span - 128 Bytes (Datengedächtnis)
  • ROM auf dem Span - 4 Kbytes (Programm-Gedächtnis)
  • Bidirektionaler Vier-Byte-Hafen des Eingangs/Produktion
  • UART (Serienhafen)
  • Zwei 16-Bit-Schalter/Zeitmesser
  • Zwei-Niveaus-Unterbrechungspriorität
  • Macht-Sparen-Weise (auf einigen Ableitungen)

Eine besonders nützliche Eigenschaft des 8051 Kerns war die Einschließung eines boolean Verarbeitung des Motors, der Bit-Niveau boolean Logikoperationen erlaubt, direkt und effizient auf ausgesuchten inneren Registern und ausgesuchten RAM-Positionen ausgeführt zu werden. Diese vorteilhafte Eigenschaft hat geholfen, die Beliebtheit des 8051 in Industriekontrollanwendungen zu zementieren, weil es Codegröße um nicht weniger als 30 % reduziert hat. Eine andere geschätzte Eigenschaft ist das Umfassen von vier Bank selectable Arbeitsregister-Sete, die außerordentlich die Zeitdauer reduzieren, die erforderlich ist, eine Unterbrechungsdienstroutine zu vollenden. Mit einer einzelnen Instruktion können die 8051 Register-Banken im Vergleich mit der zeitaufwendigen Aufgabe schalten, die kritischen Register dem Stapel oder den benannten RAM-Positionen zu übertragen. Diese Register haben auch den 8051 erlaubt, einen Zusammenhang-Schalter schnell durchzuführen, der für die Zeit empfindliche Echtzeitanwendungen notwendig ist.

Die MCS-51 UARTs machen es einfach, den Span als eine Serienkommunikationsschnittstelle zu verwenden. Außennadeln können konfiguriert werden, um zu inneren Verschiebungsregistern in einer Vielfalt von Wegen in Verbindung zu stehen, und die inneren Zeitmesser können auch verwendet werden, Serienkommunikationen in mehreren Weisen, sowohl gleichzeitig als auch asynchron erlaubend. Einige Weisen erlauben Kommunikationen ohne Außenbestandteile. Eine mit einer RS-485 Mehrpunktkommunikationsumgebung vereinbare Weise ist erreichbar, aber die echte Kraft des 8051 fügt mit dem vorhandenen ad hoc Protokolle (z.B ein, wenn sie serienkontrollierte Geräte kontrolliert).

Einmal ein UART und ein Zeitmesser nötigenfalls, sind konfiguriert worden, der Programmierer muss nur eine einfache Unterbrechungsroutine schreiben, um das senden Verschiebungsregister nachzufüllen, wann auch immer das letzte Bit durch den UART ausgewechselt wird und/oder leeren Sie sich, erhalten die vollen Verschiebungsregister (kopieren Sie die Daten sonst wohin). Das Hauptprogramm leistet dann Serien-liest und schreibt einfach durch das Lesen und das Schreiben von 8-Bit-Daten Stapeln.

MCS-51 hat Mikrokontrolleure gestützt normalerweise schließen einen oder zwei UARTs, zwei oder drei Zeitmesser, 128 oder 256 Bytes des inneren Daten-RAM ein (dessen 16 Bytes Bit-addressable sind), bis zu 128 Bytes der Eingabe/Ausgabe, 512 Bytes bis 64 Kilobytes des inneren Programm-Gedächtnisses, und manchmal eine Menge des verlängerten Daten-RAM im Außendatenraum gelegener (ERAM). Der ursprüngliche 8051 Kern ist an 12 Uhr-Zyklen pro Maschinenzyklus mit dem grössten Teil der Instruktionsdurchführung in einem oder zwei Maschinenzyklen gelaufen. Mit einer 12-MHz-Uhr-Frequenz konnten die 8051 so 1 Million Ein-Zyklus-Instruktionen pro Sekunde oder 500,000 Zwei-Zyklen-Instruktionen pro Sekunde durchführen. Erhöht werden 8051 Kerne jetzt allgemein verwendet, die an sechs, vier, zwei, oder sogar eine Uhr pro Maschinenzyklus laufen, und Uhr-Frequenzen von bis zu 100 MHz haben, und so zu einer noch größeren Zahl von Instruktionen pro Sekunde fähig sind. Der ganze SILabs, das ein Dallas und einige Geräte von Atmel haben einzelne Zyklus-Kerne.

Eigenschaften der modernen 8051 schließen eingebaute Rücksetzen-Zeitmesser mit der Spannungsabfall-Entdeckung, Oszillatoren auf dem Span, selbstprogrammierbares Blitz-ROM-Programm-Gedächtnis, eingebauten Außen-RAM, innere Extraprogramm-Lagerung, bootloader Code im ROM, EEPROM unvergängliche Datenlagerung, I²C ein, SPI und USB-Gastgeber-Schnittstellen, KÖNNEN oder LIN Bus, PWM Generatoren, Analogon comparators, A/D und D/A Konverter, RTCs, Extraschalter und Zeitmesser, im Stromkreis bei Möglichkeiten, mehr Unterbrechungsquellen und Extramacht-Sparen-Weisen die Fehler beseitigend.

In vielen Technikschulen wird der 8051 Mikrokontrolleur in einleitenden Mikrokontrolleur-Kursen verwendet.

Speicherarchitektur

Der MCS-51 hat vier verschiedene Typen des Gedächtnisses - innerer RAM, spezielle Funktionsregister, Programm-Gedächtnis und Außendatengedächtnis.

Innerer RAM (IRAM) wird von der Adresse 0 gelegen, um 0xFF zu richten. Auf IRAM von 0x00 bis 0x7F kann direkt zugegriffen werden, und die Bytes von 0x20 bis 0x2F sind auch Bit-addressable. Auf IRAM von 0x80 bis 0xFF muss indirekt, mit dem @R0 oder der @R1 Syntax mit der Adresse zum Zugang zugegriffen werden, der in R0 oder R1 geladen ist.

Spezielle Funktionsregister (SFR) werden von der Adresse 0x80 zu 0xFF gelegen, und werden direkt mit denselben Instruktionen bezüglich der niedrigeren Hälfte von IRAM zugegriffen. Etwas vom SFR'S ist auch Bit-addressable.

Programm-Gedächtnis (PMEM, obwohl weniger üblich, im Gebrauch als IRAM und XRAM) wird gelegen, an der Adresse 0 anfangend. Es kann auf - oder außer Span abhängig vom besonderen Modell des Spans sein, der wird verwendet. Programm-Gedächtnis ist read-only-, obwohl einige Varianten des 8051 Gebrauches auf dem Span Gedächtnis aufblitzen lassen und eine Methode zur Verfügung stellen, das Gedächtnis im System oder in der Anwendung wiederzuprogrammieren. Beiseite von der Speicherung des Codes kann Programm-Gedächtnis auch Tische von Konstanten versorgen, auf die durch MOVC A, @DPTR, mit dem speziellen 16-Bit-Funktionsregister DPTR zugegriffen werden kann.

Außendatengedächtnis (XRAM) fängt auch an der Adresse 0 an. Es kann auch auf - oder außer Span sein; was macht, ist es "äußerlich", dass darauf mit dem MOVX zugegriffen werden muss (Bewegen Sie sich äußerlich) Instruktion. Viele Varianten der 8051 schließen die normalen 256 Bytes von IRAM plus einige KILOBYTE von XRAM auf dem Span ein. Wenn mehr XRAM durch eine Anwendung erforderlich ist, kann der innere XRAM arbeitsunfähig sein, und alle MOVX Instruktionen werden vom Außenbus herbeiholen.

Programmierung

Es gibt verschiedene Programmiersprache-Bearbeiter auf höchster Ebene für die 8051. Mehrere C Bearbeiter sind für die 8051 verfügbar, von denen die meisten Erweiterungen zeigen, die dem Programmierer erlauben anzugeben, wo jede Variable in seinen sechs Typen des Gedächtnisses versorgt werden sollte, und stellen Zugang zu 8051 spezifischen Hardware-Eigenschaften wie die vielfachen Register-Banken und Bit-Manipulationsinstruktionen zur Verfügung. Es gibt viele kommerzielle C Bearbeiter. SDCC ist eine populäre offene Quelle C Bearbeiter. Andere hohe Sprachen solcher als Hervor, GRUNDLEGEND, Pascal/Gegenstand Pascal, PL/M und Modula-2 sind für die 8051 verfügbar, aber sie werden weniger weit verwendet als C und Zusammenbau.

Weil IRAM, XRAM und PMEM (liest nur), alle eine Adresse 0 haben, C Bearbeiter für die 8051 Architektur stellen mit dem Bearbeiter spezifischen pragmas oder andere Erweiterungen zur Verfügung, um anzuzeigen, wo ein besonderes Stück von Daten (d. h. Konstanten in PMEM oder Variablen versorgt werden sollte, die schnellen Zugang in IRAM brauchen). Seitdem Daten in einem von drei Speicherräumen sein konnten, wird ein Mechanismus gewöhnlich zur Verfügung gestellt, um zu erlauben, zu bestimmen, auf das Gedächtnis sich ein Zeigestock bezieht, entweder indem er den Zeigestock-Typ beschränkt wird, den Speicherraum, oder durch die Speicherung metadata mit dem Zeigestock einzuschließen.

Befehlssatz

Der MCS-51 Befehlssatz bietet mehrere Wenden-Weisen einschließlich an

  • direktes Register, mit ACC (der Akkumulator) und R0-R7
  • direktes Gedächtnis, die auf den inneren RAM oder der SFR'S, abhängig von der Adresse zugreifen
  • indirektes Gedächtnis, mit R0, R1 oder DPTR, um die Speicheradresse zu halten. Die verwendete Instruktion kann sich ändern, um auf inneren RAM, Außen-RAM oder Programm-Gedächtnis zuzugreifen.
  • individuelle Bit einer Reihe von IRAM und einige von den des SFR

Viele der Operationen erlauben jede Wenden-Weise für die Quelle oder den Bestimmungsort zum Beispiel, MOV 020., 03fh wird den Wert in der Speicherposition 0x3f im inneren RAM zur Speicherposition 0x20 auch im inneren RAM kopieren.

Weil die 8051 eine Akkumulator-basierte Architektur sind, müssen alle arithmetischen Operationen den Akkumulator verwenden, z.B HINZUZUFÜGEN, dass A, 020. den Wert in der Speicherposition 0x20 im inneren RAM zum Akkumulator hinzufügen wird.

Man braucht diese Instruktionen nicht zu meistern, die 8051 zu programmieren. Mit der Verfügbarkeit der guten Qualität C Bearbeiter, einschließlich der offenen Quelle SDCC, eigentlich können alle Programme mit der höheren Programmiersprache geschrieben werden.

Zusammenhängende Verarbeiter

Der Vorgänger des 8051, die 8048, wurde in der Tastatur ersten IBM PC verwendet, wo es Tastenanschläge in den Seriendatenstrom umgewandelt hat, der an die Haupteinheit des Computers gesandt wird. Die 8048 und Ableitungen werden noch für Tastaturen des Grundmodells verwendet.

Die 8031 waren eine Kürzung unten Version ursprünglichen Intel 8051, der kein inneres Programm-Gedächtnis (ROM) enthalten hat. Um diesen Span zu verwenden, musste Außen-ROM hinzugefügt werden, das Programm enthaltend, das die 8031 herbeiholen und durchführen würden. Ein 8051 Span konnte als ein ROM weniger 8031 verkauft werden, weil das innere ROM des 8051 durch den normalen Staat der EA-Nadel in einem 8031-basierten Design arbeitsunfähig ist. Ein Verkäufer könnte 8051 als 8031 für jede Zahl von Gründen, wie fehlerhafter Code im ROM des 8051, oder einfach ein Überangebot von 8051 und undersupply von 8031 verkaufen.

Die 8052 waren eine erhöhte Version der ursprünglichen 8051, die 256 Bytes des inneren RAM statt 128 Bytes, 8 Kilobytes des ROMs statt 4 Kilobytes und eines dritten 16-Bit-Zeitmessers gezeigt haben. Die 8032 hatten diese dieselben Eigenschaften abgesehen vom inneren ROM-Programm-Gedächtnis. Wie man größtenteils betrachtet, sind die 8052 und 8032 veraltet, weil diese Eigenschaften und mehr in fast alle modernen 8051 basierten Mikrokontrolleure eingeschlossen werden.

Intel hat sein MCS-51 Erzeugnis im März 2007 unterbrochen, jedoch gibt es viele erhöhte 8051 Produkte oder geistiges Silikoneigentum hinzugefügt regelmäßig von anderen Verkäufern. Aktuelle Verkäufer von MCS-51 vereinbaren Verarbeitern schließen mehr als 20 unabhängige Hersteller einschließlich Atmel, Infineon Technologies (früher Siemens AG), Sprichwort Einheitliche Produkte (über seine Dallas Halbleiter-Tochtergesellschaft), NXP (früher Philips Semiconductor), Mikrochip-Technologie, Nuvoton (früher Winbond), ST-Mikroelektronik, Silikonlaboratorien (früher Cygnal), Instrumente von Texas, Ramtron International, Silikonspeichertechnik, Zypresse-Halbleiter und Analoggeräte ein.

80C537 und 80C517 sind CMOS Versionen, die für die Automobilindustrie entworfen sind. Erhöhungen größtenteils neue peripherische Eigenschaften und ausgebreitete arithmetische Instruktionen. 80C517 hat scheitern sparen Mechanismen, analoge Signalverarbeitungsmöglichkeiten und Zeitmesser-Fähigkeiten und 8-Kilobyte-Programm-Gedächtnis auf dem Span. Andere Eigenschaften schließen ein:

  • 256-Byte-RAM auf dem Span
  • 256 direkt addressable Bit
  • Außenprogramm und Datengedächtnis erweiterbare bis zu 64 Kilobytes
  • A/D 8-Bit-Konverter mit 12 gleichzeitig gesandten Eingängen
  • Arithmetische Einheit kann Abteilung, Multiplikation machen, auswechseln und Operationen normalisieren
  • Acht Datenzeigestöcke statt einen für das indirekte Wenden des Programms und Außendatengedächtnisses
  • Verlängerte Aufpasser-Möglichkeiten
  • Neun Häfen
  • Zwei Voll-Duplexserienschnittstellen mit eigenen Baudrate-Generatoren
  • Vier Vorzugsniveau unterbricht Systeme, 14 Unterbrechungsvektoren
  • Drei Macht-Sparen-Weisen

Verwenden Sie als geistiges Eigentum

Heute sind 8051 noch als getrennte Teile verfügbar, aber sie werden größtenteils als Silikonkerne des geistigen Eigentums verwendet. Verfügbar im Quellcode der höheren Programmiersprache (VHDL oder Verilog) oder FPGA netlist Formen werden diese Kerne normalerweise innerhalb von eingebetteten Systemen in Produkten im Intervall von USB-Blitz-Laufwerken zu Waschmaschinen zu komplizierten Radionachrichtensystemen auf einem Span integriert. Entwerfer verwenden IP 8051 Silikonkerne, wegen der kleineren Größe und niedrigeren Macht, im Vergleich zu 32-Bit-Verarbeitern wie ARM M Reihe, MIPS und BA22.

Moderne 8051 Kerne sind schneller als früher paketierte Versionen. Designverbesserungen haben 8051 Leistung vergrößert, während sie Vereinbarkeit mit dem ursprünglichen MCS 51 Befehlssatz behalten. Ursprünglicher Intel 8051 ist an 12 Uhr-Zyklen pro Maschinenzyklus und den meisten in einem oder zwei Maschinenzyklen durchgeführten Instruktionen gelaufen. Eine typische maximale Uhr-Frequenz von 12 MHz hat bedeutet, dass diese alten 8051 eine Million Instruktionen des einzelnen Zyklus oder 500,000 Zwei-Zyklen-Instruktionen pro Sekunde durchführen konnten. Im Gegensatz, erhöht IP 8051 Silikonkerne, die jetzt an einem Uhr-Zyklus pro Maschinenzyklus geführt sind, und haben Uhr-Frequenzen von bis zu 450 MHz. Das bedeutet, dass ein vereinbarer mit 8051 Verarbeiter jetzt 450 Millionen Instruktionen pro Sekunde durchführen kann.

Siehe auch

  • SDK-51 Systemdesignbastelsatz

Literatur

  • MCS 51 Mikrokontrolleur-Familienbenutzerhandbuch, Februar 1994, Veröffentlichung Nummer 121517, Intel Corporation; PDF.
  • MCS-51 Makroassemblerbenutzerhandbuch, Veröffentlichung Nummer 9800937, Intel Corporation.
  • Mikrokontrolleur-Handbuch. Intel 1984, Bestellnummer 210918-002.
  • Eingebettete 8-Bit-Kontrolleure. Intel 1991, Bestellnummer 270645-003.

Außenverbindungen


Azul / Beziehungen zwischen jüdischen religiösen Bewegungen
Impressum & Datenschutz