Articulo de referencia

Microcontrolador

El chip es un Intel 8742, un microcontrolador de 8 bits que incluye una CPU que funciona a 12 MHz, 128 bytes de RAM , 2048 bytes de EPROM y E/S en el mismo chip. Dos microcontro...

El chip es un Intel 8742, un microcontrolador de 8 bits que incluye una CPU que funciona a 12 MHz, 128 bytes de RAM , 2048 bytes de EPROM y E/S en el mismo chip.
Dos microcontroladores ATmega

Un microcontrolador ( MC , uC o μC ) o unidad de microcontrolador ( MCU ) es un pequeño ordenador integrado en un único circuito . Un microcontrolador contiene uno o más núcleos de procesador, junto con memoria y periféricos de entrada/salida programables . También suele incluir memoria de programa en forma de memoria flash NOR , ROM OTP o RAM ferroeléctrica , así como una pequeña cantidad de RAM . Los microcontroladores están diseñados para aplicaciones embebidas , a diferencia de los microprocesadores utilizados en ordenadores personales u otras aplicaciones de propósito general que constan de varios chips discretos.

En la terminología moderna, un microcontrolador es similar a un sistema en un chip (SoC) , pero menos sofisticado . Un SoC puede incluir un microcontrolador como uno de sus componentes, pero generalmente lo integra con periféricos avanzados como una unidad de procesamiento gráfico (GPU), un módulo Wi-Fi o uno o más coprocesadores .

Los microcontroladores se utilizan en productos y dispositivos de control automático , como sistemas de control de motores de automóviles, dispositivos médicos implantables, controles remotos, máquinas de oficina, electrodomésticos, herramientas eléctricas, juguetes y otros sistemas embebidos . Al reducir el tamaño y el costo en comparación con un diseño que utiliza un microprocesador , memoria y dispositivos de entrada/salida separados, los microcontroladores hacen que el control digital de más dispositivos y procesos sea práctico. Los microcontroladores de señal mixta son comunes, ya que integran los componentes analógicos necesarios para controlar sistemas electrónicos no digitales. En el contexto del Internet de las cosas , los microcontroladores son un medio económico y popular para la recopilación de datos , la detección y la actuación en el mundo físico como dispositivos periféricos .

Algunos microcontroladores pueden usar palabras de cuatro bits y operar a frecuencias tan bajas como 4 kHz para un bajo consumo de energía ( milivatios o microvatios de un solo dígito ). Generalmente, tienen la capacidad de mantener su funcionalidad mientras esperan un evento , como la pulsación de un botón u otra interrupción ; el consumo de energía en modo de reposo (con el reloj de la CPU y la mayoría de los periféricos apagados) puede ser de tan solo nanovatios, lo que los hace muy adecuados para aplicaciones con baterías de larga duración. Otros microcontroladores pueden desempeñar funciones críticas para el rendimiento, donde pueden necesitar actuar más como un procesador de señal digital (DSP), con velocidades de reloj y consumo de energía más altos.

Historia

Fondo

Los primeros microprocesadores multichip, el Four-Phase Systems AL1 en 1969 y el Garrett AiResearch MP944 en 1970, se desarrollaron con múltiples chips MOS LSI. El primer microprocesador de un solo chip fue el Intel 4004 , lanzado en un solo chip MOS LSI en 1971. Fue desarrollado por Federico Faggin , utilizando su tecnología MOS de puerta de silicio , junto con los ingenieros de Intel Marcian Hoff y Stan Mazor , y el ingeniero de Busicom Masatoshi Shima . [ 1 ] Le siguieron el Intel 4040 de 4 bits , el Intel 8008 de 8 bits y el Intel 8080 de 8 bits . Todos estos procesadores requerían varios chips externos para implementar un sistema funcional, incluyendo chips de memoria e interfaz periférica. Como resultado, el costo total del sistema era de varios cientos de dólares (de la década de 1970), lo que hacía imposible informatizar económicamente los pequeños electrodomésticos.

MOS Technology presentó sus microprocesadores de menos de 100 dólares en 1975, los modelos 6501 y 6502. Su principal objetivo era reducir esta barrera de costos, pero estos microprocesadores aún requerían soporte externo, memoria y chips periféricos, lo que mantenía el costo total del sistema en cientos de dólares.

Desarrollo

Un libro atribuye a los ingenieros de TI, Gary Boone y Michael Cochran, la exitosa creación del primer microcontrolador en 1971. El resultado de su trabajo fue el TMS 1000 , que se comercializó en 1974. Combinaba memoria de solo lectura, memoria de lectura/escritura, procesador y reloj en un solo chip y estaba destinado a sistemas embebidos. [ 2 ]

