UNIVERSITATEA ORADEA
FACULTATEA DE ELECTROTEHNICA SI INFORMATICA
SISTEME
MULTIMICROPROCESOARE
Student:
SISTEME MULTIMICROPROCESOR
PROIECT
Cuprins
1. Definirea temei si cerintele proiectului;
2. Elaborarea schemei bloc a modulului;
3. Intocmirea repartizarii spatiului de adrese;
4. Proiectarea unitatii centrale;
5. Proiectarea memoriei;
6. Proiectarea interfetelor de intare/iesire;
7. Proiectarea blocului de interfata cu magistrala sitem;
8. Elaborarea schemei electrice de ansamblu;
9. Bibliografie;
Anexe
Schema electrica de ansamblu al modulului;
1. Tema proiectului
Sa se proiecteze un modul monoplaca sbc cu microprocesor 8086, cu posibilitati sde cuplare intr-o configuratie multiprocesor cu magistrala multibus si avind urmatoarele caracteristici:
-memorie eprom de 4 koct cu circuite 2716
-memorie ram statica de 6 koct cu circuite 2114
-memorie ram dinamica de 64 koct cu circuite 2118
-interfata I/O cu circuite 82151A si 8253
Pentru tratarea intreruperilor se va folosi circuitul 8259A. In cazul circuitelor programabile se vor prezenta secventele 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 al moduluui
Schema bloc de principiu al modulului placa SBC este cea prezentata in figura 2.1.
Fig.2.1
Schema bloc contine, pe langa elementele obisnuite unei configuratii monoprocesor (unitate centrala, memorie, interfete I/O) dispuse in jurul magistralei locale, si un bloc de conectare la magistrala multimicroprocesor.
astfel:
- unitatea centrala contine: microprocesorul, generatorul de tact si reset;
- memoria contine: memorie EPROM, SRAM, DRAM si o logica de selectie;
- interfata I/O reprezentata de interfata seriala, contor/temporizator, controler de intreruperi;
- blocul de conectare la magistrala sistem este format din: arbitru de magistrala, controler de magistrala si circuite tampon;
- magistrala locala si cea de sistem sunt defalcate in magistrala de date, de adrese respectiv de control.
Schema indica si elementele necesare pentru demultiplexarea magistralei 8086 impreuna cu circuitele tampon aferente, precum si pentru generarea semnalelor de comanda pe magistrale, microprocesorul lucrand in mod maxim.
Schema bloc detaliata a modului este prezentata in figura 2.2.
Fig.2.2.
3. Intocmirea repartizari spatiului de adrese
Pentru intocmirea repartizarii spatiului de adrese, realizam harta memoriei si al porturilor de intrare/iesire.
Spatiul de adrese pentru memorii, tinind cont de datele din tema proiectului sint urmatoarele :
2K EPROM adica 00800H octeti ;
6K SRAM adica 01800H octeti ;
- 64K DRAM adica 10000H octeti.
Precizam faptul ca ordinea gruparii tipurilor de memorie este indiferenta, dar ca adresa de start al lui (8086) fiind FFFF0H, ea trebuie sa fie acoperita fizic de o memorie EPROM, ce va contine secventa de program de pornire al sistemului.
De asemenea prima portiune al spatiului de adrese este dedicata tabelului de pointer-i de adresa pentru intreruperi (256x4 octeti), si intrucit sistemul proiectat va lucra cu intreruperi, aceasta zona trebuie sa fie acoperita fizic de memoria DRAM, astfel ca ea poate fi modificata din program.
Harta ce cuprinde repartizarea spatiului de adrese este cea prezentata in figura 3.1.
Fig.3.1.
|
Microprocesorul 8086 pe linga spatiul de memorie
de 1 Moct dispuneseparat si de un spatiu de adrese
I/O de 64 Koct care este utilizat conform harti de adrese
prezentata in fig.3.2. (pentru circuitele de I/O folosite).
Spatiul ocupat de catre circuite este urmatorul:
-8251 ocupa 2 adrese(0004h, 0006h)
-8253 ocupa 4 adre-se(0008h, 000Ah, 000Ch, 000Eh)
-8259 ocupa 2 adrese(0010h, 0012h).
Adresele sunt pare astfel incat circuitele vor fi conectate
la liniile D0-D7 ale magistralei de date.
Fig.3.2
4. Proiectarea unitatii centrale
In configuratie MULTIBUS microprocesorul (8086) trebuie sa lucreze in mod maxim (intrarea MN/MX/=0).
Schema de principiu al unitatii centrale, care va fi detaliata in continuare este cea prezentata in figura 4.1.
Fig.4.1.
In modul de lucru maxim al microprocesorului (8086), o parte din pinii acestuia isi schimba semnificatia, si nu va genera direct semnale de comanda, ci va livra in fiecare ciclu de bus un cuvint de stare S0/, S1/, S3/ controlerului de magistrala (8288). Aceasta decodifica cuvintul de stare si
genereaza semnalele de comanda. Validarea acestui circuit trebuie facuta numai cind microprocesorul face un acces la resursele locale (SYSB/RESB/=0).
Unitatea centrala va contine si un generator de tact precum si circuite pentru demultiplexarea magistralei 8086.
Pentru generatorul de tact se foloseste circuitul 8284. Acesta asigura o divizare cu 3 a frecventei, deci se va folosi un cristal de cuart cu frecventa de 15 Mhz, si un factor de umplere de 1/3. Intrarea F/C (Frequency/Cristal)=0 pentru a indica faptul ca frecventa este dat de cristalul de cuart. Initializarea sistemului se produce la conectarea tensiunii de alimentare precum si la apasarea unui buton de initializare. Semnalul RESET trebuie sa fie activ cel putin 4 perioade de tact (800 ns) respectiv numai 50 ns la cuplarea tensiunii. El va fi aplicat prin intermediul circuitului 8284.
Schema logica a circuitului de initializare si a generatorului de tact este prezentata in figura 4.2.
Fig 4.2.
Intrarea RDY1 se foloseste pentru sincronizarea cu memoria DRAM iar intrarea RDY2 pentru sincronizarea cu operatiile de transfer de pe magistrala MULTIBUS. In acest scop se foloseste semnalul XACK de la controlerul de reimprospatare respectiv nXACK de pe magistrala MULTIBUS . Intrarea AEN1 primeste semnalul AEN pentru a scoate procesorul din asteptare dupa ce a primit controlul magistralei. Ecuatia logica a iesirii READY este: Daca AENi=1, READY=1 daca cel putin una din intrarile RDYi se activeaza.
Intrarea ASYNC=0 sincronizeaza semnalul READY cu frontul pozitiv si negativ al tactului. Timpul de acces al circuitelor de memorie folosite (2716, 2114,2118) este mai mic decit durata a doua perioade de tact (400 ns) deci nu este necesara o logica de introducere a starilor de asteptare. Pentru demultiplexarea magistralei se folosesc latch-uri ai buffer-e bidirectionale. Adresele, impreuna cu bitul BHE, sunt retinute in circuitele latch 8282 (de 8 biti) cu impulsul ALE.
Cuvintul de date este transmis prin circuitele 8286 (buffer bidirectional de 8 biti). Pentru stabilirea sensului de transmisie pe intrarea T (Transmit) se aduce semnalul DT/R (Data transmit/Receive).
Validarea iesirilor circuitelor 8282 se face cu semnalul DEN de la controlerul de magistrala 8288. Se folosesc 3 circuite 8282 respectiv 2 circuite 8286.
Modul de conectare al circuitelor 8282, 8286, 8288 cu microprocesorul este prezentat in figura 4.3.
Fig.4.3.
5. Proiectarea memoriei
Tabelul adrese limita pentru circuitele de memorie EPROM, SRAM si DRAM sint prezentate in tabelul 5.1.
Tab.5.1.
Proiectarea memoriei EPROM
Circuitele EPROM fac parte din categoria memoriilor cu continut permanent, la care accesul poate fi facut numai pentru citire. Ele isi pastreaza continutul si dupa decuplarea alimentarii, deci sint memorii de tip nevolatil.
Acest continut se poate totusi sterge prin expunerea capsulei de memorie EPROM la radiatii ultraviolete (pentru 15-20 minute), inscrierea informatiei fiind posibila cu dispozitive speciale, denumite inscriptoare de EPROM-uri.
De aici rezulta ca circuitele EPROM necesita montarea pe socluri.
Memoria de tip (2716) elaborata de firma Intel, are capacitatea de 2Kx8 biti, necesitind o singura tensiune de alimentare (Vcc=+5V).
Acest circuit are 11 intrari de adresa, 8 iesiri pentru date si 2 semnale de comanda :
- pentru selectia circuitului nCE=Chip Enable ;
- pentru validarea iesirilor nOE=Output Enable ;
ambele semnale fiind activate pe '0' logic. Iesirile de date sint de tipul 3 stari, datorita acestui fapt pot fi conectate direct la magistrala de date.
Pentru proiectarea memoriei EPROM de 12K in spatiul de adrese FD000h-FFFFFh avem nevoie de 6 circuite de tipul (2716).
In figura 5.1. se face prezentarea modului de conectare a memoriei de tipul EPROM la unitatea centrala si logica de selectie.
Fig.5.1.
Proiectarea memoriei SRAM
Circuitul de memorie RAM statica sau SRAM face parte din categoria memoriilor cu acces aleator, utilizate pentru scriere si citire, avind in fiecare celula de memorie cite un circuit basculant bistabil pentru pastrarea informatiei binare. La decuplarea tensiunii de alimentare, ele isi pierd continutul, deci sint de tip volatil.
Memoria de tipul (2114) elaborata de firma Intel, este organizata sub forma a 1024 de cuvinte de 4 biti .
Acest tip de memorie necesita o singura tensiune de alimentare (Vcc=+5V), pe linga borna de alimentare circuitul are doua borne de iesire respectiv intrare de date. Controlul acestora se face cu ajutorul semnalelor de selectie circuit (nCS=Chip Select) si validare scriere (nWE=Write Enable). Circuitul (2114) are 10 intrari de adrese, o intrare respectiv o iesiri de date si bornele de alimentare.
Pentru proiectarea memoriei de tipul SRAM de 6K in spatiul de adrese cuprinsa intre 10000h-117FFh avem nevoie de 6 circuite de tipul (2114).
Selectia circuitelor se face cu semnalele ROMi/(i=0-2) care vor fi iesirile din decodificatorul (8205). In figura 5.2. se face prezentarea modului de conectare a circuitelor de memorie SRAM la magistralele sistemulul si la circuitul de selectie.
Fig.5.2.
Proiectarea memoriei DRAM
Circuitul de memorie DRAM face parte din categoria memoriilor RAM, accesul fiind de citire sau scriere. Bitul de informatie se pastreaza in celula de memorie sub forma prezentei sau absentei unei sarcini electrice, stocate pe un condensator sau pe capacitatea grila-sursa a unui tranzistor MOS. Deoarece condensatorul are tendinta de a se descarca in timp, sarcina de pe ea trebuie refacuta periodic prin reinscriera informatiei. Aceasta operatie se numeste reimprospatarea memoriei dinamice (sau refresh) si trebuie efectuata cel putin o data la 2mS pentru fiecare celula de memorie pentru a nu pierde datele din memorie.
Memoria DRAM de tipul (2118) elaborata de firma Intel are capacitatea de 16,384x1 biti. Cuvintul de adresa de 14 biti se imparte in 2 jumatati, care se aplica succesiv la intrarile A0-A6.
Prima jumatate de adresa se numeste adresa de rind, iar cea de-a doua jumatate se numeste adresa de coloana.
Adresa de rind se retine intr-un registru intern pe frontul cazator al semnalului nRAS (Row Address Strobe), iar adresa de coloana se retine intr-un registru intern pe frontul cazator al semnalului nCAS (Column Address Strobe).
Multiplexarea liniilor de adresa la intrarea circuitului si generarea semnalelor nRAS si nCAS la momentele potrivite, cade in sarcina logicii externe circuitului de memorie.
Selectarea regimului de citire/scriere se face de la intrarea nWE (Write Enable), pentru cele doua situatii existind o intrare (DIN) respectiv o iesire (DOUT) separata de date. Alimentarea circuitului se face cu 3 tensiuni diferite.
Pentru proiectarea memoriei DRAM de 64K in spatiul de adrese 00000h-9FFFFh avem nevoie de 32 circuite de tipul (2118).
Fig.5.3
In figura 5.4 se face prezentarea modului de conectare a circuitelor de memorie DRAM la magistralele sistemulul si la circuitul de selectie, infigur 5.3se gaseste logica de selectie pentru memoria DRAM .
Proiectarea parti hard a interfetelor de intrare/iesire
Conectarea unui circuit periferic la magistrala are loc dupa schema de principiu din figura 6.1.
Fig.6.1.
Tabelul adreselor I/O este prezentat in tabelul 6.1.:
Tab.6.1.
Circuitele sunt plasate 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 nIORC respectiv nIOWC.
Circuitul 8251A este un circuit de interfata seriala. Modul de conectare al circuitului este dat in figura 6.2.
Ca semnal de tact se foloseste PCLK furnizat de 8284. Impulsurile de tact pentru transmisia seriala sunt furnizate de un canal al circuitului 8253A.
Circuitele ROB 1488, ROB 1489 asigura conversia de nivel pentru compatibilitate cu standardul RS-232.
Interfata se conecteaza la un conector, prevazut pe placa in acest scop.
Circuitul 8253A este un numarator/temporizator programabil. Canalul 0 se foloseste pentru generarea impulsurilor de tact pentru transmisia seriala. Canalul 1 se foloseste ca ceas de timp real pentru intreruperi la intervale egale de timp. Modul in care este conectat circuitul este prezentat in figura 6.3.
|
Fig.6 .2. Fig.6.3.
|
Fig.6.4 |
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.4.
Elaborarea secventei de program pentru circuitele periferice
Circuitul 8251A se programeaza in mod asincron, 1 bit de STOP, paritate impara, 5 biti/caracter, divizare cu 16 a tactului, validare recepyie si transmisie.
Canalul 0 al circuitului 8253A se programeaza ca generator de impulsuri de o anumita frecventa (modul 2). In conditiile in care se alege o frecventa a transmisiei seriale de 2400 biti/secunda, divizare cu 16 a tactului de citre circuitul 8251A, semnalul PCLK cu frecventa 2,5 Mhz, rezulta valoarea ce trebuie incarcata in numarator: 65.
Circuitul 8259 se programeaza inmod singular, intrari active pe nivel, intreruperi vectorizate, achitare automata a intreruperii, prioritati rotitoare.
Secventa de program este urmatoarea:
MOV AL, 1Bh ;programare 8259A
OUT 12h,AL ; mod singular, intreruperi active pe nivel
MOV AL, 38h ;inscrierea vectorului
OUT 12h,AL ;de intrerupere
MOV AL, 0Fh ;achitare automata
OUT 12h,AL ;
MOV AL, 80h ;prioritati rotitoare
OUT 12h,AL ;
MOV AL, 3Ch ;programare 8253A
OUT 0Eh,AL ;canal 0, numsrare in binar
MOV AL, 41h ;incarcare constanta de numarare
OUT 0Eh,AL ;
MOV AL, 52h ;programare 8251A
OUT 06h,AL ;mod asincron, 1 bi de STOP, paritate impara, caractere ;de 5 biti, divizare cu 16 a tactului
MOV AL, 0Fh ;validare receptie si transmisie
OUT 06h,AL ;
7. Proiectarea blocului de interfata cu magistrala sistem (BIM)
BIM reprezinta blocul de interfata cu magistrala si ea realizeaza legatura intre un sistem monoprocesor si un sistem multimicroprocesor.
Blocul de interfata cu magistrala MULTIBUS contine in principal aceleasi elemente ca cele folosite pentru comanda magistralei locale, prezentate in figura 7.1., la care se adauga arbitrul de magistrala de tipul (8289) elaborata de firma Intel.
Schema de principiu al acestui bloc este cel prezentat in figura 7.1.
Fig.7.1.
Blocul de interfata cu magistrala contine urmatoarele componente :
- buffer de date 2x(8287) ;
- buffer latch pentru adrese 3x(8283) ;
- controler de magistrala (8288) ;
- circuit controler pentru intreruperu (8259).
Circuitul de tipul (8289) este un arbitru de magistrala care este un automat secvential sincron ce parcurge starile in care se afla blocul master fata de magistrala sistem.
VIII. Elaborare schemei electrice finale, de ansamblu
Elaborarea schemei electrice de ansamblu al calculatorului monoplaca SBC, este prezentata in Anexa din prezentul proiect.
IX. Bibliografia
n A.W.Triebel - 'Microprocesorul 8086' ;
n I.Sztojanov - 'De la poarta TTL la microprocesor Vol.2.' ;
n Capatina O. - 'Proiectarea cu microprocesoare' ;
n Kakas Stefan - 'Sisteme multimicroprocesoare' ;
n Kakas Stefan - 'Sisteme cu microprocesoare' ;
|