You are on page 1of 7

06/09/2011

Contenido

Interfaz con Memoria

Comprobando la Intefaz
Memoria Unidad 4
Microprocesadores Otoo 2011

Interfaz con Memorias Lentas


2

Ejemplo de un Sistema basado en Microprocesadores


A15

Estructura de la Memoria
La memoria esta compuesta por un grupo de registros que almacenan informacin binaria Si la memoria tiene 1024 registros entonces requiere 10 lneas de direccin Cada registro almacena datos de 8 bits
4

CS RD WR

Bus de Direccin
A0

MPU
D7 D0 MEMRD MEMWR IOWR IORD

Bus de Datos

A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

Decodificador Interno

Convertidor A/D

Sensor de temperatura

Calentador

Output Port 1

Output Port 2

Output Port 3

Ventilador

Input Port 1

EPROM

RAM

LCD

1024 x 8

Lineas de Datos

Lectura y Escritura del Memoria por el Z80


Lectura Escritura La direccin de 16-bits es puesta en el bus de direcciones La seal MREQ es puesta en bajo para indicar que existe una direccin valida en el bus de direcciones La seal WR es puesta en bajo para indicar que se desea realizar una escritura

Conceptos bsicos de la Interfaz a Memoria


La funcin de la interfaz a memoria es permitir que el microprocesador lea y escriba a un registro determinado dentro del chip de memoria Para realizar estas operaciones, el microprocesador debe
Ser capaz de seleccionar el chip
Un sistema basado en microprocesador cuenta con memoria ROM (para el programa) y memoria RAM (para datos)

La direccin de 16-bits es puesta en el bus de direcciones La seal MREQ es puesta en bajo para indicar que existe una direccin valida en el bus de direcciones La seal RD es puesta en bajo para indicar que se desea realizar una lectura
5

Identificar el registro
La lectura o escritura se hace un registro a la vez porque solo se pueden transmitir 8 bits por el bus de datos

Habilitar el buffer apropiado


Existen dos buffers de entrada (escritura) y salida (lectura)
6

06/09/2011

Decodificador 2-a-4
w0 y0 w1 En w1 w0 1 1 1 1 0 0 0 1 1 x 0 1 0 1 x y0 y1 y2 y3 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 w0 w1 En y0 y1 y2 y3 y1

Decodificador 74LS138
A2 0 0 0 0
y2

A1 0 0 1 1 0 0 1 1 X X

A0 EN2 EN1 0 1 0 1 0 1 0 1 X X 0 0 0 0 0 0 0 0 X 1 1 1 1 1 1 1 1 1 0 X

O0 0 1 1 1 1 1 1 1 1 1

O1 1 0 1 1 1 1 1 1 1 1

O2 1 1 0 1 1 1 1 1 1 1

O3 1 1 1 0 1 1 1 1 1 1

O4 1 1 1 1 0 1 1 1 1 1

O5 1 1 1 1 1 0 1 1 1 1

O6 1 1 1 1 1 1 0 1 1 1

O7 1 1 1 1 1 1 1 0 1 1

1 1 1 1 X X

(a) Truth table

(b) Graphical symbol y3 En (c) Logic circuit

Decodificacin de direccin
La decodificacin de una direccin debe resultar en identificar un registro con una direccin dada. El decodificador debe ser capaz de dar un pulso nico para cada direccin.

Interfaz con Memoria


La direccin de 16-bits debe ser usada para seleccionar un registro en particular Para un chip de solo 1024 registros solo se necesitan 10 lneas de direccin (A9 A0)
F0H

Por lo cual, las lneas de direccin se pueden dividir de la siguiente manera


Parte Alta (A15 A10)
La parte alta ser usada para generar la seal Chip Select

Parte Baja (A9 A0)


La parte baja ser decodificada por el decodificador interno de la memoria
F7H
9 10

Interfaz con Memoria


El Z80 usa dos seales MREQ y RD para indicar que se requiere leer de memoria La seal MREQ puede combinarse con CS para generar MSEL
Direccin de Memoria (Parte Baja) Direccin de Memoria (Parte Alta) MREQ RD WR
11

Interfaz Alternativa
Identifica el Registro en Memoria

Direccin de Memoria (Parte Baja) Direccin de Memoria (Parte Alta) RD

Decodificador Interno Decodificador Externo

Decodificador Interno Decodificador Externo

Identifica el Registro en Memoria Selecciona el Chip

CS Habilita el buffer de lectura Habilita el buffer de Escritura

MREQ Habilita el buffer de lectura Habilita el buffer de Escritura


