Antworten:
Ein Mikroprozessor hat im Allgemeinen keine RAM-, ROM- und IO-Pins. Normalerweise verwendet es seine Pins als Bus, um eine Schnittstelle zu Peripheriegeräten wie RAM, ROM, seriellen Ports, digitaler und analoger E / A herzustellen. Dadurch ist es auf Board-Ebene erweiterbar.
Ein Mikrocontroller ist alles in einem, der Prozessor, RAM, IO alles auf einem Chip. Daher kann man nicht die verfügbare RAM-Größe oder die Anzahl der IO-Ports (sagen wir) erhöhen. Der steuernde Bus ist intern und steht dem Board-Designer nicht zur Verfügung.
Dies bedeutet, dass ein Mikroprozessor im Allgemeinen in größere Universalanwendungen eingebaut werden kann als ein Mikrocontroller. Der Mikrocontroller wird normalerweise für speziellere Anwendungen verwendet.
All dies sind sehr allgemeine Aussagen. Es gibt Chips, die die Grenzen verwischen.
Wie bereits erwähnt, handelt es sich bei Mikrocontrollern im Wesentlichen um Systeme auf einem Chip. Mit Ausnahme einiger spezialisierter Peripheriegeräte ist alles in einem Paket enthalten. Die Schnittstelle zu externen Peripheriegeräten erfolgt fast immer über serielle Verbindungen. Dies hält die Packungsgrößen klein (weniger Stifte) und die PCB-Größe klein (weniger Stifte zum Verbinden zwischen den Packungen).
Beim letzten Boston Barcamp (MIT 2009) habe ich einen "Intro to Microcontrollers" Vortrag gehalten. Eine Kopie des Handouts ist bei
Mikrocontroller:
Mikroprozessoren:
Ich finde es interessant, dass das LEGO Mindstorms NXT-Set einen Mikroprozessor [32-Bit AT91SAM7S256 (ARM7TDMI) Hauptmikroprozessor bei 48 MHz (256 KB Flash-Speicher, 64 KB RAM)] und einen Mikrocontroller [8-Bit ATmega48 enthält Mikrocontroller mit 4 MHz (4 KB Flash-Speicher, 512 Byte RAM)] für die Verbindung mit den Sensoren und Motoren. Siehe technische Daten auf Wikipedia .
Diese Unterscheidung ist heutzutage viel schwieriger zu treffen, da ein ganzes Spektrum von Geräten zwischen den Extremen entstanden ist. Wenn jedoch eine Kennung zu funktionieren scheint, müssen Sie sich die Pinbelegung und die Designer ansehen tat mit den Stiften . Sind sie meistens individuelle E / A? Oder dominieren Busse?
Aus meiner Sicht ist ein Mikrocontroller traditionell eine 1-Chip-Lösung. Legen Sie einen mit ein paar unvermeidlichen Diskreten und einigen Anschlüssen auf eine Leiterplatte, schreiben Sie eine kleine Menge Software und Sie haben ein System. Der Mikrocontroller enthält den gesamten Speicher, der flüchtig und nicht flüchtig ist und den das System benötigt. Der Preis für diesen Komfort ist, dass von beidem nicht viel zur Hand ist. Die meisten Pins sind für E / A-Funktionen vorgesehen.
Andererseits ist der Mikroprozessor das Biest, das so weit wie möglich entladen wird, um Chips zu unterstützen, um Silizium für die Maximierung des Durchsatzes des CPU-Kerns zu verwenden. Bei den meisten Pins dieser Art von Geräten handelt es sich um Adress- und Datenleitungen, die erforderlich sind, um eine Verbindung zu den Speicher- und E / A-Geräten herzustellen, denen der Kern fehlt.
Es ist immer noch möglich, einige Dinge als Mikroprozessoren und andere als Mikrocontroller zu bezeichnen, wenn sich die Designer eindeutig an die eine oder andere Philosophie halten. Ein Intel Core i7 ist eindeutig ein Prozessor, PICs und AVRs sind eindeutig Controller. Zu diesem Zeitpunkt können Sie jedoch mit der Menge an Logik, die in einem einzelnen Chip gespeichert werden kann, problemlos ein gesamtes Mikroprozessorsystem aus dem Jahr 1990 in einen einzelnen Chip einbetten . Wie nennt man einen 400-MHz-PPC604 mit einem Interrupt-Controller, einem SDRAM-Controller, Ethernet-Unterstützung und einer Reihe anderer Peripheriegeräte auf einem Chip ?
Meistens Marketing.
Es gibt einige andere seltsame Begriffe; Analog Devices hat (oder hatte) so etwas wie "Mikrokonverter", die wie ADC / DACs mit eingebautem Mikroprozessor waren. TI ruft jetzt einige seiner DSPs (die C2000-Serie) als digitale Signalcontroller auf.
Ansonsten was JohnC gesagt hat.
Ich würde vorschlagen, dass ein Mikrocontroller ein Gerät ist, das genug internen Speicher und Schaltkreise enthält, um zumindest in einigen Varianten eine nützliche Funktion ohne externen Speicher ausführen zu können. Nach einer solchen Definition hätte der 8051 genug Schaltkreise, um für sich selbst nützlich zu sein, und der 8031 würde dies nicht tun. der 8031 ist jedoch einfach ein 8051, in dem der Inhalt des internen ROM nicht spezifiziert ist (während es durchaus möglich ist, dass einige "ROM-freie" 8031-Chips und -Varianten den ROM-Raum vom Chip lassen, würde ich erwarten, dass es einige andere gibt, die Um die Konsistenz des Die-Layouts mit Versionen, die ROM enthalten, zu gewährleisten, verwenden Sie ein nutzloses leeres ROM-Array.
Nur um alle oben genannten hervorragend geschriebenen Antworten hinzuzufügen: Analogy: Microprocessor is a Brain. während Microcontroller Entire Body ist.
Das Gehirn ist in der Lage, alle Anweisungen auszuführen, aber wir müssen Augen, Hände (dh Peripheriegeräte) extern anbringen.
Während der Körper Gehirn und andere Peripheriegeräte hat, zB Mikrocontroller :)
Die Linie ist etwas verschwommen, aber im Allgemeinen geht es so:
Mikroprozessoren enthalten den Prozessorkern (Abruf- / Decodiereinheit, ALU, Register usw.) und möglicherweise ein paar weitere Basisblöcke, in der Regel jedoch nicht viel mehr.
Mikrocontroller fügen RAM (SRAM), normalerweise ein ROM (kann ein Masken-ROM oder ein Flash / EEPROM sein) für die Codespeicherung (kann aber auch ein ROM-freies sein), und eine Reihe grundlegender Peripheriegeräte (SPI / I2C, UART, GPIOs, möglicherweise sogar USB oder Ethernet und so weiter). Manchmal wird dies als System-on-Chip (SoC) bezeichnet, oder SoC ist etwas noch Integrierteres. Einige japanische Unternehmen lieben auch den Begriff " Mikrocomputer ".
Wie ich bereits erwähnte, wird die Linie jedoch unscharf. Beispielsweise fügen neuere Intel / AMD-Prozessoren einen Speichercontroller auf dem Chip hinzu (zuvor befand er sich im Chipsatz).
Übrigens würde ich 8086 eigentlich als Mikroprozessor bezeichnen (Intels Mikrocontroller umfassen beispielsweise 8051 oder 80186).
Mikroprozessor = CPU; Mikrocontroller = CPU + Peripheriegeräte + Speicher Peripheriegeräte = Anschlüsse + Uhr + Timer + Uarts + ADC-Wandler + LCD-Treiber + DAC + Sonstiges; Speicher = EEPROM + SRAM + EEPROM + Flash
In Mikroprozessor mehr Op-Codes, wenige Bit-Handlungsanweisungen. Aber im Mikrocontroller: weniger Opcodes, mehr Anweisungen zur Bitverarbeitung.
Ein Mikroprozessor ist möglicherweise nicht für Echtzeitaufgaben programmiert, wohingegen ein Mikrocontroller, z. B. in Geräten, die die Wassertemperatur regeln oder möglicherweise die Temperatur eines Raums messen müssen, eine Echtzeitüberwachung erfordert und daher mit seinem eingebauten Befehlssatz der Mikrocontroller arbeitet allein.
Der Mikroprozessor ist eine einfache Zentraleinheit (CPU) auf einem einzelnen Chip (denken Sie an das Wort "Single Chip"). Es enthält eine arithmetische Logikeinheit (ALU), eine Steuereinheit (CU), Register, Befehlsdecoder, eine Bussteuerschaltung usw., aber alles sollte auf einem einzigen Chip sein.
Mikrocontroller: Ein Mikrocontroller ist die Verbindung von Mikroprozessor und Peripheriegeräten, die die Schaltung und den Speicher (sowohl Daten als auch Programm) unterstützen. Es ist nicht erforderlich, sich auf einem einzelnen Chip zu befinden (denken Sie an diesen Punkt, nicht auf einem einzelnen Chip).
Alle Antworten sind richtig, da dieser Unterschied mehr von Blöcken in mC und mP hat, siehe folgende Tabelle,
Lange Antwort, kurzer
Sinn : MicroProcessor - Macht das "Denken", ist im Grunde ein Chip, der sich um Mathematik kümmert.
Mikrocontroller - Ein System mit integriertem Mikroprozessor, das problemlos mit elektronischen Komponenten für die Entwicklung eingebetteter Systeme verbunden werden kann.