Fundamentos de Microcontroladores: Arquitectura CPU, Ciclo de Ejecución, ADC y PWM

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,13 KB

Fundamentos de la CPU en Microcontroladores

Los componentes básicos de la Unidad Central de Procesamiento (CPU) de un sistema microcontrolador son:

  • Unidad Aritmético-Lógica (ALU): Realiza operaciones aritméticas y lógicas sencillas (+, -, AND, OR, etc.) entre datos almacenados en los registros.
  • Unidad de Control (CU): Secuencia las acciones en función de la instrucción a ejecutar. Se trata de una máquina de estados compleja que se encarga de la generación de las direcciones de acceso a las memorias de datos y programa, así como de la activación de las señales de control adecuadas en cada etapa del ciclo básico de ejecución de una instrucción.
  • Banco de Registros: Almacena datos y resultados de operaciones con la ALU.

Ciclo de Ejecución de Instrucciones de la CPU

Durante la ejecución de un programa, la CPU lee cíclicamente instrucciones de la memoria de programa, las interpreta (en función de su codificación en binario), y la Unidad de Control (máquina de estados compleja) activa las señales de control correspondientes para ejecutarlas. Esto se traduce en las siguientes fases:

  1. Búsqueda de la Instrucción: Consiste en la lectura de la instrucción que va a ejecutarse. Para ello, la dirección de la memoria de programa a la que apunta el Contador de Programa se sitúa en el bus de direcciones de la memoria de programa, de modo que la instrucción (código binario) se cargará en el Registro de Instrucciones.
  2. Decodificación de la Instrucción: Durante la decodificación, la instrucción es interpretada y se realizan tareas preparatorias para su ejecución, como la obtención de datos desde el banco de registros, si fuera necesario. En el caso de la instrucción ADD R3 R0, durante esta fase la Unidad de Control (UC) identificará que se trata de una operación de suma entre dos registros y se ordena la lectura de los registros 0 y 3 que van a intervenir en la operación.
  3. Operación / Ejecución: La UC activa las señales de control necesarias para que la ALU proceda a la realización de la operación entre registros que indica la instrucción a ejecutar. Esto solo sucede en las instrucciones que implican el uso de la ALU. En el caso de la operación ADD, la ALU realizará la suma entre los valores almacenados en los registros 0 y 3.
  4. Carga / Almacenamiento en Registros / Memoria: Si la instrucción implica el almacenamiento de datos procedentes de los registros en la memoria de datos, se realiza en esta fase. Alternativamente, el resultado de la operación puede almacenarse en el banco de registros. Este es el caso de la operación ADD R3 R0, que no implica almacenamiento en memoria de datos, sino el almacenamiento del resultado de la suma en el registro 3.
  5. Incremento del Contador de Programa: Finalmente, se incrementa el Contador de Programa, para que apunte a la próxima instrucción a ejecutar. Salvo en el caso de instrucciones de salto, que pueden modificar este valor de manera diferente, el contador se incrementa siempre en una unidad.

El Conversor Analógico-Digital (ADC)

El ADC es un periférico de entrada/salida que se encuentra dentro del microcontrolador, cuya función es convertir una entrada de tensión (voltaje en tiempo continuo) a un número digital (tiempo discreto), permitiendo al microcontrolador manejar ese número como un entero en un programa en C.

Por ejemplo, si se aplican 20mV a la patilla o pin del microcontrolador donde está el ADC, ¿qué valor leeremos? Si tenemos 3.3 voltios de tensión de referencia en el microcontrolador y 12 bits de resolución, la resolución es:

Resolución = 3.3V / 2^12 = 3.3V / 4096 ≈ 0.8 mV/bit

Modulación por Ancho de Pulso (PWM)

Una señal PWM tiene un periodo fijo y un ancho de pulso variable. El ciclo de trabajo (Duty Cycle) se define como:

D = ton / (ton + toff)

Entradas relacionadas: