You are on page 1of 30

FIEE 2015 - I

MICROPROCESADORES Y ARQUITECTURA DEL COMPUTADOR

Indice
Introduccin a los sistemas basados en microprocesador
.- Arquitectura general
.- La Unidad Central de proceso (CPU)
.- Memorias
.- Interfaces de E/S
.- Interconexin entre mdulos (Mapas de memoria)
Introduccin a los Microcontroladores
.- Vista general
.- Microcontroladores de la familia 51 de Intel
.- SAB80C537
.- Programacin

Fin

ARQUITECTURA TPICA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR


ENT. ANALGICA

m lneas (A0-Am-1)

Bus de direcciones

Convertidor A/D

U.C.P.
UNIDAD
DE
CONTROL

MEMORIA
PROGRAMA
(ROM-EPROM-RAM)

Mdulos
E/S

MEMORIA
DATOS
(RAM)

ENT. DIGITALES
SAL. DIGITALES

CLK
REGISTROS
INTERNOS
UNIDAD
ARITMTICO
LGICA
(ALU)

Bus de datos

N lneas (D0-Dn-1)

Convertidor D/A

Bus de control

SAL. ANALGICA

Menu

LA UNIDAD CENTRAL
DE PROCESO (C.P.U)

CPU o Microprocesador
ndice

+VCC
GND

Acumulador

A.L.U.

Stack pointer
Registro Auxiliar
(2 operando)

De trabajo
Registros
Auxiliares

Registro de estado

Secuenciador

Registro auxiliar
de direcciones

BUS DE DIRECCIONES

Registro de
direcciones

Contador de
programa
Decodificador de
instrucciones
Reloj
interno
Registro de
instrucciones
y datos

MEMORIA
Reloj Externo

DATOS
BUS DE DATOS
INSTRUCCIONES
BUS DE CONTROL

E/S
PERIFRICOS

Interrupciones

Diagrama general
de un sistema
basado en
Microprocesador

ESTRUCTURA GENERAL DE LA UNIDAD DE CONTROL


Seales de control internas

Reloj

UNIDAD DE CONTROL

BUS DE
DATOS
(Instrucciones)

BUS DE
DIRECCIONES
Memoria de
instrucciones
(ROM interna)

Registro
de
Instrucciones

Funciones principales:

Decodificador
de
Instrucciones

Secuenciador
Cdigos de
microinstrucciones

Generador de
Impulsos de
Control

BUS DE CONTROL

Contador
de
Programa

Registro
de
Direcciones

Del registro de estado de la ALU

Interpretar y ejecutar las instrucciones recibidas desde la memoria.


Controlar y sincronizar la transferencia de datos y operaciones.

Proceso de trabajo:
1) El cdigo binario de la instruccin en curso se recibe por el bus de datos y se memoriza en el registro de instrucciones.
2) El decodificador de instrucciones selecciona las posiciones de memoria de la ROM interna de la CPU que corresponden
a dicha instruccin. En esta memoria se hayan grabados los cdigos de las operaciones elementales o microinstrucciones
que componen las etapas parciales que entraa la ejecucin de la instruccin.
3) Las microinstrucciones hacen que el secuenciador genere las seales de control que gobernarn a todos los elementos
del sistema para llevar a cabo la instruccin. Estas seales se podrn dirigir a bloques internos de la CPU, as como a
otros bloques externos del sistema a travs del bus de control.
4) El contador de programa indicar al registro de direcciones la posicin de la memoria donde se encuentra la prxima instruccin que hay que realizar. Este contador se incrementa en una unidad en cuanto la memoria acepta la direccin anterior.
Existen instrucciones que autorizan la ruptura del programa (bucles) para la toma de decisiones; en estos casos el contador
memoriza la posicin de la ltima instruccin ejecutada con objeto de poder retornar al programa principal en curso.

REGISTROS INTERNOS O AUXILIARES


