microcontrolador vs. sistema en chip

24

Estoy comenzando a programar microcontroladores y estaba leyendo documentación y libros de texto. Estoy un poco confundido sobre cuál es la diferencia entre un microcontrolador y un sistema en chip.

Alguna documentación usa estos dos términos de manera intercambiable. Sin embargo, la mayoría de los libros de texto señalan que usar los dos términos de manera intercambiable NO es correcto, por lo tanto, debe haber alguna diferencia notable ...

¡Gracias!

rrazd
fuente
44
Gracias por aceptar mi respuesta, pero realmente te recomiendo que esperes más la próxima vez antes de aceptar. Otros probablemente tienen puntos de vista y puntos de vista diferentes, pero a menudo pueden pasar por alto una pregunta que ya tiene una respuesta aceptada, lo sé. Desea dejar algo de tiempo para obtener un consenso, especialmente para una pregunta que aborde un área gris.
Olin Lathrop
@Olin Cool, lo tendremos en cuenta la próxima vez!
rrazd

Respuestas:

27

Un microcontrolador es un procesador que tiene su programa y memoria de datos incorporados. Estos chips están destinados a pequeñas aplicaciones de control integradas, por lo que es muy útil dejar los pines para E / S y no requerir un bus de memoria externo. Algunos microcontroladores tienen tan solo 6 pines y pueden hacer cosas útiles. Compare eso con un procesador informático de propósito general destinado a una PC. Esas cosas tienen cientos de pines en una matriz y requieren circuitos externos extensos.

En cuanto al sistema en un chip, ese es un término menos definido. Chipre llama a algunas de sus partes PSOC (Sistema Programable en Chip). Estos son básicamente un microcontrolador con un pequeño FPGA en el mismo chip. En lugar de tener periféricos integrados, puede hacer lo que quiera con los recursos disponibles de FPGA.

En general, creo que un sistema en un chip es un microcontrolador con una lógica supuestamente de nivel de sistema integrada con él. Por supuesto, cuanto más intente ingresar al sistema, es menos probable que cualquier conjunto de hardware adicional sea útil, por lo que algún tipo de configurabilidad es muy útil. Sin embargo, por ahora "sistema en chip" es más un término de marketing que algo real.

Olin Lathrop
fuente
20

System On a Chip (o SoC) es una frase general que la gente de marketing usa y realmente no significa mucho. También hay muchas variaciones como:

PSoC: Sistema programable en un chip, por Cypress Semiconductor.

SOPC: Sistema en un chip programable, por Altera

En esencia, un SOC es un solo chip que hace todo lo que solía tomar múltiples chips. No hay nada allí que diga que tiene que incluir una CPU o RAM. Entonces, debido al hecho de que podemos obtener más transistores en un chip y hemos estado obteniendo cada vez más funcionalidad en nuestros chips, casi todo se puede llamar un SoC en comparación con lo que estábamos haciendo hace 10 o 20 años. !

Para empeorar las cosas: hay muchos ejemplos de cosas que se llaman SoC que aún requieren múltiples chips para que sean útiles. Muchas veces tendrá alguna forma de CPU + Periféricos que aún requieren Flash externo, RAM y alimentación. Entonces, incluso el nombre del SoC es engañoso.

Una MCU es probablemente el ejemplo más conciso de lo que debería ser un SoC, pero es un ejemplo muy limitado.


fuente
@ David-kesner +1 para SoC como una frase de marketing.
Frank
12

En general, se considera que un microcontrolador es un dispositivo integrado que se programa internamente para realizar una tarea específica. Hay una interacción mínima del usuario y poca o ninguna flexibilidad. Un microcontrolador suele tener una potencia bastante baja con solo pequeñas cantidades de memoria y ROM (flash).

Por el contrario, un sistema en chip es el otro extremo del espectro. Está más orientado hacia la flexibilidad total y la interacción del usuario. A menudo incluye cosas como controladores IO para hardware más grande (como discos duros, etc.) e incluso a veces un adaptador de gráficos. Un sistema en chip es más como un sistema informático completo, sí, en un chip.

Hay bastante cruce entre los dos: ¿cuándo deja de ser un microcontrolador y comienza a ser un sistema en chip? De ahí proviene gran parte de la confusión.

Básicamente, si puede hacer lo que una computadora puede hacer, entonces es un sistema en chip. Si está orientado, por ejemplo, a sentarse dentro de un teléfono de escritorio que administra su lista de contactos, o en un sistema de entrada de teclado, o hacer funcionar los motores en una máquina CNC, entonces es un microcontrolador.

PD, no me cite sobre esto, ya que digo que hay mucho cruce entre los dos.

Majenko
fuente
5

