9 votos

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

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

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

11voto

lillq Puntos 4161

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

El número se refiere al registrar de la anchura. Los registros son el corazón del microcontrolador. Muchas operaciones utilizan los registros, ya sea para mover datos o para realizar operaciones aritméticas o lógicas. Estas operaciones tienen lugar en el ALU La Unidad Aritmética y Lógica.

enter image description here

Algunas operaciones sólo requieren un argumento, como borrar un registro o incrementarlo. Muchas, sin embargo, toman 2 argumentos, y eso lleva a la típica representación de pantalones al revés de una ALU. \$A\$ y \$B\$ son los argumentos, y la ALU producirá un resultado \$C\$ en función de la operación en curso. Una operación de dos argumentos puede ser "sumar 15 al registro R5 y almacenar el resultado en la dirección de memoria 0x12AA". Esto requiere que haya un enrutamiento entre la constante "15" (que viene de la memoria de programa), el archivo de registro y la memoria de datos. Ese enrutamiento se produce a través de un databus . Hay un databus interno que conecta los registros, la RAM interna y la ALU, y para los microprocesadores y algunos microcontroladores un databus externo que se conecta a la RAM externa. Salvo algunas excepciones, el databus tiene la misma anchura 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 sólo de 8 bits).

Los controladores de 4 bits tienen registros de 4 bits, que sólo pueden representar 16 valores diferentes, del 0 al hexadecimal 0xF. Eso no es mucho, pero es suficiente para trabajar con los dígitos de un reloj digital, y ese es un dominio en el que se utilizan.

Los controladores de 8 bits han sido el caballo de batalla de la industria desde hace un par de décadas. En 8 bits se puede almacenar un número entre 0 y 255. Estos números también pueden representar letras y otros caracteres. Así que se puede trabajar con texto. A veces se pueden combinar 2 registros en uno de 16 bits, lo que permite números de hasta 65535. Sin embargo, en muchos controladores los números grandes tienen que ser procesados en el software. En ese caso, incluso los números de 32 bits son posibles.
La mayoría de los controladores de 8 bits tienen un contador de programa de 16 bits. Esto significa que puede direccionar un máximo de 64kBytes de memoria. Para muchas aplicaciones embebidas eso es suficiente, algunas incluso sólo necesitan unos pocos kBytes.
Un monitor de aparcamiento, por ejemplo, en el que hay que llevar la cuenta del número de coches y mostrarlo en una pantalla LCD, es algo que se suele hacer con un controlador de 8 bits. :-)

Los 16 bits son el siguiente paso. Por alguna razón nunca han tenido el éxito de los de 8 o 32 bits. Recuerdo que la serie Motorola HC12 tenía un precio prohibitivo 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 se pueden direccionar 4GByte. ARM es un controlador de 32 bits muy popular. Hay docenas de fabricantes que ofrecen ARMs es todos los tamaños. Son controladores potentes que a menudo tienen muchas funciones especiales a bordo, como USB o controladores de pantalla LCD completos.
Los ARM suelen requerir paquetes de gran tamaño, ya sea para acomodar una matriz grande con mucha Flash, o porque las diferentes funciones requieren muchos pines de E/S. Pero este paquete ilustra las posibilidades que ofrece ARM.

enter image description here

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

5voto

La respuesta es sencilla: Un microcontrolador de N-Bit tiene una ruta de datos y ALU que puede procesar datos en trozos de N-Bit.

Respuesta larga: La respuesta corta es correcta el 95% de las veces. La respuesta larga es confusa. Algunas CPUs/MPUs 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 de enteros que trabaja con datos de 16 bits. La serie de CPUs de Intel (desde el 8088 hasta el actual i7) a menudo podía combinar varios registros de 8 y 16 bits para obtener 16 o 32 bits. Entonces la gente de marketing consigue estos números y decide usarlos en sus cosas de marketing y terminas con MPUs de 8 bits llamadas de 16 bits, etc.

