Microcontrolador (MCU)

Un microcontrolador es un circuito integrado compacto diseñado para gobernar una operación específica en un sistema embebido. Un microcontrolador típico incluye un procesador, memoria y periféricos de entrada/salida (E/S) en un solo chip.

A veces denominados controladores integrados o unidades de microcontroladores (MCU), los microcontroladores se encuentran en vehículos, robots, máquinas de oficina, dispositivos médicos, transceptores de radio móviles, máquinas expendedoras y electrodomésticos, entre otros dispositivos. En esencia, son simples ordenadores personales (PC) en miniatura diseñados para controlar pequeñas funciones de un componente más grande, sin un complejo sistema operativo (SO).

¿Cómo funcionan los microcontroladores?

Un microcontrolador está integrado dentro de un sistema para controlar una función singular en un dispositivo. Lo hace interpretando los datos que recibe de sus periféricos de E/S mediante su procesador central. La información temporal que recibe el microcontrolador se almacena en su memoria de datos, a la que el procesador accede y utiliza las instrucciones almacenadas en su memoria de programa para descifrar y aplicar los datos entrantes. A continuación, utiliza sus periféricos de E/S para comunicarse y ejecutar la acción apropiada.

Los microcontroladores se utilizan en una amplia gama de sistemas y dispositivos. Los dispositivos a menudo utilizan múltiples microcontroladores que trabajan juntos dentro del dispositivo para manejar sus respectivas tareas.

Por ejemplo, un coche puede tener muchos microcontroladores que controlan varios sistemas individuales dentro, como el sistema de antibloqueo de frenos, el control de tracción, la inyección de combustible o el control de la suspensión. Todos los microcontroladores se comunican entre sí para informar de las acciones correctas. Algunos pueden comunicarse con un ordenador central más complejo dentro del coche, y otros sólo con otros microcontroladores. Envían y reciben datos utilizando sus periféricos de E/S y procesan esos datos para realizar sus tareas designadas.

¿Cuáles son los elementos de un microcontrolador?

