Documente noi - cercetari, esee, comentariu, compunere, document
Documente categorii

la sisteme multimicroprocesor

Calculatoare

SISTEME MULTIMICROPROCESOR

1.Definirea temei si cerintele

Sa se proiecteze un modul calculator monoplaca SBC cu microprocesor 8086 cu posibilitati de cuplare intr-o configuratie multimicroprocesor cu magistrala MULTIBUS si avand urmatoarele caracteristici:

memorie EPROM de 16K cu circuite 2716;

memorie SRAM de 24K cu circuite 2147;



memorie DRAM de 128K cu circuite 2118;

Interfata I/O cu  circuite 8251A si 8253A;


Pentru tratarea intreruperilor se va folosi circuitul 8259A. In cazul circuitelor programabile se vor prezenta secvente de program pentru aducerea acestora in stare operationala. Se cere schema electrica a modulului, realizata cu un program de proiectare asistata pe calculator.




2.Schema bloc a sistemului.


In figura 1 se prezinta schema bloc a modulului proiectat. In aceasta schema se prezinta atat circuitele utilizate cat si interconexiunile dintre ele, la nivel de principiu.

Accesarea resurselor locale sau a celor din sistem e comandata de semnalul SYSB/ . Pentru situatia in care acest semnal devine "0" se face acces la resursele locale, in caz contrar accesul se face la resursele externe. Schema bloc a modulului contine urmatoarele elemente:

Microprocesorul (8086) care lucreaza la modul maximal.

Generatorul de tact (8284) folosit pentru generarea tactului necesar microprocesorului pentru a asigura functionarea circuitelor interne ala acestuia. Circuitul (8284) face divizarea cu trei a frecventei determinate de cuartul ce se conecteaza la el.

Controler de magistrala (8288) care, prin decodificarea semnalelor de stare (S0,S1,S2) furnizeaza semnalele de  comanda corespunzatoare.

Latch de adrese (8282), pentru generarea magistralei interne de adrese, realizata prin demultiplexarea semnalelor AD0-AD15 si A16-19.

Buffer de date (8286), pentru generarea magistralei interne de date , realizata prin demultiplexarea semnalelor AD0-AD15.

Un bloc de memorie EPROM (2716).

Un bloc de memorie SRAM (2147).

Un bloc de memorie DRAM (2188).

Decodificator de adresa (8205) pentru selectarea blocurilor de memorie.

Controler de reimprospatare (8202) pentru reimprospatarea blocului de memorie DRAM.

Circuit de interfata I/O (8282) si Conectorul de interfete pentru conectarea sistemului cu exteriorul.

Bloc de interfata cu Magistrala Sistem care face legatura dintre modul si sistemul multimicroprocesor. Blocul este format din

a).   Arbitru de magistrala (8289).

b).   Controler de magistrala (8288).

c).    Buffer de date (8287).

d).   Latch adrese (8283).

Controler de intreruperi (8259).

Conector de magistrala multibus.


3.Intocmirea repartizarii spatiului de adrese.


In aceasta etapa se prezinta zonele de memorie alocate pentru blocurile de memorie si porturile I/O utilizate, avand in vedere pe de o parte spatiul de adrese oferit d microprocesor si pe de alta parte necesarul de adrese pentru aplicatia curenta.

Tinand cont de faptul ca adresa de start a lui 8086 (dupa un impuls de RESET) este FFFF0h, acceasta adresa trebuie acoperita fizic de o memorie EPROM, care za contine secventa de program de pornire a sistemului; conform acestei precizari cei 24K de memorie EPROM au fost plasati in zona F4000h-FFFFFh.

In vederea obtinerii unei zone de memorie locale cat mai compacta si luand in calcul ca prima portiune a spatiului de adrese este dedicata tabelului de pointeri de adresa pentru intreruperi, cu posibilitatea ca acesta  sa poata fi inscris si modificat prin program, am alocat zona 00000h-07FFFh celor 96K de memorie RAM dinamica, iar memoriei RAM statica urmatoarea zona de 8K, intre adresele 08000h-0BFFFh.

