Sunteți pe pagina 1din 5

Ministerul Educaiei al Republicii Moldova

Colegiul Politehnic Bli

Lucrarea individual Nr.1


Tema: a)Sistemul de ntreruperi.
b)Dispozitive de Intrare/Ieire I/O

Elaborat: Bajurean Vadim


Verificat: Roca Gheorghe

Bli, 2015

a)Sistemul de ntreruperi
Intreruperi=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 & imprimanta
Sistemul 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

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 vzute ca nite evenimente speciale
generate de elementele periferice.Aceste evenimente pot fi reprezentate de
apsarea unui buton, atingerea unei valor a numrtorului,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
informaii referitoare la natura ntreruperii i de a opri funcionarea ciclic tratnd
ntreruperea ntr-o rutin special. Aceast rutin are o adres special de
nceput.n cazul chip-ului ATMega8 adresele rutinelor de tratare corespunztoare
ntreruperilor sunt urmtoarele:

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 aa.Trebuie s precizez c aceste adrese sunt
mascate n CodeVisionAVR dar totui e bine s tii cum funcioneaz 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 nti s informm
microcontrolerul c ntreruperile sunt activate.Acest lucru se face prin comana sei,
comand care n C se poate scrie astfel:
#asm("sei")

b) Dispozitive de Intrare/Ieire I/O


Dispozitivele I/O reprezint un aspect de mare interes atunci cnd este vorba de
microcontroller-e, interes rezultat din nsi particularitatea unui MC: aceea de a
interaciona cu mediul n procesul de control pe care l conduce. Dispozitivele I/O
implementeaz funcii speciale degrevnd unitatea central de toate aspectele
specifice de comand i control n funcia respectiv. Exist o varietate mare de
dispozitive I/O; dispozitivele I/O conduc operaii generale de comunicaie (transfer
serial sau paralel de date), funcii generale de timp (numrare de evenimente,
generare de impulsuri), operaii de conversie analog/numeric, funcii de protecie,
funcii speciale de comand, i enumerarea poate continua. Parte din resurse
acoper funciile de control propriu-zis, iar o parte asigur funciile necesare
aplicaiilor n timp real (sistemul de ntreruperi, timer). Din aceast mare varietate,
parte din dispozitive se gsesc n configuraia tuturor MC sau sunt foarte des
ntlnite, iar o alt parte de dispozitive o regsim doar n MC construite pentru a
optimiza aplicaii cu un grad mare de particularitate. n acest capitol, n continuare,
vor fi prezentate dispozitive des ntlnite n echiparea MC. n capitolele urmtoare,
pe msur ce vor fi prezentate exemple de MC, vor fi descrise i o serie de
dispozitive I/O speciale ce intr n componena acestora. Dispozitivele I/O sunt
vzute de unitatea central ca porturi. Exist dou filozofii de alocare a adreselor
(mapare) pentru apelarea porturilor de ctre unitatea central. Porturile sunt mapate
fie n spaiul de memorie, fie ntr-un spaiu 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 spaiu comun cu memoria, ceea ce
atrage dup sine reducerea numrului de locaii de memorie. MC de la Intel
folosesc un semnal care indic dac la adresa curent se apeleaz o locaie de
memorie sau un dispozitiv I/O. Avantajele maprii n spaii separate:
Metoda nu este susceptibil de a provoca erori soft deoarece se folosesc
instruciuni diferite pentru a accesa memoria i dispozitivele I/O;
Dispozitivele I/O nu ocup spaiu de memorie;
Decodificatorul de adrese pentru dispozitivele I/O este mai simplu deoarece
spaiul de adresare al dispozitivelor I/O este mai mic.
Dezavantaje ale maprii n spaii separate:
instruciunile I/O sunt mai puin flexibile n comparaie cu instruciunile de lucru
cu memoria;
instruciunile I/O nu permit folosirea modurilor de adresare folosite n lucrul cu
memoria.
Avantajul maprii n spaiu comun:
toate instruciunile de lucru cu memoria i toate modurile de adresare sunt
utilizabile i n tratarea dispozitivelo I/O (programarea operaiilor I/O este foarte
flexibil);
Dezavantajele maprii n acelai spaiu:
este susceptibil la erori software;
spaiul de adresare disponibil pentru memorie este mai mic

Avantajul maprii ntr-un spaiu comun este acela c se poate opera cu porturile la
fel ca i cu o locaie de memorie; multe operaii aritmetice i logice folosesc
operanzi direct de la port, datele pot fi mutate ntre porturi cu o singur
instruciune, coninutul unui port poate fi citit, incrementat i rezultatul scris din
nou la port de asemenea cu o singur instruciune. Se contureaz trei direcii de
evoluie a MC din punct de vedere al resurselor disponibile pe chip. O direcie este
dezvoltarea de MC de uz general care sunt puse la dispoziia utilizatorului pentru a
realiza aplicaii de la A la Z. O a doua direcie o reprezint dezvoltarea de MC
specializate care dispun de resurse specifice unui anume gen de aplicaii
(automobile, telecomunicaii, Internet, acionri electrice, etc). Pentru aceste MC
specializate att structura hardware ct i instruciunile sunt specifice i sunt calate
pe un gen particular de aplicaii. 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.

S-ar putea să vă placă și