Los elementos centrales de un microcontrolador son:

  • El procesador (CPU) — Se puede pensar en un procesador como el cerebro del dispositivo. Procesa y responde a varias instrucciones que dirigen el funcionamiento del microcontrolador. Esto implica realizar operaciones aritméticas, lógicas y de E/S básicas. También realiza operaciones de transferencia de datos, que comunican comandos a otros componentes del sistema integrado más grande.
  • Memoria — La memoria de un microcontrolador se utiliza para almacenar los datos que el procesador recibe y utiliza para responder a las instrucciones para las que ha sido programado. Un microcontrolador tiene dos tipos principales de memoria:
    1. Memoria de programa, que almacena información a largo plazo sobre las instrucciones que la CPU lleva a cabo. La memoria de programa es una memoria no volátil, lo que significa que mantiene la información a lo largo del tiempo sin necesidad de una fuente de energía.
    2. Memoria de datos, que se requiere para el almacenamiento temporal de datos mientras se ejecutan las instrucciones. La memoria de datos es volátil, lo que significa que los datos que contiene son temporales y sólo se mantienen si el dispositivo está conectado a una fuente de energía.
    3. Periféricos de entrada y salida — Los dispositivos de entrada y salida son la interfaz del procesador con el mundo exterior. Los puertos de entrada reciben información y la envían al procesador en forma de datos binarios. El procesador recibe esos datos y envía las instrucciones necesarias a los dispositivos de salida que ejecutan tareas externas al microcontrolador.
    4. Aunque el procesador, la memoria y los periféricos de E/S son los elementos que definen al microprocesador, hay otros elementos que se incluyen con frecuencia. El término periféricos de E/S se refiere simplemente a los componentes de apoyo que interactúan con la memoria y el procesador. Hay muchos componentes de apoyo que pueden clasificarse como periféricos. Tener alguna manifestación de un periférico de E/S es elemental para un microprocesador, porque son el mecanismo a través del cual se aplica el procesador.

      Otros elementos de soporte de un microcontrolador incluyen:

    • Convertidor analógico-digital (ADC) — Un ADC es un circuito que convierte las señales analógicas en señales digitales. Permite que el procesador situado en el centro del microcontrolador interactúe con dispositivos analógicos externos, como los sensores.
    • Convertidor digital a analógico (DAC) — Un DAC realiza la función inversa de un ADC y permite que el procesador situado en el centro del microcontrolador comunique sus señales de salida a componentes analógicos externos.
    • Bus del sistema — El bus del sistema es el cable conector que une todos los componentes del microcontrolador.
    • Puerto serie — El puerto serie es un ejemplo de puerto de E/S que permite al microcontrolador conectarse a componentes externos. Tiene una función similar a la de un puerto USB o paralelo, pero difiere en la forma de intercambiar bits.
      • Características del microcontrolador

        El procesador de un microcontrolador variará según la aplicación. Las opciones van desde los simples procesadores de 4, 8 o 16 bits hasta los más complejos de 32 o 64 bits. Los microcontroladores pueden utilizar tipos de memoria volátil como la memoria de acceso aleatorio (RAM) y tipos de memoria no volátil — esto incluye la memoria flash, la memoria de sólo lectura programable borrable (EPROM) y la memoria de sólo lectura programable borrable eléctricamente (EEPROM).

        En general, los microcontroladores están diseñados para ser fácilmente utilizables sin componentes informáticos adicionales, ya que están diseñados con suficiente memoria a bordo, además de ofrecer pines para operaciones generales de E/S, por lo que pueden interactuar directamente con sensores y otros componentes.

        La arquitectura de los microcontroladores puede basarse en la arquitectura Harvard o en la arquitectura von Neumann, y ambas ofrecen diferentes métodos de intercambio de datos entre el procesador y la memoria. Con una arquitectura Harvard, el bus de datos y el de instrucciones están separados, lo que permite transferencias simultáneas. Con una arquitectura Von Neumann, se utiliza un solo bus tanto para los datos como para las instrucciones.

        Los procesadores de los microcontroladores pueden basarse en la computación de conjunto de instrucciones complejas (CISC) o en la computación de conjunto de instrucciones reducidas (RISC). CISC suele tener unas 80 instrucciones mientras que RISC tiene unas 30, así como más modos de direccionamiento, de 12 a 24 en comparación con los 3 a 5 de RISC. Aunque CISC puede ser más fácil de implementar y tiene un uso más eficiente de la memoria, puede tener una degradación del rendimiento debido al mayor número de ciclos de reloj necesarios para ejecutar las instrucciones. RISC, que pone más énfasis en el software, suele proporcionar un mejor rendimiento que los procesadores CISC, que ponen más énfasis en el hardware, debido a su conjunto de instrucciones simplificado y, por tanto, a una mayor simplicidad de diseño, pero debido al énfasis que pone en el software, éste puede ser más complejo. El ISC que se utiliza varía en función de la aplicación.

        Cuando estuvieron disponibles por primera vez, los microcontroladores utilizaban exclusivamente lenguaje ensamblador. Hoy en día, el lenguaje de programación C es una opción popular. Otros lenguajes de microprocesador habituales son Python y JavaScript.

        Las UMC cuentan con pines de entrada y salida para implementar funciones periféricas. Dichas funciones incluyen convertidores analógico-digitales, controladores de pantallas de cristal líquido (LCD), reloj en tiempo real (RTC), transmisor receptor síncrono/asíncrono universal (USART), temporizadores, transmisor receptor asíncrono universal (UART) y conectividad de bus serie universal (USB). Los sensores que recogen datos relacionados con la humedad y la temperatura, entre otros, también suelen estar conectados a los microcontroladores.

        Tipos de microcontroladores

        Los MCU comunes incluyen el MCS-51 de Intel, a menudo denominado microcontrolador 8051, que se desarrolló por primera vez en 1985; el microcontrolador AVR desarrollado por Atmel en 1996; el controlador de interfaz programable (PIC) de Microchip Technology; y varios microcontroladores Advanced RISC Machines (ARM) con licencia.

        Varias empresas fabrican y venden microcontroladores, como NXP Semiconductors, Renesas Electronics, Silicon Labs y Texas Instruments.

        Aplicaciones de los microcontroladores

        Los microcontroladores se utilizan en múltiples industrias y aplicaciones, como en el hogar y la empresa, la automatización de edificios, la fabricación, la robótica, la automoción, la iluminación, la energía inteligente, la automatización industrial, las comunicaciones y los despliegues del Internet de las cosas (IoT).

        Una aplicación muy específica de un microcontrolador es su uso como procesador de señales digitales. Con frecuencia, las señales analógicas entrantes vienen con un cierto nivel de ruido. En este contexto, ruido significa valores ambiguos que no pueden traducirse fácilmente en valores digitales estándar. Un microcontrolador puede utilizar su ADC y DAC para convertir la señal analógica ruidosa entrante en una señal digital uniforme saliente.

        Los microcontroladores más sencillos facilitan el funcionamiento de los sistemas electromecánicos que se encuentran en artículos de uso cotidiano, como hornos, frigoríficos, tostadoras, dispositivos móviles, llaveros, sistemas de videojuegos, televisores y sistemas de riego de césped. También son habituales en máquinas de oficina como fotocopiadoras, escáneres, faxes e impresoras, así como en contadores inteligentes, cajeros automáticos y sistemas de seguridad.

        Microcontroladores más sofisticados desempeñan funciones críticas en aviones, naves espaciales, buques oceánicos, vehículos, sistemas médicos y de soporte vital, así como en robots. En el ámbito médico, los microcontroladores pueden regular el funcionamiento de un corazón, un riñón u otros órganos artificiales. También pueden ser fundamentales para el funcionamiento de dispositivos protésicos.

        Microcontroladores frente a microprocesadores

        La distinción entre microcontroladores y microprocesadores se ha vuelto menos clara a medida que la densidad y la complejidad de los chips se ha vuelto relativamente barata de fabricar y, por tanto, los microcontroladores han integrado más funcionalidades de «ordenador general». En general, sin embargo, se puede decir que los microcontroladores funcionan de forma útil por sí solos, con una conexión directa a sensores y actuadores, mientras que los microprocesadores están diseñados para maximizar la potencia de cálculo en el chip, con conexiones de bus internas (en lugar de E/S directas) a hardware de apoyo como la RAM y los puertos serie. En pocas palabras, las cafeteras utilizan microcontroladores; los ordenadores de sobremesa utilizan microprocesadores.

        El microcontrolador ATtiny817 de Microchip Technology.

        Los microcontroladores son menos costosos y utilizan menos energía que los microprocesadores. Los microprocesadores no llevan incorporada la RAM, la memoria de sólo lectura (ROM) u otros periféricos en el chip, sino que se conectan a éstos con sus pines. Un microprocesador puede considerarse el corazón de un sistema informático, mientras que un microcontrolador puede considerarse el corazón de un sistema embebido.

        Elegir el microcontrolador adecuado

        Hay una serie de consideraciones tecnológicas y comerciales que hay que tener en cuenta a la hora de elegir un microcontrolador para un proyecto.

        Más allá del coste, es importante tener en cuenta la velocidad máxima, la cantidad de RAM o ROM, el número o los tipos de pines de E/S de una MCU, así como el consumo de energía y las limitaciones y el soporte de desarrollo. Asegúrese de hacer preguntas como: