Fundamentos de Arquitectura de Microcontroladores y Lenguajes de Programación

Clasificado en Informática

Escrito el en español con un tamaño de 7,8 KB

Tipos de Lenguaje

En el ámbito de la informática, distinguimos principalmente dos categorías de lenguajes:

  • Lenguaje de Máquina

    Es el lenguaje directamente entendido por la máquina, compuesto por:

    • Binario: La representación fundamental (0s y 1s).
    • Hexadecimal: Utilizado para simplificar la representación del código binario y facilitar la programación.
    • Mnemónicos: Códigos abreviados que representan instrucciones, facilitando la comprensión del significado de las operaciones.
  • Lenguajes de Programación

    Permiten a los programadores escribir instrucciones de manera más abstracta y legible. Algunos ejemplos incluyen:

    • Assembly (Ensamblador): Un lenguaje de bajo nivel donde cada instrucción se traduce a un programa objeto (binario). Cada instrucción puede ser de 1, 2 o 3 bytes, trabaja con mnemónicos y sigue una serie de reglas específicas.
    • FORTRAN: Orientado principalmente a aplicaciones de cálculo científico y numérico.
    • COBOL: Diseñado para aplicaciones de negocios y procesamiento de datos.
    • BASIC: Un lenguaje de propósito general, conocido por su facilidad de aprendizaje.
    • C, C++: Lenguajes de propósito general, ampliamente utilizados en desarrollo de sistemas, aplicaciones y juegos, conocidos por su eficiencia y control de bajo nivel.

Recursos Auxiliares del PIC

Los microcontroladores PIC disponen de diversos recursos internos que facilitan su operación y la interacción con el entorno:

  • Circuito de Reloj: Genera los pulsos de sincronización necesarios para el funcionamiento de todo el sistema.
  • Temporizadores (Timer): Módulos dedicados a controlar y medir tiempos, esenciales para operaciones temporizadas.
  • Perro Guardián (Watchdog Timer): Un temporizador de seguridad que, si no se reinicia periódicamente por el programa, genera una reinicialización del microcontrolador cuando el programa queda bloqueado, evitando fallos permanentes.
  • Convertidores Analógico-Digital (CAD) y Digital-Analógico (DAC): Permiten al microcontrolador comunicarse de forma analógica con el mundo exterior, convirtiendo señales analógicas a digitales y viceversa.
  • Comparadores Analógicos: Circuitos que verifican el valor de una señal analógica en relación con un umbral o con otra señal analógica.
  • Sistema de Protección ante Fallas de Alimentación: Mecanismos que aseguran el correcto funcionamiento del microcontrolador frente a fluctuaciones o caídas de tensión.
  • Estado de Reposo (Sleep Mode): Un modo de operación donde el consumo de energía se reduce al mínimo, ideal para aplicaciones de baja potencia.

Tipos de Buses

Los buses son conjuntos de líneas que permiten la comunicación entre los diferentes componentes de un sistema informático:

  • Bus de Datos: Conjunto de 8 líneas (comúnmente) conectadas a todos los elementos del sistema. Por él fluye la información de datos e instrucciones, entrando y saliendo de la CPU. Es de naturaleza bidireccional.
  • Bus de Direcciones: Conjunto de 'n' líneas conectadas a todos los elementos direccionables. Es unidireccional, sacando información de la CPU (del procesador a la memoria) para especificar la ubicación de los datos o instrucciones.
  • Bus de Control: Conjunto de líneas que transportan información de control y estado, coordinando las operaciones entre los componentes. Es de naturaleza bidireccional.

Stack Pointer

El Stack Pointer es un registro que apunta a una ubicación de memoria separada del resto de la memoria de programa y de datos dentro del microcontrolador. En esta área, conocida como pila (stack), se guardan temporalmente los datos, especialmente las direcciones de retorno de las subrutinas. Cuando se ejecuta una subrutina con la instrucción CALL, la dirección de la siguiente instrucción se guarda en la pila. Se recupera con la instrucción de retorno de subrutina RETURN. En el caso de algunos PIC, dispone de 8 niveles de 13 bits cada uno. Opera bajo el principio LIFO (Last In, First Out), donde el último dato que se guarda es el primero que sale (o es leído).

Registros Clave del Microcontrolador

Los microcontroladores utilizan diversos registros para controlar su operación y almacenar información temporal:

  • Registro PC (Program Counter)

    Es el Contador de Programa (PC), que se utiliza para direccionar las instrucciones del programa de control que están almacenadas en la memoria. Por ejemplo, en el PIC16F84, el PC cuenta desde la posición 000h hasta la 3FFh. Después de que una instrucción es ejecutada, el PC se incrementa en 1 para apuntar a la siguiente instrucción a ejecutar, hasta llegar a la instrucción deseada.

  • Registro de Estado (STATUS)

    Este registro indica el último estado de la operación lógica o aritmética realizada, conteniendo bits como el Zero Flag (Z), Carry Flag (C), y Digital Carry Flag (DC), entre otros.

  • Registro de Trabajo (W - Working Register)

    Es el registro principal y participa en la mayoría de las instrucciones, ya que hace las veces del acumulador. Es fundamental para las operaciones aritméticas y lógicas, así como para la transferencia de datos.

  • Registro OPTION (OPTION_REG)

    Controla las características de los temporizadores y otras funciones periféricas. En el PIC16F84, por ejemplo, hay un solo temporizador, el Timer0, cuyas opciones de configuración se gestionan a través de este registro.

  • Registro INTCON (Interrupt Control Register)

    Es el registro con el que se configuran y habilitan las interrupciones. Permite controlar qué interrupciones están activas y si el sistema global de interrupciones está habilitado.

Tipos de Memorias

Los microcontroladores y sistemas informáticos emplean diferentes tipos de memoria, cada una con características específicas:

  • ROM (Read-Only Memory): Memoria de solo lectura. Su contenido es permanente y viene grabado de fábrica, no puede ser modificado por el usuario.
  • EPROM (Erasable Programmable Read-Only Memory): Memoria programable y borrable. Se graba mediante un grabador de EPROM y se borra exponiéndola a luz ultravioleta (UV).
  • OTP (One-Time Programmable): Memoria programable una sola vez. Una vez grabada, su contenido no puede ser borrado ni modificado. Son de bajo costo.
  • EEPROM (Electrically Erasable Programmable Read-Only Memory): Memoria programable y borrable eléctricamente. Se borra de forma eléctrica y se graba de manera similar a las EPROM, pero sin necesidad de luz UV. Generalmente, tienen un elevado consumo de energía en comparación con otras memorias no volátiles.
  • Flash Memory: Una forma de EEPROM no volátil. Se caracteriza por su bajo consumo de energía y la capacidad de ser grabada y borrada eléctricamente, al igual que la EEPROM, pero ofrece una mayor capacidad de almacenamiento y velocidades de operación más rápidas.

Entradas relacionadas: