1. ¿Qué son los Microcontroladores?
Los microcontroladores son circuitos integrados que combinan un procesador
central (CPU), memoria, periféricos de entrada/salida (I/O) y otros componentes
en un solo chip. Están diseñados para controlar dispositivos electrónicos en
aplicaciones embebidas, donde el procesamiento es dedicado y eficiente en
términos de energía y espacio.
Un Microcontrolador (MCU) es un circuito integrado altamente compacto
diseñado para gobernar una operación específica dentro de un sistema
embebido. Es, esencialmente, una "computadora en un chip" que integra en
un único encapsulado la Unidad Central de Procesamiento (CPU), la
Memoria (de programa y de datos), y los Periféricos de Entrada/Salida
(E/S). A diferencia de un microprocesador (que solo contiene la CPU y requiere
chips externos para memoria y periféricos), el microcontrolador es una solución
autónoma e integrada.
Características principales:
CPU integrada (generalmente de 8, 16 o 32 bits).
Memoria interna (RAM, ROM, EEPROM).
Periféricos: temporizadores, convertidores A/D y D/A, interfaces de
comunicación.
Bajo consumo de energía y costo reducido.
Aplicaciones:
Electrodomésticos (lavadoras, microondas).
Automóviles (sistemas de inyección, ABS).
Dispositivos médicos (monitores cardíacos).
IoT (sensores inteligentes).
Ventajas:
Integración compacta, reduce componentes externos.
Programables para tareas específicas.
Bajo costo en producción masiva.
Desventajas:
Limitados en potencia de procesamiento comparados con
microprocesadores.
Dependientes de software embebido, lo que requiere conocimientos de
programación.
Ejemplo gráfico: Imagen de un microcontrolador PIC16F877A (chip
rectangular con pines, diagrama interno mostrando CPU, memoria y I/O).
Fuente: Datasheet de Microchip.
Tema 1: Arquitectura del Microcontrolador
La arquitectura de un microcontrolador define su estructura interna, incluyendo
cómo procesa datos, maneja memoria y se comunica. Se basa en principios de
computación embebida, optimizados para control en tiempo real.
La arquitectura de un MCU define cómo sus componentes internos están
conectados e interactúan. La mayoría de los MCUs modernos, como los ARM
Cortex-M o PIC, utilizan la Arquitectura Harvard o variantes de ella.
Arquitectura de Harvard: En esta arquitectura, las memorias de
programa (Flash/ROM) y de datos (RAM) están separadas, cada una con
su propio conjunto de buses dedicados (bus de direcciones y bus de datos).
Aplicaciones:
Control industrial (PLC: Programable Logic Controllers).
Robótica (control de motores).
Sistemas de seguridad (alarmas).
Características:
Arquitectura Harvard o Von Neumann (memoria separada para datos e
instrucciones).
Ciclo de reloj bajo (MHz).
Modos de bajo consumo (sleep).
Ventajas:
Eficiencia en aplicaciones de bajo poder.
Escalabilidad para diferentes tamaños de chip.
Desventajas:
Complejidad en diseño para principiantes.
Limitaciones en memoria externa.
Ejemplo gráfico: Diagrama de bloques de la arquitectura de un
microcontrolador AVR (CPU, ALU, registros, memoria, I/O). Incluye flechas
mostrando flujo de datos. Fuente: Tutoriales de Atmel.
3. Conceptos Básicos de Microcontroladores
Definiciones clave:
CPU (Unidad Central de Procesamiento): Ejecuta instrucciones,
realiza cálculos.
Registros: Almacenamiento temporal rápido (ej. acumulador, contador
de programa).
Bus: Vías para transferir datos (datos, direcciones, control).
Periféricos: Componentes adicionales como ADC (Analog-to-Digital
Converter) para sensores.
Identificación:
En un microcontrolador como Arduino Uno (basado en ATmega328), la
CPU es de 8 bits, con 32 registros.
Diferenciación entre RISC y CISC:
RISC (Reduced Instruction Set Computer): Conjunto reducido de
instrucciones simples (ej. ARM Cortex-M). Ventajas: ejecución rápida,
bajo consumo. Desventajas: requiere más instrucciones para tareas
complejas. Aplicaciones: dispositivos móviles, IoT.
CISC (Complex Instruction Set Computer): Instrucciones complejas
(ej. Intel 8051). Ventajas: menos código para tareas complejas.
Desventajas: mayor consumo, ciclos de reloj largos. Aplicaciones: PCs,
sistemas legacy.
Ejemplo gráfico: Tabla comparativa RISC vs CISC con columnas:
Instrucciones, Velocidad, Consumo, Ejemplos. Incluye iconos de chips.
Descripción de la Arquitectura:
Tipos de Direccionamiento: Inmediato (valor directo), directo
(registro), indirecto (puntero), indexado (base + offset).
Puertos: Pines I/O digitales/analógicos (ej. 40 pines en PIC18F).
Convertidores A/D y D/A: ADC convierte señales analógicas a digitales
(resolución 10-12 bits); DAC inverso. Aplicaciones: sensores de
temperatura.
Capacidad de Memoria: RAM (volátil, 1-256 KB), ROM (no volátil, para
firmware).
Bits de Datos: 8/16/32 bits (afecta precisión y velocidad).
Temporizadores: Contadores para eventos (ej. PWM para control de
motores).
Interfaces: I2C (comunicación serial de 2 hilos, baja velocidad), SPI
(alta velocidad, para SD cards), UART (asíncrona, para serial), USB (alta
velocidad, periféricos), CAN (redes automotrices), Ethernet (redes
TCP/IP), Bluetooth/Wi-Fi (inalámbricas, IoT).
Ventajas: Versatilidad en integración. Desventajas: Complejidad en
configuración.
Ejemplo gráfico: Esquema de un microcontrolador con bloques etiquetados
(CPU, Memoria, I/O, Interfaces). Incluye pines numerados. Fuente: Datasheet de
STM32.
4. Tipos de Memorias en Microcontroladores
Los microcontroladores usan memorias para almacenar datos, instrucciones y
configuraciones. Tipos principales: RAM (volátil), ROM (no volátil), EEPROM
(programable eléctricamente), Flash (tipo EEPROM rápida).
Aplicaciones: Almacenamiento de código en ROM, datos temporales en RAM.
Características: Velocidad de acceso, volatilidad, capacidad.
Ventajas: Integración en chip. Desventajas: Limitada capacidad.
5. Definición e Identificación de Memorias Específicas
RAM (Random Access Memory): Volátil, acceso rápido. Parámetros:
Velocidad (ns), capacidad (bytes). Aplicaciones: Variables temporales.
Ventajas: Rápida. Desventajas: Pierde datos sin poder.
ROM (Read-Only Memory): No volátil, preprogramada. Parámetros:
Tiempo de acceso (ms), densidad. Aplicaciones: Firmware. Ventajas:
Estable. Desventajas: No reprogramable.
EPROM (Erasable Programmable ROM): Programable con UV,
borrable. Parámetros: Voltaje de borrado (12V). Aplicaciones: Desarrollo.
Ventajas: Reutilizable. Desventajas: Lento borrado.
EEPROM (Electrically Erasable Programmable ROM): Borrable
eléctricamente. Parámetros: Ciclos de escritura (10^5). Aplicaciones:
Configuraciones. Ventajas: Fácil reprogramación. Desventajas: Lenta
escritura.
PLD (Programmable Logic Device): Lógica programable (ej. FPGA).
Parámetros: Puertas lógicas. Aplicaciones: Control personalizado.
Ventajas: Flexible. Desventajas: Costoso.
Ejemplo gráfico: Tabla con iconos de chips de memoria y parámetros
eléctricos (voltaje, corriente). Incluye curvas de tiempo de acceso.
6. Programación Aplicada a Sistemas Embebidos
La programación en sistemas embebidos usa lenguajes como C/C++ o
ensamblador, enfocados en eficiencia, interrupciones y control de hardware.
Aplicaciones: Control de robots, monitoreo ambiental.
Características: Optimización para recursos limitados.
Ventajas: Portabilidad. Desventajas: Depuración compleja.
Ejemplo gráfico: Código C para encender un LED en Arduino, con diagrama
de circuito.
A. Tipos de Direccionamiento
El Modo de Direccionamiento define cómo la CPU encuentra los datos o la
dirección de la siguiente instrucción.
1. Inmediato: El dato a operar está contenido en la propia instrucción (ej.
ADD A, #5 suma 5 al registro A).
2. Directo: La instrucción especifica la dirección de la memoria donde se
encuentra el dato (ej. LOAD R1, 0x200).
3. Indirecto (por Registro): La instrucción especifica un registro que
contiene la dirección de memoria donde se encuentra el dato (ideal para
punteros y arreglos).
4. Relativo: La dirección se calcula a partir del valor actual del Contador
de Programa (PC) más un desplazamiento (común en saltos
condicionales).
B. Puertos de Entrada/Salida (I/O Ports)
Son las interfaces físicas del MCU con el mundo externo. Un puerto es un
conjunto de pines (generalmente 8, 16 o 32) que pueden configurarse
individualmente como entrada o salida.
Registros de Control: Cada puerto tiene registros asociados (ej. DDR
para dirección, PORT para escritura, PIN para lectura) que el
programador manipula para controlar el estado y el flujo de datos.
C. Convertidores A/D y D/A
Convertidor Analógico a Digital (A/D o ADC): Transforma una señal
analógica continua (ej. voltaje de un sensor de temperatura o luz) en un
valor digital discreto (un número binario) que la CPU puede procesar. La
resolución (ej. 10 bits o 12 bits) define la precisión de esta conversión.
Convertidor Digital a Analógico (D/A o DAC): Transforma un valor
digital de la CPU en una señal de voltaje o corriente analógica continua
(ej. para controlar el brillo de un LED, generar una forma de onda o
controlar un motor de velocidad variable).
D. Temporizadores y Contadores (Timers)
Son bloques de hardware esenciales para las funciones de tiempo en el
sistema:
Temporizador: Mide periodos de tiempo fijos, contando los ciclos de
reloj del MCU. Utilizado para Interrupciones Periódicas y la gestión de
tareas.
Contador: Cuenta eventos externos (pulsos) que ocurren en un pin
específico.
Generación de PWM (Pulse Width Modulation): Los timers se usan
para generar señales de onda cuadrada con ciclos de trabajo variables,
esenciales para el control de velocidad de motores DC o el brillo de
LEDs.
E. Interfaces de Comunicación (Protocolos Seriales)
Los MCUs utilizan interfaces seriales para intercambiar datos con otros
dispositivos (sensores, otros MCUs, PCs, módulos inalámbricos).
7. Simbología y Estructura de Diagramas de Flujo
Los diagramas de flujo representan algoritmos visualmente. Símbolos:
Rectángulo (proceso), Rombo (decisión), Óvalo (inicio/fin), Flecha (flujo).
Estructura: Inicio → Procesos → Decisiones → Fin.
Sintaxis en Lenguaje de Alto Nivel (ej. C para Microcontroladores):
Operadores: Aritméticos (+, -), Lógicos (&&, ||), Bitwise (&, |).
Constantes: #define PI 3.14.
Variables: int temp = 25; (tipos: char, int, float).
Decisiones: if (condición) {acción}.
Repeticiones: for (i=0; i<10; i++) {loop}.
Funciones: void setup() {código}.
Arreglos: int arr[5] = {1,2,3,4,5}.
Cadenas: char str[] = "Hola".
Manipulación de Bits: PORTB |= (1<<PB0); (set bit).
Descripción de Programas: Involucran instrucciones (ADD, MOV),
interrupciones (ISR para eventos), direccionamiento (directo), comunicación
(UART send), registros (DDR para I/O).
Ejemplo gráfico: Diagrama de flujo para un programa de parpadeo de LED,
con código C adjunto.
8. Uso de Nuevas Tecnologías en Microcontroladores para IIoT
IIoT integra sensores, microcontroladores y redes para automatización
industrial. Tecnologías: Wi-Fi, Bluetooth, Ethernet en chips como ESP32.
Aplicaciones: Monitoreo de máquinas, control predictivo.
Características: Conectividad, análisis de datos en la nube.
Ventajas: Eficiencia, reducción de costos. Desventajas: Seguridad
(ciberataques).
Ejemplo gráfico: Arquitectura IIoT con microcontrolador conectado a sensores
y nube, diagrama de red.