interfaz de memoria

24
Interfaz de Memoria Rogelio Pérez Martín Cesar Eduardo Sánchez Sánchez Ulises Omar Velázquez Domínguez Cristian David Rodríguez Pérez 1

Upload: ovdwwe

Post on 25-Jun-2015

1.486 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interfaz de memoria

Interfaz de Memoria

Rogelio Pérez Martín

Cesar Eduardo Sánchez Sánchez

Ulises Omar Velázquez Domínguez

Cristian David Rodríguez Pérez

1

Page 2: Interfaz de memoria

Contenido

2

Interfaz con Memoria

Comprobando la Interfaz

Page 3: Interfaz de memoria

Estructura de la Memoria La memoria RAM

esta compuesta por un grupo de registros que almacenan información binaria

Si la memoria tiene 1024 registros entonces requiere 10 líneas de dirección

Cada registro almacena datos de 8 bits

1024 x 8

Deco

dific

ador

Inte

rno

A9

A8

A7

A6

A5

A4

A3

A2

A1

A0

Lineas de Datos

CS RD WR

3

Page 4: Interfaz de memoria

Lectura y Escritura del Memoria por el Z80

Lectura Escritura

4

La dirección de 16-bits es puesta en el bus de direcciones

La señal MREQ es puesta en bajo para indicar que existe una dirección valida en el bus de direcciones

La señal RD es puesta en bajo para indicar que se desea realizar una lectura

La dirección de 16-bits es puesta en el bus de direcciones

La señal MREQ es puesta en bajo para indicar que existe una dirección valida en el bus de direcciones

La señal WR es puesta en bajo para indicar que se desea realizar una escritura

Page 5: Interfaz de memoria

Conceptos básicos de la Interfaz a Memoria

5

La función 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)

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)

Page 6: Interfaz de memoria

Ejemplo de un Sistema basado en Microprocesadores

MPU

EPR

OM

RA

M

Outp

ut

Port

1

Venti

lador

Cale

nta

dor

LCD

Convert

idor

A/D

Outp

ut

Port

2

Outp

ut

Port

3

Input

Port

1

Senso

r de

tem

pera

tura

Bus de Dirección

Bus de Datos

A15

A0

D7

D0

MEMRD

MEMWR

IOWR

IORD

Page 7: Interfaz de memoria

Interfaz con Memoria

7

La dirección de 16-bits debe ser usada para seleccionar un registro en particular

Para un chip de solo 1024 registros solo se necesitan 10 líneas de dirección (A9 – A0)

Por lo cual, las líneas de dirección se pueden dividir de la siguiente manera Parte Alta (A15 – A10)

La parte alta será usada para generar la señal Chip Select Parte Baja (A9 – A0)

La parte baja será decodificada por el decodificador interno de la memoria

Page 8: Interfaz de memoria

Interfaz con Memoria

8

El Z80 usa dos señales MREQ y RD para indicar que se requiere leer de memoria

La señal MREQ puede combinarse con CS para generar MSEL

Dirección de Memoria (Parte

Baja)Dirección de

Memoria (Parte Alta)

MREQ

RD

WR

Decodificador Interno

Decodificador Externo

Identifica el Registro en Memoria

Selecciona el Chip

Habilita el buffer de lecturaHabilita el buffer de Escritura

Page 9: Interfaz de memoria

Interfaz Alternativa

9

Dirección de Memoria (Parte

Baja)Dirección de

Memoria (Parte Alta)

MREQ

RD

WR

Decodificador Interno

Decodificador Externo

Identifica el Registro en Memoria

CS

Habilita el buffer de lectura

Habilita el buffer de Escritura

Page 10: Interfaz de memoria

Resumen

10

Conecta las líneas de dirección requeridas al chip de memoria

Decodifica las líneas restantes para generar la señal CS

Combina la señal CS y MREQ para generar la señal MSEL que seleccionara el chip adecuado

Conecta las señales RD y WR a las señal RD y WR del chip de memoria

Un configuración alternativa es combinar RD y MREQ para generar MEMRD. Combinar WR y MREQ para generar MEMWR

Page 11: Interfaz de memoria

0 0 1 1

1 0 1

y 0 w 1

0

w 0

x x

1 1

0

1 1

En

0 0 0

1

0

y 1

1 0 0

0

0

y 2

0 1 0

0

0

y 3

0 0 1

0

0

(a) Truth table

w 0

En

y 0 w 1 y 1

