Qual é a diferença entre um microcontrolador e um microprocessador?

189

Qual é a diferença entre um microcontrolador e um microprocessador?

endólito
fonte
2
Veja também este artigo de Atmel.
sudoer
principalmente :-) preço
Hilmar
11
@ Hilmar, re "principalmente preço" - errado.
Cp.engr

Respostas:

191

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.

JohnC
fonte
4
Muitos microcontroladores disponibilizam um barramento de memória para código e dados externos; esses pinos podem ou não ser utilizados para outros fins se a memória externa não for usada. A meu ver, a distinção que define é se um dispositivo ( ) seria capaz de rodar pelo menos de alguma maneira útil sem um barramento de memória externo. ( ) O 8051 é certamente capaz, portanto é claramente "microcontrolador". Um 8031 ​​é o mesmo chip que um 8051, mas com o conteúdo da ROM não especificado. A falta de ROM útil o tornaria um microprocessador, mas como é o mesmo chip do 8051, poderia ser chamado de microcontrolador.
supercat
2
"O barramento de controle é interno e não está disponível para o projetista da placa". Isso não é necessariamente verdade. Existem microcontroladores com um endereço / banco de dados externo para permitir memória extra.
Stevenvh
Então, poderíamos dizer que um microcontrolador é essencialmente um computador, enquanto um microprocessador é apenas uma implementação de um único chip de uma CPU?
doubleOrt
@ DoubleOrt: Você pode colocar dessa maneira, mas os limites estão embaçados. Atualmente, existem alguns chips que incluem SRAM (Volátil Data Memory), mas não há memória de código não volátil (Flash). Eles também são chamados de MPU (microprocessador). Portanto, a distinção parece estar associada principalmente ao Flash on-chip atualmente. O NXP comercializa algo que eles chamam de processador "crossover" com RAM, mas sem Flash. Isso tem a ver com a crescente dificuldade de integrar o Flash em um chip com transistores cada vez menores. O limite atual parece estar em torno de 28 nm.
sh- 11/04
29

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

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

jluciani
fonte
25

Microcontroladores:

  • normalmente são de 8 bits, mas podem ser de 4, 16 ou 32 bits
  • funcionar a velocidades inferiores a 200 MHz
  • use muito pouca energia
  • pode fornecer corrente suficiente para operar um LED
  • são úteis para interagir com sensores e motores
  • são facilmente substituídos, sendo baratos (US $ 0,10 a US $ 10)
  • são realmente restritos a RAM e armazenamento persistente (espaço em flash)
  • são muito legais para entusiastas de eletrônicos

Microprocessadores:

  • geralmente são de pelo menos 16 bits e, geralmente, de 32 ou 64 bits, embora os 8 bits ainda tenham uma grande participação de mercado
  • muitos serão capazes de fazer matemática de ponto flutuante em hardware
  • correr a velocidades medidas em centenas de MHz
  • são projetados para serem os cérebros de um sistema (e precisam de um sistema inteiro para apoiá-los)
  • precisa de hardware especial para interagir com sensores, motores, LEDs etc.
  • são caros (pense em US $ 50 - US $ 250 para 32 ou 64 bits)
  • são projetados para RAM externa e armazenamento persistente (discos rígidos)
  • não são tão facilmente trabalhados por um hobby

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 .

Clinton Blackmore
fonte
2
O 8-bit é o microprocessador dominante, mas está longe de ser o mais comum, pensei ter lido no início deste ano que eles não representam mais de 50% de participação de mercado.
Kortuk
3
Na verdade, eu gostaria de dizer que não concordo com uma grande quantidade da lista de microcontroladores. A maioria dos mais baratos que eles colocam nos sistemas não custa um dólar, muitos, dependendo da marca, não podem fornecer a corrente para alimentar um LED. Há também um grupo muito grande que quebra 20MHz, mas em geral atende a essa especificação. Eu acho que eles também são ótimos para hobyist.
2189 Kortuk
Eu incorporei algumas revisões e fiz da minha resposta um wiki da comunidade - ajude-me a fazer a coisa certa!
Clinton Blackmore
3
O AT91SAM7S256 é definitivamente um microcontrolador nem um microprocessador.
JPC
4
Comecei a editar isso, postando, mas não acho que seja realmente resgatável. A resposta aceita para essa pergunta tem a essência da diferença, que é basicamente 'memória integrada' ou 'sem memória integrada'. Receio que esse lote seja em grande parte uma lista de generalizações, algumas das quais estão completamente erradas.
13

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 ?

JustJeff
fonte
> 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? => Eu chamaria isso de "microprocessador gordo". Sem ROM e RAM, então definitivamente não é um microcontrolador.
Wouter van Ooijen
2
@ Wouter van Ooijen - Acho que deveria ter mencionado, eu chamaria isso de "sistema em um chip".
precisa saber é o seguinte
5

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.

Jason S
fonte
Onde posso encontrar mais informações sobre esses "microconversores"? A coisa mais próxima que encontrei é o TAS3202.
Endolith 18/12/2009
eles podem ter parado de chamá-los assim. analog.com/en/analog-microcontrollers/analog-microcontrollers/… Nunca fiquei impressionado com os microprocessadores da ADI, o material analógico é bom e os DSPs devem ser bons, mas não tenho experiência com eles .
Jason S
Taxa de amostragem máxima de 8 kHz, portanto, não é útil para áudio. : /
endolith 19/12/2009
2
Não concordo que seja principalmente marketing. Eu concordo com a resposta JohnC.
10139 Daniel Grillo
5

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

supercat
fonte
4

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

Swanand
fonte
3

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

Igor Skochinsky
fonte
2

Diferença entre microcontrolador e microprocessador

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

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

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

neelam singh
fonte
3
Essas informações são um pouco aleatórias e não são tão bem formuladas, para uma pergunta com tantas respostas. Tomemos um exemplo: quem disse que um microcontrolador precisa ter drivers ADC, DAC e LCD? Muitos os têm, mas não é uma regra. O mesmo para manipulação de bits e operação em tempo real.
clabacchio
@neelamSingh, Bem-vindo ao site, seu post não foi bem formatado e parece ter sido interrompido no meio do caminho, poderia ser útil!
21412 Kortuk
2
Seu terceiro ponto não é válido. A capacidade em tempo real é determinada pelo sistema operacional, não pelo tipo de processador. Não há razão para que um RTOS não funcione em um microprocessador. E os microcontroladores também não têm necessariamente mais instruções de manipulação de bits.
stevenvh
1

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

  1. Microprocessador é um componente do microcomputador.
  2. Microcontrolador é um computador completo semelhante a qualquer outro computador.
Bibek
fonte
1

Todas as respostas estão corretas, pois essa diferença é maior entre os blocos que possuem mC e mP, veja a tabela abaixo,

insira a descrição da imagem aqui

Prakash Darji
fonte
0

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.

GigaJoules
fonte