Qual è la differenza tra un microcontrollore e un microprocessore?


Risposte:


191

Un microprocessore generalmente non ha pin RAM, ROM e IO. Di solito usa i suoi pin come bus per interfacciarsi a periferiche come RAM, ROM, porte seriali, IO digitale e analogico. Per questo motivo è espandibile a livello di scheda.

Un microcontrollore è "tutto in uno", il processore, il ram, l'IO su un unico chip, pertanto non è possibile (dire) aumentare la quantità di RAM disponibile o il numero di porte IO. Il bus di controllo è interno e non disponibile per il progettista della scheda.

Ciò significa che un microprocessore è generalmente in grado di essere integrato in applicazioni di uso generale più grandi rispetto a un microcontrollore. Il microcontrollore viene solitamente utilizzato per applicazioni più dedicate.

Tutte queste sono dichiarazioni molto generali. Ci sono chip disponibili che sfocano i confini.


4
Molti microcontrollori rendono disponibile un bus di memoria per codice e dati esterni; tali pin possono o non possono essere utilizzati per altri scopi se non viene utilizzata la memoria esterna. A mio avviso, la distinzione determinante è se un dispositivo in genere ( ) sarebbe in grado di funzionare almeno in qualche modo utilmente senza un bus di memoria esterno. ( ) L'8051 è sicuramente capace, quindi è chiaramente "microcontrollore". Un 8031 ​​è lo stesso chip di un 8051, ma con il contenuto della ROM non specificato. La mancanza di una ROM utile lo renderebbe un microprocessore, ma poiché è lo stesso chip dell'8051, potrebbe essere chiamato un microcontrollore.
supercat

2
"Il bus di controllo è interno e non disponibile per il progettista della scheda." Questo non è necessariamente vero. Esistono microcontrollori con un indirizzo / databus esterno per consentire memoria aggiuntiva.
Stevenvh,

Quindi, potremmo dire che un microcontrollore è essenzialmente un computer mentre un microprocessore è semplicemente un'implementazione a chip singolo di una CPU?
doubleOrt

@doubleOrt: potresti dirlo in questo modo, ma i confini sono sfocati. In questi giorni, ci sono alcuni chip che includono la memoria di dati volatili (SRAM), ma nessuna memoria di codice non volatile (Flash). Spesso sono anche chiamati MPU (microprocessore). Quindi la distinzione sembra essere principalmente associata a Flash su chip in questi giorni. NXP commercializza qualcosa che chiamano un processore "crossover" con RAM, ma senza Flash. Ciò ha a che fare con la crescente difficoltà di integrare Flash in un chip con transistor sempre più piccoli. Il limite attuale sembra essere di circa 28 nm.
sh-

29

Come accennato, i microcontrollori sono essenzialmente sistemi su un chip. Ad eccezione di alcune periferiche specializzate, tutto è in un unico pacchetto. L'interfaccia con le periferiche esterne viene quasi sempre eseguita tramite connessioni seriali. Ciò mantiene le dimensioni della confezione piccole (meno pin) e le dimensioni della scheda PCB piccole (meno pin per il collegamento tra i pacchetti).

All'ultimo Boston Barcamp (MIT 2009) ho tenuto un discorso "Introduzione ai microcontrollori". Una copia del volantino è disponibile all'indirizzo

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


25

microcontrollori:

  • sono in genere a 8 bit, ma possono essere a 4, 16 o 32 bit
  • funziona a velocità inferiori a 200 MHz
  • usa pochissima energia
  • può fornire abbastanza corrente per far funzionare un LED
  • sono utili per interfacciarsi con sensori e motori
  • vengono prontamente sostituiti, essendo economici (da $ 0,10 a $ 10)
  • sono veramente limitati per la RAM e l'archiviazione persistente (spazio flash)
  • sono davvero carini per gli appassionati di elettronica

microprocessori:

  • sono spesso almeno a 16 bit e in genere a 32 o 64 bit, anche se 8 bit ha ancora una grande quota di mercato
  • molti saranno in grado di fare matematica in virgola mobile nell'hardware
  • funziona a velocità misurate in centinaia di MHz
  • sono progettati per essere il cervello di un sistema (e hanno bisogno di un intero sistema per supportarli)
  • necessita di hardware speciale per interfacciarsi con sensori, motori, LED, ecc.
  • sono costosi (pensa $ 50 - $ 250 per 32 o 64 bit)
  • sono progettati per RAM esterna e memoria permanente (dischi rigidi)
  • non sono così facilmente lavorabili da un hobbista

Trovo interessante che il set LEGO Mindstorms NXT abbia un microprocessore [32 bit AT91SAM7S256 (ARM7TDMI) microprocessore principale @ 48 MHz (256 KB di memoria flash, 64 KB di RAM)] per pensare, e un microcontrollore [8-bit ATmega48 microcontrollore a 4 MHz (memoria flash da 4 KB, 512 byte RAM)] per l'interfacciamento con sensori e motori. Vedi le specifiche tecniche su Wikipedia .


