Was ist der Unterschied zwischen einem Mikrocontroller und einem Mikroprozessor?

189

Was ist der Unterschied zwischen einem Mikrocontroller und einem Mikroprozessor?

Endolith
quelle
2
Siehe auch diesen Artikel von Atmel.
Sudoer
meistens Preis :-)
Hilmar
1
@Hilmar, wieder "meistens Preis" - falsch.
cp.engr

Antworten:

191

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.

JohnC
quelle
4
Viele Mikrocontroller stellen einen Speicherbus für externen Code und Daten zur Verfügung. Diese Pins können für andere Zwecke verwendet werden oder auch nicht, wenn kein externer Speicher verwendet wird. Meiner Meinung nach ist der entscheidende Unterschied, ob ein Gerät ohne einen externen Speicherbus normalerweise ( ) in der Lage ist, zumindest ein wenig sinnvoll zu arbeiten. ( ) Der 8051 ist zweifellos in der Lage, es handelt sich also eindeutig um einen "Mikrocontroller". Ein 8031 ​​ist derselbe Chip wie ein 8051, der ROM-Inhalt ist jedoch nicht spezifiziert. Der Mangel an nützlichem ROM würde es zu einem Mikroprozessor machen, aber da es sich um den gleichen Chip wie der 8051 handelt, könnte man es als Mikrocontroller bezeichnen.
Superkatze
2
"Der steuernde Bus ist intern und steht dem Board-Designer nicht zur Verfügung." Das ist nicht unbedingt wahr. Es gibt Mikrocontroller mit einer externen Adresse / einem externen Datenbus, um zusätzlichen Speicher zu ermöglichen.
Stevenvh
Könnte man also sagen, dass ein Mikrocontroller im Wesentlichen ein Computer ist, während ein Mikroprozessor lediglich eine Single-Chip-Implementierung einer CPU ist?
DoubleOrt
@doubleOrt: Sie könnten es so ausdrücken, aber die Grenzen sind verschwommen. Heutzutage gibt es einige Chips, die einen flüchtigen Datenspeicher (SRAM) enthalten, jedoch keinen nichtflüchtigen Codespeicher (Flash). Sie werden oft auch als MPU (Mikroprozessor) bezeichnet. Die Unterscheidung scheint heutzutage hauptsächlich mit On-Chip-Flash verbunden zu sein. NXP vermarktet so etwas wie einen "Crossover" -Prozessor mit RAM, aber ohne Flash. Dies hängt mit der zunehmenden Schwierigkeit zusammen, Flash in einen Chip mit immer kleineren Transistoren zu integrieren. Die Stromgrenze scheint bei 28 nm zu liegen.
sh
29

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

http://www.luciani.org/not-quite-ready/doc/intro-to-uC.pdf

jluciani
quelle
25

Mikrocontroller:

  • sind in der Regel 8-Bit, können jedoch 4, 16 oder 32 Bit sein
  • laufen mit Geschwindigkeiten von weniger als 200 MHz
  • verbrauchen sehr wenig Strom
  • kann genug Strom liefern, um eine LED zu betreiben
  • sind nützlich, um mit Sensoren und Motoren zu kommunizieren
  • sind leicht zu ersetzen, da sie kostengünstig sind (0,10 bis 10 US-Dollar)
  • sind für RAM und dauerhaften Speicher (Flash-Speicher) wirklich eingeschränkt
  • sind wirklich nett für Elektronik-Hobbyisten

Mikroprozessoren:

  • sind oft mindestens 16-Bit und in der Regel 32-Bit oder 64-Bit, obwohl 8-Bit immer noch einen großen Marktanteil hat
  • Viele werden in der Lage sein, Gleitkomma-Berechnungen in Hardware durchzuführen
  • laufen mit Geschwindigkeiten in Hunderten von MHz gemessen
  • sind entworfen, um die Gehirne eines Systems zu sein (und brauchen ein ganzes System, um sie zu unterstützen)
  • benötigen spezielle Hardware für die Verbindung mit Sensoren, Motoren, LEDs usw.
  • sind teuer (denken Sie an $ 50 - $ 250 für 32 oder 64-Bit)
  • sind für externen Arbeitsspeicher und dauerhaften Speicher (Festplatten) ausgelegt
  • sind nicht so leicht von einem Bastler zu bearbeiten

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 .