Durante la primera mitad de la década de 1970, los fabricantes japoneses de productos electrónicos comenzaron a producir microcontroladores para automóviles, incluidos MCU de 4 bits para entretenimiento en el automóvil , limpiaparabrisas automáticos, cerraduras electrónicas y tablero, y MCU de 8 bits para control del motor. [ 3 ]

En parte como respuesta a la existencia del microcontrolador TMS 1000 , [ 4 ] Intel desarrolló un sistema informático en un chip optimizado para aplicaciones de control, el Intel 8048 , cuyas primeras unidades comerciales se enviaron en 1977. [ 4 ] Combinaba RAM y ROM en el mismo chip con un microprocesador. Entre numerosas aplicaciones, este chip llegaría a formar parte de más de mil millones de teclados de PC. En aquel entonces, el presidente de Intel, Luke J. Valenter, afirmó que el microcontrolador era uno de los productos más exitosos en la historia de la compañía y amplió el presupuesto de la división de microcontroladores en más del 25 %.

Diversos microcontroladores PIC con EPROM integrada
Microcontrolador Piggyback de MOSTEK

La mayoría de los microcontroladores de la época tenían variantes concurrentes. Una de ellas tenía memoria de programa EPROM , con una ventana de cuarzo transparente en la tapa del encapsulado que permitía borrarla mediante exposición a luz ultravioleta . Estos chips borrables se usaban a menudo para la creación de prototipos. La otra variante era una ROM programable por máscara o una PROM programable solo una vez. Para esta última, a veces se usaba la designación OTP , que significaba "programable una sola vez". En un microcontrolador OTP, la PROM solía ser del mismo tipo que la EPROM, pero el encapsulado del chip no tenía ventana de cuarzo; al no haber forma de exponer la EPROM a la luz ultravioleta, no se podía borrar. Debido a que las versiones borrables requerían encapsulados cerámicos con ventanas de cuarzo, eran significativamente más caras que las versiones OTP, que podían fabricarse en encapsulados de plástico opaco de menor costo. Para las variantes borrables, se requería cuarzo, en lugar de vidrio, más económico, por su transparencia a la luz ultravioleta (a la que el vidrio es en gran medida opaco), pero el principal factor de diferenciación de costo era el propio encapsulado cerámico. También se utilizaron microcontroladores piggyback . [ 5 ] [ 6 ] [ 7 ]

En 1993, la introducción de la memoria EEPROM permitió borrar eléctricamente los microcontroladores (comenzando con el Microchip PIC16C84 ) [ 8 ] rápidamente sin un encapsulado costoso como el requerido para la EPROM , lo que permitió tanto la creación rápida de prototipos como la programación en el sistema . (La tecnología EEPROM ya estaba disponible antes de este momento, [ 9 ] pero la EEPROM anterior era más cara y menos duradera, lo que la hacía inadecuada para microcontroladores de bajo costo producidos en masa). Ese mismo año, Atmel presentó el primer microcontrolador que utilizaba memoria Flash , un tipo especial de EEPROM. [ 10 ] Otras compañías rápidamente siguieron el ejemplo, con ambos tipos de memoria.

Hoy en día, los microcontroladores son baratos y están fácilmente disponibles para los aficionados, y existen grandes comunidades en línea en torno a determinados procesadores.

Volumen y costo

En 2002, alrededor del 55% de todas las CPU vendidas en el mundo eran microcontroladores y microprocesadores de 8 bits. [ 11 ]

En 1997 se vendieron más de dos mil millones de microcontroladores de 8 bits, [ 12 ] y según Semico, en 2006 se vendieron más de cuatro mil millones de microcontroladores de 8 bits. [ 13 ] Más recientemente, Semico afirmó que el mercado de MCU creció un 36,5% en 2010 y un 12% en 2011. [ 14 ]

En un hogar típico de un país desarrollado, es probable que solo haya cuatro microprocesadores de uso general, pero alrededor de tres docenas de microcontroladores. Un automóvil típico de gama media tiene aproximadamente 30 microcontroladores. También se pueden encontrar en muchos electrodomésticos, como lavadoras, hornos microondas y teléfonos.

Históricamente, el segmento de 8 bits ha dominado el mercado de MCU [...] Los microcontroladores de 16 bits se convirtieron en la categoría de MCU de mayor volumen en 2011, superando a los dispositivos de 8 bits por primera vez ese año [...] IC Insights cree que la composición del mercado de MCU experimentará cambios sustanciales en los próximos cinco años con los dispositivos de 32 bits acaparando de manera constante una mayor participación en ventas y volúmenes de unidades. Para 2017, se espera que los MCU de 32 bits representen el 55% de las ventas de microcontroladores [...] En términos de volúmenes de unidades, se espera que los MCU de 32 bits representen el 38% de los envíos de microcontroladores en 2017, mientras que los dispositivos de 16 bits representarán el 34% del total, y se prevé que los diseños de 4/8 bits sean el 28% de las unidades vendidas ese año. Se prevé que el mercado de microcontroladores de 32 bits crezca rápidamente debido a la creciente demanda de mayor precisión en los sistemas de procesamiento integrados y al aumento de la conectividad a través de Internet. [...] En los próximos años, se espera que los microcontroladores complejos de 32 bits representen más del 25 % de la capacidad de procesamiento en los vehículos.

