Arduino vs Microprocesador vs Microcontrolador

Respuestas:

21

Un microprocesador:

Por lo general, se encuentra en una PC de escritorio o portátil y contiene una CPU y una interfaz de memoria externa además de varios buses de E / S para conectarse al mundo exterior, como SPI, I2C, UART, USB, LCD y otros. Un microprocesador también tendrá un cristal externo para proporcionar un reloj.

La mayoría de los microprocesadores no tienen memoria de solo lectura en el chip; en cambio, hay un chip externo en la placa base donde se encuentra el código de arranque inicial. En las PC basadas en Intel, esto se denomina Sistema básico de entrada / salida (BIOS) y también contiene rutinas de E / S además del código de arranque inicial. El código de arranque comienza haciendo una Autocomprobación de encendido (POST) y luego mira para ver dónde cargar la siguiente etapa del código de arranque: desde un disco duro, CD (o en días antiguos) un disquete. Este arranque de segundo nivel carga el sistema operativo. (Incluso puede haber tres niveles de código de arranque en algunos sistemas).

Algunos microprocesadores (generalmente aquellos destinados a teléfonos inteligentes y tabletas, que tienen opciones de arranque limitadas) tienen una pequeña cantidad de memoria de solo lectura que contiene el código de arranque inicial.

Me refiero al código de arranque como de solo lectura; En realidad, en algunos sistemas, se puede actualizar. Sin embargo, esto es bastante arriesgado; Si algo sale mal, el sistema ya no puede arrancar.

A diferencia de los microcontroladores, que ejecutan sus programas desde la memoria de solo lectura, después de arrancar, los microprocesadores cargan sus programas en la RAM externa y la ejecutan desde allí.

Un microcontrolador:

Por otro lado, hay un IC de chip único independiente que contiene una CPU, memoria de solo lectura para almacenar el programa, RAM para almacenar variables utilizadas en la ejecución del programa y varios buses de E / S para conectarse al mundo exterior. como SPI, I2C, UART y otros. Por sí solo, no puede ejecutar ningún programa sin ser programado a través de una interfaz externa a una PC. Un microcontrolador también puede necesitar un cristal externo para proporcionar un reloj, sin embargo, algunos tienen un reloj interno.

Algunos microcontroladores (como el PIC32 de Microchip) tienen dos secciones de memoria flash; uno para contener el código de inicialización (arranque) y otro para almacenar la aplicación. Esto facilita la actualización del código de la aplicación en el lugar.

Para su propósito, querrá usar un microcontrolador, no un microprocesador. Para usar un microcontrolador, deberá diseñar su propia placa o comprar algún tipo de placa de desarrollo.

Un arduino:

es una placa de este tipo y contiene un microcontrolador, típico de un AVR de 8 bits, como ATmega8, ATmega168, ATmega328, ATmega1280 y ATmega2560, además de fuentes de alimentación, cristal y encabezados hembra para interactuar con varias placas periféricas.

Estas placas periféricas se llaman escudos , y están diseñadas para apilarse una encima de la otra (hay pines macho en la parte inferior de los tableros para conectarse al Arduino u otro escudo, y encabezados hembra en la parte superior para aceptar los pines macho de un escudo apilado encima).

Los blindajes de ejemplo son tableros de control de motores, tableros generales de E / S, tableros de relés, tableros Ethernet y LCD, generalmente con una pantalla táctil. Sin embargo, no conozco ninguna pantalla táctil resistiva que se use solo para detección (sin una pantalla LCD).

Además del hardware descrito anteriormente, Arduino también viene con un entorno de desarrollo integrado (IDE) multiplataforma escrito en Java. Fue diseñado para presentar la programación a artistas y otros principiantes, tal como lo hizo el lenguaje BASIC hace 50 años. Un programa para Arduino se llama boceto .

Los programas de Arduino se escriben en C o C ++, sin embargo, muchos de los detalles están ocultos para el usuario: solo se necesitan definir dos funciones (llamadas por el sistema) para hacer un programa que repita continuamente (que generalmente es para programas integrados)

setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off

El IDE viene con una biblioteca de software llamada "Cableado" que puede usarse para operaciones comunes de entrada / salida.

