¿Cuál es la diferencia entre un microcontrolador y un microprocesador?

189

¿Cuál es la diferencia entre un microcontrolador y un microprocesador?

endolito
fuente
2
Vea también este artículo de Atmel.
Sudoer
principalmente precio :-)
Hilmar
1
@Hilmar, re "mayormente precio" - mal.
cp.engr

Respuestas:

191

Un microprocesador generalmente no tiene pines RAM, ROM e IO. Por lo general, utiliza sus pines como un bus para conectarse a periféricos como RAM, ROM, puertos serie, E / S digitales y analógicas. Es expandible a nivel del tablero debido a esto.

Un microcontrolador es 'todo en uno', el procesador, el ram, IO, todo en un chip, por lo que no puede (por ejemplo) aumentar la cantidad de RAM disponible o la cantidad de puertos IO. El bus de control es interno y no está disponible para el diseñador de la placa.

Esto significa que un microprocesador generalmente puede integrarse en aplicaciones de uso general más grandes que un microcontrolador. El microcontrolador se usa generalmente para aplicaciones más dedicadas.

Todas estas son declaraciones muy generales. Hay chips disponibles que difuminan los límites.

JohnC
fuente
44
Muchos microcontroladores ponen a disposición un bus de memoria para código externo y datos; esos pines pueden o no ser utilizables para otros fines si no se usa memoria externa. En mi opinión, la distinción que define es si un dispositivo normalmente ( ) sería capaz de ejecutarse al menos de manera útil sin un bus de memoria externo. ( ) El 8051 es ciertamente capaz, por lo que es claramente "microcontrolador". Un 8031 ​​es el mismo chip que un 8051, pero con el contenido de la ROM sin especificar. La falta de ROM útil lo convertiría en un microprocesador, pero como es el mismo chip que el 8051, podría llamarse un microcontrolador.
Supercat
2
"El bus de control es interno y no está disponible para el diseñador de la placa". Eso no es necesariamente cierto. Existen microcontroladores con una dirección externa / bus de datos para permitir memoria adicional.
stevenvh
Entonces, ¿podríamos decir que un microcontrolador es esencialmente una computadora, mientras que un microprocesador es simplemente una implementación de un solo chip de una CPU?
doubleOrt
@doubleOrt: Podría decirlo de esa manera, pero los límites están borrosos. En estos días, hay bastantes chips que incluyen memoria de datos volátiles (SRAM), pero no hay memoria de código no volátil (Flash). A menudo también se les llama MPU (microprocesador). Entonces, la distinción parece estar asociada principalmente con Flash en chip en estos días. NXP comercializa algo que ellos llaman un procesador "cruzado" con RAM, pero sin Flash. Esto tiene que ver con la creciente dificultad de integrar Flash en un chip con transistores cada vez más pequeños. El límite actual parece estar alrededor de 28 nm.
sh-
29

Como se mencionó, los microcontroladores son esencialmente sistemas en un chip. A excepción de algunos periféricos especializados, todo está en un paquete. La interfaz con periféricos externos casi siempre se realiza mediante conexiones en serie. Esto mantiene los tamaños de paquete pequeños (menos pines) y el tamaño de PCB pequeño (menos pines para conectar entre paquetes).

En el último Boston Barcamp (MIT 2009) hice una charla de "Introducción a los microcontroladores". Una copia del folleto está en

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

jluciani
fuente
25

Microcontroladores:

  • son típicamente de 8 bits, pero pueden ser de 4, 16 o 32 bits
  • correr a velocidades inferiores a 200 MHz
  • usa muy poca energía
  • puede proporcionar suficiente corriente para operar un LED
  • son útiles para interactuar con sensores y motores
  • son reemplazados fácilmente, siendo económicos ($ 0.10 a $ 10)
  • están realmente limitados para RAM y almacenamiento persistente (espacio flash)
  • son realmente agradables para los aficionados a la electrónica

Microprocesadores:

  • a menudo son de al menos 16 bits, y generalmente de 32 bits o 64 bits, aunque 8 bits todavía tiene una gran cuota de mercado
  • muchos podrán hacer cálculos de coma flotante en hardware
  • correr a velocidades medidas en cientos de MHz
  • están diseñados para ser los cerebros de un sistema (y necesitan un sistema completo para soportarlos)
  • necesita hardware especial para interactuar con sensores, motores, LED, etc.
  • son caros (piense $ 50 - $ 250 por 32 o 64 bits)
  • están diseñados para RAM externa y almacenamiento persistente (discos duros)
  • un aficionado no puede trabajar con tanta facilidad

Me parece interesante que el set LEGO Mindstorms NXT tenga un microprocesador [microprocesador principal AT91SAM7S256 (ARM7TDMI) de 32 bits @ 48 MHz (memoria flash de 256 KB, 64 KB de RAM)] para pensar, y un microcontrolador [ATmega48 de 8 bits microcontrolador a 4 MHz (memoria flash de 4 KB, 512 bytes de RAM)] para interactuar con los sensores y motores. Ver especificaciones técnicas en Wikipedia .

