lucrare nr.1

8
Ministerul Educaţiei al Republicii Moldova Colegiul Politehnic Bălţi Lucrarea individuală Nr.1 Tema: a)Sistemul de întreruperi. b)Dispozitive de Intrare/Ieşire I/O Elaborat: Bajurean Vadim Verificat: Roşca Gheorghe

Upload: vadim-bajurean

Post on 08-Dec-2015

7 views

Category:

Documents


3 download

DESCRIPTION

Aceasta este folosita pentru viitorii tehnicieni in calculatoare.

TRANSCRIPT

Page 1: Lucrare Nr.1

Ministerul Educaţiei al Republicii MoldovaColegiul Politehnic Bălţi

Lucrarea individuală Nr.1Tema: a)Sistemul de întreruperi. b)Dispozitive de Intrare/Ieşire I/O

Elaborat: Bajurean VadimVerificat: Roşca Gheorghe

Bălţi, 2015

Page 2: Lucrare Nr.1

a)Sistemul de întreruperiIntreruperi=semnale asincrone ale sist hardware (intreruperi hardware) kre solicit atentia unit centrale de prel(CPU)sau evenim sincrone software(intrer. software), care indica schimbar in execut prog. Rolul intreruperilor e d optimizare a UCP in rap cu dipsozit periferice(I/O), maresc vit CPU. De exep avem asigurare sincroniz k vit dintre calculator & imprimantaSistemul de intreruperi este acea parte a unui sistem de calcul care permite detectia unor evenimente externe sau interne si declansarea unor actiuni pentru tratarea lor. Astfel de evenimente pot fi: receptia unui caracter pe un canal serial, golirea unui registru de transmisie, impuls generat de un contor de timp, tentativa de executie a unui cod de instructiune nepermis (inexistent sau protejat), terminarea unei anumite operatii de catre o interfata, eroare in timpul executiei unei operatii aritmetice (impartire ci zero) si multe altele. Intreruperile permit calculatorului sa reactioneze rapid la aceste evenimente, sa se sincronizeze cu ele si sa le trateze in timp util. O alternativa la sistemul de intreruperi ar fi testarea periodica prin program (prin polling) a tuturor indicatorilor de stare si a semnalelor de intrare. Aceasta solutie este ineficienta in cazul in care numarul de elemente care trebuie testate este mare. Pentru un sistem de calcul, politica de solutionare a intreruperilor caracterizeaza adaptabilitatea sistemului la stimuli interni si externi. Majoritatea sistemelor de intrerupere utilizeaza un sistem de prioritati pentru a stabili ordinea de deservire a cererilor concurente de intrerupere. Prioritatea se stabileste pe baza importantei acordate evenimentului tratat si a restrictiilor de timp in solutionarea intreruperii. Politica de prioritati trebuie sa asigure solutionarea echitabila si in timp util a tuturor cererilor. Un calculator poate sa identifice mai multe tipuri de intrerupere (numite nivele de intrerupere). Pentru fiecare nivel se poate defini cite o rutina de tratare a intreruperii respective. Adresele de inceput ale acestor rutine se pastreaza intr-o tabela de pointeri denumita tabela de intreruperi. Aceste rutine sunt activate la aparitia si acceptarea de catre calculator a intreruperii corespunzator. Functie de cerintele aplicatiei executate, anumite nivele de intrerupere pot fi invalidate, temporar sau pe toata durata aplicatiei. O intrerupere invalidata (sau mascata) nu este recunoscuta de catre calculator. La activarea unui semnal de intrerupere se testeaza daca nivelul corespunzator este validat si daca nu sunt in curs de deservire alte intreruperi mai prioritare; in caz afirmativ are loc intreruperea temporara a secventei curente de executie, se salveaza pe stiva adresa instructiunii urmatoare si se face salt la rutina de tratare a intreruperii. Dupa executia rutinei de intrerupere se revine la secventa intrerupta prin incarcarea adresei salvate pe stiva. Adesea, pentru controlul intreruperilor externe se utilizeaza un circuit specializat denumit controlor de intreruperi. Un astfel de circuit deserveste un set de semnale de intrerupere. Functiile tipice ale unui astfel de controlor sunt: detectia conditiei de producere a unei intreruperi (ex: front crescator al semnalului de intrerupere), arbitrarea cererilor multiple, mascarea unor intreruperi, evidenta intreruperilor deservite, etc. In cadrul setului de instructiuni al unui procesor pot sa existe instructiuni dedicate pentru tratarea intreruperilor (ex: validarea/invalidarea intreruperilor, revenirea din rutina de intrerupere, simularea software a unor intreruperi hardware, etc.). Un sistem de intreruperi poate sa aiba

Page 3: Lucrare Nr.1

mai multe moduri de functionare; aceste moduri difera prin: modul de alocare a prioritatilor (fixa, rotativa), modul de detectie a semnalului de intrerupere (pe front sau pe nivel), acceptarea sau nu a intreruperilor imbricate (intrerupere 3-2 imbricata = intrerupere accesptata in timpul executiei unei alte rutine de intrerupere), numarul de nivele de imbricare, etc. Intreruperile sunt o solutie de implementare a unor activitati concurente si joaca un rol important in realizarea sistemele de operare multitasking si de timp-real.Întreruperile într-un microcontroler sunt văzute ca nişte evenimente speciale generate de elementele periferice.Aceste evenimente pot fi reprezentate de apăsarea unui buton, atingerea unei valor a numărătorului,terminarea de citit a unei valori a convertorului analog digital,etc..Toate acestea sunt gestionate de un sistem intern numit sistem de întreruperi , sistem care are rolul de a oferi procesorului informaţii referitoare la natura întreruperii şi de a opri funcţionarea ciclică tratând întreruperea într-o rutină specială. Această rutină are o adresă specială de început.În cazul chip-ului ATMega8 adresele rutinelor de tratare corespunzătoare întreruperilor sunt următoarele:

