¿Cuáles son las propiedades de un microcontrolador de N bits?

9

He oído hablar de microcontroladores de 8 bits y microcontroladores de 16 bits. Incluso he oído hablar de microcontroladores de 7 bits y microcontroladores de 1 bit .

¿Cuáles son los atributos generales de estos grupos? ¿Cómo elijo qué tipo usar para un proyecto?

Jacob Harding
fuente
44
Nunca he oído hablar de un microcontrolador de 7 bits. Lo siento si te confundiste con un comentario que publiqué en electronics.stackexchange.com/q/32097/4512 . Eso estaba destinado a ser una broma.
Olin Lathrop
44
¡Excelente! ¡Olin, quería advertirte que esta pregunta era de esperarse! :-)
stevenvh

Respuestas:

11

También hay microcontroladores de 4 y 32 bits. Los microprocesadores de 64 bits se utilizan en PC.

El número se refiere al ancho del registro . Los registros están en el corazón del microcontrolador. Muchas operaciones usan registros, ya sea para mover datos o para realizar operaciones aritméticas o lógicas. Estas operaciones tienen lugar en la ALU , la Unidad Aritmética y Lógica.

ingrese la descripción de la imagen aquí

Algunas operaciones toman solo 1 argumento, como borrar un registro o incrementarlo. Muchos, sin embargo, tomarán 2 argumentos, y eso lleva a la representación típica de los pantalones al revés de un ALU.A y B son los argumentos, y la ALU producirá un resultado Cbasado en la operación actual. Una operación de dos argumentos puede ser "agregar 15 para registrar R5 y almacenar el resultado en la dirección de memoria 0x12AA". Esto requiere que haya un enrutamiento entre la constante "15" (que proviene de la memoria del programa), el archivo de registro y la memoria de datos. Ese enrutamiento ocurre a través de un bus de datos . Hay un bus de datos interno que conecta los registros, la RAM interna y la ALU, y para los microprocesadores y algunos microcontroladores, un bus de datos externo que se conecta a la RAM externa. Con algunas excepciones, el bus de datos tiene el mismo ancho que los registros y la ALU, y juntos determinan qué tipo de microcontrolador es. (Una excepción fue el 8088, que internamente tiene un bus de 16 bits, pero externamente solo 8 bits).

Los controladores de 4 bits tienen registros de 4 bits, que solo pueden representar 16 valores diferentes, desde 0 hasta hexadecimal 0xF. Eso no es mucho, pero es suficiente para trabajar con los dígitos en un reloj digital, y ese es un dominio donde se usan.

Los controladores de 8 bits han sido el caballo de batalla de la industria durante un par de décadas. En 8 bits puede almacenar un número entre 0 y 255. Estos números también pueden representar letras y otros caracteres. Entonces puedes trabajar con texto. A veces, 2 registros se pueden combinar en un registro de 16 bits, lo que permite números de hasta 65535. Sin embargo, en muchos controladores se deben procesar grandes cantidades en el software. En ese caso, incluso son posibles números de 32 bits.
La mayoría de los controladores de 8 bits tienen un contador de programa de 16 bits. Eso significa que puede abordar un máximo de 64kBytes de memoria. Para muchas aplicaciones integradas es suficiente, algunas incluso solo necesitan unos pocos kBytes.
Un monitor de estacionamiento, por ejemplo, en el que debe contar el número de automóviles y mostrarlo en una pantalla LCD, es algo que normalmente haría con un controlador de 8 bits. :-)

16 bits es el siguiente paso. Por alguna razón, nunca tuvieron el éxito que tienen los amargos de 8 o 32 amargos. Recuerdo que la serie HC12 de Motorola era prohibitiva, cara y no podía competir con los controladores de 32 bits.

32 bits es la palabra del día. Con un contador de programa de 32 bits, puede direccionar 4GByte. ARM es un controlador popular de 32 bits. Hay docenas de fabricantes que ofrecen ARM de todos los tamaños. Son controladores potentes que a menudo tienen muchas funciones especiales a bordo, como USB o controladores completos de pantalla LCD.
Los ARM a menudo requieren paquetes grandes, ya sea para acomodar una matriz grande con mucho Flash o porque las diferentes funciones requieren muchos pines de E / S. Pero este paquete ilustra las posibilidades que ofrece ARM.