Registros ndice o registros de segmento: Son registros de propsito especfico. Se utilizan para localizar determinados
segmentos de memoria. Los segmentos de memoria son zonas de memoria que comienzan con una direccin base y
abarcan 64K (65.536) posiciones de memoria. Pueden ser de 8,16 y de 32 bits, segn el microprocesador.
Registros de trabajo: Son registros de propsito general, es decir no tienen un uso concreto, es el programa que los usa
a voluntad. Por ejemplo, pueden manipular datos de inters para el programa y facilitar la bsqueda de instrucciones,
ganando tiempo. El fabricante de cada microprocesador decide la inclusin de este tipo de registros. Pueden ser tambin
de 8,16 y de 32 bits, segn el microprocesador.
Registro Stack Pointer o Puntero de pila (Stack): Es un contador que controla una zona determinada de la memoria, en
la que deposita de forma temporal datos sobre el contenido de diversos elementos de la CPU para su uso posterior. Este
registro acta como una cola LIFO (Last Input-First Output). As, en el caso del inicio de una subrutina o salto de
programa, en dicho registro se guarda el ltimo estado de la CPU, de esta manera, una vez finalizada la subrutina, el
programa puede retomar la ltima instruccin.
Registro de estado (flag o bandera): Almacena informacin sobre diversas situaciones producidas en la CPU en
operaciones anteriores. Cada bit del registro indica una informacin diferente:
- Bit de acarreo o carry (C)
- Bit de cero (Z)
- Bit de interrupcin (I)
- Bit de desbordamiento u overflow (V)
- Bit de signo (N)
- Bit de modo decimal (D)
- Bit de break (B)
- Bit de paridad (P)

P BDN V I Z C
Registro de estado o flags

Estructura general de la Unidad Aritmtico Lgica (ALU)

Acumulador

BUS DE
DATOS

Al Secuenciador
de la U. de Control

A.L.U.
Registro auxiliar
(2 Operando)

1 0 1 1 0 0 1 0

Funciones principales:

Seleccin de operacin (U. de control)

Registro de estado o flags

Realiza operaciones aritmticas, lgicas y de manipulacin de bit (transferencia, traslacin, rotacin de bit, etc.).

Proceso de trabajo:
1) La instruccin anterior coloca un dato en el registro acumulador. Este dato ser el primer operando para la ALU.
El segundo operando de la ALU ser el procedente del registro auxiliar.
2) La operacin a realizar es seleccionada mediante las lneas de control que salen del Secuenciador de la U.de Control.
3) El resultado de la operacin se registrar en el Acumulador, y su vez, escribir en el Registro de Estado informacin
referente a dicha operacin: bit de paridad, signo, acarreo, etc.
4) La siguiente instruccin podr trasladar el resultado contenido en el acumulador a la memoria, o bien, si se debe usar
dicho resultado en una nueva operacin, trasladar al registro auxiliar el siguiente operando.

Proceso de ejecucin
de una instruccin

CPU o Microprocesador
ndice

Ejemplo de operacin AND entre


el dato contenido en el acumulador
y un dato contenido en la memoria

Acumulador

A.L.U.

Stack pointer
Registro Auxiliar
(2 operando)

De trabajo
Registros
Auxiliares

Registro de estado

Secuenciador

Registro auxiliar
de direcciones

BUS DE DIRECCIONES

Contador de
programa (n)

Registro de
direcciones

1) Bsqueda de la instruccin

Decodificador de
instrucciones
Reloj
interno
Registro de
instrucciones
y datos

MEMORIA
Reloj Externo

Instruccin AND
BUS DE DATOS
Posicin m
BUS DE CONTROL

E/S
PERIFRICOS

Interrupciones

FASE DE BSQUEDA

+VCC
GND

Proceso de ejecucin
de una instruccin
Ejemplo de operacin AND entre
el dato contenido en el acumulador
y un dato contenido en la memoria

ndice

+VCC
GND

Acumulador

A.L.U.

Stack pointer
Registro Auxiliar
(2 operando)

De trabajo
Registros
Auxiliares

Contador de
programa (n+1)

Registro auxiliar
de direcciones

BUS DE DIRECCIONES

