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

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

Consulte también este artículo de Atmel.
principalmente precio :-)
@Hilmar, re "principalmente precio" - incorrecto.

Respuestas (13)

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

Un microcontrolador es 'todo en uno', el procesador, ram, IO, todo en un solo chip, como tal, no puede (digamos) 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, por lo general, un microprocesador es capaz de integrarse en aplicaciones de propósito general más grandes que un microcontrolador. El microcontrolador generalmente se usa para aplicaciones más dedicadas.

Todas estas son declaraciones muy generales. Hay fichas disponibles que desdibujan los límites.

Muchos microcontroladores hacen que un bus de memoria esté disponible para código y datos externos; esos pines pueden o no usarse para otros fines si no se usa la memoria externa. En mi opinión, la distinción definitoria es si un dispositivo normalmente ( ) sería capaz de ejecutarse al menos algo útil sin un bus de memoria externo. ( ) El 8051 ciertamente es capaz, por lo que es claramente un "microcontrolador". Un 8031 ​​es el mismo chip que un 8051, pero sin especificar el contenido de la ROM. La falta de ROM útil lo convertiría en un microprocesador, pero dado que es el mismo chip que el 8051, podría llamarse microcontrolador.
"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.
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: Podría decirlo de esa manera, pero los límites son borrosos. En estos días, hay bastantes chips que incluyen memoria de datos volátil (SRAM), pero no 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 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 los 28 nm.

Como se mencionó, los microcontroladores son esencialmente sistemas en un chip. Excepto por algunos periféricos especializados, todo está en un solo paquete. La interfaz con los 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 Barcamp de Boston (MIT 2009) di una charla de "Introducción a los Microcontroladores". Una copia del folleto está en

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

Microcontroladores:

  • son típicamente de 8 bits, pero pueden ser de 4, 16 o 32 bits
  • funcionar 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
  • se reemplazan fácilmente, siendo económicos ($0.10 a $10)
  • están realmente limitados por RAM y almacenamiento persistente (espacio flash)
  • son realmente agradables para los aficionados a la electrónica

Microprocesadores:

  • suelen ser de al menos 16 bits y, por lo general, de 32 o 64 bits, aunque los de 8 bits aún tienen una gran cuota de mercado
  • muchos podrán hacer matemáticas de punto flotante en hardware
  • correr a velocidades medidas en cientos de MHz
  • están diseñados para ser el cerebro de un sistema (y necesitan un sistema completo para respaldarlos)
  • necesita hardware especial para interactuar con sensores, motores, LED, etc.
  • son caros (piense en $ 50 - $ 250 para 32 o 64 bits)
  • están diseñados para RAM externa y almacenamiento persistente (discos duros)
  • no son tan fáciles de manejar por un aficionado

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

El microprocesador de 8 bits es el 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 de mercado.
En realidad, me gustaría decir que no estoy de acuerdo con gran parte 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 los 20 MHz, pero en general cumple con esa especificación. Creo que también son geniales para hobyist.
Incorporé algunas revisiones y convertí mi respuesta en un wiki de la comunidad. ¡Ayúdame a hacerlo bien!
AT91SAM7S256 es definitivamente un microcontrolador ni un microprocesador.
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 medida una lista de generalizaciones, algunas de las cuales son simplemente incorrectas.
Probablemente sea mejor eliminarlo.

Esta distinción es mucho más difícil de hacer en estos días, ya que ha surgido todo un espectro 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 hizo con los alfileres . ¿Son en su mayoría E/S individuales? ¿O dominan los autobuses?

Desde mi punto de vista, un microcontrolador ha sido tradicionalmente algo que funciona como una solución de 1 chip; coloque uno en una PCB con algunos elementos 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, siendo el precio pagado por esta conveniencia que no habría mucha disponible. La mayoría de los pines están dedicados a funciones de E/S.

Mientras que, en el otro extremo, el microprocesador es el tipo de bestia que descarga tanto como sea posible para admitir chips, con el fin de dedicar 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 de los que carece el núcleo.

Todavía es posible llamar a algunas cosas microprocesadores y a otras 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. En este momento, sin embargo, con la cantidad de lógica que se puede poner en un solo chip, puede integrar fácilmente un sistema completo de microprocesador de 1990 en un solo chip. ¿Cómo se llama un PPC604 de 400 MHz con un controlador de interrupción, un controlador SDRAM, compatibilidad con Ethernet y una gran cantidad de otros periféricos, todo en un solo chip ?

