I8086dasdas

37
Introducere Se consideră anul 1971, când INTEL a anunţat producerea primului microprocesor, ca momentul trecerii de la electronica implementată cablat la electronica realizată programat. Primul microprocesor 4004 a fost conceput de M. E. Hoff ca un procesor puţin simplificat pentru a putea fi implementat, la vremea aceea, pe un singur cip în siliciu. Iniţial, microprocesorul nu a fost un computeron-a-chip, deşi în timp a ajuns la acest stadiu; conceptul de microprocesor s-a dezvoltat şi spre alte implementări specifice: microcontroller, microcalculator, procesor de semnale (DSP). Oricare din aceste circuite, pentru a deveni parte a unui sistem, impune un proces de proiectare care se bazează în egală măsură atât pe componenta hardware cât şi pe componenta software. Microprocesorul, sau celelalte variante ale sale, integrat într-un system aduc acestuia acea performanţă, care atunci când este realizată de fiinţa umană este referită ca inteligenţă. În general, microprocesorul este integrat ca unitate centrală de procesare în sistemele digitale de calcul. Actual, aproape toate sistemele au o arhitectură de sistem digital particularizându-se în funcţie de aplicare/utilizare. Aplicaţiile care nu sunt, în sensul clasic, sisteme

description

asd

Transcript of I8086dasdas