ingrese la descripción de la imagen aquí

Este es un ARM de 16 pines en un paquete de solo 2,17 mm x 2,32 mm.

stevenvh
fuente
Y microcontroladores de 64 bits, también. uk.computers.toshiba-europe.com/innovation/jsp/…
Telaclavo
1
Ha habido todo tipo de anchos en el pasado. El PDP-8 tenía 12 bits, y un CDC 6600 tenía 60 bits con bytes de 6 bits si no recuerdo mal. Hoy en día vemos casi 4 (2 ^ N) anchos de bits.
Olin Lathrop
¿Cuál es el número de pieza de esa CPU ARM?
Rocketmagnet
@Rocketmagnet parece quizás un NXP LPC1102UK: nxp.com/products/microcontrollers/cortex_m0/miniature_package/…
Craig
5

La respuesta simple: un microcontrolador N-Bit tiene una ruta de datos y ALU que puede procesar datos en fragmentos N-Bit.

Respuesta larga: la respuesta corta es correcta el 95% del tiempo. La respuesta larga se vuelve confusa. Algunas CPU / MPU tienen partes que son en su mayoría N-Bits, pero algunas partes son M-Bits. Por ejemplo, podría ser una CPU de 8 bits con un multiplicador entero que funciona con datos de 16 bits. La serie Intel de CPU (8088 a través del i7 actual) a menudo podría combinar varios registros de 8 y 16 bits para obtener 16 o 32 bits. Luego, las personas de marketing obtienen estos números y deciden usarlos en sus cosas de marketing y terminan con MPU de 8 bits llamados 16 bits, etc.

Se pone aún más raro que eso. Algunas personas de marketing promueven el tamaño de la instrucción de la MPU. Los PIC de Microchip son un buen ejemplo de esto. Si no tiene cuidado, puede confundir esto con el número de bits en la ruta de datos.


fuente
La línea base de Microchip y los procesadores de rango medio tienen una palabra de instrucción de 12 bits o de 14 bits respectivamente. Sin embargo, ambos se clasifican como procesadores de 8 bits porque el bus de datos es de 8 bits. Una empresa china (ELAN Microelectronics) realizó una variación de los PIC de 14 bits con una palabra de instrucción de 13 bits llamada EM78. Para todos estos, los datos se direccionan en bytes, mientras que la memoria del programa se direcciona en palabras, pero a veces se anuncia que la memoria del programa tiene tantos bytes, lo que da un valor inflado del número real de instrucciones que se pueden programar.
tcrosley
4

¿Qué significa "N-Bit"?

Lo siento si este primer párrafo es un poco demasiado bajo, pero se ofrece con la esperanza de que pueda ayudar a los futuros lectores: un número, representado por N dígitos en la base M, solo puede ser tan grande como MN. Por ejemplo, con 9 dígitos decimales (base 10), solo puede escribir números hasta 10 ^ 9, o cero a 999,999,999. Con 8 dígitos binarios (base 2) (un "dígito binario" es un 'bit'), puede almacenar 2 ^ 8 = 256 números.

Un microcontrolador o procesador se llama 'N-bit' porque los controladores y procesadores tienen un ancho de datos fundamental. Cada registro puede ser N bits, cada instrucción puede ser N bits, el bus de datos puede ser N bits, la memoria puede ser direccionada con N bits. Especialmente en el nivel inferior, hay excepciones a esta regla: por ejemplo, un controlador de 8 bits puede tener un bus de memoria de 12 bits, pero como puede suponer, es difícil trabajar con eso cuando sus registros solo contienen 8 bits. Sin embargo, todos los procesadores tienen un ancho de tipo de datos nativo fundamental. Considere el siguiente código:

uint32_t x,y,z;  // Declare 3 32-bit variables
z=x + y;         // Add two of them to store in the third