Clinton Blackmore
fuente
2
8 bits es el microprocesador dominante, pero está lejos de ser el más común, creo que leí a principios de este año que ya no representan más del 50% de la participación en el mercado.
Kortuk
3
En realidad, me gustaría decir que no estoy de acuerdo con una gran cantidad de la lista de microcontroladores. La mayoría de los baratos que ponen en los sistemas no cuestan un dólar, muchos, dependiendo de la marca, no pueden proporcionar la corriente para alimentar un LED. También hay un grupo muy grande que rompe 20MHz, pero en general cumple con esa especificación. Creo que también son geniales para los aficionados.
Kortuk
He incorporado algunas revisiones e hice de mi respuesta un wiki comunitario. ¡Ayúdame a corregirlo!
Clinton Blackmore
3
AT91SAM7S256 es definitivamente un microcontrolador ni un microprocesador.
jpc
44
Empecé a editar esto, publicando, pero no creo que sea realmente canjeable. La respuesta aceptada a esta pregunta tiene la esencia de la diferencia, que es básicamente 'memoria integrada' o 'memoria no integrada'. Me temo que este lote es en gran parte una lista de generalizaciones, algunas de las cuales son simplemente erróneas.
13

Esta distinción es mucho más difícil de hacer en estos días, ya que ha surgido un espectro completo de dispositivos entre los extremos, pero si hay un identificador que parece funcionar, es mirar el pin-out y ver lo que los diseñadores Lo hice con los alfileres . ¿Son principalmente E / S individuales? ¿O dominan los autobuses?

En mi opinión, un microcontrolador ha sido tradicionalmente algo que funciona como una solución de 1 chip; coloque uno en una PCB con algunos discretos inevitables y algunos conectores, escriba una pequeña cantidad de software y tendrá un sistema. El microcontrolador contiene toda la memoria, volátil y no, que el sistema necesita, el precio pagado por esta conveniencia es que no habría mucho a mano. La mayoría de los pines están dedicados a las funciones de E / S.

Mientras que, en el otro extremo, el microprocesador es el tipo de bestia para descargar tanto como sea posible para soportar chips, con el fin de dedicar el silicio a maximizar el rendimiento del núcleo de la CPU. La mayoría de los pines en este tipo de dispositivo son líneas de dirección y datos, necesarias para conectarse a la memoria y dispositivos de E / S que el núcleo carece.

Todavía es posible llamar a algunas cosas microprocesadores, y otras cosas a microcontroladores, cuando los diseñadores se adhirieron claramente a una filosofía u otra. Un Intel Core i7 es claramente un procesador, los PIC y los AVR son claramente controladores. Sin embargo, en este momento, con la cantidad de lógica que se puede poner en un solo chip, puede integrar fácilmente todo un sistema de microprocesador de 1990 en un solo chip. ¿Cómo se llama un PPC604 de 400MHz con un controlador de interrupción, un controlador SDRAM, soporte de ethernet y una gran cantidad de otros periféricos, todo en un solo chip ?

JustJeff
fuente
> ¿Cómo se llama un PPC604 de 400MHz con un controlador de interrupción, un controlador SDRAM, soporte para ethernet y una gran cantidad de otros periféricos, todo en un chip? => Yo lo llamaría un "microprocesador gordo". Sin ROM y RAM, así que definitivamente no es un microcontrolador.
Wouter van Ooijen
2
@Wouter van Ooijen: creo que debería haberlo mencionado, lo llamaría un "sistema en un chip".
JustJeff
5

Principalmente marketing.

Hay otros términos extraños; Analog Devices tiene (o tenía) algo que llamaron "microconvertidores", que eran como ADC / DAC con un microprocesador incorporado. TI ahora está llamando a algunos de sus controladores digitales de señal DSP (la serie C2000).

De lo contrario, lo que dijo JohnC.

Jason S
fuente
¿Dónde puedo encontrar más información sobre estos "microconvertidores"? Lo más parecido que he encontrado es el TAS3202.
endolito
pueden haber dejado de llamarlos así. analog.com/en/analog-microcontrollers/analog-microcontrollers /... Nunca me han impresionado mucho los microprocesadores de ADI, su material analógico es bueno y se supone que sus DSP son buenos, pero no tengo experiencia con ellos .
Jason S
Velocidad de muestreo máxima de 8 kHz, por lo que no es útil para audio. : /
endolith
2
No estoy de acuerdo en que sea principalmente marketing. Estoy de acuerdo con la respuesta de JohnC.
Daniel Grillo
5