Secuenciador

Registro de
direcciones

2) Carga de la instruccin
y preparacin de la ALU

Registro de estado

Decodificador de
instrucciones
Reloj
interno
Registro de
instrucciones
y datos

MEMORIA
Reloj Externo

DATOS
BUS DE DATOS
INSTRUCCIONES
BUS DE CONTROL

E/S
PERIFRICOS

Interrupciones

FASE DE EJECUCIN

CPU o Microprocesador

Proceso de ejecucin
de una instruccin

CPU o Microprocesador
ndice

Acumulador

A.L.U.

Stack pointer
Registro Auxiliar
(2 operando)

De trabajo
Registros
Auxiliares

Registro de estado

3) Bsqueda 2 Operando

Secuenciador

Registro auxiliar
de direcciones

BUS DE DIRECCIONES

Registro de
direcciones

Contador de
programa (n+1)
Decodificador de
instrucciones
Reloj
interno
Registro de
instrucciones
y datos

MEMORIA
Reloj Externo

2 operando
BUS DE DATOS
Posicin m+1
BUS DE CONTROL

E/S
PERIFRICOS

Interrupciones

FASE DE BSQUEDA

+VCC
GND

Proceso de ejecucin
de una instruccin
Ejemplo de operacin AND entre
el dato contenido en el acumulador
y un dato contenido en la memoria

ndice

+VCC
GND

Acumulador

A.L.U.

Stack pointer
Registro Auxiliar
(2 operando)

De trabajo
Registros
Auxiliares

Registro de estado

4) Carga del 2 Operando

Secuenciador

Registro auxiliar
de direcciones

BUS DE DIRECCIONES

Registro de
direcciones

Contador de
programa (n+2)
Decodificador de
instrucciones
Reloj
interno
Registro de
instrucciones
y datos

MEMORIA
Reloj Externo

DATOS
BUS DE DATOS
INSTRUCCIONES
BUS DE CONTROL

E/S
PERIFRICOS

Interrupciones

FASE DE EJECUCIN

CPU o Microprocesador

Proceso de ejecucin
de una instruccin
Ejemplo de operacin AND entre
el dato contenido en el acumulador
y un dato contenido en la memoria

ndice

+VCC
GND

Acumulador

A.L.U.

Stack pointer
Registro Auxiliar
(2 operando)

De trabajo
Registros
Auxiliares

Registro de estado

5) Ejecucin operacin AND

Secuenciador

Registro auxiliar
de direcciones

BUS DE DIRECCIONES

Registro de
direcciones

Contador de
programa (n+2)
Decodificador de
instrucciones
Reloj
interno
Registro de
instrucciones
y datos

MEMORIA
Reloj Externo

DATOS
BUS DE DATOS
INSTRUCCIONES
BUS DE CONTROL

E/S
PERIFRICOS

Interrupciones

FASE DE EJECUCIN

CPU o Microprocesador

Proceso de ejecucin
de una instruccin
Ejemplo de operacin AND entre
el dato contenido en el acumulador
y un dato contenido en la memoria

ndice

+VCC
GND

Acumulador

A.L.U.

Stack pointer
Registro Auxiliar
(2 operando)

De trabajo
Registros
Auxiliares

Registro de estado

6) Resultado operacin AND

Secuenciador

Registro auxiliar
de direcciones

BUS DE DIRECCIONES

Registro de
direcciones

Contador de
programa (n+2)
Decodificador de
instrucciones
Reloj
interno
Registro de
instrucciones
y datos

MEMORIA
Reloj Externo

DATOS
BUS DE DATOS
INSTRUCCIONES
BUS DE CONTROL

E/S
PERIFRICOS

Interrupciones

FASE DE EJECUCIN

CPU o Microprocesador

LA MEMORIA

Tipos de Memorias
RAM estticas o SDRAM: Cada una de las celdas esta
constituida por un flip-flop, que permanece indefinidamente en un
estado, mientras no se elimine su alimentacin.
RAM (Random Acces Memory)
Memorias de acceso aleatorio.
Son voltiles y permiten la
lectura y la escritura.