Clinton Blackmore
quelle
2
8-Bit ist der vorherrschende Mikroprozessor, aber es ist alles andere als der häufigste. Ich dachte, ich habe Anfang dieses Jahres gelesen, dass sie nicht mehr als 50% des Marktanteils ausmachen.
Kortuk
3
Eigentlich möchte ich sagen, dass ich mit einem großen Teil der Mikrocontroller-Liste nicht einverstanden bin. Die meisten der billigen, die sie in Systeme stecken, kosten keinen Dollar, viele, die von der Marke abhängen, können nicht den Strom liefern, um eine LED zu betreiben. Es gibt auch eine sehr große Gruppe, die 20 MHz durchbricht, aber im Allgemeinen diese Spezifikation erfüllt. Ich denke, sie sind auch toll für Hobyist.
Kortuk,
Ich habe einige Überarbeitungen vorgenommen und meine Antwort zu einem Community-Wiki gemacht - hilf mir, es richtig zu machen!
Clinton Blackmore
3
AT91SAM7S256 ist definitiv ein Mikrocontroller oder ein Mikroprozessor.
JPC
4
Ich habe angefangen, dieses Posting zu bearbeiten, aber ich glaube nicht, dass es wirklich einlösbar ist. Die akzeptierte Antwort auf diese Frage hat den Kern des Unterschieds, nämlich "integrierter Speicher" oder "kein integrierter Speicher". Ich fürchte, dieses Los ist größtenteils eine Liste von Verallgemeinerungen, von denen einige einfach falsch sind.
13

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 ?

JustJeff
quelle
> 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? => Ich würde es einen "fetten Mikroprozessor" nennen. Kein ROM und RAM, also definitiv kein Mikrocontroller.
Wouter van Ooijen
2
@Wouter van Ooijen - Ich denke, ich hätte es erwähnen sollen, ich würde das ein "System auf einem Chip" nennen.
JustJeff
5

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.

Jason S
quelle
Wo finde ich mehr über diese "Mikrokonverter"? Das nächste, was ich gefunden habe, ist das TAS3202.
Endolith
Vielleicht haben sie aufgehört, sie so zu nennen. analog.com/de/analog-microcontrollers/analog-microcontrollers/... Ich war noch nie sehr beeindruckt von den Mikroprozessoren von ADI, ihre analogen Geräte sind gut und ihre DSPs sollen gut sein, aber ich habe keine Erfahrung mit ihnen .
Jason S
Maximale Abtastrate 8 kHz, daher für Audio nicht geeignet. : /
Endolith
2
Ich stimme nicht zu, dass es sich hauptsächlich um Marketing handelt. Ich stimme der Antwort von JohnC zu.
Daniel Grillo
5

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.

Superkatze
quelle
4

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 :)

Swanand
quelle
3

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).

Igor Skochinsky
quelle
2

Unterschied zwischen Mikrocontroller und Mikroprozessor

  1. 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

  2. In Mikroprozessor mehr Op-Codes, wenige Bit-Handlungsanweisungen. Aber im Mikrocontroller: weniger Opcodes, mehr Anweisungen zur Bitverarbeitung.

  3. 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.

neelam singh
quelle
3
Diese Informationen sind ein bisschen zufällig und für eine Frage mit so vielen Antworten nicht so gut formuliert. Ein Beispiel: Wer sagt, dass ein Mikrocontroller ADC-, DAC- und LCD-Treiber haben muss? Viele haben sie, aber das ist keine Regel. Gleiches gilt für Bit-Handling und Echtzeitbetrieb.
Clabacchio
@neelamSingh, Willkommen auf der Seite, dein Beitrag wurde nicht gut formatiert und scheint halbwegs abgeschnitten zu sein, es könnte etwas Arbeit gebrauchen!
Kortuk
2
Ihr dritter Punkt ist ungültig. Die Echtzeitfähigkeit wird vom Betriebssystem und nicht vom Prozessortyp bestimmt. Es gibt keinen Grund, warum ein RTOS nicht auf einem Mikroprozessor laufen würde. Und Mikrocontroller haben auch nicht unbedingt mehr Bit-Handlungsanweisungen.
Stevenvh
1

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).

  1. Mikroprozessor ist eine Komponente des Mikrocomputers.
  2. Der Mikrocontroller ist ein vollständiger Computer, der mit jedem anderen Computer vergleichbar ist.
Bibek
quelle
1

Alle Antworten sind richtig, da dieser Unterschied mehr von Blöcken in mC und mP hat, siehe folgende Tabelle,

Bildbeschreibung hier eingeben

Prakash Darji
quelle
0

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.

Gigajoule
quelle