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?
microcontroller
architecture
Jacob Harding
fuente
fuente
Respuestas:
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.
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 C basado 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.
Este es un ARM de 16 pines en un paquete de solo 2,17 mm x 2,32 mm.
fuente
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
¿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 comoMN . 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:
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:
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í ,
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.
fuente
El tamaño de bit de una CPU se relaciona con algunas características que generalmente van juntas:
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.fuente