12

WR

06/09/2011

Resumen
Conecta las lneas de direccin requeridas al chip de memoria Decodifica las lneas restantes para generar la seal CS Combina la seal CS y MREQ para generar la seal MSEL que seleccionara el chip adecuado Conecta las seales RD y WR a las seal RD y WR del chip de memoria Un configuracin alternativa es combinar RD y MREQ para generar MEMRD. Combinar WR y MREQ para generar MEMWR
13

Ejemplo: Interfaz 2764 EPROM


EPROM 2764 cuenta con 8192 registros (8k 8) Seal Chip Select etiquetada como (Chip Enable, CE) Output Enable (OE) para habilitar el buffer de salida Opera con una alimentacin de 5V Requiere pulsos de 21V para programarla.
14

Interfaz
Los pasos necesarios para conectar el Z80 y la memoria son Paso 1
Conectar las lneas de direccin necesarias

Interfaz entre Z80 y 2764

Paso 2
Decodificar las lneas de direccin restantes

Paso 3
Combina la decodificacin y la seal MREQ para generar la seal MSEL

Paso 4
Conecta las seales de control para habilitar el buffer apropiado
15 16

Rango de Memoria
El rango de direcciones de la memoria ROM es el siguiente:
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

Decodificador
A7 0 0 A6 1 1 A5 0 0 A4 0 0 A3 0 0 A2 0 0 A1 0 0 A0 0 1 40H 41H

0 MSEL

0000

Bits sin Cambio Lneas de Habilitacin

Bits que Cambian Decodificacin

1FFF

41H 40H

17

18

06/09/2011

Ejercicio
Proporciona la configuracin del decodificador para conectarse a las direcciones
97H 95H
A7 1 1 A6 0 0 A5 0 0 A4 1 1 A3 0 0 A2 1 1 A1 1 0 A0 1 1 97H 95H

Ejercicio
Proporciona la configuracin del decodificador para conectarse a las direcciones
E0H C8H
A7 1 1 A6 1 1 A5 1 0 A4 0 0 A3 0 1 A2 0 0 A1 0 0 A0 0 0 E0H 41H

Bits sin Cambio Lneas de Habilitacin


19

Bits que Cambian Decodificacin


20

Bits sin Cambio Habilitacin

Bits que Cambian Decodificacin

Bits sin Cambio Habilitacin

Ejemplo: Interfaz RAM 6116


RAM 6116 cuenta con 2048 registros (2k 8) Seal Chip Select etiquetada como (Chip Enable, CE) Output Enable (OE) para habilitar el buffer de salida Write Enable (WE) para habilitar el buffer de salida Opera con una alimentacin de 5V
21

Interfaz
Los pasos necesarios para conectar el Z80 y la memoria son Paso 1
Conectar las lneas de direccin A10 A0

Paso 2
La seal (CE) es conectada o O4, por lo cual el chip ser seleccionado solo si A15-A13 es 100

Paso 3
La seal RD se conecta con OE y la seal WR con WE

22

Interfaz entre Z80 y 6116

Rango de Memoria
El rango de direcciones de la memoria RAM es el siguiente:
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 MSEL

8000

87FF

FOLDBACK MEMORY
1 0 0 0 0 1 0 0 1 1 1 0 0 1 1
23 24

1 1 0 0 1 1

0 1 0 1 0 1

0 1 0 1 0 1

0 1 0 1 0 1

0 1 0 1 0 1

0 1 0 1 0 1

0 1 0 1 0 1

0 1 0 1 0 1

0 1 0 1 0 1

0 1 0 1 0 1

0 1 0 1 0 1

0 1 0 1 0 1

8800 8FFF 9000 97FF 9800 9FFF

06/09/2011

Ejercicio
Realice la interfaz entre el Z80 y el siguiente grupo de memorias
2732 (4K 8): EPROM El rango de direcciones debe empezar en 0000H, considere 4K de memoria extra para futuras expansiones 6116 (2K 8): CMOS RAM Utilice el decodificador de 3-a-8 (74LS138)

Solucin
MREQ A15 CE A14 A13 A12 A2 O2 A1 A0 74LS138 O0 A0 A0 D7 D0 A11 A11 2732 4K 8 A0 A0 D7 D0 OE A10 CE A10 6116 2K 8 OE WE 5V RD RD WR

Lineas de Datos

Lineas de Datos

25

26

Interfaz Completa
A15 - A12 A0

Probando la Interfaz
0000 ROM 0FFF 1000
6116 2K 8 OE WE