RAM dinmicas o DRAM: Cada celda esta constituida por un


condensador que almacena la informacin mediante la carga o
descarga de ste. Dado que estos condensadores pueden perder
carga, estas memorias necesitan reflescar continuamente su
informacin.

ROM: Son memorias programables por mscara, esto es, los


datos se graban en el proceso de fabricacin.

Memorias

PROM: Son memorias ROM programables una sola vez. Los


datos se graban mediante el mtodo de fundido de fusibles.
ROM (Read Only Memory)
Memorias de acceso aleatorio.
No son voltiles y slo
permiten la lectura.

EPROM: Son memorias ROM borrables y programables.


Disponen de una ventana en el encapsulado que permite su
borrado mediante la aplicacin de luz ultravioleta. El proceso de
lectura/escritura est limitado a un determinado nmero de veces.
EAROM o EEPROM: Son similares a las EPROM, pero en
este caso el borrado se realiza mediante procedimientos
elctricos.

Memorias

Lneas de control

A0
A1
A2
An-1

D0
D1
D2
Dn-1

Lneas de datos

Lneas de direccin

VCC

RW

N Lin. Dir.

RD

N Pos =
CS
GND

Organizacin interna de una memoria RAM de 128 bytes (Seleccin lineal)

A0
A1
A2
A3
A4
A5
A6

CS
R/W

DECODIFICADOR DE DIRECCIONES

Direccin 0
1

10

11

12

13

14

15

16

Direccin 1

N Posiciones = 27 = 128

N de celdas = 8x128 = 1024


Direccin 126
113

114

115

116

117

118

119

Capacidad: 8x128 = 1024 bit

120

Direccin 127

1024 bit = 128 bytes


121

122

LGICA
DE
CONTROL

123

124

125

126

127

128

BUFFERS DE TRES ESTADOS

D0

D1

D2

D3

D4

D5

D6

D7

Columna 6

Columna 7

Fila 0
0

15

15

15

15

15

15

15

Fila 128

A9
A10

10

11

12

13

14

15

16

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

15

15

LGICA
DE
CONTROL

N Posiciones = 211 = 2084


N de celdas = 16x8x128 = 16.384 bits

15

15

15

15

15

15

Multiplexor 7

Fila 126

A8

R/W

Fila 1

A7

CS

15

Multiplexor 6

A6

Columna 5

Multiplexor 5

A5

Columna 4

Multiplexor 4

A4

Columna 3

Multiplexor 3

A3

Columna 2

Multiplexor 2

A2

Columna 1

Multiplexor 1

A1

Columna 0

Multiplexor 0

A0

DECODIFICADOR DE DIRECCIONES

Organizacin interna de una memoria RAM de 2 KByte (Seleccin por coincidencia)

D6

D7

BUFFERS DE TRES ESTADOS

D0

D1

D2

D3

Capacidad = 2084 bytes

D4

D5

DIRECCIONES DE MEMORIA
8 Lneas
D0-D7

N Posiciones = 2
R/W
U.C.P.
16 Lneas
Direccin.
8 Lneas
Datatos

CS

IC1
4K
RAM
A0 A11

CAPACIDAD:

n Lin. Dir.

4KBytes = 4096 bytes

N Lneas de direccin = 212 = 4.096 Bytes

12 Lneas

Dato

Dir m

Dato

0000h

Dato

A0

A15 A12 A11


Sistema de
codificacin
Dec. Hex.
Bin.
0
0
0000
1
1
0001
2
2
0010
3
3
0011
4
4
0100
5
5
0101
6
6
0110
7
7
0111
8
8
1000
9
9
1001
10
A
1010
11
B
1011
12
C
1100
13
D
1101
14
E
1110
15
F
1111

0FFFh

0000

XXXX XXXX XXXX Lneas de direccinl

Si X=0

0000

0000

0000

0000

0000

D. inicial

Si X=1

0000

1111

1111

1111

0FFF

D. Final

