Sunteți pe pagina 1din 10

LUCRAREA NR.

INTERFAŢAREA BLOCULUI DE MEMORIE PRINCIPALĂ LA


UN PROCESOR

1. Obiectivele lucrării

Scopul acestei lucrări constă în familiarizarea studenţilor cu principalele tehnici folosite


la interfaţarea unui bloc de memorie la un microprocesor I8086. Se va urmări în mod special:
a) modul de conectare a circuitelor de memorie la un microprocesor I8086
b) principalele blocuri funcţionale folosite în interfaţarea blocului de memorie
c) modul de funcţionare a circuitului de interfaţă cu blocul de memorie
d) modul de realizare a selecţiei circuitelor de memorie
e) modul în care este gândită adresarea circuitelor de memorie

2. Consideraţii teoretice

A. MODUL DE LUCRU AL MICROPROCESORULUI I8086 CU MEMORIA


PRINCIPALA

2.1. Modul de implementare a procesorului folosind circuitul I8086

Circuitul I8086 nu se conectează direct la magistralele sistemului ca în cazul schemei


generale a unui sistem cu microprocesor deoarece circuitul I 8086 foloseşte multiplexarea
datelor şi a adreselor pentru a reduce numărul de pini. De aceea pentru a obţine blocul
procesor din schema generală de principiu trebuiesc adăuga te nişte circuite suplimentare.
Este vorba de nişte circuite de bufferare realizate cu circuitul I8086 şi de nişte circuite de
memorare realizate cu nişte circuite buffer-latch. Pe lângă acestea mai trebuie adăugat un
circuit special de ceas şi care este folosit şi pentru generarea semnalului READY aşa cum se
poate vedea din Fig.1.
In Fig.1 se arata cum se poate implementa un procesor folosind circuitul I8086. Pe langa
circuitul I8086 va trebui sa adaugm circuitul I8284 pentru generarea semnalului READY, a
semnalului de clock si a semnalului de RESET.
Deoarece magistrala AD0-15 este folosita pentru transmiterea atat a datelor D0-15 cat si a
adreselor A0-15 prin multiplexare este necesara demultiplexarea lor prin memorarea adreselor
in niste circuite LATCH. In Fig.1 s-a folosit circuitul I8282 pentru memorarea adreselor si
formarea magistralei de adrese a micro-sistemului formata din liniile BA0-15. Memorarea
adreselor in circuitul I8282 se face prin activarea intrarii STB de catre semnalul ALE a
circuitului I8086.
Schema logica a circuitului I8282 este data in Fig.2b iar formele de unda ce descriu
functionarea acestui circuit sunt date in Fig.2c. Se observa ca circuitul I8282 este format din 8
bistabile de TIP LATCH active pe palierul semnalului de clock STB. Cat timp semnalul de
clock STB este activ in 1 logic iesirea urmareste intrarea. In momentul in care semnalul de
clock notat aici cu STB devine inactiv , pe frontul posterior a l acestuia, intrarea este memorata
in bistabilele de tip LATCH.

In cazul in care avem un microsistem mai mare, cu o incarcare mai mare a magistraklei de
date, este nevoie de bufferarea acesteia folosindu-se circuitele de bufferare din componenta
circuitului I8286. Schema logica a acestui circuit este data in Fig.2a iar functionarea acestui
circuit este descrisa ceva mai jos.

Fig.1 Modul de implementare al procesorului unui microsistem cu I8086

Sensul de transfer este dat de semnalul T care este activat de semnalul DT/-R al circuitului
I8086. Cand acest semnal este in 0 logic sensul de transfer corespunde operatiei de citire
(din exterior spre microprocesor) iar cand acest semnal DT/-R =1 logic sensul de transfer
corespunde unei operatii de scriere (de la microprocesor spre exterior). In momentul in
care magistrala multiplexata de date si adrese AD0-15 este comutata in modul transfer de
date atunci se activeaza semnalul –DEN care pune in zero logic intratea –OE a circuitului
I8286 activand bufferele tri-state ale acestuia.
Fig.2a Sche ma logică a circuitului Fig.2b Schema logică a circuitului I8082
I8286

