Respostas:
Um microprocessador geralmente não possui pinos de RAM, ROM e E / S. Geralmente, usa seus pinos como um barramento para fazer interface com periféricos como RAM, ROM, portas seriais, E / S digital e analógica. É expansível no nível do quadro devido a isso.
Um microcontrolador é "tudo em um", o processador, ram, IO, tudo em um chip; portanto, você não pode (digamos) aumentar a quantidade de RAM disponível ou o número de portas de E / S. O barramento de controle é interno e não está disponível para o designer da placa.
Isso significa que um microprocessador geralmente é capaz de ser incorporado em aplicações de uso geral maiores que um microcontrolador. O microcontrolador é geralmente usado para aplicações mais dedicadas.
Todas estas são afirmações muito gerais. Existem chips disponíveis que desfocam os limites.
Como foi mencionado, os microcontroladores são essencialmente sistemas em um chip. Exceto por alguns periféricos especializados, tudo está em um pacote. A interface para periféricos externos quase sempre é feita usando conexões seriais. Isso mantém os tamanhos dos pacotes pequenos (menos pinos) e o tamanho da PCB pequeno (menos pinos para conectar entre os pacotes).
No último Boston Barcamp (MIT 2009), fiz uma palestra "Introdução aos microcontroladores". Uma cópia do folheto está em
Microcontroladores:
Microprocessadores:
Acho interessante que o conjunto LEGO Mindstorms NXT tenha um microprocessador [microprocessador principal AT91SAM7S256 (ARM7TDMI) de 32 bits a 48 MHz (memória flash de 256 KB, 64 KB de RAM)] para pensar e um microcontrolador [ATmega48 de 8 bits microcontrolador a 4 MHz (memória flash de 4 KB, 512 bytes de RAM)] para interface com os sensores e motores. Veja as especificações técnicas na Wikipedia .
Essa distinção é muito mais difícil de se fazer hoje em dia, uma vez que todo um espectro de dispositivos surgiu entre os extremos, mas se existe um identificador que parece funcionar, é olhar para o pin-out e ver o que os designers fez com os pinos . Eles são principalmente E / S individuais? Ou os ônibus dominam?
Na minha opinião, um microcontrolador tradicionalmente é algo que funciona como uma solução de 1 chip; coloque um em uma PCB com alguns discretos inevitáveis e alguns conectores, escreva uma pequena quantidade de software e você terá um sistema. O microcontrolador contém toda a memória, volátil e não, necessária para o sistema, o preço pago por essa conveniência é que não haveria muita coisa disponível. A maioria dos pinos é dedicada às funções de E / S.
Enquanto que, no outro extremo, o microprocessador é o tipo de besta para descarregar o máximo possível para suportar chips, a fim de dedicar silício à maximização da taxa de transferência do núcleo da CPU. A maioria dos pinos desse tipo de dispositivo são linhas de endereço e dados, necessárias para conectar-se à memória e aos dispositivos de E / S que o núcleo não possui.
Ainda é possível chamar algumas coisas de microprocessadores e outras de microcontroladores, quando os projetistas aderiram claramente a uma filosofia ou a outra. Um Intel Core i7 é claramente um processador, PICs e AVRs são claramente controladores. Neste momento, no entanto, com a quantidade de lógica que pode ser colocada em um único chip, você pode facilmente incorporar todo um sistema de microprocessador de 1990 em um único chip. Como você chama um PPC604 de 400 MHz com um controlador de interrupção, um controlador SDRAM, suporte a Ethernet e uma série de outros periféricos, tudo em um chip ?
Principalmente marketing.
Existem outros termos estranhos; A Analog Devices possui (ou teve) algo que chamou de "microconversores", que eram como ADC / DACs com um microprocessador embutido. A TI agora está chamando alguns de seus DSPs (a série C2000) de controladores de sinais digitais.
Caso contrário, o que JohnC disse.
Eu sugeriria que um microcontrolador é um dispositivo que contém memória interna e circuitos suficientes que, pelo menos em algumas variantes, poderiam desempenhar alguma função útil sem memória externa. Por essa definição, o 8051 teria circuitos suficientes para ser útil por si só e o 8031 não; o 8031, no entanto, é simplesmente um 8051 no qual o conteúdo da ROM interna não é especificado (embora seja perfeitamente possível que alguns chips e variantes "sem ROM" 8031 deixem o espaço da ROM fora do padrão, eu esperaria que houvesse outros que, para consistência do layout da matriz com versões que incluem ROM, inclua uma matriz de ROM em branco inútil).
Apenas para adicionar todas as respostas excelentemente escritas acima, Analogy: Microprocessor é um cérebro. enquanto o microcontrolador é o corpo inteiro.
O cérebro é capaz de executar todas as instruções, mas precisamos anexar olhos, mãos (ou seja, periféricos) externamente.
Enquanto o corpo tem cérebro e outros periféricos, isto é, microcontrolador :)
A linha está um pouco embaçada, mas geralmente é assim:
Os microprocessadores contêm o núcleo do processador (unidade de busca / decodificação, ALU, registros etc.) e talvez alguns blocos mais básicos, mas geralmente não muito mais.
Os microcontroladores adicionam RAM (SRAM), geralmente alguma ROM (pode ser máscara rom ou Flash / EEPROM) para armazenamento de código (mas também pode ser sem ROM) e um conjunto de periféricos básicos (SPI / I2C, UART, GPIOs, talvez até USB ou Ethernet e assim por diante). Às vezes, isso é chamado de System-on-Chip (SoC) ou, às vezes, SoC é algo ainda mais integrado. Algumas empresas japonesas também amam o termo " microcomputador ".
No entanto, como mencionei, a linha fica embaçada. Por exemplo, os recentes processadores Intel / AMD adicionam um controlador de memória ao chip (anteriormente estava no chipset).
Aliás, eu chamaria 8086 de microprocessador (os microcontroladores da Intel incluem, por exemplo, 8051 ou 80186).
Microprocessador = CPU; Microcontrolador = cpu + periféricos + memória Periféricos = portas + relógio + temporizadores + uarts + conversores adc + drivers lcd + dac + outras coisas; Memória = eeprom + sram + eprom + flash
No microprocessador, mais códigos de operação, poucas instruções de manipulação de bits. Mas no microcontrolador: menos códigos de operação, mais instruções de manipulação de bits.
Um microprocessador também não pode ser programado para lidar com tarefas em tempo real, enquanto um microcontrolador, como em dispositivos que precisam controlar a temperatura da água ou talvez medir a temperatura de uma sala, exige monitoramento em tempo real e, portanto, com seu conjunto de instruções embutido, o microcontrolador funciona sozinho.
Microprocessador é uma unidade central simples de processamento (CPU) em um único chip (lembre-se da palavra 'Single Chip'). Inclui unidade lógica aritmética (ALU), unidade de controle (CU), registros, decodificadores de instruções, circuito de controle de barramento etc., mas tudo deve estar em um único chip.
Microcontrolador: Um microcoontroller é a associação do microprocessador e dos dispositivos de E / S periféricos, suporta circuitos e memória (dados e programa). Não é necessário estar em um único chip (lembre-se deste ponto, não em um único chip).
Todas as respostas estão corretas, pois essa diferença é maior entre os blocos que possuem mC e mP, veja a tabela abaixo,
Resposta longa, curta:
MicroProcessador - Faz o 'pensamento', é basicamente um chip que lida com matemática.
Microcontrolador - Um sistema com um microprocessador incluído, prontamente capaz de interagir com componentes eletrônicos para o desenvolvimento de sistemas embarcados.