Principal Diagram de Bloques
| |
ARQUITECTURA INTERNA
El PIC 16C84 al igual que los demás miembros de su familia, se caracterizan por
que :
- Su procesador es segmentado, "pipe-line".
- Su procesador es tipo RISC
- Tiene una arquitectura HARVARD
- El formato de las instrucciones es ortogonal
- Todas las instrucciones tienen la misma longitud (14 bits)
- La arquitectura está basada en banco de registros
¿Pero que significa todo esto? . Pues vamos a intentar aclarar estos
conceptos:
Procesador segmentado "pipe-line":
quiere decir que aplica la técnica de segmentación que permite al procesador realizar
simultáneamente la ejecución de una instrucción y la búsqueda de código de la
siguiente. De esta manera, se puede ejecutar una instrucción en un ciclo. (Cada ciclo de
instrucción son cuatro ciclos de reloj).

| Ejemplo: |
Búsqueda 1 |
Ejecuta 1 |
|
|
|
|
| 1. MOVLW 55h |
|
Búsqueda 2 |
Ejecuta2 |
|
|
|
| 2 .MOVWF PORTB |
|
|
Búsqueda 3 |
Ejecuta 3 |
|
|
| 3. CALL SUB_1 |
|
|
|
Busqueda 4 |
Salir |
|
| 4. BSF PORTA,BIT3 |
|
|
|
|
Busqueda SUB_1 |
Ejecuta SUB_1 |
Procesador Segmentado pipeline
Procesador tipo RISC:
Las CPU´s atendiendo al tipo de instrucciones que utilizan pueden clasificarse en:
- CISC
: (Complex Instruction
Set Computer) Computadores de juego de instrucciones complejo, que disponen de un
repertorio de instrucciones elevado (unas 80), algunas de ellas muy sofisticadas y
potentes, pero que como contrapartida requieren muchos ciclos de máquina para ejecutar
las instrucciones complejas.
- RISC
: (Reduced Instruction
Set Computer) Computadores de juego de instrucciones reducido, en los que el
repertorio de instrucciones es muy reducido (en nuestro caso 35), las instrucciones son
muy simples y suelen ejecutarse en un ciclo máquina. Además los RISC deben tener una
estructura pipeline y ejecutar todas las instrucciones a la misma velocidad.
- SISC
.(Specific Instriction
Set Computer) Computadores de juego de instrucciones específico.
Arquitectura
Harvard: Tradicionalmente los microprocesadores se basan en la estructura
de Von Neumann, como la de la figura siguiente, que se caracteriza por disponer de una
única memoria principal en la que se almacenan los datos y las instrucciones. A esta
memoria se accede a través de un sistema de buses único:
- Bus de datos
Bus de direcciones
- Bus de control

Arquitectura según el modelo de
Von Neumann
El modelo Harvard , representado en la figura siguiente, dispone
de dos memorias:
- Memoria de datos
- Memoria de Programa
Además cada memoria dispone de su respectivo bus, lo que permite,
que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la
de instrucciones. Como los buses son independientes éstos pueden tener distintos
contenidos en la misma dirección .

Arquitectura según el modelo HARVARD
Arquitectura
OrtogonalArquitectura
Ortogonal: Cualquier instrucción puede utilizar cualquier elemento de la
arquitectura como fuente o destino.
Arquitectura basada en banco de registrosArquitectura basada en banco de registros: Implica que
todos los elementos del sistema, es decir, temporizadores, puertos de entrada/salida,
posiciones de memoria, etc, están implementados físicamente como registros.
En los PIC el manejo del banco de registros, que participan activamente en
la ejecución de las instrucciones, es muy interesante al ser ortogonales. En la figura
siguiente se muestra como la ALU (Unidad Aritmético-Lógica) efectúa sus operaciones con
dos operandos, uno que proviene del registro W (Work), que en otras CPUs recibe el nombre
de Acumulador, y el otro que se encuentra en cualquier otro registro o del propio código
de instrucción.