In Fig.2a se prezinta schema logica a circuitului I8286. El este format din cate doua
circuite de bufferare tri-state pentru fiecare pereche de intrari/iesiri. Pentru selectia
bufferelor se folosesc doua porti SAU-NU la care se conecteaza semnalele –OE (Output
Enable) si semnlul T ce indica sensul de transfer. Cand semnalul –OE este activ in 0 logic
ambele porti SAU-NU sunt activate. In acest caz semnalul T va indica sensul de transfer.
Astfel, daca T=1 logic iesirea portii SAU-NU din stanga va fi activa in 0 logic si se vor
activa bufferele care realizeaza transferul de la A la B. Cand semnalul T=0 logic, iesirea
portii SAU-NU din dreapta va fi activa in 0 logic si se vor activa bufferele care realizeaza
transferul de la B la A.

Fig.2c Formele de undă ce descriu funcţionarea circuitului buffer-latch I8282


Se observa ca in modul minim, microprocesorul I8086 genereaza direct toate semnalele
necesare functionarii microsistemului:

 ALE- (Address Latch Enable) folosit pentru demultiplexarea datelor si


adreselor
 DT/-R si –DEN pentru controlul bufferelor de pe magistrala de M/-IO pentru
validarea circuitelor de selectie a circuitelor de me morie (M/-IO=1) sau a
porturilor (M/-IO=0)
 -WR pwntru comanda de strobare a datelor in circuitele de me morie sau
porturi
 -RD pentru activarea iesirilor circuitelor de memorie sau a circuitelor ce
contin porturile
 -INTA (Interrupt Acknoledge) pentru datecitirea vectorului de intrerupere

2.2. Ciclurile maşină de citire şi scriere în me morie

In Fig.4 se dau formele de unda ce descriu functionarea microprocesorului intr- un ciclu de


citire din memorie.

Fig.4 Ciclul maşină de citire din me morie

La inceputul ciclului masina de citire din memorie se seteaza semnalul M/-IO=1 dupa care
se plaseaza pe magistrala multiplexata de date si adrese adresele A0-15 iar pe liniile A16-
A19 restul adreselor. Pe durata activarii adreselor se activeaza si semnalul –BHE care este
folosit pentru activarea bancului HIGH de memorie.

Pe durata activarii adreselor se activeaza semnalul ALE care atunci cand este activ in 1
logic indica prezenta pe magistrala multiplexata de date si adrese o adresa valida.
Ceva mai tarziu (la inceputul perioadei T3 a semnalului de clock) se activeaza
semnalul –RD ce comanda citirea unei locatii de memorie.

Pe durata ciclului de citire din memorie semnalul DT/-R este pus in 0 logic setand sensul
de transfer pentru bufferele de pe magistrala de date in se nsul din exterior spre procesor.

Dupa aceea se trece magistrala multiplexata de adrese si date in modul „data mode”
activand in acelasi timp si semnalul –DEN folosit pentru activarea bufferelor folosite la
bufferarea magistralei de date.

In starea T3 se testeaza semnalul READY. Daca acest semnal este gasit activ in 1 logic se
incheie ciclul instructiune curent prin trecerea procesorului in starea T4 cand se
esantioneaza starea magistralei de date si se citeste de catre procesor data primita de la
memorie. In caz contrar se insereaza stari de asteptare Tw pana cand semnalul READY
trece in 1 logic.

Fig.5 Ciclul de scriere în memorie

In Fig.5 se dau formele de unda ce descriu functionarea procesorului intr-un ciclu de


scriere in memorie.

