Beruflich Dokumente
Kultur Dokumente
Los conocimientos adquiridos en sistemas digitales, nos permite tener una idea clara de los mltiples usos que
esta tecnologa tiene en la actualidad, tanto en la industria, como en los elementos bsicos y de uso diario, por
ejemplo se encuentran en relojes, calculadoras, electrodomsticos, instrumentos musicales, automviles y en
general, en casi todo tipo de maquinaria industrial. Sin embargo, esta tecnologa es esttica en cuanto al uso, es
decir, para cada funcin digital se requiere de un circuito. Por ejemplo: Si se quiere sumar dos nmeros binarios,
se utilizar un circuito aritmtico (ALU), y si adems se requiere desplazar el resultado un bit a la derecha, se
requerir de otro circuito y as sucesivamente. A esto se denomina lgica cableada, es decir, por cada funcin se
requiere de un circuito nuevo.
Lo ideal sera, que mediante un circuito nico se pudiera realizar cualquier funcin que se requiera sin la
necesidad de cambiar su configuracin circuital. A esto se denomina lgica programada, es decir la funcin se
realiza mediante ordenes dadas en un lenguaje entendible para el circuito, es decir, mediante cdigos binarios.
De tal manera de obtener un circuito nico denominado Unidad Central de Proceso (CPU). Las nuevas tecnologas
han permitido desarrollar circuitos integrados LSI que contienen los elementos bsicos de la CPU y a un costo
cada vez ms econmico, permitiendo con ello el uso de computadoras y microcontroladores en forma tan
frecuente como lo es ahora.
El Microprocesador est internamente compuesto de circuitos digitales como Contadores, circuitos aritmticos,
Registros, etc. Adems de una lgica de control que pueda entender una orden y ejecutarla fcilmente.
Programa: Un programa, es un conjunto de instrucciones u ordenes que indica al microcomputador que es lo que
debe de realizar instante por instante. En otras palabras, es un conjunto secuencial de instrucciones.
Instruccin: Una instruccin es una orden que indica a la mquina que es lo que debe realizar, esta instruccin
esta dividida en dos partes denominadas cdigo de operacin o cdigo de instruccin y operando.
El cdigo de operacin contiene la funcin o accin que la instruccin debe realizar, por ejemplo: Sumar dos
datos, incrementar un dato, Etc.
El operando, contiene los datos o bien indica el lugar o direccin de memoria donde se deben tomar los datos que
van a ser operados de acuerdo a la indicacin entregada por el cdigo de operacin.
El Microprocesador est internamente compuesto de circuitos digitales como Contadores, circuitos aritmticos,
Registros, etc. Adems de una lgica de control que pueda entender una orden y ejecutarla fcilmente.
Estructura de un micro computador basado en microprocesador
Los Micromputadores basados en microprocesador, consta fundamentalmente de las siguientes partes:
1.- Microprocesador o CPU: Es el Cerebro del microcomputador, pues en ella se realizan todas las operaciones
aritmticas, lgicas y traslado de informacin, adems de efectuar el control del sistema mediante un
programa que es un conjunto de instrucciones u ordenes que indican a la CPU que es lo que debe realizar
instante por instante. Normalmente el programa es realizado por el mantenedor del sistema o el usuario.
2.- Memoria Principal: Puede estar compuesta por memorias RAM, ROM, PROM, EPROM, etc. O por
combinaciones de estos dispositivos. Su funcin fundamental es almacenar el programa y datos con lo cual el
microcomputador trabaja.
3.- Perifricos de entrada: Son elementos que permiten ingresar datos por el usuario hacia el computador.
Entre estos elementos se encuentra por ejemplo el teclado del computador, pero no es el nico perifrico de
entrada.
4.- Perifricos de salida: Son dispositivos o equipos que permiten sacar los datos desde el computador hacia el
usuario, por ejemplo el monitor.
5.- Interfaz de entrada y/o salida: Son circuitos que permiten conectar los dispositivos perifricos con el
microprocesador y/o memoria principal. Estos dispositivos difieren en su complejidad, sin embargo, contienen
por lo menos compuertas de Tri-estados y registros. Algunos contienen adems conversores digital/anlogo
y/o conversores anlogo/ digital.
6.- Buces: Son lneas paralelas o conexiones elctricas comunes que permiten unir a la CPU con algn otro
dispositivo, las caractersticas de cualquier bus son: Anchura del bus o nmero de bits que transporta en un
instante dado; sentido del bus, es decir, en un sentido o doble sentido; y tipo de informacin que transporta.
Por esta ltima razn los buces se dividen en 3 clases que son:
6.1 Bus de datos: Permite transportar la palabra de datos con que se estn trabajando (normalmente son
mltiplos de 8, es decir, 8; 16; 32; etc.) y permiten comunicar a la CPU con la memoria principal y/o interfaz.
Estas lneas son bidireccinales, es decir, pueden ingresar o sacar datos con la CPU.
6.2 Bus de direccin: Estas lneas permiten selectar una celda dentro de la memoria principal y tambin es
utilizado para selectar algn registro dentro de la interfaz de entrada o salida. La direccin es principalmente
controlada por la CPU, por tanto estas lneas son solamente de entrada para los dispositivos externos a la
CPU.
6.3 Bus de control: Estas lneas permiten controlar al microcomputador, por ejemplo, est la lnea que permite
llevar los voltajes de alimentacin; las seales de interrupcin y arranque del microcomputador; seales que
permiten selectar a un dispositivo en particular y no otro (Seleccin de Chip o CS); Lnea de escritura o lnea de
lectura de la memoria; Etc.
La figura #1: Muestra una configuracin bsica de un microcomputador basado en microprocesador.
El tamao de los datos o instrucciones esta fijado por el ancho del bus de la memoria o bus de datos. Es decir
que un microprocesador de 8 bits, que tiene adems un bus de datos de 8 bits que lo conecta con la memoria,
deber manejar datos e instrucciones de una o ms unidades de 8 bits (bytes) de longitud. Cuando deba
acceder a una instruccin o dato de ms de un byte de longitud, deber realizar ms de un acceso a la memoria.
Por otro lado, este bus nico limita la velocidad de operacin del microprocesador, ya que no se puede buscar de
memoria una nueva instruccin, antes de que finalicen las transferencias de datos que pudieran resultar de la
instruccin anterior. Es decir que las dos principales limitaciones de esta arquitectura tradicional son:
- La longitud de las instrucciones esta limitada por la unidad de longitud de los datos, por lo tanto el
microprocesador debe hacer varios accesos a memoria para buscar instrucciones complejas.
- La velocidad de operacin (o ancho de banda de operacin) esta limitada por el efecto de cuello de botella
que significa un bus nico para datos e instrucciones que impide superponer ambos tiempos de acceso.
La arquitectura Von Neumann permite el diseo de programas con cdigo automodificable, prctica bastante
usada en las antiguas computadoras que solo tenan acumulador y pocos modos de direccionamiento, pero
innecesaria, en las computadoras modernas.
El proceso de ejecucin de una instruccin es el siguiente:
1) El registro contador de programa genera una instruccin (por ejemplo direccin o).
2) Esta direccin sale por el bus de direccin hacia la memoria.
3) El contenido de la direccin cero sale por el bus de datos hacia el registro de instruccin y desde all hacia el
registro decodificador de instruccin (a estos tres primeros pasos se le denomina ciclo de bsqueda de una
instruccin, para luego empezar el ciclo de ejecucin de instruccin).
4) El registro decodificador de instruccin entregar la configuracin adecuada a la Unidad aritmtica y lgica
(ALU) para que esta realice la operacin indicada e incrementara el contador de programa para seleccionar el
dato (en este caso el dato ser el que esta en la direccin 1 de la memoria.
5) El resultado de la ALU ser guardado en el registro acumulador (A) o bien en una direccin de memoria.
6) El registro contador de programa se incrementar para ejecutar la nueva instruccin.
La arquitectura Harvard:
La arquitectura conocida como Harvard, consiste simplemente en un esquema en el que el CPU esta conectado a
dos memorias por intermedio de dos buses separados. Una de las memorias contiene solamente las instrucciones
del programa, y es llamada Memoria de Programa. La otra memoria solo almacena los datos y es llamada
Memoria de Datos como se muestra en la figura 3.
Frecuencias de trabajo
32 Khz
200 Khz
200 Khz
2MHz
4MHz
C1 (pF)
68 -100
15 - 30
C2 (pF)
68-100
15 - 30
68 - 150
15 - 30
15 - 30
150 - 200
15 - 30
15 - 30
HS
8 MHz
15 - 30
15 - 30
10 MHz
15 - 30
15 - 30
20 MHz
15 - 30
15 - 30
Tabla #2: Valor de capacitares en los osciladores para las frecuencias que se indican.
b) Temporizadores: Orientados a controlar tiempos.
c) Perro guardin (Watch dog timer): Destinado a provocar una reinicializacin cuando el programa queda
bloqueado.
d) Conversores AD y DA: Para poder recibir y enviar seales analgicas.
e) Sistema de proteccin ante fallos de la alimentacin
f) Estado de reposo: En que el sistema queda congelado y el consumo de energa es mnimo.
La gran ventaja que presentan estos microcontroladores, obedece a su bajo costo y gran facilidad de
implementacin, sin embargo, el hecho de tener todo integrado en un mismo Chip restringe la cantidad de
informacin a ingresar, la longitud del programa y el nmero de instrucciones que pueda tener definido cada
microcontrolador, por tal motivo, su utilizacin se da en el mbito de controlar procesos muy especficos y
acotados, as por ejemplo los computadores personales utilizan microcontroladores para muchas funciones, por
ejemplo, en la deteccin del tipo de carcter seleccionado en el teclado, en el proceso de imprimir un carcter en
pantalla. Etc., sin embargo hoy en da su utilidad se da en casi todos los mbitos, desde controlar la cantidad de
combustible requerido en los vehculos, hasta equipos utilizados en electromedicina, en los procesos de
transmisin de datos y el hogar (ejemplo. El Horno de microondas, lavadoras automticas, etc.).
La limitacin de memoria y la cantidad de instrucciones, no son las nicas diferencias existentes entre un
microprocesador que es un sistema abierto donde sus terminales deben contener a los buses de direccin; de
datos y de control y un microcontrolador que es un sistema cerrado, sino que tienen otras diferencias que se
indican a continuacin.
Otra caracterstica importante en el microcontrolador se muestra en el hecho que se reemplaza el trmino Registro
Acumulador (A) por el de Registro de Trabajo (W) como se muestra en la figura #5.
En los microcontroladores tradicionales todas las operaciones se realizan sobre el acumulador. La salida del
acumulador esta conectada a una de las entradas de la Unidad Aritmtica y Lgica (ALU), y por lo tanto ste es
siempre uno de los dos operandos de cualquier instruccin. Por convencin, las instrucciones de simple
operando (borrar, incrementar, decrementar, complementar), actan sobre el acumulador. La salida de la ALU
va solamente a la entrada del acumulador, por lo tanto el resultado de cualquier operacin siempre quedara en
este registro. Para operar sobre un dato de memoria, luego realizar la operacin siempre hay que mover el
acumulador a la memoria con una instruccin adicional.
En los microcontroladores PIC, la salida de la ALU va al registro W y tambin a la memoria de datos, por lo tanto el
resultado puede guardarse en cualquiera de los dos destinos. En las instrucciones de doble operando, uno de los
dos datos siempre debe estar en el registro W, como ocurra en el modelo tradicional con el acumulador. En las
instrucciones de simple operando el dato en este caso se toma de la memoria (tambin por convencin). La gran
ventaja de esta arquitectura es que permite un gran ahorro de instrucciones ya que el resultado de cualquier
instruccin que opere con la memoria, ya sea de simple o doble operando, puede dejarse en la misma posicin de
memoria o en el registro W, segn se seleccione con un bit de la misma instruccin. Las operaciones con
constantes provenientes de la memoria de programa (literales) se realizan solo sobre el registro W.
En la memoria de datos de los PICs se encuentran ubicados casi todos los registros de control del
microprocesador y sus perifricos autocontenidos, y tambin las posiciones de memoria de usos generales. En el
caso de los 16C5X, algunos registros especiales de solo escritura (TRIS y OPTION) no estn accesibles dentro
del bloque de memoria de datos, sino que solo se pueden cargar desde el registro W por medio de instrucciones
especiales.
En general, se puede decir que el PIC 16F84 posee una memoria de programa de 1024 direcciones que va desde
la direccin 000h hasta la direccin 3FFh con 14 bits cada una de las direcciones..
Memoria de datos: La memoria de datos, tambin llamada archivo de registros (register file), esta dividida en dos
grupos: los registros especiales, y los registros de propsito general. Los primeros ocupan las primeras
posiciones y los segundos las posiciones que siguen.
Entre los registros especiales se encuentran el registro de estado (STATUS); los registros Tri-estado de los
puertos de entrada / salida; los Puertos de E/S como el puerto A, Puerto B, Puerto C, etc.), los 8 bits menos
significativos del program counter (PC), el contador de tiempo real o Real Time Clock/Counter (RTCC) y un
registro puntero llamado File Select Register (FSR). La posicin 00 no contiene ningn registro en especial y es
utilizada en el mecanismo de direccionamiento indirecto.
Contador de Programa
Este registro, normalmente denominado PC, es totalmente equivalente al de todos los microprocesadores y
contiene la direccin de la prxima instruccin a ejecutar. Se incrementa automticamente al ejecutar cada
instruccin, de manera que la secuencia natural de ejecucin del programa es lineal, una instruccin despus de
la otra. Algunas instrucciones que llamaremos de control, cambian el contenido del PC alterando la secuencia
lineal de ejecucin. Dentro de estas instrucciones se encuentran el GOTO y el CALL que permiten cargar en
forma directa un valor constante en el PC haciendo que el programa salte a cualquier posicin de la memoria.
Otras instrucciones de control son los saltos condicionales, que producen un incremento adicional del PC si se
cumple una condicin especifica, haciendo que el programa salte, sin ejecutar, la instruccin siguiente.
El PC es un registro de 9 a 12 bits, dependiendo de la cantidad de memoria de progama. Por ejemplo se tiene 9
bits en los 16C54/55, 10 bits en el 16C56, y 11 bits en el 16C57, lo que permite direccionar respectivamente 512,
1024 o 2048 posiciones de memoria de programa.
Al inicializar o hacer reset en el microprocesador, todos los bits del PC toman valor 0, de manera que la direccin
de arranque del programa es siempre la primera posicin de memoria de programa.
A diferencia de la mayora de los microprocesadores convencionales, el PC es tambin accesible al programador
como registro de memoria interna de datos, en la posicin de 02. Es decir que cualquier instruccin comn que
opere sobre registros puede ser utilizada para alterar el PC y desviar la ejecucin del programa. El uso
indiscriminado de este tipo de instrucciones complica el programa y puede ser muy peligroso, ya que puede
producir comportamientos difciles de predecir. Sin embargo, algunas de estas instrucciones utilizadas con cierto
mtodo, pueden ser muy tiles para implementar poderosas estructuras de control tales como el goto computado.
Como el microprocesador opera con datos de 8 bits, y la memoria de datos es tambin de 8 bits, estas
instrucciones solo pueden leer o modificar los bits 0 a 7 del PCL. Los otros bits del contador de programa se
encuentran en el registro PCLATH que se encuentra en la posicin 0A de la memoria de datos, especficamente
en los bits 0 y 1 de tal registro como se muestra en la siguiente figura:
Stack
En los microcontroladores PIC el stack es una memoria interna dedicada, de tamao limitado, separada de las
memorias de datos y de programa, inaccesible al programador, y organizada en forma de pila, que es utilizada
solamente, y en forma automtica, para guardar las direcciones de retorno de subrrutinas e interrupciones. Cada
posicin es del tamao adecuado para guardar una copia completa del PC. Como en toda memoria tipo pila, los
datos son accedidos de manera tal que el primero que entra es el ultimo que sale.
En los 16C5X el stack es de solo dos posiciones, mientras que en los 16CXX es de 8 posiciones y en los 17CXX
es de 16 posiciones. Esto representa, en cierta medida, una limitacin de estos microcontroladores, ya que no
permite hacer uso intensivo del anidamiento de subrutinas. En los 16C5X, solo se pueden anidar dos niveles de
subrutinas, es decir que una subrutina que es llamada desde el programa principal, puede a su vez llamar a otra
subrutina, pero esta ultima no puede llamar a una tercera, porque se desborda la capacidad del stack, que solo
puede almacenar dos direcciones de retorno. Esto de hecho representa una traba para el programador y adems
parece impedir o dificultar la programacin estructurada, sin embargo es una buena solucin de compromiso ya
que estos microcontroladores estn diseados para aplicaciones de alta velocidad en tiempo real, en las que el
overhead (demoras adicionales) que ocasiona un excesivo anidamiento de subrutinas es inaceptable. Por otra
parte existen tcnicas de organizacin del programa que permiten mantener la claridad de la programacin
estructurada, sin necesidad de utilizar tantas subrutinas anidadas.
Como ya se menciono anteriormente, el stack y el puntero interno que lo direcciona, son invisibles para el
programador, solo se los accede automticamente para guardar o rescatar las direcciones de programa cuando se
ejecutan las instrucciones de llamada o retorno de subrutinas, o cuando se produce una interrupcin o se ejecuta
una instruccin de retorno de ella.
Palabra de Estado del Procesador
La palabra de estado del procesador contiene los tres bits de estado de la ALU (C, DC y Z), y otros bits que por
comodidad se incluyeron en este registro.
Registro STATUS
-
El bit C indica acarreo del bit ms significativo (bit 7) del resultado de la ultima operacin de suma. En el
caso de la resta se comporta a la inversa, C resulta 1 si no hubo pedido de prstamo. El bit C es usado
adems en las operaciones de rotacin derecha o izquierda como un paso intermedio entre el bit 0 y el bit
7.
El bit DC (digit carry) indica acarreo del cuarto bit (bit 3) del resultado de la ultima operacin de suma o
resta, con un comportamiento anlogo al del bit C, y es til para operar en BCD (para sumar o restar
nmeros en cdigo BCD empaquetado).
El bit PD (POWER DOWN) o bit de bajo consumo, sirve para detectar si la alimentacin fue apagada y
encendida nuevamente, tiene que ver con la secuencia de inicializacin, el watch dog timer y la instruccin
sleep que coloca en cero el bit.
1 = Funcionamiento normal
0 = Funcin en modo Bajo consumo
El bit TO (TIME-OUT) sirve para detectar si una condicin de reset fue producida por el watch dog timer,
esta relacionado con los mismos elementos que el bit anterior y Se coloca en 0 cuando el circuito de
vigilancia Watch dog finaliza la temporizacin.
PA0 y PA1 o tambin llamados RP0 y RP1, es un selector de pgina por direccionamiento directo
(OPCODE) y se utilizan en las instrucciones de salto directo como GOTO y CALL:
RP1,RP0 = 0,0 = Activo el banco 00
RP1,RP0 = 0,1 = Activo el banco 01
RP1,RP0 = 1,0 = Activo el banco 10
RP1,RP0 = 1,1 = Activo el banco 11
En realidad en el 16C54 estos bits no se usan y sirven para propsitos generales. En el 16C57 el PA0 si
se usa pero los otros dos no. En el 16C55 se utilizan PA0 y PA1. PA2 esta reservado para uso futuro y
solamente RP0 se utiliza en el PIC 16F84. RP1 se puede utilizar como un bit de propsito general.
PA2 o tambin llamado IRP, es un selector de pgina para direccionamiento indirecto (FSR). S IRP = 0
indica Activo el banco 00 el banco 01. S IRP = 1 indica activo el banco 10 el 11. Este bit no se
utiliza efectivamente en el PIC 16F84, por lo que tambin se puede utilizar como un bit de propsito
general.
Los microcontroladores PIC 16C5X, 16CXX y 17CXX poseen arquitectura Harvard, con una memoria de datos de
8 bits, y una memoria de programa que, segn el modelo, puede ser de:
12 bits para los 16C5X.
Profesor: Ingeniero electrnico Sr. Miguel Musalem Musalem
10
11
4 MHz
20 MHz
20MHz
20 MHz
4
12
12
12
TMRO + WDT
TMRO + WDT
TMRO + WDT
TMRO + WDT
18
18
18
18
24
25
72
72
20 MHz
20 MHz
20 MHz
20 MHz
20
12
20
20
TMRO + WDT
TMRO + WDT
TMRO + WDT
TMRO + WDT
18
18
18
18
73
73
20 MHz
20 MHz
12
12
TMRO + WDT
TMRO + WDT
18
18
12
Interrupciones
E/
S
Terminale
s
4
4
4
4
13
13
13
13
18
18
18
18
13
18
2Kx16
4Kx16
8Kx16
8Kx16
16Kx16
232
454
454
454
902
48
48
48
76
76
4 + WDT
4 + WDT
4 + WDT
4 + WDT
4 + WDT
2
2
2
4
4
2
2
2
3
3
12
12
11
11
11
18
18
33
33
33
50
50
40/44
40/44
40/44
64/68
64/68
13