tcrosley
fuente
Ya no diseño hardware, después de 25 años de hacerlo, pero no conozco ningún procesador para computadoras de escritorio que contenga memoria de solo lectura, y mucho menos cualquier memoria que pueda arrancar una computadora.
Rob
@Rob Tienes razón en que todas las PC de escritorio que conozco usan un chip de arranque externo. Pero la arquitectura OMAP3 de TI es un ejemplo de un microprocesador con una ROM de arranque interna. De la descripción aquí al reiniciar Linux, la primera línea dice: "Al encenderse, un dispositivo OMAP3 comienza a arrancar desde la ROM de arranque interna. Este código se repara durante el proceso de fabricación y no se puede modificar. La ROM de arranque lee los pines de configuración de arranque (SW4 en el OMAP3 EVM) que le dice a la ROM de arranque dónde buscar el primer gestor de arranque externo ". He actualizado mi respuesta.
tcrosley
10

Arduino

Un Arduino es un PCB que contiene un microcontrolador Atmel AVR y generalmente proporciona un conjunto de conectores en un patrón estándar. El microcontrolador generalmente está preprogramado con un programa de "cargador de arranque" que permite cargar un programa (llamado "boceto") en el microcontrolador a través de una conexión en serie TTY (o conexión en serie virtual a través de USB) desde una PC.

Microprocesador

Un microprocesador es un IC que contiene solo una unidad central de procesamiento (CPU). El IC no contiene RAM, ROM u otros periféricos. El IC puede contener memoria caché, pero no está diseñado para utilizarse sin ninguna memoria externa.

Los microprocesadores no pueden almacenar programas internamente y, por lo tanto, generalmente cargan el software cuando se enciende, esto generalmente implica un complejo proceso de "arranque" en varias etapas donde el "firmware" se carga desde una ROM externa y, finalmente, un sistema operativo se carga desde otros medios de almacenamiento (por ejemplo, un disco duro )

Por lo general, se encuentra en una computadora personal.

Microcontrolador

Un microcontrolador es un IC que contiene una CPU, así como cierta cantidad de RAM, ROM y otros periféricos. Los microcontroladores pueden funcionar sin memoria externa o almacenamiento.

Normalmente, los microcontroladores se programan antes de soldarse a una PCB o se pueden programar utilizando conectores de programación en el sistema (ISP o ICSP) a través de un dispositivo especial "programador" conectado a una computadora personal.

Los microcontroladores típicos son mucho más simples y lentos que los microprocesadores típicos, pero creo que la distinción es principalmente de escala y aplicación.

Se encuentra, por ejemplo, en electrodomésticos simples como lavadoras básicas.

RedGrittyBrick
fuente
2

"Arduino" es un entorno de desarrollo de software y cualquiera de las varias placas de microcontroladores para las que el entorno de software puede desarrollar programas. La mayoría de las placas utilizan microcontroladores Atmel AVR.

Peter Bennett
fuente
2

Arduino es una plataforma basada en microcontroladores (ATMEGA 328 para la ONU). En general, un microcontrolador es más adecuado que un microprocesador para cualquier cosa que requiera la detección de entradas. Esto se debe a que los microcontroladores como el ATMEGA 328 tienen convertidores analógico a digital (ADC) para detectar voltajes y también tienen salidas PWM y E / S digitales.

Con Arduino también tiene el sistema Arduino Dev, que es más fácil de programar para principiantes y tiene una buena comunidad de soporte y bibliotecas.

Una pantalla táctil resistiva se comporta como potenciómetros; uno para xy otro para y. Entonces puede ponerlos en las entradas analógicas de Arduino. Ver aquí para más detalles .

Otra opción es convertir a SPI o I2C con algo como esto , y leer con Arduino.

De cualquier manera, creo que Arduino es una buena opción.

akellyirl
fuente
@tcrosley o cualquier otro miembro desde hace mucho tiempo ... ¿algún consejo para un nuevo contribuyente como yo para evitar un voto negativo como este? Mis respuestas son precisas, responden la pregunta y proporcionan detalles adicionales para interactuar con una pantalla táctil resistiva. ¿Algo más que debería haber incluido?
akellyirl
3
No tome en serio el voto negativo. Sin embargo, creo que tu primera oración es un poco inexacta. Arduino es más como una plataforma que consta de hardware y software. Y una placa Arduino no es un microcontrolador, sino una placa diseñada alrededor de un microcontrolador.
Rev1.0
1
Como dice Rev1.0: "Arduino es un microcontrolador" no es cierto. Arduino es un SBC (Single Board Computer).
flup
1

El Arduino consiste en un microcontrolador (el ATmega328 en la versión UNO). Entonces, el Arduino es un PCB con los pines del microcontrolador muy bien separados, un poweruply, un cristal y el FTDI para la conexión USB con un firmware incorporado para que pueda programarlo fácilmente con su propio IDE. Aquí hay una lista sobre los componentes de arduino: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq

kimliv
fuente