Decoder

Los niveles lgicos en los buses cambian dinmicamente debido a la operacin que el microprocesador este efectuado. Por lo cual, es difcil poder checar pin a pin que las conexiones estn realizadas correctamente. El mtodo comnmente usado consiste en inyectar una seal conocida dentro del sistema y detectarla Para utilizar este mtodo debemos generar una seal identificable y constante y checar varios puntos en relacin con esta seal
28

CE 2732 4K 8 OE

CE

A11 A0 D7 D0

A10

1FFF 2000 27FF 2800 2FFF 3000

Reservado para Expansin

RAM
Foldback Memory

A0

RD WR
27

Sin Usar

FFFF

Probando la Interfaz
Podemos genera esta seal por medio de la ejecucin de un lazo continuo llamado RUTINA DE DIAGNOSTICO
START: LD A,F7H LD (2000H),A JP START ; Carga F7H en el acumulador ; Almacena el numero en la 2000H ; Salta de regreso a START Ciclos de Maquina M1
Opcode Fetch Opcode Fetch Opcode Fetch

Probando la Interfaz
Asumiendo que la frecuencia de reloj es 2MHz, cada testado se ejecuta en 0.5s Todo el ciclo se ejecuta en (7+13+20)0.5s = 15s La seal de escritura ser puesta a cero cada 15s Si el decodificador y las conexiones estn bien realizadas, cuando la seal de escritura sea cero, los bits A15-A12 deben ser 0010. El resto de los bits deben ser cero en el bus de direcciones En el bus de datos debe leerse F7H
30

Instrucciones LD A,F7H LD (2000H),A JP START


29

Bytes 2 3 3

T-States 7 (4,3) 13 (4,3,3,3) 10 (4,3,3)

M2
Lectura Memoria Lectura Memoria Lectura Memoria

M3

M4

Lectura Memoria Lectura Memoria

Escritura Memoria

06/09/2011

Instrucciones

Bytes 2 3 3

T-States 7 (4,3) 13 (4,3,3,3) 10 (4,3,3)

Probando la Interfaz

LD A,F7H LD (2000H),A JP START

Tiempo de Acceso a Memoria


El opcode fetch es el que impone una mayor restriccion ya que el Z80 lee el dato en el flanco de subida de T3 El ciclo de lectura de memoria lee el dato en el flanco de bajada de T3 TAD es el intervalo entre el tiempo en que el Z80 pone una direccin de memoria en el bus de direcciones y el tiempo en el que lee el dato En un sistema de 2.5 MHz (400 ns) el intervalo TAD es

TAD = (2 T ) TD ( AD ) TSD

= 2 400ns 145ns 50ns


31 32

Tiempo de Acceso a Memoria


OPCODE FETCH TD(AD) es el tiempo en el que se pone una direccin valida

Tiempo de Acceso a Memoria


La respuesta de memoria se define en trminos del acceso a memoria TAC. TAC es el retardo entre el tiempo en el que la direccin de memoria es puesta en el bus de direcciones y el tiempo en el que dato es puesto en el bus de datos

TSD es el tiempo en el que se pone una dato valido


33 34

Generando Estados de Espera


Algunas veces por cuestiones de costo se utilizan memoria de acceso lento En estos casos el tiempo de acceso TAC es mayor al tiempo permitido para leer el dato TAD por lo cual se requiere de la seal WAIT para alargar el intervalo de lectura de datos La seal WAIT tiene la siguiente caractersticas:
Es una seal activa en bajo Es una seal de solicitud externa usada para dispositivos lentos
35

Generando Estados de Espera


Caractersticas de la seal WAIT
Esta seal es muestreada en el flanco de bajada de T2 de cada ciclo de maquina Si la seal esta en bajo se suma un ciclo de reloj de espera al ciclo de maquina Al final de cada ciclo de espera TW muestrea la seal WAIT en caso de seguir en bajo vuelve a introducir otro ciclo. Este proceso es realizado hasta que la seal WAIT cambia a alto Durante el tiempo de espera, el Z80 conserva el contenido de todos las buses y las seales de control se extienden.

36

06/09/2011

Generando Estados de Espera


La seal WAIT ser muestreada al termino del ciclo T2 La seal MREQ es baja en el flanco de bajada de T1, por lo cual esta seal puede ser usada para generar la seal WAIT

Generando Estados de Espera


MREQ se encuentra en alto a menos que el Z80 realice un acceso a memoria.

37

38

Generando Estados de Espera

Interfaz con Memorias Lentas

39

40

You might also like