Aumento de la capacidad de memoria


D0..7

R/W
U.C.P.
16 Lneas
Direccin.
8 Lneas
Datatos

A15

IC1
4K
RAM
A0..11 CS

IC2
4K
RAM
CS
A0..11
A12

A11

IC3
4K
RAM
A0..11

IC4
4K
RAM
CS

A13

A0..11

A14

CS

A15

A0
DIRECCIONES

RAM IC1

0111

xxxx

xxxx

xxxx

RAM IC2

1011

xxxx

xxxx

xxxx

7000-7FFF
B000-BFFF

RAM IC3

1101

xxxx

xxxx

xxxx

D000-DFFF

RAM IC4

1110

xxxx

xxxx

xxxx

E000-EFFF

C
0000
1111
0000
1111
0000
1111
0000
1111

D
0000
1111
0000
1111
0000
1111
0000
1111

IC1
IC2
IC3
IC4

Si X=0
Si X=1
Si X=0
Si X=1
Si X=0
Si X=1
Si X=0
Si X=1

A
0111
0111
1011
1011
1101
1101
1110
1110

B
0000
1111
0000
1111
0000
1111
0000
1111

ABCD
7000
7FFF
B000
BFFF
D000
DFFF
E000
EFFF

D. inicial
D. Final
D. inicial
D. Final
D. inicial
D. Final
D. inicial
D. Final

Sistema de
codificacin
Dec. Hex.
Bin.
0
0
0000
1
1
0001
2
2
0010
3
3
0011
4
4
0100
5
5
0101
6
6
0110
7
7
0111
8
8
1000
9
9
1001
10
A
1010
11
B
1011
12
C
1100
13
D
1101
14
E
1110
15
F
1111

RAM 4KBytes
N Posiciones = 212 = 4.096 Bytes
12 lneas de direccionamiento

Direccionamiento
por
Seleccin Lineal

Aumento de la capacidad de memoria


D0..7

IC1
4K
RAM
A0..11 CS

R/W
U.C.P.
16 Lneas
Direccin.
8 Lneas
Datatos

IC2
4K
RAM
CS
A0..11

IC3
4K
RAM
A0..11

IC4
4K
RAM
CS

A0..11

CS

A12
A13
A13

Dec.
2/4
A0

A12

DIRECCIONES

RAM IC1

00

xxxx

xxxx

xxxx

RAM IC2

01

xxxx

xxxx

xxxx

0000-0FFF
1000-1FFF

RAM IC3

10

xxxx

xxxx

xxxx

2000-2FFF

RAM IC4

11

xxxx

xxxx

xxxx

3000-3FFF

C
0000
1111
0000
1111
0000
1111
0000
1111

D
0000
1111
0000
1111
0000
1111
0000
1111

IC1
IC2
IC3
IC4

Si X=0
Si X=1
Si X=0
Si X=1
Si X=0
Si X=1
Si X=0
Si X=1

A
0000
0000
0001
0001
0010
0010
0011
0011

B
0000
1111
0000
1111
0000
1111
0000
1111

ABCD
0000
0FFF
1000
1FFF
2000
2FFF
3000
3FFF

D. inicial
D. Final
D. inicial
D. Final
D. inicial
D. Final
D. inicial
D. Final

Sistema de
codificacin
Dec. Hex.
Bin.
0
0
0000
1
1
0001
2
2
0010
3
3
0011
4
4
0100
5
5
0101
6
6
0110
7
7
0111
8
8
1000
9
9
1001
10
A
1010
11
B
1011
12
C
1100
13
D
1101
14
E
1110
15
F
1111

RAM 4KBytes
N Posiciones = 212 = 4.096 Bytes
12 lneas de direccionamiento

Direccionamiento
por
Decodificacin

Unidades de E/S
(interfaces o puertos de E/S)

Caractersticas y Clasificacin general de los mdulos de E/S

Sistema
Microcomputado

B. datos

Interfaz
E/S

Bus de direcciones

Impresora
Teclado
Pantalla video
Displays
Motores
Rels

