De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda
El dado de 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 ( MCU para unidad de microcontrolador ) es una pequeña computadora en un solo chip de circuito integrado (IC) de semiconductor de óxido de metal (MOS) . Un microcontrolador contiene una o más CPU ( núcleos de procesador ) junto con memoria y periféricos de entrada / salida programables . La memoria de programa en forma de RAM ferroeléctrica , flash NOR o ROM OTP también se incluye a menudo en el chip, así como una pequeña cantidad de RAM . Los microcontroladores están diseñados para sistemas integradosaplicaciones, en contraste con los microprocesadores usados ​​en computadoras personales u otras aplicaciones de propósito general que consisten en varios chips discretos.

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

Los microcontroladores se utilizan en productos y dispositivos controlados automáticamente , 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 integrados . 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 sea económico controlar digitalmente aún más dispositivos y procesos. Los microcontroladores de señal mixta son comunes e integran 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 de recopilación de datos., detectando y actuando el mundo físico como dispositivos de borde .

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 ). Por lo general, tienen la capacidad de conservar la funcionalidad mientras esperan un evento , como presionar un botón u otra interrupción ; El consumo de energía mientras se duerme (el reloj de la CPU y la mayoría de los periféricos apagados) puede ser de solo nanovatios, lo que hace que muchos de ellos sean adecuados para aplicaciones de batería de larga duración. Otros microcontroladores pueden cumplir 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 [ editar ]

Antecedentes [ editar ]

Los orígenes tanto del microprocesador como del microcontrolador se remontan a la invención del MOSFET (transistor de efecto de campo semiconductor de óxido metálico), también conocido como transistor MOS. [2] Fue inventado por Mohamed M. Atalla y Dawon Kahng en Bell Labs en 1959, y se demostró por primera vez en 1960. [3] El mismo año, Atalla propuso el concepto del circuito integrado MOS , que era un chip de circuito integrado fabricado de los MOSFET. [4] En 1964, los chips MOS habían alcanzado una mayor densidad de transistores.y menores costos de fabricación que los chips bipolares . Los chips MOS aumentaron aún más en complejidad a un ritmo predicho por la ley de Moore , lo que llevó a la integración a gran escala (LSI) con cientos de transistores en un solo chip MOS a fines de la década de 1960. La aplicación de chips MOS LSI a la informática fue la base de los primeros microprocesadores, ya que los ingenieros comenzaron a reconocer que un procesador de computadora completo podía estar contenido en un solo chip MOS LSI. [2]

Los primeros microprocesadores multichip , el Four-Phase Systems AL1 en 1969 y el Garrett AiResearch MP944 en 1970, se desarrollaron con varios 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 . [5] Le siguió el Intel 4040 de 4 bits , el de 8 bits Intel 8008 e Intel 8080 de 8 bits . Todos estos procesadores requieren varios chips externos para implementar un sistema de trabajo, incluidos los chips de interfaz de memoria y periféricos. Como resultado, el costo total del sistema fue de varios cientos de dólares (de la década de 1970), lo que imposibilitó la informatización económica de pequeños electrodomésticos. MOS Technology introdujo microprocesadores de menos de $ 100, 6501 y 6502 , con el objetivo principal de abordar este obstáculo económico, pero estos microprocesadores aún requerían soporte externo, memoria y chips periféricos que mantuvieron el costo total del sistema en cientos de dólares.

Desarrollo [ editar ]

Un libro acredita a los ingenieros de TI Gary Boone y Michael Cochran con la creación exitosa 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 chip y estaba dirigido a sistemas integrados. [6]

Desde principios hasta mediados de la década de 1970, los fabricantes de productos electrónicos japoneses 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. [7]

En parte como respuesta a la existencia del TMS 1000 de un solo chip, [8] Intel desarrolló un sistema informático en un chip optimizado para aplicaciones de control, el Intel 8048 , con piezas comerciales que se enviaron por primera vez en 1977. [8] Combinó RAM y ROM en el mismo chip con un microprocesador. Entre numerosas aplicaciones, este chip eventualmente llegaría a más de mil millones de teclados de PC. En ese momento, el presidente de Intel, Luke J. Valenter, declaró que el microcontrolador era uno de los productos más exitosos en la historia de la empresa y amplió el presupuesto de la división de microcontroladores en más de un 25%.

