PIC16F628A-ARQUITECTURA.
ARQUITECTURA INTERNA DEL PIC16F628A
El alto rendimiento del PIC16F628A se puede atribuir a una serie de arquitectura características que se encuentran comúnmente en los microprocesadores RISC.
Para empezar, el PIC16F628A utiliza una arquitectura de Harvard en la que el programa y los datos son accedidos desde memorias separadas empleando buses separados.
Esto mejora el ancho de banda sobre la arquitectura de Von Neumann donde el programa y los datos son sacados de la misma memoria.
El programa de separación y la memoria de datos, permite además dimensionar las instrucciones diferentes a la palabra de datos de 8 bits de ancho. Los códigos de instrucción tienen un ancho de 14 bits, lo que hace posible tener todas las instrucciones en una sola palabra.
Los códigos de operación son de 14 bits de ancho haciendo posible tener todas las instrucciones de una sola palabra.
Memoria de programa de 14 bits de ancho en bus de acceso obtiene una instrucción de 14 bits en un solo ciclo. Una canalización de dos etapas superpone la obtención y la ejecución de instrucciones.
En consecuencia, todas las 35 instrucciones se pueden ejecutar en un solo ciclo de reloj (200nS a 20MHz) excepto para las ramas de programa.
La siguiente tabla Enumera los tamaños de memoria del dispositivo (Flash, Datos, EEPROM).
Registros de propósito específico: Guardan la información específica del estado del sistema, como el puntero de pila o el registro de estado.
Memoria de programa del PIC16F628A (FLASH): tipo no volátil, el programa no desaparece, aunque se desconecte la alimentación. Tiene 2048 posiciones, 2KB de memoria.
Memoria RAM: 224 bytes. Destina a guardar las variables y datos. Es de tipo volátil es decir que los datos almacenados se borran cuando desaparece la alimentación.
Memoria EEPROM de datos: Es una pequeña área de memoria de datos de lectura y escritura no volátil, gracias a la cual, el corte del suministro de voltaje no ocasiona pérdida de información que estará disponible al reinicializarse el programa. (Esto será profundizado más adelante).
El PIC16F628A puede directa o indirectamente direccionar sus archivos de registro o memoria de datos.
Los registros de funciones especiales (SFR) incluido el programa del contador, se mapean en la memoria de datos.
El PIC16F628A tiene un conjunto de instrucciones que le permiten realizar cualquier operación en cualquier registro utilizando cualquier modo de direccionamiento.
Esta naturaleza simétrica y la falta de “situaciones óptimas especiales”, hace que la programación con el PIC16F628A sea sencilla pero eficiente. Además, la curva de aprendizaje se reduce significativamente.
En el PIC16F628A los dispositivos contienen una ALU de 8 bits y un registro de trabajo. La ALU es en general una unidad aritmética de propósito general. Realiza operaciones aritméticas y funciones booleanas entre datos en el trabajo y cualquier archivo de registro.
La ALU es de 8 bits de ancho y capaz de sumar, restar, realizar operaciones lógicas. A no ser que, mencionado de otra manera, las operaciones aritméticas son de dos complementos en la naturaleza.
En instrucciones de dos operandos, típicamente un operando es el registro de trabajo (Registro W), el otro operando es un registro de archivo o una constante inmediata. En instrucciones de un solo operando es el registro W o un registro de archivo.
El registro W es un registro de trabajo de 8 bits utilizado para ALU. No es un registro direccionable.
PULL UP: Acción de elevar el voltaje de salida de un circuito lógico al voltaje que por lo general mediante un divisor de voltaje se pone a la entrada de un amplificador con el fin de desplazar su punto de trabajo.
PRESCALER: Un prescaler es un circuito divisor de frecuencia que se ubica a la entrada de un temporizador/contador. Divide la frecuencia del oscilador en determinadas relaciones de entrada/salida (1: n) que se configuran por medio de la programación.
Por ejemplo, si la relación es 1:8 el prescaler entrega una frecuencia de salida igual a la octava parte de la frecuencia del oscilador.
Lo comparte el timer0 y el watchdog timer del microcontrolador.
Dependiendo de la instrucción ejecutada, la ALU puede verse afectada por los valores de Carry (c), Digit Carry (DC) y bits cero en el registro de estado.
Los bits C y DC pueden operar como borrow y digit borrow out bits, respectivamente en la resta. Ver SUBLW y SUBWF instrucciones para ejemplos.
CONTENIDOS MÁS RELEVANTES.