Professional Documents
Culture Documents
Microprocesadores y Microcontroladores
Arquitectura de computadoras, microprocesadores y microcontroladores 2
Introduccin
Los lenguajes naturales son imprcticos para el uso en computadoras, los lenguajes de
programacin tales como FORTRAN, BASIC, PASCAL y C, que contienen estructura definida,
precisa y con sintaxis, simplifican la comunicacin con una computadora, dichos lenguajes estn
orientados hacia problemas y contienen expresiones y palabras familiares. Los lenguajes de
programacin se han desarrollado para tener control programado de mquinas, adquisicin de
datos, instrucciones ayudadas por computadora y muchas otras aplicaciones. En el futuro surgirn
muchos ms lenguajes de programacin. Cada lenguaje nuevo desarrollado permitir al usuario
aplicar ms fcilmente la potencia de la computadora a su problema en particular.
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 3
Las computadoras se han utilizado de forma general desde los aos 50's. En un principio las
computadoras digitales eran sistemas grandes y costosos utilizados por el gobierno,
universidades y grandes empresas. El tamao y forma de las computadoras digitales cambiaron
gracias a la invencin del circuito integrado (IC). El cual permiti tener todo un procesador en
una sola pastilla denominndolo microprocesador. El microprocesador es un pequeo, pero
extremadamente complejo dispositivo LSI2 o VLSI3 . Las computadoras utilizan un programa
almacenado. Una computadora utiliza un microprocesador y algn tipo de memoria
semiconductora.
Dispositivo
de Salida
Ducto de Direcciones
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 4
Del mundo
real
ENTRADA(S)
Bus de
Direcciones
C.P.U. Bus de
Datos
A.L.U.
Memoria de Datos
(RAM)
Memoria
SALIDA(S)
Al mundo
real
Figura 1.2 Diagrama de bloques de un sistema basado en microprocesador.
La unidad central de procesamiento o CPU controla las operaciones del sistema computarizado,
este trae el cdigo binario de la instruccin desde la memoria, decodifica las instrucciones a
una serie de acciones simples y lleva acabo tales acciones. EL CPU contiene una unidad
aritmtica y lgica o ALU, la cual realiza operaciones como sumar, restar, or, and, xor, invertir
etc. sobre palabras binarias, cuando las instrucciones as lo requieran. El CPU tambin contiene
un contador de direcciones o contador de programa el cual se utiliza para retener la direccin
de la prxima instruccin o dato a ser trado desde la memoria, ademas contiene registros de
propsito general los cuales se utilizan para almacenar temporalmente datos binarios y una
circuitera de control que genera las seales del ducto de control.
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 5
La unidad aritmtica y lgica o ALU (Arithmetic Logic Unit) es una seccin de la unidad
central de procesamiento (CPU) que realiza operaciones aritmticas y lgicas sobre datos
llevados a ella. La ALU tpicamente opera sobre uno o dos valores llamados operandos y los
cambia de alguna manera en acorde a un operador que se especifica. Por ejemplo, la
instruccin:
C A B
Entrada A Entrada B
Lineas de
A.L.U. Control
Salida C
Figura 1.3 Unidad Aritmtica y Lgica bsica que muestra dos valores de
entrada, seales de control para seleccionar la operacin a realizar y su salida.
La seccin de entrada y salida (E/S) permite a la computadora tomar datos del mundo real o
mandar datos al mundo real. Los perifricos tales como teclados, pantalla, impresores y
modems se conectan a la seccin de E/S. Esta seccin permite que el usuario y la computadora
se comuniquen en diferentes direcciones, es decir usuario computadora y computadora
usuario.
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 6
Cuando se trabaja en el ambiente del las computadoras constantemente se utilizan los trminos
hardware, software y firmware. Hardware es el nombre que se le da a los dispositivos fsicos y
circuitos de la computadora. Software se refiere a los programas escritos para la computadora.
Firmware es el termino que se le da a los programas almacenados permanentemente (programas
en ROM).
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 7
Existen dos conjuntos de ductos distintos que pueden ser identificados en un microprocesador.
Uno de estos conjuntos son los ductos internos que forman parte de la organizacin interna del
microprocesador y este es de gran inters para los diseadores del IC y poco concerniente
para los diseadores de aplicaciones con microprocesadores. Estos ductos internos no tiene
efecto sobre la interfaz del IC con el exterior y solo afectan sobre la velocidad efectiva del
microprocesador.
El bus de direcciones consiste de 16, 20, 24 o mas lneas de seales en paralelo. Por estas lneas
el CPU enva la localidad de memoria en la cual va escribir o leer. El nmero de localidades que
el CPU puede direccionar o accesar se determina por el nmero de lneas del bus de direcciones.
Si el CPU tiene N lneas de direccin entonces puede direccionar 2N localidades. Cuando el
CPU lee o manda datos a o desde un puerto, la direccin del puerto tambin se enva por el bus
de direcciones.
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 8
El ducto de datos consiste de 8,16, 32 o mas lneas de seales en paralelo, estas lneas son
bidireccionales. Esto significa que el CPU puede leer datos por estas lneas desde la memoria
o un puerto, as tambin puede mandar datos a una localidad de memoria a un puerto. Muchos
dispositivos en un sistema pueden tener sus salidas conectadas al ducto de datos, pero las salidas
de solamente un dispositivo pueden estar habilitadas. Cualquier dispositivo conectado al ducto
de datos debe ser de tres estados as estos dispositivos pueden estar flotados cuando no estn
en uso.
Transferir datos hacia y desde la memoria, y hacia y desde las secciones de E/S.
Por lo general los CPU contiene como mnimo los elementos mostrados en la figura 1.4. Las
secciones principales incluyen diversos registros, la unidad aritmtica y lgica, el decodificador
de instrucciones y la seccin de temporizacin y control. La mayora de los CPU realmente
contienen mas registros especiales, as como muchas entradas y salidas no detalladas en la figura
1.4.
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 9
CPU
Registro
Unidad aritmtica temporal
B
y lgica
u B B
u Acumulador u Bus de
Bus de f s
Direcciones s Datos
f B
e i u
r i
n Contador de programa f
/ n
t f
e t
L e
a r Decodificador e
Registro de r
t n r
c o de instrucciones instrucciones n
h o
Lineas Lineas
de control de entrada
Temporizacin y Control
La unidad aritmtica y lgica (ALU) del CPU realiza operaciones tales como suma,
corrimiento circular, comparacin, incrementar, decrementar, negar, AND, OR, XOR,
complemento, limpiar y preestablecer. Si la ALU fuera dirigida por medio de la instruccin para
sumar, el procedimiento sera algo como lo que se vera en la figura siguiente:
Acumulador Acumulador
0000 0101
Registro temporal
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 10
ALU
Registro de Estado
B
u
s
Registro i
n
temporal t
Sumador e
Desplazador r
Acumulador n
o
Como se ve en la figura 1.5, el contenido del acumulador (0A16) se suma al contenido del
registro temporal (0516) luego la suma (0F16) se coloca de regreso en el acumulador. Esta
operacin puede ser extrapolada a la figura 1.6 la cual muestra un diagrama a bloques de una
ALU genrica.
En 1968 se fund la Intel Corporation con el fin de hacer pastillas de memorias. Al poco
tiempo se acerc a Intel un fabricante de calculadoras que solicit un CPU en una sola pastilla,
y otro, que deseaba una pastilla controladora para terminales. Intel fabric para estos clientes,
las que fueron las primeras Unidades Centrales de Procesamiento en una sola pastilla: la 4004
de 4 bits y la 8008 de 8 bits.
Estos productos despertaron un gran inters, por lo que la compaa se dedic a disear
un CPU de propsito general, similar al 8008 de 16K de memoria mxima obteniendo como
resultado en 1974 el 8080.
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 11
Dos aos ms tarde, en 1976, Intel laz al mercado el procesador 8085 una variante
del 8080 con componentes adicionales para algunas funciones de entrada/salida. Despus vino
el 8086, un verdadero CPU de 16 bits en una sola pastilla, similar al 8080, pero no compatible
con ste.
Sigui el 8088, que tena la misma arquitectura que su predecesor y poda ejecutar los mismos
programas, pero con un ducto de 8 bits en vez de 16, que lo haca ms lento y ms barato que
el 8086.
En los aos siguientes, Intel fabric el 80186 y el 80188, que fueron en esencia nuevas
versiones del 8086 y 8088 respectivamente, pero con una gran cantidad de circuitos de
entrada/salida. Su uso nunca se propag.
Intel dise una versin mejorada del 8086: el microprocesador 80286, cuyo conjunto
de instrucciones es prcticamente igual al de los anteriores, pero la organizacin de la memoria
era muy diferente y difcil de manejar debido al requerimiento de compatibilidad con las
versiones previas. El 80286 fue utilizado por IBM en su PC/AT y en el modelo mediano PS/2 y
al igual que el 8088 tuvo gran xito.
El siguiente microprocesador fue uno de 32 bits en una sola pastilla, el 80386, que era
ms o menos compatible con las versiones previas hasta el 8088. Este procesador, igual que el
80286, est siendo muy utilizado.
El 80386SX es una versin especial del 80386, diseado para conectarse en el soporte
del 80286 y permitir la actualizacin de las mquinas basadas en el 80286. El 80486 es la
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 12
versin mejorada del 80386, totalmente compatible, es decir, todos los programas del 80386
corrern en el 80486 sin modificacin. La primera diferencia entre ambos es la presencia de un
co-procesador de punto flotante, un controlador de memoria y 8K de memoria cach en la
misma pastilla del 80486. Adems es dos a cuatro veces ms rpido que el 80386 y est mejor
adaptado para sistemas de multiproceso.
Este microprocesador tiene dos unidades de aritmtica y lgica (ALU), una unidad de
punto flotante FPU (Floating Point Unit) y circuitera dedicada para las operaciones de
suma, resta, multiplicacin y divisin, adems posee 2 bloques independientes memoria cach
de 8 Kbytes.
El decodificador de direcciones es una parte del control lgico. Este genera seales para
seleccionar dispositivos cuando una cierta direccin ( o rango de direcciones) se presenta en el
ducto de direcciones. Por ejemplo la figura 1.7 muestra un decodificador para la direccin
3000H (0011 0000 0000 0000 binario). La salida del decodificador es verdadera ( lgica 0)
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 13
solamente cuando la direccin exacta se presenta en el ducto de direcciones. Esta salida puede
ser utilizada para habilitar un puerto que tenga asignada la direccin 3000H.
A15
A14
A13
A12 Puerto Seleccionado
A11 Direccin 3000H
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
La figura 1.8 muestra un puerto de salida con la asignacin de direccin 3000H. El latch o
retenedor es activado cuando la direccin 3000H esta presenta en el ducto de direcciones y
ademas una activacin de las seal de control (I / OW) ocurre. Una vez activado el latch, el
dato del ducto de datos es almacenado en el. Por medio de este sistema el microprocesador
puede causar que un dato especificado por el programa aparezca en las salidas del latch.
Bus de Direcciones
Direccin
Decodificador 3000H
de
Direcciones
I/O W
Salida
Latch
8-Bit
Bus de Datos
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 14
Los puertos de entrada son conectados de manera similar a al figura 1.9. A la salida del
decodificador de direcciones se le aplica la operacin AND con una seal de control (I / OR)
para generar la habilitacin del puerto. El puerto de entrada es un latch con salida de tres
estados las cuales solo se activan cuando es habilitado el latch. De esta manera el
microprocesador puede leer un dato de las linea de salida del latch por medio de una operacin
de lectura a la direccin apropiada. Entonces el microprocesador puede almacenar el dato en
algn registro interno.
Bus de Direcciones
Direccin
Decodificador 3000H
de
Direcciones
I/O R
Entrada
Buffer
8-Bit
salida de
3 edos.
Bus de Datos
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 15
A1 5
A1 4
A1 3
A1 2 Puerto Seleccionado
A1 1 Direccin 3000H
A1 0
A9
A8
A7
A6
A5 Enable
A4 Direccin seleccionada 3000H
A3
Direccin seleccionada 3001H
74LS138 Direccin seleccionada 3002H
Direccin seleccionada 3003H
Direccin seleccionada 3004H
Direccin seleccionada 3005H
A2 C
A1 Direccin seleccionada 3006H
B
A0 A Direccin seleccionada 3007H
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 16
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0001H
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 FFFEH
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 FFFFH
La figura 1.12 muestra la arquitectura interna bsica de una memoria del tipo SRAM
(Static Random Access Memory), en ella puede observarse que consta de un arreglo matricial
de flip-flops en los que se retiene la informacin (bits) y un decodificador el cual convierte la
direccin binaria a una posicin de memoria la cual esta constituida por un rengln del la matriz
de flip-flops.
La figura 1.13 muestra una memoria RAM de 1K 8. Esta RAM contiene 1024
localidades de 8 bits cada una. La lneas de datos son bidireccionales dado que el dato puede
salir o entrar a la RAM.
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 17
DE 2
DE1
Matriz de Flip-Flops
DE 0
D Q D Q D Q
D Q D Q D Q
Palabra 1
CLK CLK CLK
Dir
0 D Q
D Q D Q
Di r1 CLK CLK CLK
Palabra 2
D Q D Q D Q
CLK
Palabra 3
CLK CLK
Decodificador
SEL
LEC
DS 2
SAL DS 1
DS0
Habilitacin de salida
CS
A0 D0
A1 D1
A2 D2 Dato
Direccin A3 D3
A4 D4
A5 D5
A6 D6
A7 D7
A8
A9
R/W
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 18
En base a lo objetivos anteriores se define una computadora de un solo IC, del cual los
microcontroladores son un subconjunto, una computadora de un solo IC es un circuito integrado
que contiene los elementos esenciales de una computadora los cuales son: seccin de entrada y
salida (E/S), un CPU (el cual contiene una ALU) y memoria.
GENERAL RAM 32
AREA
ROM 8
(EPROM ON 8748) BANK 1
1K x 8
STACK 16
(8 LEVELS SUBR)
8
BANK 0
ACC (8)
INSTRUCTION REG
ALU
CLOCK
6-11 MHz
CHIP CONTROL
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 19
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 20
Este enfoque considera todas las direcciones de E/S como direcciones de memoria. La
lectura/escritura a un dispositivo de E/S se realiza como si dicho dispositivo fuese una localidad
mas de memoria. Esta tcnica tiene la ventaja de que todas las operaciones matemticas y lgicas
que se pueden realizar sobre alguna localidad de memoria tambin es posible hacerlas sobre un
puerto de E/S ya que este es una localidad de memoria. Por ejemplo el contenido de un puerto
de E/S puede leerse , incrementarse y escribirse de al puerto, esto en una sola instruccin.
Tambin un dato puede ser transferido de un puerto a otro con una sola instruccin de
movimiento, otra operacin posible es transferir un bloque de memoria de una seccin de
memoria a un puerto con pocas instrucciones. La figura 1.14 muestra un ejemplo de un mapa
de direcciones que utiliza este enfoque.
Direccin Utilizacin
0000H
FCFFH
CPU FD00H
Puertos de
FDFFH Entrada
FE00H
Puertos de
FEFFH Salida
RD
FF00H
WR
ROM
FFFFH
En esta tcnica se manejan espacios separados para memoria y para seccin de E/S, esto es, el
CPU genera direcciones que pueden ser para la seccin de E/S o para la seccin de memoria,
ahora bien como es posible entonces diferenciar que direccin le pertenece a memoria y cual a
E/S?. La respuesta es una linea extra en el ducto de control la cual se denomina IO / M y que
es puesta a 0 lgico por el CPU cuando se hace referencia a una direccin de memoria y llevada
a 1 lgico si es de E/S.
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 21
En esta tcnica tiene una ventaja sobre la anterior, en ella es la posible tener mayor
espacio de memoria y de E/S puesto que no es un solo espacio compartido. Sin embargo la
desventaja es que las instrucciones para accesar a puertos son distintas a las de acceso a
memoria y generalmente las nistrucciones de acceso a puertos solo de limitan a entradas y
salidas (no permiten hacer operaciones lgicas o aritmticas sobre ellos). Otra desventaja es la
necesidad de circuitera adicional para la lgica de control de escritura/lectura para los distintos
espacios de direcciones. La figura 1.15 muestra una ejemplificacin de esta tcnica.
Espacio de Memoria Espacio de E/S
Direccin Utilizacin Direccin Utilizacin
0000H 0000H
RAM Puertos
de Entrada
FEFFH FEFFH
FF00H FF00H Puertos
ROM
FFFFH FFFFH
de Salida
CPU
Bus de direcciones
RD
Memoria
WR Lgica
IO/M de control E/S
1.4.2 Interrupciones
Una interrupcin es un acontecimiento de una condicin o evento que causa una suspensin de
un programa mientras la condicin es atendida por otro programa. Las interrupciones juegan un
papel importante en el diseo e implementacin de aplicaciones de microcontroladores.
Ademas permiten a un sistema una respuesta asncrona a un evento y maneja dicho evento
mientras otro programa se ejecuta. Un sistema menejador de interrupciones da la ilusin de
hacer varias cosas simultneamente. Por supuesto, el CPU no puede ejecutar mas de una
instruccin en un mismo tiempo; para ello suspende temporalmente la ejecucin de un programa,
para ejecutar otro, entonces regresa al primer programa. De esta manera, esto es parecido a una
subrutina o procedimiento. El CPU ejecuta otro programa o subrutina y entonces regresa al
programa original. La diferencia es que en un interrupt-driven system, la interrupcin no ocurre
como resultado de una instruccin, si no como respuesta a un "evento" , esto sucede de forma
asncrona al programa principal. No se sabe cuando sera interrumpido el programa principal.
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 22
El programa que trata con una interrupcin se le llama rutina de servicio de interrupcin
(ISR Interrupt Service Routine).
Tiempo
Programa principal
Interrupcin
ISR ISR ISR
nivel ejecucin
* ** * ** * **
Base-nivel
ejecucin Principal Principal Principal Principal
* Interrupcin
Tiempo ** Retorna una instrucin de interrupcin
1.4.3 ALU
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 23
1.4.4 Temporizadores
Un temporizador es una serie de flip-flops que recibe una seal de entrada una fuente
de reloj. El reloj se aplica al primer flip-flop, el cual divide la frecuencia en 2. La salida del primer
flip-flop dispara al segundo flip-flop, el cual tambin divide en 2 su entrada, y as
sucesivamente. Desde que cada sucesin de bloques o periodos la frecuencia inicial es dividida
en 2, por tanto un temporizador con n bloques o periodos divide la frecuencia de reloj en 2n .
La salida del ltimo periodo marca un tiempo sobre flujo, o bandera, el cual es verificado
mediante software o puede generar una interrupcin. El valor binario del conjunto de flip-flops
puede ser considerado como un "contador" del numero de pulsos ("eventos") desde que el
temporizador inici. Por ejemplo un temporizador de 16-bit podra contar de 0000H hasta
FFFFH. La bandera de sobre flujo seria en la transicin de FFFFH a 0000H del contador.
D Q D Q D Q D
"Bandera"
Reloj
Q0 Q1 Q2 Q
Reloj
Q 0 (LSB)
Q1
Q 2 (MSB)
Contador 0 1 2 3 4 5 6 7 0
Bandera
(b)
La Bandera es puesta a 1 en el sobre flujo
Figura 1.17 Temporizador de 3 bits (a) Diagrama esquemtico (b) Diagrama de tiempo.
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 24
(a) Tx Rx
un solo sentido
simultaneamente
Figura 1.18 Tipos de comunicacin serie, (a) simplex b) haft -duplex y c) full-deplex.
U.A.B.C. L. AGUILAR
Arquitectura de computadoras, microprocesadores y microcontroladores 25
La tabla 1.3 lista algunas de las capacidades de varios microcontroladores de las dos
compaas mas difundidas en la industria.
U.A.B.C. L. AGUILAR