La cosa se pone aún más rara. Algunas personas de marketing promocionan el tamaño de las instrucciones de la MPU. Los PIC de Microchip son un buen ejemplo de ello. Si no tienes cuidado, puedes confundir esto con el número de bits en la ruta de datos.

4voto

Simon Gillbee Puntos 366

¿Qué significa "N-Bit"?

Perdonen si este primer párrafo es demasiado bajo, pero se ofrece con la esperanza de que pueda ayudar a futuros lectores: Un número, representado por N dígitos en base M, sólo puede ser tan grande como \$M^N\$ . Por ejemplo, con 9 dígitos decimales (base 10), sólo se pueden anotar números hasta 10^9, es decir, de cero a 999.999.999. Con 8 dígitos binarios (base 2) (un "dígito binario" es un 'bit'), puedes almacenar 2^8 = 256 números.

Un microcontrolador o procesador se denomina de "N bits" porque los controladores y procesadores tienen una anchura de datos fundamental. Cada registro puede ser de N bits, cada instrucción puede ser de N bits, el bus de datos puede ser de N bits, la memoria puede direccionarse 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 puedes suponer, es difícil trabajar con eso cuando tus registros sólo 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 sólo puedes sumar números de 8 bits, ¿cómo realizarías esta operación? Tendrías que dividir cada variable en 4 números de 8 bits, hacer las sumas y las cargas individualmente, y luego fusionarlas para obtener el resultado. Esto llevaría al menos 16 instrucciones. Sin embargo, en un procesador de 32 bits, es una instrucción tan sencilla como mul r0, r1, r2 . Como se puede ver en este sencillo ejemplo, las mayores anchuras de bits del procesador pueden manejar más datos con mayor rapidez.

Notas históricas

La tendencia a lo largo de la historia ha sido la de pasar de una anchura de broca menor a una mayor. A principios de los años 70, Intel lanzó el 4004, el primer controlador de un solo chip. Era un procesador de 4 bits. Como los transistores eran grandes y consumían mucha energía, y como el diseño era revolucionario y complicado, esto era todo lo que se podía meter en el chip. Poco después, lanzaron el 8008, un procesador de 8 bits. Hay pocos procesadores de 4 bits que se sigan utilizando, pero hay muchos controladores de 8 bits, el PIC y el AVR son ejemplos contemporáneos que todavía se utilizan. Se han fabricado más procesadores de 8 bits que de cualquier otro tipo. Siguen siendo los controladores más populares para tareas pequeñas, sencillas y de bajo coste. La siguiente transición obvia fue a los controladores de 16 bits, pero éstos no han tenido el alcance de sus hermanos de 8 o 32 bits. En su lugar, se ha producido un salto a los procesadores de 32 bits, como los diseñados por ARM e incorporados a las CPU de los PC de hace unos años. Que yo sepa, no ha habido ningún microcontrolador de 64 bits importante, aunque ahora son prominentes en los PC.

8 bits vs. 32 bits

Los tipos más populares, con diferencia, son los procesadores de 8 y 32 bits. Los procesadores de 32 bits son cada vez más populares. Cada año, más o menos, alguna revista especializada publica un artículo con el título "¿Han muerto los 8 bits?". Los procesadores de 32 bits son cada vez más populares, más potentes y más baratos, por lo que sólo quedan tres razones para elegir un procesador de 8 bits:

  1. Inercia - Si tienes código para un procesador de 8 bits y experiencia con él, es posible que no obtengas una rentabilidad suficiente convirtiendo todo a una arquitectura de 32 bits.
  2. Baja potencia - Cada transistor de un controlador disipa energía y, aunque el tamaño ya no es un problema, los procesadores de 32 bits tienen más transistores y, por tanto, disipan más corriente en su estado desactivado. Esto sólo es un problema en los diseños extremos alimentados por pilas de botón.
  3. Bajo coste - Si sólo necesitas un par de docenas de instrucciones en ensamblador y 2 pines IO, incluso un procesador de 8 bits es probablemente excesivo. En el extremo inferior, los controladores de 8 bits más baratos cuestan menos de $0.40 in bulk, but the cheapest 32-bit processors are still $ 0,80 más o menos, pero son abundantemente más potentes que las alternativas de 8 bits. Si se trata de construir un juguete con un solo LED parpadeante para el próximo millón de Happy Meals, este es un precio de ruptura convincente, si no es así, no hace realmente la diferencia.

