Sunteți pe pagina 1din 95

Introducere

Vom ncerca s definim n continuare noiunea de sistem incorporat.


Definiie: Orice dispozitiv care include un computer, dar care nu este el nsui un computer de
uz general. Poate fi considerat un ansamblu ard!are i soft!are care va funciona autonom,
fr intervenia omului.
"lte posibile definiii#caracteristici ale sistemelor incorporate sunt:
$istemele incorporate sunt sisteme la care calculatorul#microprocesorul sunt doar simple
componente. Principalul scop al utilizrii microprocesorului este s simplifice construcia
sistemului i s ofere fle%ibilitate n proiectare i construcie.
&n sistem incorporat este un sistem pe baz de microprocesor construit pentru a controla
o funcie sau un domeniu de funcii particulare i care nu este proiectat pentru a fi programat de
ctre utilizatorul final. $ingura interaciune cu utilizatorul se face n scopul realizrii funciilor
impuse sistemului ' aplicaiei.
&n sistem incorporat folosete o combinaie de ard!are i soft!are (o main
computaional) pentru a realiza o funcie specific lucr*nd ntr+un mediu reactiv i care impune
restricii de timp.
$istemele incorporate sunt sisteme de prelucrare a informaiei nglobate n produse mai
mari i care nu sunt de obicei vizibile utilizatorului.
,n mod normal un sistem incorporat se obine prin incorporarea(includerea) unui
calculator ntr+un sistem orientat pe o aplicaie.
-el mai simplu model de incorporare a unui calculator ntr+un sistem este prezentat n
figura ....
Dup cum se observ, este necesar prezena interfeelor analogice pentru interaciunea
cu mediul.
Vom prezenta n continuare c*teva e%emple pe baza crora putem pune n eviden
principalele caracteristici ale sistemelor incorporate (fig. ../).
+ agenda electronic PD" (Personal Digital "ssitant)
0ig. .... 1odel simplu de incorporare a calculatorului
+ Videocamera digital
+ 2elefon celular
+ 2elevizor celular sau ciar analogic
,n cazul PD" se observ prezena unei interfee operator (touc+screen) dar aceasta este
mai restr*ns dec*t n cazul sistemelor de uz general tocmai datorit faptului c trebuie s
asigure realizarea unui numr restr*ns de funcii predefinite.
Videocamera digital are mai multe microprocesoare. 2elevizorul analog benefiaciz de
un procesor cel puin pentru controlul canalelor.
&n alt e%emplu este reprezenta de sistemele de control ale unui automobil. &n automobil
modern este dotat cu un mare numr de microprocesoare care asigur controlul motorului,
controlul sistemului de fr*nare ("3$), controlul sistemului de siguran (airbag+uri), etc. ,n
figura ..4. sunt prezentate principalele sisteme de control ale unui automobil.
"lte e%emple de sisteme incorporate
Primul veicul de e%plorare a planetei marte 1ars 5over dotat cu 6 microprocesoare pe
7 bii 8ntel 79-76 Prezentat n figura ..:.
0ig. ../. ;%emple de sisteme incorporate
0ig. ..:. 1ars 5over 0ig. ..6. <P$ 0ig. ..=. ;5$ .99 5O3O28- DO<
0ig. ..4. Principalele sisteme de control ale unui automobil
&n sistem <P$ ' are ca elemente de intrare ieire caracteristic o anten de emisie
recepie semnale satelit, displa>+ul menit s asigure interfaarea cu operatorul uman i este dotat
cu microprocesor pe .= bii.
1P4 Pla>er ' dotat cu un microprocesor pe 4/ de bii, principala sarcin fiind
decompresia fiierelor audio
$on> "ibo ;5$+.99 5O3O28- DO< ' este dotat cu un microprocesar pe =: de bii '
comple%itatea microprocesorului este impus de comple%itatea sarcinilor pe care trebuie s le
realizeze
-aracteristic pentru toate aceste sisteme este faptul c informaia referitoare la modul de
funcionare este prelucrat prin intermediul senzorilor (vitez, cuplu, acceleraie, temperatur,
etc.) iar n urma procesrii acestor informaii microprocesorul acioneaz asupra sistemelor de
control ale automobilului prin intermediul unor sisteme de e%ecuie (pompe, ventile, motoare,
etc.)? at*t pentru prelucrarea informaiei c*t i pentru transmiterea comenzilor sunt necesare
interfee analogice (-@" i -"@).
Caracteristici ale sistemelor incorporate
+ 0uncionalitate sofisticat, gradul de sofisticare fiind dependent de aplicaie?
+ Operarea n timp real ' ciar dac nu este obligatorie, este caracteristic pentru multe
din aplicaiile incorporate.
+ -osturi de fabricaie sczute
+ "plicaii dependente de procesor ' ciar dac nu sunt obligatorii sunt frecvente
+ 1emorie restricionat
+ -onsum mic ' multe din aplicaiile incorporate sunt destinate s funcioneze pe
baterii.
"m specificat mai devreme c o caracteristic important o constituie costurile de
producie sczute. "cestea au dou componente:
+ costurile pentru proiectarea i dezvoltarea produsului
+ costurile de producie i v*nzare pentru fiecare unitate de produs.
-osturile vor fi corelate cu numrul de uniti realizate: spre e%emplu o aplicaie foarte
specific (precum controlul comenzilor n cazul unui avion) va presupune costuri de proiectare
mari, fiind posibil utilizarea unor elemente ard!are i soft!are sofisticate i scumpe. Aa
proiectarea unor telefoane celulare lo! cost ns se va avea n vedere n primul r*nd
minimizarea costurilor.
Sisteme de timp real
"m specificat anterior c una dintre caracteristicile posibile ale sistemelor incorporate
este operarea n timp real. ,n cele ce urmeaz vom ncerca s definim caracteristicile operrii de
timp real.
O definiie simpl a operrii de timp real este aceea c operaiile trebuie finalizate n
intervale de timp predefinite? altfel spus, funcionarea trebuie s respecte restriciile de timp.
$e pot defini operaii:
+ Bard real time ' la care depirea intervalului de timp determin defecte, catastrofe
(constr*ngeri 52 critice la timp)
+ $oft real time ' la care depirea intervalului de timp determin scderea
performanelor (constr*ngeri 52 sensibile la timp)
,n cazul operrii 52 un rspuns garantat al sistemului trebuie s fie e%plicat fr a folosi
argumente statistice.
1ulte sisteme sunt sisteme multirat ' ele primesc informaii din e%terior la intervale de
timp diferite i sunt prelucrate n intervale de timp diferite.
Alte caracteristici ale sistemelor incorporate
+ 2olerana la defect ' unele aplicaii trebuie s continue s funcioneze ciar dac
unele componente soft sau ard sunt scoase din funciune (controlul zborului unui
avion de e%emplu)
+ $iguran ' nu trebuie s provoace daune persoanelor sau proprietilor
+ 0uncionalitate predefinit ' se pot realiza numai anumite funcii iar ad!are+ul i
soft!are+ul cu care este dotat sunt destinate realizrii acestor funcii predefinite
+ ;%ist posibilitatea ca anumite funcii predefinite s fie folosite foarte rar de+a lungul
perioadei de utilizare altfel spus, foarte rar vor fi folosite toate funciile ce pot fi
programate
+ ,ncrederea ' descris de proprietatea de a funciona corect la un moment dat
+ 1entenabilitatea ' probabilitatea ca sistemul s lucreze corect o anumit perioad,
dup apariia unor erori
+ Disponibilitatea ' probabilitatea ca sistemul s lucreze corect un timp dat
+ $ecuritatea ' asigurarea confidenialitii datelor prelucrate
Tipuri de sisteme incorporate
;%ist o mare diversitate de sisteme incorporate care realizeaz funcii foarte diferite de
aceea sunt greu de gsit criterii clare de clasificare ale acestora. &n criteriu general acceptat este
cel bazat pe funciile principale pe care acestea le implementeaz. "stfel se pot distinge:
+ $isteme incorporate similare calculatoarelor de uz general ' acestea au ca principal
sarcin rspunsul la comenzile operatorului?e%emple agenda electronic, Cocurile video, etc.
+ $isteme automate ' ca rspuns la informaiile preluate din e%terior prin intermediul
senzorilor, sistemul reacioneaz prin comanda elementelor de e%ecuie? e%emple:
controlul n bucl ncis pentru sisteme de timp real, controlul motorului
autoveiculelor, controlului zborului, etc.
+ Procesarea semnalelor: radar, sonar
+ -omunicare i reele ' telefoane celulare, aplicaii 8@2;5@;2 (5O&2;5)
Tipuri de funcii realizate de sistemele incorporate
+ Aegea de control
+ $ecvenierea logic
+ Procesare semnale ' sunt necesare pentru procesarea semnalelor de intrare primite de
la senzori
+ 8nterfaare specific aplicaiei ' depinde de tipurile de senzori i elemente de
comand cu care se interfaeaz
+ 5spunsuri greite ' determin modul n care va aciona sistemul n caz de erori? este
necesar ca n caz de eroare s nu apar o avarie catastrofic (s cad sistemul) ci s
aib loc o deteriorare gradual (de e%emplu n cazul descrcrii bateriilor se emite un
semnal de avertizare care s comunice utilizatorului acest lucru.
Arhitectura sistemelor incorporate
Vom prezenta n continuare o aritectur mai complet. ,n figura ..D. este prezentat o
astfel de aritectur. $e remarc prezena blocului de baz care acum se e%tinde fa de modelul
simplu prezentat anterior, la acest bloc de baz adug*ndu+se mai multe elemente e%terioare. ,n
blocul de baz se remarc -P& care comunic cu memoria, n care este depus soft!are+ul ce
permite controlul sistemului incorporat. $e remarc de asemenea -"@+ul prin intermediul
cruia sunt preluate semnalele analogice de la senzori, precum i -@" prin intermediul cruia
-P& transmite semnalele de comand spre elementele de e%ecuie.
$e remarc de asemenea prezena n blocul de baz unei componente (special ard!are)
necesar deoarece n unele cazuri, -P&+ul nu este capabil s e%ecute instruciunile soft+ului
respect*nd condiiile real time.
-omponente e%terne
+ 8nterfaa operator ' este menit s asigure at*t primirea date (comenzi) de la
operatorul uman c*t i s+l informeze despre funcionarea sistemului. Va fi
constituit din butoane, ecrann sau un simplu afiaC cu A;D+uri
+ 3locul de diagnoz ' este destinat diagnosticrii sistemului trebuie determinate erori
i modului n care acestea pot fi remediate? acest bloc trebuie s lucreze ciar i n
cazul n care sistemul nu este activ pentru a putea testa funcionarea corect a tuturor
componentelor sistemului
+ $isteme au%iliare ' asigur alimentarea cu energie electric a sistemului, rcirea i
protecia mecanic
+ Protecia electromagnetic e%tern ' trebuie s asigure at*t protecia c*t i aspectul
e%terior al sistemului, aspect ce devine foarte important.
Implementarea sistemelor incorporate
-omponentele ard!are
Principalele componente ard!are sunt:
+ element de procesare (microprocesor, microcontroler)
+ elemente periferice
o dispozitive de intrare ' ieire
o 8nterfaare senzori i elemente de e%ecuie
+ 1emorie
+ 1agistral
;lementele sunt similare unui sistem de calcul de uz general
Deosebirile sunt determinate de natura i numrul intrrilor ieirilor. "cestea sunt mult
mai diverse i mai numeroase n cazul sistemelor incorporate dec*t n cazul unui sistem de
calcul de uz general.
;%ist dou componente soft!are principale
+ $oft!are de sistem ' care are funcii similare sistemului de operare din sistemul de
calcul de uz general? trebuie remarcat c pe l*ng cerinele impuse sistemelor de operare de uz
general, n cazul sistemelor incorporate este necesar ca soft!are de sistem s respecte i
cerinele specifice sistemelor de timp real. O cerin special este legat de faptul c de obicei
programarea (n limbaC de nivel nalt) se face pe un calculator care emuleaz sistemul incorporat
i de aceea sunt necesare cross asambloare i cross compilatoare. "stfel un compilator pentru
P8-+uri va rula pe un P-? acesta va compila programul scris (n - de e%emplu) i va genera un
cod specific pentru P8-.
0ig. ..D. "ritectura comple%a a unui sistem incorporat
,n unele cazuri e%ist posibilitatea de a simula pe P- mediul (intrri, ieiri) i de a testa
complet funcionarea sistemului incorporat. ,n acest fel, codul n assambler generat pe P- este
transferat i utilizat n sistemul incorporat. De asemenea, pentru depanarea programului,
sistemul incorporat este cuplat cu un P-. 0aptele preluate de la sistemul incorporat sunt preluate
i interpretate pe P-.
+ soft!are de aplicaie ' este cel care individualizeaz sistemul incorporat respectiv.
Dac acelai soft de operare poate lucra pe mai multe tipuri de sisteme incorporate, soft+ul e
aplicaie este strict specific.
$pre e%emplificare prezentm soft+ul unui termostat programabil ce controleaz centrala
termic realizeaz cel puin trei sarcini: (.) monitorizarea temperaturii, (/) monitorizarea orei
din zi, (4) supravegerea tastaturii. 0ire de cod (tread) separate.
Caracteristici ale soft-ului utilizat n sistemele incorporate
+ Programele trebuie s fie corecte din punct de vedere logic i temporal. Dac
corectitudinea logic este caracteristic tuturor programelor, corectitudinea temporal
este impus de cerinele de aplicaie de timp real.
+ 2rebuie s asigure concurena fizic implicit deoarece un sistem incorporat poate
lucra multiuser i multiproces.
+ $igurana n funcionare i tolerana la defect sunt obligatorii, soft+ul fiind cel care
trebuie s asigure aceste proprieti.
+ $oft+ul de aplicaie este specific i are un scop unic.
+ 0uncionarea multitasEing i concurent este determinat de faptul c un sistem
incorporat trebuie s poat lucra cu mai multe intrri i ieiri i cu evenimente
multiple n mod independent ' multe sisteme incorporate sunt obligate s lucreze
multitasEing. $epararea tasE+urilor simplific programarea, dar cere comutarea ntr+
un anumit fel, nainte i napoi printre diferite tasE+uri (programare multitasEing).
-oncurena reprezint aparenta e%ecuie simultan a mai multor tasE+uri
Cerine n proiectarea sistemelor incorporate
,n proiectarea unui sistem incorporat trebuie urmrit rezolvarea unor probleme specifice
precum:
+ -*t de mult ard!are este necesar ' care este lungimea cuv*ntului pentru -P&,
dimensiunea memoriei, etc.
+ -are va fi dimensiunea intervalului de timp care s asigure finalizarea operaiilor
(intervalul de timp pentru finalizarea operaiilor n real+time) ' un ard mai rapid sau
un soft mai inteligent ' un ard mai rapid nseamn costuri de producie mai mari n
timp ce soft+ul mai inteligent presupune celtuieli de dezvoltare mai mari. 2rebuie
gsit un compromis care s asigure performane ma%ime cu costuri minime.
+ -um s se minimizeze consumul de energie ' oprirea elementelor care nu sunt
necesare, reducerea accesrii memoriei
Proiectarea sistemelor incorporate
Vom prezenta n continuare c*teva principii i cerine preliminare referitoare la
proiectarea unui sistem incorporat. 1enionm c aceste principii vor fi dezvoltate ulterior.
,n proiectare unui sistem incorporat trebuie luate n considerare diferite cerine i
interaciuni dintre performanele impuse asupra sistemului. Dintre principalele obiective ale
proiectrii amintim:
+ performane (vitez, limite de timp in 52)
+ funcionabilitate i interfa utilizator
+ cost de producie
+ consum de energie
+ dimensiune, form, protecie, etc.
+ cerine funcionale ' ieirea ca o funcie de intrare
,n proiectarea i dezvoltarea sistemelor trebuie parcurse anumite etape, conform figurii ..7
;%ist c*teva modaliti de proiectare:
Proiectarea de sus n Cos ' se pornete de la descrierea cea mai abstract se lucreaz
pentru detaliere
Proiectarea de Cos n sus ' se pornete de la mici componente la mari sisteme
,n proiectarea real cele dou modaliti sunt combinate
Concluzii
$istemele incorporate se regsesc peste tot n Curul nostru ' multe dintre aceste includ un
ard!are i un soft!are comple%
Dezvoltarea unui sistem incorporat presupune rezolvarea unui mare numr de provocri
$+au dezvoltat metodologii de proiectare care s aCute la gestionarea procesului de
dezvoltare
0ig. ..7. ;tape ale proiectrii i dezvoltrii sistemelor incorporate
-&5$ /
INTRODC!R! "NPROC!S# D!PROI!CTAR! A# SIST!$!#OR !$%!DD!D
P58@-8P"A; "V"@2"F;
"A; 1;2ODOAO<8;8 D; P5O8;-2"5;
ofera posibilitatea pstrarii unei istorii # nregistrari a rezultatelor etapelor proiectarii
+ utila pentru documentare, testare functionala, depanare
permite dezvoltarea sau folosirea unor unelte de proiectare asistata de calculator
+ desfasurarea n paralel a proiectarii pentru diferite componente functionale
simplifica comunicarea dintre membrii unei ecipe de proiectare.
;A;1;@2; $P;-808-;
P5O8;-2"588 ;m$
G 5e+utilizarea unor componente deCa proiectate n alte proiecte
G $tr*nsa interactiune dintre ard!are si soft!are
' Programatorii trebuie sa nteleaga partea ard!are iar proiectantii de ard!are trebuie
sa nteleaga partea soft!are
G &tilizarea de blocuri functionale Hfiecare proiectant este responsabil at*t de ard!are c*t si de
soft!are pentru o functiune, sau pentru un set de functiuni
!TAP! PROI!CTAR!
G Deciziile luate la un anumit pas al proiectarii sunt bazate pe estimarea a ce se va nt*mpla mai
t*rziu
' Daca estimarile sunt inadecvate, trebuie sa ne ntoarcem si sa ndreptam deciziile
noastre initiale, tin*nd cont de noile evenimente
G Aa fiecare etapa a proiectarii se adauga detalii:
+analiza proiectului la fiecare pas pentru a determina cum se ndeplinesc specificatiile
+rafinarea proiectului pentru a adauga elemente de detaliu
+verificarea proiectul pentru a fi siguri ca ndeplineste toate obiectivele sistemului
P58@-8P"A;A; ;2"P; ,@
P5O-;$&A D; P5O8;-2"5; "A ;m$
GDefinirea cerintelor produsului
G;laborare specificatii functionale
G-rearea proiectului aritectural
G0urnizare versiune aritecturala finalI
G8mplementare module
GVerificare si punere la punct
G8mplementarea si integrarea sistemului
GVerificare si testare sistem n diferite
faze de implementare
;tapa 8 + -rearea "ritecturii
D;08@85;" P5O3A;1;8 $8 " -;58@2;AO5 P5OD&$&A&8
G Definirea produsului descrie ce va fi si ce va face acesta
G Definirea cerintelor constituie primul pas al procesului, fiind ceia succesului n proiectarea
sistemelor electronice
G Definirea cerintelor reprezinta baza documentatiei proiectului
G Documentatia descrie ce veti construi
' $pune oamenilor de marEeting ce produs vor avea de v*ndut
' $pune proiectantilor cum sa implementeze produsul.
G 5ezultatul acestei faze va fi o definire simpla a problemei, din punctul de vedere al
utilizatorului (beneficiarul)
' $e va descrie problema, dar nu se vor sugera solutii
G D": 1iscarea vorbitorului nu va fi st*nCenita de cablul microfonului
G @&: $e va folosi un microfon !ireless
-8@; D;08@;$2; -;58@2;A; J
G ,ntr+o companie foarte mare, definirea cerintelor va fi facuta de catre departamentul de
marEeting, sau un client important
G ,ntr+o companie mica scita de definire a cerintelor se poate face de catre inginerii soft!are si
ard!are
G Pentru un proiecte mici, proiectantul defineste cerintele
-; 25;3&8; D;08@82 -" -;58@2; J
G -;58@2; 0&@-28O@"A;
' 8ntrari si iesiri (interfata cu utilizatorul si mediul)
' 0unctii si constr*ngeri de timp
G -;58@2; @;+0&@-28O@"A;
' Performanta.
' -osturi.
' -onsumul de putere.
' Dimensiune fizica si greutatea.
' 0iabilitate, siguranta n functionare, mentenabilitate
;K;1PA& D; 0O51&A"5 D; -;58@2; 28P8-;
Nume
Scop
G Intrari / Iesiri catre lumea e%terna
' 2ipul datelor
' -aracteristicile generale ale datelor
' 2ipuri de dispozitive de interfata cu utilizatorul
G Functii. 8ntrari L0&@-288L8esiri
G Performanta
G Costuri de fabricatie. "preciere grosiera, sau limita ma%ima.
G Putere. "preciere grosiera, sau limita ma%ima (baterii # retea J)
G Dimensiune / greutate fizica
R!&$AT C!RINT!
'aza Rezultate
Definirea pro(lemei de proiectare si ela(orare cerinte
-ercetare, analiza piata
-onsultare utilizator. -ulegere de
informatii
generale de la clienti (utilizatori sau
beneficiari)
-erinte functionale si nefunctionale
-ercetare
LDefinirea corecta a problemei
LPropunere cerinte
LDocument (formular) de cerinte
L -rearea unui plan de testare
;K;1PA&: Barta <P$
G ;ste un dispozitiv portabil care afiseaza pentru utilizator o arta a terenului din Curul pozitiei
curente a utilizatorului
G Barta afiseaza modificarile corespunzatoare
scimbarii pozitiei utilizatorului, sau ale dispozitivului de afisare a artii
G Barta mobila obtine pozitia sa de la <P$
Barta <P$: -erinte initiale
0unctionalitate: proiectat pentru utilizare n trafic auto si scopuri similare? nu pentru utilizare
nautica, sau aviatie, care necesita functiuni si baze de date mai specializate. $istemul va afisa #
indica principalele drumuri si alte puncte de reper disponibile n bazele de date topografice
standard.
8nterfata cu utilizatorul: ;cranul va avea cel putin rezolutia de :99 % =99 pi%eli.
Dispozitivul va fi controlat prin ma%imum trei butoane. Aa apasarea butoanelor pe ecran se
descide un meniu pentru a permite utilizatorului sa selecteze functiile de control ale sistemului.
Performanta: Barta se va rula lent pe ecran. Dupa alimentare, afisarea cadrului initial pe ecran se
va face n cel mult o secunda, iar sistemul va fi capabil sa verifice si sa afiseze pozitia sa n cel
mult .6 secunde.
-ost: -ostul de v*nzare ma%im 699M. (apro%imativ de 6 ori costul componentelor).
Dimensiune # greutate: Dispozitivul se va potrivi confortabil n palma m*inii.
-onsum de putere: 0unctionare pentru cel putin 7 ore cu : baterii "".
0ormular de cerinte
@ame <P$ moving map
Purpose -onsumer+grade moving map for driving
8nputs Po!er button, t!o control buttons
Outputs 3acE+lit A-D displa> :99 K =99
0unctions &ses 6+receiver <P$ s>stem? tree userselectable resolutions? displa>s
current latitude and longitude
Performance &pdates screen !itin 9./6 seconds upon movement
1anufacturing cost M.99 cost+of+goods+ sold
Po!er .99 mN
P>sical size#!eigt no more tan /O K =O (6cm % .6 cm), ./ ounces (4:9 g)
;A"3O5"5;" $P;-808-"288AO5
G $pecificatiile reprezinta o descriere functionala detaliata ce respecta cerintele. @u indica modul
de implementare.
' $pecificatiile usureaza ntelegerea cerintelor
' $pecificatiile permit urmarirea ndeplinirii cerintelor pe parcursul activitatilor de
proiectare
G &sureaza munca de proiectare
G ,nlatura eventualele greseli, repetari sau omisiuni ale unor functiiLreluari ale proiectarii
G $pecificatiile sunt deosebit de importante pentru proiecte comple%e, ce implica un colectiv de
cercetare Lsarcinile de proiectare pentru fiecare persoana din grup.
G Presupun o analiza (interna) a conceptiilor de proiectare enuntate pentru a verifica daca
specificatiile cerute sunt posibil de implementat
' re+utilizarea unor parti din alte proiecte anterioare permite asigurarea succesului noului
proiect (functional si ca timp de terminare)
G $pecificatiile pot fi privite ca un contract ntre beneficiar si proiectant
G Documentele cu cerinte si specificatii pot fi folosite pentru crearea unui plan de testare
' Documentul initial de cerinte defineste ce este nevoie este necesar a fi testata.
G 2estarea este facuta, de obicei la proiectele mari, de un inginer de testare independent de
colectivul de proiectare, care elaboreaza un plan de testare pe baza cerintelor.
G $epararea analizei cerintelor si specificatiilor este necesara adesea:
' diferente mari ntre modul cum beneficiarii pot descrie sistemul si ceea ce au nevoie
specialistii pentru a proiecta sistemul.
' beneficiarii pot avea asteptari nerealiste cu privire la ceea ce se poate face cu bugetul
alocat de ei.
-O1PA;K82"2;" $P;-808-"288AO5
G -omple%itatea si formalismul specificatiilor depind de tipul companiei proiectante si de
dimensiunea produsului final.
G $e poate realizeaza o modelare a specificatiilor n scopul proiectarii aritecturii si ulterior a
proiectarii componentelor.
' 1odelele sunt reprezentari conceptuale ale functionalitatii sistemului. 1odelul este
constituit din obiecte functionale si reguli pentru compunerea acestor obiecte.
G Descrierea grafica a specificatiilor
' fie ntr+un limbaC de modelare,
' sau prin definirea si desenarea unor diagrame de analiza conceptuala a sistemului care
cuprind:
G componentele ceie ale sistemului,
G functiile de baza ale fiecarei componente,
G interactiunea ' caile de comunicare ntre aceste componente si
G lista serviciilor oferite utilizatorului sistemului
;%emplu diagrama conceptuala pentru servicii bancare simple ("listair -ocEburn)
$ervicii mica banca:
P Verificare cont
P Pastrare bani n cont
P Verificare stocuri
P ,mprumuturi
;%emplu diagrama conceptual
R!&$AT SP!CI'ICATII
0aza 5ezultate
;laborare $pecificatii
Descriere de detaliu a comportarii
sistemului.
O descriere detaliata, precisa, clara si fara
ambiguitati a cerintelor
Descriere functii si interactiune
component s>stem
1odelarea functionalitatii sistemului
"naliza conceptiilor de proiectare +
revizie
Document specificatii
0inalizarea descrierii modelul functional
-rearea unui plan de testare
;K;1PA&: Barta <P$
G Aista de specificatii pentru arta de navigare <P$ va include
c*teva componente:
' ce date se receptioneaza de la constelatia de sateliti <P$?
' datele artii afisate?
' interfata cu utilizatorul?
' operatii ce trebuie realizate pentru a satisface cerintele utilizatorului?
' operatii n fundal (ne+evidente) cerute pentru a pastra sistemul n functiune, cum ar fi de
e%emplu functionarea receptorului <P$.
PROI!CTAR! AR)IT!CTRA#*
G "ritectura este o reprezentare abstract a implementrii sistemului i indic structura
sistemului n termenii componentelor mari i interconeiunile dintre acestea
G Aa nivel aritectural, componentele ard!are i soft!are sunt reprezentate ca o compoziie de
elemente ce interacioneaz
' Detalii de implementare (BN Q $N) sunt abstractizate, conin*nd doar informaia de
comportament i de inter-relaie ntre componente
G O aritectura embedded include elemente interne ale sistemului, elemente e%terne ce
interacioneaz cu sistemul, proprietile fiecrui element individual i relaiile de interaciune
ntre elemente
G ,n aceasta etapa se face partiionarea implementrii funciilor ntre !ard"are i soft"are
I$PORTANTA AR)IT!CTRII
G 8ndic cum se #or implementa func$iile sistemului, descrise n specificaii.
G "ritectura este documentul care:
' Definete infrastructura proiectului
' ;videniaz opiunile i constr*ngerile de proiectare
' -omunic rapid i corect, prin planul aritectural, modul n care se va face
proiectarea # implementarea. (-omunicare ctre alte persoane cu # fr pregtire
tenic)
' ;ste fundamentul activitii de planificare a sarcinilor de proiectare
' Permite analiza i testarea calitii unui dispozitiv
' Permite definirea unor modaliti de reducere a costurilor de proiectare construcie
' Permite estimarea corect a riscurilor implicate de varianta de implementare a
diverselor elemente
' Permite reutilizarea cunoateriiscderea n viitor a costurilor
Proiectarea arhitecturala include+
RSDefinirea componentelor sistemului. ;ste o estimare ce tine de e%periena i de cunoaterea
caracteristicilor componentelor ard!are i soft!are propuse.
RS$pecificaii ard!are # soft!are (e%ista opiunea ntre a cumpra i a construi prin forte proprii)
,n cazul &1A: modelare grafica a obiectelor componente. Obiectele corespund
pieselor reale BN si $N ale proiectului.
RS"legerea procesorului
RS"legerea limbaCului de programare
RS;valuarea sistemului
RSProiectare ard!are i firm!are
RS8ntegrare si testare funcional
D! ,INT CONT
G ;ste important de inut minte c !ard"are reprezint un cost recurent (repetat), ce se repeta
pentru fiecare sistem v*ndut.
G Soft"are reprezint un cost ne+recurent. 2rebuie dezvoltat o singur dat, dar nu apare ca i
cost pe unitatea de produs, dec*t dac este o ta%a de licen de pltit.
G "legerea #ariantei de implementare ard!are:
' -u microprocesoare, microcontrollere discrete i cablaC imprimat ' n aceeai
carcas, S%stem in Pac&age
' $istem distribuit
' &n+sistem+pe+un+cip (S%stem'on'c!ip T $O-). Proiecte $O- pe baza de nuclee
8P
' "$8-, bazat tot pe nuclee 8P dar pentru aplicaii specifice si n numr e%trem de mare.
$unt tot $o-, full custom design.
"A;<;5;" P5O-;$O5&A&8
- Num.rul de pini de IO necesari + Pini grupai n porturi de 8O, restricii, capabiliti cureni
mari
- Interfee necesare
- Cerine memorie RA$
' numrul de variabile plus suma tuturor bufferelor interne, structuri 080O, i
dimensiunea stivei
' intern # e%tern, restricii de utilizare, $05, moduri de adresare
' eficienta compiler.
G Cerine memorie RO$
' suma codului de program plus toate tabelele necesare a fi incluse ntr+o memorie
nevolatil
' regula bazata pe e%perien: ocupare n proporie de ma%im 79U
' 2estare compilator ales poriuni de cod pentru a determina dimensiunea
acestuia dup compilare # asamblare
' dimensiunea codului depinde limbaCul de programare ales pentru dezvoltare
' dac se folosesc operaii n virgul mobil, iar procesorul nu are inclus un
coprocesor matematiccod mare.
- Num.r de ntreruperi cerut
- Consideraii real-time
- $ediul de dez/oltare. 0unciuni principale ale unui mediu integrat de dezvoltare (8D; +
8ntegrated Development ;nvironment), ce ruleaz pe un calculator desEtop (de e%emplu un
P-).:
' dezvoltarea programelor utilizator (de obicei n limbaC - i # sau asamblare) ntr+o
fereastra de editare.
' compilator si editor de legturi
' depanarea i punerea la punct a programelor prin debugger
' asamblor pentru rutinele scrise n asamblare
' simulator pentru rularea programelor (inclusiv pas cu pas prin debugger) i
urmrirea coninutului registrelor interne, a memoriei, a porturilor de 8O, a
circuitelor timer # counter, etc.
' transferul codului (program e%ecutabil) ctre memoria locala (flas, ;;P5O1) a
microcontrollerului
' 8nvestiii anterioare ale companiei (8D;), principii economice.
G Necesit.i de /iteza de prelucrare0
' ,n cazul cel mai dezavantaCos al mai multor ntreruperi aflate n curs de servire
procesorul trebuie s funcioneze respect*nd specificaiile de proiectare.
' Aungimea buclelor de interogare suficient de scurt ca s nu se piard niciodat un
octet de la o intrare de date serial, sau de la oricare alt interfa.
' 0recvena de ceas a procesorului nu trebuie confundat cu frecvena oscilatorului
de ceas.
' $etul de instruciuni este de asemenea foarte important. ,n unele aplicaii
aritectura 58$- poate fi o capcan.
- RO$-a(ilit1
' 0las
' ;P5O1
' O2P
' 5O1.
G Costuri
- In Circuit pro2rammin2
- Arhitectura memoriei
- Cerine de putere
- Cerine de mediu
' &nele aplicaii impun ca 1P s lucreze la game e%treme de temperatura i
radiaie.
D!&3O#TAR!A 3!RSINII AR)IT!CTRA#!
G Proiectarea componentelor ard!are i soft!are
G 8ntegrarea sistemului prin conectarea componentelor proiectate.
G Verificare si obinere de informaii de feedbacE
G 8nspecia unui proiect se face de ctre o alt persoana dec*t proiectantul (detectarea
omisiunilor, erorilor). 8nspecia se face pe baza unor prezentri scrise sau orale
din partea proiectantului.
- Documentaia:
' detectarea uoar a componentelor care conduc la neconformiti cu cerinele
' comunicarea dintre membrii unei ecipe
' elaborarea rapoartelor cu privire la proiect
' elaborarea documentaiei finale a proiectului,
' reutilizarea componentelor proiectului pentru alte proiecte, modificare, upgrade.
G ;laborarea unui plan pentru inte2rarea 4i testarea componentelor
P5O8;-2; A" @8V;A D; $8$2;1. 5;V&A2"2;
Structura sistemului n termenii
componentelor mari i
interconeiunile dintre acestea.
1odul de implementare a G $pecificaii pt. blocuri funcionale
funciilor si modul de
implementare a componentelor
G "legerea procesorului G "legere 1-&#-P&
G "legerea limbaCului G "legere limbaC
G Definirea blocurilor maCore G 5evizie de proiectare a sistemului
ard!are i soft!are
G Opiune ntre cumprare sau
construire prin forte proprii.
G Partiionare: 3locuri
funcionale, B! # $N
!5!$P#+ )arta 6PS
Diagrama bloc ce definete ar!itectura pentru !arta mobila
B"5DN"5;
$O02N"5;
81PA;1;@2"5;" $8$2;1&A&8
G 8mplementarea ard!are si soft!are
G Proiectare de detaliu componente si construcie
' Pentru soft!are asta nseamn proiectarea de detaliu, scriere i depanare a
codului
' Pentru ard!are nseamn proiectarea de detaliu, realizarea proiectului prototipului si
testarea circuitelor.
G 8mplementare nucleu 1-&
G -onstrucie i testare alte blocuri funcionale ale aritecturii. Daca la proiect lucreaz o singura
persoana, atunci blocurile funcionale sunt completate secvenial. Dac e%ist mai muli
proiectani acestea se pot rezolva n paralel.
G $arcinile presupuse pentru fiecare bloc funcional includ proiectare !ard"are de detaliu si
construc$ie( proiectare soft"are de detaliu i construc$ie i apoi integrarea !ard"are'soft"are
i testarea
G Pot e%ista interdependen$e ntre proiectarea ard!are i soft!are. Partea ard!are nu poate fi
testat p*n c*nd o parte din soft!are nu este gata, iar soft!are nu poate fi testat p*n c*nd
partea din proiectul ard!are nu este gata
G ,n mod tipic se construiete ard!are i se testeaz minimal mai nt*i. "poi maCoritatea
efortului se concentreaz pe scrierea de soft!are i testarea soft!are pe ard!are.
G Documentarea sistemului
3!RI'ICAR! SI T!STAR!
G $cop: verificare, testare, ncorporare de informaii de feedbacE pentru corectarea
neconformitilor
G 5evizii:
' 5eviziile sunt demonstra$ii( inspec$ii ale sc!emelor si inspec$ii ale
codului
' 5evizia trebuie fcut de specialiti independeni, familiari cu proiectul
(-;58@W;) i tenologiile, care s aCute la detectarea erorilor
' $e pot detecta omisiuni, erori
G 2estarea produsului final este o continuare a activitilor de testare din timpul proiectrii,
acestea put*nd fi urmrite conform documentaiei elaborate la proiectare aritectural
G 2estare public + un proiect preliminar este distribuit unor beneficiar de la care se ateapt
feedbacE (Xbeta testingO). 5eacia de la clieni poate duce nu numai la detectarea unor erori,
scimbarea codului, dar i la scimbarea unor specificaii. @u e recomandat ntotdeauna n
domeniul ;m$.
'RNI&AR! PRODS 'INA# SI $!NT!NAN,A
G Prototipul final i integrarea constituie ultima faz a proiectrii.
G ;ste faza n care toate blocurile funcionale sunt nglobate i se construiete prototipul
!ard"are final. De asemenea modulele soft!are sunt combinate, iar codul este revizuit pentru a
rula ca o aplicaie de sine stttoare pe prototip. &nele din componentele ard!are si soft!are
au fost deCa construite i testate pe un sistem de dezvoltare, nainte de aceasta faz
G ,n funcie de comple%itatea sistemului de dezvoltare utilizat aceasta ultima faza poate fi un pas
uor de realizat, sau poate fi o operaie comple%.
G ,n mediul competitiv actual multe din deciziile luate la proiectare se bazeaz pe re+utilizarea
unor componente ale proiectelor deCa e%istente. )stfel ca ciclul de #ia$* al unui proiect continua
i dup* produc$ie i el poate include mentenan$a produsului( raportarea bugurilor i ar!i#area.
'RNI&AR! PRODS 'INA# 7I $!NT!NAN,A
G Documentare+
' 8mportana at*t pentru componentele !ard"are, dar i mai important pentru cele
soft"are. Permite detectarea uoar a componentelor care conduc la neconformit*$i cu
cerinele, permite comunicarea dintre membrii unei ecipe, elaborarea rapoartelor cu
privire la proiect, elaborarea documenta$iei finale a proiectului, permite reutilizarea
componentelor proiectului pentru alte proiecte.
' Pentru soft"are toate informaiile referitoare la etapele anterioare, de la punerea
problemei, elaborarea algoritmului i a scemei logice (eventual diversele #ersiuni
succesi#e indic*nd evoluia programului)
' $ursa programului (cu comentarii suficiente pentru a se corela cu scema
logic), eventuale eantioane de date de intrare # ieire, dac este cazul
Curs 8
Componentele sistemelor incorporate
Structura cu e9emple
Obiective de instrucie
Dup parcurgerea acestei lecii studenii vor
+ cunoate structura
+ specificaiile componentelor principale a sistemelor incastrate
+ -unotine speciale despre calculatoare Xsingle boardO
Cerine preliminare
;lectronic digital, 1icroprocesoare
Introducere
Diferitele componente ale sistemelor incorporate pot fi grupate ieraric de la
-omponente ale nivelelor sistemului la -omponente ale nivelelor tranzistoarelor. O component
a unui sistem (sau a unui subsistem) difer de ceea ce este considerat ca o component
electronic standard. -omponentele standard sunt n mod normal dispozitive active cum ar fi
circuite integrate, memorii, diode, tranzistoare, etc. mpreun cu componentele pasive precum
rezistene, condensatoare i inductane. "cestea sunt elementele de baz de care este nevoie
pentru monta o plac de circuit pentru o aplicaie oarecare conform unui proiect specific.
Pe de alt parte, are componente active i componente pasive montate pe o plac de
circuit care este configurat pentru o sarcin specific (fig. 4..). -omponentele sistem pot fi at*t
module single funcionale c*t i module multifuncionale care servesc la realizarea blocurilor
nalt integrate a unui sistem. O component sistem poate fi una precum o simpl plac de
intrri#ieiri digitale sau una comple%, ca un computer cu video, memorie, reea i intrri#ieiri,
toate pe o singur plac. -omponentele sistem sunt realizate conform standardelor industriale i
sunt disponibile din multe surse pe plan mondial.

0ig. 4... 8erarizarea componentelor
Structura unui sistem incorporat
$tructura tipic a unui sistem incorporat este prezentat n figura 4./. "ceasta poate fi
comparat cu aceea a unui computer desEtop prezentat n figura 4.4. ,n mod normal ntr+un
sistem incorporat memoria primar, unitatea central de calcul i multe componente periferice
incluz*nd convertoarele analog numeric sunt incluse ntr+un singur cip. "ceste cip+uri sunt
constituite ca microcontrolere. "cesta este indicat prin linia punctat n figura 4./.
Pe de alt parte un computer desEtop poate conine toate aceste circuite ntr+o singur
plac P-3 (Po!er -ircuit 3oard) cunoscut n genere ca Xplac de bazO. Deoarece aceste
computere manipuleaz cantiti mari de date n comparaie cu sistemele incorporate au fost
elaborate modaliti de pentru stocarea i transferul mai rapid ntre -P& i memorie, -P& i
dispozitivele 8#O i ntre memorie i dispozitivele de intrare#ieire. $tocarea este desv*rit prin
ieftinirea memoriilor secundare precum ard disE+uri i -D5O1+uri. Procesul de transfer al
datelor este mbuntit prin incorporarea metodelor de acces a memoriilor cace multinivel i
metodelor D1". ,n general pentru sistemele incorporate nu sunt necesare astfel de aranCamente.
Din cauza numrului componentelor eterogene ntr+un computer desEtop sunt necesare surse de
tensiune cu nivele de tensiune diferite (tipic Y./V, YUV, Y4,/6V). Pe de alt parte cip+urile
pentru sistemele incorporate au nevoie de un singur nivel de tensiune (tipic H6V).
0ig. 4./. $tructura tipic a unui sistem incorporat
$cema structural a unui calculator desEtop
+emplu tipic
&n computer single board ($3-)
Vom prezenta caracteristicile acestui ($O-). Va fi o cale pentru nelegerea tipurilor mai
comple%e $>stem on -ip ($O-).
Diferite elemente i semnificaiile lor sunt urmtoarele:
,I) -../0z or 1 20z lo" po"er C. processor +34'compliant board "cesta este
procesorul acestui $3-. V8" reprezint compania care produce procesorul, D441Bz sau .<Bz
este frecvena ceasului procesorului. -4 este codul productorului.


0ig. 4.:. -alculator single board ($3-)
0ig. 4.6. 1icroprocesorul
.5 to 615/3 of s%stem PC1.. SD7)/ supported in a 189'pin DI// soc&et ' /emorie
7)/+ se monteaz pe socluri de .=7 de pini standard pentru D811 (dual in line memor>
modules) care permit montarea i demontarea comod a acestora
Soc&et for up to 12iga 3%te bootable Dis&:nC!ip or 615;3 S7)/ or 1/3 +P7:/ 'Soclu
pentru Dis&:nC!ip butabil mai mare de 12b sau 615&3 7am sau 1/b +P7:/
"ceast memorie este 5"1 static sau ;P5O1 care conine sistemul de operare, av*nd acelai
rol ca i Bard disEHul pentru calculatoarele desE top
<%pe I and II Compact Flas! =CF> cards supported ' Flas! compact =CF> de tip I sau II
=card>
"re rolul unui ard+disE sau flopp> semiconductor. 1emoria flas reprezint memorie de tip
;;P5O1 (;lectrical> ;asable and Programmable 5ead Onl> 1emor>). 2ip 8 sau 88 reprezint
formatHuri diferite, tipul 88 fiind mai compact i mai recent.
PC' compatible support ?inu( @ido"s C+. N+< 4P( ,IS<) sau alte 98 copatible
7<:S' 8ndic diferite sisteme de operare suportate de platforma $3-.
0ig! resolution #ideo controller supportsA Color panels supported "it! up to .8'bits/piel
Supports resolutions up to 1B5C 1DDC ' 8ndic calitatea video suporatat de cip+ul video on+board
Simultaneous C7< and ?CD operationA D4 )2P local bus for !ig! speed operationA ?,DS
supported ' 8ndic posibilitatea operrii simultane cu monitor cu tub catodic (-52 ' -atodic 5a>
2erminal) sau A-D? "<P("ccelerated <rapics Port)+ un port grapic e%treme de rapid destinat
plcilor grafice performante? :% reprezint viteza portului grapic? AVD$ (Ao! Voltage Differential
$ignaling) ' metod cu zgomot, putere i amplitudine redus pentru transmisii de date de mare
vitez (<b per secund), cu cablu cu ecran de cupru.
Dual 1C/1CC /bps Intel PCI +t!ernet controllers ' -ontroler de reea dual .9#.991bps
D 7S'5.5 serial ports "it! FIF:( C:/1 E C:/5 "it! 7S'D55/D96 support ' interfa serial
080O? 5$+/4/#5$+://#5$+:76 sunt standard de comunicaie standard care vor fi studiate pe parcurs.
-O1. i -O1/ suporturi pentru acelai port 5$+/4/
3i'directional ?P< port supports +PP/+CP ' AP2 (Aine Printer 2erminal)?
;PP#;-P(;nanced Parallel Port#;%tended -apabities Port) +
D9 bi'directional <<? digital I/: lines "it! 5D pins capable of e#ent sense interrupt
generation+ :7 de lini 8#O digitale suplimentare. Pe unele dintre ele se pot sesiza ntreruperi.
Four FS3 ports onboard ' &$3 (&niversal $erial 3us) ' este un bus e%tern standard care
suporta rate de transfer de ./1bps? se pot conecta mouse, modem, tastatura, etc.
<"o( dual Fltra D/) ../88/1CC +ID+ connectors
&ltra D1" ' soclu pentru D1". ;ste un mod de transfer a unui volum de date din memorie pe
ard+disE i invers.
;8D; (;nanced 8ntegrated Drive ;lectronics) ' o nou versiune mbuntit pentru interfaa
dispozitivului 8D;. $uport rate de trei patru ori mai mari dec*t 8D; standard. 1ai mult, poate
0ig. 4.D. 1emorie flas
suporta dispozitive de stocare mai mari de 7,:<b n timp ce vecile 8D; erau limitate la 6./13.
@umrul 44#==#.99 reprezint rata n 1bps.
Flopp% dis& controller supports 1 or 5 dri#es
AC97 )udio'Codec B- + (audio codec)
PC/1CD and PC/1CD'Plus epansion connectors ' P- .9: este numele unui computer
personal foarte popular proiectat iniial de 831 numit P- iar .9: reprezint numrul de pini utilizai
pentru conectarea plcilor mpreun. Plcile P- .9: sunt mult mai mici dec*t Plcile pe 8$".
)< &e%board controller and PS/5 mouse support ' iniial tastaura avea 7: de taste, nlocuite
ulterior cu .9. ;nnaced Ze>board.
<"o interrupt controllers and - D/) c!annels( <!ree( 18'bit counter/timers( 7eal <ime
Cloc&( @atc! Dog <imer and Po"er on Self <est ' Dou controlore pentru ntreruperi, D canale
D1", trei contoare#timere pe .= bii, -eas de timp real
;%emplu de specificaii
Specifications
H6 volt onl> operation
/ec!anical
Dimensions: 6.D6[ % 7.9[ (.:=mm % /94mm)
Fumpers: 9.9/6[ s\uare posts
-onnectors
$erial, Parallel, Ze>board: 69+pin on 9..99[ grid
-O14 Q :: /9+pin on 9..99[ grid
0lopp> DisE 8nterface: 4:+pin on 9..99[ grid
;8D; 8nterface: :9+pin on 9..99[ grid (Primar>)
::+pin on /mm grid (Primar>)
:9+pin on 9..99[ grid ($econdar>)
69+pin /mm 0las connector
Parallel 8#O: 2!o, 69+pin on 9..99[ grid
-52: .:+pin on /+mm. grid
0P+.99 Panel: 2!o, 69+pin on /+mm. grid
AVD$ /9+pin on 9..99[ grid
;ternet: 2!o 5F+:6
P-#.9: bus: =:+pin 9..99[ socEet, :9+pin 9..99[ socEet
P-#.9:+Plus ./9+pin (: % 49? /mm) stacEtroug !it srouded eader
&$3 0our, :+pin 9..99O
"udio 2ree, 4.6mm stereo pone CacEs
Po!er: ]+pin in+line 1ole%
;nvironmental
Operating 2emperature:
+:9^ to H76^- (D441Bz)
+:9^ to H=9^- (.<Bz)
@on+condensing relative umidit>: 6U to ]6U
-oncluzii
5ezult din e%emplul anterior c un sistem incorporate tipic const n mare din urmtoarele
component montate pe o singur plac sau un singur -8P:
.. Procesor
/. 1emorie
4. 1odule de interfa intrri#ieiri
:. -"@ i -@"
6. $oft!are ca sistem de operare
=. $oft!are de aplicaie
&na sau mai multe componente din cele prezentate anterior pot fi plasate pe o singur plac
sau pe un singur -8P. ,ntr+un s>stem incorporate tipic, microprocesorul, o mare parte a memoriei i
principalele dispozitivele 8#O sunt realizate pe un singur -8P numit microcontroller. $istemele
incorporate lucreaz pentru realizarea unor scopuri specific i suport n general o programare
minimal din partea utilizatorului. 8nteraciunea cu utilizatorul const dintr+o serie de comenzi care
sunt e%ecutate de 52O$ prin apelarea unor subroutine. 52O$ este stocat n memoria flas sau n
memoria read onl>. Pentru stocarea datelor temporare se vor utilize memorii care pot fi terse. Dac
-P& este plasat pe acelai -8P cu memoria, atunci o parte din memorie poate fi utilizat ca memorie
tampon. "ltfel, un numr din regitrii -P& vor fi folosii ca memorie tampon. -P& comunic cu
memoria prin adrese i bus+ul de date. Durata i controlul acestor scimburi de date sunt realizate de
unitatea de control a -P& prin intermedioul liniilor de control. 1emoriile plasate pe acelai -8P cu
procesorul au viteze de transfer mai mari Pe de alt parte, dispozitivele 8#O au diverse grade de
viteze de lucru. "ceste viteze diferite de transfer sunt manipulate n moduri diferite de ctre
processor. Dispozitivele cele mai lente au nevoie de circuite de interfaare. ,n general nu sunt
utilizate cip+uri mai rapide dec*t microprocesorul.
"ritectura unui sistem icorporat tipic esate prezentat n figura 4.7. &nitatea ard!are
const din elementele prezentate anterior conectate cu un subsistem numeric precum i cu un
subsitem analogic. $oft!are+ul sub forma unui 52O$ este resident n memorie.

0ig. 4.D. "ritecura unui sistem incorporat
Procesoare
&nitatea de procesare central este cea mai important component a sistemelor incastrate.
Depinz*nd de tipul aplicaiei procesoarele se pot clasifica n trei clase principale:
.. 1icroprocesoare de uz general
/. 1icrocontrolere
4. Procesoare digitale de semnal
Pentru mai multe aplicaii specifice pot fi proiectate procesoare deosebite. ,n afar de cazul n
care cererea este mare costurile de proiectare i producere a procesorului vor fi mari. Prin
urmare, n cele mai multe aplicaii, proiectarea este finalizat utiliz*nd procesoare disponibile pe
pia. 2otui pot fi utilizate 0P<" (0ield Programmable <ate "rra>) pentru a implementa uor
procese oarecare simple. &n 0P<" etse un cip logic care poate fi programat. "cestea pot avea
sute de pori care pot fi interconectate ca un ;P5O1 (;rasable Programable 5ead Onl>
1emor>). $unt utilizate n special pentru proiectarea prototipurilor circuitelor integrate. Odat
proiectat, cipul cablat este produs pentru obinerea vitezelor mai mari.

Destinaii 2enerale ale procesoarelor
&n procesor de uz general este destinat s rezolve probleme ntr+o larg gam de aplicaii
precum comunicaii, automobile i sisteme incorporate industriale. "ceste procesoare sunt n
general ieftine pentru c sunt produse ntr+un numr foarte mare. 0iind ieftine, productorul
poate investi mai mult pentru creterea proiectrii VA$8 cu caracteristici aritecturale
mbuntite. "stfel, performane precum consumul i dimensiunile pot fi mbuntite. ,n cele
mai multe cazuri, pentru astfel de procesoare uneltele de proiectare sunt furnizate de productor.
De asemenea ard!areHul suport este ieftin i uor disponibil. 2otui, numai o parte a
capabilitilor procesorului pot fi necesare pentru o proiectare specific i prin urmare sistemele
incastrate per ansamblu nu va fi optimizat aa cum ar fi trebuit sa fie ,in ceea ce privete
dimensiunea, puterea i sigurana n funcionare.
$tructura unui procesor de uz general este prezentat n figura :...
-alea de date (data pat) const dintr+un circuit pentru transformarea i stocarea temporar a
datelor. -onine o unitate aritmetic i logic ("A&) capabil s transofrme datele n cursul
operaiilor precum adunare, scdere, _i logic, $"& logic, inversare, deplasare, etc. -alea de date
conine de asemenea regitri capabili s stoceze temporar datele generate de "A& sau obinute
n urma operaiilor. 3us+ul (magistrala) intern de date susin datele i cile de date p*n c*nd
bus+ul de date e%tern susine datele spre i de la memoria de date. Dimensiunea adresei de date
indic lungimea cuv*ntului -P&. O adres de date de 7 bii corespunde unui -P& pe 7 bii
precum 7976.
&nitatea de control este alctuit din circuite pentru e%tragerea instruciunilor program i
pentru a deplasa datele spre, de la i prin calea de date n concordan cu instruciunile e%trase.
;%ist un contor de program (P-) care pstreaz adresa urmtoarei instruciuni program ce
trebuie e%trase i un registru de instruciuni (85) pentru pstrarea instruciunii e%trase. ;%ist de
asemenea o unitate de sincronizare a registrului de stare i controlului logic. -ontrolerul
genereaz semnale de control necesare citirii instruciunilor din registru de instruciuni (85) i
controlului flu%ului de date pe calea de date. ,n general dimensiunea adresei este specificat de
unitatea de control aceasta fiind responsabil s comunice cu memoria. Pentru fiecare
instruciune, controlerul realizeaz n mod normal mai multe multe etape precum determinarea
locaiei din memorie a instruciunii, decodificarea ei, determinarea operanzilor, e%ecutarea
instruciunilor pe calea de date i stocaarea instruciunilor. 0iecare etap dureaz c*iva cicli de
ceas.
$icrocontrolere
,n mod similar modului n care elemnetele unui calculator desEtop sunt montate pe o singur
plac, prin montarea pe un singur cip a elementelor principale din aritectura unui computer se
obine un microcontroler. Din cauza restriciilor impuse de realizarea circuitelor VA$8 cele mai
multe funcii de intrare ieire sunt prezente ntr+o form simplificat. "ritectura tipic a unui
microcontroler este preezentat n figura :./.
`Casu$ele dublu !aurate reprezint* elemente ale microprocesorului.
,n figura :./. sunt prezentate urmtoarele elemente:
2e 699 -ore conine -P& care const din deodificatorul de instruciuni, "A&, i seciunea de
control program.
<!e !ouse&eeper (administratorul) genereaz semnalele interne pentru controlul
individual al funcionrii unitilor din interiorul microcontrolerului.
Port C i Port 5 sunt necesare pentru a acesa codul e%tern i datele memoriei i pentru
generri de coduri.
<!e eternal control bloc& (blocul de control e%tern) manipuleaz semnalele de control
e%tern i cele generate de ceas.
2e acces control units este responsabil pentru selecia resurselor interne de memorie
85"1 ' asigur 5"1+ul intrern care include regitri de uz general.
K5"1 ' reperezint 5"1+ul intern adiional ce poate fi uneori inclus.
8ntrerrupt -ontroler gestioneaz cererile de intrerupere de la unitile periferice interne,
precum:
+ 8nterfee seriale
+ 2imere
+ -onvertoare "#@
+ &nitatea !atcdog (ND&)
0ig. :.... "ritectura unui procesor de uz general
+ &nitatea de multiplicare+divizare (1D&)
$emnalele e%terne ale acestor uniti periferice sunt disponibile pe portul 8#O paralel sau
pe pini dedicai.
Procesoare de semnal numeric :DSP;
"ceste procesoare au fost proiectate pe baza aritecurii Barvard modificate pentru a
prelucra seemnale de timp real. -aracteristicile acestor procesoare sunt potrivite implementrii
algoritmilior de procesare a semnalelor. O operaie foarte utilizat n acest caz este multiplicarea
tablorurilor. De e%emplu, convoluia i corelaia cer multiplicarea tablourilor. "ceasta este
realizat prin multiplicare urmat de acumulare i adunare. "ceste operaii sunt realizate de
unitatea 1"- (1ultiplier and "ccumulator ). &neori aceasta este implementat ca 1"-D
unde D are semnificaie de Data move.,n general instruciunile sunt realizate ntr+un singur
ciclu.
8nstruciunile tip 1"-D pot fi e%ecutate mai rapid prin implementare paralel. "cest
fapt este posibil prin accesul separat n paralel la memorie al programului i datelor. "ceasta
poate fi realizat prin modificarea aritecturii ca n figura :.4. "ceste uniti D$P utilizeaz n
general uniti de acces multiplu (1ultiple "ccess) i memorii multiport (1ulti Ported
1emor>). 1emoriile cu acces multiplu permit mai mult de un acces la memorie ntr+o singur
perioad de ceas. 1emoriile multiport permit adrese multiple i la porturile de date. "ceasta
vcrete de asemenea numrul aceselor pe unitate de ciclu de ceas.
0ig. :./. "ritecutura unui microcontroler tipic (-699 produs de 8nfineon
2ecnolog>, <ermania)
"ritectura specific pentru cuvinte de instruciuni foarte lungi (VA8N+ Ver> Aong
8nstruction Norld) este de asemenea potrivit pentru aplicaii de procesare a semnalelor digitale.
"cestea au un numr de uniti funcionale i ci de date aa cum se vede n figura :.:.
8nstruciunile sunt e%trase din memorie? Operanzii i operaiile ce trebuie realizate de diferite
uniti sunt specificate n corpul instruciunii.&nitile funcionale multiple mpart un registru
multiport pentru e%tragerile de operanzi i stocarea rezultatelor. "ccesul aleatoriu paralel la
regitri este posibil prin intermediul barei ncruciate de citire#scriere (5ead#Nrit! -ross 3ar).
;%ecuia n unitatea funcional este finalizat concutrent cu operaiile de ncrcare#salvare a
datelor ntre 5"1 i regitri.

$icroprocesor /ersus microcontroler
&n microprocesor este unitatea central de prelucrare a unui computer de uz general.
Pentru a realiza un microcalculator complet este necesar s fie adugate elemente precum
memorii (5"1 i 5O1), decodificatoare de memorie, un oscilator i un numr de dispozitive
de intrare ieire. &tilizarea principal a procesorului este s citesc date, s realizeze calcule
0ig. :.4 "ritectur Bardvard modificat
0ig. :.:. 1emorie cu port dual
0ig. :.6. Diagrama bloc pentru aritectura VA$8
complicate cu aceste date, i s stoceze rezultatele pe dispozitive de stocare corespunztoare
sau s le afieze pe displa>. "ceste procesoare au o aritectur comple%, cu multiple etape de
prelucrare succesiv i paralel. 1emoria este mprit n trepte precum cae, multinivel i
5"1. Perioada necesar dezvoltrii microprocesoarelor este mare datorit comple%itii foarte
mari a proiectrii circuitelor comple%e VA$8.
Proiectarea microcontrolerelor este condus de dorina de a realiza o fle%ibilitate i
e%pandare ma%im. 1icrocontrolerele au n mod uzual 5"1 i 5O1 sau (;P5O1) on cip la
care se adaug ard!are 8#O on cip petru a reduce numrul cip+urilor la unul singur. -a
urmare a a utilizrii ard!are+ului on cip pentru 8#O, 5"1 i 5O1 rezult -P& cu
performane destul de reduse. De asemenea, microcontrolerele au adesea incluse timere pentru
generarea ntreruperilor i care pot fi astfel utilizate cu -P&, i "#D, D#" on cip sau porturile
paralele pentru a genera 8#O strict controlate n timp. Principala utilizare a microcontrolerelor
este de a controla operaiile unei maini utiliz*nd un program fi%at care este stocat n 5O1 i
care nu se modofic de+a lungul duratei de via a sistemului. 1icrocontrolerul este conceput
pentru a avea datele dela i la pinii proprii? aritectura i setul de instruciuni sunt optimizate s
manipuleze datele att pe bit c*t i pe octet.
Diferena dintre microprocesor i microcontroler este foarte bine e%emplificat prin faptul
c cele mai multe microprocesoare au multeoperaii pentru a muta date din memoria e%tern la
-P& n timp ce microcontrolerele pot avea una sau dou. Pe de alt parte, microprocesoarele au
una sau dou tipuri de instruciuni pe bit n timp ce microcontrolerele vor avea multe astfel de
tipuri.
0ig. :.=. $istem cu microprocesor
0ig. :.D. 1icrocontroler
$icroprocesoare /ersus DSP
Principalele caracteristici ale D$P
+ $unt microprocesoare specializate pe aplicaii de procesare a semnalelor
+ $unt bazate pe aritectura Barvard
+ 5ealizeaz de la dou la patru accesri de memorie pe ciclu
+ Bard!are+ul specializat realizeaz operaiile aritmetice de baz ntr+un singur
ciclu
+ "u un set foarte limitat de instruciuni caracteristice $81D ($ingle 8nstruction
1ultiple Data) foarte comple%e i specializate
+ Operaii multiple per instruciune
+ "dresare specializat(autoincrementare, circular, prin inversarea biilor)
+ ,ntreruperile sunt dezafectate pentru durata unor operaii
+ "u un numar mic (sau de loc) de regitri tampon
+ 0oarte rar au caracteristici dinamice
+ Port serial sincron
-aracteristicile procesoarelor de uz general
+ $unt uniti centraule pentru P-+uri NorE+station etc.
+ $e bazeaz pe aritectura von @e!mann
+ ,n mod normal se realizeaz . acces per ciclu
+ ,n cazul instruciunilor de uz general se realizeaz o operaie per instruciune
+ 1od de adresare de uz general
+ @umai cicluri soft!are
+ 8ntreruperile nu pot fi dezafectate
+ 5egistrii tampon sunt utilizai fercvent
+ $e utilizeaz o arie larg de periferice i dispozitive 8#O att oc cip cat i off
cip.
+ Port serial asincron
0ig. :.7. Organizarea memoriei D$P
0ig. :.]. Organizarea memoriei n procesoarele de uz general
$emoria
1emoria asigur procesorului necesitile de stocare pe durat scurt i lung n timp ce
regitrii asigur numai cerinele de stocare pe termen scurt. ,n cazul aritecturii Princeton pe
acelai suport poate fi stocat att programul c*t i datele n timp ce n cazul aritecturii Barvard
programul i datele ocup blocuri de memorie separate. Primul mod conduce la o aritectur
simpl n timp ce cel de+al doile impune dou cone%iuni separate i de aici datele i programul
pot conduce n paralel la procesare paralel. Procesoarele de uz general au aritectur de tip
Princenton.
1emoria poate fi 5ead+Onl>+1emor> (5O1) sau 5andom "ccess 1emor> (5"1). Pot
fi ncastrate n cip+ul procesorului sau pot fi e%terne. 1emoria on cip este mai rapid dec*t
memoria e%tern. Pentru a reduce timpul de acces poate fi realizat o compie local a unei
poriuni de memorie care poate fi pstrat ntr+o zon de memorie mai mic dar mai rapid,
numit memorie cas. 1emoria poate fi clasificat n memorie dinamic i memorie static.
1emoria dinamic disip mai puin putere i prin urmare potae fi realizat mai compact i mai
ieftin, timpul de acces ns este mai mare n cazul memoriei dinamice dec*t n cazul memoriei
statice. ,n 5"1+ul dinamic (D5"1) data este meninut prin operaii de regenerri periodice n
timp ce n memoria static )$5"1) aceasta este reinut continuu. $5"1 este mai rapir dec*t
D5"1+ul dar consum mai mult. 1emoria intermediar cas este de tip $5"1.
Dispoziti/e de intrare ie4ire 4i chip-uri de interfa.
$istemele incorporate de timp real interacioneaz cu mediul i utilizatorii prin
intermediul unui ard!er ncastrat. ,n mod ocazional sunt necesare circuite e%terne pentru
comunicia cu utilizatorii, alte computere sau reea.
,n telefoanele mobile de e%emplu, dispozitivele de intrare ieire sunt tastataura, ecranul,
antena, microfonul, speaEer+ul, A;D+urile indicatoare, etc. $emnalele de la aceste uniti pot fi
analogice sau numerice. Pentru a genera un semnal analogic de la microprocesor este nevoie de
un -@" iar pentru ca acesta s accepte un semnal analogic este necesar un -"@. "ceste
convertoare au n continuare anumite moduri de control. ;le pot lucra la viteze diferite de ale
procesorului. Pentru a sincroniza i controla aceste interfee este nevoie de alte cip+uri de
interfa. ,n mod similar pot fi necesare cip+uri de interfa cu tastatura, antena,, ecranul, etc.
Dispozitivele de intrare ieire sunt n general mai lente dec*t procesorul? prin urmare procesorul
poate atepta p*n cnd acetea rspund la o cerere de transfer de date. "tunci c*nd interfeele 8#O
sunt on cip aceste neaCusuri sunt eliminate, nemaie%istnd cicluri de atepare procesor.
Concluzii
Pe l*ng circuitele prezentat sistemele incorporate real time pot avea i alte circuite specifice
incluse n aceali cip sau pe aceeai plac. "cestea sunt cunoscute ca "$8- ("pplication
$pecific 8ntegrated -ircuit). Prezentm n continuare c*teva e%emple:
.. 1OD;1 uri (uniti de modulare, demodulare)
0ig. :..9. 3loc de interfa 8#O tipic
$unt utilizate pentru a modula un semnal digital ntr+un semnal analogic de nalt frecven
(pentru comunicaii !ire less). ;%ist mai multe metode de modulare (amplitudine, frecven,
faz, etc.). "celai dispozitiv este utilizat i pentru demodulare.
/. -OD;-+uri '(&niti de compresie decompresie)
$unt utilizate n general pentru procesarea semnalelor digitale video sau#i audio. &n -OD;-
reduce cantitatea de date ce trebuie transmise, elimin*nd informaia redundant (la transmisie) i
reconstituind semnalul (la recepie)
4. 0iltre
0iltrele sunt utilizate pentru condiionarea semnalelor prin eliminarea zgomotelor i a altor
component perturbatoare. O clas specific de filtre numite "ntialiassing sunt utilizate naintea
conversiei analog numerice pentru a preveni asiasing+ul la aciziia semnalelor de band larg.
:. -ontrolere
"cestea sunt circuite specific pentru controlul motoarelor, i a altor tipuri de elemente de
e%ecuie.

< $emorii
Obiective
Dup aprofundarea leciei studenii vor cunoate
Diferite tipuri de memorii
+ 1emorie procesor
+ 1emorie primar
+ 8nterfaarea memoriei
Introducere
-ele mai multe calculatoare moderne au fost proiectate conform aritecturii de baz
numit Von+@eumann prezentat n figura 6...
0ig. 6... "ritectura Von @eumann
1emoria stoceaz at*t instruciuni c*t i date. @u se poate distinge ntre date i
instruciuni. -P& trebuie s fie direcionat ctre adresa codului instruciunii. 1emoria este
conectat la -P& prin intermediul urmtoarele linii (figura 6./):
.. "drese
/. Date
4. -ontrol
,ntr+o operaie de citire a memoriei -P& ncarc adresa memoriei n magistrala de
adrese. ,n cele mai multe cazuri aceste linii sunt ncrcate ntr+un decodor care selecteaz locaia
de memorie corespunztoare. "poi -P& trimite un semnal de control de citire (read). Data
stocat n aceast locaie este transferat spre procesor via linii de date.
,n operaiile de scriere, dup ce adresa este ncrcat -P& trimite semnal de scriere
urmat de datele ce trebuie scrise n locaia de memorie.
1emoria poate fi clasificat dup mai multe criterii bazate pe localizare, putere
consumat, ci de date stocate., etc. 1emoria poate fi clasificat la nivel de baz astfel:
.. 1emorie procesor (registri)
/. 1emorie intern on+cip
4. 1emorie primar
:. 1emorie cas
6. 1emorie secundar
/emorie procesor =7egistri>
-ele mai multe procesoare au mai muli regitri asociai cu unitatea aritmetic i logic
("A&). "cetia stoceaz operanzii i rezultatele instruciunilor. 5atele de transfer de date sunt
foarte rapide fr s fie necesare cicluri adiionale de ceas. @umrul regitrilor variaz de la
procesor la procesor. -u c*t sunt mai muli cu at*t crete viteza de e%ecuie a instruciunilor. Dar
comple%itatea aritecturii limiteaz cantitatea de memorie a procesorului.
/emorie intern* on'c!ip
,n unele procesoare poate e%ista un bloc de memorie. "cestea pot fi tratate n acelai
mod ca o memorie e%tern. -u toate astea este foarte rapid.
/emorie primar*
0ig. 6./. 8nterfaarea memoriei
"ceasta este una care este situat n afara -P&. Poate fi situat n acelai -B8P cu -P&.
"ceste memorii pot fi statice sau dinamice.
/emoria cac!e
"ceasta este situat ntre procesor i memoria primar. $e comport ca un tampon pentru
instruciunile sau datele pe care procesorul le anticipeaz. Pot fi mai multe niveluri de memorie
cae.
/emorie secundar*
"cestea sunt tratate ca dispozitive de intrare#ieire. $unt cele mai ieftine dar i cele mai
lente dispozitive de stocare conectate prin intermediul unor circuite de interfa intrare#ieire.
$unt memorii optice sau magnetice precum Bard disE, -D 5om, etc. "ceste memorii pot fi
clasificate n memorii volatile i memorii nevolatile.
/emorie #olatil* + este memoria al crei coninut este ters c*nt circuitul de alimentare
este ntrerupt. $5"1 (semiconductor random acess) fac parte din aceast categorie.
/emorie ne#olatil* ' memoriile nu sunt afectate ciar dac alimentarea este ntrerupt.
1emoriile magnetice (Bard DisE), 1emoriile optice (-D5O1), memoriile de tip 5O1 (read
onl> memor>) fac parte din acest tip de memorii.
Stocarea datelor
O memorie de m cuvinte poate stoca m%n date: m cuvinte de n bii. &n cuv*nt este
localizat la o adres, prin urmare pentru a adresa m cuvinte sunt necesare un numr de semnale
de intrare de adrese &Glog
5
=m> sau E linii de adrese pot acesa mG5
&
cuvinte.
De e%emplu: o memorie de :9]=%7
+ poate stoca 4/D=7 de bii
+ ./ semnale de intrare de adres
+ 7 semnale de intrare#ieire de date
)ccesarea memoriei
Aocaia memoriei poate fi accesat prin plasarea adresei pe liniile de adrese. Ainiile de
control read#!rite selecteaz operaia (citire scriere).&nele dispozitive de memorare sunt
dispozitive multiport astfel nc*t pot fi accesate simultan mai multe locaii de memorie.
Caracteristicile memoriei
-aracteristicile unei memorii tipice sunt urmtoarele:
0ig. 6.4. 5egitri interni
0ig. 6.:.2ablou de date
+ -apacitatea de stocare: numrul de bii#b>tes sau cuvinte care pot fi stocate
+ 2impul de acces la memorie (timp de citire sau timp de scriere): c*t timp este
necesar pentru ca memoria s depun datele pe liniile de date dup ce
memoria a fost adresat sau c*t de rapid poate stoca datele depuse pe liniile ei
de date.
+ Puterea consumat i nivelul de tensiune: Puterea consumat este un factor
foarte important pentru sistemele incorporate. ;ste necesar ca puterea
consumat s fie c*t mai mic iar capacitatea respectiv gradul de comprimare
cat mai mare. Din considerente de disipare a puterii dimensiunea memoriei i
capacitatea de stocare sunt corelate cu puterea consumat.
1emoriile utilizate n sistemele incorporate au dou caracteristici specifice:
+ capacitate de scriere
+ randamentul stocrii
-apacitatea de scriere ' este modul i viteza cu care aceast memorie poate fi scris
Domeniul capacitii scriere
+ cea mai bun: procesorul scrie n memorie simplu i rapid (e%. memoria
5"1)
+ mediu: procesorul scrie n memorie dar lent (e%: 0A"$B, ;;P5O1 '
ellectricall> erasable and programmable read onl> memor>)
+ Cos : sunt necesare ecipamente speciale programabile pentru a scrie n
memorie (;P5O1, O2P 5O1 ' one time programmable read onl> memor>)
+ cea mai slab: biii sunt stocai numai la fabricare (e%. 1asE+programmed
5O1)
5andamentul (permanena) stocrii ' reprezint abilitatea de a pstra biii stocai.
Domeniile de randament al stocrii sunt:
+ cel mai ridicat: nu se pierd niciodat bii (e%. masE+programmed 5O1)
+ mediu: pstreaz biii zile, luni sau ciar ani dup ce sursa de alimentare a
memoriei a fost ntrerupt.
+ Cos: pstreaz biii c*t timp este asigurat alimentarea memoriei (e%. 5O1)
+ cel mai Cos: ncepe s piard biii imediat dup ce a fost scris (D5"1)
1emoria nevolatil este cea care menine datele dup ce alimentarea a fost ntrerupt i
este reprezentar de cele din domeniul cel mai ridicat i mediu.
Tipuri de memorii comune
7:/ =7ead :nl% /emor%>
"ceasta este o memorie nevolatil. Pot fi numai citite nu i scrise de ctre microprocesor
n cadrul unui sistem incorporat. ,n mod normal acestea sunt scrise (programate) naunte de
inserarea n sistemul incorporat. $unt utilizate pentru:
+ stocarea programelor soft!are pentru procesoarelor de uz general
+ stocarea constantelor necesare sistemului
+ implementarea circuitelor combinaionale
$pre e%emplificare n figura 6.D. este prezentat structura unei memorii 5O1. Ainiile orizontale
reprezint cuvintele iar pe vertical sunt liniile de ieire date, linii de date care sunt conectate n
ciclu. Dac adresa de intrare este de e%emplu 9.9 decodificatorul pune pe linia a doua de cuvinte
valoarea .. Ainiile de date a4 i a. sunt puse pe . deoarece aici este setat cone%iune. " doua
linie de cuvinte nu este conectata cu liniile d edate a/ si a9. De aceea valoarea de iesire este
.9.9
0ig. 6.D.
Implementarea func$iilor combina$ionale
Orice circuit combinaional de n funcii i E variabile poate fi realizat cu 5
&
n 5O1.
8ntrrile circuitului combinaional sunt adrese ale locaiilor 5O1. 8eirile reprezint cuvinte
stocate n memorie la locaiile respective.
0ig. 6.]. 2abela combinationala

7:/ cu masc* programabil*
-one%iunile sunt programate din fabricaie i sunt un set de mti? pot fi scrise o singur
dat (la fabricare) dar stoceaz date pentru totdeauna. $unt n mod uzual utilizate pentru
proiectarea formei finale a sistemelor mari.
:<P 7:/ =:net'time programmable 7:/>
-one%iunile pot fi programate dup fabricaie de ctre utilizator? acesta furnizeaz fiierul cu
coninutul dorit al memoriei 5O1. ,nscrierea se face printr+un dispozitiv special numit
XprogramatorO de 5O1. 0iecare cone%iune programabil este ars. Programatorul de 5O1 arde
fuzibilele acolo unde nu e%ist cone%iuni. "u urmtoarele caracteristici:
+ abiliti de scriere foarte sczute: se pot nscrie o singur dat i necesit un
programator
+ permanen ridicat a informaiei stocate: biii nu se scimb dect dac se
face reconectarea la programator i se ard noi fuzibile
+ utilizare uzual n produsul final: ieftine, greu de modificat din greaeal
;P5O1 (;rasable Programmable 5O1)
"ceasta este cunoscut ca read onlz memor> reprogramabil. -omponenta programabil este un
tranzistor 1O$. "cest tranzistor are o poart flotant nconCurat de izolator. $arcin negativ
Microcontrolerul PIC16F84
Introducere
CISC, RISC
Aplicaii
Clock -ul/instruciune
Pipelining
Semnificaia pinilor
2.1 enerator-oscilator de ceas
2.2 Reset
2.! "nitatea de procesare central#
2.$ Porturi
2.% &rgani'area memoriei
2.( )ntreruperi
2.* +imer-ul li,er +-R&
2.. -emoria de date //PR&-
Introducere
PIC16F84 aparine unei clase de microcontrolere de . ,ii cu ar0itectur# RISC. Structura
lui general# este ar#tat# 1n sc0ia urm#toare repre'ent2nd ,locurile de ,a'#.
Memoria program 345AS67-pentru memorarea unui program scris.
Pentru c# memoria ce este f#cut# 1n te0nologia 45AS6 poate fi programat#
8i 8tears# mai mult dec2t odat#, aceasta face microcontrolerul potri9it
pentru de'9oltarea de component#.
EEPROM-memorie de date ce tre,uie s# fie sal9ate c2nd nu mai este alimentare.
/ste 1n mod u'ual folosit# pentru memorarea de date importante ce nu tre,uie pierdute
dac# sursa de alimentare se 1ntrerupe dintr-o dat#. :e e;emplu, o astfel de dat# este o
temperatur# presta,ilit# 1n regulatoarele de temperatur#. :ac# 1n timpul 1ntreruperii
aliment#rii aceast# dat# se pierde, 9a tre,ui s# facem a<ustarea 1nc# o dat# la re9enirea
aliment#rii. Astfel componenta noastr# pierde 1n pri9ina auto-meninerii.
RAM-memorie de date folosit# de un program 1n timpul e;ecut#rii sale.
)n RA- sunt memorate toate re'ultatele intermediare sau datele temporare ce nu sunt
cruciale la 1ntreruperea sursei de alimentare.
PORTU A !i PORTU " sunt cone;iuni fi'ice 1ntre microcontroler 8i lumea de afar#. Portul
A are % pini, iar portul = are . pini.
TIMER-U I"ER #FREE-RU$% este un registru de . ,ii 1n interiorul microcontrolerului ce
lucrea'# independent de program. 5a fiecare al patrulea impuls de ceas al
oscilatorului 18i 1ncrementea'# 9aloarea lui p2n# ce atinge ma;imul 32%%7, 8i
apoi 1ncepe s# numere tot din nou de la 'ero. :up# cum 8tim timpul e;act
dintre fiecare dou# increment#ri ale coninutului timer-ului, poate fi folosit
pentru m#surarea timpului ce este foarte util la unele componente.
U$ITATEA &E PROCE'ARE CE$TRA( are rolul unui element de conecti9itate 1ntre
celelalte ,locuri ale microcontrolerului. Coordonea'# lucrul altor ,locuri 8i e;ecut#
programul utili'atorului.
CI'C) RI'C
S-a spus de<a c# PIC1(.$ are o ar0itectur# RISC. Acest termen este adeseori g#sit 1n
literatura despre calculatoare, 8i are ne9oie s# fie e;plicat aici mai 1n detaliu. Ar0itectura
6ar9ard este un concept mai nou dec2t 9on->eumann. S-a n#scut din ne9oia de m#rire a
9ite'ei microcontrolerului. )n ar0itectura 6ar9ard, ,us-ul de date 8i ,us-ul de adrese sunt
separate. Astfel este posi,il un mare de,it de date prin unitatea de procesare central#, 8i
,ine1neles, o 9ite'# mai mare de lucru. Separarea programului de memoria de date face
posi,il ca mai departe instruciunile s# nu tre,uiasc# s# fie cu9inte de . ,ii. PIC1(4.$
folose8te 1$ ,ii pentru instruciuni ceea ce permite ca toate instruciunile s# fie instruciuni
dintr-un singur cu92nt. /ste de asemenea tipic pentru ar0itectura 6ar9ard s# ai,# mai
puine instruciuni dec2t 9on->e?mann 8i s# ai,# instruciuni e;ecutate u'ual intr-un ciclu.
-icrocontrolerele cu ar0itectur# 6ar9ard sunt de asemenea numite @microcontrolere RISC@.
RISC 1nseamn# Reduced Instruction Set Computer. -icrocontrolerele cu ar0itectura
9on->e?mann sunt numite @microcontrolere CISC@. +itlul CISC 1nseamn# Comple;
Instruction Set Computer.
Pentru c# PIC1(4.$ este un microcontroler RISC, aceasta 1nseamn# c# are un set redus de
instruciuni, mai precis !% de instruciuni 3de e;. microcontrolerele I>+/5 8i -otorola au
peste 1AA de instruciuni7. +oate aceste instruciuni sunt e;ecutate 1ntr-un ciclu cu e;cepia
instruciunilor <ump 8i ,ranc0. Conform cu ceea ce spune constructorul, PIC1(4.$ a<unge la
re'ultate de 2B1 1n compresia cod 8i $B1 1n 9ite'# 1n comparaie cu alte microcontrolere de .
,ii din clasa sa.
Aplica*ii
PIC1(4.$ se potri9e8te perfect 1n multe folosine, de la industriile auto 8i aplicaiile de
control casnice la instrumentele industriale, sen'ori la distan#, m2nere electrice de u8i 8i
dispo'iti9ele de securitate. /ste de asemenea ideal pentru cardurile smart ca 8i pentru
aparatele alimentate de ,aterie din cau'a consumului lui mic.
-emoria //PR&- face mai u8oar# aplicarea microcontrolerelor la aparate unde se cere
memorarea permanent# a diferitor parametri 3coduri pentru transmi#toare, 9ite'a
motorului, frec9enele receptorului, etc.7. Costul sc#'ut, consumul sc#'ut, m2nuirea u8oar#
8i fle;i,ilitatea fac PIC1(4.$ aplica,il c0iar 8i 1n domenii unde microcontrolerele nu au fost
pre9#'ute 1nainte 3e;empleB funcii de timer, 1nlocuirea interfeei 1n sistemele mari,
aplicaiile coprocesor, etc.7.
Programa,ilitatea sistemului acestui cip 31mpreun# cu folosirea a doar doi pini 1n transferul
de date7 face posi,il# fle;i,ilitatea produsului, dup# ce asam,larea 8i testarea au fost
terminate. Aceast# capa,ilitate poate fi folosit# pentru a crea producie pe linie de
asam,lare, de a 1nmaga'ina date de cali,rare disponi,ile doar dup# testarea final#, sau
poate fi folosit pentru a 1m,un#t#i programele la produsele finite.
Cloc+-ul ,ciclul in-truc*iune
Clock-ul sau ceasul este starter-ul principal al microcontrolerului, 8i este o,inut dintr-o
component# de memorie e;tern# numit# @oscilator@. :ac# ar fi s# compar#m un
microcontroler cu un ceas de timp, @clock-ul@ nostru ar fi un tic#it pe care l-am au'i de la
ceasul de timp. )n acest ca', oscilatorul ar putea fi comparat cu arcul ce este r#sucit astfel
ca ceasul de timp s# mearg#. :e asemenea, fora folosit# pentru a 1ntoarce ceasul poate fi
comparat# cu o surs# electric#.
Clock-ul de la oscilator intr# 1ntr-un microcontroler prin pinul &SC1 unde circuitul intern al
microcontrolerului di9ide clock-ul 1n $ clock-uri egale C1, C2, C! 8i C$ ce nu se suprapun.
Aceste $ clock-uri constituie un ciclu de o singur# instruciune 3numit de asemenea ciclu
ma8in#7 1n timpul c#reia instruciunea este e;ecutat#.
/;ecutarea instruciunii 1ncepe prin apelarea unei instruciuni care este urm#toarea 1n linie.
Instruciunea este apelat# din memoria program la fiecare C1 8i este scris# 1n registrul de
instruciuni la C$. :ecodarea 8i e;ecutarea instruciunii sunt f#cute 1ntre urm#toarele cicluri
C1 8i C$. )n urm#toarea diagram# putem 9edea relaia dintre ciclul instruciunii 8i clock-ul
oscilatorului 3&SC17 ca 8i aceea a clock-urilor interne C1-C$. Contorul de program 3PC7
reine informaia despre adresa urm#toarei instruciuni.
Pipelining
Ciclul instruciune const# din ciclurile C1, C2, C! 8i C$. Ciclurile de instruciuni de apelare 8i
e;ecutare sunt conectate 1ntr-un a8a fel 1nc2t pentru a face o apelare, este necesar un ciclu
cu o instruciune, 8i mai este ne9oie de 1nc# unul pentru decodare 8i e;ecutare. +otu8i,
datorit# pipelining-ului 3folosirea unei pipeline-conduct#, 8i este aducerea unei instruciuni
din memorie 1n timp ce se e;ecut# alta7, fiecare instruciune este e;ecutat# efecti9 1ntr-un
singur ciclu. :ac# instruciunea cau'ea'# o sc0im,are 1n contorul programului, 8i PC-ul nu
direcionea'# spre urm#toarea ci spre alte adrese 3poate fi ca'ul cu su,programele <umps
sau calling7, 2 cicluri sunt necesare pentru e;ecutarea unei instruciuni. Aceasta este pentru
c# instruciunea tre,uie procesat# din nou, dar de data aceasta de la adresa corect#. Ciclul
1ncepe cu clock-ul C1, prin scrierea 1n registrul instruction register 3IR7. :ecodarea 8i
e;ecutarea 1ncepe cu clock-urile C2, C! 8i C$.
T.C/ cite8te instruciunea -&D5E %%0 3nu are importan# pentru noi ce instruciune a fost
e;ecutat#, ce e;plic# de ce nu este un dreptung0i desenat 1n partea de <os7.
TC.I e;ecut# instruciunea -&D5E %%0 8i cite8te -&DE4 P&R+=.
TC.0 e;ecut# -&DE4 P&R+= 8i cite8te CA55 S"=F1.
TC.1 e;ecut# o apelare a su,programului CA55 S"=F1, 8i cite8te instruciunea =S4 P&R+A,
=I+!. Pentru c# instruciunea aceasta nu este aceea de care a9em ne9oie, sau nu este
prima instruciune a su,programului S"=F1 a c#rei e;ecuie este urm#toarea 1n ordine,
instruciunea tre,uie citit# din nou. Acesta este un ,un e;emplu a unei instruciuni a92nd
ne9oie de mai mult de un ciclu.
TC.4 ciclul instruciunii este total folosit pentru citirea primei instruciuni din su,program la
adresa S"=F1.
TC.2 e;ecut# prima instruciune din su,program S"=F1 8i cite8te urm#toarea.
'emni3ica*ia pinilor
PIC1(4.$ are un num#r total de 1. pini. Cel mai adesea se g#se8te 1ntr-o capsul# de tip
:IP1. dar se poate g#si de asemenea 8i 1ntr-o capsul# S-: care este mai mic# ca cea :IP.
:IP este prescurtarea de la :ual In Package. S-: este prescurtarea de la Surface -ount
:e9ices suger2nd c# g#urile pentru pini unde s# intre ace8tia, nu sunt necesare 1n lipirea
acestui tip de component#.
Pinii microcontrolerului PIC1(4.$ au urm#toarea semnificaieB
Pin nr.1 RA0 Al doilea pin la portul A. >u are funcie adiional#.
Pin nr.2 RA1 Al treilea pin la portul A. >u are funcie adiional#.
Pin nr.! RA4 Al patrulea pin la portul A. +&CG1 care funcionea'# ca timer se g#se8te de
asemenea la acest pin.
Pin nr.$ MCR Resetea'# intrarea 8i tensiunea de programare Dpp a microcontrolerului.
Pin nr.% 4'' Alimentare, mas#.
Pin nr.( R"/ Pin de 'ero la portul =. Intrarea )ntrerupere este o funcie adiional#.
Pin nr.* R"1 Primul pin la portul =. >u are funcie adiional#.
Pin nr.. R"0 Al doilea pin la portul =. >u are funcie adiional#.
Pin nr.H R"1 Al treilea pin la portul =. >u are funcie adiional#.
Pin nr.1A R"4 Al patrulea pin la portul =. >u are funcie adiional#.
Pin nr.11 R"2 Al cincilea pin la portul =. >u are funcie adiional#.
Pin nr.12 R"6 Al 8aselea pin la portul =. 5inia de IClockI 1n mod programare.
Pin nr.1! R"5 Al 8aptelea pin la portul =. 5inia I:ataI 1n mod programare.
Pin nr.1$ 4dd Polul po'iti9 al sursei.
Pin nr.1% O'C0 Pin desemnat pentru conectarea la un oscilator.
Pin nr.1( O'C1 Pin desemnat pentru conectarea la un oscilator.
Pin nr.1* RA0 Al doilea pin la portul A. >u are funcie adiional#.
Pin nr.1. RA1 Primul pin la portul A. >u are funcie adiional#.
061 7enerator de cea- 8 o-cilator
Circuitul oscilator este folosit pentru a da microcontrolerului un ceas-clock. Ceasul este
necesar pentru ca microcontrolerul s# e;ecute programul sau instruciunile din program.
+ipuri de oscilatoare
PIC1(4.$ poate lucra cu patru configuraii diferite de oscilator. Pentru c# configuraiile cu
oscilator cu cristal 8i re'istor-condensator 3RC7 sunt cele utili'ate cel mai frec9ent, doar pe
ele le 9om meniona aici. +ipul de microcontroler cu oscilator cu cristal este desemnat ca
J+, iar microcontrolerul cu perec0ea re'istor-condensator are desemnarea RC. Aceasta este
important pentru c# tre,uie s# numii tipul de oscilator c2nd cump#rai un microcontroler.
&scilatorul J+
&scilatorul cu cristal se afl# intr-o
carcas# metalic# cu doi pini pe care este
1nscris# frec9ena la care cristalul
oscilea'#. -ai este necesar c2te un
condensator ceramic de !Ap4 cu cel#lalt
cap#t la mas# de a fi conectai la fiecare
pin.
&scilatorul 8i condensatorii pot fi
1ncapsulai 1mpreun# 1ntr-o carcas# cu
trei pini. "n asemenea element se
nume8te re'onator ceramic 8i este
repre'entat 1n sc0eme ca cel de mai <os.
Pinii centrali ai elementului sunt masa,
iar pinii terminali sunt conectai la pinii
&SC1 8i &SC2 ai microcontrolerului.
C2nd se proiectea'# un aparat, regula
este s# plasai oscilatorul c2t mai
aproape de microcontroler, pentru a
elimina orice interferen# de pe liniile pe
care microcontrolerul prime8te tactul de
ceas.


&scilatorul RC
)n aplicaiile unde nu este ne9oie de o mare preci'ie de timp, oscilatorul RC permite
economii adiionale la cump#rare. 4ec9ena de re'onan# a oscilatorului RC depinde de
9aloarea tensiunii de alimentare, re'istorul R, condensatorul C 8i temperatura de lucru.
+re,uie de menionat c# frec9ena de re'onan# este de asemenea influenat# de 9ariaiile
normale ale parametrilor de proces, de tolerana e;tern# a componentelor R 8i C, etc.
:iagrama de mai sus arat# cum este conectat oscilatorul RC la PIC1(4.$. 5a 9aloarea
re'istorului mai mic# 2.2k, oscilatorul poate de9eni insta,il, sau oscilaia se poate c0iar
opri. 5a 9alori mari a lui R 3e;.1-7 oscilatorul de9ine foarte sensi,il la 'gomot 8i ume'eal#.
Se recomand# ca 9aloarea re'istorului R s# fie 1ntre ! 8i 1AAk. C0iar dac# oscilatorul 9a
lucra f#r# un condensator e;tern 3CKAp47, tre,uie totu8i folosit un condensator de peste
2Ap4 pentru 'gomot 8i sta,ilitate. Indiferent de ce oscilator este folosit, pentru a o,ine un
ceas la care s# funcione'e microcontrolerul, ceasul tre,uie di9i'at la $. "n ceas al
oscilatorului di9i'at cu $ se poate o,ine la pinul &SC2/C5G&"+, 8i poate fi folosit pentru
testarea sau sincroni'area altor circuite logice.
:up# alimentare, oscilatorul 1ncepe s# oscile'e. &scilaia la 1nceput are o perioad# 8i o
amplitudine insta,ile, dar dup# un timp de9in sta,ili'ate.
Pentru a pre9eni ca un asemenea ceas ine;act s# influene'e performanele
microcontrolerului, tre,uie s# inem microcontrolerul 1n starea reset pe durata sta,ili'#rii
ceasului oscilatorului. :iagrama de mai sus arat# o form# tipic# de semnal pe care
microcontrolerul o prime8te de la oscilatorul cu cuar dup# alimentare.
060 Re-et-ul
Resetul este folosit pentru a pune microcontrolerul 1ntr-o condiie Icunoscut#I. Aceasta
1nseamn# practic c# microcontrolerul poate s# se comporte incorect 1n unele condiii
nedorite. Pentru a continua s# funcione'e corect tre,uie resetat, 1nsemn2nd c# toi registrii
9or fi pu8i 1ntr-o stare de start. Resetul nu este folosit numai c2nd microcontrolerul nu se
comport# cum 9rem noi, dar poate de asemenea s# fie folosit c2nd se 1ncearc# un monta<
ca o 1ntrerupere 1ntr-un program de e;ecuie sau c2nd se preg#te8te un microcontroler de a
citi un program.
Pentru a pre9eni a<ungerea unui 'ero logic la pinul
-C5R accidental 3linia de deasupra 1nseamn# c#
resetul este acti9at de un 'ero logic7, -C5R tre,uie
s# fie conectat printr-un re'istor la polul po'iti9 al
sursei de alimentare. Re'istorul tre,uie s# fie 1ntre
% 8i 1Ak. Acest re'istor a c#rui funcie este de a
menine o anumit# linie la starea logic# unu ca o
pre9enire, se nume8te o scoatere-pull up.


-icrocontrolerul PIC1(4.$ are c2te9a surse de resetB
a7 Reset la alimentare, P&R 3Po?er-&n Reset7
,7 Reset 1n timpul lucrului o,i8nuit prin aducerea unui 'ero logic la pinul -C5R al
microcontrolerului.
c7 Reset 1n timpul regimului S5//P
d7 Reset la dep#8irea timer-ului ?atc0dog 3E:+7
e7 Reset 1n timpul dep#8irii E:+ 1n timpul regimului S5//P.
Cele mai importante resurse de reset sunt a7 8i ,7. Prima are loc de fiecare dat# c2nd este
alimentat microcontrolerul 8i ser9e8te la aducerea toturor regi8trilor la starea iniial# a
po'iiei de start. A doua este pentru a aduce un 'ero logic la pinul -C5R 1n timpul operaiei
normale a microcontrolerului. /ste des folosit# 1n de'9oltarea de programe.
)n timpul unui reset, locaiile de memorie RA- nu sunt resetate. /le sunt necunoscute la
alimentare 8i nu sunt sc0im,ate la nici un reset. Spre deose,ire de acestea, regi8trii S4R
sunt resetai la o stare iniial# a po'iiei de start. "nul din cele mai importante efecte ale
resetului este setarea contorului de program 3PC7 la 'ero 3AAAA07, ceea ce permite
programului s# 1nceap# e;ecutarea de la prima instruciune scris#.
Re-etul la -c9derea ten-iunii de alimentare dincolo de limita
permi-i:il9 #"ro;n-out Re-et%
Impulsul pentru resetare 1n timpul cre8terii tensiunii este generat de microcontrolerul 1nsu8i
c2nd detectea'# o cre8tere 1n tensiunea Ddd 31n domeniul de la 1.2D la 1..D7. Acest impuls
durea'# *2 ms ceea ce este un timp suficient pentru oscilator ca s# se sta,ili'e'e. Aceste
*2 ms sunt asigurate de un timer intern PER+ care are oscilatorul lui RC. -icrocontrolerul
este 1n modul reset c2t timp PER+ este acti9. +otu8i, c2nd monta<ul funcionea'#, pro,leme
apar c2nd sursa nu scade la 'ero ci c2nd scade mai <os de limita ce garantea'# funcionarea
corect# a microcontrolerului. Acesta este un ca' real din practic#, 1n special 1n mediile
industriale unde pertur,aiile 8i insta,ilit#ile sursei de alimentare sunt ce9a foarte curent.
Pentru a re'ol9a aceast# pro,lem# tre,uie s# ne asigur#m c# microcontrolerul este 1ntr-o
stare de reset de fiecare dat# c2nd tensiunea sursei scade su, limita admis#.
:ac#, conform cu specificaiile electrice, circuitul intern de resetare a microcontrolerului nu
poate satisface aceste cerine, se pot folosi componente electronice speciale ce sunt
capa,ile s# genere'e semnalul de reset dorit. )n afar# de aceast# funcie, ele pot funciona
pentru supra9eg0erea tensiunii de alimentare. :ac# tensiunea scade mai <os de ni9elul
specificat, un 'ero logic 9a apare la pinul -C5R ce ine microcontrolerul 1n starea de reset
p2n# ce tensiunea nu este 1n limitele ce garantea'# funcionarea corect#.
061 Unitatea de Proce-are Central9
"nitatea de procesare central# 3CP"7 este creierul microcontrolerului. Aceast# parte este
responsa,il# cu g#sirea 8i aducerea 3citirea din memorie7-fetc0ing instruciunii corecte ce
tre,uie e;ecutat#, cu decodarea acelei instruciuni, 8i 1n final cu e;ecutarea ei.
"nitatea de procesare central# conectea'# toate p#rile microcontrolerului 1ntr-un 1ntreg.
:esigur, funcia sa cea mai important# este s# decode'e instruciunile de program. C2nd
programatorul scrie un program, instruciunile au o form# clar# ca -&D5E A;2A. +otu8i,
pentru ca microcontrolerul s# 1neleag# aceasta, aceast# form# de IscrisoareI a unei
instruciuni tre,uie tradus# 1ntr-o serie de 'ero-uri 8i unu-uri ce se nume8te IopcodeI.
Aceast# tran'iie de la o scrisoare la o form# ,inar# este f#cut# de translatori ca translatorul
assem,ler 3cunoscut ca 8i assem,ler sau asam,lor7. Instruciunea astfel adus#-fetc0ed din
memoria programului tre,uie s# fie decodat# de unitatea de procesare central#. Putem apoi
selecta din ta,ela tuturor instruciunilor un set de aciuni ce e;ecut# o sarcin# desemnat#
definit# de instruciune. Pentru c# instruciunile pot s# conin# 1n ele asign#ri ce cer diferite
transferuri de date dintr-o memorie 1n alta, din memorie la porturi, sau alte calcule, CP"
tre,uie s# fie conectat# cu toate p#rile microcontrolerului. Aceasta este posi,il printr-un
,us de date 8i un ,us de adrese.
"nitatea de 5ogic# Aritmetic# 3A5"7
"nitatea de logic# aritmetic# este responsa,il# de e;ecutarea operaiilor ca adunarea,
sc#derea, mutarea 3la st2nga sau la dreapta 1ntr-un registru7 8i de operaiile logice.
-utarea datelor 1ntr-un registru se mai nume8te Is0iftingI- transferare. PIC1(4.$ conine o
unitate logic# aritmetic# de . ,ii 8i regi8tri de lucru de . ,ii.
)n instruciunile cu doi operan'i, 1n mod o,i8nuit un operand este 1n registrul de lucru
3registrul E7, iar cel#lalt este unul din regi8tri sau o constant#. Prin operand 1nelegem
coninutul asupra c#ruia se fac unele operaii, iar un registru este oricare din regi8trii PR
sau S4R. PR este o prescurtare de la Ieneral Purposes RegistersI-Regi8tri cu Scopuri
enerale, iar S4R de la ISpecial 4unction RegistersI-Regi8tri cu 4uncie Special#. )n
instruciunile cu un operand, un operand este fie registrul E fie unul din regi8tri. Pe l2ng#
operaiile aritmetice 8i logice, A5" controlea'# ,iii de stare 3,ii g#sii 1n registrul S+A+"S7.
/;ecutarea unor instruciuni afectea'# ,iii de stare, de care depinde re'ultatul 1nsu8i.
:epin'2nd de ce instruciune este e;ecutat#, A5" poate afecta 9alorile ,iilor CarrL 3C7,
:igit CarrL 3:C7, 8i Mero 3M7 1n registrul S+A+"S.

Registru S+A+"S
bit 0 C 3CarrL7 +ransfer
=it care este afectat de operaiile de adunare, sc#dere 8i transfer.
1K transferul produs din ,itul cel mai 1nalt al re'ultatului
AK transferul nu s-a produs
=itul C este afectat de instruciunile A::E4, A::5E, S"=5E, S"=E4.
bit 1 &C 3:igit CarrL7 :C +ransfer
=it afectat de operaiile de adunare, sc#dere 8i transfer. Spre deose,ire de ,itul C, acest ,it
repre'int# transferul din al patrulea loc re'ultat. /ste setat de adunare c2nd se 1nt2mpl# un
transport de la ,itul ! la ,itul $, sau de sc#dere c2nd se 1nt2mpl# 1mprumut de la ,itul $ la
,itul !, sau de transfer 1n am,ele direcii.
1K transfer produs la al patrulea ,it conform cu ordinea, al re'ultatului.
AK transferul nu s-a produs
=itul :C este afectat de instruciunile A::E4, A::5E, S"=5E, S"=E4.
bit 2 < 3Mero ,it7 Indicarea unui re'ultat 'ero.
Acest ,it este setat c2nd re'ultatul unei operaii aritmetice sau logice e;ecutate este 'ero.
1K re'ultatul egal cu 'ero
AK re'ultatul nu este egal cu 'ero
bit 3 P& 3Po?er-do?n ,it7
=it ce este setat c2nd microcontrolerul este alimentat atunci c2nd 1ncepe s# funcione'e,
dup# fiecare reset o,i8nuit 8i dup# e;ecutarea instruciunii C5RE:+. Instruciunea S5//P 1l
resetea'# c2nd microcontrolerul intr# 1n regimul consum/u'a< redus. Setarea lui repetat#
este posi,il# prin reset sau prin pornirea sau oprirea sursei. Starea poate fi triggerat# de
asemenea de un semnal la pinul R=A/I>+, de o sc0im,are la portul R=, de terminarea
scrierii 1n //PR&--ul de date intern, 8i de ?atc0dog de asemenea.
1K dup# ce sursa a fost pornit#
AK e;ecutarea instruciunii S5//P
bit 4 TO +ime-out N dep#8irea-o9erflo? ?atc0dog-ului.
=itul este setat dup# pornirea sursei 8i e;ecutarea instruciunilor C5RE:+ 8i S5//P. =itul
este resetat c2nd ?atc0dog-ul a<unge la sf2r8it semnal2nd c# ce9a nu este 1n ordine.
1K dep#8irea-o9eflo? nu s-a produs
AK dep#8irea-o9erflo? s-a produs
bit6:5 RP1=RP/ 3Register =ank Select ,its-=ii de Selectare a =ancului de Regi8tri7
Ace8ti doi ,ii sunt partea superioar# a adresei la adresarea direct#. Pentru c# instruciunile
ce adresea'# memoria direct au doar 8apte ,ii, ei au ne9oie doar de 1nc# un ,it pentru a
adresa cei 2%( ,Ltes adic# c2i are PIC1(4.$. =itul RP1 nu este folosit, dar este l#sat
pentru e;pansiuni 9iitoare ale acestui microcntroler.
A1K primul ,anc
AAK ,ancul 'ero
bit 7 IRP 3Register =ank Select ,it-=it de Selectare a =ancului de Regi8tri7
=it al c#rui rol este de a fi al optulea ,it la adresarea indirect# a RA--ului intern.
1K ,ancul 2 8i !
AK ,ancul A 8i 1 3de la AA0 la 4407
Registrul S+A+"S conine starea aritmetic# A5" 3C, :C, M7, starea R/S/+ 3+&, P:7 8i ,iii
pentru selectarea ,ancului de memorie 3IRP, RP1, RPA7. Consider2nd c# selecia ,ancului
de memorie este controlat# prin acest registru, el tre,uie s# fie pre'ent 1n fiecare ,anc.
=ancul de memorie se 9a discuta mai 1n detaliu 1n capitolul &rgani'area memoriei. Registrul
S+A+"S poate fi o destinaie pentru orice instruciune, cu oricare alt registru. :ac# registrul
S+A+"S este o destinaie pentru instruciunile ce afectea'# ,iii M, :C or C, atunci scrierea
1n ace8ti trei ,ii nu este posi,il#.
Registrul &P+I&>
bit 0:2 P'/) P'1) P'0 3Prescaler Rate Select ,it-=it Selecie Rat# Prescaler7
Ace8ti trei ,ii definesc ,itul de selecie a ratei prescalerului. Ce este un prescaler 8i cum
pot afecta ace8ti ,ii funcionarea unui microcontroler 9a fi e;plicat 1n seciunea depre
+-R&.
bit 3 P'A 3Prescaler Assignment ,it-=it de Asignare Prescaler7
=it ce asignea'# prescalerul 1ntre +-R& 8i ?atc0dog.
1K prescalerul este asignat ?atc0dogului
AK prescalerul este asignat timer-ului li,er 3ree-run7 +-R&
bit 4 T/'E 3+-RA Source /dge Select ,it-=it Selecie a 4rontului Sursei +-RA7
:ac# este permis de a se triggera +-R& prin impulsurile de la pinul RA$/+ACGI, acest ,it
determin# dac# aceasta 9a fi la frontul descresc#tor sau cresc#tor al unui semnal.
1K front cresc#tor
AK front descresc#tor
bit 5 TOC' 3+-RA Clock Source Select ,it-=it Selecie Surs# Ceas +-RA7
Acest pin permite timerului li,er 3free-run7 s# incremente'e starea lui fie de la oscilatorul
intern la fiecare O a ceasului oscilatorului, fie prin impulsuri e;terne la pinul RA$/+ACGI.
1K impulsuri e;terne
AK ceas intern 1/$
bit 6 I$TE&7 3Interrupt /dge Select ,it-=it de Selecie a 4rontului )ntrerupere7
:ac# 1ntreruperea este acti9at# este posi,il ca acest ,it s# determine frontul la care o
1ntrerupere 9a fi acti9at# la pinul R=A/I>+.
1K front cresc#tor
AK front descresc#tor
bit 7 R"PU 3P&R+= Pull-up /na,le ,it-=it /na,le-Acti9are Pull-up P&R+=7
Acest ,it porne8te 8i opre8te re'istorii interni Ipull-upI-scoatere la portul =.
1K Re'istori oprire @pull-up@
AK Re'istori pornire @pull-up@
061 Unitatea de Proce-are Central9
"nitatea de procesare central# 3CP"7 este creierul microcontrolerului. Aceast# parte este
responsa,il# cu g#sirea 8i aducerea 3citirea din memorie7-fetc0ing instruciunii corecte ce
tre,uie e;ecutat#, cu decodarea acelei instruciuni, 8i 1n final cu e;ecutarea ei.
"nitatea de procesare central# conectea'# toate p#rile microcontrolerului 1ntr-un 1ntreg.
:esigur, funcia sa cea mai important# este s# decode'e instruciunile de program. C2nd
programatorul scrie un program, instruciunile au o form# clar# ca -&D5E A;2A. +otu8i,
pentru ca microcontrolerul s# 1neleag# aceasta, aceast# form# de IscrisoareI a unei
instruciuni tre,uie tradus# 1ntr-o serie de 'ero-uri 8i unu-uri ce se nume8te IopcodeI.
Aceast# tran'iie de la o scrisoare la o form# ,inar# este f#cut# de translatori ca translatorul
assem,ler 3cunoscut ca 8i assem,ler sau asam,lor7. Instruciunea astfel adus#-fetc0ed din
memoria programului tre,uie s# fie decodat# de unitatea de procesare central#. Putem apoi
selecta din ta,ela tuturor instruciunilor un set de aciuni ce e;ecut# o sarcin# desemnat#
definit# de instruciune. Pentru c# instruciunile pot s# conin# 1n ele asign#ri ce cer diferite
transferuri de date dintr-o memorie 1n alta, din memorie la porturi, sau alte calcule, CP"
tre,uie s# fie conectat# cu toate p#rile microcontrolerului. Aceasta este posi,il printr-un
,us de date 8i un ,us de adrese.
"nitatea de 5ogic# Aritmetic# 3A5"7
"nitatea de logic# aritmetic# este responsa,il# de e;ecutarea operaiilor ca adunarea,
sc#derea, mutarea 3la st2nga sau la dreapta 1ntr-un registru7 8i de operaiile logice.
-utarea datelor 1ntr-un registru se mai nume8te Is0iftingI- transferare. PIC1(4.$ conine o
unitate logic# aritmetic# de . ,ii 8i regi8tri de lucru de . ,ii.
)n instruciunile cu doi operan'i, 1n mod o,i8nuit un operand este 1n registrul de lucru
3registrul E7, iar cel#lalt este unul din regi8tri sau o constant#. Prin operand 1nelegem
coninutul asupra c#ruia se fac unele operaii, iar un registru este oricare din regi8trii PR
sau S4R. PR este o prescurtare de la Ieneral Purposes RegistersI-Regi8tri cu Scopuri
enerale, iar S4R de la ISpecial 4unction RegistersI-Regi8tri cu 4uncie Special#. )n
instruciunile cu un operand, un operand este fie registrul E fie unul din regi8tri. Pe l2ng#
operaiile aritmetice 8i logice, A5" controlea'# ,iii de stare 3,ii g#sii 1n registrul S+A+"S7.
/;ecutarea unor instruciuni afectea'# ,iii de stare, de care depinde re'ultatul 1nsu8i.
:epin'2nd de ce instruciune este e;ecutat#, A5" poate afecta 9alorile ,iilor CarrL 3C7,
:igit CarrL 3:C7, 8i Mero 3M7 1n registrul S+A+"S.

Registru S+A+"S
bit 0 C 3CarrL7 +ransfer
=it care este afectat de operaiile de adunare, sc#dere 8i transfer.
1K transferul produs din ,itul cel mai 1nalt al re'ultatului
AK transferul nu s-a produs
=itul C este afectat de instruciunile A::E4, A::5E, S"=5E, S"=E4.
bit 1 &C 3:igit CarrL7 :C +ransfer
=it afectat de operaiile de adunare, sc#dere 8i transfer. Spre deose,ire de ,itul C, acest ,it
repre'int# transferul din al patrulea loc re'ultat. /ste setat de adunare c2nd se 1nt2mpl# un
transport de la ,itul ! la ,itul $, sau de sc#dere c2nd se 1nt2mpl# 1mprumut de la ,itul $ la
,itul !, sau de transfer 1n am,ele direcii.
1K transfer produs la al patrulea ,it conform cu ordinea, al re'ultatului.
AK transferul nu s-a produs
=itul :C este afectat de instruciunile A::E4, A::5E, S"=5E, S"=E4.
bit 2 < 3Mero ,it7 Indicarea unui re'ultat 'ero.
Acest ,it este setat c2nd re'ultatul unei operaii aritmetice sau logice e;ecutate este 'ero.
1K re'ultatul egal cu 'ero
AK re'ultatul nu este egal cu 'ero
bit 3 P& 3Po?er-do?n ,it7
=it ce este setat c2nd microcontrolerul este alimentat atunci c2nd 1ncepe s# funcione'e,
dup# fiecare reset o,i8nuit 8i dup# e;ecutarea instruciunii C5RE:+. Instruciunea S5//P 1l
resetea'# c2nd microcontrolerul intr# 1n regimul consum/u'a< redus. Setarea lui repetat#
este posi,il# prin reset sau prin pornirea sau oprirea sursei. Starea poate fi triggerat# de
asemenea de un semnal la pinul R=A/I>+, de o sc0im,are la portul R=, de terminarea
scrierii 1n //PR&--ul de date intern, 8i de ?atc0dog de asemenea.
1K dup# ce sursa a fost pornit#
AK e;ecutarea instruciunii S5//P
bit 4 TO +ime-out N dep#8irea-o9erflo? ?atc0dog-ului.
=itul este setat dup# pornirea sursei 8i e;ecutarea instruciunilor C5RE:+ 8i S5//P. =itul
este resetat c2nd ?atc0dog-ul a<unge la sf2r8it semnal2nd c# ce9a nu este 1n ordine.
1K dep#8irea-o9eflo? nu s-a produs
AK dep#8irea-o9erflo? s-a produs
bit6:5 RP1=RP/ 3Register =ank Select ,its-=ii de Selectare a =ancului de Regi8tri7
Ace8ti doi ,ii sunt partea superioar# a adresei la adresarea direct#. Pentru c# instruciunile
ce adresea'# memoria direct au doar 8apte ,ii, ei au ne9oie doar de 1nc# un ,it pentru a
adresa cei 2%( ,Ltes adic# c2i are PIC1(4.$. =itul RP1 nu este folosit, dar este l#sat
pentru e;pansiuni 9iitoare ale acestui microcntroler.
A1K primul ,anc
AAK ,ancul 'ero
bit 7 IRP 3Register =ank Select ,it-=it de Selectare a =ancului de Regi8tri7
=it al c#rui rol este de a fi al optulea ,it la adresarea indirect# a RA--ului intern.
1K ,ancul 2 8i !
AK ,ancul A 8i 1 3de la AA0 la 4407
Registrul S+A+"S conine starea aritmetic# A5" 3C, :C, M7, starea R/S/+ 3+&, P:7 8i ,iii
pentru selectarea ,ancului de memorie 3IRP, RP1, RPA7. Consider2nd c# selecia ,ancului
de memorie este controlat# prin acest registru, el tre,uie s# fie pre'ent 1n fiecare ,anc.
=ancul de memorie se 9a discuta mai 1n detaliu 1n capitolul &rgani'area memoriei. Registrul
S+A+"S poate fi o destinaie pentru orice instruciune, cu oricare alt registru. :ac# registrul
S+A+"S este o destinaie pentru instruciunile ce afectea'# ,iii M, :C or C, atunci scrierea
1n ace8ti trei ,ii nu este posi,il#.
Registrul &P+I&>
bit 0:2 P'/) P'1) P'0 3Prescaler Rate Select ,it-=it Selecie Rat# Prescaler7
Ace8ti trei ,ii definesc ,itul de selecie a ratei prescalerului. Ce este un prescaler 8i cum
pot afecta ace8ti ,ii funcionarea unui microcontroler 9a fi e;plicat 1n seciunea depre
+-R&.
bit 3 P'A 3Prescaler Assignment ,it-=it de Asignare Prescaler7
=it ce asignea'# prescalerul 1ntre +-R& 8i ?atc0dog.
1K prescalerul este asignat ?atc0dogului
AK prescalerul este asignat timer-ului li,er 3ree-run7 +-R&
bit 4 T/'E 3+-RA Source /dge Select ,it-=it Selecie a 4rontului Sursei +-RA7
:ac# este permis de a se triggera +-R& prin impulsurile de la pinul RA$/+ACGI, acest ,it
determin# dac# aceasta 9a fi la frontul descresc#tor sau cresc#tor al unui semnal.
1K front cresc#tor
AK front descresc#tor
bit 5 TOC' 3+-RA Clock Source Select ,it-=it Selecie Surs# Ceas +-RA7
Acest pin permite timerului li,er 3free-run7 s# incremente'e starea lui fie de la oscilatorul
intern la fiecare O a ceasului oscilatorului, fie prin impulsuri e;terne la pinul RA$/+ACGI.
1K impulsuri e;terne
AK ceas intern 1/$
bit 6 I$TE&7 3Interrupt /dge Select ,it-=it de Selecie a 4rontului )ntrerupere7
:ac# 1ntreruperea este acti9at# este posi,il ca acest ,it s# determine frontul la care o
1ntrerupere 9a fi acti9at# la pinul R=A/I>+.
1K front cresc#tor
AK front descresc#tor
bit 7 R"PU 3P&R+= Pull-up /na,le ,it-=it /na,le-Acti9are Pull-up P&R+=7
Acest ,it porne8te 8i opre8te re'istorii interni Ipull-upI-scoatere la portul =.
1K Re'istori oprire @pull-up@
AK Re'istori pornire @pull-up@
064 Porturi
Portul se refer# la un grup de pini ai unui microcontroler ce pot fi accesai simultan, sau la
care putem seta com,inaia dorit# de 'ero-uri 8i unu-uri, sau de la care putem citi o stare
e;istent#. 4i'ic, portul este un registru 1n interiorul unui microcontroler ce este conectat cu
fire la pinii microcontrolerului. Porturile repre'int# cone;iunea fi'ic# a "nit#ii de Procesare
Central# cu lumea e;terioar#. -icrocontrolerul le folose8te pentru a monitori'a sau controla
alte componente sau aparate. :atorit# funcionalit#ii, unii pini au rol du,lu ca RA$/+&CGI
de e;emplu, care este simultan al patrulea ,it la portul A 8i o intrare e;tern# pentru
contorul li,er 3free-run7. Selecia uneia din aceste dou# funcii ale pinului se face 1n unul din
regi8trii configuraionali. & ilustraie a acesteia este al cincilea ,it +ACS 1n registrul
&P+I&>. Select2nd una din funcii cealalt# este de'acti9at#.
+oi pinii portului pot fi definii ca intrare sau ie8ire, conform cu ne9oile unui monta< ce este
1n de'9oltare. Pentru a defini un pin ca pin de intrare sau ca pin de ie8ire, tre,uie scris#
com,inaia corect# de 'ero-uri 8i unu-uri 1n registrul +RIS. :ac# 1n locul potri9it este scris
@1@ logic 1n registrul +RIS, acel pin este pin de intrare, iar dac# este 9ala,il contrariul, este
un pin de ie8ire. 4iecare port are registrul lui +RIS. Astfel, portul A are +RISA la adresa
.%0, iar portul = are +RIS= la adresa .(0.
P&R+=
P&R+= are . pini legai la el. Registrul adec9at pentru direcia datelor este +RIS= la adresa
.(0. Setarea unui ,it 1n registrul +RIS= define8te pinul portului corespun'#tor ca pin de
intrare, 8i resetarea unui ,it 1n registrul +RIS=, define8te pinul portului corespun'#tor ca pin
de ie8ire. 4iecare pin la P&R+= are un re'istor sla, intern pull-up 3scoatere7 3re'istor care
define8te o linie la unu logic7 care poate fi acti9at prin resetarea celui de-al 8aptelea ,it
R=P" 1n registrul &P+I&>. Ace8ti re'istori Ipull-upI se 1nc0id automat c2nd pinul portului
este configurat ca o ie8ire. C2nd porne8te microcontrolerul, Ipull-upI-ii sunt de'acti9ai.
Patru pini ai portului P&R+=, R=*BR=$ pot cau'a o 1ntrerupere, care se 1nt2mpl# c2nd
starea lor se sc0im,# de la unu logic la 'ero logic 8i in9ers. >umai pinii configurai ca
intrare pot cau'a aceast# 1ntrerupere s# se 1nt2mple 3dac# fiecare pin R=*BR=$ este
configurat ca o ie8ire, nu 9a fi generat# o 1ntrerupere la sc0im,area st#rii7. Aceast# opiune
de 1ntrerupere cu re'istorii Ipull-upI fac mai u8oar# re'ol9area pro,lemelor din practic#, ca
de e;emplu o tastatur# matriceal#. :ac# r2ndurile tastaturii sunt conectate la ace8ti pini,
fiecare ap#sare a unei clape 9a cau'a o 1ntrerupere. -icrocontrolerul 9a determina care
clap# este ap#sat# 1n timp ce se procesea'# o 1ntrerupere. >u se recomand# s# apelai la
portul = 1n timp ce se procesea'# 1ntreruperea.
/;emplul de mai sus arat# cum pinii A, 1, 2, 8i ! sunt declarai ca intrare, 8i pinii $, %, ( 8i *
ca ie8ire.
P&R+A
P&R+A are % pini legai la el. Registrul corespun'#tor pentru direcia datelor este +RISA la
adresa .%0. Ca 8i la portul =, setarea unui ,it 1n registrul +RISA define8te de asemenea
pinul portului corespun'#tor ca un pin de intrare, 8i resetarea unui ,it 1n registrul +RISA
define8te pinul portului corespun'#tor ca pin de ie8ire.
Al cincilea pin al portului A are funcie dual#. 5a acel pin se afl# de asemenea o intrare
e;tern# pentru timer-ul +-R&. "na din aceste dou# opiuni este aleas# prin setarea sau
resetarea ,itului +&CS 3+-RA Clock Source Select ,it-,it de Selecie a Sursei Ceasului
+-R&7. Acest pin permite timer-ului +-R& sa-8i creasc# starea fie de la oscilatorul intern
fie prin impulsuri e;terne la pinul RA$/+ACGI.
/;emplul arat# cum pinii A, 1, 2, !, 8i $ sunt declarai ca intrare iar %, ( 8i * ca pini de
ie8ire.
062 Organi>area memoriei
PIC1(4.$ are dou# ,locuri separate de memorie, unul pentru date 8i cel#lalt pentru
programe. -emoria //PR&- 8i regi8trii PR 1n memoria RA- constituie un ,loc, 8i memoria
45AS6 constituie un ,loc de programe.
-emoria program
-emoria program a fost reali'at# 1n te0nologia 45AS6 ceea ce face posi,il de a programa
un microcontroler de mai multe ori 1nainte de a fi instalat 1ntr-un monta<, 8i c0iar dup#
instalarea sa dac# se 1nt2mpl# unele sc0im,#ri 1n program sau parametri de proces.
-#rimea memoriei program este de 1A2$ locaii cu l#ime de 1$ ,ii unde locaiile 'ero 8i
patru sunt re'er9ate pentru reset 8i pentru 9ectorul 1ntrerupere.
-emoria de date
-emoria de date const# din memoriile //PR&- 8i RA-. -emoria //PR&- const# din ($ de
locaii de opt ,ii a c#ror coninut nu este pierdut 1n timpul opririi sursei de alimentare.
//PR&--ul nu este direct adresa,il, dar este accesat indirect prin regi8trii //A:R 8i
//:A+A. Pentru c# memoria //PR&- este folosit# curent la memorarea unor parametri
importani 3de e;emplu, o temperatur# dat# 1n regulatoarele de temperatur#7, e;ist# o
procedur# strict# de scriere 1n //PR&- ce tre,uie urmat# pentru a pre9eni scrierea
accidental#. -emoria RA- pentru date ocup# un spaiu 1ntr-o 0art# a memoriei de la locaia
A;AC la A;$4 ceea ce 1nseamn# (. de locaii. 5ocaiile memoriei RA- sunt de asemenea
denumite regi8tri PR care este o a,re9iere eneral Purpose Registers-Regi8tri cu Scop
eneral. Regi8trii PR pot fi accesai indiferent de ce ,anc este selectat la un moment.
Regi8tri S4R
Regi8tri ce ocup# primele 12 locaii 1n ,ancurile A 8i 1 8i sunt regi8tri ai funciei speciali'ate
asignat# cu unele ,locuri ale microcontrolerului. Ace8tia sunt numii Special 4unction
Registers-Regi8tri ai 4unciei Speciale.
"ancuri de Memorie
)n afar# de aceast# di9i'iune 1n IlungimeI a regi8trilor S4R 8i PR, 0arta memoriei este de
asemenea 1mp#rit# 1n Il#imeI 39e'i 0arta precedent#7 1n dou# 'one numite I,ancuriI.
Selectarea unuia din ,ancuri se face de ,iii RP& 8i RP1 1n registrul S+A+"S-stare.
E?emplu=
bcf STATUS, RP0
Instruciunea =C4 8terge ,itul RP& 3RPAKA7 1n registrul S+A+"S 8i astfel setea'# ,ancul A.
bsf STATUS, RP0
Instruciunea =S4 setea'# ,itul RP& 3RPAK17 1n registrul S+A+"S 8i astfel setea'# ,ancul 1.

"'ual, grupurile de instruciuni care sunt adesea 1n u', sunt conectate 1ntr-o singur# unitate
ce poate fi u8or apelat# 1ntr-un program, 8i a c#rei nume are o semnificaie clar#, a8a-
numitul -acros-macrocomand#. Cu a<utorul lor, selecia dintre dou# ,ancuri de9ine mai
clar# 8i programul mult mai elegi,il.
BANK0 macro
Bcf STATUS, RP0 ;Select memory bank 0
Endm
BANK1 macro
Bsf STATUS, RP0 ;Select memory bank 1
Endm
Locaiile 0Ch - 4Fh sunt regitri cu scop general !"#$ ce sunt %olosii ca &e&orie #'() C*n+ sunt
accesate locaiile ,Ch - CFh -n .ancul 1/ acces0& +e %apt e1act aceleai locaii -n .ancul 0) Cu alte
cu2inte/ c*n+ +orii s0 accesai unul +in regitrii !"#/ nu trebuie s0 20 -ngri3orai c0 nu tii -n ce banc
suntei4
Contorul de Program
Contorul de program 3PC7 este un registru de 1! ,ii ce conine adresa instruciunii ce se
e;ecut#. Prin incrementarea sau sc0im,area sa 3e;. 1n ca' de salturi7 microcontrolerul
e;ecut# instruciunile de program pas-cu-pas.
Sti9a
PIC1(4.$ are o sti9# de 1! ,ii cu . ni9ele, sau cu alte cu9inte, un grup de . locaii de
memorie de 1! ,ii l#ime cu funcii speciale. Rolul s#u de ,a'# este de a p#stra 9aloarea
contorului de program dup# un salt din programul principal la o adres# a unui su,program.
Pentru ca un program s# 8tie cum s# se 1ntoarc# la punctul de unde a pornit, tre,uie s#
1napoie'e 9aloarea contorului programului din sti9#. C2nd se mut# dintr-un program 1ntr-un
su,program, contorul programului este 1mpins 1n sti9# 3un e;emplu de acesta este
instruciunea CA557. C2nd se e;ecut# instruciuni ca R/+"R>, R/+5E sau R/+4I/ ce au fost
e;ecutate la sf2r8itul unui su,program, contorul programului a fost luat dintr-o sti9#, a8a ca
programul s# poat# continua de unde a fost oprit 1nainte de a fi 1ntrerupt. Aceste operaii de
plasare 1ntr-o 8i luare dintr-o sti9# de contor de program sunt numite P"S6 8i P&P, 8i sunt
numite conform cu instruciunile similare ale unor microcontrolere mai mari.
Programarea )n Sistem
Pentru a programa o memorie de program, microcontrolerul tre,uie s# fie setat pentru un
mod de lucru special prin aducerea pinului -C5R la 1!.%D, iar sursa de tensiune Ddd tre,uie
s# fie sta,ili'at# 1ntre $.%D 8i %.%D. -emoria program poate fi programat# serial folosind doi
pini Idata/clockI ce tre,uie s# fie mai 1nt2i separai de liniile monta<ului, a8a ca s# nu apar#
erori 1n timpul program#rii.
-oduri de adresare
5ocaiile de memorie RA- pot fi accesate direct sau indirect.

Adresarea :irect#
Adresarea :irect# se face printr-o adres# de H ,ii. Aceast# adres# este o,inut# prin
conectarea celui de-al 8aptelea ,it al adresei directe a unei instruciuni cu doi ,ii 3RP1,
RPA7 din registrul S+A+"S dup# cum se arat# 1n figura urm#toarea. &rice acces la regi8trii
S4R poate fi un e;emplu de adresare direct#.
Bsf STATUS, RP0 ;Bankl
movl 0!"" ;#0!""
movf TR$SA ;address of TR$SA re%&ster &s taken from
;&nstr'ct&on movf
Adresarea Direct
Adresarea Indirect#
Adresarea indirect# spre deose,ire de cea direct# nu ia o adres# dintr-o instruciune ci o
creea'# cu a<utorul ,itului IRP a regi8trilor S+A+"S 8i 4SR. 5ocaia adresat# este accesat#
prin registrul I>:4 care de fapt ine o adres# indicat# de un 4SR. Cu alte cu9inte, orice
instruciune care folose8te I>:4 ca registrul al ei, 1n realitate accesea'# datele indicate de
un registru 4SR. S# spunem, de e;emplu, c# un registru cu scop general 3PR7 la adresa
A40 conine o 9aloarea 2A. Prin scrierea unei 9alori A40 1n registrul 4SR 9om o,ine un
registru indicator la adresa A40, iar prin citirea din registrul I>:4, 9om o,ine 9aloarea 2A,
ceea ce 1nseamn# c# am citit din primul registru 9aloarea lui f#r# accesarea lui direct# 3dar
prin 4SR 8i I>:47. Se pare c# acest tip de adresare nu are nici un a9anta< fa# de adresarea
direct#, dar e;ist# unele ne9oi 1n timpul program#rii ce se pot re'ol9a mai simplu doar prin
adresarea indirect#.
"n asemenea e;emplu poate trimite un set de date prin comunicaia serial#, lucr2nd cu
,ufere 8i indicatoare 3ce 9or fi discutate 1n continuare 1ntr-un capitol cu e;emple7, sau s#
8tearg# o parte a memoriei RA- 31( locaii7 ca 1n urm#torul e;emplu.
Citind datele din registrul I>:4 c2nd coninutul registrului 4SR este egal cu 'ero, 1ntoarce
9aloarea 'ero, 8i scrie 1n el re'ultatul 1n operaia >&P 3no operation- nu operea'#7.
066 @ntreruperi
)ntreruperile sunt un mecanism a unui microcontroler ce 1i permit s# r#spund# la unele
e9enimente la momentul c2nd se 1nt2mpl#, indiferent de ce face atunci microcontrolerul.
Aceasta este o parte foarte important#, pentru c# permite cone;iunea microcontrolerului cu
lumea de afar#. )n general, fiecare 1ntrerupere sc0im,# de,itul programului, 1l 1ntrerupe 8i
dup# e;ecutarea unui su,program 3rutine de 1ntrerupere7, continu# din acela8i punct.
Registrul de control al unei 1ntreruperi se nume8te I>+C&> 8i se g#se8te la adresa A=0.
Rolul lui este de a permite sau inter'ice cererile de 1ntreruperi, 8i 1n ca' c# nu sunt permise,
1nregistrea'# cererile de 1ntrerupere singulare prin ,iii lui.
Registru I>+C&>
bit 0 R"IF 3R= Port C0ange Interrupt 4lag ,it-,it Stegule de )ntrerupere a Sc0im,#rii
Portului R=7 =it ce informea'# despre sc0im,#rile de la pinii $, %, ( 8i * ai portului =.
1Kcel puin un pin 8i-a sc0im,at starea
AKnu s-a 1nt2mplat nici o sc0im,are la 9reun pin
bit 1 I$TF 3I>+ /;ternal Interrupt 4lag ,it-,it Stegule de )ntrerupere /;tern# I>+7 A a9ut
loc o 1ntrerupere e;tern#.
1Ka a9ut loc o 1ntrerupere
AKnu a a9ut loc o 1ntrerupere
:ac# s-a detectat un front cresc#tor sau descresc#tor la pinul R=A/I>+, 3ce este definit cu
,itul I>+/: 1n registrul &P+I&>7, ,itul I>+4 este setat. =itul tre,uie s# fie 8ters 1n
su,programul 1ntrerupere pentru a detecta urm#toarea 1ntrerupere.
bit 2 T/IF 3+-RA &9erflo? Interrupt 4lag ,it-,it Stegule :ep#8ire )ntrerupere +-R&7
:ep#8irea contorului +-R&.
1Kcontorul 8i-a sc0im,at starea de la 440 la AA0.
AKdep#8irea nu a a9ut loc
=itul tre,uie s# fie 8ters 1n program pentru ca o 1ntrerupere s# fie detectat#.
bit 3 R"IE 3R= port c0ange Interrupt /na,le ,it-,it Permite )ntreruperea sc0im,#rii portului
R=7 Permite s# ai,# loc 1ntreruperi la sc0im,area st#rii pinilor $, %, (, 8i * ai portului =.
1Kpermite 1ntreruperi la sc0im,area st#rii
AK1ntreruperi inter'ise la sc0im,area st#rii
:ac# R=I/ 8i R=I4 au fost simultan setate, 9a a9ea loc o 1ntrerupere.
bit 4 I$TE 3I>+ /;ternal Interrupt /na,le ,it-,it Permite )ntrerupere e;tern# I>+7 =it ce
permite 1ntreruperea e;tern# de la pinul R=A/I>+.
1K1ntrerupere e;tern# permis#
AK1ntrerupere e;tern# inter'is#
:ac# I>+/ 8i I>+4 au fost setate simultan, 9a a9ea loc o 1ntrerupere.
bit 5 T/IE 3+-RA &9erflo? Interrupt /na,le ,it-,it Permite :ep#8ire )ntrerupere +-R&7 =it
ce permite 1ntreruperile 1n timpul dep#8irii contorului +-R&.
1K1ntrerupere permis#
AK1ntrerupere inter'is#
:ac# +AI/ 8i +AI4 au fost simultan setate, 9a a9ea loc 1ntreruperea.
.it 6 EEIE 3//PR&- Erite Complete Interrupt /na,le ,it-,it Permite )ntrerupere Complet#
a Scrierii //PR&-7 =it ce permite o 1ntrerupere la sf2r8itul unei rutine de scriere 1n //PR&-
1K 1ntrerupere permis#
AK 1ntrerupere inter'is#
:ac# //I/ 8i //I4 3ce este 1n registrul //C&>17 au fost simultan setate, 9a a9ea loc o
1ntrerupere.
.it 7 7IE 3lo,al Interrupt /na,le ,it-,it Permite )ntrerupere lo,al#7 =it ce permite sau
inter'ice toate 1ntreruperile.
1Ktoate 1ntreruperile sunt permise
AKtoate 1ntreruperile sunt inter'ise
PIC1(4.$ are patru surse de 1ntrerupereB
1. +erminarea scrierii datelor 1n //PR&-
2. )ntrerupere +-RA cau'at# de dep#8irea timer-ului
!. )ntrerupere 1n timpul sc0im,#rii la pinii R=$, R=%, R=( 8i R=* ai portului =.
$. )ntrerupere /;tern# de la pinul R=A/I>+ al microcontrolerului
)n general, fiecare surs# de 1ntrerupere are doi ,ii legai la ea. "nul permite 1ntreruperea,
iar cel#lalt detectea'# c2nd au loc 1ntreruperi. /;ist# un ,it comun numit I/ ce poate fi
folosit pentru a inter'ice sau permite toate 1ntreruperile simultan. Acest ,it este foarte
folositor c2nd se scrie un program pentru c# permite ca toate 1ntreruperile s# fie inter'ise
pentru o perioad# de timp, a8a ca e;ecuia unei p#ri importante a programului s# nu fie
1ntrerupt#. C2nd instruciunea ce resetea'# ,itul I/ a fost e;ecutat# 3I/KA, toate
1ntreruperile inter'ise7, fiecare 1ntrerupere ce r#m2ne nere'ol9at# tre,uie ignorat#.
)ntreruperile ce r#m2n nere'ol9ate 8i ce au fost ignorate, sunt procesate c2nd ,itul I/
3I/K1, toate 1ntreruperile sunt permise7 9a fi 8ters. C2nd i s-a r#spuns 1ntreruperii, ,itul
I/ a fost 8ters, a8a c# orice 1ntreruperi adiionale 9or fi inter'ise, adresa de 1ntoarcere a
fost trimis# 1n sti9#, iar adresa AAA$0 a fost scris# 1n contorul programului P numai dup#
aceasta 1ncepe r#spunsul la o 1ntrerupereQ :up# ce este procesat# 1ntreruperea, ,itul a
c#rui setare a cau'at o 1ntrerupere tre,uie 8ters, sau rutina de 1ntrerupere 9a fi procesat#
automat tot mereu 1n timpul 1ntoarcerii la programul principal.
P#strarea coninutului regi8trilor importani
:oar 9aloarea de 1ntoarcere a contorului programului este 1nmaga'inat# 1ntr-o sti9# 1n
timpul unei 1ntreruperi 3prin 9aloare de 1ntoarcere a contorului programului 1nelegem
adresa instruciunii ce tre,uie e;ecutat#, dar nu a fost e;ecutat# pentru c# a a9ut loc
1ntreruperea7. P#str2nd doar 9aloarea contorului programului adesea nu este suficient. "nii
regi8tri ce sunt 1n u' 1n programul principal pot fi de asemenea 1n u' 1n rutina de
1ntrerupere. :ac# ei nu sunt reinui, programul principal 9a o,ine 9alori complet diferite 1n
acei regi8tri 1n timpul 1ntoarcerii dintr-o rutin# de 1ntrerupere, ceea ce 9a cau'a erori 1n
program. "n e;emplu de asemenea ca' este coninutul registrului de lucru E. :ac#
presupunem c# programul principal a folosit registrul de lucru E pentru unele din operaiile
sale, 8i c# a p#strat 1n el o 9aloare ce este important# pentru urm#toarea instruciune,
atunci o 1ntrerupere ce se 9a 1nt2mpla 1nainte de acea instruciune 9a sc0im,a 9aloarea
registrului de lucru E, ce 9a influena direct programul principal.
Procedura de 1nregistrare de regi8tri importani 1nainte de a merge la o rutin# de
1ntrerupere se nume8te P"S6, 1n timp ce procedura ce aduce 9alorile 1nregistrate 1napoi, se
nume8te P&P. P"S6 8i P&P sunt instruciuni ale altor microcontrolere 3Intel7, dar sunt at2t
de larg acceptate c# o 1ntreag# operaie este numit# dup# ele. PIC1(4.$ nu are instruciuni
ca P"S6 8i P&P, 8i ele tre,uie s# fie programate.
:atorit# simplit#ii 8i folosirii frec9ente, aceste p#ri ale programului pot fi f#cute ca macro-
uri. Conceptul unui -acro este e;plicat 1n @5im,a< de asam,lare program@. )n urm#torul
e;emplu, coninuturile regi8trilor E 8i S+A+"S sunt memorate 1n 9aria,ilele EF+/-P 8i
S+A+"SF+/-P 1nainte de rutina de 1ntrerupere. 5a 1nceputul rutinei P"S6 tre,uie s#
9erific#m ,ancul selectat 1n pre'ent pentru c# EF+/-P and S+A+"SF+/-P nu se g#sesc 1n
,ancul A. Pentru sc0im,ul de date 1ntre ace8ti regi8tri, instruciunea SEAP4 se folose8te 1n
loc de -&D4 pentru c# nu afectea'# starea ,iilor registrului S+A+"S.
/;emplul este un program asam,lor pentru urm#torii pa8i B
1. +estarea ,ancului curent
2. Stocarea registrului E indiferent de ,ancul curent
!. Stocarea registrul S+A+"S 1n ,ancul A
$. /;ecutarea rutinei de 1ntrerupere pentru procesul de 1ntrerupere 3ISR7
%. Restaurea'# registrul S+A+"S
(. Restaurea'# registrul E
:ac# mai sunt 8i alte 9aria,ile sau regi8tri ce tre,uie stocai, atunci ei tre,uie s# fie p#strai
dup# stocarea registrului S+A+"S 3pasul !7, 8i adu8i 1napoi 1nainte ca registrul S+A+"S s#
fie restaurat 3pasul %7.
Acela8i e;emplu se poate reali'a utili'2nd macro-uri, f#c2nd astfel programul mai eligi,il.
-acro-urile ce sunt de<a definite, pot fi folosite pentru scrierea de noi macro-uri. -acro-
urile =A>G1 8i =A>GA ce sunt e;plicate 1n capitolul @&rgani'area memoriei@ sunt folosite cu
macro-urile Ipus0I 8i IpopI.
)ntrerupere e;tern# la pinul R=A/I>+ al microcontrolerului
)ntreruperea e;tern# la pinul R=A/I>+ este triggerat# de frontul cresc#tor 3dac# ,itul
I>+/:K1 1n registrul &P+I&>R(S7, sau de frontul descresc#tor 3dac# I>+/:KA7. C2nd
apare semnalul corect la pinul I>+, ,itul I>+4 este setat la registrul I>+C&>. =itul I>+4
3I>+C&>R1S7 tre,uie resetat 1n rutina de 1ntrerupere, a8a ca 1ntreruperea s# nu ai,# loc
din nou 1n timpul 1ntoarcerii la programul principal. Acesta este un pas important al
programului pe care programatorul nu tre,uie s#-l uite, sau programul 9a merge constant
1n rutina de 1ntrerupere. )ntreruperea poate fi 1nc0is# prin resetarea ,itului de control I>+/
3I>+C&>R$S7.
)ntreruperea 1n timpul dep#8irii contorului +-R&
:ep#8irea contorului +-R& 3de la 440 la AA07 9a seta ,itul +AI4 3I>+C&>R2S7. Aceasta
este o 1ntrerupere foarte important# pentru c# multe pro,leme reale se por re'ol9a folosind
aceast# 1ntrerupere. "nul din e;emple este m#surarea timpului. :ac# 8tim c2t timp are
ne9oie contorul pentru a completa un ciclu de la AA0 to 440, atunci num#rul de 1ntreruperi
1nmulit cu acea durat# de timp 9a da timpul total scurs. )n rutina de 1ntrerupere unele
9aria,ile 9or fi incrementate 1n memoria RA-, 9aloarea acelei 9aria,ile 1nmulite cu timpul
de care are ne9oie contorul pentru a contori'a 1ntr-un ciclu 1ntreg, 9a da timpul total scurs.
)ntreruperea poate fi pornit#/oprit# prin setarea/resetarea ,itului +AI/ 3I>+C&>R%S7.
)ntrerupere pe timpul unei sc0im,#ri la pinii $, %, ( 8i * ai portului
=
Sc0im,area semnalului de intrare la P&R+= R*B$S setea'# ,itul R=I4 3I>+C&>RAS7. Patru
pini R=*, R=(, R=% 8i R=$ ai portului =, pot triggera o 1ntrerupere ce are loc c2nd starea la
ei se sc0im,# de la unu la 'ero logic, sau 9ice9ersa. Pentru ca pinii s# fie sensi,ili la aceast#
sc0im,are, tre,uie definii ca intrare. :ac# oricare din ei este definit ca ie8ire, 1ntreruperea
nu 9a fi generat# la sc0im,area st#rii. :ac# ei sunt definii ca intrare, starea lor curent#
este comparat# cu 9ec0ea 9aloare ce a fost stocat# la ultima citire de la portul =.
)ntreruperea poate fi pornit#/oprit# prin setarea/resetarea ,itului R=I/ 1n registrul I>+C&>.
)ntreruperea la terminarea su,rutinei ?rite 1n //PR&-
Aceast# 1ntrerupere este doar de natur# practic#. Pentru c# scrierea 1ntr-o locaie //PR&-
durea'# cam 1Ams 3care este o durat# lung# 1n termenii microcontrolerului7, nu este
renta,il de a a8tepta p2n# la cap#t scrierea. /ste ad#ugat astfel mecanismul de 1ntrerupere
ceea ce permite microcontrolerului s# continue e;ecutarea programului principal, 1n timp ce
scrierea 1n //PR&- este f#cut# 1n plan secundar. C2nd scrierea este terminat#, 1ntreruperea
informea'# microcontrolerul c# scrierea s-a terminat. =itul //I4, prin care se face aceast#
informare, se g#se8te 1n registrul //C&>1. Producerea unei 1ntreruperi poate fi inter'is#
prin resetarea ,itului //I/ 1n registrul I>+C&>.
Iniiali'area 1ntreruperii
Pentru a folosi un mecanism de 1ntrerupere a unui microcontroler, tre,uie f#cute unele
sarcini preg#titoare. Aceste proceduri sunt pe scurt numite @iniiali'are@. Prin iniiali'are
definim la ce 9a r#spunde microcontrolerul, 8i ce 9a ignora. :ac# nu set#m ,itul ce permite
o anumit# 1ntrerupere, programul nu 9a e;ecuta un su,program 1ntrerupere. Prin aceasta
putem o,ine controlul asupra producerii 1ntreruperii, ceea ce este foarte folositor.
/;emplul de mai sus arat# iniiali'area unei 1ntreruperi e;terne la pinul R=A al
microcontrolerului. "nde se 9ede unu setat, 1nseamn# c# 1ntreruperea este permis#.
Producerea altor 1ntreruperi nu este permis#, 8i toate 1ntreruperile 1mpreun# sunt inter'ise
p2n# ce ,itul I/ este inut 1n unu.
"rm#torul e;emplu arat# o cale tipic# de a diri<a 1ntreruperile. PIC1(4.$ are doar o locaie
unde adresa unui su,program 1ntrerupere este memorat#. Aceasta 1nseamn# c# mai 1nt2i
tre,uie s# detect#m ce 1ntrerupere este la 1ndem2n# 3dac# mai mult de o surs# de
1ntreruperi este disponi,il#7, 8i apoi putem e;ecuta acea parte a programului ce se refer# la
acea 1ntrerupere.
#e-ntoarcerea +intr-o rutin0 +e -ntrerupere poate %i %0cut0 cu instruciunile #567#8/ #56L9 i #56F:5)
;e reco&an+0 ca s0 %ie utili<at0 instruciunea #56F:5 pentru c0 acea instruciune este singura ce
setea<0 auto&at bitul !:5/ ceea ce per&ite s0 se pro+uc0 o nou0 -ntrerupere)
065 Timer-ul li:er TMR/
+imer-ele 3tempori'atoarele7 sunt de o,icei cele mai complicate p#ri ale unui
microcontroler, a8a c# este necesar s# re'er9#m mai mult timp pentru a le e;plica. &dat#
cu aplicarea lor este posi,il s# se cree'e relaii 1ntre o dimensiune real# ca @timp@ 8i o
9aria,il# ce repre'int# starea timer-ului 1ntr-un microcontroler. 4i'ic, timer-ul este un
registru a c#rui 9aloare cre8te continuu p2n# la 2%%, 8i apoi porne8te de la cap#tB A, 1, 2, !,
$...2%%....A,1, 2, !......etc.
Aceast# incrementare se face 1n fundalul a tot ceea ce face un microcontroler. :epinde de
programator @s# g#seasc# o cale@ de cum s# profite de aceast# caracteristic# pentru ne9oile
lui. "na din c#i este s# creasc# o 9aria,il# la fiecare dep#8ire a timer-ului. :ac# 8tim c2t
timp are ne9oie timer-ul s# fac# o rund# complet#, atunci 1nmulind 9aloarea 9aria,ilei cu
acel timp o,inem timpul total scurs.
PIC1(4.$ are un timer de . ,ii. >um#rul de ,ii determin# p2n# la ce 9aloare contori'ea'#
timer-ul 1nainte de a 1ncepe s# contori'e'e de la 'ero din nou. )n ca'ul unui timer de . ,ii,
acel num#r este 2%(. & sc0em# simplificat# a relaiei dintre un timer 8i un prescaler-di9i'or
este repre'entat# 1n diagrama anterioar#. Prescalerul este numele acelei p#ri din
microcontroler ce di9ide ceasul oscilatorului 1nainte de a a<unge la logica ce cre8te starea
timer-ului. >um#rul ce di9ide un ceas este definit prin trei ,ii 1n registrul &P+I&>. Cel mai
mare di9i'or este 2%(. Aceasta 1nseamn# de fapt c# doar la al fiecare 2%(-lea ceas,
9aloarea timer-ului 9a cre8te cu unu. Aceasta ne d# posi,ilitatea de a m#sura perioade de
timp mai lungi.
:up# fiecare num#r#toare p2n# la 2%%, timer-ul 18i resetea'# 9aloarea la 'ero 8i 1ncepe cu
un nou ciclu de contori'are p2n# la 2%%. )n timpul fiec#rei tran'iii de la 2%% la 'ero, ,itul
+&I4 1n registrul I>+C&> este setat. :ac# se permit 1ntreruperi, de aceasta se poate profita
1n generarea 8i 1n procesarea rutinei de 1ntrerupere. :epinde de programator s# resete'e
,itul +&I4 1n rutina de 1ntrerupere, a8a ca noua 1ntrerupere, sau noua dep#8ire s# fie
detectate. )n afar# de ceasul oscilator intern, starea timer-ului poate de asemenea s#
creasc# prin ceasul e;tern la pinul RA$/+&CGI. Alegerea uneia din aceste dou# opiuni se
face 1n registrul &P+I&> prin ,itul +&CS. :ac# a fost aleas# aceast# opiune de ceas e;tern,
9a fi posi,il s# se defineasc# frontul unui semnal 3cresc#tor sau descresc#tor7, la care
timer-ul s#-8i creasc# 9aloarea.
)n practic#, unul din e;emplele tipice ce este re'ol9at prin ceas e;tern 8i unde timer-ul
contori'ea'# rotaiile complete ale unui a; al unei ma8ini de producie, ca ,o,inatorul de
transformator de e;emplu. S# rotim patru 8uru,uri de metal pe a;ul unui ,o,inator. Aceste
patru 8uru,uri 9or repre'enta con9e;itatea metalic#. S# plas#m acum un sen'or inducti9 la
o distan# de % mm de cap#tul unui 8uru,. Sen'orul inducti9 9a genera semnalul
descresc#tor de fiecare dat# c2nd capul 8uru,ului este paralel cu capul sen'orului. 4iecare
semnal 9a repre'enta o p#trime dintr-o rotaie, 8i suma tuturor rotaiilor se 9a g#si 1n
timer-ul +-R&. Programul poate u8or citi aceste date din timer printr-un ,us de date.
"rm#torul e;emplu ilustrea'# cum s# se iniiali'e'e timer-ul la fronturile descresc#toare ale
semnalului din sursa e;tern# cu un prescaler 1B$. +imer-ul lucrea'# 1n mod @polig-
1mpingere@.
Acela8i e;emplu poate fi reali'at printr-o 1ntrerupere 1n modul urm#torB
Prescalerul poate fi asignat fie de timer-ul +-R& fie de ?atc0dog. Eatc0dogul este un
mecanism pe care microcontrolerul 1l folose8te s# se apere 1mpotri9a ,loc#rii programelor.
Ca orice alt circuit electric, la fel 8i cu microcontrolerul se pot 1nt2mpla defect#ri, sau unele
stric#ciuni. :in nefericire microcontrolerul are de asemenea un program unde se pot
1nt2mpla pro,leme. C2nd se 1nt2mpl# aceasta, microcontrolerul se 9a opri din funcionare 8i
9a r#m2ne 1n acea stare p2n# ce cine9a 1l resetea'#. :in cau'a aceasta, a fost introdus
mecanismul ?atc0dog. :up# o anumit# perioad# de timp, ?atc0dogul resetea'#
microcontrolerul 3de fapt microcontrolerul se resetea'# singur7. Eatc0dogul lucea'# pe
,a'a unui principiu simpluB dac# se 1nt2mpl# dep#8irea timer-ului, microcontrolerul este
resetat, 8i 1ncepe e;ecutarea programului mereu din nou. Astfel, se 9a 1nt2mpla un reset
at2t 1n ca'ul unei funcion#ri corecte c2t 8i incorecte. "rm#torul pas este pre9enirea
resetului 1n ca'ul unei funcion#ri corecte, ce se face prin scrierea unui 'ero 1n registrul E:+
3instruciunea C5RE:+7 de fiecare dat# c2nd se apropie de dep#8ire. Astfel programul 9a
pre9eni un reset c2t timp este e;ecutat corect. :e 1ndat# ce s-a ,locat, nu se 9a scrie 'ero,
9a a9ea loc dep#8irea timer-ului E:+ 8i un reset ce 9a duce microcontrolerul 1napoi la
funcionarea corect# din nou.
Prescalerul este acordat cu timer-ul +-R&, sau cu timer-ul ?atc0dogului prin ,itul PSA 1n
registrul &P+I&>. Tterg2nd ,itul PSA, prescalerul 9a fi acordat cu timer-ul +-R&. C2nd
prescalerul este acordat cu timer-ul +-R&, toate instruciunile de scriere 1n registrul +-R&
3C5R4 +-RA, -&DE4 +-RA, =S4 +-RA,...7 9or 8terge prescalerul. C2nd prescalerul este
asignat timerului ?atc0dog, numai instruciunea C5RE:+ 9a 8terge prescalerul 8i timer-ul
?atc0dog 1n acela8i timp. Sc0im,area prescalerului este complet# su, controlul
programatorului, 8i poate fi sc0im,at 1n timp ce se rulea'# programul.
51ist0 +oar un prescaler i un ti&er) Funcie +e ne2oi/ ele sunt asignate %ie ti&er-ului 6(#= %ie
>atch+og-ului)
Registrul control &P+I&>
.it 0:2 P'/) P'1) P'0 3Prescaler Rate Select ,it-,it Selectare Rat# Prescaler7
Su,iectul prescaler, 8i cum afectea'# ace8ti ,ii lucrul unui microcontroler 9a fi a,ordat 1n
seciunea despre +-R&.
bit 3 P'A 3Prescaler Assignment ,it-,it Asignare Prescaler7
=it ce asignea'# prescalerul 1ntre +-R& 8i timer-ul ?atc0dog7.
1Kprescalerul este asignat la timer-ul ?atc0dog
AKprescalerul este asignat la timer-ul free-li,er
bit 4 T/'E 3+-RA Source /dge Select ,it-,it Selectare 4ront Surs# +-R&7
:ac# triggerul +-R& a fost acti9at cu impulsuri de la pinul RA$/+ACGI, acest ,it 9a
determina dac# 9a fi la frontul cresc#tor sau descresc#tor al semnalului.
1Kfront descresc#tor
AKfront cresc#tor
bit 5 T/C' 3+-RA Clock Source Select ,it-,it Selectare Surs# Ceas +-R&7
Acest ,it permite unui timer free-run s#-8i incremente'e 9aloarea fie de la oscilatorul
intern, de e;emplu O din ceasul oscilatorului, sau prin impulsuri e;terne la pinul
RA$/+ACGI.
1Kimpulsuri e;terne
AK1/$ ceas intern
bit 6 I$TE&7 3Interrupt /dge Select ,it-,it Selectare 4ront )ntreruperi7
:ac# a fost permis# producerea de 1ntreruperi, acest ,it 9a determina la ce front 9a a9ea
loc 1ntreruperea la pinul R=A/I>+.
1Kfront cresc#tor
AKfront descresc#tor
bit 7 R"PU 3P&R+= Pull-up /na,le ,it-,it Permite Pull-up-tragerea P&R+=7
Acest ,it desc0ide sau 1nc0ide re'istorii interni la portul =.
1Kre'istorii Ipull-upI desc0i8i
AKre'istorii Ipull-upI 1nc0i8i
068 Memoria de date EEPROM
PIC1(4.$ are ($ de ,Ltes de locaii de memorie //PR&- la adresele de la AA0 la (!0 unde
se poate scrie sau de unde se poate citi. Cea mai important# caracteristic# a acestei
memorii este c# nu pierde coninutul 1n timpul 1nc0ideri sursei de alimentare. Aceasta
1nseamn# practic c# ceea ce a fost scris 1n ea 9a r#m2ne c0iar 8i c2nd microcontrolerul este
1nc0is. :atele pot fi reinute 1n //PR&- f#r# sursa de alimentare p2n# la $A de ani. 3dup#
cum declar# produc#torul lui PIC:1(4.$7, 8i se pot e;ecuta 1AAAA de cicluri de scriere.
)n practic#, memoria //PR&- este folosit# pentru stocarea unor date importante sau a
unor parametri de proces.
"n asemenea parametru este o temperatur# dat#, asignat# c2nd se setea'# un regulator de
temperatur# la un proces. :ac# nu s-a reinut, 9a fi ne9oie s# se a<uste'e temperatura dat#
dup# fiecare 1ntrerupere a aliment#rii. Pentru c# aceasta este foarte nepractic 3c0iar
periculos7, produc#torii de microntrolere au 1nceput s# instale'e un tip mai mic de memorie
//PR&-.
-emoria //PR&- este plasat# 1ntr-un loc special al memoriei 8i poate fi accesat# prin
regi8tri speciali. Ace8ti regi8tri suntB
U EE&ATA la adresa A.0, care reine datele de citit sau cele de scris.
U EEA&R la adresa AH0, ce conine o adres# a locaiei //PR&- ce este accesat#.
U EECO$1 la adresa ..0, ce conine ,ii de control.
U EECO$0 la adresa .H0. Acest registru nu e;ist# fi'ic 8i ser9e8te la prote<area //PR&--
ului de scrieri accidentale.
Registrul //C&>1 la adresa ..0 este un registru de control cu % ,ii implementai.
=iii %, ( 8i * nu sunt folosii, 8i prin citire sunt totdeauna 'ero. Interpretarea ,iilor
registrului //C&>1 urmea'#.
Registrul //C&>1
,it A R& 3Read Control ,it-,it Control Citire7
Setarea acestui ,it iniiali'ea'# transferul de date definit 1n //A:R la registrul //:A+A.
Pentru c# timpul nu este esenial 1n citirea datelor ca la scriere, datele din //:A+A pot fi
de<a folosite 1n urm#toarea instruciune.
1Kinitiali'ea'# citirea
AKnu iniiali'ea'# citirea
,it 1 AR 3Erite Control ,it-,it Control Scriere7
Setarea acestui ,it iniiali'ea'# scrierea datelor din registrul //:A+A la adresa specifcat#
prin registrul //A:R.
1Kinitiali'ea'# scrierea
AKnu iniiali'ea'# scrierea
,it 2 ARE$ 3//PR&- Erite /na,le ,it-,it Permite Scrierea //PR&-7 Permite scrierea 1n
//PR&-
:ac# acest ,it nu a fost setat, microcontrolerul nu 9a permite scrierea 1n //PR&-.
1Kscriere permis#
AKscriere inter'is#
,it ! ARERR 3Erite //PR&- /rror 4lag-Stegule /roare Scriere //PR&- 7 /roare 1n timpul
scrierii 1n //PR&-
Acest ,it a fost setat doar 1n ca' c# scrierea 1n //PR&- a fost intrerupt# de un semnal sau
prin terminarea timpului din timer-ul ?atc0dog 3dac# este acti9at7.
1Ka a9ut loc eroare
AKnu a a9ut loc eroare
,it $ EEIF 3//PR&- Erite &peration Interrupt 4lag ,it-,it Stegule )ntrerupere &peraie
Scriere //PR&-7 =it folosit pentru a informa c# scrierea datelor s-a terminat.
C2nd s-a terminat scrierea, acest ,it 9a fi setat automat. Programtorul tre,uie s# 8tearg#
,itul //I4 1n programul s#u pentru a detecta noua terminare a scrierii.
1Kscrierea terminat#
AKscrierea 1nc# neterminat#, sau 1nc# nu a 1nceput
Citirea din memoria //PR&-
Setarea ,itului R: iniiali'ea'# transferul de date de la adresa g#sit# 1n //A:R la registrul
//:A+A. Ca 8i la citirea datelor nu a9em ne9oie de at2t de mult timp ca la scriere, datele
luate din registrul //:A+A pot de<a fi folosite mai departe 1n urm#toarea instruciune.
& mostr# a p#rii programului ce cite8te datele 1n //PR&-, ar putea ar#ta ca mai <osB
:up# ultima instruciune de program, coninutul de la o adres# //PR&- 'ero poate fi g#sit
1n registrul ?.
Scrierea 1n memoria //PR&-
Pentru a scrie datele 1n locaia //PR&-, programatorul tre,uie mai 1nt2i s# scrie adresa 1n
registrul //A:R 8i datele 1n registrul //:A+A. >umai atunci este folositor de a seta ,itul ER
ce pune totul 1n mi8care. =itul ER 9a fi resetat, 8i ,itul //I4 setat urm2nd o scriere ce
poate fi folosit# 1n procesarea 1ntreruperilor. Dalorile %%0 8i AA0 sunt prima 8i a doua c0eie
care inter'ic ca scrierea accidental# 1n //PR&- s# se 1nt2mple. Aceste dou# 9alori sunt
scrise 1n //C&>2 care ser9e8te doar pentru acel scop, de a primi aceste dou# 9alori 8i de a
pre9eni orice scriere accidental# 1n memoria //PR&-. 5iniile de program marcate ca 1, 2, !
8i $ tre,uie s# fie e;ecutate 1n acea ordine 1n inter9ale egale de timp. :e aceea este foarte
important, s# 1nc0idei 1ntreruperile ce ar putea sc0im,a timpul necesar pentru e;ecutare
instruciunilor. :up# scriere, 1ntreruperile, pot fi permise din nou.
/;emplu unei p#ri a programului ce scrie datele A;// 1n prima locaie 1n memoria //PR&-
ar putea ar#ta ca mai <osB
5ste reco&an+at ca 9#58 s0 %ie -nchis tot ti&pul cu e1cepia scrierii +atelor -n 55"#=(/ aa c0
posibilitatea unei scrieri acci+entale 2a %i &ini&0) ;crierea -n 55"#=( 2a %i auto&at tears04
SIST!$! D! TI$P R!A#
CAP0=0 STRCTRI D! SIST!$! C $ICROPROC!SOR P!NTR
CONDC!R!A PROC!S!#OR INDSTRIA#!
=0=0 Consideraii 2enerale
;cipamentele numerice de conducere a proceselor industriale (regulatoarele numerice,
calculatoarele de proces), n special dup introducerea n structura lor a microprocesoarelor au
constituit un pas considerabil pe calea reducerii decalaCului dintre rezultatele remarcabile oferite
de teoria sistemelor automate i tenicile aplicate n practica conducerii proceselor industriale.
"ceste ecipamente permit, fr a efectua modificri n structura sau n configuraia lor,
implementarea celor mai diverse strategii de conducere, ncep*nd cu cele de tip convenional,
P8D, i aCung*nd la cele care s determine atingerea performanelor optime ale funcionrii
proceselor cu un minimum de energie i materie prim. 5ealizarea acestor deziderate impune
specialitilor din domeniul conducerii proceselor cunoaterea specificului procesului condus i a
teoriei sistemelor automate, precum i a calculatoarelor de proces, a funcionrii acestor
elemente i, mai ales, a programrii lor pentru asigurarea scopului propus: supravegerea i
conducerea [n timp real[ a unui proces.
Definiie+ $e numete calculator de proces un comple% de miCloace tenice i de programme
care sunt destinate rezolvrii problemelor de supravegere, de comand, de diagnosticare i de
prognozare a funcionrii instalaiilor industriale. &n calculator de proces poate fi privit ca o
reuniune ntre un calculator numeric universal (de obicei un microcalculator sau un
minicalculator) nzestrat cu un e%ecutiv sau un sistem de operare corespunztor capabil s
funcioneze n timp real i un sistem de interfa (cuplorul de proces) cu procesul condus i
operatorul tenolog. $cema bloc a unui -P (calculator de proces) este prezentata n 0ig.l.l.
'i20 =0=
,n aceast scem, n categoria perifericelor generale sunt incluse: consola calculatorului
(pentru inginerul de sistem), imprimanta, uniti de discuri fle%ibile (flopp>+disE), uniti de
band magnetic (eventual) etc.
-onsola operatorului de proces (operatorului tenolog) + -.O.P. + este consola specialistului
tenolog care cunoate foarte bine procesul condus, dar care, n general, nu este informaticican.
-.O.P.+ul este de regul un panou cu un sistem de cei i lmpi de semnalizare sau un tablou
sinoptic sau, mai modern, un video+displa> color cu scema funcional a instalaiei sau
elemente . ' . din scema funcional a instalaiei la diferite nivele de detaliere. "stfel de
console (console cu displa> cu faciliti grafice) permit i alte funcii speciale ca, de e%emplu,
depanarea asistat de
calculator a instalaiei.
-alculatorul universal este de obicei un microcalculator realizat cu microprocesor de .= bii sau
ciar de 7 bii sau un minicalculator.
-uplorul de proces asigur dialogul bidirecional ntre procesul condus i calculatorul
universal.
;videniind cile de introducere i e%tragere (furnizare) a datelor de la i respectiv ctre proces
putem defini urmtoarele moduri poteniale de conectare dintre calculator i proces:
+ Sisteme de calcul off-line> la care legtura informaional ntre calculator i proces este
stabilit prin intermediul operatorului uman. Datele din proces pot fi culese normal, prin citire,
de ctre operator, sau automat ntr+o form care poate fi utilizat direct de
+ Sisteme de calcul in-line> sunt sistemele la care operatorul poate introduce datele n mod
aleator direct de la tastatur, ele trebuind s fie [imediat[ preluate i prelucrate. "pare, n acest
caz, necesitatea [ntreruptibilitii[ calculatorului n procesul de calcul?
+ Sisteme de calcul on-line> care sunt cuplate direct cu procesul pe partea de culegere de date
prin intermediul cuploarelor de proces (convertoare analog+numerice).
,n cazul n care datele de ieire sunt transmise operatorului sub form de mesaCe, iar acesta
intervine n proces n urma interpretarii lor, sistemul de numete on+line n circuit descis .
-alculatorul funcioneaz n regim de [gid operator[ sau [consultant[ al conducerii procesului.
,n cazul n care, pe baza datelor culese, sistemul de calcul elaboreaz mrimi pe care le aplic
direct procesului, far intervenia operatorului, sistemul se numete on+line n circuit ncis .
-onectarea on+line n circuit ncis poate fi de urmrire, situaie n care calculatorul calculeaz
(determin) i modific referinele unor regulatoare convenionale), sau direct (calculatorul
calculeaz i elaboreaz comanda la nivelul elementelor de e%ecuie).
Pentru a realiza funciile impuse, calculatorul de proces trebuie s posede o serie de faciliti:
+ s fie ntreruptibil?
+ s permit prelucrarea datelor culese direct din procesul condus prin intermediul unor
periferice specializate?
+ s ofere rspunsul ntr+un anumit interval de timp strict corelat cu evenimentele din process (s
funcioneze n [timp real[)?
+ s rezolve contradicia ntre capacitatea lui de a e%ecuta la un moment dat un singur program i
cerina procesului de a fi [servit[ n n> n ? => puncte simultan.
Definiie+ $istemele de calcul care preiau suficient de rapid datele de intrare, le prelucreaz ntr+
un interval de timp suficient de scurt i ofer utilizatorului sau direct procesului (prin periferice
specializate) rezultatele suficient de rapid pentru a mai putea influena desfurarea fenomenelor
din procesul care a produs datele de intrare, se numesc sisteme de calcul n timp real ($-25).
Deci, din definiia dat, se observ c, calculatoarele de proces fac parte din clasa $-25.
Dezvoltarea acestor clase de calculatoare a fost posibil, pe de o parte datorit perfecionrilor
tenologice (uniti centrale ultrarapide, specializarea ecipamentelor periferice, perfecionarea
transmisiei datelor), iar, pe de alt parte, prin dezvoltarea i perfecionarea sistemelor de operare
($O). 2oate aceste perfecionri au dus la micorarea timpului de rspuns al sistemului de calcul.
Definiie+ $e numete timp de rspuns al unui sistem de calcul intervalul de timp dintre
momentul generrii datelor primare i momentul obinerii rezultatului prelucrrii datelor.
Pentru un sistem de calcul on+line, timpul de rspuns este dat de intervalul de timp dintre
momentul producerii unui eveniment n procesul condus i momentul n care se genereaz ctre
proces. $e observ c acest timp nglobeaz timpul necesar aciziiei datelor, prelucrrii datelor
i generrii comenzii ctre proces.
8ndiferent de modul de conectare cu procesul, calculatorul de proces a format cel de+al doilea
nivel de conducere a proceselor industriale, primul nivel fiind reprezentat de elemente de
automatizare convenionale realizate de regul cu regulatoare de tip P8D.
-reterea comple%itii proceselor de conducere, impunerea unor cerine superioare de
fiabilitate, a avut drept efect imposibilitatea ndeplinirii ntregului volum de sarcini legate de
conducerea acestora cu un singur calculator de proces. Din aceste considerente a aprut
necesitatea distribuirii funciilor de conducere ntre mai multe uniti de calcul, care, la r*ndul
lor, au fost subordonate unui calculator [universal[ de mare capacitate, care s rezolve rapid o
serie de probleme comple%e cum ar fi: identificarea procesului, conducerea optimal sau
adaptiv a procesului etc. $e obine astfel o ierarizare funcional clasic pe trei nivele a unei
structuri de conducere numit structur. distri(uit. de conducere caracterizat prin fiabilitate,
fle%ibilitate i potenialitate ridicat. Prin intermediul unei astfel de structuri se poate asigura
conducerea proceselor de medie sau de mare comple%itate dup strategii de la cele mai simple
(de tipul P8D) la cele mai evoluate care vizeaz conducerea adaptiv i cea optimal. O structur
distribuita de conducere, frecvent nt*lnit n prezent este prezentat n 0ig.../.
'i20 =0@
Aa nivelul . sunt plasate elementele de automatizare convenional care primesc informaiile
despre proces prin intermediul traductoarelor i elaboreaz comenzi pentru reglarea acestuia
utiliz*nd algoritmi simpli de reglare de tip P8D.
;lementele de la nivelul /, regulatoare numerice monocanal sau multicanal specializate sau
microcalculatoare pentru conducerea proceselor, au sarcini cvasi+identice i cvasi+independente,
scimbul de informaii ntre elemente realiz*ndu+se prin intermediul magistralei sistemului sub
controlul directorului de trafic. 0unciile ce trebuie realizate la acest nivel sunt: aciziia i
validarea datelor culese din proces, calculul i elaborarea comenzilor ctre procesul condus prin
intermediul cuploarelor de proces, comunicarea cu operatorul tenolog (-OP) i cu nivelul
ieraric superior (minicalculatorul universal). ,n mod curent, la acest nivel se utilizeaz
microcalculatoare realizate cu microprocesoare pe 7 sau .= bii sau regulatoare numerice
realizate tot cu astfel de elemente. Puterea de calcul a acestor microcalculatoare acoper
necesitile de rulare a programelor care asigur funciile de reglare pentru 7+.= bucle de reglare.
Dac numrul buclelor de reglare este mai mare (peste /9) se recomand folosirea unui
microcalculator industrial de uz larg. Aa cel de+al treilea nivel de automatizare se introduce un
minicalculator de capacitate mare destinat conducerii dup strategii evoluate a ntregului proces.
,n cazul proceselor mai simple se poate utiliza ciar un microcalculator de proces de uz larg. 2ot
la acest nivel este plasat consola operatorului de proces cu funcii comple%e de comunicare cu
toate ecipamentele de calcul din cadrul structurii, av*nd rolul de a permite supravegerea i
conducerea operativ a procesului.
Dinamica elaborrii rezultatelor la nivelul 4 este relativ lent. 1inicalculatorul primete date
sintetice despre evoluia procesului de la nivelul inferior (nivelul /), iar mrimile rezultate n
urma calculelor nu intervin direct n proces, deci la acest nivel nu sunt necesare cuploare de
proces.
O problem important a acestei structuri de conducere este aceea a asigurrii compatibilitii
ntre structurile de date veiculate ntre diferitele nivele pentru a permite un dialog corect ntre
acestea.
&nul din principalele avantaCe ale unei astfel de structuri distribuite de conducere este acela c
ea poate fi dezvoltat n timp i spaiu, pe orizontal i pe vertical, de la simplu la comple%,
put*ndu+se ncepe cu un singur ecipament cu microprocesor plasat la nivelul / de automatizare,
dotat cu o consol operator proprie (displa>, tastatur, imprimant), 0ig...4, av*nd implementai
algoritmi de: aciziie i validare a datelor din proces, semnalizare i protecie la depirea
limitelor, calcul i elaborare a comenzilor ctre proces, comunicare cu operatorul n vederea
realizarii configurrii i urmririi evoluiei mrimilor din proces, posibiliti de comunicare cu
@8$ (nivelul ieraric superior).
'i20=080
"cest ecipament poate fi, aa cum am artat, fie un regulator numeric specializat av*nd aceti
algoritmi implementai sub forma unei biblioteci de programe organizat dup o aritectur bine
pus la punct, corespunztoare unei anumite clase de procese, sau poate fi un calculator destinat
conducerii proceselor industriale (microcalculator de proces) capabil de a fi dotat cu astfel de
algoritmi la momentul dorit.
0r a face o analiz detaliat a avantaCelor i dezavantaCelor celor dou moduri de rezolvare a
problemei conducerii, precizm c vom insista asupra celei de+a doua variante, i anume,
utilizarea n conducerea direct a proceselor a unui microcalculator de proces. "ceste
ecipamente permit eleborarea i implementarea unor algoritmi strict necesari orientai ctre
aplicaie i sunt mult mai fle%ibile. ;fortul de programare devine minim dac este pus la punct
tenica i tenologia de elaborare a unor astfel de programe i dac organizarea ard!are a
ecipamentului
este capabil s suporte un soft!are dup aceste principii.
=0@0 Schema de principiu a unei structuri de echipament cu microprocesor destinate
conducerii proceselor industriale :microcalculator de proces;
,n cele ce urmeaz va fi prezentat o structur cu microprocesor (microcalculator de
proces) amplasabil la nivelul / de automatizare n cadrul structurii ierarizate de conducere
prezentate n 0ig.../. $tructura este destinat s ndeplineasc funciile de supravegere
automat (culegere, validare i protocolare de date) i de conducere numeric direct prin
intermediul unor algoritmi bipoziionali, tripoziionali, de tip P8D sau evoluai a unei ntregi
clase de procese, n special, din categoria celor numite [lente[. De asemenea, structura trebuie s
asigure comunicarea cu consola operatorului de proces i cu nivelul ieraric superior. $cema
bloc a unei astfel de structuri, la nivel de blacE+bo%, este prezentat n 0ig...:. ;a trebuie s
permit o funcionare permanent, lipsit de blocaCe, iar legturile dintre modulele de program
utilizator i resursele ard!are s se realizeze uor i eficient.
'i20 =0A0
1erg*nd pe linia dezvoltrii arborescente, se poate obine o detaliere a scemei din
0ig...:, detaliere prezentat n 0ig...6. O asemenea configuraie permite din punct de vedere
soft!are urmtoarele:
+ aciziia i prelucrarea primar (validare, filtrare, liniarizare) a unui numr de mrimi
analogice din proces?
+ primirea unui numr de comenzi (intrri numerice) din proces prin intermediul unor contacte
de releu?
+ reglarea unor bucle simple sau n cascad cu algoritmi de tip P8D cu ieire analogical constant
pe poriuni, pe durata intervalului de discretizare?
+ comanda unui numr de relee (ieiri numerice) destinate realizrii at*t a comenzilor automate
(ieiri numerice), c*t i a algoritmilor de reglare bipoziionli sau tripoziionali sau de tip P8 sau
P8D
'i20 =0<0
cu ieire n impulsuri modulate n durat?
+ memorarea datelor curente n memoria 5"1?
+ nscrierea i memorarea programelor de baz (1O@82O5, ;K;-&28V) i utilizator n
memoria ;P5O1?
+ memorarea datelor strict necesare (din proces, sau cele configurabile) n memoria 5"1
nevolatil n vederea relurii funcionrii sistemului e%act din punctul unde a rmas la o eventual
cdere intempestiv a tensiunii de alimentare a calculatorului?
+ comunicarea cu consola operator proprie, format din:
+ displa>, pentru afiarea mrimilor curente i a celor configurabile?
+ tastatur, pentru configurarea sistemului i pentru conducerea manual a procesului sau a
nivelului . de automatizare?
+ imprimant, pentru protocolare de date i pentru nregistrarea evoluiei unor mrimi de interes
din proces?
+ comunicarea cu nivelul ieraric superior.
@umrul de intrri#ieiri analogice i#sau numerice depinde de configuraia aleas pentru
ecipament, adic de numrul de placete de interfa prezente n sistem.
1enionm c numrul de intrri#ieiri al unei placete specifice (8"+intrri analogice, ;"+ieiri
analogice, 8@+intrri numerice, ;@+ieiri numerice) variaz de la ecipament la ecipament.
8ndiferent de tipul ecipamentului, unitatea central trebuie s conin pe l*ng microprocesor i
un ceas pentru msurarea timpului i n funcie de care se desfoar toate operaiile din sistem,
precum i un puternic sistem de ntreruperi prin intermediul cruia se va lansa n e%ecuie, la un
moment dat, acel program care va avea prioritate ma%im.
=080 Particularit.ile pro2ramarii sistemelor de calcul n timp real
Particularitile programrii sistemelor de calcul cu microprocesoare destinate
supravegerii i#sau conducerii n timp real a proceselor industriale rezult din urmtoarele
condiii care trebuie ndeplinite:
+ posibilitatea sistemului de calcul de a rspunde instantaneu la semnale emise din proces n mod
aleator?
+ capacitatea sistemului de calcul de a primi datele direct din proces sau#i de a le transmite
direct n proces prin intermediul unor periferice nestandard (convertoare analog+numerice,
convertoare numeric+analogice etc.)?
+ cerina ca [timpul real[ n care sistemul de calcul este ocupat cu o anumit operaie
corespunztoare unui anumit eveniment, s fie strict corelat cu timpul n care se produc i alte
evenimente n procesul industrial condus?
+ rezolvarea contradiciei ntre capacitatea sistemului de calcul de a e%ecuta la un moment dat un
singur program i cerina procesului de a fi [servit[ n n puncte simultan? altfel spus, sistemul
trebuie s fac fa desfurrii simultane a diferitelor pri specifice ale procesului?
+ posibilitatea programrii tuturor categoriilor de procese (continue sau discrete)?
+ e%istena elementelor pentru testarea i depanarea eficient a programelor.
Din cele de mai sus, rezult c, pentru programarea unei aplicaii n timp real, limbaCul de
programare utilizat trebuie sa conin trei categorii de instruciuni:
+ instruciuni care s permit programarea modului n care se desfoar evenimentele n proces?
+ instruciuni care s precizeze locul n care se desfoar evenimentele n proces?
+ instruciuni care se refer la momentul sau intervalul de timp n care au loc evenimentele n
proces.
8nstruciunile din prima categorie formeaz un set de baz care poate fi utilizat fr opiuni de
timp real din partea sistemului de calcul. 8nstruciunile din celelalte categorii sunt specific
lucrului n timp real i formeaz o e%tensie a limbaCului de baz. ;le pot fi obinute prin
intermediul sistemului de ntreruperi (locul desfurrii evenimentelor) i a ceasului de timp real
(timpul sau intervalul de timp n care au loc evenimentele n proces) e%istente obligatoriu n
orice configuraie de conducere sau supravegere a unui proces.
&n sistem de calcul pentru conducerea unui proces reprezint o unitate dialectic ntre
componenta ard!are a sa, cea care definete configuraia sistemului i componenta sa soft!are,
care constituie totalitatea programelor sistemului.
Programele implementate pe un astfel de sistem de calcul se mpart n dou mari categorii:
a) programe de sistem?
b) programe de utilizator sau de aplicaie.
Pro2ramele de sistem sunt programe care au un caracter universal i sunt parte component a
unui anumit tip de calculator, independent de procesul pe care acesta l va conduce. "cest
ansamblu de programe formeaz ceea ce se numeste sistemul de operare al calculatorului i are
rolul de a asigura e%ecutarea corect a sarcinilor sale.
Pro2ramele de utilizator (programele de aplicaie sau de conducere), n opoziie cu programele
de sistem, au un caracter specific, funcie de proces, ele fiind o imagine a ceea ce se nt*mpl n
proces.
Cap0 @0 Interacinea tasBurilor concurente
@0=0 Consideraii 2enerale
;%ploatarea avantaCelor aduse de considerarea unei aplicaii ca fiind compus din mai multe
tasEuri ce se e%ecut n paralel sau concurent impune, aa cum a rezultat i din e%emplele
prezentate n capitolul anterior, folosirea unor mecanisme care s asigure interaciunea corect a
tasEurilor pentru ca programul n ansamblu s aib evoluia dorit. $+a demonstrat c
interaciunea tasEurilor poate fi redus la trei tipuri de operaii multitasEing: comunicarea ntre
tasEuri, sincronizarea tasEurilor i e%cluderea mutual a tasEurilor.
Comunicarea ntre tasBuri este operaia multitasEing prin care se permite tasEurilor s
scimbe date ntre ele. Datele comune (utilizate de mai multe tasEuri) sunt memorate n
memoria intern a calculatorului n anumite zone declarate ca zone comune (pentru datele
comune) i la care vor avea acces toate tasEurile. Deoarece zonele de date comune organizate n
memoria intern au o capacitate mic i limiteaz la un volum mic datele comune, n cazul unui
volum mare de date, acestea se organizeaz n fiiere plasate pe un suport de memorie e%tern
(de obicei disc magnetic).
1aCoritatea sistemelor de operare actuale ofer un sistem de lucru cu fiierele prin intermediul
unui $<0 (sistem de gestiune a fiierelor). DezavantaCul acestei metode este legat de timpii
relativ mari pentru accesarea datelor din fiiere, dar metoda este utilizat datorit capacitii
mari de memorare a acestor sisteme.
Sincronizarea este operaia multitasEing care asigur ealonarea corect a e%ecuiei tasEurilor n
timp sau, altfel spus, care stabilete o relaie de ordine ntre instruciunile e%ecutate de acestea,
independent de vitezele relative ale lor.
$copul unei metode de sincronizare este de a oferi unui tasE 2i aflat n e%ecuie miCloacele care
s+i permit, n primul r*nd, s bloceze un alt tasE activ 2C sau s se bloceze el nsui n
ateptarea producerii unui eveniment e%tern sau e%pirrii unui interval de timp i, n al doilea
r*nd, s debloceze un tasE 2E cruia s+i transmit eventual i unele informaii. ,n evoluia lor
dou sau mai multe tasEuri se pot sincroniza fie n funcie de o condi$ie de timp, fie n funcie de
un e#eniment eterior. 1ai e%act, n cadrul unei aplicaii, se poate nt*lni situaia ca un tasE 2E
pentru a+i putea continua e%ecuia s fie nevoit s atepte trecerea unui anumit interval de timp
sau realizarea unui eveniment din proces, eveniment controlat de regul de un alt tasE 2i. ,n
cazul sincronizrii pe o condiie de timp, tasEul 2E se va bloca p*n la e%pirarea intervalului de
timp menionat dup care va trece n starea 5;"Db i i va putea continua e%ecuia. ,n cazul
sincronizrii pe un eveniment e%terior, tasEul 2E se va bloca dac evenimentul nu a avut loc. De
regul, acest eveniment este supravegeat de un alt tasE 2i care va debloca tasEul 2E n
momentul n care evenimentul s+a ndeplinit.
Operaiile de sincronizare pot fi:
+ e%plicite (directe), caz n care un tasE acioneaz direct asupra altui tasE, primitivele de blocare
i deblocare trebuind s fie astfel concepute nc*t s accepte ca parametru numele tasEului
asupra cruia se acioneaz?
+ implicite (indirecte), caz n care un tasE acioneaz asupra altui tasE prin declanarea unor
mecanisme intermediare? primitivele de blocare i deblocare nu mai folosesc e%plicit numele
tasEului asupra cruia se acioneaz, ci folosesc o serie de variabile special+create n acest scop
(semafoare, variabile eveniment etc.).
5estriciile care determin sincronizarea tasEurilor pot fi concentrate sub forma:
+ operaia " nu se poate e%ecuta naintea trecerii intervalului de timp c2?
+ operaia " nu se poate e%ecuta naintea operaiei 3.
!9cluderea mutual. este operaia multitasEing prin care se e%clude accesul simultan al mai
multor tasEuri la una i aceeai resurs (zona de date din memorie, fiier, periferic etc.).
5estriciile, n acest caz, sunt de tipul: operaiile ", 3, -, ..., K nu pot avea loc simultan.
Definiie: $ecvena de program a fiecrui tasE n care se apeleaz o resurs comun partaCat se
numete sec$iune critic* a tasEului. (Din aceast cauz, de multe ori, e%cluderea mutual a
tasEurilor se mai nt*lnete i sub denumirea de problema seciunii critice).
Plec*nd de la ipoteza c intervalele de timp de e%ecuie ale tasEurilor sunt diferite i necunoscute
i c orice tasE iese din seciunea sa critic dup un interval finit de timp, soluia unei probleme
de acest tip trebuie s satisfac urmtoarele condiii:
a) + utilizarea e%clusiv: la un moment dat un singur tasE i numai unul se poate afla n seciunea
sa critic corespunztoare unei resurse?
b) + evitarea blocaCului reciproc: dac mai multe tasEuri sunt blocate n ateptarea aceleiai
resurse critice i aceasta nu este ocupat, atunci unul dintre aceste tasEuri (de regul cel mai
prioritar), trebuie s poat s intre n seciunea sa critic la captul unui interval finit de timp?
c) + evitarea dependenelor inutile: dac un tasE este blocat n afara seciunii sale critice, acest
blocaC nu trebuie s mpiedice intrarea unui alt tasE n seciunea sa critic.
Datorit condiiilor restrictive similare, problemele sincronizrii i e%cluderii mutuale pot fi
tratate cu procedee comune. ,n prezent e%ist o mare varietate de procedee puse la dispoziia
utilizatorului pentru rezolvarea acestor operaii multitasEing i anume:
+ folosirea unor variabile de tip ntreg numite semafoare
+ folosirea unor variabile logice numite #ariabile e#eniment
+ cu aCutorul unor structuri de date numite mesaHe i a unor zone de memorie unde se depun
aceste mesaCe numite celule mesaC sau cutii potale + cu aCutorul conceptului de monitor
+ cu aCutorul conceptului de rendez#ous .
Observaie: &ltimele trei procedee au avantaCul de a rezolva n mod unitar i problema
comunicrii
ntre tasEuri.
@0@0 tilizarea semafoarelor pentru e9cluderea mutual. a tasBurilor 4i pentru
sincronizarea
lor indirect.
&n semafor $;1 este definit de perecea dv($;1), \($;1)e, unde:
+ v($;1) T valoarea semaforului?
+ \($;1) T o coad de ateptare destinat s primeasc tasEurile care eueaz n ncercarea lor
de a
trece de acest semafor.
Variabila v($;1) este de tip ntreg, iar valoarea sa iniial v
9
($;1) este fi%at n momentul
crerii semaforului.
"dministrarea cozii \($;1) este la latitudinea sistemului de operare, iar coninutul su naintea
primei utilizri a semaforului este vid.
$emafoarele pot fi mprite n dou categorii:
+ semafoare care pot lua numai dou valori, de obicei 9 i ., numite, din acest motiv, semafoare
binare?
+ semafoare care pot lua orice valoare ntreag, numite semafoare generale sau contorizate.
Pentru manipularea semafoarelor s+au creat dou primitive speciale, nentreruptibile, notate cu P
i V implementate n soft!are+ul ;K;-&28V&A&8. Primitiva P apare ca o cerere de depire a
semaforului, iar primitiva V are semnificaia eliberrii, n anumite condiii, a unei autorizaii de
trecere.
Observaie: 1enionm c, semafoarele binare sunt suficiente pentru rezolvarea operaiilor
multitasEing menionate, astfel nc*t n continuare se vor face referiri numai la acestea.
Pentru semafoarele binare, primitivele P i V au urmtoarea structur:
Primiti/a P:S!$;+
dac* v($;1) T 9 atunci
\($;1) f 2i #` 3loceaz tasEul 2i, adic tasEul care a lansat primitiva, `#
#` introduc*ndu+l n coada de ateptare a semaforului \($;1) `#
altfel
v($;1) T v($;1) + .
Primiti/a 3:S!$;+
dac* v($;1) g 9 atunci
dac* \($;1) g h atunci
2C f \($;1) #` Debloceaz tasEul 2C, care poate fi fie primul tasE `#
#` din coada de ateptare a semaforului, fie tasEul cel `#
#` mai prioritar din aceasta `#
altfel
v($;1) T v($;1) H .
dac* \($;1) g h atunci
2E f \($;1) #` Debloceaz toate tasEurile 2E din coada `#
#` de ateptare \($;1) a semaforului $;1 `#
Prin utilizarea semafoarelor binare i a primitivelor P i V care acioneaz asupra lor aa cum s+a
artat mai sus, se poate rezolva eficient problema e%cluderii mutuale a resurselor critice
partaCate. Pentru aceasta, fiecrei resurse critice i se asociaz c*te un semafor av*nd iniial
valoarea .. Pentru claritate considerm:
!9emplul @0=0 -onsiderm n tasEuri 2.,2/, ..., 2n, care n e%ecuia lor pot apela simultan o
aceeai resurs. Pentru realizarea e%cluderii mutuale asociem acestei resurse critice un semafor
binar $;1 av*nd valoarea iniial v9($;1) T .. ,nainte de a intra n propria seciune critic,
fiecare tasE este obligat s e%ecute primitiva P($;1), iar dup prsirea seciunii critice trebuie
s e%ecute operaia V($;1). "stfel, secvena de program care ncadreaz seciunea critic a
fiecrui tasE arat
ca n 0igura /..
2asEul 2i aflat n e%ecuie care efectueaz operaia
P($;1) se bloceaz dac v($;1) T 9 i i
continu e%ecuia dac v($;1) T .. ,n cazul blocrii
tasEului 2i pe operaia P($;1), sistemul de operare
va da controlul unui alt tasE 2C din coada de ateptare
\($;1) a semaforului, aflat n starea 5;"Db. Dac
tasEul 2i intr n propria sa seciune critic, atunci
v($;1) T 9 i nici o alt operaie P($;1) nu mai
poate avea loc, deci nici un alt tasE 2C, C g i nu mai
poate intra n sectiunea critic a programului su,
p*n c*nd tasEul 2i nu o prsete pe a lui, moment
n care e%ecut*nd primitiva V($;1), face v($;1) T
.. ,n acest moment are loc deblocarea tasEurilor care
ateptau s intre n propria lor seciune critic pentru
aceeai resurs.
'i20 @0=0
;%ist i situaii nedorite i care trebuie eliminate. De e%emplu, dac tasEul aflat n
e%ecuie
este blocat n propria sa seciune critic, atunci ntruc*t v($;1) a rmas 9 (dup e%ecuia
primitivei
P($;1)) se realizeaz blocaCul infinit al tuturor celorlalte tasEuri care utilizau aceeai resurs.
Din
aceast cauz trebuie luate msuri pentru eliminarea acestei situaii, sau de eliberare a resursei.
Pentru a+i garanta fiecrui tasE introducerea n seciunea sa critic dup un interval de timp finit,
trebuie acordat o atenie deosebit administrrii cozilor de ateptare a semafoarelor. -ea mai
simpl metod din acest punct de vedere este metoda FIF:, dar, n multe situaii, metoda dup*
priorit*$i (utilizat n multe ;K;-&28V; de timp real) poate prezenta avantaCe evidente.
$emafoarele binare mpreun cu primitivele P i V pot constitui un miCloc de soluionare a
problemelor de sincronizare indirect a tasEurilor cu evenimente e%terioare. Primitiva P
acioneaz
ca o operaie de blocare a unui tasE, n timp ce primitiva V poate fi privit ca un semnal de
deblocare al acestuia. Valoarea semaforului v($;1) se asociaz cu starea evenimentului e%terior
astfel:
v($;1) T 9 + evenimentul nu a avut loc?
v($;1) T . + evenimentul a avut loc.
,n aceste condiii, valoarea iniial a semaforului va fi totdeauna zero (v9($;1) T 9). ,n cazul a
dou sau mai multe tasEuri sincronizate pe un singur eveniment e%terior, procedeul este foarte
eficient i se desfoar ca n e%emplul /./.
!9emplul @0@0 -onsiderm / tasEuri 2. i 2/ care trebuie sincronizate pe un eveniment e%terior,
eveniment de ndeplinirea cruia este condiionat la un moment dat e%ecuia tasEului 2..
Pentru aceasta procedm astfel. "sociem acestui eveniment un semafor $;1. Valoarea
semaforului
v($;1) se asociaz cu starea evenimentului e%terior aa cum s+a artat mai sus. 5ealizarea
evenimentului respectiv este supravegeat de tasEul 2/. "t*t timp c*t evenimentul nu a avut loc,
semaforul $;1 are valoarea v($;1) T 9. 2asEul 2. fiind n e%ecuie i aCung*nd la momentul
critic al programului, va ncerca s e%ecute operaia P($;1) i se va bloca deoarece v($;1) T
9.
2asEul 2/ va debloca tasEul 2. e%ecut*nd primitiva V($;1) care va face v($;1) T . c*nd va
sesiza ndeplinirea evenimentului. $tructura programelor celor dou tasEuri n vederea
sincronizrii
pe un eveniment e%terior este prezentat n 0igura /./.
Precizm c acest procedeu devine ineficient n cazul unor tasEuri sincronizate pe mai multe
evenimente e%terne. De asemenea, prin intermediul acestor variabile (semafoare binare), nu este
posibil realizarea sincronizrii tasEurilor pe o condiie de timp. $emafoarele rm*n ns foarte
eficiente n rezolvarea problemei seciunii critice.
0ig. /./.
@080 tilizarea /aria(ilelor e/eniment pentru sincronizarea indirect. 4i e9cluderea
mutual. a tasBurilor
Variabilele tip eveniment sunt variabile logice speciale, partaCate care pot fi manipulate numai
cu aCutorul unor primitive special+compuse n acest scop. "ceste variabile pot fi declarate prin
program sau pot fi parte constituent a ;K;-&28V&A&8, caz n care acestea se cunosc i pot fi
numai apelate prin program.
Operaiile posibile asociate unei variabile eveniment sunt, de regul, D;-A"@i"5;"
provocat de un tasE supravegetor i "i2;P2"5;" i#sau -O@$&1"5;" (sau ambele),
e%ecutate de un tasE a crei e%ecuie este condiionat de realizarea respectivului eveniment.
;fectul acestor operaii depinde de natura evenimentului. ,n acest sens se definesc e#enimente
nememorate i e#enimente memorate. ,n cazul e/enimentelor nememorate, o condiie esenial
pentru ca acestea s fie e%ploatate const n aceea ca sosirea lor s fie ateptat. "stfel, dac
unul sau mai multe tasEuri a cror e%ecuie depinde de un astfel de eveniment se afl, n
momentul sosirii evenimentului, n starea 3AO-Z;D, ele vor fi trecute imediat n starea
5;"Db. "ltfel, declanarea evenimentului rm*ne fr efect i, n plus, el este pierdut.
Fustificarea unui astfel de mod de tratare se e%plic prin faptul c n anumite aplicaii, anumite
evenimente sunt semnificative numai n anumite momente ale derulrii procesului i, n
cosecin, dac nu sunt ateptate acestea nu mai prezint nici un interes.
!/enimentul memorat este obinut prin e%tensia celui nememorat i este reprezentat printr+o
variabil logic notat [;V[ care poate lua valorile 0"A$ (asociat cu valoarea 9) sau
"D;Vj5"2 (asociat cu valoarea .), indic*nd cele dou alternative posibile: nedeclanarea,
respectiv declanarea acestui eveniment.
-*nd un tasE aCunge ntr+un punct n care continuarea e%ecuiei lui este condiionat de sosirea
unui eveniment asociat cu variabila ;V, el se va bloca numai dac evenimentul ateptat nu s+a
produs (;V T 0"A$). $osirea evenimentului (;V T "D;Vj5"2) provoac trecerea tasEului
care l atepta n starea 5;"Db. "cum este necesar e%primarea faptului c respectivul
eveniment a fost consumat. -onsumarea sau anularea unui eveniment se face prin atribuirea
variabilei ;V a valorii 0"A$.
De regul, n aplicaiile de conducere a proceselor se opereaz cu conceptul de eveniment
memorat, primitivele care pot aciona asupra variabilelor eveniment asociate fiind:
ATEAPT(expresie logic fora! c" variabile evenien!# : bloceaz tasEul p*n
c*nd
e%presia logic conin*nd una sau mai multe variabile eveniment capt valoarea "D;Vj5"2.
DEC$A%A&(E'# : face ca variabila eveniment ;V s capete valoarea "D;Vj5"2
i
are semnificaia c evenimentul asociat cu aceast variabil logic a avut loc.
CO%()*(E'# : face ca variabila eveniment menionat ;V s capete valoarea 0"A$
i
are semnificaia c evenimentul asociat cu aceast variabil logic s+a consumat.
Valoarea iniial a unei variabile eveniment este 0"A$. Variabilele eveniment sunt diferite de
semafoare i prin aceea c primitiva "_2;"P2j() nu le modific valoarea.
Variabilele tip eveniment sunt adecvate pentru sincronizarea tas&urilor n func$ie de e#enimente.
!9emplul @080 $tructura programelor a dou tasEuri 2. i 2/ sincronizate pe un eveniment
e%terior cruia i se asociaz variabila eveniment ;V este prezentat n 0igura /.4.
2asEul 2/ trebuie s conin dup directiva "_2;"P2j(;V) directiva -O@$&1j(;V)
care semnific fapul c evenimentul a fost luat n considerare i care va permite o nou ateptare
din partea tasEului 2/ pe acelai eveniment, n cazul funcionrii celor dou tasEuri n bucl
infinit. De asemenea, tasEul 2. trebuie s aib posibilitatea de a da controlul tasEului 2/
imediat dup ndeplinirea evenimentului. "ceasta se realizeaz fie prin introducerea dup
directiva D;-A"@_"Vj(;V) a unei directive care s declare eveniment semnificativ, fie prin
construirea
directivei D;-A"@_"Vj (;V) cu o opiune de acest fel.
'i20 @08
!9emplul @0A0 -onsiderm trei tasEuri 2., 2/, 24, primele dou urmrind ndeplinirea a dou
evenimente e%terne, asincrone, asociate cu variabilele ;V. i ;V/, iar al treilea fiind condiionat
n e%ecuia lui, la un moment dat, de ndeplinirea ambelor evenimente. -a atare, la momentul
critic, tasEul 24 va fi obligat s e%ecute primitiva "_2;"P2j(;V. i ;V/) i se va bloca dac
cel puin una dintre variabile are valoarea 0"A$, ceea ce semnific faptul c cel puin unul
dintre evenimente nu a avut loc. Pe msur ce evenimentele au loc, tasEul 2., respectiv 2/ vor
e%ecuta primitivele D;-A"@_"Vj(;V.), respectiv D;-A"@i"Vj(;V/) care vor avea ca
efect
deblocarea tasEului 24 i aducerea lui n situaia de ai putea continua e%ecuia. $tructura
programelor celor trei tasEuri este prezentat n 0igura /.:.

'i2ura @0A0
Variabilele tip eveniment pot fi utilizate i n realizarea opera$iilor multitas&ing de
ecludere mutual*. Pentru evitarea accesului simultan a dou sau mai multe tasEuri la o resurs
partaCat, acesteia i se asociaz o variabil eveniment ;V1 creia i se atribuie iniial valoarea
"D;Vj5"2. Directiva D;-A"@i"Vj(;V1) simuleaz primitiva V (de la semafoare), iar
ansamblul de directive "i2;"P2j(;V1) urmat imediat de -O@$&1j(;V1) poate simula
primitiva P, dac secvena se e%ecut nentreruptibil, ceea ce nu este greu de realizat. $tructura a
dou tasEuri 2. i 2/ n situaia de e%cludere mutual este prezentat n 0igura /.6.
Primul tasE care intr n seciunea critic aCunge n aceasta trec*nd de primitiva
"i2;"P2j(;V1) + posibil, deoarece iniial ;V1 T "D;Vj5"2, e%ecut*nd apoi primitiva
-O@$&1j(;V1) ceea ce duce la ;V1 T 0"A$. ,n acest moment orice alt tasE care dorete s
ptrund n propria sa seciune critic se va bloca pe primitiva "_2;"P2j(;V1) p*n c*nd
tasEul
iniial abandon*nd resursa comun e%ecut primitiva D;-A"@_"Vj(;V1) n urma creia
variabila eveniment ;V1 capt valoarea "D;Vj5"2.
'i20 @0<
Su(iecte
-aracteristici ale sistemelor incorporate
2ipuri de sisteme incorporate
2ipuri de funcii realizate de sistemele incorporate
"ritectura sistemelor incorporate
8mplementarea sistemelor incorporate
-aracteristici ale soft+ului utilizat n sistemele incorporate
P58@-8P"A;A; ;2"P; ,@ P5O-;$&A D; P5O8;-2"5; "A ;m$
;A"3O5"5;" $P;-808-"288AO5
P5O8;-2"5; "5B82;-2&5"Aj (8mportanta i cerinte)
"A;<;5;" P5O-;$O5&A&8
D;VVOA2"5;" V;5$8&@88 "5B82;-2&5"A;
81PA;1;@2"5;" $8$2;1&A&8
V;5808-"5; $8 2;$2"5;
$tructura unui sistem incorporat
Procesoare (destinatii, structura)
1icrocontrolere (destinatii, structura)
Procesoare de semnal numeric (D$P)
Dispozitive de intrare ieire i cip+uri de interfa
-lasificare memorii la nivel de baz
$tocarea datelor
2ipuri de memorii comune
1icrocontrolerul P8-.=07: Prezentare general
Pipelining
<enerator de ceas ' oscilator
5eset+ul
5egistru $2"2&$
5egistrul OP28O@
&nitatea de Procesare -entral
$25&-2&58 D; $8$2;1; -& 18-5OP5O-;$O5 P;@25&
-O@D&-;5;" P5O-;$;AO5 8@D&$258"A;
-onsideraii generale
$cema de principiu a unei structuri de ecipament cu microprocesor destinate conducerii
proceselor industriale (microcalculator de proces)
Particularitile programarii sistemelor de calcul n timp real
8nteracinea tasEurilor concurente -onsideraii generale
&tilizarea semafoarelor pentru e%cluderea mutual a tasEurilor i pentru sincronizarea
lor indirect