2
L'8 bit è il microprocessore dominante, ma è tutt'altro che il più comune, pensavo di aver letto all'inizio di quest'anno che non rappresentano più il 50% della quota di mercato.
Kortuk,

3
In realtà, vorrei dire che non sono d'accordo con una grande quantità dell'elenco dei microcontrollori. La maggior parte di quelli economici che inseriscono nei sistemi non costano un dollaro, molti, a seconda del marchio, non possono fornire corrente per alimentare un LED. Esiste anche un gruppo molto grande che rompe 20MHz, ma in generale soddisfa quella specifica. penso che siano fantastici anche per gli hobyist.
Kortuk,

Ho incorporato alcune revisioni e ho trasformato la mia risposta in un wiki della community: aiutami a farlo bene!
Clinton Blackmore,

3
AT91SAM7S256 è sicuramente un microcontrollore né un microprocessore.
jpc,

4
Ho iniziato a modificarlo, pubblicando, ma non credo sia davvero riscattabile. La risposta accettata a questa domanda ha l'essenza della differenza, che è fondamentalmente "memoria integrata" o "nessuna memoria integrata". Temo che questo lotto sia in gran parte un elenco di generalizzazioni, alcune delle quali sono semplicemente sbagliate.

13

Questa distinzione è una che è molto più difficile da fare in questi giorni, dal momento che un intero spettro di dispositivi è emerso tra gli estremi, ma se c'è un identificatore che sembra funzionare, è guardare il pin-out e guardare ciò che i progettisti fatto con i perni . Sono principalmente I / O individuali? O dominano gli autobus?

A mio avviso, un microcontrollore è stato tradizionalmente qualcosa che funziona come una soluzione a 1 chip; mettine uno su un PCB con alcuni inevitabili discreti e alcuni connettori, scrivi una piccola quantità di software e hai un sistema. Il microcontrollore contiene tutta la memoria, volatile e non, di cui il sistema ha bisogno, il prezzo pagato per questa comodità è che non ce ne sarebbero molti a portata di mano. La maggior parte dei pin sono dedicati alle funzioni I / O.

Mentre, all'altro estremo, il microprocessore è il tipo di bestia da scaricare il più possibile per supportare i chip, al fine di dedicare il silicio alla massimizzazione del throughput del core della CPU. La maggior parte dei pin su questo tipo di dispositivo sono indirizzi e linee dati, necessari per connettersi alla memoria e ai dispositivi I / O che mancano al core.

È ancora possibile chiamare alcune cose microprocessori e altre microcontrollori, quando i progettisti hanno chiaramente aderito a una filosofia o all'altra. Un Intel Core i7 è chiaramente un processore, i PIC e gli AVR sono chiaramente controller. A questo punto, tuttavia, con la quantità di logica che può essere inserita in un singolo chip, è possibile incorporare facilmente un intero sistema a microprocessore 1990 in un singolo chip. Come si chiama un PPC604 a 400 MHz con un controller di interrupt, un controller SDRAM, supporto ethernet e una serie di altre periferiche, tutto su un chip ?


> Come si chiama un PPC604 a 400 MHz con un controller di interruzione, un controller SDRAM, supporto ethernet e una serie di altre periferiche, tutte su un chip? => Lo chiamerei un "microprocessore grasso". Nessuna ROM e RAM, quindi sicuramente non un microcontrollore.
Wouter van Ooijen,

2
@Wouter van Ooijen - Immagino che avrei dovuto menzionarlo, lo definirei un "sistema su un chip".
JustJeff,


5

Principalmente marketing.

Ci sono altri termini strani; Analog Devices ha (o aveva) qualcosa che chiamavano "microcontrollori" che erano come ADC / DAC con un microprocessore incorporato. TI ora chiama alcuni dei loro controller digitali di segnali DSP (serie C2000).

Altrimenti ciò che JohnC ha detto.


Dove posso trovare ulteriori informazioni su questi "microconvertitori"? La cosa più vicina che ho trovato è il TAS3202.
endolith il

potrebbero aver smesso di chiamarli così. analog.com/it/analog-microcontrollers/analog-microcontrollers/… Non sono mai stato molto colpito dai microprocessori ADI, le loro cose analogiche sono buone e i loro DSP dovrebbero essere buoni ma non ho esperienza con loro .
Jason S,

Frequenza di campionamento massima 8 kHz, quindi non utile per l'audio. : /
endolith

2
Non sono d'accordo che si tratti principalmente di marketing. Sono d'accordo con la risposta JohnC.
Daniel Grillo,

5