IC Insights, Mercado de MCU en la ruta de migración a dispositivos de 32 bits y basados ​​en ARM [ 15 ]

El coste de fabricación puede ser inferior a 0,10 dólares estadounidenses por unidad.

El costo se ha desplomado con el tiempo, y los microcontroladores de 8 bits más baratos estaban disponibles por menos de US$0,03 en 2018, [ 16 ] y algunos microcontroladores de 32 bits alrededor de US$1 para cantidades similares.

En 2012, tras una crisis global —la peor caída y recuperación anual de ventas jamás registrada y un desplome interanual del precio medio de venta del 17 %— la mayor reducción desde la década de 1980— el precio medio de un microcontrolador era de 0,88 dólares estadounidenses ( 0,69 dólares para 4/8 bits, 0,59 dólares para 16 bits y 1,76 dólares para 32 bits). [ 15 ]

En 2012, las ventas mundiales de microcontroladores de 8 bits rondaron los 4.000 millones de dólares estadounidenses , mientras que los microcontroladores de 4 bits también registraron ventas significativas. [ 17 ]

En 2015, los microcontroladores de 8 bits se podían comprar por US$0,311 (1000 unidades), [ 18 ] los de 16 bits por US$0,385 (1000 unidades), [ 19 ] y los de 32 bits por US$0,378 (1000 unidades, pero a US$0,35 por 5000). [ 20 ]

En 2018, los microcontroladores de 8 bits se podían comprar por US$0,03 , [ 16 ] los de 16 bits por US$0,393 (1000 unidades, pero a US$0,563 por 100 o US$0,349 por un rollo completo de 2000), [ 21 ] y los de 32 bits por US$0,503 (1000 unidades, pero a US$0,466 por 5000). [ 22 ]

En 2018, los microcontroladores de bajo precio mencionados anteriormente en 2015 eran todos más caros (con la inflación calculada entre los precios de 2018 y 2015 para esas unidades específicas): el microcontrolador de 8 bits se podía comprar por US$0,319 (1000 unidades) o un 2,6 % más, [ 18 ] el de 16 bits por US$0,464 (1000 unidades) o un 21 % más, [ 19 ] y el de 32 bits por US$0,503 (1000 unidades, pero a US$0,466 por 5000) o un 33 % más. [ 20 ]

Un microcontrolador PIC 18F8720 en un encapsulado TQFP de 80 pines .

La computadora más pequeña

El 21 de junio de 2018, la Universidad de Michigan anunció el "ordenador más pequeño del mundo" . El dispositivo es un "0,04 mm 3 Sistema de sensor inalámbrico y sin batería de 16 nW  con procesador Cortex-M0+ integrado y comunicación óptica para la medición de la temperatura celular." "Mide solo0,3  mm por lado, empequeñecido por un grano de arroz. [...] Además de la RAM y los paneles fotovoltaicos , los nuevos dispositivos informáticos tienen procesadores y transmisores y receptores inalámbricos . Debido a que son demasiado pequeños para tener antenas de radio convencionales, reciben y transmiten datos con luz visible. Una estación base proporciona luz para la alimentación y la programación, y recibe los datos." [ 23 ] El dispositivo es 1/10 del tamaño de la computadora que IBM afirmó haber alcanzado el récord mundial de tamaño meses atrás en marzo de 2018, [ 24 ] que es "más pequeña que un grano de sal", [ 25 ] tiene un millón de transistores, cuesta menos de $0,10 fabricar y, combinado con la tecnología blockchain , está destinado a la logística y a los "criptoanclajes" ( aplicaciones de huella digital) . [ 26 ]

Diseño integrado

Un microcontrolador puede considerarse un sistema autónomo con procesador, memoria y periféricos, y puede utilizarse como sistema embebido . [ 27 ] La mayoría de los microcontroladores que se utilizan hoy en día están integrados en otras máquinas, como automóviles, teléfonos, electrodomésticos y periféricos para sistemas informáticos.

Si bien algunos sistemas embebidos son muy sofisticados, muchos requieren una cantidad mínima de memoria y longitud de programa, carecen de sistema operativo y presentan una baja complejidad de software. Los dispositivos de entrada y salida típicos incluyen interruptores, relés , solenoides , LED , pantallas de cristal líquido pequeñas o personalizadas , dispositivos de radiofrecuencia y sensores para datos como temperatura, humedad, nivel de luz, etc. Los sistemas embebidos generalmente no cuentan con teclado, pantalla, discos, impresoras ni otros dispositivos de E/S reconocibles de una computadora personal , y pueden carecer de cualquier tipo de dispositivo de interacción humana.