Sugeriría que un microcontrolador es un dispositivo que contiene suficiente memoria interna y circuitos que, al menos en algunas variantes, podría realizar alguna función útil sin memoria externa. Según tal definición, el 8051 tendría suficientes circuitos para ser útil por sí mismo y el 8031 ​​no lo haría; el 8031, sin embargo, es simplemente un 8051 en el que los contenidos de la ROM interna no están especificados (aunque es completamente posible que algunos chips y variantes 8031 ​​"sin ROM" dejen el espacio de ROM fuera del dado, esperaría que haya otros que, para mantener la coherencia del diseño del troquel con versiones que incluyen ROM, incluya una matriz de ROM en blanco inútil).

Super gato
fuente
4

Solo para agregar todas las respuestas excelentemente escritas arriba, Analogía: El microprocesador es un cerebro. mientras que el microcontrolador es todo el cuerpo.

Brain es capaz de ejecutar todas las instrucciones, pero necesitamos unir los ojos, las manos (es decir, los periféricos) externamente.

Mientras que el cuerpo tiene cerebro y otros periféricos, es decir, microcontrolador :)

Swanand
fuente
3

La línea es algo borrosa, pero generalmente es así:

  • Los microprocesadores contienen el núcleo del procesador (unidad de captación / decodificación, ALU, registros, etc.) y quizás un par de bloques más básicos, pero generalmente no mucho más.

  • los microcontroladores agregan RAM (SRAM), generalmente algo de ROM (puede ser rom de máscara o Flash / EEPROM) para el almacenamiento de código (pero también pueden ser sin ROM) y un conjunto de periféricos básicos (SPI / I2C, UART, GPIO, tal vez incluso USB o Ethernet y así sucesivamente). A veces esto se llama System-on-Chip (SoC), o a veces SoC es algo aún más integrado. Algunas empresas japonesas también adoran el término " microordenador ".

    Sin embargo, como mencioné, la línea se vuelve borrosa. Por ejemplo, los procesadores Intel / AMD recientes agregan un controlador de memoria en el chip (anteriormente estaba en el conjunto de chips).

    Por cierto, en realidad llamaría al 8086 un microprocesador (los microcontroladores de Intel incluyen, por ejemplo, 8051 u 80186).

Igor Skochinsky
fuente
2

Diferencia entre microcontrolador y microprocesador

  1. Microprocesador = CPU; Microcontrolador = cpu + periféricos + memoria Periféricos = puertos + reloj + temporizadores + uarts + convertidores adc + controladores lcd + dac + otras cosas; Memoria = eeprom + sram + eprom + flash

  2. En el microprocesador hay más códigos de operación, pocas instrucciones de manejo de bits. Pero en Microcontrolador: menos códigos de operación, más instrucciones de manejo de bits.

  3. Un microprocesador también puede no estar programado para manejar tareas en tiempo real, mientras que un microcontrolador, como en dispositivos que necesitan controlar la temperatura del agua o tal vez medir la temperatura de una habitación, requiere monitoreo en tiempo real y, por lo tanto, con su conjunto de instrucciones incorporado, el microcontrolador funciona por sí mismo.

Neelam Singh
fuente
3
Estas informaciones son un poco aleatorias y no están tan bien formuladas, para una pregunta con tantas respuestas. Tomemos un ejemplo: ¿quién dice que un microcontrolador debe tener controladores ADC, DAC y LCD? Muchos los tienen, pero no es una regla. Lo mismo para el manejo de bits y la operación en tiempo real.
clabacchio
@neelamSingh, Bienvenido al sitio, su publicación no se ha formateado bien y parece estar cortada a mitad de camino, ¡podría usar algo de trabajo!
Kortuk
2
Tu tercer punto no es válido. La capacidad en tiempo real la determina el sistema operativo, no el tipo de procesador. No hay razón por la cual un RTOS no se ejecute en un microprocesador. Y los microcontroladores tampoco tienen necesariamente más instrucciones de manejo de bits.
stevenvh
1

El microprocesador es una unidad de procesamiento central (CPU) simple en un solo chip (recuerde la palabra 'Single Chip'). Incluye unidad de lógica aritmética (ALU), unidad de control (CU), registros, decodificadores de instrucciones, circuito de control de bus, etc. pero todo debe estar en un solo chip.

Microcontrolador: Un microcontrolador es la asociación del microprocesador y los dispositivos periféricos de E / S, los circuitos de soporte y la memoria (tanto de datos como de programa). No es necesario estar en un solo chip (recuerde este punto, no en un solo chip).

  1. El microprocesador es un componente del microordenador.
  2. El microcontrolador es una computadora completa similar a cualquier otra computadora.
Bibek
fuente
1

Todas las respuestas son correctas, ya que esta diferencia más de bloques que tienen en mC y mP, ver la tabla a continuación,

ingrese la descripción de la imagen aquí

Prakash Darji
fuente
0

Respuesta larga corta:
Microprocesador : el "pensamiento" es básicamente un chip que maneja las matemáticas.
Microcontrolador : un sistema con un microprocesador incluido, fácilmente capaz de interactuar con componentes electrónicos para desarrollar sistemas integrados.

Gigajulios
fuente