Registros que pueden enviar datos
a la ALU. El resultado puede ir a cualquier registro o al registro W
En la Figura siguiente se representa el diagrama de bloques del
PIC 16C84 del que podemos resaltar las siguientes características:
- Memoria de programa EEPROM de 1Kx14 bits
- Memoria de datos dividida en 2 áreas:
- Área RAM formada por 22 registros de propósito específico (SFR) y 36 de propósito general
(GPR).
- Área EEPROM formada por 64 bytes.
- ALU de 8 bits y registro de trabajo W del que normalmente recibe un operando que
puede ser cualquier registro, memoria, puerto de Entrada/Salida o el propio código de
instrucción.
- Recursos conectados al bus de datos: PortA de 5 bits <RA0:RA4> , PortB de 8
bits <RB0:RB7>, Temporizador con Preescaler TMR0, etc.
- Contador de programa de 13 bit (lo que
en teoría permitiría direccionar 4 KB de memoria, aunque el 16C84 solo dispone de 1KB de
memoria implementada).
- Pila de 8 niveles.
Pulsar aquí para ver el diagrama de bloques
de la Arquitectura interna del PIC16C84
La arquitectura del
PIC16C84 se mantiene para todos los microcontroladores de esta subfamilia,
diferenciándose unos de otros por las siguientes características:
- PIC 16F84
PIC 16F84: La memoria de programa es de l K palabras de l4 bits, pero de tipo Flash.
La memoria de datos RAM tiene 68 registros de tamaño byte de propósito general, en lugar
de 36.
- PIC16CR84
: La memoria de programa es de IK palabras de 14 bits tipo ROM
y la de datos tiene iguales características que el PIC16F84.: La memoria de programa es de
1K palabras de 14 bits tipo ROM
y la de datos tiene iguales características que el PIC16F84.
- PIC16F83
PIC16F83: La memoria de programa es de 512 palabras de 14 bits y la RAM de
datos tiene 36 bytes de registros de propósito general.
- PIC16CR83
PIC16CR83: Igual que el PIC16F83, pero la memoria de instrucciones es de tipo
ROM, o sea, sólo grabable durante el proceso de fabricación y utilizada en grandes
series.
El elemento diferencial más importante del PIC16C84 respecto al
resto de los elementos de la familia media de los PIC, es que la su memoria de programa es
del tipo EEPROM y en el caso del PIC16F84 es que su memoria es del tipo Flash, por lo
demás, otros dispositivos de esta familia disponen de más memoria, tienen más
periféricos, etc..
El
Contador de Programas (PC)
Los microcontroladores de la gama media disponen de un
Contador de Programa (PC) de 13 bits, cuyos bits de menor peso corresponden a los 8 bits
del registro PCL, implementado en la posición de memoria RAM 02h (y duplicado en
la posición 82h),y los cinco bit de mayor peso del PC corresponden con los 5 bits de
menor peso del registro PCLATCH, implementado en la posición de memoria RAM 0Ah (y
duplicado en la posición 8Ah), lo que le permite direccionar hasta 8 K x 14 bits dividido
en páginas de 2 K x 14 bits. Sin embargo, el PIC16C84 dispone tan solo de 1Kx14 bits de
memoria implementada, desde la posición 0000h hasta la 03FFh, los 3 bit de mayor peso del
PC no los tiene en cuenta, así pues la dirección 30h, 430h, 830h, C30h,1430h, 1830 y
1C30h se considera como la misma.

En las instrucciones CALL y GOTO los 11
<10:0> bits de menos peso corresponden al código de operación, mientras que los 2
bit de mayor peso<12:11> los suministran respectivamente los bit 4 y 3 del registro PCLATH
que realmente apuntan a una de las 4 páginas del mapa de memoria que puede direccionar el
PC.
Un Reset provoca que se pongan a cero todos los bits del los
registros PCL y PCLATCH, forzando que la dirección de inicio sea la 0000h.
Como puede verse en la siguiente figura, el vector de reset se
almacena en la dirección 0000h, mientras que el vector de interrupción está en la
dirección 0004h. La memoria de programa de usuario propiamente dicha, comienza en la
posición 0005h y llega hasta la 03FFh

La Pila
La pila es una zona de memoria, que se encuentra separada tanto de
la memoria de programa como de la de datos. Tiene una estructura LIFO (Last In First
Out), por lo que el último valor que se guarda es el primero que sale. Dispone de 8
niveles de profundidad cada uno de ellos con una longitud de 13 bits. Su funcionamiento es
como el de un buffer circular, de tal forma que el valor que se obtiene al realizar nueve
desplazamientos, es igual al primer desplazamiento.
La única manera de cargar la Pila es a través de la instrucción
CALL (llamada a subrutina) o por una interrupción que hacen que con cada una de
ellas, se cargue el contenido del PC en el valor superior de la Pila. Para recuperar el
contenido de la Pila en el PC hay que ejecutar una instrucción RETURN, RETLW o
RETFIE (vuelta del programa de atención a una subrutina o interrupción).
No se dispone de ningún flag (identificador) que indique un
desbordamiento de la Pila.
Palabras de Configuración e Identificación
Los PIC de la gama media disponen de una palabra de configuración
de 14 bits que se escribe durante el proceso de grabación del dispositivo y que debe
hacerse de acuerdo con el sistema en el que se va a insertar. Dichos bits ocupan la
posición reservada de memoria de programa 2007h. En la Tabla siguiente se muestra
la estructura de la Palabra de configuración
| |
|
|
|
|
|
|
|
|
CP |
PWRTE |
WDTE |
FOSC1 |
FOSC2 |
| bit 13 |
bit12 |
bit11 |
bit 10 |
bit 9 |
bit 8 |
bit 7 |
bit 6 |
bit 5 |
bit 4 |
bit 3 |
bit 2 |
bit 1 |
bit 0 |
| Bit 4: CP, bit de configuración protección de
código 1= Protección de código desactivado
0=Protección de código activado
Bit 3: PWRTE, Activación del temporizador "Power-Up"
1= Desactivado
0= Activado
Bit 2: bit de configuración habilitación del Watchdog
(WDT)
1: WDT activado
0: WDT desactivado
Bit1 y 2: FOSC<1:0>
11: Oscilador RC
10 Oscilador HS ( 8 - 20 MHz)
01 Oscilador XT ( 100 KHz- 4MHz)
00 Oscilador LP (Bajo consumo 32- 200 Hz)
|
Palabra de Configuración del
PIC16C84
Además dispone de cuatro posiciones de memoria de programa
ubicadas en las direcciones <2000h:2003h>, reservadas para las Palabras de
Identificación ID. Estas palabras que se escriben durante el proceso de
grabación, sólo emplean los 4 bits de menos peso y se utilizan por el programador para
indicar el código del dispositivo, el número de serie, la versión del programa, etc.
|