Fundamentos de Microprocesadores y Microcontroladores: Arquitecturas, CPU y Especificaciones del PIC16F84A
Clasificado en Informática
Escrito el en
español con un tamaño de 7,64 KB
Conceptos Fundamentales: Microprocesador vs. Microcontrolador
Microprocesador (μP)
El microprocesador es la Unidad Central de Proceso (CPU). Se caracteriza por ser un sistema abierto, lo que implica:
- Requiere la adición de componentes externos (memoria, I/O) para formar un sistema completo.
- Permite el acceso a los buses de control, datos y dirección.
- El circuito se adapta a la tarea específica.
- Su memoria puede ser expandida.
- Su funcionamiento se basa en procesos complejos.
Partes Esenciales del Microprocesador:
- Direccionamiento de la Instrucción
- Decodificación de Instrucción
- Unidad de Control
- Unidad Aritmético-Lógica (ALU)
- Registro Índice y de Direccionamiento
- Registro de Estado
- Stack Pointer (Puntero de Pila)
Microcontrolador (μC)
El microcontrolador posee un procesador interno y se define como un sistema cerrado, ya que viene listo para operar. Solo se tiene acceso a los puntos de Entrada/Salida (I/O) de datos (periféricos) y sus características están predefinidas.
Partes del Microcontrolador:
- CPU
- Memoria (RAM, ROM, EEPROM)
- Módulos de I/O
- Periféricos
Características de Gran Aceptación del Microcontrolador:
- Gran adaptación a cambios.
- Bajos costos de implementación.
- Reducción de hardware.
- Mayor fiabilidad del sistema.
Arquitecturas de Procesamiento
Arquitectura RISC (Reduced Instruction Set Computing)
Posee un repertorio de instrucciones más reducido, sencillo y simple, lo que permite que las instrucciones se ejecuten generalmente en un solo ciclo de instrucción.
Arquitectura Harvard
La memoria de datos es independiente de la memoria de instrucciones y posee su propio sistema de buses para el acceso. Esto resulta en una mayor velocidad de operación, pero es un sistema más limitado al tener dos memorias independientes (instrucciones y datos).
Arquitectura Von Neumann
Tanto las instrucciones como los datos comparten una única memoria y un único bus. Esta estructura es generalmente más lenta y más limitada en términos de concurrencia de acceso.
Definiciones de Componentes del Sistema
- Microprocesador (CPU)
- Interpreta y ejecuta las operaciones elementales.
- Memoria
- Almacena el programa y los datos que procesa la máquina.
- Módulos de I/O
- Interfaz que permite la adaptación de la máquina con los periféricos.
- Periféricos
- Permiten la comunicación entre la máquina y el mundo exterior.
Estructura Interna de la CPU y Registros
La CPU se compone de varias unidades funcionales:
1. Direccionamiento de la Instrucción
Se realiza mediante el registro Program Counter (PC), el cual se incrementa de uno en uno y se carga con el valor deseado para apuntar a la siguiente instrucción.
2. Decodificación de Instrucción
Recibe la instrucción y determina su significado operativo.
3. Unidad de Control
Envía señales de control y sincronismo al sistema para ejecutar correctamente la instrucción.
4. ALU (Unidad Lógica y Aritmética)
Realiza las operaciones lógicas y aritméticas. La Unidad de Control gobierna su funcionamiento y se relaciona directamente con el acumulador (registro "W").
5. Registro Índice y de Direccionamiento
Participa activamente en el direccionamiento de la memoria.
6. Stack Pointer (Puntero de Pila)
Direcciona las posiciones de la memoria en las que se guardan temporalmente datos importantes de la CPU (utilizado en llamadas a subrutinas e interrupciones).
7. Registro de Estado (Status Register)
Contiene la información sobre el estado interno de la CPU una vez que se ejecuta la instrucción. Incluye los siguientes FLAGS (Banderas):
- Z (Zero): Se pone a 1 si el resultado de la operación es cero.
- I (Interrupt Enable): Se usa en el enmascaramiento de interrupciones.
- P (Parity): Se utiliza para comprobar la transferencia de datos.
- C (Carry): Bit de acarreo en rotaciones y desplazamientos.
- V (Overflow/Exceso): Indica si la suma de dos números con signo ha afectado al bit de signo.
- H (Half Carry): Acarreo del cuarto bit, utilizado en aritmética BCD.
Registro de Estado Específico (PIC)
En microcontroladores PIC, el Registro de Estado ocupa la posición 03h del banco 0 o la 83h del banco 1. Sus bits indican el estado de la última operación lógica o aritmética realizada, el estado de reset y los bits de selección de bancos:
- C: Acarreo del bit de mayor peso.
- DC: Acarreo del cuarto bit de menor peso.
- Z: (Cero) Se activa en 1 cuando el resultado de la operación es 0.
- PD: Power Down (Indicador de apagado).
- TO: Timer Out (Indicador de tiempo agotado).
- RP0-RP1: Selección de banco de direccionamiento directo.
- IRP: Selección de banco de direccionamiento indirecto.
Especificaciones del Microcontrolador PIC16F84A
El PIC16F84A es un microcontrolador de gama media con las siguientes características:
- Posee un procesador RISC segmentado de arquitectura Harvard.
- El set de instrucciones consta de 35 instrucciones de una sola palabra.
- Frecuencia máxima de operación: 20 MHz.
- Memoria de programa (Flash): 1024 palabras.
- Memoria RAM de datos: 68 bytes.
- Memoria EEPROM de datos: 64 bytes.
- Dispone de 22 Registros de Función Específica (SFR) y 68 de Propósito General (GPR).
- 13 líneas de I/O.
- 18 pines.
- Alimentación de 2V a 5V.
- Velocidad de operación: 200 nanosegundos (duración de un ciclo de máquina).
Segmentación (Pipeline) y Lenguajes de Programación
Significado de Segmentado o Pipeline
La segmentación permite que el procesador realice dos tareas de forma concurrente, logrando una mayor velocidad. Típicamente, ejecuta una instrucción mientras realiza la búsqueda del código de la siguiente. De esta manera, se puede ejecutar una instrucción en un ciclo de máquina (equivalente a 4 ciclos de reloj).
Tipos de Lenguaje
Lenguaje de Máquina y Bajo Nivel
- Binario: El lenguaje que entiende directamente la máquina.
- Hexadecimal: Utilizado para simplificar la representación del código binario.
- Mnemónicos: Códigos que representan el significado de las instrucciones para facilitar la programación.
- Assembler (Ensamblador): Es un programa fuente que se traduce a un programa objeto (binario). Trabaja con mnemónicos y sigue una serie de reglas. Cada instrucción puede ser de 1, 2 o 3 bytes.
Lenguajes de Programación de Alto Nivel
- Fortran: Aplicación enfocada en cálculo científico.
- Cobol: Aplicación enfocada en negocios.
- Basic: Aplicación de propósito general.
- C, C++: Aplicaciones de propósito general y desarrollo de sistemas.