PERIFRICOS

Bus de Control

Definicin:

Circuito de adaptacin entre el Microprocesador y el Perifrico

Las caractersticas de los mdulos de E/S depender de:


- Modo de transferencia de datos: Sncrona o asncrona.
- Tipo de transmisin: serie o paralelo.
- Tiempo de respuesta.
- Cdigos y formatos de datos.
- Seales de control de transferencia.
- Seales de estado.
- Sistema de deteccin y correccin de errores.
- Niveles de tensin.
- Tipo de seal: Analgica/Digital

Mdulos de E/S de Aplicacin Especfica


DATOS

DIR.

Circuito
especializado
de adaptacin
de E/S

Perifrico de Salida

Perifrico de Entrada

CONTROL

Definicin:
Se tratan de circuitos especializados, diseados para la interconexin de un perifrico especfico.

Caractersticas principales:
Estos circuitos suelen estar formados por buffer tri-estado, bsculas, decodificadores, multiplexores, etc.
Simplifican el software a costa de una gran complejidad hardware.
Gran rigidez de funcionamiento. Estn diseados para realizar una nica funcin.
Cada perifrico requiere un interfaz. Aumenta el consumo de potencia.

Mdulos de adaptacin de E/S Programables


E. Serie

E/S

DATOS

DIRECCIONES

Puerto A

Adaptador
universal
de perifricos
programable

Buffer
bidireccional

S. Serie

EMISOR
DIRECCIONES

E/S

CONTROL

RECEPTOR
DATOS

Puerto D
CONTROL

Interfaz Paralelo

Reloj

CONTROL

Interfaz Serie

Definicin:
Se tratan de circuitos especializados programables que permiten la interconexin de diversos perifricos.

Caractersticas principales:
Estos mdulos suelen estar formados circuitos elementales de E/S, controlados por determinados registros.
La programacin de los registros permite establecer la configuracin de E/S deseada.
Simplifican el hardware a costa de una gran complejidad software.
Gran flexibilidad de funcionamiento. Mnimo consumo de potencia.
Cada familia de microprocesadores dispone de sus propios mdulos programables de E/S (PPI, VIA, PIA,
ACIA. UART, etc)., pero de caractersticas son muy semejantes.

Interconexin de
mdulos a la CPU

Interconexin entre mdulos y su direccionamiento


SELECCIN DE LA POSICIN DE MEMORIA O DEL REGISTRO.
SELECCIN DE LA MEMORIA O DEL INTERFACE.
MODOS DE SELECCIN
.- Por seleccin lineal.
.- Por decodificacin.

UCP
16 Lneas
Dir.
8 Lneas
Dat.

4K
EPROM

4K
RAM

Interfaz
E/S
4 Reg.

Interfaz
E/S
2 Reg.

Direccionamiento por Seleccin Lineal


A15
EPROMA
RAM
PPI
SERIE

0000
0011
0101
1001

A0

A7

xxxx
xxxx

xxxx
xxxx

xxxx
xxxx

0000 - 0FFF
3000 - 3FFF
5000 - 5003
9000 - 9001

xx
x

D0..7

UCP
16 Lneas
Dir.
8 Lneas
Dat.

4K
EPROM
A0..11

CS

PPI

4K
RAM
A0..11

Serie
2 Reg.

4 Reg.

CS

A0..1

CS

A0

CS

A12
A13
A14
A15

Direccionamiento por Decodificacin


A12

A13

00
01
10
11

EPROMA
RAM
PPI
SERIE

A0

A7

xxxx
xxxx

xxxx
xxxx

xxxx
xxxx

0000 - 0FFF
1000 - 1FFF
2000 - 2003
3000 - 3001

xx
x

D0..7

4K
EPROM

UCP
16 Lneas
Dir.
8 Lneas

A0..11

CS

4K
RAM
A0..11

CS

PPI

Serie
2 Reg.

4 Reg.
A0..1

A0

CS

CS

Dat.
A12
A13

A14

Dec.
2/4

A15

You might also like