La mayoría de los microcontroladores en este momento tenían variantes concurrentes. Uno tenía memoria de programa EPROM , con una ventana de cuarzo transparente en la tapa del paquete para permitir que se borrara por exposición a la luz ultravioleta . Estos chips borrables se usaban a menudo para la creación de prototipos. La otra variante era una ROM programada con máscara o una PROMvariante que solo era programable una vez. Para este último, a veces se utilizó la designación OTP, que significa "programable una vez". En un microcontrolador OTP, el PROM solía ser del mismo tipo que el EPROM, pero el paquete del chip no tenía ventana de cuarzo; debido a que no había forma de exponer la EPROM a la luz ultravioleta, no se podía borrar. Debido a que las versiones borrables requerían paquetes de cerámica con ventanas de cuarzo, eran significativamente más caras que las versiones OTP, que podían fabricarse en paquetes de plástico opaco de menor costo. Para las variantes borrables, se requería cuarzo, en lugar de vidrio menos costoso, por su transparencia a la luz ultravioleta, para la cual el vidrio es en gran parte opaco, pero el principal diferenciador de costos fue el paquete de cerámica en sí.

En 1993, la introducción de la memoria EEPROM permitió que los microcontroladores (comenzando con el Microchip PIC16C84 ) [9] se borraran eléctricamente rápidamente sin un paquete costoso como se requiere para EPROM , permitiendo tanto la creación rápida de prototipos como la programación en el sistema . (La tecnología EEPROM había estado disponible antes de este tiempo, [10] 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). El mismo año, Atmel presentó el primer microcontrolador que usaba memoria Flash , un tipo especial de EEPROM. [11] Otras empresas siguieron rápidamente su ejemplo, con ambos tipos de memoria.

Hoy en día, los microcontroladores son baratos y están fácilmente disponibles para los aficionados, con grandes comunidades en línea alrededor de ciertos procesadores.

Volumen y costo [ editar ]

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

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

Es probable que un hogar típico en un país desarrollado tenga solo cuatro microprocesadores de propósito general, pero alrededor de tres docenas de microcontroladores. Un automóvil típico de gama media tiene alrededor de 30 microcontroladores. También se pueden encontrar en muchos dispositivos eléctricos 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 de el mercado de MCU sufrirá cambios sustanciales en los próximos cinco años con los dispositivos de 32 bits obteniendo una mayor participación en las ventas y volúmenes unitarios. Para 2017, se espera que las MCU de 32 bits representen el 55% de las ventas de microcontroladores [..] En términos de volúmenes unitarios, se espera que las MCU de 32 bits representen el 38% de los envíos de microcontroladores en 2017, mientras que los dispositivos de 16 bits representarán Se pronostica que el 34% del total, y los diseños de 4/8 bits serán el 28% de las unidades vendidas ese año.Se espera que el mercado de MCU de 32 bits crezca rápidamente debido a la creciente demanda de niveles más altos de precisión en los sistemas de procesamiento integrado y al crecimiento de la conectividad a través de Internet. [..] En los próximos años, se espera que las MCU complejas de 32 bits representen más del 25% de la potencia de procesamiento en los vehículos.

-  IC Insights, MCU Market sobre la ruta de migración a dispositivos de 32 bits y basados ​​en ARM [16]

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

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

En 2012, luego de una crisis mundial, la peor caída y recuperación anual de las ventas y el precio de venta promedio año tras año cayendo un 17%, la mayor reducción desde la década de 1980, el precio promedio de un microcontrolador fue de US $ 0,88 ($ 0,69 para 4 / 8 bits, $ 0.59 para 16 bits, $ 1.76 para 32 bits). [dieciséis]

En 2012, las ventas mundiales de microcontroladores de 8 bits fueron de alrededor de $ 4 mil millones, mientras que los microcontroladores de 4 bits también registraron ventas significativas. [18]

En 2015, los microcontroladores de 8 bits se podían comprar por $ 0.311 (1,000 unidades), [19] 16 bits por $ 0.385 (1,000 unidades), [20] y 32 bits por $ 0.378 (1,000 unidades, pero a $ 0.35 por 5,000). [21]

En 2018, los microcontroladores de 8 bits se pueden comprar por $ 0.03, [17] 16 bits por $ 0.393 (1,000 unidades, pero a $ 0.563 por 100 o $ 0.349 por carrete completo de 2,000), [22] y 32 bits por $ 0.503 (1,000 unidades, pero a $ 0,466 por 5.000). [23] Un microcontrolador de 32 bits de menor precio, en unidades de uno, se puede conseguir por $ 0,891. [24]

En 2018, los microcontroladores de bajo precio anteriores de 2015 son todos más caros (con la inflación calculada entre los precios de 2018 y 2015 para esas unidades específicas) en: el microcontrolador de 8 bits se puede comprar por $ 0.319 (1,000 unidades) o 2.6% más, [19] el de 16 bits por $ 0.464 (1,000 unidades) o 21% más, [20] y el de 32 bits por $ 0.503 (1,000 unidades, pero a $ 0.466 por 5,000) o 33% más. [21]