Si solo puede agregar números de 8 bits, ¿cómo realizaría esta operación? Tendría que dividir cada variable en 4 números de 8 bits, hacer las sumas y los transportes individualmente, y luego combinarlos para obtener el resultado. ¡Esto tomaría al menos 16 instrucciones! Sin embargo, en un procesador de 32 bits, es una sola instrucción tan simple como mul r0, r1, r2. Como puede ver en este simple ejemplo, los anchos de bits de procesador más grandes pueden manejar más datos más rápido.

Notas historicas

La tendencia a lo largo de la historia ha sido desde anchos de bits más pequeños hacia los más grandes. A principios de la década de 1970, Intel lanzó el 4004, el primer controlador de un solo chip. Era un procesador de 4 bits. Debido a que los transistores eran grandes y necesitaban mucha energía, y debido a que el diseño era revolucionario y complicado, esto era todo lo que podía exprimirse en el chip. Poco después, lanzaron el 8008, un procesador de 8 bits. Todavía hay pocos procesadores de 4 bits en uso, pero hay muchos controladores de 8 bits, el PIC y el AVR son ejemplos contemporáneos que todavía se usan comúnmente. ¡Se han hecho más procesadores de 8 bits que cualquier otro tipo! Siguen siendo los controladores más populares para tareas pequeñas, simples y económicas. La siguiente transición obvia fue a los controladores de 16 bits, pero estos no han tenido el alcance de sus hermanos de 8 o 32 bits. En lugar, ha habido un salto a los procesadores de 32 bits, como los diseñados por ARM y diseñados en las CPU de PC de hace unos años. No he conocido ningún microcontrolador significativo de 64 bits, aunque ahora son prominentes en las PC.

8 bits frente a 32 bits

Con mucho, los tipos más populares son los procesadores de 8 bits y 32 bits. Los procesadores de 32 bits son cada vez más populares. Cada año, más o menos, alguna revista comercial publica un artículo con el título "¿Está muerto 8 bits?" Los procesadores de 32 bits se están volviendo más populares, más potentes y más baratos, dejando solo tres razones para elegir un procesador de 8 bits:

  1. Inercia : si tiene código y experiencia con un procesador de 8 bits, es posible que no obtenga un ROI suficiente al convertir todo a una arquitectura de 32 bits.
  2. Baja potencia : cada transistor en un controlador disipa potencia, y aunque el tamaño ya no es un problema, los procesadores de 32 bits tienen más transistores y, por lo tanto, disipan más corriente en su estado apagado. Esto es solo un problema en los diseños extremos que funcionan con monedas.
  3. Bajo costo : si solo necesita un par de docenas de instrucciones de montaje y 2 pines de E / S, incluso un procesador de 8 bits probablemente sea excesivo. En el extremo inferior, los controladores más baratos de 8 bits cuestan menos de $ 0.40 a granel, pero los procesadores más baratos de 32 bits siguen siendo $ 0.80 más o menos, pero son mucho más potentes que las alternativas de 8 bits. Si está tratando de construir un juguete con un solo LED parpadeante para el próximo millón de Happy Meals, esta es una reducción de precios convincente, si no, realmente no hace la diferencia.

Los procesadores de 32 bits se están volviendo más ubicuos, pero hay pocas señales de que el procesador de 8 bits desaparezca como los procesadores antiguos de 4 bits debido a estas tres razones.

Arduino como ejemplo

Considere una aplicación como el Arduino .

El Arduino usa un controlador Atmel, un ATmega32 de 8 bits . El ATmega funciona a 20 MHz, tiene 4k de RAM, tiene comunicaciones SPI, I2C y UART, algunas interrupciones de hardware y 8 ADC de 10 bits. Este chip cuesta $ 3.90 en cantidades de 100.

