interfaz de memoria
Post on 25-Jun-2015
1.488 Views
Preview:
TRANSCRIPT
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
Contenido
2
Interfaz con Memoria
Comprobando la Interfaz
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
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
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)
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
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
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
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
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
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
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.
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.
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
Interfaz entre Z80 y 2764
15
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
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
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
Interfaz entre Z80 y 6116
19
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
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
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
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
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
top related