Un microcontrolador PIC 18F8720 en un paquete TQFP de 80 pines

Computadora más pequeña [ editar ]

El 21 de junio de 2018, la Universidad de Michigan anunció la "computadora más pequeña del mundo" . El dispositivo es un "sistema de sensor inalámbrico y sin batería de 0.04 mm3 16nW con procesador Cortex-M0 + integrado y comunicación óptica para la medición de temperatura celular". "Mide sólo 0,3 mm a un lado, empequeñecido por un grano de arroz. [...] Además de la RAM y la energía fotovoltaica , los nuevos dispositivos informáticos tienen procesadores y transmisores y receptores inalámbricos . Debido a que son demasiado pequeños para tenerlos convencionales antenas de radio, 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 ". [25]El dispositivo es una décima parte del tamaño de la computadora de IBM que supuso un récord mundial en marzo de 2018, [26] que es "más pequeño que un grano de sal", [27] tiene un millón de transistores, cuesta menos de $ 0.10 para fabricar y, combinado con la tecnología blockchain , está destinado a la logística y los "anclajes criptográficos": aplicaciones de huellas digitales digitales . [28]

Diseño incrustado [ editar ]

Un microcontrolador puede considerarse un sistema autónomo con un procesador, memoria y periféricos y puede usarse como un sistema integrado . [29] La mayoría de los microcontroladores que se utilizan en la actualidad están integrados en otra maquinaria, como automóviles, teléfonos, electrodomésticos y periféricos para sistemas informáticos.

Si bien algunos sistemas integrados son muy sofisticados, muchos tienen requisitos mínimos de memoria y duración del programa, sin sistema operativo y de 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 integrados generalmente no tienen teclado, pantalla , discos, impresoras u otros dispositivos de E / S reconocibles de una computadora personal , y pueden carecer de dispositivos de interacción humana de cualquier tipo.

Interrumpe [ editar ]

Los microcontroladores deben proporcionar una respuesta en tiempo real (predecible, aunque no necesariamente rápida) a los eventos en el sistema integrado que están controlando. Cuando ocurren ciertos eventos, un sistema de interrupción puede indicar al procesador que suspenda el procesamiento de la secuencia de instrucciones actual y que comience una rutina de servicio de interrupción.(ISR, o "manejador de interrupciones") que realizará cualquier procesamiento requerido basado en la fuente de la interrupción, antes de regresar a la secuencia de instrucciones original. Las posibles fuentes de interrupción dependen del dispositivo y, a menudo, incluyen eventos como un desbordamiento del temporizador interno, completar una conversión de analógico a digital, un cambio de nivel lógico en una entrada, como cuando se presiona un botón, y datos recibidos en un enlace de comunicación. Cuando el consumo de energía es importante, como en los dispositivos de batería, las interrupciones también pueden despertar a un microcontrolador de un estado de suspensión de bajo consumo en el que el procesador se detiene hasta que un evento periférico requiere que haga algo.

Programas [ editar ]

Por lo general, los programas de microcontroladores deben caber en la memoria disponible en el chip, ya que sería costoso proporcionar un sistema con memoria externa expandible. Los compiladores y ensambladores se utilizan para convertir códigos de lenguaje ensamblador y de alto nivel en un código de máquina compacto para su almacenamiento en la memoria del microcontrolador. Dependiendo del dispositivo, la memoria del programa puede ser una memoria permanente de solo lectura que solo se puede programar en la fábrica, o puede ser una memoria flash modificable en el campo o una memoria borrable de solo lectura.

Los fabricantes a menudo han producido versiones especiales de sus microcontroladores para ayudar al desarrollo de hardware y software del sistema de destino. Originalmente estos incluían versiones EPROM que tienen una "ventana" en la parte superior del dispositivo a través de la cual la memoria del programa puede ser borrada por luz ultravioleta , lista para reprogramarse después de un ciclo de programación ("quemado") y prueba. Desde 1998, las versiones de EPROM son raras y han sido reemplazadas por EEPROM y flash, que son más fáciles de usar (se pueden borrar electrónicamente) y más baratas de fabricar.

Pueden estar disponibles otras versiones en las que se accede a la ROM como un dispositivo externo en lugar de como una memoria interna, sin embargo, estos se están volviendo raros debido a la amplia disponibilidad de programadores de microcontroladores baratos.

El uso de dispositivos programables en campo en un microcontrolador puede permitir la actualización de campo del firmware o permitir revisiones tardías de fábrica a productos que se han ensamblado pero que aún no se han enviado. La memoria programable también reduce el tiempo de espera requerido para la implementación de un nuevo producto.