Interrumpe

Los microcontroladores deben proporcionar una respuesta en tiempo real (predecible, aunque no necesariamente rápida) a los eventos del sistema embebido que controlan. Cuando ocurren ciertos eventos, un sistema de interrupciones puede indicar al procesador que suspenda el procesamiento de la secuencia de instrucciones actual e inicie una rutina de servicio de interrupción (ISR, o "manejador de interrupciones"), que realizará el procesamiento necesario en función del origen de la interrupción, antes de retomar la secuencia de instrucciones original. Las posibles fuentes de interrupción dependen del dispositivo y suelen incluir eventos como el desbordamiento de un temporizador interno, la finalización de una conversión analógica-digital, un cambio de nivel lógico en una entrada (por ejemplo, al pulsar un botón) y la recepción de datos en un enlace de comunicación. En dispositivos con batería, donde el consumo de energía es importante, las interrupciones también pueden despertar a un microcontrolador de un estado de bajo consumo en el que el procesador se detiene hasta que un evento periférico lo requiera para realizar alguna acción.

Programas

Por lo general, los programas de los microcontroladores deben caber en la memoria integrada disponible, ya que sería costoso dotar al sistema de memoria externa ampliable. Se utilizan compiladores y ensambladores para convertir el código de alto nivel y el código ensamblador en un código máquina compacto que se almacena en la memoria del microcontrolador. Según el dispositivo, la memoria de programa puede ser permanente y de solo lectura , programable únicamente en fábrica, o bien memoria flash modificable en campo o memoria de solo lectura borrable.

Los fabricantes solían producir versiones especiales de sus microcontroladores para facilitar el desarrollo de hardware y software del sistema objetivo. Originalmente, estas incluían versiones EPROM con una ventana en la parte superior que permitía borrar la memoria de programa mediante luz ultravioleta , dejándola lista para la reprogramación tras un ciclo de programación (grabación) y prueba. Desde 1998, las versiones EPROM son poco comunes y han sido reemplazadas por EEPROM y memoria flash, que son más fáciles de usar (se pueden borrar electrónicamente) y más económicas de fabricar.

Es posible que existan otras versiones en las que se acceda a la ROM como un dispositivo externo en lugar de como memoria interna; sin embargo, estas son cada vez más raras debido a la amplia disponibilidad de programadores de microcontroladores económicos.

El uso de dispositivos programables en campo en un microcontrolador permite actualizar el firmware en el terreno o realizar revisiones tardías en fábrica de productos ensamblados pero aún no enviados. La memoria programable también reduce el tiempo de desarrollo necesario para la implementación de un nuevo producto.

Cuando se requieren cientos de miles de dispositivos idénticos, utilizar piezas programadas en el momento de la fabricación puede resultar económico. Estas piezas , con programación mediante máscara , tienen el programa grabado de la misma manera que la lógica del chip, y al mismo tiempo.

Un microcontrolador personalizado incorpora un bloque de lógica digital que puede personalizarse para añadir capacidad de procesamiento, periféricos e interfaces adaptados a las necesidades de la aplicación. Un ejemplo es el AT91CAP de Atmel .

Otras características del microcontrolador

Los microcontroladores suelen contener desde varias hasta decenas de pines de entrada/salida de propósito general ( GPIO ). Estos pines se pueden configurar por software para funcionar como entrada o salida. Cuando se configuran como entrada, se utilizan para leer sensores o señales externas. Cuando se configuran como salida, pueden controlar dispositivos externos, como LED o motores, a menudo de forma indirecta, mediante electrónica de potencia externa.

Muchos sistemas embebidos necesitan leer sensores que generan señales analógicas. Sin embargo, dado que están diseñados para interpretar y procesar datos digitales (unos y ceros), no pueden procesar las señales analógicas que les envía un dispositivo. Por lo tanto, se utiliza un convertidor analógico-digital (ADC) para convertir los datos entrantes a un formato que el procesador pueda reconocer. Una característica menos común en algunos microcontroladores es un convertidor digital-analógico (DAC) que permite al procesador generar señales analógicas o niveles de voltaje.

Además de los convertidores, muchos microprocesadores integrados incluyen diversos temporizadores. Uno de los tipos más comunes es el temporizador de intervalo programable (PIT). Un PIT puede contar hacia atrás desde un valor hasta cero o hasta la capacidad del registro de conteo, desbordándose a cero. Una vez que llega a cero, envía una interrupción al procesador indicando que ha finalizado el conteo. Esto resulta útil para dispositivos como los termostatos, que comprueban periódicamente la temperatura ambiente para determinar si deben encender o apagar el aire acondicionado, la calefacción, etc.