La distinción está, en cierto sentido, más relacionada con el marketing que con la técnica, pero sugeriría que, en general, la parte "programable" de un microcontrolador se limita a un "flujo de conciencia" único y relativamente estrecho. Esencialmente, en cualquier momento dado, la próxima operación relativamente pequeña del microcontrolador estará determinada por cómo está programada, pero todas las demás lógicas en el sistema están cableadas y funcionarán como está construido. Algunas cosas como los temporizadores pueden proporcionar algunas opciones de configuración (por ejemplo, contar a una velocidad fija frente a contar impulsos en una entrada), pero en general el cableado del sistema será fijo. Si se desea que cambie la señal de salida en respuesta a alguna señal de entrada, y no existe un hardware explícito para hacerlo, el programa tendrá que mirar periódicamente la señal de entrada y, si ha cambiado, cambiar la señal de salida. Si se desea tener un cambio de voltaje analógico de salida en respuesta a un voltaje analógico de entrada, el procesador podría muestrear el voltaje de entrada, calcular la respuesta deseada y solicitar el voltaje de salida deseado. Se podría producir prácticamente el tipo de estímulo / respuesta deseado haciendo que el procesador mire las entradas y las salidas de cómputo, pero los tiempos de respuesta en general serían órdenes de magnitud más lentos de lo que podrían producirse con hardware dedicado.

La idea general con un sistema en chip es permitir proporcionar a los circuitos suficientes multiplexores y otras instalaciones de enrutamiento de manera que las señales puedan enrutarse a través de los circuitos para producir muchos tipos útiles de patrones de estímulo / respuesta sin la intervención del procesador. Tales circuitos no pueden producir patrones de estímulo / respuesta que sean tan rápidos como lo que podría producir un procesador, pero en muchos casos pueden ser órdenes de magnitud más rápido que cualquier cosa que un procesador pueda hacer.

Super gato
fuente
2

En mi opinión, SoC es el término con muchas definiciones, que de hecho seguirá cambiando con el tiempo. Por otro lado, el Microcontrolador se definirá de la misma manera después de una década como lo es ahora. Cuando dice un microcontrolador, viene con algunas cosas básicas en un solo chip, como memoria, puertos IO, temporizadores y contadores, etc. Pero cuando dice un SoC, no tiene ningún estándar específico sobre qué tipo de circuito que debe contener. Por ejemplo, la aplicación principal en la que intentan incorporar SoC es Smartphone. En el escenario actual, un teléfono inteligente debe contener algunas cosas básicas a bordo como,

  1. NFC
  2. GPS
  3. Acelerómetro y Gyro
  4. Wifi
  5. Una CPU y una GPU

En la situación actual, si quiero fabricar un teléfono inteligente, tengo que elegir una CPU y una GPU e interactuar con todo. Pero SoC se basa en el concepto de chip único que tendrá todo lo anterior y tendrá la capacidad de evolucionar (aunque de una manera muy básica). Además, dije que SoC tiene una definición que cambia constantemente porque los requisitos básicos para un teléfono inteligente, una computadora o cualquier dispositivo electrónico aumentarán día a día y la definición de SoC cambiará con esos requisitos.

Krushna Ratnaparkhi
fuente
0

Sí, SoC es básicamente un término de marketing que se usa con más frecuencia. Existe una terminología de dispositivo y host. Los principales fabricantes de PC como Dell, HP, IBM, etc. Usaron la CPU dentro de ellos, generalmente hecha por Intel, AMD, etc. básicamente proporciona CPU o SoC en la placa madre (llamada CPU), algunos también proporcionan CPU + SoC (con un propósito particular para descargar la actividad de los periféricos, como sensores o dispositivos GPS, que de lo contrario habrían tenido mucha energía) se han conectado directamente a la CPU). SoC también se llama a veces un coprocesador cuyo trabajo es el mismo que he escrito anteriormente. Ahora, a las Motherboard se conectan varios periféricos (que están conectados básicamente a la CPU o SoC), estos periféricos están básicamente conectados directamente a ellos (SOC o CPU) a través del bus de suma - i2c, SPI, USB o generalmente están conectados a los MicroControladores . fabricantes de controladores), así como los fabricantes de PC, ya que están obteniendo los mejores dispositivos (periféricos + microcontrolador). Entonces, todo el punto es el término del microcontrolador que verá con más frecuencia en el lado del dispositivo (el que se está interconectando con el SoC (¿Ahora sabe qué es un SOC? ¿No lo hace?) Y SoC en el lado del host (el lado de la PC ) .Puede decir que la CPU es el padre que delega algo de su trabajo en SoC para mejorar las capacidades de potencia de los dispositivos (Micro + periféricos) .Los Socios básicamente tienen más memorias para alojar un sistema operativo que desata Microcontroladores que pueden admitir a lo sumo los RTO.

Raulp
fuente
1
GUAUU ! ¡Realmente me gusta el voto negativo cuando la gente lo hace sin decir muchos comentarios necesarios!
Raulp
3
No está muy claro. No puedo hacer los entresijos en esta corriente de conciencia.
ivan_pozdeev
0

Resuma lo anterior, me parece:

Una MCU proporciona mucha memoria, interfaces como VGA y capacidades como GPU mediante el uso de varios chips diferentes que proporcionan cosas diferentes.

Una MCU se adapta a todo en un solo chip al proporcionar solo una memoria mínima, interfaces, etc.

Un SoC se adapta a todo en un solo chip al superar los límites de lo que se puede hacer en un chip.

Las MCU proporcionan valor al minimizar el costo, los SoC proporcionan valor al maximizar la funcionalidad, ambos en un solo chip. Si compite contra la lógica TLL, es probable que sea una MCU. Si compite contra microprocesadores (AMD, Intel), probablemente sea un SoC.

Ray Morris
fuente