> ¿Cómo se llama un PPC604 de 400 MHz con un controlador de interrupciones, un controlador SDRAM, compatibilidad con ethernet y muchos otros periféricos, todo en un solo chip? => Lo llamaría un "microprocesador gordo". Sin ROM ni RAM, por lo que definitivamente no es un microcontrolador.
@Wouter van Ooijen: creo que debería haberlo mencionado, lo llamaría un "sistema en un chip".
µLos procesadores toman prestadas técnicas de integración para reducir el tamaño, los costos de integración y el uso de energía. Los µControllers obtienen potencia de procesamiento debido a la rentabilidad del silicio y la demanda de dispositivos más inteligentes. Si diferenciamos según la intención, en lugar de la arquitectura o la capacidad informática, entonces la respuesta resiste la prueba del tiempo. En los 50 años transcurridos desde el amanecer de la era de las "micro" computadoras, ahora tenemos bombillas con más poder de procesamiento y RAM que los mainframes que manejaban el sistema bancario global. Sin embargo, un Philips Hue no se usaría para la banca.

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; el 8031, sin embargo, es simplemente un 8051 en el que los contenidos de la ROM interna no están especificados (si bien es muy posible que algunos chips y variantes 8031 ​​"sin ROM" dejen el espacio de la ROM fuera del dado, esperaría que haya algunos otros que, para mantener la consistencia del diseño del troquel con las versiones que incluyen ROM, incluya una matriz de ROM en blanco inútil).

Sobre todo marketing.

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

De lo contrario, lo que dijo JohnC.

¿Dónde puedo encontrar más información sobre estos "microconvertidores"? Lo más parecido que he encontrado es el TAS3202.
es posible que hayan 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. .
Tasa de muestreo máxima de 8 kHz, por lo que no es útil para audio. :/
No estoy de acuerdo en que se trata principalmente de marketing. Estoy de acuerdo con la respuesta de JohnC.
La mayor parte de este gráfico es una completa tontería.

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

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

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

Perdón por cambiar esto 8 años después, pero encuentro que esta analogía se queda un poco corta. Un microcontrolador también se usa a menudo solo como un cerebro, por ejemplo, cuando uno tiene que conectarle sensores/actuadores externos. Similar a un procesador real. La forma en que se conectan los sensores puede diferir (por ejemplo, PCIe vs I2C), pero incluso esa línea se vuelve borrosa por los SoC modernos, a menudo llamados microprocesadores. Un microcontrolador es, en mi opinión, muy raramente todo el cuerpo. El principal diferenciador sigue siendo la complejidad/necesidad del núcleo del procesador de RAM externa. Sin embargo, me gusta más la analogía: el software se convierte en el Alma :)

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

  • Los microprocesadores contienen el núcleo del procesador (unidad de búsqueda/descodificación, ALU, registros, etc.) y tal vez un par de bloques básicos más, pero normalmente no mucho más.

  • Los microcontroladores agregan RAM (SRAM), generalmente algo de ROM (puede ser una ROM de máscara o Flash/EEPROM) para el almacenamiento de código (pero también puede ser sin ROM) y un conjunto de periféricos básicos (SPI/I2C, UART, GPIO, tal vez incluso USB o Ethernet, etc.). A veces esto se llama System-on-Chip (SoC) o, a veces, SoC es algo aún más integrado. A algunas empresas japonesas también les encanta 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 a 8086 un microprocesador (los microcontroladores de Intel incluyen, por ejemplo, 8051 o 80186).

La línea no es borrosa. Los microprocesadores no tienen memoria interna. Los microcontroladores sí.

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 microprocesador, 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. Es posible que un microprocesador tampoco esté programado para manejar tareas en tiempo real, mientras que un microcontrolador, como en los dispositivos que necesitan controlar la temperatura del agua o tal vez medir la temperatura de una habitación, requieren monitoreo en tiempo real y, por lo tanto, con su conjunto de instrucciones incorporado, el microcontrolador funciona. por sí mismo.

Estas informaciones son un poco aleatorias y no 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.
@neelamSingh, Bienvenido al sitio, su publicación no tiene un buen formato y parece cortarse a la mitad, ¡podría mejorar un poco!
Tu tercer punto no es válido. La capacidad en tiempo real está determinada por el sistema operativo, no por el tipo de procesador. No hay ninguna razón por la que un RTOS no se ejecute en un microprocesador. Y los microcontroladores tampoco tienen necesariamente más instrucciones de manejo de bits.

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

ingrese la descripción de la imagen aquí

El microprocesador es una unidad central de procesamiento (CPU) simple en un solo chip (recuerde la palabra 'Single Chip'). Incluye unidad 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 de un microprocesador y los dispositivos periféricos de E/S, circuitos de soporte y memoria (tanto de datos como de programa). No es necesario estar en un solo chip (recuerda este punto, no en un solo chip).

  1. El microprocesador es un componente de la microcomputadora.
  2. El microcontrolador es una computadora completa similar a cualquier otra computadora.
Lo siento, ambos son de un solo chip

Respuesta larga corta:
Microprocesador : hace el 'pensamiento', básicamente es el chip en sí mismo que maneja las matemáticas.
Microcontrolador : un sistema con un microprocesador incluido, fácilmente capaz de interactuar con componentes electrónicos para desarrollar un sistema integrado. (Piense en arduino, PI, PSOC4, etc.

Esta es una de las peores respuestas a esta pregunta. Llamar a un microprocesador "un chip que hace matemáticas" es como llamar a un automóvil "un dispositivo con asientos". Ambos son "fácilmente capaces de interactuar" o no tendrían ningún valor práctico.