Un bloque de modulación por ancho de pulso (PWM) dedicado permite que la CPU controle convertidores de potencia , cargas resistivas , motores , etc., sin utilizar muchos recursos de la CPU en bucles de temporizador ajustados .

Un bloque de receptor/transmisor asíncrono universal (UART) permite recibir y transmitir datos a través de una línea serie con una carga mínima en la CPU. El hardware dedicado integrado en el chip también suele incluir capacidades para comunicarse con otros dispositivos (chips) en formatos digitales como Inter-Integrated Circuit ( I²C ), Serial Peripheral Interface ( SPI ), Universal Serial Bus ( USB ) y Ethernet . [ 28 ]

Mayor integración

Chip de un microcontrolador CMOS PIC12C508 de 8 bits, totalmente estático, basado en EEPROM / EPROM / ROM , fabricado por Microchip Technology mediante un proceso de 1200 nanómetros.
Chip de un microcontrolador STM32F100C4T6B ARM Cortex-M 3 con 16 kilobytes de memoria flash , unidad central de procesamiento (CPU) de 24 MHz , control de motor y funciones de control de electrónica de consumo (CEC). Fabricado por STMicroelectronics . 

Los microcontroladores pueden no implementar un bus de direcciones o datos externo, ya que integran la memoria RAM y la memoria no volátil en el mismo chip que la CPU. Al utilizar menos pines, el chip se puede colocar en un encapsulado mucho más pequeño y económico.

Integrar la memoria y otros periféricos en un solo chip y probarlos como una unidad aumenta el costo de dicho chip, pero a menudo reduce el costo total del sistema embebido. Incluso si el costo de una CPU con periféricos integrados es ligeramente superior al de una CPU con periféricos externos, tener menos chips generalmente permite una placa de circuito impreso más pequeña y económica, reduce la mano de obra necesaria para su ensamblaje y prueba, y tiende a disminuir la tasa de defectos en el producto final.

Un microcontrolador es un circuito integrado único , que generalmente presenta las siguientes características:

Esta integración reduce drásticamente la cantidad de chips, el cableado y el espacio en la placa de circuito impreso necesarios para producir sistemas equivalentes con chips separados. Además, especialmente en dispositivos con pocos pines, cada pin puede conectarse a varios periféricos internos, y su función se selecciona mediante software. Esto permite utilizar un componente en una mayor variedad de aplicaciones que si los pines tuvieran funciones específicas.

Los microcontroladores han demostrado ser muy populares en los sistemas embebidos desde su introducción en la década de 1970.

Algunos microcontroladores utilizan una arquitectura Harvard : buses de memoria separados para instrucciones y datos, lo que permite accesos simultáneos. Cuando se utiliza una arquitectura Harvard, las palabras de instrucción para el procesador pueden tener un tamaño de bits diferente al de la memoria interna y los registros; por ejemplo: instrucciones de 12 bits utilizadas con registros de datos de 8 bits.

La decisión sobre qué periférico integrar suele ser difícil. Los proveedores de microcontroladores a menudo priorizan las frecuencias de operación y la flexibilidad de diseño del sistema frente a los plazos de comercialización exigidos por sus clientes y un menor coste total del sistema. Los fabricantes deben encontrar el equilibrio entre minimizar el tamaño del chip y añadir funcionalidades.

Las arquitecturas de microcontroladores varían ampliamente. Algunos diseños incluyen núcleos de microprocesador de propósito general, con una o más funciones de ROM, RAM o E/S integradas en el encapsulado. Otros diseños están específicamente creados para aplicaciones de control. El conjunto de instrucciones de un microcontrolador suele tener muchas instrucciones destinadas a la manipulación de bits (operaciones bit a bit) para hacer que los programas de control sean más compactos. [ 29 ] Por ejemplo, un procesador de propósito general podría requerir varias instrucciones para comprobar un bit en un registro y realizar una bifurcación si el bit está activado, mientras que un microcontrolador podría tener una sola instrucción para proporcionar esa función comúnmente requerida.

Históricamente, los microcontroladores no han contado con coprocesadores matemáticos , por lo que la aritmética de punto flotante se ha realizado mediante software. Sin embargo, algunos diseños recientes incluyen unidades de punto flotante (FPU) y funciones optimizadas para DSP. Un ejemplo de ello es la línea PIC32 de Microchip, basada en MIPS.

Entornos de programación

Los microcontroladores originalmente se programaban solo en lenguaje ensamblador , pero actualmente también se utilizan comúnmente diversos lenguajes de programación de alto nivel , como C , Python y JavaScript , para su desarrollo en microcontroladores y sistemas embebidos . [ 30 ] Los compiladores para lenguajes de propósito general suelen tener algunas restricciones, así como mejoras para brindar un mejor soporte a las características únicas de los microcontroladores. Algunos microcontroladores cuentan con entornos que facilitan el desarrollo de ciertos tipos de aplicaciones. Los fabricantes de microcontroladores suelen ofrecer herramientas gratuitas para facilitar la adopción de su hardware.