Prioritatea de tratare a unei întreruperi în cazul în care avem mai multe cereri de întrerupere este marcată de prima coloana, astfel cea mai mare prioritate o are întreruperea generată de semnalul RESET,apoi întreruperea externă INT0 , întreruperea externă INT1 şi tot aşa.Trebuie să precizez că aceste adrese sunt mascate în CodeVisionAVR dar totuşi e bine să ştiţi cum funcţionează modul intern de tratare al întreruperilor.Momentan voi trata doar întreruperile externe,INT0 şi INT1, deoarece sunt cele mai simple de configurat.Pentru a putea folosi orce întrerupere trebuie mai întâi să informăm microcontrolerul că întreruperile sunt activate.Acest lucru se face prin comana sei, comandă care în C se poate scrie astfel:#asm("sei")

Page 4: Lucrare Nr.1

b) Dispozitive de Intrare/Ieşire I/ODispozitivele I/O reprezintă un aspect de mare interes atunci când este vorba de microcontroller-e, interes rezultat din însăşi particularitatea unui MC: aceea de a interacţiona cu mediul în procesul de control pe care îl conduce. Dispozitivele I/O implementează funcţii speciale degrevând unitatea centrală de toate aspectele specifice de comandă şi control în funcţia respectivă. Există o varietate mare de dispozitive I/O; dispozitivele I/O conduc operaţii generale de comunicaţie (transfer serial sau paralel de date), funcţii generale de timp (numărare de evenimente, generare de impulsuri), operaţii de conversie analog/numerică, funcţii de protecţie, funcţii speciale de comandă, şi enumerarea poate continua. Parte din resurse acoperă funcţiile de control propriu-zis, iar o parte asigură funcţiile necesare aplicaţiilor în timp real (sistemul de întreruperi, timer). Din această mare varietate, parte din dispozitive se găsesc în configuraţia tuturor MC sau sunt foarte des întâlnite, iar o altă parte de dispozitive o regăsim doar în MC construite pentru a optimiza aplicaţii cu un grad mare de particularitate. În acest capitol, în continuare, vor fi prezentate dispozitive des întâlnite în echiparea MC. În capitolele următoare, pe măsură ce vor fi prezentate exemple de MC, vor fi descrise şi o serie de dispozitive I/O speciale ce intră în componenţa acestora. Dispozitivele I/O sunt “văzute” de unitatea centrală ca porturi. Există două filozofii de alocare a adreselor (mapare) pentru apelarea porturilor de către unitatea centrală. Porturile sunt mapate fie în spaţiul de memorie, fie într-un spaţiu propriu. Cele două metode sunt exemplificate la MC produse de Motorola şi MC produse de Intel. La MC Motorola dispozitivele I/O ocupă adrese într-un spaţiu comun cu memoria, ceea ce atrage după sine reducerea numărului de locaţii de memorie. MC de la Intel folosesc un semnal care indică dacă la adresa curentă se apelează o locaţie de memorie sau un dispozitiv I/O. Avantajele mapării în spaţii separate:• Metoda nu este susceptibilă de a provoca erori soft deoarece se folosesc instrucţiuni diferite pentru a accesa memoria şi dispozitivele I/O; • Dispozitivele I/O nu ocupă spaţiu de memorie; • Decodificatorul de adrese pentru dispozitivele I/O este mai simplu deoarece spaţiul de adresare al dispozitivelor I/O este mai mic.Dezavantaje ale mapării în spaţii separate: • instrucţiunile I/O sunt mai puţin flexibile în comparaţie cu instrucţiunile de lucru cu memoria; • instrucţiunile I/O nu permit folosirea modurilor de adresare folosite în lucrul cu memoria. Avantajul mapării în spaţiu comun:toate instrucţiunile de lucru cu memoria şi toate modurile de adresare sunt utilizabile şi în tratarea dispozitivelo I/O (programarea operaţiilor I/O este foarte flexibilă); Dezavantajele mapării în acelaşi spaţiu: • este susceptibil la erori software; • spaţiul de adresare disponibil pentru memorie este mai mic

Page 5: Lucrare Nr.1

Avantajul mapării într-un spaţiu comun este acela că se poate opera cu porturile la fel ca şi cu o locaţie de memorie; multe operaţii aritmetice şi logice folosesc operanzi direct de la port, datele pot fi mutate între porturi cu o singură instrucţiune, conţinutul unui port poate fi citit, incrementat şi rezultatul scris din nou la port de asemenea cu o singură instrucţiune. Se conturează trei direcţii de evoluţie a MC din punct de vedere al resurselor disponibile pe chip. O direcţie este dezvoltarea de MC de uz general care sunt puse la dispoziţia utilizatorului pentru a realiza aplicaţii “de la A la Z”. O a doua direcţie o reprezintă dezvoltarea de MC specializate care dispun de resurse specifice unui anume gen de aplicaţii (automobile, telecomunicaţii, Internet, acţionări electrice, etc). Pentru aceste MC specializate atât structura hardware cât şi instrucţiunile sunt specifice şi sunt calate pe un gen particular de aplicaţii. Există o a treia tendinţă de dezvoltare de MC care dispun de resurse hardware configurabile la utilizator. Între resursele configurabile se află memoria, elemente de logică programată, module specializate, gen convertoare A/D şi convertoare D/A, şi module de procesare avansată a datelor.