Los procesadores de 32 bits son cada vez más omnipresentes, pero hay pocos indicios de que el procesador de 8 bits vaya a desaparecer como los antiguos procesadores de 4 bits por estas tres razones.

Arduino como ejemplo

Considere una aplicación como la Arduino .

El Arduino utiliza un controlador Atmel, de 8 bits ATmega32 . El ATmega funciona a 20 MHz, tiene 4k de RAM, tiene comunicaciones SPI, I2C y UART, unas cuantas interrupciones de hardware y 8 ADC de 10 bits. Este chip cuesta 3,90 dólares en cantidades de 100.

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

¿Y su ejemplo?

Para su situación de ejemplo aquí ,

Hay que contar el número de coches que entran y salen de un aparcamiento y mostrarlo en una pantalla LCD. Se permite un máximo de diez coches en el aparcamiento.

tienes unas matemáticas muy sencillas con números pequeños y una simple pantalla en un LCD (o realmente, un gran cartel hecho con números de 7 segmentos iluminados por LEDs sería más visible y más barato). Un controlador de 8 bits probablemente sea perfectamente adecuado para esta tarea. Sin embargo, ¿qué pasa si realmente hacer ¿quieres un LCD? El controlador de 8 bits tendrá dificultades para manejar incluso una pantalla VGA de baja resolución, mientras que puedes conseguir fácilmente placas de desarrollo para controladores de 32 bits que tienen salidas HDMI. ¿Y si de momento quieres mostrarlo en una pantalla, pero más adelante quieres conectarlo a un cable Ethernet en la LAN de tu empresa y mostrar los resultados en el ordenador del supervisor en la oficina del parque? Puedes conseguir fácilmente controladores de 32 bits con buses de comunicación Ethernet a bordo, no puedes hacer eso con un controlador de 8 bits. Usted podría comprar algo como un Xport pero que contiene un procesador de 32 bits en su interior.

Para proyectos puntuales, recomendaría siempre un controlador de 32 bits. Tu tiempo es 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 mencionas, probablemente nunca ha habido ni habrá máquinas de este tipo. Desde el punto de vista arquitectónico, es más sensato utilizar anchos de bits que sean potencias de 2.

1voto

Alex Andronov Puntos 178

El tamaño de los bits de una CPU está relacionado con algunas características que generalmente van juntas:

  1. El mayor tamaño del operando sobre el que puede operar el grueso del conjunto de instrucciones
  2. El tamaño de la mayoría de sus registros de propósito general
  3. El tamaño del mayor bus disponible que puede mover datos entre los registros de propósito general y la memoria
  4. El tamaño del mayor bus disponible que puede mover datos entre los registros de propósito 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 parte de su conjunto de instrucciones, y requiere ciclos adicionales para casi todas las instrucciones que operan con cantidades de 16 bits (la única excepción es EX DE,HL); es una CPU de 8 bits. Algo como el 68008, sin embargo, no puede describirse muy bien utilizando sólo una N tiene un conjunto de instrucciones que puede operar principalmente con cantidades de 32 bits, y puede mover datos entre registros de 32 bits a la vez, pero su ALU primaria es de sólo 16 bits, y su bus de memoria es de sólo 8 bits. Dependiendo de lo que se mida, podría considerarse una CPU de 32, 16 u 8 bits.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X