Los microcontroladores con hardware especializado pueden requerir dialectos no estándar de C, como SDCC para el 8051 , lo que impide el uso de herramientas estándar (como bibliotecas de código o herramientas de análisis estático) incluso para código no relacionado con las características del hardware. Los intérpretes también pueden contener características no estándar, como MicroPython , aunque una bifurcación , CircuitPython , ha buscado trasladar las dependencias de hardware a bibliotecas y que el lenguaje se ajuste a un estándar más cercano a CPython .

También hay disponible firmware intérprete para algunos microcontroladores. Por ejemplo, BASIC en el antiguo microcontrolador Intel 8052 ; [ 31 ] BASIC y FORTH en el Zilog Z8 [ 32 ] así como en algunos dispositivos modernos. Normalmente, estos intérpretes admiten programación interactiva .

Existen simuladores para algunos microcontroladores. Estos permiten al desarrollador analizar el comportamiento del microcontrolador y de su programa si utilizara el componente real. Un simulador muestra el estado interno del procesador y de sus salidas, además de permitir la generación de señales de entrada. Si bien la mayoría de los simuladores tienen limitaciones para simular otros componentes de hardware del sistema, permiten experimentar con condiciones difíciles de reproducir en la implementación física y constituyen la forma más rápida de depurar y analizar problemas.

Los microcontroladores modernos suelen integrar circuitos de depuración en el chip que, al ser accedidos por un emulador en circuito (ICE) a través de JTAG , permiten depurar el firmware con un depurador . Un ICE en tiempo real puede permitir visualizar y/o manipular los estados internos durante la ejecución. Un ICE de rastreo puede registrar el programa ejecutado y los estados del microcontrolador antes y después de un punto de activación.

Tipos

A partir de 2008Existen varias docenas de arquitecturas y proveedores de microcontroladores, entre los que se incluyen:

Resumen AIR1 E205: MAX32550
MicroTik RB260GS r2: STM32F107RBT6

Existen muchos otros, algunos de los cuales se utilizan en un rango muy limitado de aplicaciones o se asemejan más a procesadores de aplicaciones que a microcontroladores. El mercado de microcontroladores está extremadamente fragmentado, con numerosos proveedores, tecnologías y mercados. Cabe destacar que muchos proveedores venden o han vendido múltiples arquitecturas.

Latencia de interrupción

A diferencia de las computadoras de propósito general, los microcontroladores utilizados en sistemas embebidos suelen priorizar la latencia de interrupción sobre el rendimiento de las instrucciones. Entre los desafíos se encuentran la reducción de la latencia y su mayor previsibilidad (para permitir el control en tiempo real).

Cuando un dispositivo electrónico provoca una interrupción, durante el cambio de contexto los resultados intermedios (registros) deben guardarse antes de que el software responsable de gestionar la interrupción pueda ejecutarse. También deben restaurarse una vez finalizado el controlador de interrupciones . Si hay más registros del procesador , este proceso de guardado y restauración puede tardar más tiempo, aumentando la latencia. (Si una ISR no requiere el uso de algunos registros, puede simplemente dejarlos intactos en lugar de guardarlos y restaurarlos, por lo que en ese caso esos registros no están involucrados en la latencia). Las formas de reducir dicha latencia de contexto/restauración incluyen tener relativamente pocos registros en sus unidades centrales de procesamiento (indeseable porque ralentiza sustancialmente la mayoría del procesamiento que no es de interrupción), o al menos que el hardware no los guarde todos (esto falla si el software luego necesita compensar guardando el resto "manualmente"). Otra técnica consiste en emplear puertas de silicio en "registros sombra": uno o más registros duplicados utilizados solo por el software de interrupción, que tal vez admitan una pila dedicada.