Cuando se requieren cientos de miles de dispositivos idénticos, el uso de piezas programadas en el momento de la fabricación puede resultar económico. Estas partes de " máscara programada " tienen el programa establecido de la misma manera que la lógica del chip, al mismo tiempo.

Un microcontrolador personalizado incorpora un bloque de lógica digital que se puede personalizar para capacidad de procesamiento adicional, periféricos e interfaces que se adaptan a los requisitos de la aplicación. Un ejemplo es el AT91CAP de Atmel .

Otras características del microcontrolador [ editar ]

Los microcontroladores generalmente contienen de varios a docenas de pines de entrada / salida de propósito general (GPIO). Los pines GPIO son configurables por software para un estado de entrada o salida. Cuando los pines GPIO se configuran en un estado de entrada, a menudo se usan para leer sensores o señales externas. Configurados para el estado de salida, los pines GPIO pueden controlar dispositivos externos como LED o motores, a menudo de forma indirecta, a través de la electrónica de potencia externa.

Muchos sistemas integrados necesitan leer sensores que producen señales analógicas. Este es el propósito del convertidor de analógico a digital (ADC). Dado que los procesadores están diseñados para interpretar y procesar datos digitales, es decir, unos y ceros, no pueden hacer nada con las señales analógicas que puede enviarles un dispositivo. Por lo tanto, el convertidor de analógico a digital se utiliza para convertir los datos entrantes en una forma que el procesador pueda reconocer. Una característica menos común en algunos microcontroladores es un convertidor de digital a analógico (DAC) que permite que el procesador emita señales analógicas o niveles de voltaje.

Además de los convertidores, muchos microprocesadores integrados también incluyen una variedad de temporizadores. Uno de los tipos más comunes de temporizadores es el temporizador de intervalo programable (PIT). Un PIT puede contar hacia atrás desde algún valor hasta cero, o hasta la capacidad del registro de conteo, desbordando a cero. Una vez que llega a cero, envía una interrupción al procesador indicando que ha terminado de contar. Esto es útil para dispositivos como termostatos, que periódicamente prueban la temperatura a su alrededor para ver si necesitan encender el aire acondicionado, el calentador, etc.

Un bloque dedicado de modulación de ancho de pulso (PWM) hace posible que la CPU controle convertidores de potencia , cargas resistivas , motores , etc., sin usar 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 muy poca carga en la CPU. El hardware dedicado en el chip también incluye a menudo 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 . [30]

Mayor integración [ editar ]

Die de un PIC12C508 8 bits, completamente estático, EEPROM / EPROM / ROM basado en CMOS microcontrolador fabricado por Microchip Technology usando un 1200 nanómetros proceso
Matriz de un microcontrolador STM32F100C4T6B ARM Cortex-M 3 con memoria flash de 16 kilobytes , unidad central de procesamiento (CPU) de 24  MHz , control de motores y funciones de Control de Electrónica de Consumo (CEC). Fabricado por STMicroelectronics .

Es posible que los microcontroladores no implementen una dirección externa o un bus de datos, ya que integran RAM y memoria no volátil en el mismo chip que la CPU. Con menos pines, el chip se puede colocar en un paquete 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 ese chip, pero a menudo resulta en una disminución del costo neto del sistema integrado en su conjunto. Incluso si el costo de una CPU que tiene periféricos integrados es un poco más que el costo de una CPU y periféricos externos, tener menos chips generalmente permite una placa de circuito más pequeña y barata, y reduce la mano de obra requerida para ensamblar y probar la placa de circuito, en además de tender a disminuir la tasa de defectos del ensamblaje terminado.

Un microcontrolador es un solo circuito integrado , comúnmente con las siguientes características:

  • unidad central de procesamiento  - que van desde pequeñas y sencillas de 4 bits procesadores a complejos de 32 bits o de 64 bits procesadores
  • memoria volátil ( RAM ) para almacenamiento de datos
  • Memoria ROM , EPROM , EEPROM o Flash para almacenamiento de programas y parámetros operativos
  • bits de entrada y salida discretos, que permiten el control o la detección del estado lógico de un pin de paquete individual
  • de serie de entrada / salida tales como puertos serie ( UART )
  • otras interfaces de comunicaciones en serie como I²C , interfaz de periféricos en serie y red de área del controlador para la interconexión del sistema
  • periféricos como temporizadores , contadores de eventos, generadores PWM y perro guardián
  • generador de reloj  : a menudo un oscilador para un cristal de sincronización de cuarzo, resonador o circuito RC
  • muchos incluyen convertidores de analógico a digital, algunos incluyen convertidores de digital a analógico
  • en el circuito de programación y depuración en circuito apoyo