La inceputul ciclului masina de citire din memorie se seteaza semnalul M/-IO=1 dupa care
se plaseaza pe magistrala multiplexata de date si adrese adresele A0-15 iar pe liniile A16-
A19 restul adreselor. Pe durata activarii adreselor se activeaza si semnalul –BHE care este
folosit pentru activarea bancului HIGH de memorie.
Pe durata activarii adreselor se activeaza semnalul ALE care atunci cand este activ in 1
logic indica prezenta pe magistrala multiplexata de date si adrese o adresa valida.

Ceva mai tarziu (la sfarsitul perioadei T2 a semnalului de clock) se activeaza semnalul
–WR ce comanda inscrierea unei locatii de memorie.

Pe durata ciclului de scriere in memorie semnalul DT/-R este pus in 1 logic setand sensul
de transfer pentru bufferele de pe magistrala de date in sensul dinspre procesor spre
exterior.

Dupa aceea, la sfarsitul starii T3, se trece magistrala multiplexata de adrese si date in
modul „data mode” si se plaseaza pe magistrala de date data ce trebuie inscrisa in
memorie, activand in acelasi timp si semnalul –DEN folosit pentru activarea bufferelor
folosite la bufferarea magistralei de date.

In starea T3 se testeaza semnalul READY. Daca acest semnal este gasit activ in 1 logic se
incheie ciclul instructiune curent prin trecerea procesorului in starea T4 cand se incheie
ciclul masina curent. In caz contrar se insereaza stari de asteptare Tw pana cand semnalul
READY trece in 1 logic.

Microprocesorul I8086 este un microprocesor pe 16 biti care permite transferuri si pe 8


biti. Ca urmare organizarea memoriei principale se face pe doua bancuri asa cum se vede
in Fig.6. Bancul de memorie LOW furnizeaza bitii D0-7 ai datei iar bancul HIGH bitii
D8-15. Bancul de memorie LOW este selectat cu ajutorul liniei de adrese A0 iar bancul
HIGH cu ajutorul liniei –BHE activa in 0. Pentru a se transfera un cuvant din memorie
este necesar atat selectarea bancului LOW cu A0=0 cat si a bancului HIGH prin activarea
liniei –BHE=0.

Fig.6 Modul de organizare a memoriei principale in cele doua bancuri


B. MODUL DE LUCRU AL PROCESORULUI DIN I8051CU MEMORIA
PRINCIPALA

Fig.6. Sche ma de interconectare a circuitelor de memorie la procesorul din I8051

In Fig.6 se arata modul de interconectare a doua circuite de memorie avand formatul 4Kx8
(avand 4K locatii de memorie avand 8 biti fiecare).

Semnalelefolosite in lucrul cu circuitele de memorie exterioare sunt urmatoarele:


 ALE- (Address Latch Enable) folosit pentru demultiplexarea datelor si
adreselor
 -WR pwntru comanda de strobare a datelor in circuitele de me morie sau
porturi
 -RD pentru activarea iesirilor circuitelor de memorie sau a circuitelor ce
contin porturile

Aceste semnale au aceeasi semnificatie ca in cazul microprocesorului I8086. Si in acest


caz magistrala de date si adrese este multiplexata. Activarea semnalului ALE indica faptul ca
pe magistrala multiplexata de date si adrese se afla o adresa valida. Acest semnal este folosit
pentru memorarea adreselor folosindu-se in Fig.6 un circuit buffer–latch realizat cu circuitul
74LS373. Circuitul 74LS373 este echivalent ca structura si functionare cu circuitul I8086
discutat anterior. . Se observa ca circuitul 74LS373 este format din 8 bistabile de TIP LATCH
active pe palierul semnalului de clock . Cat timp semnalul de clock este activ in 1 logic
iesirea urmareste intrarea. In momentul in care semnalul de clock devine inactiv , pe frontul
posterior al acestuia, intrarea este memorata in bistabilele de tip LATCH.

Pentru proiectarea circuitelor de selectie a circuitelor de memorie se pleaca de la Harta


de alocare a memoriei. In cazul nostru, ilustrat in Fig.7, harta de alocare a memoriei este
data in Fig.7.

A15 A14 A13 A12 .... A0