Otros factores que afectan la latencia de interrupción incluyen:

  • Ciclos necesarios para completar las actividades actuales de la CPU. Para minimizar estos costos, los microcontroladores suelen tener pipelines cortos (a menudo de tres instrucciones o menos), búferes de escritura pequeños y garantizan que las instrucciones más largas sean continuables o reiniciables. Los principios de diseño RISC aseguran que la mayoría de las instrucciones requieran el mismo número de ciclos, lo que ayuda a evitar la necesidad de la mayor parte de esta lógica de continuación/reinicio.
  • La duración de cualquier sección crítica que deba interrumpirse. El acceso a una sección crítica restringe el acceso concurrente a las estructuras de datos. Cuando un controlador de interrupciones debe acceder a una estructura de datos, la sección crítica debe bloquear dicha interrupción. Por consiguiente, la latencia de interrupción aumenta en la misma medida en que la interrupción permanece bloqueada. Cuando existen restricciones externas estrictas sobre la latencia del sistema, los desarrolladores suelen necesitar herramientas para medir las latencias de interrupción e identificar qué secciones críticas provocan ralentizaciones.
    • Una técnica común consiste simplemente en bloquear todas las interrupciones durante la duración de la sección crítica. Esto es fácil de implementar, pero a veces las secciones críticas se vuelven excesivamente largas.
    • Una técnica más compleja simplemente bloquea las interrupciones que podrían activar el acceso a esa estructura de datos. Esto suele basarse en prioridades de interrupción, que tienden a no coincidir con las estructuras de datos relevantes del sistema. Por consiguiente, esta técnica se utiliza principalmente en entornos con recursos muy limitados.
    • Los procesadores pueden contar con soporte de hardware para algunas secciones críticas. Algunos ejemplos incluyen el soporte para el acceso atómico a bits o bytes dentro de una palabra, u otras primitivas de acceso atómico como las primitivas de acceso exclusivo LDREX/STREX introducidas en la arquitectura ARMv6 .
  • Anidamiento de interrupciones. Algunos microcontroladores permiten que las interrupciones de mayor prioridad interrumpan a las de menor prioridad. Esto permite que el software gestione la latencia dando mayor prioridad (y, por lo tanto, menor y más predecible) a las interrupciones críticas que a las menos críticas.
  • Frecuencia de activación. Cuando se producen interrupciones consecutivas, los microcontroladores pueden evitar un ciclo adicional de guardado/restauración de contexto mediante una forma de optimización de llamadas de cola .

Los microcontroladores de gama baja tienden a admitir menos controles de latencia de interrupción que los de gama alta.

Tecnología de memoria

En los microcontroladores se suelen utilizar dos tipos diferentes de memoria: una memoria no volátil para almacenar el firmware y una memoria de lectura/escritura para datos temporales.

Datos

Desde los primeros microcontroladores hasta la actualidad, la memoria SRAM de seis transistores se utiliza casi siempre como memoria de trabajo de lectura/escritura, con algunos transistores más por bit utilizados en el banco de registros .

Además de la SRAM, algunos microcontroladores también tienen EEPROM y/o NVRAM internas para el almacenamiento de datos; y aquellos que no tienen ninguna (como el BASIC Stamp ), o donde la memoria interna es insuficiente, a menudo se conectan a un chip de memoria flash o EEPROM externo.

Algunos microcontroladores a partir de 2003 tienen memoria flash "autoprogramable". [ 10 ]

Firmware

Los primeros microcontroladores utilizaban memoria ROM de máscara para almacenar el firmware . Los microcontroladores posteriores (como las primeras versiones del Freescale 68HC11 y los primeros microcontroladores PIC ) tenían memoria EPROM , que utilizaba una ventana translúcida para permitir el borrado mediante luz ultravioleta, mientras que las versiones de producción no tenían dicha ventana, siendo OTP (programables una sola vez). Las actualizaciones de firmware equivalían a reemplazar el propio microcontrolador, por lo que muchos productos no eran actualizables.

El Motorola MC68HC805 [ 9 ] fue el primer microcontrolador en utilizar EEPROM para almacenar el firmware. Los microcontroladores con EEPROM se popularizaron en 1993 cuando Microchip presentó el PIC16C84 [ 8 ] y Atmel presentó un microcontrolador con núcleo 8051 que fue el primero en utilizar memoria flash NOR para almacenar el firmware. [ 10 ] Hoy en día, casi todos los microcontroladores utilizan memoria flash, con algunos modelos que utilizan FRAM y algunos componentes de ultrabajo costo que aún utilizan OTP o ROM de máscara.

Véase también