Vorrei suggerire che un microcontrollore è un dispositivo che contiene abbastanza memoria interna e circuiti che, almeno in alcune varianti, potrebbe svolgere alcune utili funzioni senza memoria esterna. Con tale definizione, l'8051 avrebbe abbastanza circuiti per essere utile da solo e l'8031 no; l'8031, tuttavia, è semplicemente un 8051 in cui i contenuti della ROM interna non sono specificati (mentre è del tutto possibile che alcuni chip e varianti "ROMless" 8031 ​​lasciano lo spazio ROM fuori dallo stampo, mi aspetto che ce ne siano altri, per coerenza del layout die con le versioni che includono ROM, includere un array ROM vuoto inutile).


4

Solo per aggiungere tutte le risposte sopra scritte in modo eccellente, Analogy: Microprocessor is a Brain. mentre il microcontrollore è corpo intero.

Il cervello è in grado di eseguire tutte le istruzioni, ma dobbiamo attaccare gli occhi, le mani (cioè le periferiche) esternamente.

Mentre il corpo ha cervello e altre periferiche, ad esempio il microcontrollore :)


3

La linea è un po 'sfocata ma generalmente va così:

  • i microprocessori contengono il core del processore (unità di recupero / decodifica, ALU, registri ecc.) e forse un paio di blocchi di base, ma di solito non molto di più.

  • i microcontrollori aggiungono RAM (SRAM), di solito alcune ROM (possono essere maschere rom o Flash / EEPROM) per l'archiviazione del codice (ma possono anche essere senza ROM) e un set di periferiche di base (SPI / I2C, UART, GPIO, forse anche USB o Ethernet e così via). A volte questo viene chiamato System-on-Chip (SoC), o talvolta SoC è qualcosa di ancora più integrato. Alcune aziende giapponesi adorano anche il termine " microcomputer " ".

    Tuttavia, come ho già detto, la linea diventa sfocata. Ad esempio, i recenti processori Intel / AMD aggiungono un controller di memoria sul chip (precedentemente era nel chipset).

    A proposito, in realtà chiamerei 8086 un microprocessore (i microcontrollori di Intel includono ad esempio 8051 o 80186).


2

Differenza tra microcontrollore e microprocessore

  1. Microprocessore = cpu; Microcontrollore = cpu + periferiche + memoria Periferiche = porte + orologio + timer + uart + convertitori adc + driver lcd + dac + altre cose; Memoria = eeprom + sram + eprom + flash

  2. Nel microprocessore più codici operativi, poche istruzioni di gestione dei bit. Ma nel microcontrollore: meno codici operativi, più istruzioni per la gestione dei bit.

  3. Un microprocessore non può anche essere programmato per gestire attività in tempo reale mentre un microcontrollore, ad esempio in dispositivi che devono controllare la temperatura dell'acqua o misurare la temperatura di una stanza, richiede un monitoraggio in tempo reale e quindi con il suo set integrato di istruzioni il microcontrollore funziona da solo.


3
Queste informazioni sono un po 'casuali e non ben formulate, per una domanda con così tante risposte. Facciamo un esempio: chi dice che un microcontrollore deve avere driver ADC, DAC e LCD? Molti li hanno, ma non è una regola. Lo stesso per la gestione dei bit e il funzionamento in tempo reale.
clabacchio

@neelamSingh, Benvenuto nel sito, il tuo post non si è formattato bene e sembra interrotto a metà, potrebbe usare del lavoro!
Kortuk,

2
Il tuo terzo punto non è valido. L'abilità in tempo reale è determinata dal sistema operativo, non dal tipo di processore. Non c'è motivo per cui un RTOS non possa essere eseguito su un microprocessore. E i microcontrollori non hanno necessariamente più istruzioni sulla gestione dei bit.
Stevenvh,

1

Il microprocessore è una semplice unità centrale di elaborazione (CPU) su un singolo chip (ricordare la parola "Single Chip"). Include unità logica aritmetica (ALU), unità di controllo (CU), registri, decodificatori di istruzioni, circuito di controllo del bus ecc., Ma tutto dovrebbe essere su un singolo chip.

Microcontrollore: un microcontrollore è l'associazione di microprocessore e dispositivi I / O periferici, circuiti di supporto e memoria (sia dati che programma). Non è necessario essere su un singolo chip (ricordare questo punto, non in un singolo chip).

  1. Il microprocessore è un componente del microcomputer.
  2. Il microcontrollore è un computer completo simile a qualsiasi altro computer.

1

Tutte le risposte sono corrette, poiché questa differenza riguarda più blocchi che hanno in mC e mP, vedere la tabella seguente,

inserisci qui la descrizione dell'immagine


0

Risposta breve breve:
MicroProcessore - Il "pensiero" è fondamentalmente un chip che gestisce la matematica.
Microcontrollore : un sistema con un microprocessore incluso, facilmente in grado di interfacciarsi con componenti elettronici per lo sviluppo di sistemi integrati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.