Informatica
la sisteme multimicroprocesorUNIVERSITATEA ORADEA Facultatea de Electrotehnica si Informatica Sectia Automatica si Informatica Industriala PROIECT LA SISTEME MULTIMICROPROCESOR 1. Definirea temei si cerintele proiectului 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 32K cu circuite 2732;memorie SRAM de 12K cu circuite 2142; memorie DRAM de 64K cu circuite 4116; Interfata I/O cu circuite 8255; 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 urmatoare se prezinta schema bloc a modulului calculator monoplaca. 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 -nRESB. Pentru situatia in care acest semnal devine “0” se face acces la resursele locale, in caz contrar accesul se face la resursele externe. Schena bloc a modulului contine urmatoarele elemente: Microprocesorul (8086) care lucreaza la modul maximal. Generatorul de tact (8284) folosit pentru generarea tactului necesar micrioprocesorului pentru a asigura functionarea circuitelor interne ala acestuia. Circuitul (8284) face divizarea cu trei a frecventei determinate de cuariul 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 (2732). Un bloc de memorie SRAM (4142). Un bloc de memorie DRAM (4166). Decodificator de adresa (8205) pentru selectarea blocurilor de memorie. Controler de reimprospatare (8202) pentru reimprospatarea blocului de memorie DRAM. Circuit de interfata I/O (8251A, 8253) 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 32K de memorie EPROM au fost plasati in zona F8000h-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-0FFFFh celor 64K de memorie RAM dinamica, iar memoriei RAM statica urmatoarea zona de 12K, intre adresele 10000h-12FFFh.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: 70000h-7FFFh, adica 64K. Aceasta zona se poate accesa prin semnalul SYSB/nRESB=1, pentru sinteza caruia se vor folosi liniile:A19 A18 A17 A16 ale magistralei de adrese. Ecuatia logica a semnalului este:SYSB/nRESB=nA19xA18xA17xA16
Pentru circuitul 8259A avem nevoie de doua locatii de memorie corespunzatare 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 prezina in tabelele urmatoare:
4. Proiectarea unitatii centrale. Realizarea acestei etape presupune detailierea 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/nMX. In aceasta situatie o parte din pini isi schimba semnificatia, iar microprocesorul nu genereaza direct semnalale 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/nRESB 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 intoducerea de stari de asteptare, daca este cazul, cat si sincronizarea, obligatorie, cu operatiile de pe magistrala MULTIBUS, cu ajutorul semnalului nXACK), 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 detailiata se poate analiza in figura urmatoare:
5. Proiectarea memoriei In cadrul acestui capitol se va expune fiecare bloc de memorie (EPROM, SRAM, DRAM), aratande-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 2732 avand tacces=400 ns SRAM2142 avand tacces=200 ns DRAM 4116 avand tacces=320 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 (2732) Circuitul de memorie 2732 are capacitatea de 4Kx8. Asadar, pentru obtinerea celor 32K de care avem nevoie vom utiliza 8 circuite (patru in bancul inferior si patru in cel superior). Pentru obtinerea semnalelor de selectie vom intocmi tabelul adreselor limita pe baza hartii realizate in capitolul 3. Acest tabel arata astfel:
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 nBHE. Schema de conectare si comanda a memoriei EPROM este data in figura urmatoare:
5.2. Circuitul de memorie SRAM (2142) Circuitul de memorie 2142 are capacitatea de 1Kx4. Pentru a forma 1Kx8 avem nevoie de doua circuite ce lucreaza in paralel, conform acestui rationament pentru a forma 12K de care avem nevoie vom utiliza 24 de circuite (6 in bancul superior si 6 in cel inferior, 2 blocuri de cate 6 circuite). Conform hartii de memorie realizate in capitolul 3 putem intocmi urmatorul tabel al adreselor limita. Acest tabel arata astfel:
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, biderectional, accesul fiind atat pentru citire cat si pentru scriere. Penru 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. Schema de conectare si de comanda a memoriei SRAM este data in figura urmatoare: 5.3. Circuitul de memorie DRAM (4116) Circuitul de memorie 4116 are capacitatea de 16Kx1. Pentru a forma 16Kx8 avem nevoie de opt circuite ce lucreaza in paralel, conform acestui rationament pentru a forma 64K de care avem nevoie vom utiliza 32 de circuite (16 in bancul superior si 16 in cel inferior, 2 blocuri de cate 16 circuite). Acest tip de memorie necesita reimprospatarea periodica a informatiei, astfel incat in schema trebue 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 nRAS si cea de coloana insotita de semnalul nCAS, deoarece circuitul prezinta o structurs interioara de tip matriceala. Pentru a determina valoarea numerica a frecventei cristalului ce trebuie conectat la controler s-au comparat datele de catalog pentru memoria DRAM (4116), 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:
Semnificatia liniilor de adrese este urmatoarea: A0 – selectie banc A1 – A14 – selectie in interiorul circuitului de memorie A15 – A19 – selectie circuit Semnalul de selectie a blocului DRAM provenit de la decodificatorul 8205 se va aplica intrarii nPCS 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 nXACK 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 nRAS0 pentru esantionarea adresei de rand. Pentru a mentine datele citite din memorie pe magistala 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 nXACK, iar validarea iesirii cu nMRDC si semnalul de selectie a blocului de circuite. Schema blocului de memorie DRAM este data in figura urmatoare:
6. Proiectarea interfetelor de intrare/iesire Prin operatii de intrare/iesire se inteleg operatiile de transfer ale microsistemului cu dispozitivele de introducere si de extragere a datelor conectate la acestea. Aceste operatii asigura, de fapt, comunicarea microsistemului cu mediul extern. Harta de alocare a adreselor in spatiul intrare/iesire al microprocesorului este prezentata in tabelul de mai jos:
Circuitele 8255A si 8259A au fost plasate la adrese pare, fiind conectate la liniile D[0-7] ale magistralei de date. Circuitul de interfata paralela contine 3 porturi paralele independente (A, B, C) de cate 8 biti, oricare din acestea putand fi utilizate in functie de modul de programare. Semnalele de dialog cu microprocesorul ale interfetei paralele 8255 au fost aduse la conectorul C2 in vederea utilizarii in mod corespunzator dorintei utilizatorului de sistem. Semnalele utilizate sunt cele specifice adresarii in spatiul de intrare –iesire. La controlerul de intreruperi 8259A, intrarile IR0-IR7 au fost aduse la conectorul C1, la nivelul caruia, cu ajutorul unor strapuri, se poate configura nivelul intreruperii (mai prioritara sau mai putin prioritara) precum si tipul acesteia (locala, de la 8255, respectiv de la magistrala MULTIBUS). Modul de implementare a blocului de interfata cu circuit 8259A si unul de tip 8255 se prezinta in figura de mai jos:
7. Programarea circuitelor periferice Se executa de doua tipuri de cuvinte de comanda care se trimit la controler cu instructiunea OUT: cuvant de initializare si cuvant de operare. Pe baza informatiilor de catalog cuvintele de programare ce trebuie trimise de microprocesor acestui circuit sunt: ICW1: 7 65 4 3 2 1 0
A0=0; 0 00 1 1 0 1 1 AL ← 1B H ICW1: 7 65 4 3 2 1 0
A0=1; 0 00 0 0 0 0 0 AL ← 00 H ICW1: 7 65 4 3 2 1 0
A0=1; 0 00 1 0 0 1 1 Secvensa de instructiuni de programare este: MOV AL, 1B H ; mod singular, intreruper activa pe nivel OUT 08, AL MOV AL, 00 H ; vector de intrerupere OUT 0A, AL MOV AL, 13 H ; achitare automata a intr., mod cu prioritati fixe special OUT 0A, AL 8. Proiectarea blocului de interfeta cu magistrala sistem Blocul de interfata cu magistrala MULTIBUS contine, in principiu, aceleasi componente ca si blocul de interfata cu magistrala locala, proiectat tn cadrul capitolului 4, la care se adauga arbitrul de magistrala 8289 care sesizeaza cererea de acces la magistrala sistem (in vederea transferului de date cu memoria externa) furnizand si gestionand in mod adecvat semnalele de comanda necesare in acest sens. Validarea accesului la resursele externe se face in prezenta semnalului SYS/nRESB, iar initierea operatiilor de transfer se face prin decodificarea semnalelor de stare nS0, nS1, nS2, de catre circuitul 8289. In ceea ce priveste conectarea la magistrala MULTIBUS a microprocesorului, se observa utilizarea unor latch uri de adrese si a unor duffere de date, care asigura inversarea polaritatii semnalelor de intrare, care asigura compatibilitatea acestora cu semnalele de pe magistrala MULTIBUS. O observatie importanta este faptul ca in cadrul proiectarii blocului de interfata cu magistrala sistem s-au prevazut buffere de date (swap bzte buffer) in vederea redirijarii datelor de pe magistrala superioara pe cea inferioara, in cazul unui transfer pe octet de la adresa impara; deci este satisfacuta conditia de compatibilitate cu modulele de 8 biti, conectate la magistrala sistem. 9. Elaborarea schemei electrice de ansamblu Schema electrica finala s-a obtinut prin imbinarea intr-o singura schema a planselor elaborate in etapele anterioare, detailate la nivel de circuit, prezentand conectarile tuturor pinilor circuitelor. Figura de mai jos contine schema electrica de ansamblu proiectata cu ajutorul programului ORCAD: BIBLIOGRAFIE V.KAKAS Stefan – “Sisteme cu microprocesoare” Curs, Universitatea din ORADEA, 1995. V.KAKAS Stefan – “Sisteme cu microprocesoare” Indrumator de proiect, Universitatea din ORADEA, 1995.
|