Referencias

  1. "1971: El microprocesador integra la función de la CPU en un solo chip" . The Silicon Engine . Museo de Historia de la Computación . Consultado el 22 de julio de 2019 .
  2. Augarten, Stan (1983). «El ordenador en un chip más utilizado: el TMS 1000» . Estado del arte: una historia fotográfica del circuito integrado . New Haven y Nueva York: Ticknor & Fields. ISBN 978-0-89919-195-9Archivado del original el 17 de febrero de 2010. Consultado el 23 de diciembre de 2009 .
  3. "Tendencias en la industria de semiconductores" . Museo de Historia de Semiconductores de Japón . Archivado del original el 27 de junio de 2019. Consultado el 27 de junio de 2019 .
  4. 1 2 "Panel de historia oral sobre el desarrollo y la promoción del microcontrolador Intel 8048" (PDF) . Historia oral del Museo de Historia de la Computación, 2008. pág. 4. Recuperado el 4 de abril de 2016 . 
  5. "OKI Intel M85C154 Piggyback Microcontroller" . industrialalchemy.org . Consultado el 8 de diciembre de 2024 .
  6. "CPU del día: NS87P50R-6: CPUs piggyback" . cpushack.com . 6 de marzo de 2011. Consultado el 8 de diciembre de 2024 .
  7. "Microcontroladores Piggyback" . allisdiy.com . Consultado el 8 de diciembre de 2024 .
  8. 1 2 "Salón de la Fama de los Chips: Microcontrolador PIC 16C84 de Microchip Technology" . IEEE. 30 de junio de 2017. Consultado el 16 de septiembre de 2018 .
  9. 1 2 Motorola. Información anticipada, microcomputadoras de 8 bits MC68HC05B6, MC68HC05B4, MC68HC805B6, documento Motorola EADI0054RI . Motorola Ltd., 1988.
  10. 1 2 3 Odd Jostein Svendsli (2003). "Microcontroladores Flash Autoprogramables de Atmel" (PDF) . Recuperado el 18 de junio de 2024 .
  11. Turley, Jim (2002). "La solución del dos por ciento" . Embedded . Recuperado el 11 de julio de 2018 .
  12. Cantrell, Tom (1998). "Microchip en marcha" . Circuit Cellar . Archivado del original el 27 de septiembre de 2007. Recuperado el 11 de julio de 2018 .
  13. "Semico Research" .
  14. "El impulso lleva a los MCU a 2011 | Semico Research" . semico.com . Consultado el 11 de julio de 2018 .
  15. 1 2 "MCU Market on Migration Path to 32-bit and ARM-based Devices" . 25 de abril de 2013. Archivado del original el 7 de julio de 2014. Normalmente se necesita una recesión económica mundial para perturbar el diverso mercado de MCU, y eso es exactamente lo que ocurrió en 2009, cuando el negocio de los microcontroladores sufrió su peor caída anual de ventas de la historia, del 22%, hasta los 11.100 millones de dólares.
  16. 1 2 "MCU de muy bajo costo" . www.additude.se . Archivado del original el 3 de agosto de 2020. Consultado el 16 de enero de 2019 .
  17. Bill Giovino (7 de junio de 2013). "Zilog compra líneas de productos de microcontroladores a Samsung" .
  18. 1 2 "EFM8BB10F2G-A-QFN20 Silicon Labs | Mouser" .
  19. 1 2 "MSP430G2001IPW14R Texas Instruments | Mouser" .
  20. 1 2 "CY8C4013SXI-400 Cypress Semiconductor | Mouser" . Mouser Electronics . Archivado del original el 18 de febrero de 2015.
  21. "MSP430FR2000IPW16R Texas Instruments | Mouser" .
  22. "CY8C4013SXI-400 Cypress Semiconductor | Mouser" . Mouser Electronics . Consultado el 11 de julio de 2018 .
  23. Investigadores de la Universidad de Michigan crean la 'computadora' más pequeña del mundo.Universidad de Michigan , 21 de junio de 2018
  24. La Universidad de Michigan supera a IBM con la 'computadora' más pequeña del mundo.CNET , 22 de junio de 2018
  25. IBM combate a los falsificadores con el ordenador más pequeño del mundo , CNET , 19 de marzo de 2018
  26. IBM construyó una computadora del tamaño de un grano de sal. Aquí te contamos para qué sirve. , Fortune , 19 de marzo de 2018
  27. Heath, Steve (2003). Diseño de sistemas embebidos . Serie EDN para ingenieros de diseño (2.ª ed.). Newnes. págs. 11-12 . ISBN   9780750655460.
  28. David Harris y Sarah Harris (2012). Diseño digital y arquitectura informática, segunda edición , pág. 515. Morgan Kaufmann. ISBN 0123944244.
  29. "Manera fácil de construir un proyecto con microcontrolador" . 14 de enero de 2009.
  30. Mazzei, Daniele; Montelisciani, Gabriele; Baldi, Giacomo; Fantoni, Gualtiero (2015). "Cambiando el paradigma de programación para sistemas embebidos en el dominio IoT". 2015 IEEE 2nd World Forum on Internet of Things (WF-IoT) . Internet of Things (WF-IoT), 2015 IEEE 2nd World Forum on. Milán: IEEE. pp. 239–244 . doi : 10.1109/WF-IoT.2015.7389059 . ISBN  978-1-5090-0366-2.
  31. Jan Axelson (1994). "8052-Microcontroladores básicos" .
  32. Edwards, Robert (1987). Optimización del microcontrolador Zilog Z8 Forth para prototipado rápido (PDF) (Informe técnico). Martin Marietta. pág. 3. Archivado del original (PDF) el 24 de enero de 2023. 
  33. www.infineon.com/mcu
Obtenido de " https://en.wikipedia.org/w/index.php?title=Microcontroller&oldid=1359966673 "