Esta integración reduce drásticamente la cantidad de chips y la cantidad de cableado y espacio en la placa de circuito que se necesitaría para producir sistemas equivalentes utilizando chips separados. Además, en dispositivos de bajo número de pines en particular, cada pin puede interactuar con varios periféricos internos, con la función de pin seleccionada por software. Esto permite que una pieza se utilice en una variedad más amplia de aplicaciones que si los pines tuvieran funciones dedicadas.

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

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

La decisión de qué periférico integrar es a menudo difícil. Los proveedores de microcontroladores a menudo intercambian frecuencias operativas y flexibilidad de diseño del sistema con los requisitos de tiempo de comercialización de sus clientes y un menor costo general del sistema. Los fabricantes deben equilibrar la necesidad de minimizar el tamaño del chip con la funcionalidad adicional.

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 paquete. Otros diseños están diseñados específicamente para aplicaciones de control. Un conjunto de instrucciones de microcontrolador generalmente tiene muchas instrucciones destinadas a la manipulación de bits (operaciones a nivel de bits) para hacer que los programas de control sean más compactos. [31] Por ejemplo, un procesador de propósito general puede requerir varias instrucciones para probar un bit en un registro y bifurcar si el bit está establecido, donde un microcontrolador podría tener una sola instrucción para proporcionar esa función comúnmente requerida.

Los microcontroladores tradicionalmente no tienen un coprocesador matemático , por lo que la aritmética de punto flotante se realiza mediante software. Sin embargo, algunos diseños recientes incluyen funciones optimizadas para FPU y DSP. Un ejemplo sería la línea basada en MIPS PIC32 de Microchip.

Entornos de programación [ editar ]

Los microcontroladores se programaron originalmente solo en lenguaje ensamblador , pero varios lenguajes de programación de alto nivel , como C , Python y JavaScript , ahora también son de uso común para apuntar a microcontroladores y sistemas integrados . [32] Los compiladores para lenguajes de propósito general normalmente tendrán algunas restricciones, así como mejoras para soportar mejor las características únicas de los microcontroladores. Algunos microcontroladores tienen entornos para ayudar a desarrollar ciertos tipos de aplicaciones. Los proveedores de microcontroladores a menudo ofrecen herramientas de forma gratuita para facilitar la adopción de su hardware.

Los microcontroladores con hardware especializado pueden requerir sus propios dialectos no estándar de C, como SDCC para el 8051 , que impiden 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 características de hardware. Los intérpretes también pueden contener características no estándar, como MicroPython , aunque una bifurcación, CircuitPython , ha buscado mover las dependencias de hardware a las bibliotecas y hacer que el lenguaje se adhiera a un estándar más CPython .

El firmware del intérprete también está disponible para algunos microcontroladores. Por ejemplo, BASIC en los primeros microcontroladores Intel 8052 ; [33] BASIC y FORTH en el Zilog Z8 [34] así como en algunos dispositivos modernos. Por lo general, estos intérpretes admiten la programación interactiva .

Hay simuladores disponibles para algunos microcontroladores. Estos permiten al desarrollador analizar cuál debería ser el comportamiento del microcontrolador y su programa si estuvieran usando la pieza real. Un simulador mostrará el estado del procesador interno y también el de las salidas, además de permitir generar señales de entrada. Si bien, por un lado, la mayoría de los simuladores no podrán simular mucho otro hardware en un sistema, pueden ejercer condiciones que de otro modo serían difíciles de reproducir a voluntad en la implementación física, y pueden ser la forma más rápida de depurar y analizar problemas.

Los microcontroladores recientes a menudo se integran con circuitos de depuración en chip que, cuando se accede mediante un emulador en circuito (ICE) a través de JTAG , permiten la depuración del firmware con un depurador . Un ICE en tiempo real puede permitir ver y / o manipular estados internos mientras se ejecuta. Un ICE de seguimiento puede registrar el programa ejecutado y los estados de la MCU antes / después de un punto de activación.

Tipos [ editar ]