Pe harta memoriei s-a specificat, de asemenea, si zona de adrese disponibila pentru memoriile aflate in alte module si accesibile de modulul SBC prin magistrala MULTIBUS, aceasta este cuprinsa intre adresele limita: 40000h-80000h, adica 512K. Aceasta zona se poate accesa prin semnalul SYSB/=1, pentru sinteza caruia se vor folosi liniile:A19 si A18 ale magistralei de adrese. Ecuatia logica a semnalului este:


SYSB/ =

A19A18A17A16

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1

A0

Adr.

in

HEX

0 1 11

01 11

00 0 0 0 0 0 0 0 0 0 0 0 0 0

. . .. . . . . . .. .

1111 1 1 1 1 1 1 1 1 1 1 1

0

.

1

70000

BFFFF

Pentru circuitul 8259A avem nevoie de doua locatii de memorie corespunzatoare celor doua porturi. Deci pentru A0=0 si A0=1 se aloca primele doua adrese pare din spatiul de memorie alocat pentru intreruperi (00 si 02

In ceea ce priveste circuitele de interfata I/O - circuitul 8255 este "vazut" de microprocesor ca un ansamblu de 4 adrese, deci i s-au repartizat urmatoarele 4 adrese pare (deoarece transferul cu microprocesorul se face pe 8 biti, in acest caz pe liniile inferioare ale magistralei de date, D0-D7) din spatiul de 64K, destinat operatiilor de intrare-iesire.

Harta memoriilor si a spatiului de intrare-iesire se prezinta in tabelele urmatoare:


FFFFF

F4000

EPROM 20K

LIBER

BFFFF

40000

MEMORIE EXTERNA

512k

LIBER

0BFFF

08000

SDRAM 16K

07FFF

00000

DRAM 32K

LIBER

FF

27

8282

26

25

8282

24

23

8255

22

21

8282

20


LIBER


19

03

8259A pt. A0=1

02

LIBER

01

8259A pt. A0=0

00



4. Proiectarea unitatii centrale.


Realizarea acestei etape presupune detalierea schemei bloc a unitati centrale, punandu-se in evidenta numarul de circuite utilizate si modul lor de conectare.

In configuratia multimicroprocesor cum este sistemul MULTIBUS, microprocesorul 8086 lucreaza in mod maxim, fapt evidentiat prin legarea la masa a intrarii MN/. In aceasta situatie o parte din pini isi schimba semnificatia, iar microprocesorul nu genereaza direct semnalele de comanda, ci livreaza in fiecare ciclu de magistrala un cuvant de stare controlerului de magistrala, care este raspunzator de decodificarea cuvantului de stare si generarea semnalelor de comanda corespunzatoare. Validarea acestui circuit se face numai cand microprocesorul cere un acces la resursele locale (SYSB/ =0).

Demultiplexarea magistralei comune in cea de date si cea de adrese este realizata cu ajutorul latch-urilor de adrese - 8282 (3 la numar), respectiv de buffer-ele de date - 8286 , circuitele fiind selectate prin semnalele corespunzatoare.

Circuitul 8284 furnizeaza microprocesorului semnalul de tact (CLK) avand frecventa de 5Mhz, prin divizarea cu 3 a frecventei oscilatorului sau intern. De aceea intre pinii x1 si x2 s-a conectat un cristal de cuart, avand frecventa de 15 Mhz. 8284 ofera, de asemenea, microprocesorului si semnalele: READY (caz in care trebuie prevazuta introducerea de stari de asteptare, daca este cazul, cat si sincronizarea, obligatorie, cu operatiile de pe magistrala MULTIBUS, cu ajutorul semnalului XACK), RESET (caz in care se necesita conectarea unor componente suplimentare astfel incat initializarea sa se produca la conectarea tensiunii de alimentare sau la apasarea unui buton de initializare, notat in schema cu Reset).

Schema detaliata se poate analiza in figura 2.




5. Proiectarea memoriei.



In cadrul acestui capitol se va expune fiecare bloc de memorie (EPROM, SRAM, DRAM), aratandu-se modul de obtinere si de conexiune a semnalelor de selectie si a celor de comanda.

Inaintea proiectarii se impun cateva observatii comune celor trei tipuri de memorii. Data fiind organizarea pe bancuri a blocurilor de memorie (magistrala de date de 16 biti fiind impartita in magistrala: inferioara, D0-D7, si cea superioara, D8-D15) memoria va fi distribuita in mod egal in cele doua blocuri, astfel incat locatiile de adresa succesiva vor fi regasite in bancuri diferite (cele cu adrese pare in bancul inferior, iar cele cu adrese impare in bancul superior). Acest mod de organizare a memoriei permite transferul de date pe octet pe una din cele doua bancuri in functie de semnalele A0 si nBHE, sau pe cuvant.

O alta observatie se poate face cu privire la timpul de acces al memoriei: 2T>tacces. Daca timpul de acces este mai mare decat doua perioade de tact atunci este nevoie adaugarea unei logici de inserare a unor stari de asteptare in activitatea microprocesorului, pentru ca transferul datelor sa se realizeze corect. Circuitele utilizate in proiectare sunt:


EPROM 2716 avand tacces=350 ns

SRAM2147 avand tacces=70 ns

DRAM 2118 avand tacces=100 ns

2T = 400 ns

Se observa ca nici un tip de memorie din cele trei nu necesita o astfel de logica pentru inserarea de stari WAIT.


5.1. Circuitul de memorie EPROM (2716)



Circuitul de memorie 2716 are capacitatea de 2Kx8. Asadar, pentru obtinerea celor 24K de care avem nevoie vom utiliza 12 circuite (6 in bancul inferior si 6 in cel superior).

Pentru obtinerea semnalelor de selectie vom intocmi tabelul adreselor limita pe baza hartii realizate in capitolul 3. Acest tabel arata astfel:


A19A18A17A16A15A14A13

A12A11A10A9A8A7A6A5A4A3A2A1

A0

Adresa

in

HEXA

Semnal

De

selectie

111101 1

.. . . . ..

11110 1 1

000 0 0 0 0 0 0 0 0 0

. . . . .. . . . . . .

111 1 1 1 1 1 1 1 1 1

0

.

1

F4000

F5FFF

EPROM1

111101 1

.. . . . ..

11110 1 1

000 0 0 0 0 0 0 0 0 0

. . . . .. . . . . . .

111 1 1 1 1 1 1 1 1 1

0

.

1

F6000

F7FFF

EPROM2

111110 0

.. . . . ..

111110 0

000 0 0 0 0 0 0 0 0 0

. . . . .. . . . . . .

111 1 1 1 1 1 1 1 1 1

0

.

1

F8000

F9FFF

EPROM3

111110 1

.. . . . ..

111110 1

000 0 0 0 0 0 0 0 0 0

. . . . .. . . . . . .

111 1 1 1 1 1 1 1 1 1

0

.

1

FA000

FBFFF

EPROM4

111111 0

.. . . . ..

111111 0

000 0 0 0 0 0 0 0 0 0

. . . . .. . . . . . .

111 1 1 1 1 1 1 1 1 1

0

.

1

FC000

FDFFF

EPROM5

111111 1

.. . . . ..

111111 1

000 0 0 0 0 0 0 0 0 0

. . . . .. . . . . . .

111 1 1 1 1 1 1 1 1 1

0

.

1

FE000

FFFFF

EPROM 6



Liniile de adrese: A0 - selectie banc

A1 - A12 - selectie in interiorul circuitului de memorie

A13 - A19 - selectie circuit


Sensul transferului este, in cazul acestui tip de memorie, unidirectional, accesul fiind numai pentru citire, deci se poate renunta la semnalele pentru validarea bancurilor: A0 si .

Schema de conectare si comanda a memoriei EPROM este data in figura 3.



5.2. Circuitul de memorie SRAM (2147)



Circuitul de memorie 2147 are capacitatea de 4Kx1. Pentru a forma 4Kx8 avem nevoie de 8 circuite ce lucreaza in paralel, conform acestui rationament pentru a forma 8K de care avem nevoie vom utiliza 16 de circuite (8 in bancul superior si 8 in cel inferior, 2 blocuri de cate 8 circuite).

Conform hartii de memorie realizate in capitolul 3 putem intocmi urmatorul tabel al adreselor limita. Acest tabel arata astfel:


A19A18A17A16A15A14A13A12A11

A10A9A8A7A6A5A4A3A2A1

A0

Adresa

in

HEXA

Semnal

De

selectie

00000 0 100

000000 10 0

0 0 0 0 0 0 0 0 0 0

. . .. . . . . . .

1 1 1 1 1 1 1 1 1 1

0

.

1

08000

09FFF

SRAM1

000000 101

000000 10 1

0 0 0 0 0 0 0 0 0 0

. . .. . . . . . .

1 1 1 1 1 1 1 1 1 1

0

.

1

0A000

0BFFF

SRAM2



Semnificatia liniilor de adrese este urmatoarea:

A0 - selectie banc

A1 - A10 - selectie in interiorul circuitului de memorie

A11 - A19 - selectie circuit


Sensul transferului este, in cazul acestui tip de memorie, bidirectional, accesul fiind atat pentru citire cat  si pentru scriere.

Pentru sinteza semnalului de selectie s-a folosit decodificatorul 8205, iar pentru selectia bancului s-a folosit linia A0 - pentru bancul inferior, respectivBHE - pentru bancul superior.

Pentru sinteza semnalelor de selectie: SRAM1,SRAM2 s-a observat ca putem utiliza acelasi decodificator folosit pentru selectia circuitului EPROM. Deci ecuatia intrarii E3 a decodificatorului 8205 este:

Schema de conectare si de comanda a memoriei SRAM este data in figura 4.


5.3. Circuitul de memorie DRAM (2118)



Circuitul de memorie 2118 are capacitatea de 16Kx1. Pentru a forma 16Kx8 avem nevoie de opt circuite ce lucreaza in paralel, conform acestui rationament pentru a forma 96K de care avem nevoie vom utiliza 42 de circuite (23 in bancul superior si 23 in cel inferior).

Acest tip de memorie necesita reimprospatarea periodica a informatiei, astfel incat in schema trebuie adaugat un controler de reimprospatare (8202). Acesta, pe langa reimprospatarea periodica a celulelor de memorie, realizeaza si multiplexarea liniilor de adrese, furnizand circuitelor adresa de rand insotita de semnalul si cea de coloana insotita de semnalul , deoarece circuitul prezinta o structura interioara de tip matriciala. Pentru a determina valoarea numerica a frecventei cristalului ce trebuie conectat la controler s-au comparat datele de catalog pentru memoria DRAM (2118), pentru care timpii de acces este tacc= 100ns, si diagramele de timp ale circuitului 8202. Urmarea acestei comparatii a dus la concluzia satisfacerii urmatoarelor relatii:


7.TCTR=100ns


conform careia frecventa de lucru a circuitului 8202 trebuie sa fie:

De aceea, intre intrarile: X0 /OP2 , X1 /CLK s-a conectat un cristal de cuart cu aceasta frecventa.

Conform hartii de memorie prezentate in capitolul 3 putem intocmi urmatorul tabel al adreselor limita pentru blocurile de memoria DRAM:


A19A18A17A16A15

A14A13A12A11A10A9A8A7A6A5A4A3A2A1

A0

Adresa

in

HEXA

Semnal

De

selectie

00000

.. . . .

00000

0 0 000 0 0 0 0 0 0 0 0 0

. .. . . . . . . . .

1 1 111 1 1 1 1 1 1 1 1 1

0

.

1

00000

07FFF

DRAM



Semnificatia liniilor de adrese este urmatoarea:

A0 - selectie banc

A1 - A12 - selectie in interiorul circuitului de memorie

A13 - A19 - selectie circuit


Semnalul de selectie a blocului DRAM provenit de la decodificatorul 8205 se va aplica intrarii a controlerului 8202 si va fi folosit pentru deschiderea buffer-elor 8282 in cazul unei comenzi de citire. Circuitul furnizeaza si un semnal de confirmare a transferului care este conectat prin intermediul unui inversor la intrarea RDY1 a generatorului de tact 8284. Lucrand cu blocuri de 16K, B0 s-a legat la masa, in acest caz folosindu-se doar semnalul pentru esantionarea adresei de rand.

Pentru a mentine datele citite din memorie pe magistrala un timp suficient pentru a fi preluate corect de microprocesor, am intercalat intre iesirile circuitelor de memorie si magistrala doua latch-uri pentru date (8282). Inscrierea datelor in latch-uri se face cu ajutorul semnalului , iar validarea iesirii cu si semnalul de selectie a blocului de circuite.

Schema blocului de memorie DRAM este data in figura 5.





6. PROIECTAREA INTERFETELOR DE INTRARE IESIRE


Scopul acestui capitol este prezentarea modului de interconectare a circuitelor periferice.

Pe baza hartii de alocare a adreselor in spatiul de intrare-iesire al microprocesorului, elaborat in capitolul 3 s-a construit urmatorul tabel:

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

Adr. In hexa

Port selectat

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

0 0 0 0000 0 0 0 0 0 0 0 1 0

0 0 0 0000 0 0 0 0 0 0 1 0 0

0 0 0 0000 0 0 0 0 0 0 1 1 0

0 0 0 0000 0 0 0 0 0 1 0 0 0

0 0 0 0000 0 0 0 0 0 1 0 1 0

0 0 0 0000 0 0 0 0 0 1 1 0 0

0 0 0 0000 0 0 0 0 0 1 1 1 0

0000

0002

0004

0006

0008

000A

000C

000E

Numarator 0

Numarator 1

Numarator 2

Numarator 3

Port de date

Port de comenzi

      


Toate circuitele fiind plasate la adrese pare acestea au fost conectate la liniile D0-D7 ale magistralei iar bitul A0 a fost utilizat la selectia circuitului impreuna cu semnalele corespunzatoare venite de la decodificator.

Semnalele de comanda utilizate sunt cele specifice adresarii in spatiul de intrare-iesire.

In cazul interfetei seriale s-au interclasat circuite de tip 1488 si 1489 care asigura conversia de nivel pentru compatibilitate cu standardul RS-232 pe de alta parte canalul zero al numaratorului programabil

Circuitul 8259 este plasat la adrese pare deci vor fi conectate la D0-D7.

Deoarece numarul de circuite este redus se utilizeaza o selectie liniara. Semnalele de comanda utilizate pentru citire si scriere sunt respectiv .

Circuitul 8259A este controler de intreruperi. Modul in care se conecteaza nivelele de intrerupere ale lui 8259A la liniile de intrerupere ale magistralei MULTIBUS si la sursele locale de intrerupere este lasat la latitudinea utilizatorului; in acest scop au fost prevazute conexiuni prin strapuri. Conectarea circuitului se face ca in figura 6.1.

In ce priveste controlerul de intreruperi 8259A intrarile IR0-IR7 au fost aduse tot la conectorul X1 la nivelul caruia cu ajutorul unor strapuri se poate configura nivelul intreruperii.

Scrierea programelor pentru circuitele periferice.

In aceasta faza se prevad secventele de program in limbaj de asamblare 8086 pentru configurarea circuitelor de interfata programabile in diferite moduri.

Din cele trei circuite programabile prevazute in tema proiectului pentru exemplificarea modului de programare s-a ales circuitul de interfata seriala 8251A.

Secventa de instructiuni de programare este:

MOV AL,52h mod asincron un bit de stop paritate para

5       biti/caracter divizare cu 16 a tactului

OUT                   0A,AL

MOV                  AL,15h validare receptie si transmisie

OUT                   0A,AL