y 2 y 3

(b) Graphical symbol

(c) Logic circuit

w 1

w 0

y 0

y 1

y 2

y 3

En

2-to-4 decoder

Page 12: Interfaz de memoria

Decodificación de dirección

12

La decodificación de una dirección debe resultar en identificar un registro con una dirección dada.

El decodificador debe ser capaz de dar un pulso único para cada dirección.

Page 13: Interfaz de memoria

Ejemplo: Interfaz 2764 EPROM

13

EPROM 2764 cuenta con

8192 registros (8k × 8)

Señal Chip Select etiquetada como (Chip Enable, CE)

Output Enable (OE) para habilitar el buffer de salida

Opera con una alimentación de 5V

Requiere pulsos de 21V para programarla.

Page 14: Interfaz de memoria

Interfaz

14

Los pasos necesarios para conectar el Z80 y la memoria son

Paso 1 Conectar las líneas de dirección necesarias

Paso 2 Decodificar las líneas de dirección restantes

Paso 3 Combina la decodificación y la señal MREQ para

generar la señal MSEL Paso 4

Conecta las señales de control para habilitar el buffer apropiado

Page 15: Interfaz de memoria

Interfaz entre Z80 y 2764

15

Page 16: Interfaz de memoria

Rango de Memoria

16

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

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000

MSEL

0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1FFF

Page 17: Interfaz de memoria

Ejemplo: Interfaz RAM 6116

17

RAM 6116 cuenta con

2048 registros (2k × 8)

Señal 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 alimentación de 5V

Page 18: Interfaz de memoria

Interfaz

18

Los pasos necesarios para conectar el Z80 y la memoria son

Paso 1 Conectar las líneas de dirección A10 – A0

Paso 2 La señal (CE) es conectada o O4, por lo cual el

chip será seleccionado solo si A15-A13 es 100 Paso 3

La señal RD se conecta con OE y la señal WR con WE

Page 19: Interfaz de memoria

Interfaz entre Z80 y 6116

19

Page 20: Interfaz de memoria

Rango de Memoria

20

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

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8000

MSEL

1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 87FF

1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 8800

0 1 1 1 1 1 1 1 1 1 1 1 1 8FFF

1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 9000

1 0 1 1 1 1 1 1 1 1 1 1 1 97FF

1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 9800

1 1 1 1 1 1 1 1 1 1 1 1 1 9FFF

FOLDBACK MEMORY

Page 21: Interfaz de memoria

Interfaz Completa

21

27324K× 8

CE

OE

A11

A0

61162K× 8A10

A0

CE

OE WE

Decoder

A14 - A12

A15

D7

D0

RD

WR

ROM

Reservado para

Expansión

RAM

Foldback Memory

Sin Usar

0000

0FFF

1000

1FFF2000

27FF

2800

2FFF3000

FFFF

Page 22: Interfaz de memoria

Probando la Interfaz

22

Los niveles lógicos en los buses cambian dinámicamente debido a la operación que el microprocesador este efectuado.

Por lo cual, es difícil poder checar pin a pin que las conexiones estén realizadas correctamente.

El método comúnmente usado consiste en inyectar una senal conocida dentro del sistema y detectarla

Para utilizar este método debemos generar una señal identificable y constante y checar varios puntos en relación con esta señal

Page 23: Interfaz de memoria

Probando la Interfaz

23

Podemos genera esta señal por medio de la ejecución de un lazo continuo llamado RUTINA DE DIAGNOSTICO

START: LD A,F7H ; Carga F7H en el acumulador

LD (2000H),A ; Almacena el numero en la 2000H

JP START ; Salta de regreso a START

Instrucciones

Bytes T-States

Ciclos de Maquina

M1 M2 M3 M4

LD A,F7H 2 7 (4,3) Opcode Fetch

Lectura Memoria

LD (2000H),A 3 13

(4,3,3,3)Opcode Fetch

Lectura Memoria

Lectura Memoria

Escritura Memoria

JP START 3 10 (4,3,3)

Opcode Fetch

Lectura Memoria

Lectura Memoria

Page 24: Interfaz de memoria

Probando la Interfaz

24

Asumiendo que la frecuencia de reloj es 2MHz, cada t-state se ejecuta en 0.5µs

Todo el ciclo se ejecuta en (7+13+20)×0.5µs = 15µs

La señal de escritura será puesta a cero cada 15µs Si el decodificador y las conexiones están bien

realizadas, cuando la señal 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