A partir de 2008 , hay varias docenas de arquitecturas y proveedores de microcontroladores que incluyen:

  • Procesadores centrales ARM (muchos proveedores)
    • Los núcleos ARM Cortex-M están específicamente dirigidos a aplicaciones de microcontroladores
  • Tecnología de microchip Atmel AVR (8 bits), AVR32 (32 bits) y AT91SAM (32 bits)
  • Núcleo M8C de Cypress Semiconductor utilizado en su PSoC (sistema programable en chip)
  • Freescale ColdFire (32 bits) y S08 (8 bits)
  • Freescale 68HC11 (8 bits) y otros basados ​​en la familia Motorola 6800
  • Intel 8051 , también fabricado por NXP Semiconductors , Infineon y muchos otros
  • Infineon : 8-bit XC800 , 16 bits XE166 , XMC4000 32-bit (basado ARM Cortex M4F), 32-bit TriCore y, 32 bits Aurix microcontroladores Bit TRICORE [35]
  • Maxim integrado MAX32600, MAX32620, MAX32625, MAX32630, MAX32650, MAX32640
  • MIPS
  • Tecnología de microchip PIC , (PIC16 de 8 bits, PIC18, dsPIC33 / PIC24 de 16 bits), (PIC32 de 32 bits)
  • Semiconductores NXP LPC1000, LPC2000, LPC3000, LPC4000 (32 bits), LPC900, LPC700 (8 bits)
  • Hélice Parallax
  • PowerPC ISE
  • Conejo 2000 (8 bits)
  • Renesas Electronics : MCU RL78 de 16 bits ; MCU RX de 32 bits ; SuperH ; MCU V850 de 32 bits ; H8 ; MCU R8C de 16 bits
  • Silicon Laboratories Microcontroladores 8051 de 8 bits canalizados y microcontroladores de 32 bits basados ​​en ARM de señal mixta
  • STMicroelectronics STM8 (8 bits), ST10 (16 bits), STM32 (32 bits), SPC5 (automotriz 32 bits)
  • Texas Instruments TI MSP430 (16 bits), MSP432 (32 bits), C2000 (32 bits)
  • Toshiba TLCS-870 (8 bits / 16 bits)

Existen muchos otros, algunos de los cuales se utilizan en una gama muy reducida de aplicaciones o se parecen más a procesadores de aplicaciones que a microcontroladores. El mercado de microcontroladores está extremadamente fragmentado, con numerosos proveedores, tecnologías y mercados. Tenga en cuenta que muchos proveedores venden o han vendido varias arquitecturas.

Interrumpir latencia [ editar ]

A diferencia de las computadoras de uso general, los microcontroladores que se utilizan en los sistemas integrados a menudo buscan optimizar la latencia de interrupción sobre el rendimiento de las instrucciones. Los problemas incluyen tanto reducir la latencia como hacerla más predecible (para admitir el control en tiempo real).

Cuando un dispositivo electrónico causa una interrupción, durante el cambio de contexto, los resultados intermedios (registros) deben guardarse antes de que el software responsable de manejar la interrupción pueda ejecutarse. También deben restaurarse después de que finalice el manejador de interrupciones . Si hay más registros de procesador, este proceso de guardado y restauración puede llevar más tiempo, aumentando la latencia. (Si un ISR no requiere el uso de algunos registros, simplemente puede dejarlos en lugar de guardarlos y restaurarlos, por lo que en ese caso esos registros no están involucrados con la latencia). Las formas de reducir tal contexto / restaurar la latencia incluyen tener relativamente pocos registros en sus unidades centrales de procesamiento (indeseable porque ralentiza sustancialmente la mayoría del procesamiento sin interrupciones), o al menos que el hardware no los guarde todos (esto falla si el software necesita compensar guardando el resto "manualmente") . Otra técnica implica gastar puertas de silicio en "registros de sombra": uno o más registros duplicados utilizados sólo por el software de interrupción, quizás admitiendo 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 esos costos, los microcontroladores tienden a tener pipelines cortos (a menudo tres instrucciones o menos), búferes de escritura pequeños y aseguran que las instrucciones más largas sean continuables o reiniciables. Los principios de diseño de RISC garantizan que la mayoría de las instrucciones tomen el mismo número de ciclos, lo que ayuda a evitar la necesidad de la mayoría de las lógicas de continuación / reinicio.
  • La longitud de cualquier sección crítica que deba interrumpirse. La entrada a una sección crítica restringe el acceso simultáneo a la estructura de datos. Cuando un manejador de interrupciones debe acceder a una estructura de datos, la sección crítica debe bloquear esa interrupción. En consecuencia, la latencia de la interrupción aumenta por el tiempo que la interrupción está bloqueada. Cuando existen fuertes restricciones externas en la latencia del sistema, los desarrolladores a menudo necesitan herramientas para medir las latencias de interrupción y rastrear qué secciones críticas causan desaceleraciones.
    • Una técnica común simplemente bloquea 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 incómodamente largas.
    • Una técnica más compleja simplemente bloquea las interrupciones que pueden desencadenar el acceso a esa estructura de datos. Esto a menudo se basa en prioridades de interrupción, que tienden a no corresponder bien con las estructuras de datos del sistema relevantes. En consecuencia, esta técnica se utiliza principalmente en entornos muy restringidos.
    • Los procesadores pueden tener soporte de hardware para algunas secciones críticas. Los ejemplos incluyen el soporte de 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 .
  • Interrumpa el anidamiento. Algunos microcontroladores permiten interrupciones de mayor prioridad para interrumpir las de menor prioridad. Esto permite que el software administre la latencia otorgando a las interrupciones de tiempo crítico una prioridad más alta (y por lo tanto, una latencia más baja y predecible) que a las menos críticas.
  • Tasa de disparo. Cuando las interrupciones ocurren una tras otra, los microcontroladores pueden evitar un ciclo adicional de guardado / restauración de contexto mediante una forma de optimización de la llamada 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 [ editar ]

