Risposte:
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.
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
microcontrollori:
microprocessori:
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 .
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 ?
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.
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).
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 :)
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).
Microprocessore = cpu; Microcontrollore = cpu + periferiche + memoria Periferiche = porte + orologio + timer + uart + convertitori adc + driver lcd + dac + altre cose; Memoria = eeprom + sram + eprom + flash
Nel microprocessore più codici operativi, poche istruzioni di gestione dei bit. Ma nel microcontrollore: meno codici operativi, più istruzioni per la gestione dei bit.
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.
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).
Tutte le risposte sono corrette, poiché questa differenza riguarda più blocchi che hanno in mC e mP, vedere la tabella seguente,