IntroducereSe consider anul 1971, cnd INTEL a anunat producerea primului microprocesor, ca momentul trecerii de la electronica implementat cablat la electronica realizat programat. Primul microprocesor 4004 a fost conceput de M. E. Hoff ca un procesor puin simplificat pentru a putea fi implementat, la vremea aceea, pe un singur cip n siliciu. Iniial, microprocesorul nu a fost un computeron-a-chip, dei n timp a ajuns la acest stadiu; conceptul de microprocesor s-a dezvoltat i spre alte implementri specifice: microcontroller, microcalculator, procesor de semnale (DSP). Oricare din aceste circuite, pentru a deveni parte a unui sistem, impune un proces de proiectare care se bazeaz n egal msur att pe componenta hardware ct i pe componenta software.Microprocesorul, sau celelalte variante ale sale, integrat ntr-un system aduc acestuia acea performan, care atunci cnd este realizat de fiina uman este referit ca inteligen. n general, microprocesorul este integrat ca unitate central de procesare n sistemele digitale de calcul. Actual, aproape toate sistemele au o arhitectur de sistem digital particularizndu-se n funcie de aplicare/utilizare. Aplicaiile care nu sunt, n sensul clasic, sisteme digitale de calcul sunt n general implementate pe baz de microprocesor sau DSP. Implementrile sistemelor pe baz de microcontroller ori DSP devin simple i ieftine -pentru c utilizeaz deja o component de serie, devin performante pentru c utilizeaz o component carepoate asigura suport pentru inteligen, devin flexibile pentru c utilizeaz o component ce poate fi programat. Proiectarea arhitecturii SMPSpre deosebire de proiectarea aparatului electronic tradiional, proiectarea sistemelor pe MP are un ir de etape speciale, cauzate de mijloacele hard i soft accesibile. Problema de baz const n gsirea interaciunii optimale ntre mijloacele hard i soft a sistemului. Analiza cerinelor ctre sistemele pe MP. La aceast etap se formuleaz cerinele tehnice, obiective ctre sistem i funciile ndeplinite n baza terminilor primii pentru descrierea tehnic a SMP, determinarea parametrilor, caracteristicilor i regimurilor de lucru. Totalitatea de cerine tehnice impuse SMP trebuie s asigure rezolvarea problemei puse.nainte de a lua decizia despre metodele realizrii SMP, este necesar de a cerceta cerinele impuse: viteza de lucru, gabarite, masa, consumul energiei, tehnologizare, preul.n afar de aceasta trebuie de evideniat cerinele, ndeplinirea crora nu este strict obligatorie, de asemenea i resticiile ctre SMP. La aceast etap se determin resursele pentru realizarea sistemului: de munc, materiale, instrumentale etc. n acest caz se ia n consideraie posibilitatea de utilizare a hardului i softului aflat n posesie.Determinarea i analiza cerinelor tehnice ctre SMP sunt asemntoare cu cele utilizate n electronica tradiional. Acest fapt este adevrat doar parial, fiindc SMP au o flexibilitate mai nalt referitor la ndeplinirea funciilor. Dac proprietile de funcionare a dispozitivelor, construite pe baza numai a mijloacelor hard, sunt determinate de elementele scheme i trebuie s corespund n ntregime cu cerinele impuse la nceputul proiectrii, atunci la utilizarea microprocesorului ele pot fi indicate dup proiectarea softului. Aceasta cteodat duce la o realizare optim a SMP.La acest nivel se elaboreaz structura general a SMP i algoritmele lui de funcionare. Una din sarcinele proiectrii structurale este divizarea SMP n module funcionale complete ce permite de a duce o proiectarea paralel cu mai muli proiectani. La aceast etap trebuie luat decizia referitor la divizarea cerinelor tehnice i funciilor dintre hard i soft a SMP. Dup aceasta se proiecteaz paralel resursele hard i soft.Proiectarea resurselor fizice (hard) a SMPDup ce s-a gsit o interaciune optimal ntre resursele hard i soft se face proiectarea amnunit a prii fizice a SMP. Este necesar de a remarca unele particulariti de proiectarea a hardului. n majoritatea cazurilor componena aparatajului diferitor SMP construite pe unul i acela microprocesor sunt asemntoare. Ele constau din microprocesor, memorie, decodare de adrese i module periferice pentru legtura cu dispozitivele externe. Proiectarea hardului SMP este mai simpl i ieftin dect aparatajului electronic, fiindc n cazul alegerii unui tip concret de microprocesor pot fi utilizate rezolvri standarde.1.Proiectarea procesorului Intel 8086Cele doua caracteristici hardware eseniale ce definesc funcionarea microprocesorului I8086 sunt: - multiplexarea in timp a magistralei de adrese si date (microprocesorul are configuraie intern comutabil pentru adaptarea la nivelul de complexitate a sistemului in care este utilizat.

Astfel, in sistemele simple, 8086 ii genereaz si controleaz singur semnalele de pe magistrala de control; in sistemele complexe, magistrala de control este generata de un circuit specializat din familia lui 8086, circuit denumit "controler de magistrala" (8288 Bus Controller), opt dintre conexiunile fizice ale microprocesorului fiind comutate pentru a indeplini functiunile de coordonare necesare. Un singur pin al lui 8086, pinul 33 (MN /), conectat la masa sau la alimentare, comanda comutarea configuratiei interne a microprocesorului pentru adaptarea la sistemul extern.1.1 Arhitectura microprocesorului Executia unui program intr-un sistem cu microprocesor are ca efect (intr-o abordare simplificata) repetarea ciclica a pasilor de mai jos:1. Extragerea urmatoarei instructiuni din memorie.2. Citirea unui operand (daca instructiunea o cere).3. Executia instructiunii.4. Scrierea rezultatului (daca instructiunea o cere).Datorita arhitecturii specifice, executia acestor pasi are loc in doua unitati separate de procesare a datelor din cadrul CPU: EU (execution unit) unitatea de executie si BIU (bus interface unit) unitatea de interfata cu magistrala. In EU are loc executia instructiunilor, in timp ce BIU extrage instructiunile, citeste operanzii si scrie rezultatele in memorie. Cele doua unitati pot opera independent una de cealalta si pot asigura in majoritatea cazurilor suprapunerea in timp a etapei de extragere a unei instructiuni cu etapa de executie a unei instructiuni precedent extrase din memorie. In acest mod, practic "dispare" timpul necesar extragerii instructiunilor din memorie, crescand viteza de lucru amicroprocesorului deoarece EU executa instructiuni al caror cod a fost deja adus de catre BIU din memorie in microprocesor.EU Unitatea de executieUnitatea de executie contine registrii de uz general, unitatea aritmetico-logica, registrul indicatorilor de conditie, un bloc logic de control si o magistrala interna de date de 16 biti (figura 1.1).Functiile EU acopera executia tuturor instructiunilor, furnizarea datelor si a adreselor catre BIU, controlul registrelor de uz general si al indicatorilor de conditie. Cu exceptia citorva pini de control, unitatea de executie este complet izolata de "lumea exterioara". Asa cum se evidentiaza in figura 1.1, EU preia instructiunea urmatoare de executat dintr-o coada de asteptare alimentata continuu de unitatea de interfata cu magistrala.

Figura. 1.1. Schema bloc a MP I8086 In situatia in care nu exista nici o instructiune de preluat pentru a fi executata, unitatea de executie asteapta pina cind coada este realimentata de catre BIU. Daca in cursul executiei instructiunii este necesar accesul la o locatie de memorie sau la un echipament periferic, EU solicita unitatii de interfata cu magistrala sa transfere data, executand ciclul de magistrala corespunzator (citire/scriere la memorie sau port). Totodata, desi magistrala EU are doar 16 biti, se poate accesa in exterior intregul spatiu de un megaoctet de memorie prin intermediul BIU care asigura relocatarea adresei inaintea fiecarui transfer.

BIU Unitatea de interfata cu magistralaUnitatea de interfata cu magistrala executa toate operatiile externe de magistrala ce sunt necesare pe parcursul extragerii si executiei unei instructiuni. Ea se compune din registrii de segment, un registru de tip contor de program denumit pointer de instructiuni (instruction pointer), registri de comunicatie interna, o schema logica pentru generarea adresei pe cele 20 de linii de adresa ale microprocesorului 8086 si pentru controlul magistralei multiplexate precum si o coada de instructiuni (queue). Aceasta este realizata cu o memorie RAM de 6 octeti si contine instructiuni care sunt extrase in avans de BIU si urmeaza sa fie preluate de EU pentru decodificare si executie.Cele doua unitati de procesare ale CPU opereaza independent una de alta in sensul ca, ori de cite ori doi sau mai multi octeti din coada sunt liberi, iar EU nu solicita BIU la efectuarea vreunui ciclu de magistrala, unitatea de interfata cu magistrala executa in avans cicluri de extragere de instructiuni pentru a realimenta locatiile libere din coada de instructiuni. Acest mod de lucru permite BIU sa furnizeze EU instructiuni extrase anterior fara a monopoliza magistrala sistemului caci, in mod normal, in majoritatea situatiilor coada de instructiuni contine cel putin un octet ce poate fi preluat de EU pentru decodificare si executie. In plus, cum sistemele cu microprocesor 8086 au uzual magistrala de date de 16 biti, intr-un singur ciclu de extragere se alimenteaza coada cu doi octeti, cu exceptia cazurilor cand adresa de la care se citeste instructiunea urmatoare este impara, asa cum se va arata ulterior.Instructiunile extrase in avans de BIU sunt cele care urmeaza in mod logic intr-o procesare seriala a programului, ele aflindu-se in memorie in locatii adiacente si la adrese superioare adresei instructiunii care se executa la un moment dat. In cazul in care EU executa o instructiune care transfera controlul programului catre o alta locatie de memorie, BIU reseteaza coada, extrage instructiunea de la noua adresa, transferand-o imediat unitatii de executie, apoi incepe realimentarea cozii de la noua locatie. De asemenea, BIU suspenda operatiile de extragere de instructiuni (cu exceptia celei in curs de desfasurare) ori de cite ori unitatea de executie solicita efectuarea pe magistrala a unui transfer cu memoria sau cu un port de intrare/iesire.Registrele de uz generalMicroprocesorul 8086 are 8 registre generale de 16 biti grupate in doua seturi a cite 4 registre fiecare: registrele de date (uneori denumite grupul registrelor H&L de la high si low) si registrele pointer si index (denumite si grupul P&I).Un registru apartinind grupului H&L se caracterizeaza prin faptul ca poate fi adresat ca registru de 16 biti, dar se compune din doua entitati de 8 biti, partea high si partea low, care pot fi adresate la rindul lor separat, ca registre de 8 biti. Registrele pointer si index nu pot fi adresate decat ca registre de 16 biti. Atat registrele de date cat si registrele pointer si index pot fi folosite in majoritatea operatiilor aritmetice si logice, oricare dintre ele putand juca rolul registrului "acumulator" existent la generatiile precedente de microprocesoare. Pentru a permite utilizarea unui set compact, dar puternic de instructiuni, anumite registre sunt folosite in mod implicit de unele instructiuni, asa cum arata tabelul 1.1.

Figura 1.2 Setul de regitri Tabelul 1 Utilizarea implicit a registrilor de uz generalREGISTRUOPERAII

AXInmuliri, impariri i I/E pe cuvnt

ALInmultiri, impartiri si I/E pe octet, translatari, aritmetica zecimala

AHInmultiri si impartiri pe octet

BXTranslatari

CXOperatii cu siruri de caractere, contor pentru operatii repetate

CLDeplasari si rotiri cu mai mult de o pozitie

DXInmultiri si impartiri pe cuvint, I/E cu adresare indirecta

SPOperatii cu stiva

SI, DIOperatii cu siruri de caractere

Registrele de segmentSpatiul fizic de memorie de 1 Mb direct adresabil de microprocesorul 8086 este divizat in segmente logice de pana la 64 kB fiecare .CPU are acces direct in orice moment la patru segmente logice ale caror adrese de baza (adresele de inceput ale segmentelor) se afla in registrii de segment ai microprocesorului (figura 1.3).Registrul segmentului de cod (CS) contine adresa de inceput a segmentului din Figura 1.3. Registrele de segment

care sunt extrase instructiunile segmentul de cod.Stiva programului se afla in asa numitul segment de stiva catre care "pointeaza" registrul segmentului de stiva (SS). Mai exista de asemenea doua segmente de date, unul propriu-zis (DS) si unul suplimentar (ES) fiecaruia fiindu-i asociat cate un registru de segment ce contine adresa de inceput respectiva. Si registrele de segment sunt accesibile programatorului, continutul lor putind fi modificat de anumite instructiuni.Registrul pointerului de instructiuniRegistrul pointerului de instructiuni (Instruction Pointer) este similar registrului contor de program (Program Counter) al microprocesoarelor pe 8 biti. Actualizat de catre BIU, el contine ofsetul (distanta in octeti) urmatoarei instructiuni, masurat de la inceputul segmentului curent de cod. Astfel spus, IP reprezinta in mod normal un pointer catre urmatoarea instructiune ce urmeaza a fi extrasa de catre BIU, iar atunci cand este salvat in stiva se modifica automat pentru a indica ofsetul urmatoarei instructiuni ce urmeaza a fi executata de EU. Operarea cu continutul IP odata salvat in stiva constituie calea prin care acesta poate fi modificat indirect in decursul executiei unui program.Indicatorii de conditie:Microprocesorul 8086 are 6 biti de stare si 3 biti de control grupati in registrul indicatorilor de conditie (flags)(figura 1.4). Cei de stare sunt pozitionati de unitatea de executie pentru a reflecta anumite proprietati ale rezultatului unei operatii aritmetice sau logice. Acestia pot fi utilizati de un grup al setului de instructiuni pentru a modifica secventialitatea executiei programului in functie de rezultatul operatiei anterioare. In general, indicatorii starii programului reflecta urmatoarele conditii: AF - Auxiliary Carry Flag. Daca AF=1, a existat un transport dinspre bitul 7 spre bitul 8 sau un imprumut dinspre bitul 8 catre bitul 7. Acest indicator este folosit indeosebi in cazul instructiunilor ce implica operatii aritmetice cu numere zecimale codificate binar. CF - Carry Flag. Daca CF=1, a existat un transport dinspre sau un imprumut catre cel mai semnificativ bit (MSB) al rezultatului reprezentat pe 8 sau 16 biti. Acest indicator este utilizat de instructiunile ce implica operatii de adunare sau scadere cu numere reprezentate pe unul sau mai multi octeti. Biti ai operanzilor din memorie sau registri pot fi izolati in CF prin intermediul instructiunilor de rotire si deplasare. OF - Overflow Flag. Daca OF=1, a aparut o depasire aritmetica, adica s-a pierdut cel mai semnificativ bit al rezultatului datorita faptului ca dimensiunea acestuia a depasit capacitatea de reprezentare a locatiei destinatie. Este de remarcat faptul ca exista o instructiune (INTerrupt On Overflow) care genereaza o cerere de intrerupere pentru semnalarea aparitiei acestei situatii. SF - Sign Flag. SF=1 indica faptul ca cel mai semnificativ bit al rezultatului are valoarea 1. Cum numerele intregi cu semn sunt reprezentate in complement fata de 2, rezulta ca SF arata semnul rezultatului (0=pozitiv, 1=negativ). PF - Parity Flag. PF=1 atunci cand rezultatul are un numar par de biti pozitionati pe 1. Poate fi utilizat pentru verificarea erorilor de transmisie a datelor. ZF - Zero Flag. Valoarea zero a rezultatului este evidentiata prin ZF=1.

Figura 1.4. Indicatorii de condiii

Cei 3 indicatori de control pot fi modificati prin program pentru a determina anumite operatii ale procesorului. Astfel: DF - Direction Flag. Acest indicator este utilizat de instructiunile ce opereaza cu siruri de caractere (string) si semnalizeaza autodecrementarea (DF=1) respectiv autoincrementarea (DF=0) registrilor SI si DI care contin ofsetul adreselor sursa si destinatie ce intervin in transfer. IF - Interrupt enable Flag. Setarea IF prin instructiunea SeT Interrupt enable flag permite CPU sa recunoasca cererile de intrerupere externa mascabile, in timp ce resetarea aceluiasi indicator cu instructiunea CLear Interrupt enable flag le va dezactiva. Modificarea valorii lui IF nu are efect asupra intreruperilor generate intern in CPU sau a celor externe nemascabile. TF - Trap Flag. Daca TF=1, procesorul intra in modul de operare pas cu pas in care CPU genereaza automat o intrerupere interna dupa fiecare instructiune pentru a permite examinarea starii programului si deci depanarea acestuia.Organizarea memorieiMicroprocesorul 8086 poate adresa direct un spatiu de 220 = 1Mo = 1.048.576 octeti organizat liniar cu adresele joase la inceput si adresele inalte la sfirsit. Instructiunile si datele pe octet sau cuvant pot fi plasate liber la orice adresa, fie ea para sau impara, pentru a permite o stocare densa a codului programului in memorie acesta fiind unul din conceptele impuse la proiectarea procesorului, asa cum s-a aratat in paragraful introductiv (v. si fig. 5.5). Totusi, trebuie remarcat faptul ca memorarea unei variabile de tip word la o adresa impara situatie in care se spune ca variabila este nealiniata (unaligned) anuleaza din punct de vedere al transferului variabilei respective avantajul microprocesorului 8086 de a avea o magistrala de date de 16 biti (vezi sectiunea 5.4). In ceea ce priveste instructiunile, alinierea sau nealinierea lor nu afecteaza performantele microprocesorului datorita cozii de asteptare din BIU.

Fig. 1.5. Organizarea memoriei memorarea variabilelor si instructiunilor

Conform conventiilor INTEL, o variabila de tip word este intotdeauna memorata cu octetul cel mai semnificativ in locatia de memorie cu adresa superioara. Aceasta regula se extinde si la memorarea variabilelor de tip pointer (variabile pe un cuvint dublu folosite pentru a adresa date in afara segmentului de date sau de program ce este adresabil in mod curent la momentul respectiv): cuvantul ce contine ofsetul se memoreaza la cele doua adrese inferioare, cuvantul ce contine adresa de baza a segmentului se memoreaza la cele doua adrese superioare la care este stocat pointerul, iar in cadrul fiecarui cuvant, octetul cel mai semnificativ este la randul lui memorat la adresa superioara (vezi figura 1.6).

Figura 1.6 Memorarea variabilelor de tip word si pointer Definirea pinilor:Microprocesorul 8086 are o magistrala de date si adrese multiplexata in timp (la inceputul ciclului masina informatia prezenta pe magistrala multiplexata reprezinta o adresa, ulterior ea schimbandu-se si reprezentand data implicata in transferul efectuat la adresa respectiva) ceea ce permite unui numar de pini sa indeplineasca functii duale si in consecinta microprocesorului sa poata fi incorporat intr-o singura capsula cu 40 de pini.

Deasemenea, asa cum se va arata ulterior, un numar de pini de control ai CPU sunt definiti diferit in functie de cum este conectat un singur pin de intrare, pinul 33 ( MN /), la masa sau la Vcc. In figura 1.7 este prezentata asignarea pinilor, denumirile in paranteza corespunzand conectarii pinului 33 la masa, iar in tabelul 1.2, functiile si tipul semnalelor

Figura.1.7 Definirea pinilor Microprocesorul I8086

Tabelul 1.2Functiile si tipul semnalelor microprocesorului I8086SEMNALE COMUNE

NumeFunctieTip

AD15-AD0Address/Data Bus Magistrala de adrese/dateBidirect., 3-state

A19/S6-A16/S3Address/Status Adrese/Stare Iesire, 3-state

/STBus High Enable/Status Activare octet superior pe mag./StareIesire, 3-state

MN/Minimum/Maximum Mode Control Control mod min./max.Intrare

Read Control Control citire Iesire, 3-state

Wait On Test Control Test asteptareIntrare

READYWait State Control Sincronizare transfer pe mag. de dateIntrare

RESETSystem Reset Initializare sistemIntrare

NMINon-Maskable Interrupt Request Cerere intrerupere nemascabilaIntrare

INTRInterrupt Request Cerere intrerupere mascabilaIntrare

CLKSystem Clock Ceas de sistem Intrare

Vcc+ 5 V Intrare

GNDGround Masa

SEMNALE PENTRU MODUL MINIM

( = Vcc )

NumeFunctieTip

HOLDHold Request Cerere magistrala Intrare

HLDAHold Acknowledge Acceptare cerere magistralaIesire

Write Control scriere Iesire, 3-state

Memory/IO Control Control selectie memorie/port de I/EIesire, 3-state

Data Transmit/Receive Control sens transfer date pe magistralaIesire, 3-state

Data Enable Activare date pe magistralaIesire, 3-state

ALEAddress Latch Enable Activare adrese pe magistrala Iesire

Interrupt Acknowledge Acceptare cerere de intrerupereIesire

SEMNALE PENTRU MODUL MAXIM ( = GND)

NumeFunctieTip

,

Request/Grant Bus Access Control Cerere/Acceptare acces magistral.Bidirectional

Bus Priority Lock Control Control acces pe magistralaIesire, 3-state

S2 S0Bus Cycle Status Specificare stare ciclu de magistrala Iesire, 3-state

QS1,QS0Instruction Queue Status Specificare stare coada de instructiuniIesire

Una din facilitatile oferite de 8086 este posibilitatea de a selecta hardware configuratia de baza a masinii prin simpla conectare la masa sau alimentare a pinului 33 (MN / ), prin care se defineste modul de lucru. Pentru a configura microprocesorul in modul minim, intrarea MN/ trebuie conectata la +5V. In acest mod de operare, CPU este optimizata sa functioneze in sisteme mici, mono-procesor, 8086 generand singur toate semnalele de control pe magistrala (DT/R, DEN, ALE, M /IO, RD, WR si INTA ) si, in plus, furnizand un mecanism pentru functia de acceptare cerere de magistrala compatibil cu un echipament de tip DMA (exemplu: controlerul DMA INTEL8257). In figura 1.11. se prezinta un exemplu de sistem cu microprocesor 8086 functionand in modul minim.

Figura. 1.8. Configuratia sistemului in modul minimn figura 1.9 este prezentat configuratia sistemului n modul maxim de functionareFigura 1.9 Configuratia sistemului n regim maxim. Structura procesorului I8086 (K1810BM86) cu magistrala de sistem de 16 bii multiplexat este prezentat n figura 1.10.Figura 1.10 Structura MP I8086 (K1810BM86) cu magistrala de sistem de 16 bii multiplexat

Microprocesorul I8086 (K1810BM86) n regimul minimal de funcionare conine n afar de MP I8086 (K1810BM86) un generator de sistem i controlere a magistralelor destinate pentru asigurarea unui regim de lucru normal.Generatorul de sistemGeneratorul de sistem este relizat n baza microcircuitului KP181084 ce este destinat dirijrii microprocesorului I8086 (P1810BM86) i dispozitivelor periferice, de asemenea pentru sincronizarea semnalelor READY cu semnalele de tact ale microprocesorului i semnalelor magistralei interfeei MULTIBUS. Generatorul de sistem include circuite de formare a impulsurilor de tact (OSC, CLK, PCLK), semnalului RESET i semnalului READY (figura 1.11).Circuitul de formare a impulsurilor de tact genereaz semnalele: CLKfrecvena de tact pentru microprocesor;PCLKfrecvena de tact pentru dirijarea circuitelor periferice;OSCfrecvena de tact a generatorului etalon, necesar pentru dirijarea dispozitivelor sistemului i pentru sincronizare. Semnalele sunt sincrone, frecvenele lor sunt legate de relaia: FOSC=3FCLK=6FPCLK n regim de generator intern i:FEFI=3FCLK=6FPCLK n regim de generator extern.Alegerea regimului de funcionare se determin de potenialul la intrare F/C. Dac intrarea este conectat la mas, atunci GS lucreaz n regim de formare a semnalelor de la generatorul intern, iar dac la F/C se aplic un potenial nalt atunci n regim de formare a semnalului de la generatorul extern.Circuitul de formare a semnalului RESET are la intrare un trigger Shmidt, iar la ieire trigger formator al frontului semnalului RESET. De obicei la intrare RES se conecteaz un circuit RC care asigur formarea automat a semnalului la conectarea sursei de alimentare.Circuitul de formare a impulsurilor de tact are o intrare de sincronizare special (CSYNC), cu ajutorul creia se poate sincroniza funcionarea a ctorva generatoare de sistem. Aa sincronizare se realizeaz cu ajutorul a dou a dou trighere D la intrrile CSYNC i EFI.Semnalul de intrare READY se utilizeaz n calitate de afirmare a posibilitii de schimb (transfer). Circuitul de formare a acestui semnal n GS este construit astfel, pentru a simplifica conectarea sistemului n magistrala interfeei MULTIBUS i are dou perechi de semnale identice RDY1, AEN1 i RDY2, AEN2 conectate cu un circuit SAU. Semnalele RDY sunt formate de elemente ce intr n sistem i indic posibilitatea lor de schimb. Semnalele AEN permit formarea semnalului READY n semnalele RDY, afirmnd adresarea elementului adresat. Elementul de ieire al schemei (F) formeaz frontul semnalului READY.

Fig. 1.11. Reprezentarea grafic a generatorului impulsurilor de tact 181084

2.Proiectarea dispozitivelor de memorie ale sistemelor pe baz de microprocesor

Unitile de memorie ale sistemelor de microprocesor sunt destinate pentru pstrarea datelor i programelor. Caracteristicile de baz a unitii de memorie sunt volumul, viteza de lucru, puterea consumat, rezistena la apariia erorilor. La proiectarea memoriei se rezolv problemele de divizare a volumului necesar de memorie ntre memoria operativ RAM i fizic ROM; proiectarea volumului i capacitii RAM i ROM; realizarea dispozitivelor de joncionare a RAM i ROM cu magistrala de sistem.Unitile de memorie se construiesc pe baz de circuite integrate de memorie care se caracterizeaz cu capacitatea ni i volumul Ni. Capacitatea necesar se proiecteaz prin adugare a K=n/ni circuite integrate (CI) conectate n paralel, iar volumul necesar - prin conectarea a L=N/Ni BI conectate serie, fiecare bloc constituind din K CI de memorie.Sistemele de funcionare a memoriei cu magistrala de sistem asigur acordarea diagramelor de timp de funcionare a memorie i operaiile de citire/nscriere, acordarea dup nivele de sarcin a semnalelor.RAM sunt realizate pe baz de CI statice cu volumul Ni i capacitatea ni are intrri de adrese cu capacitatea m=log2Ni, intrrile Ei ieirile de date cu capacitatea ni, intrrile de citire/nscriere.Dispozitivele de memorie a sistemelor cu microprocesor pe baza MPI8086 pot adresa un volum maxim de 1 MB.Spatiul de memorie de un megabyte este divizat fizic in doua zone (numite bank) a cate 512 Ko fiecare. Una din ele (lower bank) este asociata partii inferioare a magistralei de date (bitii D8-D1), iar cealalta (upper bank) este conectata pe bitii cei mai semnificativi ai magistralei de date (D16-D9).

Tabelul .3

Liniile de adresa A19-A12 se utilizeaza pentru a adresa o locatie de un octet in mod simultan, atat in lower bank cat si in upper bank, in timp ce linia A0 nu se foloseste pentru adresarea locatiei in cadrul unui bank, ci pentru selectia bank-ului. Bank-ul inferior, care contine octeti aflati la adrese pare, este selectat cind A0=0. Bank-ul superior, continand octeti situati la adrese impare, este selectat de semnalul BHE (semnifica transferul unui octet pe liniile D16-D9), in conditia BHE = 0 . Acest mecanism de selectie este ilustrat in tabelul 3 si in figura 2.1.

Fig. 2.1. Selectia bank-urilor de memorieCand se acceseaza un octet la o adresa para, acesta este transferat pe liniile inferioare ale magistralei, D8-D1. In aceasta situatie, nivelul inactiv al liniei de adresa A0 (A0=0) permite selectia locatiei aflata in bank-ul inferior; in acelasi timp, nivelul inactiv al semnalului BHE (BHE = 1) impiedica selectia locatiei aflata in bank-ul superior. In mod similar, cand se acceseaza un octet la o adresa impara, acesta este transferat pe liniile superioare ale magistralei, D16-D9. Acum nivelul activ al lui BHE (BHE =0 ) permite selectia locatiei aflata in bank-ul superior, in timp ce nivelul activ al liniei de adresa A0 (A0=1) impiedica selectia bank-ului inferior. Asa cum se arata in tabelul 5.4, 8086 poate accesa o locatie din lower bank simultan cu una din upper bank pentru a efectua transferul unei date de tip word. Cand octetul low al cuvintului ce trebuie transferat se afla la o adresa para (deci se afla in lower bank), cuvantul este aliniat si poate fi transferat intr-un singur ciclu de magistrala. Liniile A19-A12 adreseaza locatia corespunzatoare din ambele bank-uri, bank-uri care sunt amandoua selectate simultan, cel inferior prin A0=0 iar cel superior prin BHE=0 .

2.1 Proiectarea memoriei RAM: Conform datelor initiale pentru proiectarea memoriei RAM cu un volum de memorie de Vm= 4 KB. findca avem un volum de memorie mic de 4 KB vom folosi microcircuite de memorie statica din familia K537 si anume microcircuitul K537P8.Schema bloc al blocului de memorie RAM este prezentat in figura 2.2.

Figura 2.2 Schema bloc a memoriei RAM

Figura 2.3 Reprezentarea functionala

Destinatia pinilor :A0..A10- Intrari de adresa.CS cristal select selectarea celulei de memorie .WR- control scriere.G- conectarea la masa.D0...D7 intrari si iesiri de date. UCC conectarea la alimentare.In calitate de docodificator de adresa este utilizat microcircuite SI NU i SAU din clasa K155 iK1555, K1551.

Pentru un volum de memorie de 2 K vom folosi 2 microcircuite P8 ce contine un volum de 2k8. Memoria Rom

Microcircuitul K573P4 prezint un MC de memorie fix reprogramabil ce are un volum 2k8. Ele pot fi reprogramate de la 100 pn la 10.000 ori.

Destinaia pinilor MC:A10-A0 intrrile de adrese;CS selectarea MC;OE permite transmiterea datelor;Upr tensiunea de programare;DO07-DO00 ieirile de date;GND mas; Ucc tensiunea de alimentere +5V;4.1.Proectarea unitatii de intrare/iesire.Pentru realizarea schimbului de informaie dintre SMP i dispozitivele externe este nevoie de porturi de intrare/ieire (IOP). Porturile sunt de cteva tipuri: serie, paralel, analogic. La elaborarea acestui proiect vom utiliza portul de tip serie. n calitate de IOP serie sau utilizat MC KP580BB51A. MC KP580BB51A prezint port serie de ntrare/ieire, se utilizeaz n calitate de dispozitiv de ntrare/ieire de destinaie general ce realizeaz joncionarea diferitor dispozitive periferice cu magistrala de date a sistemului.Microschema data MC KP580BB51A, se alimenteaza la tensiunea de +5V si consuma curentul de 100mA.Microschema este in sine universala, sincron si asincron dispozitiv de primire si transmitere a datelor.Microschema poate fi programata pentru lucru in cinci regimuri:-transmitere asincrona -primire asincrona-transmitere sincrona-primire sincrona-primirea sincrona cu sincronizare externa

Fig-19.Reprezentarea grafica aMC KP580BB51Fig-20. Reprezentarea schemei bloc a MC KP580BB51A. Tipul semnalelor MC KP580BB51AD0D7-intrari de date

RD-intrarea receptorului

RC-sincronizarea receptorului

RRDY-receptorul in modul de asteptarea comenziiSYND-iesirea de initializare a sincronizatiei interneDSR-pregatirea transmitatorului terminaluluiDTR-adresarea transmitatorului terminaluluiCTS-pregatirea receptorului terminaluluiRTS-adresarea receptorului terminalului

TE-registrul transmitatorului gol

TRDY-transmitatorul in modul de asteptarea comenzii

TC-sincronizarea transmitatorului

TD-iesirea transmitatoruluiCS-alegerea BISC/D-conducerea cu datele(1-conducerea, 0-datele)RD-citireaWR-inscriereaCLK-sincronizareaRES-resetul Fig.-21.Schema microcircuitului KP580BB51 cu magistralele pentru I8086.

Figura 3.1 Structura microcircuitului KP580BB55Destinati pinilor microcircuitului KP580BB55

Figura 3.2 Destinatia pinilor MC KP580BB55

PA7PA0-iesirile portului ABA7BA0- iesirile portului BCA7CA4,CA3CA0- iesirile porrtului C.CS- semnal de selectie A1,A0-Adresarea porturilorD7D0- datele de intrare.RD- semnal de citire.WR- semnal de inscriere.RES- semnal de initializare.Pentru relizarea portului paralel vom folosi doua micrcrocircuiteKP580BB55.

4. Proiectarea tastatureiPentru a avea posibilitatea de a dirija cu SMP din exterior vom utiliza i tastatura. Tastatura se conecteaz la SMP cu ajutorul unuia din porturile paralele KP580BB55A studiate mai sus. Schema bloc de conexiune a tastaturii este prezentat n fig.11:

fig. 20. Schema bloc de conexiune a cort I/O cu MSMAMDMCKP580BB55AD7-D0RDWRA0A1CSRESPB7PB0PC7PC0PA7PA0IOPRESCSTastatur1684888228

n cazul proiectrii tastaturii pentru a avea 64 de taste vom folosi port A i B cu toate 8 linii a intrrilor/ieirilor. Tastatura nu are nici o schem electric n plus i prezint nite comutatoare aranjate n form de matrice. La apsarea tastei corespunztoare liniei li coloanei se scurcircuiteaz, formnd o conectare. Detectnd poziia liniei i coloanei n care s-a produs scurtcircuitul contactelor se determin codul cuvntului corespunztoare tastei apsate. Portul de ieire trimite semnal 0 n linia 0 i n restul liniilor , apoi se numr i se verific liniile coloanelor. Dac n linia 0 nu este semnal 0 procesul se repet pentru linia 1 apoi pentru linia 2 ... Cnd se detecteaz 0 se determin tasta apsat , poziia liniei este cunoscut dup combinaia introdus , iar poziia coloanei dup rezultatul introducerii. mpreunnd codul poziiei liniei i coloanei n care s-a detectat 0 se poate de format un cuvnt dintr-un simbol artnd poziia tastei apsate. Tastatura are dou neajunsuri : apsarea concomitent a dou taste i apariia unui proces tranzitoriu la conectarea ntreruptorului.

Ministerul Educaiei Tineretului i Sportului Republicii MoldovaUniversitatea Tehnic a MoldoveiFacultatea Radioelectronic i TelecomunicaiiCatedra Telecomunicaii

Proiect de an Tema: Proiectarea unui sistem pe baza microprocesorului I8086.

A elaboratst. gr. TLC - 051 Costiuc Alexandru

A verificatConf. Univ. Dr. Nastas Valeriu

Chiinu 2007

BHE/ST7A19..A16/ST6..ST3AD15...AD016STBDEOP/IPM/IORDWRINTAHLDAMN/MXCLKCLRRDYTESTNMIINTHOLDMP8086Activare octet superior pe mag./Stare4Adrese/Stare Magistrala de adrese/dateleActivare adrese pe magistrala Activare date pe magistralaOrientarea transmiterii ,,1', ,,0'CitireanscriereaAcceptarea ntreruperiiAcceptarea regimului DMAControl mod min./max.Sincronizare transfer pe mag. de dateCererea de ntrerupereAcceptarea regimului DMACeas de sistem Cerere intrerupere nemascabilaTest asteptareInitializare sistemControl selectie memorie/port de I/E2BHE/STTA19..A16/ST6..STTAD15...AD016ST2...ST02QS1,QS0Control citire Cerere/Acceptare acces magistralControl acces pe magistralaRDCeas de sistem Initializare sistemLOCKRQ/E1,0MN/MXCLKRESETRDYTESTNMIINTSincronizare transfer pe mag. de dateMP8086Activare octet superior pe mag./Stare4Adrese/Stare Magistrala de adrese/date3Specificare stare ciclu de magistrala Control mod min./max.Test asteptareSpecificare stare coada de instructiuniCerere intrerupere mascabilaCerere intrerupere nemascabila41616DISTBOEAT161111A1X12X11X22X21X32X31X42X4SX1X2X3X4BUSEMRDMWRIORDIOWR21BHE,A19A016D15...D0BD0OEMA KP580P82 MD KP580BA86MC K555K11INTAINTAHLDAHLDANMIINTHOLDHOLDINTNMIBHEA19...A16AD15..AD0STBDEOP/IPM/IORDWRPCLKRESMN/MXCLKCLRRDYCLKPCLKCLRRDY1CuarTANKX1X2CSYNF/CRESRDY2AE2RDY1AE1RESRDY2RDY1MP I8086C K181084KP537PY8

MA

D15...D8

11

8

D7...D0

11

8

A

Dio

Dio

A

Bancul superior

KP537PY8

2k

Bancul inferior

2k

CS

CS

A19...A1

DC

adresa

8

1

2

3

4

5

6

7

A

7

6

5

4

3

2

1

8

CS

WR

RAM

UCC

G

23

9

10

22

19

24

12

D

0

1

2

3

4

5

6

7

K537P8

0

8

9

10

11

13

14

15

16

17

Portul A

Portul C

Portul B

8

4

4

8

8

8

4

4

8

8

Registru de adresa

Bloc de intrare

CS

Ao,A1

8

D7...Do

RD

WR

RES

2

BA7...BA0

PA7...PA0

CA7...CA4

CA3...CA0