Se utilizan comúnmente dos tipos diferentes de memoria con los microcontroladores, una memoria no volátil para almacenar firmware y una memoria de lectura y escritura para datos temporales.

Datos [ editar ]

Desde los primeros microcontroladores hasta hoy, la SRAM de seis transistores casi siempre se usa como memoria de trabajo de lectura / escritura, con algunos transistores más por bit en el archivo de registro .

Además de la SRAM, algunos microcontroladores también tienen EEPROM interna para el almacenamiento de datos; e incluso los que no tienen ninguno (o no lo suficiente) a menudo se conectan a un chip EEPROM serial externo (como el BASIC Stamp ) o al chip de memoria flash serial externo.

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

Firmware [ editar ]

Los primeros microcontroladores utilizaron ROM de máscara para almacenar firmware. Los microcontroladores posteriores (como las primeras versiones de Freescale 68HC11 y los primeros microcontroladores PIC ) tenían memoria EPROM , que usaba una ventana translúcida para permitir el borrado a través de la luz UV, mientras que las versiones de producción no tenían esa ventana, siendo OTP (programable una vez) . Las actualizaciones de firmware eran equivalentes a reemplazar el microcontrolador en sí, por lo que muchos productos no se podían actualizar.

Motorola MC68HC805 [10] fue el primer microcontrolador en usar EEPROM para almacenar el firmware. Los microcontroladores EEPROM se hicieron más populares en 1993 cuando Microchip introdujo PIC16C84 [9] y Atmel introdujo un microcontrolador de 8051 núcleos que fue el primero en utilizar la memoria Flash NOR para almacenar el firmware. [11] Los microcontroladores actuales usan casi exclusivamente memoria flash, algunos modelos usan FRAM, y algunas partes de costo ultra bajo todavía usan OTP o Mask-ROM.

Ver también [ editar ]

  • Lista de microcontroladores comunes
  • Lista de microcontroladores Wi-Fi
  • Lista de proyectos de hardware de código abierto
  • Microbótica
  • Controlador lógico programable
  • Microcontrolador de placa única