0 0 0 0 ..... 0 RAM0
1 ..... 1
0 0 1
0 ... 0 RAM0
1 .... 1 virtual
0 1 0 Nu e alocat
0 1 1
0 ... 0 RAM 1
1 0 0
1 ... 1
1 0 1 0 .... 0 RAM 1
1 ..... 0 virtual

1 1 0 Nu e alocat
1 1 1

Fig.7. Harta de alocare a memoriei

Amplasarea zonelor de memorie in spatiul de adresare al procesorului sunt date in Fig.7.


Se observa ca liniile de adresa A12...A0 se folosesc pentru selectia locatiilor de memorie
interna a circuitului de memorie U4. Deoarece in selectia circuitului de memorie U4 nu se
folosesc totii bitii superiori de adresa A15-13 are loc o multiplicare virtuala a spatiului de
adrese cu dimensiunea de 4 KO. Acest mod de decodificare poarta denumirea de decodificare
incompleta. Spatiul de adrese acoperit de RAM0 este 000 -0FFF. Memoria RAM0 este vazuta
si in spatiul de adrese 1000-1FFF. Se observa ca o locatie de memorie RAM0 este vazuta la
doua adrese diferite. Spatiul de memorie 2000-3FFF nu corespunde nici unei locatii de
memorie. Acest spatiu de adrese din spatiul de adresare al procesorului nu este alocat.

. Se observa de asemenea ca liniile de adresa A12...A0 se folosesc pentru selectia locatiilor


de memorie interna a circuitului de memorie U2. Deoarece in selectia circuitului de memorie
U2 nu se folosesc totii bitii superiori de adresa A15-13 are loc si aici o multiplicare virtuala a
spatiului de adrese cu dimensiunea de 4 KO. Spatiul de adrese acoperit de RAM1 este 4000 -
4FFF. Memoria RAM1 este vazuta si in spatiul de adrese 5000-5FFF. Se observa si in acest
caz ca o locatie de memorie RAM1 este vazuta la doua adrese diferite.
Pentru generarea semnalelor de selectie –CS0 si -CS1 se face cu ajutorul circuitului
decodificator 74S139, U5:A. Aceste semnale se aplica pe intrarile –CS ale circuitelor de
memorie.

3. Desfăşurarea lucrării

1. Sa se analizeze programul in limbaj de asamblare de mai jos, realizat in


microVision de la firma Keil:

Se observa ca se realizeaza scrierea in memorie la adresela 0053H a valorii 55h, la adresa


4046H valoarea 44 si la adresa 8032H valoarea 33H.

In partea finala a programului se realizeaza citirile din memorie de la adresele 0053H ,


4046H si de la adresa 8032H valorile inscrise in faza initiala. Acest program se repeta
intr-o bucla infinita.

Se observa ca pentru scrierea si citirea din memoria externa a lui I8051 se foloseste
instructiunea MOVX. Aceasta instructiune foloseste adresarea indirecta prin registru iar
ca registru de adresare indirecta se foloseste registrul DPTR.

2. Sa se urmareasca cu ajutorul analizorului digital in programul Proteus formele


de unda care intervin in operatiile de mai sus.

In Fig.6 avem formele de unda corespunzatoare operatiei de scriere in memorie la adresa


0053h a valorii 55h. Se observa activarea semnalului ALE care realizeaza memorarea partii
inferioare a adresei A0-7 in circuitele LATCH din circuitul 74LS373. Se observa de asemenea
multiplexarea datelor cu adresele inferiaore A0-7 pe liniile magistralei multiplexate AD0-7.
Pe aceleasi linii de magistrala intai se trimite partea low a adresei 53H si apoi a datei 55H ce
se va inscrie in memorie.
Se observa de asemenea activarea semnalului de selectie a circuitului de memorie U4, -
CS0 si inactivarea semnalului de selectie a circuitului de memorie U2 –CS1.

Se vor urmari formele de unda pentru fiecare operatie de scriere sau citire realizata cu
memoria.

S-ar putea să vă placă și