Un chip similar de 32 bits podría ser otra parte de Atmel, un AT-SAM3 de 32 bits que utiliza el núcleo ARM Cortex-M3 compartido. Este chip funciona a 64 MHz (3 veces más rápido, pero recuerde que el ATmega toma 16 instrucciones para hacer una sola adición de 32 bits). Tiene 16k de RAM, 4 veces más que el ATmega. Tiene I²C, MMC, SPI, SSC, UART e incluso periféricos USB. Tiene DMA (acceso directo a la memoria, también lo hace más rápido y más eficiente), un conjunto flexible y potente de interrupciones, 10 ADC de 12 bits y 2 DAC. Simplemente supera a ATmega en todas las categorías. Traté de encontrar un controlador de 32 bits que tuviera un conjunto de características comparable, y esto fue lo mejor que pude hacer. ¿Cuánto cuesta este chip? Son $ 2.34 en cantidades de 100: obtienes más rendimiento por menos dinero. Debería ser una decisión fácil.

¿Qué hay de tu ejemplo?

Para su situación de ejemplo aquí ,

Se debe contar el número de automóviles que entran y salen de un estacionamiento y el número que se muestra en una pantalla LCD. Se permite un máximo de diez automóviles en el estacionamiento.

tiene algunas matemáticas muy simples con números pequeños y una pantalla simple en una pantalla LCD (o realmente, un letrero grande hecho con números de 7 segmentos con luz LED sería más visible y más barato). Un controlador de 8 bits probablemente sea perfectamente adecuado para esta tarea. Sin embargo, lo que si realmente no quiere un LCD? El controlador de 8 bits tendrá dificultades para manejar incluso una pantalla VGA de baja resolución, mientras que puede obtener fácilmente placas de desarrollo para controladores de 32 bits que tienen salidas HDMI. ¿Qué sucede si desea mostrarlo en una pantalla por ahora, pero luego desea conectarlo a un cable Ethernet en la LAN de su empresa y mostrar los resultados en la computadora del supervisor en la oficina del parque? Puede obtener fácilmente controladores de 32 bits con buses de comunicación Ethernet integrados, no puede hacerlo con un controlador de 8 bits.Xport , pero que contiene un procesador de 32 bits en su interior.

Para proyectos únicos, recomendaría un controlador de 32 bits cada vez. Su tiempo es simplemente más valioso que la diferencia de precio entre los controladores de 8 y 32 bits.


Con respecto a los procesadores de 7 bits que mencionó, probablemente nunca ha habido y nunca habrá máquinas similares. Desde un punto de vista arquitectónico, es más sensato usar anchos de bits que son potencias de 2.

Kevin Vermeer
fuente
En la comparación de 8 bits frente a 32 bits: aunque los controladores de 32 bits son a menudo más baratos (precio unitario) y tienen más características que los controladores de 8 bits, son más costosos en términos de bienes inmuebles de PCB.
shimofuri
1

El tamaño de bit de una CPU se relaciona con algunas características que generalmente van juntas:

  1. El mayor tamaño de operando sobre el cual puede operar la mayor parte del conjunto de instrucciones
  2. El tamaño de la mayoría si sus registros de propósito general
  3. El tamaño del bus más grande disponible que puede mover datos entre registros de uso general y memoria
  4. El tamaño del bus más grande disponible que puede mover datos entre registros de uso general
  5. El tamaño de la ALU utilizada para el cálculo de datos de propósito general

Para algunos procesadores, todas esas cantidades tienen el mismo valor. Para otros, pueden tener valores diferentes. El Z80, aunque incluye algunos registros de 16 bits, utiliza registros de 8 bits para la mayoría de su conjunto de instrucciones, y requiere ciclos adicionales para casi todas las instrucciones que operan en cantidades de 16 bits (la única excepción es EX DE, HL); Es una CPU de 8 bits. Sin embargo, algo como el 68008 no se puede describir muy bien usando solo uno N: tiene un conjunto de instrucciones que puede operar principalmente en cantidades de 32 bits, y puede IIRC mover datos entre registros de 32 bits a la vez, pero su ALU principal es solo 16 bits, y su bus de memoria es de solo 8 bits. Dependiendo de lo que se esté midiendo, podría considerarse como una CPU de 32 bits, 16 bits u 8 bits.

Super gato
fuente