Referencias [ editar ]

  1. ^ Mittal, Sparsh. "Una encuesta sobre la implementación optimizada de modelos de aprendizaje profundo en la plataforma NVIDIA Jetson" . Revista de Arquitectura de Sistemas . ISSN  1383-7621 .
  2. ↑ a b Shirriff, Ken (30 de agosto de 2016). "La sorprendente historia de los primeros microprocesadores" . Espectro IEEE . Instituto de Ingenieros Eléctricos y Electrónicos . 53 (9): 48–54. doi : 10.1109 / MSPEC.2016.7551353 . S2CID 32003640 . Consultado el 13 de octubre de 2019 . 
  3. ^ "1960: Transistor de semiconductor de óxido de metal (MOS) demostrado" . Silicon Engine: una línea de tiempo de semiconductores en computadoras . Museo de Historia de la Computación . Consultado el 31 de agosto de 2019 .
  4. ^ Moskowitz, Sanford L. (2016). Innovación de materiales avanzados: gestión de la tecnología global en el siglo XXI . John Wiley e hijos . págs. 165-167. ISBN 9780470508923.
  5. ^ "1971: el microprocesador integra la función de la CPU en un solo chip" . El motor de silicio . Museo de Historia de la Computación . Consultado el 22 de julio de 2019 .
  6. ^ Augarten, Stan (1983). La computadora más utilizada en un chip: 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-9. Consultado el 23 de diciembre de 2009 .
  7. ^ "Tendencias en la industria de semiconductores" . Museo de Historia de Semiconductores de Japón . Archivado desde el original el 27 de junio de 2019 . Consultado el 27 de junio de 2019 .
  8. ^ a b "Panel de historia oral sobre el desarrollo y la promoción del microcontrolador Intel 8048" (PDF) . Museo de Historia de la Computación, Historia Oral, 2008 . pag. 4 . Consultado el 4 de abril de 2016 .
  9. ^ a b "Chip Hall of Fame: Microcontrolador PIC 16C84 de tecnología de Microchip" . IEEE. 2017-06-30 . Consultado el 16 de septiembre de 2018 .
  10. ^ a b Motorola. Información avanzada, microcomputadoras de 8 bits MC68HC05B6, MC68HC05B4, MC68HC805B6, documento de Motorola EADI0054RI . Motorola Ltd., 1988.
  11. ^ a b c "Microcontroladores Flash de autoprogramación de Atmel" (PDF) . 2012-01-24 . Consultado el 25 de octubre de 2008 . por Odd Jostein Svendsli 2003
  12. ^ Turley, Jim (2002). "La solución del dos por ciento" . Embebido . Consultado el 11 de julio de 2018 .
  13. ^ Cantrell, Tom (1998). "Microchip en la marcha" . Bodega Circuit . Archivado desde el original el 27 de septiembre de 2007 . Consultado el 11 de julio de 2018 .
  14. ^ "Investigación Semico" .
  15. ^ "Momentum lleva MCU en 2011 | Semico Research" . semico.com . Consultado el 11 de julio de 2018 .
  16. ^ a b "Mercado de MCU en ruta de migración a dispositivos de 32 bits y basados ​​en ARM" . 25 de abril de 2013. Por lo general, se necesita una recesión económica global para alterar el diverso mercado de MCU, y eso es exactamente lo que ocurrió en 2009, cuando el negocio de microcontroladores sufrió su peor caída anual de ventas del 22% a $ 11.1 mil millones.
  17. ^ a b "Las MCU de muy bajo costo" . www.additude.se . Consultado el 16 de enero de 2019 .
  18. ^ Bill Giovino. "Zilog compra líneas de productos de microcontroladores de Samsung" . 2013.
  19. ^ a b "EFM8BB10F2G-A-QFN20 Silicon Labs | Mouser" .
  20. ^ a b "MSP430G2001IPW14R Texas Instruments | Mouser" .
  21. ^ a b "CY8C4013SXI-400 Cypress Semiconductor | Mouser" . Mouser Electronics . Archivado desde el original el 18 de febrero de 2015.
  22. ^ "MSP430FR2000IPW16R Texas Instruments | Mouser" .
  23. ^ "CY8C4013SXI-400 Cypress Semiconductor | Mouser" . Mouser Electronics . Consultado el 11 de julio de 2018 .
  24. ^ https://eu.mouser.com/ProductDetail/Silicon-Labs/EFM32ZG108F8-QFN24?qs=sGAEpiMZZMuI9neUTtPr75mJ%2fJmU8iJshd%2f59xMDhYo%3d
  25. ^ Los investigadores de la UM crean la 'computadora' más pequeña del mundo, Universidad de Michigan , 2018-06-21
  26. ^ La Universidad de Michigan supera a IBM con la 'computadora' más pequeña del mundo, CNET , 2018-06-22
  27. ^ IBM lucha contra los falsificadores con la computadora más pequeña del mundo , CNET , 2018-03-19
  28. ^ IBM construyó una computadora del tamaño de un grano de sal. Esto es para lo que sirve. , Fortuna , 2018-03-19
  29. ^ Heath, Steve (2003). Diseño de sistemas empotrados . Serie EDN para ingenieros de diseño (2 ed.). Newnes. pp.  11 -12. ISBN 9780750655460.
  30. ^ David Harris y Sarah Harris (2012). Diseño digital y arquitectura informática, segunda edición , p. 515. Morgan Kaufmann. ISBN 0123944244 . 
  31. ^ Manera fácil de construir un proyecto de microcontrolador
  32. ^ Mazzei, Daniele; Montelisciani, Gabriele; Baldi, Giacomo; Fantoni, Gualtiero (2015). Cambiando el paradigma de programación para los integrados en el dominio de IoT . Internet de las cosas (WF-IoT), 2015 IEEE 2nd World Forum on. Milán: IEEE. págs. 239–244. doi : 10.1109 / WF-IoT.2015.7389059 .
  33. ^ "Microcontroladores 8052-Basic" por Jan Axelson 1994
  34. ^ Edwards, Robert (1987). "Optimización del microcontrolador Zilog Z8 Forth para la creación rápida de prototipos" (PDF) . Martín Marietta: 3 . Consultado el 9 de diciembre de 2012 . Cite journal requires |journal= (help)
  35. ^ www.infineon.com/mcu

Enlaces externos [ editar ]

  • Microcontrolador en Curlie