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 microcontroladoras (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 sencillos ordenadores personales en miniatura diseñados para controlar pequeñas funciones de un componente mayor, sin un sistema operativo complejo.
¿Cómo Funcionan los Microcontroladores?
Un microcontrolador está integrado en un sistema para controlar una función concreta de un dispositivo. Para ello, interpreta 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, donde el procesador accede a ella y utiliza 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 varios 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 en su interior, como el sistema 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 las tareas que les han sido asignadas.
¿Cuáles son los Elementos de un Microcontrolador?
Los elementos básicos de un microcontrolador son:
- El procesador (CPU) — El procesador puede considerarse 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 órdenes a otros componentes del sistema embebido más amplio.
- 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:
- Memoria de programa, que almacena información a largo plazo sobre las instrucciones que ejecuta la CPU. 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 alimentación.
- La memoria de datos, necesaria 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 alimentación.
- Periféricos de E/S — 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.
Aunque el procesador, la memoria y los periféricos de E/S son los elementos que definen el 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 apoyo de un microcontrolador son:
- Conversor Analógico-Digital (ADC) — Un ADC es un circuito que convierte señales analógicas en digitales. Permite al procesador situado en el centro del microcontrolador interactuar con dispositivos analógicos externos, como sensores.
- Conversor Digital-Analógico (DAC) — Un DAC realiza la función inversa de un ADC y permite que el procesador en el centro del microcontrolador comunique sus señales salientes a componentes analógicos externos.
- Bus de sistema — El bus de 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 un puerto USB o paralelo, pero difiere en la forma en que intercambia bits.
Características de un Microcontrolador
El procesador de un microcontrolador varía en función de la aplicación. Las opciones van desde los sencillos 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 no volátil, como la memoria flash, la memoria de sólo lectura programable y borrable (EPROM) y la memoria de sólo lectura programable y borrable eléctricamente (EEPROM).
Por lo general, los microcontroladores están diseñados para poder utilizarse sin necesidad de componentes informáticos adicionales, ya que disponen de suficiente memoria interna y ofrecen 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. Ambas ofrecen distintos métodos de intercambio de datos entre el procesador y la memoria. En la 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 para los datos y las instrucciones.
Los procesadores de microcontroladores pueden basarse en la informática de conjuntos de instrucciones complejos (CISC) o en la informática de conjuntos de instrucciones reducidos (RISC). CISC suele tener unas 80 instrucciones, mientras que RISC tiene unas 30, así como más modos de direccionamiento, 12-24 frente a los 3-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 ofrecer mejores prestaciones 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. Qué ISC se utiliza varía en función de la aplicación.
Cuando salieron al mercado, los microcontroladores utilizaban exclusivamente lenguaje ensamblador. Hoy en día, el lenguaje de programación C es una opción muy popular. Otros lenguajes habituales para microprocesadores son Python y JavaScript.
Los MCU incorporan pines de entrada y salida para implementar funciones periféricas. Estas funciones incluyen convertidores analógico-digitales, controladores de pantalla 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 microcontroladores.
Tipos de Microcontroladores
Entre los MCU más comunes se encuentran el MCS-51 de Intel, a menudo conocido como 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, entre ellas NXP Semiconductors, Renesas Electronics, Silicon Labs y Texas Instruments.
Aplicaciones de los Microcontroladores
Los microcontroladores se utilizan en múltiples sectores y aplicaciones, incluso en el hogar y la empresa, automatización de edificios, fabricación, robótica, automoción, iluminación, energía inteligente, automatización industrial, comunicaciones e implementaciones de 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 a 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 saliente uniforme.
Los microcontroladores más sencillos facilitan el funcionamiento de 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.
Los 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 medicina, los microcontroladores pueden regular el funcionamiento de un corazón artificial, un riñón u otros órganos. También pueden ser decisivos para el funcionamiento de prótesis.
Microcontroladores vs Microprocesadores
La distinción entre microcontroladores y microprocesadores ha ido perdiendo claridad a medida que la densidad y complejidad de los chips se ha abaratado relativamente y los microcontroladores han ido integrando más funciones de «ordenador general». Sin embargo, en general, 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 RAM y puertos serie. En pocas palabras, las cafeteras utilizan microcontroladores; los ordenadores de sobremesa, microprocesadores.
Los microcontroladores son menos caros y consumen menos energía que los microprocesadores. Los microprocesadores no incorporan RAM, memoria de sólo lectura (ROM) ni 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
A la hora de elegir un microcontrolador para un proyecto, hay que tener en cuenta una serie de consideraciones tecnológicas y empresariales.
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 al desarrollo. Asegúrese de formular preguntas como:
- ¿Qué periféricos de hardware se necesitan?
- ¿Se necesitan comunicaciones externas?
- ¿Qué arquitectura debe utilizarse?
- ¿Qué tipo de comunidad y recursos están disponibles para el microcontrolador?
- ¿Cuál es la disponibilidad del microcontrolador en el mercado?