Sunteți pe pagina 1din 184

Achiziţia şi prelucrarea semnalelor

medicale Prof. Dr. Ing. Paşca Sever

Fundamentele achiziţiei de semnale 2

Conţinutul cursului

z Definirea semnalelor electrice şi o clasificare a lor


FUNDAMENTELE ACHIZIŢIEI DE SEMNALE
z Caracteristicile semnalelor digitale şi analogice, cu reprezentarea în
Prof. Dr. Ing. Sever Paşca domeniul frecvenţă a semnalelor analogice

Catedra de Electronică Aplicată şi Ingineria Informaţiei z Definirea şi prezentarea principalelor proprietăţi ale semnalelor
Facultatea Electronică, Telecomunicaţii şi Tehnologia Informaţiei sinusoidale modulate
Universitatea POLITEHNICA din Bucureşti

z Sisteme de achiziţie şi control al datelor

z Eşantionarea şi cuantizarea semnalelor

3 Fundamentele achiziţiei de semnale 4


Semnale electrice

Noţiunea de semnal
z Noţiune foarte generală şi constituie obiect de consideraţii
Semnale electrice multidisciplinare
z Se vorbeşte curent de semnale acustice, semnale optice, tensiuni şi
curenţi electrici, impulsuri, zgomote, unde seismice, neurosemnale, dar şi
despre semnale economice, semnale nonverbale (gestică, mimică etc.).
z Vom discuta în continuare, datorită naturii cursului, practic numai despre
Semnalul – Este acea mărime fizică măsurabilă care este semnale electrice.
capabilă să transmită o anumită informaţie. z În general, un semnal nu este reprezentat doar printr-o valoare
singulară ci printr-o colecţie de valori
Semnalul electric – Este un semnal reprezentat printr-o mărime z Care este caracteristica definitorie a unui semnal?
electrică (tensiune, curent, intensitate câmp | variaţia în timp a tensiunii sau curentului care îl reprezintă, o
electric etc.) variaţie care nu poate fi prevăzută de la început în totalitate

Fundamentele achiziţiei de semnale 5 Fundamentele achiziţiei de semnale 6


Semnale electrice Semnale electrice

Definiţie matematică Notaţii utilizate pentru semnale electrice


Fie T o mulţime înzestrată cu o relaţie de ordine totală ≤, numită mulţime
de momente. Mărimea notată Simbol Indice Exemplu
Dacă M este o mulţime oarecare fixată, atunci prin semnal definit pe
mulţimea-timp T cu valori în M se înţelege orice aplicaţie Tensiuni de alimentare Literă mare Literă mare dublată VCC; IEE
x : T → M, t → x(t), Valoare continuă (medie) Literă mare Literă mare VCE; IC
care asociază fiecărui moment t ∈ T un element x(t) din M, bine Valoarea instantanee totală
determinat, numit eşantionul semnalului x la momentul t. (componentă continuă plus Literă mică Literă mare vCE; iB
Observaţii: componentă alternativă)
z Această definiţie este restrictivă (de exemplu, nu cuprinde semnalele Valoare instantanee
multidimensionale şi nici impulsurile), dar constituie o bază de discuţie şi Literă mică Literă mică vcb; ie
a componentei alternative
arată că studiul semnalelor este strâns legat de studiul funcţiilor, de analiza
reală şi complexă, ca şi de analiza funcţională, pentru T şi M particulare. Amplitudinea
Literă mare Literă mică Vce; Ic
z Deşi nu este obligatoriu, mulţimea T este de cele mai multe ori timpul. În semnalului sinusoidal
astfel de situaţii, un semnal se reprezintă ca orice funcţie matematică în care
pe orizontală se reprezintă timpul (momentele de timp din mulţimea T) iar pe
verticală mărimea fizică (valorile din mulţimea M).

Fundamentele teoretice ale achiziţiei de semnale 1


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Fundamentele achiziţiei de semnale 7 Fundamentele achiziţiei de semnale 8


Semnale electrice Semnale electrice

Clasificarea semnalelor după tipul domeniilor Reprezentarea semnalelor


z După valorile timpului / după domeniul lor de definiţie T:
| Semnale continue în timp (T este un interval al axei reale R)
| Semnale discrete în timp sau eşantionate (T este inclus în Z sau N)
z După valorile sau nivelurile acestora / după mulţimea M de definiţie:
| Semnale cu valori continue (M este un interval al lui R)
| Semnale cu valori discrete - cuantizate (M are un număr finit de valori)

Observaţie:
z Orice semnal poate fi aproximat printr-un număr finit de eşantioane
având valori cuantizate pe un număr finit de niveluri. Discretizarea (trecerea
de la valori continue la valori finite) în timp, adică în mulţimea T de definiţie a
semnalului) se face prin eşantionare, iar în valoare, adică în mulţimea M în
care ia valori semnalul, se face prin cuantizare. Acest operaţii sunt esenţiale
în reprezentarea (codificarea) numerică a semnalelor, care asigură
posibilitatea de stocare, prelucrare şi transmisie de informaţie, prin
mijloacele cele mai perfecţionate actuale (sub formă digitală).

Fundamentele achiziţiei de semnale 9 Fundamentele achiziţiei de semnale 10


Semnale electrice Semnale electrice

Clasificarea semnalelor după tipul informaţiei reprezentate Clasificarea semnalelor


| Semnale digitale/numerice după dependenţa lor de alte evenimente
(reprezintă informaţii numerice, în majoritatea cazurilor binare, care
| Semnale deterministe
se modifică la momente de timp discrete)
(ale căror valori sunt bine determinate)
| Semnale analogice
| Semnale aleatoare / întâmplătoare
(reprezintă informaţii cu variaţie continuă permanentă în timp)
(ale căror valori pot fi prezise doar cu o anumită probabilitate)

Observaţii:
Observaţii:
z Ambele tipuri de semnale sunt aproape întotdeauna semnale continue
z Semnalele reale sunt întotdeauna aleatoare (au cel puţin o componentă
în timp cu valori continue.
aleatoare, zgomotul).
z În sistemele electronice reale, fie că sunt digitale sau analogice,
z Semnalele deterministe sunt de fapt idealizări matematice absolut
semnalele sunt întotdeauna continue în timp cu valori continue. Dar,
necesare pentru înţelegerea celor aleatoare şi pentru analiza
semnalele pot fi reprezentate pentru simplificare în una din cele 4 tipuri
simplificată a proceselor reale.
prezentate anterior.
z Caracteristicile semnalelor digitale şi analogice vor fi prezentate ulterior
într-un subcapitol separat.

Fundamentele achiziţiei de semnale 11 12


Semnale electrice

Clasificarea după modul de transmitere a informaţiei utile


| Semnale în banda de bază
(informaţia este transmisă direct, prin semnalul care îl conţine)
| Semnale modulate
Semnale digitale şi analogice
(informaţia este transmisă prin intermediul unui semnal de frecvenţă
mult mai mare decât a semnalului care conţine informaţia)

Observaţii:
z Modul de transmisie utilizat depinde de caracteristicile informaţiei, de
mediul prin care se transmite informaţia (cabluri electrice, optice, aer,
apă etc.), de performanţele dorite pentru transmisia informaţiei (distanţă,
zgomote admise, distorsiuni, erori acceptabile etc.)
z Informaţia transmisă poate fi atât sub formă continuă (analogică) cât şi
sub formă discretă (digitală/numerică). Exemplificările următoare vor fi
făcute pentru semnale continue.
z Caracteristicile semnalelor modulate vor fi prezentate ulterior într-un
subcapitol separat.

Fundamentele teoretice ale achiziţiei de semnale 2


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Fundamentele achiziţiei de semnale 13 Fundamentele achiziţiei de semnale 14


Semnale digitale şi analogice Semnale digitale şi analogice

Semnale digitale (numerice) Rezoluţia semnalelor digitale


Tensiuni
Semnalele digitale sunt Utilizarea unei singure variabile binare v furnizează o mulţime de valori
reprezentate de tranziţii bruşte între cam săracă – 2 valori posibile; ea poate distinge numai între două obiecte.
două nivele de tensiune aflate în } DH Pentru a putea reprezenta mărimi cu mai multe valori, sunt necesare mai
două domenii disjuncte de valori, multe variabile binare care să fie privite simultan, ele constituind de fapt un
fiecare domeniu fiind asociat cu x∈{0; 1} vector binar de forma v = {v1, v2, …, vN} unde fiecare componentă este o
valoarea logică corespunzătoare unei variabilă booleană vi ∈ {0, 1}. În acest fel, vectorul constituit din N biţi poate
variabile. } DL avea 2N combinaţii distincte şi deci poate distinge între 2N obiecte sau valori.
Evident însă, pentru a face Se spune în acest caz că reprezentarea unei mărimi se face cu o rezoluţie
tranziţii între două nivele de N biţi.
semnificative, tensiunea v va trebui Concluzie:
să se găsească în anumite momente Orice reprezentare numerică a unui semnal este legată de o rezoluţie,
de timp între cele două domenii specifică reprezentării respective. Dacă această rezoluţie este mai bună,
(zonele gri). Pentru aceste intervalele DH mai fină decât rezoluţia proprie a semnalului, atunci reprezentarea acestuia
de timp, citirea valorilor tensiunii v prin valori numerice pe N biţi nu introduce erori. În caz contrar, două sau mai
constituie o eroare. Aceste treceri de multe valori semnificative, distincte, din semnal se vor confunda prin
la un nivel la altul sunt însă marcaje DL reprezentarea lor cu valori numerice identice, ceea ce înseamnă o scădere
de timp. Tranziţiile sunt cele care pot a rezoluţiei acestuia.
t
stabili o cronologie a evenimentelor.

Fundamentele achiziţiei de semnale 15 Fundamentele achiziţiei de semnale 16


Semnale digitale şi analogice Semnale digitale şi analogice

Semnale analogice Semnale analogice periodice/neperiodice


Semnalele analogice pot fi definite ca fiind variaţii continue de tensiune Un semnal este periodic dacă satisface relaţia
sau curent situate într-un anumit interval, permanente în timp. s (t ) = s(t + nT0 )
Semnalele sunt procese aleatoare. În caz contrar, ele sunt perfect
pentru orice moment de timp t. Mărimea T0 este perioada semnalului.
cunoscute dinainte şi, ca urmare, nu prezintă interes în a fi transmise,
măsurate etc. Orice expresie analitică a unui semnal trebuie să conţină cel Toate variaţiile semnalului periodic sunt cunoscute dacă se cunoaşte
puţin o componentă aleatoare care să-i dea acea caracteristică de evoluţia sa în interiorul unei singure perioade.
necunoaştere, care o transformă dintr-o mărime complet cunoscută şi care Pentru semnalele periodice, se definesc puterea medie pe o perioadă
poate fi generată local pe baza unei anumite reguli, într-o mărime care respectiv puterea instantanee astfel:
trebuie observată şi urmărită pentru a-i afla evoluţia.
s (t ) dt p(t ) = v 2 (t ) R = i 2 (t ) ⋅ R
s 1 T 2
Toate valorile unui semnal, anterioare în raport
P=
T 0∫
cu un moment de timp dat, reprezintă "istoria" s(τ) Prin convenţie se consideră o rezistenţă egală cu unitatea, ceea ce
sau trecutul acestuia. Practic la toate elimină dependenţa puterii semnalului de valoarea rezistenţei de sarcină.
semnalele, valorile s(t), anterioare momentului t
de timp dat, contribuie, sub o formă oarecare, la τ În cazul semnalelor neperiodice se defineşte energia acestora
+∞
stabilirea valorii semnalului la momentul τ. E = ∫ s 2 (t ) dt
−∞
Semnalele sunt în general funcţii de timp
controlate de istoria lor. ISTORIA Evident această integrală este infinită în cazul semnalelor periodice;
pentru acestea se foloseşte noţiunea de putere şi nu cea de energie.

Fundamentele achiziţiei de semnale 17 Fundamentele achiziţiei de semnale 18


Semnale digitale şi analogice Semnale digitale şi analogice

Spectrul unui semnal periodic Spectrul unui semnal aperiodic


Spectrul unui semnal este acea mulţime de coeficienţi reprezentând Spectrul unui semnal aperiodic sau mai exact densitatea spectrală a
amplitudinea şi faza sinusoidelor care însumate refac semnalul iniţial. El acestuia este dată de integrala Fourier
poate fi privit şi ca un alt mod de reprezentare a informaţiei, în domeniul +∞
S ( jω ) = ∫ s (t ) ⋅ e− jωt dt
frecvenţă. −∞
Spectrul unui semnal periodic este dat de transformata Fourier a Densitatea spectrală are şi ea două componente: densitatea spectrală
acestuia şi este constituit de seria coeficienţilor Fourier C n = C ( jnω 0 ) de amplitudine şi densitatea spectrală de fază.
rezultaţi din relaţia Relaţia inversă, care ne dă semnalul s(t) din densitatea spectrală este
1 +T0 / 2
C n = C ( jnω 0 ) = s(t ) ⋅ e − jnω 0t dt
T0 ∫−T0 / 2
+∞
s (t ) = ∫ S ( j ω ) ⋅ e j ω t dω
−∞
iar semnalul s(t) poate fi scris ca o sumă de componente sub forma
n = +∞
s(t ) = ∑ C (nω 0 )⋅ e jnω t
0 Observaţii:
n = −∞ • Aceste relaţii asigură o corespondenţă unică între un semnal şi spectrul
Spectrul are 2 componente: spectrul de amplitudini respectiv spectrul de său. Pentru un semnal dat există un spectru unic şi invers.
fază definite de modulul respectiv faza numărului complex C ( jnω 0 ) • Este de asemenea important de remarcat că determinarea spectrului unui
C n = C ( jnω 0 ) φ (nω 0 ) semnal nu este posibilă fără a cunoaşte complet evoluţia în timp a acestuia.

Fundamentele teoretice ale achiziţiei de semnale 3


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Fundamentele achiziţiei de semnale 19 20


Semnale digitale şi analogice

Rezoluţia unui semnal analogic


Rezoluţia unui semnal analogic este indispensabilă putem analiza
comportării circuitelor electronice reale. Ideal, un semnal este descris de o Semnale modulate
funcţie continuă şi, oricât de mică ar fi diferenţa între două valori oarecare
ale semnalului, această diferenţă este semnificativă. Practic însă, apar
zgomote care se suprapun peste semnalul real. Orice semnal analogic are o
rezoluţie proprie dată de treapta minimă semnificativă a acestuia,
determinată practic de prezenţa factorilor perturbatori reali (zgomote). Se utilizează pentru transmiterea informaţiei atunci când semnalul cu
Dacă se cunoaşte gama de variaţie a semnalului, respectiv valoarea anumiţi parametrii care conţine informaţia nu poate fi transmis printr-un
minimă şi maximă a acestuia, atunci rezoluţia unui semnal analogic poate fi anumit mediu la anumite performanţe dorite.
exprimată printr-o mărime specific digitală – numărul de biţi pe care trebuie
reprezentată variaţia semnalului pentru ca valoarea corespunzătoare unui
bit să fie cel mult egală cu treapta minimă semnificativă a sa. Se prezintă semnalele modulate pentru care se foloseşte o oscilaţie
sinusoidală pentru a transmite informaţia utilă.
Observaţie:
• Rezoluţia unui semnal analogic este o proprietate intrinsecă a acestuia
fiind impusă de sursa de semnal care îl generează.

Fundamentele achiziţiei de semnale 21 Fundamentele achiziţiei de semnale 22


Semnale modulate Semnale modulate

O mărime (curent, tensiune, intensitate de câmp, flux luminos etc.) cu o Dacă amplitudinea A este variată în ritmul semnalului de modulaţie, se
variaţie sinusoidală în timp se reprezintă matematic prin expresia: obţine o modulaţie de amplitudine – pe scurt, MA.
F ( t ) = A ⋅ cos( ωt + ϕ ) Dacă unghiul de fază φ este variat în ritmul semnalului modulator, se
în care: obţine o modulaţie de fază - MP; o formă a modulaţiei de fază este
A - reprezintă amplitudinea oscilaţiei; modulaţia de frecvenţă - MF.
ω - frecvenţa unghiulară (pulsaţia); Aceste semnale sunt prezentate în diapozitivul următor.
ωt + φ - faza instantanee (unghiul de fază); Expresia unei oscilaţii armonice reprezentând semnalul modulat se
φ - faza iniţială. poate pune în general sub forma:
Cât timp parametrii A, ω şi φ sunt constanţi, oscilaţia F(t) nu conţine F (t ) = A(t ) ⋅ cos[ω (t ) ⋅ t + ϕ (t )] = A(t ) ⋅ cos φ (t )
informaţie. F(t) poate constitui semnalul purtător. Spre deosebire de
semnalul care conţine informaţia, F(t) poate fi transmis în condiţiile dorite. Aceste oscilaţii sunt de fapt cvasiarmonice, totuşi şi în acest caz se
Dacă se face cumva ca amplitudinea A sau unghiul de fază φ să varieze păstrează pentru A(t) şi Φ(t) denumirile de amplitudine şi unghi de fază.
în ritmul semnalului care conţine informaţia de transmis, atunci semnalul F(t)
va conţine informaţia de transmis şi va putea fi si el transmis în condiţiile
dorite.
Se spune în acest caz că semnalul F(t) este modulat, iar semnalul care
conţine informaţia se numeşte semnal modulator.

Fundamentele achiziţiei de semnale 23 Fundamentele achiziţiei de semnale 24


Semnale modulate Semnale modulate

Modulare / demodulare
Exemplificarea Obţinerea semnalului modulat din semnalul purtătoare si semnalul
semnalelor modulator se numeşte modulare.
modulate
Circuitele care realizează acest lucru sunt circuitele de modulare.
a) Semnal modulator
(de joasă frecvenţă); Procedeul invers, de extragere a informaţiei utile prin eliminarea
semnalului purtător se numeşte demodulare.
b) Semnal MA;

c) Semnal MP; Informaţia este conţinută în semnalul demodulat. Circuitele care


realizează acest lucru sunt circuitele de demodulare.
d) Semnal MF.
Ansamblul celor două procese utilizate la emisie şi recepţia informaţiei
se numeşte modulare – demodulare.

Fundamentele teoretice ale achiziţiei de semnale 4


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Fundamentele achiziţiei de semnale 25 Fundamentele achiziţiei de semnale 26


Semnale modulate Semnale modulate

Semnal modulat în amplitudine Cea mai simplă expresie a funcţiei de modulaţie f(t) este funcţia
sinusoidală de timp a cărei expresie este:
La oscilaţiile MA, amplitudinea este o funcţie de timp de forma:
f ( t ) = kS ( t ) = m ⋅ cos( ω0 t + ϕ m )
A( t ) = A0 [1 + f ( t )]
caz în care expresia oscilaţiei armonice devine:
unde A0 este o constantă.
Funcţia f(t), reprezentând variaţia parametrului care se modifică în ritmul F ( t ) = A0 [1 + m cos( ω0 t + ϕ m )]cos( ω0 t + ϕ 0 )
semnalului de modulaţie S(t), se numeşte funcţie de modulaţie. În general
se va considera că funcţia f(t) este proporţională cu S(t), adică f(t)=kS(t). unde m reprezintă gradul de modulaţie şi ω0 frecvenţa (unghiulară) de
Expresia oscilaţiei MA este de forma modulaţie.
Gradul de modulaţie m este proporţional cu intensitatea (mărimea)
F ( t ) = A0 [1 + f ( t )]cos( ω0 t + ϕ0 ) semnalului transmis.
Frecvenţa semnalului de modulaţie este mult mai mică decât frecvenţa
Oscilaţia reprezentată prin
purtătoarei (ωm << ω0) şi, prin urmare, variaţia amplitudinii semnalului de
F ( t ) = A0 cos( ω0 t + ϕ0 ) modulaţie este mult mai lentă decât variaţia oscilaţiei de înaltă frecvenţă,
aşa că, pe un interval de timp egal cu câteva perioade ale purtătoarei,
se numeşte purtătoare, iar ω0 este frecvenţa unghiulară a purtătoarei. amplitudinea se poate considera constantă.

Fundamentele achiziţiei de semnale 27 Fundamentele achiziţiei de semnale 28


Semnale modulate Semnale modulate

Expresia oscilaţiei armonice modulate în amplitudine cu un semnal Semnal modulat în fază


sinusoidal se poate scrie sub forma:
F ( t ) = A0 cos( ω0 t + ϕ0 ) + mA0 cos( ωmt + ϕ m ) cos( ω0 t + ϕ0 ) = A0 cos( ω0 t + ϕ0 ) + La oscilaţiile cu modulaţie de fază, unghiul de fază φ are o variaţie în
timp de forma:
cos[( ω0 + ωm )t + ( ϕ0 + ϕ m )] + cos[( ω0 − ωm )t + ( ϕ0 − ϕ m )].
mA0 mA0
+
2 2 ϕ ( t ) = ϕ0 + f ( t )
Din relaţia de mai sus rezultă că o oscilaţie MA poate fi descompusă în în care φ0 este o constantă şi f(t) o funcţie variabilă cu timpul, de
trei componente armonice: aceeaşi formă ca şi semnalul de modulaţie.
A0 cos( ω0 t + ϕ 0 ) Prima componentă, de frecvenţă Expresia oscilaţiei cu modulaţie de fază este în acest caz de forma:
ω0 şi amplitudine A0, este purtătoarea; F ( t ) = v = V0 cos [ω0 t + f ( t ) + ϕ0 ]
cos[( ω0 + ωm )t + ( ϕ0 + ϕ m )]
mA0
celelalte două componente, de
2 frecvenţă ω0+ωm şi ω0 - ωm şi de în care amplitudinea este constantă, iar unghiul de fază este variabil cu
cos[( ω0 − ωm )t + ( ϕ0 − ϕ m )].
mA0 amplitudine mA0/2, se numesc timpul.
2 componente laterale. Frecvenţa ω0 se numeşte şi aici frecvenţă purtătoare.
În cazul când semnalul de modulaţie are o formă complexă, oscilaţia MA
se descompune într-o purtătoare şi o serie de componente laterale situate
de o parte şi de alta a purtătoarei, de frecvenţe cuprinse într-o anumită
bandă al cărui centru este chiar frecvenţa purtătoare.

Fundamentele achiziţiei de semnale 29 Fundamentele achiziţiei de semnale 30


Semnale modulate Semnale modulate

Dacă semnalul de modulaţie are o variaţie sinusoidală în timp, unghiul Semnal modulat în frecvenţă
de fază este de asemenea o funcţie sinusoidală şi poate fi exprimată prin
relaţia: Dacă viteza unghiulară nu este constantă şi are o variaţie în timp de
ϕ ( t ) = ϕ 0 + Δϕ cos( ω m t + ϕ m ) forma:
ω ( t ) = ω0 + f ( t )
Expresia oscilaţiei MP devine în acest caz:
atunci semnalul de modulaţie sinusoidal are forma:
v = V0 cos [ω0 t + Δϕ cos( ω m t + ϕ m ) + ϕ 0 ]
ω ( t ) = ω0 + Δω cos( ω m t + ϕ m )
Mărimea Δϕ este variaţia maximă a fazei în timpul modulaţiei şi se iar expresia oscilaţiei MF devine:
numeşte deviaţia de fază, iar ωm este frecvenţa de modulaţie. ⎡ Δω ⎤
Deviaţia de fază este proporţională cu amplitudinea semnalului de v = V0 cos ⎢ω0 t + sin( ωmt + ϕ m ) + ϕ0 ⎥
modulaţie presupus sinusoidal şi corespunde cu gradul de modulaţie m al ⎣ ωm ⎦
unei oscilaţii MA. Dacă se notează indicele de modulaţie în frecvenţă cu
Δω Δf
= =β
ωm fm
relaţia de mai sus se poate scrie şi sub forma:
v = V0 cos [ω0 t + β sin( ω m t + ϕ m ) + ϕ0 ]

Fundamentele teoretice ale achiziţiei de semnale 5


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Fundamentele achiziţiei de semnale 31 32


Semnale modulate
Printr-o prelucrare şi analiză similară cu cea de la semnalul modulat în
amplitudine, şi această oscilaţie se poate descompune în două oscilaţii de
frecvenţă ω0 defazate cu π/2 una faţă de cealaltă, ale căror amplitudini sunt
funcţii periodice de timp, având expresiile:
Sisteme de achiziţie şi control al datelor
V0 cos [β sin( ω m t + ϕ m )]

V0 sin[β sin( ω m t + ϕ m )]

Fiecare din aceste funcţii se poate dezvolta în într-o serie Fourier din Menţinerea competitivităţii, eficienţa ridicată, calitatea în permanentă
care rezultă că o oscilaţie MF sau MP modulată cu un semnal sinusoidal de creştere, rapida dezvoltare necesară în toate domeniile din lumea de azi
frecvenţă fm, este formată din purtătoare de frecvenţă f0 şi o infinitate de impun ca producţia, cercetarea, activitatea din laboratoare şi din ce în ce
componente laterale de frecvenţe: mai multe alte activităţi cotidiene (sănătate, spectacole, servicii, media etc.)
să se bazeze pe soluţii de achiziţie şi control a datelor.
f0 ± fm, f0 ± 2fm, f0 ± 3fm, ………………. , f0 ± nfm , ........ Acestea se bazează în prezent exclusiv pe utilizarea calculatoarelor care
prelucrează datele sub formă digitală.

Fundamentele achiziţiei de semnale 33 Fundamentele achiziţiei de semnale 34


Sisteme de achiziţie şi control al datelor Sisteme de achiziţie şi control al datelor

Achiziţia semnalelor Controlul datelor


z Prin achiziţia de date se înţelege colectarea unor date din diverse surse, z Prin controlul datelor se înţelege generarea unor date pentru controlul
ca parte a unui proces de monitorizare a unui sistem fizic real. unui proces ca parte a reglării unui sistem fizic real.
z Datele provin de la senzori care dau semnale analogice, care sunt z În lumea reală, de cele mai multe ori e nevoie de semnale de control
convertite apoi în semnale digitale, fie de la comutatoare, contacte etc. analogice. Semnalele generate trebuie convertite din formatul digital în
care dau direct semnale în format digital. Reprezentarea acestor date format analogic.
este aproape exclusiv sub formă electrică. z O interfaţă care transformă un semnal analogic într-unul digital, sau un semnal
z Semnalele electrice constau într-o secvenţă de valori (tensiune, curent digital într-unul analogic se numeşte convertor.
etc.) care conţin informaţii privitoare la mărimile fizice măsurate. Aceste z Sistemele care operează în timp real se caracterizează prin
valori pot fi văzute ca date, independente de suportul electric care le
capacitatea de monitorizare şi control în cadrul unui interval de timp
transportă.
prestabilit a unui anumit eveniment dat.
z Achiziţia de semnale înseamnă de fapt colectarea acestor date
măsurate (şi a informaţiei conţinute în ele) într-o formă precisă, z Computerele moderne sunt folosite pe scară largă pentru
organizată şi sincronizată în timp. implementarea sistemelor de achiziţie şi control deoarece permit
implementarea rapidă şi versatilă a tuturor funcţiilor necesare. Ele permit
z Cum majoritatea semnalelor din lumea reală sunt analogice, ele trebuie
implementarea unor variate şi complexe prelucrări de date, analize,
convertite în format digital pentru a putea fi achiziţionate direct de
calculatoarele digitale. stocări, manipulări şi vizualizări de date inaccesibile în mod obişnuit
sistemelor clasice de măsurare şi reglare a proceselor.

Fundamentele achiziţiei de semnale 35 36


Sisteme de achiziţie şi control al datelor

Schema bloc generală a unui


sistem de achiziţie şi control a datelor
z
z
Senzorii transformă parametrii în semnale analogice sau uneori digitale
Acestea sunt achiziţionate şi transferate sistemului de calcul
Eşantionarea şi cuantizarea semnalelor
z Semnalele sunt manipulate, prelucrate, analizate şi prezentate de
sistemul de calcul
z Acesta generează semnalele de control care prin intermediul
actuatoarelor controlează procesul din sistemul real
Transformarea unui semnal analogic, continuu în timp cu valori continue,
într-un semnal digital, discret în timp cu valori discrete, care poate fi
procesat de calculatoarele numerice, se face prin eşantionare şi cuantizare.

Fundamentele teoretice ale achiziţiei de semnale 6


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Fundamentele achiziţiei de semnale 37 Fundamentele achiziţiei de semnale 38


Eşantionarea şi cuantizarea semnalelor Eşantionarea şi cuantizarea semnalelor

Eşantionarea semnalelor Cuantizarea semnalelor


z Discretizarea unui semnal analogic x(t) se face prin eşantionarea lui la z În calculatoarele numerice, informaţia este stocată digital, în format binar, sub
fiecare Δt secunde. Δt se numeşte interval sau perioadă de forma unui număr finit de biţi (bit = binary digit). De aceea, fiecare eşantion al
eşantionare, iar 1/Δt se numeşte frecvenţă de eşantionare. unui semnal trebuie să fie convertit sub forma unui număr finit de biţi. Această
z Fiecare valoare discretă x(t) la t = 0, Δt, 2Δt … este un eşantion. operaţia de cuantizare este realizată de un convertor analog/digital.
z Semnalul x(t) poate astfel să fie reprezentat prin setul discret de z Rezoluţia convertorului este numărul de biţi pe care ii utilizează pentru
eşantioane {x(0), x(Δt), x(2Δt), …, x(kΔt), …} reprezentarea valorilor semnalului. Cum numărul de biţi este finit (deci şi numărul
de combinaţii posibile), iar un semnal cu valori continue are un număr infinit de
z Notaţia utilizată curent pentru cele N eşantioane x(i) = x(iΔt) (cu i = 0, 1,
valori posibile, un domeniu de valorilor analogice este mapat unei anumite
2, …) obţinute din semnalul x (t) este x = {x[0], x[1], x[2], …, x[N-1]}.
combinaţii particulare de biţi.
Aceasta este cunoscută ca
reprezentarea digitală sau z Exemplul alăturat ilustrează conversia
versiunea eşantionată a unei sinusoide având amplitudinea de
semnalului x(t). 1 V într-o reprezentare pe 3 biţi cu
23 = 8 combinaţii posibile. Astfel:
z Secvenţa x = {x[i]} este
0 … 0,125 V → 000
indexată prin variabila
0,125 … 0,250 V → 001
întreagă i şi nu conţine nici
………
o informaţie despre rata
0,875 … 1,000 V → 111
de eşantionare.

Fundamentele achiziţiei de semnale 39 Fundamentele achiziţiei de semnale 40


Eşantionarea şi cuantizarea semnalelor Eşantionarea şi cuantizarea semnalelor

Consideraţii despre frecvenţa de eşantionare Teorema Nyquist


z Un parametru important al sistemelor de achiziţie de date este frecvenţa z Teorema lui Nyquist susţine ca pentru a evita aliasul (alierea) trebuie
de eşantionare. O rată mai mare de eşantionare asigură o reprezentare să se eşantioneze semnalul la o rată de două ori mai mare decât
digitală mai bună a semnalului original. frecvenţa maximă a componentelor conţinute în semnal.
z Subeşantionând semnalul, acesta z Pentru o frecvenţă de eşantionare dată, frecvenţa maximă care poate fi
apare ca fiind de o frecvenţă mai reprezentată cu acurateţe, fără aliere, este jumătate din frecvenţa de
mică decât are în realitate. Această eşantionare şi este cunoscută ca frecvenţă Nyquist.
reprezentare eronată a semnalului z Componentele de frecvenţă peste frecvenţa Nyquist vor apare după
se numeşte alias (aceeaşi formă eşantionare sub forma unor alias-uri între componenta continuă şi
dar o frecvenţă mai mică). frecvenţa Nyquist.
z Frecvenţa unui alias este valoarea absolută a diferenţei dintre frecvenţa
semnalului de intrare şi frecvenţa cea mai apropiată multiplu întreg a
frecvenţei de eşantionare.

Fundamentele achiziţiei de semnale 41 Fundamentele achiziţiei de semnale 42


Eşantionarea şi cuantizarea semnalelor Eşantionarea şi cuantizarea semnalelor

Exemplu: Exemplu (cont.)


z frecvenţa eşantionate corect:
z frecvenţe reale ale semnalului: 25, 70, 160 şi 510 Hz | F1 = 25 Hz
z frecvenţa de eşantionare: 100 Hz z Frecvenţe care apar ca aliasuri:
z frecvenţa Nyquist: 50 Hz | F2 = |100-70| = 30 Hz
| F3 = |2 · 100 − 160| = 40 Hz
| F4 = |5 · 100 − 510| = 10 Hz

Fundamentele teoretice ale achiziţiei de semnale 7


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Fundamentele achiziţiei de semnale 43 Fundamentele achiziţiei de semnale 44


Eşantionarea şi cuantizarea semnalelor Eşantionarea şi cuantizarea semnalelor

Concluzii relativ la frecvenţa de eşantionare De ce este nevoie de filtru antialias?


z Cât de rapid trebuie să eşantionăm? z Cum putem să ne asigurăm că semnalul de intrare are componente de
z Cât de repede poate sistemul de frecvenţă maximă cel mult jumătate din frecvenţa de eşantionare,
achiziţie! Nu e răspunsul corect condiţie esenţială pentru reprezentarea corectă a semnalului după
deoarece creşte capacitatea eşantionare?
necesară de stocare şi prelucrare!
z Se foloseşte la intrarea convertorului un filtru trece jos denumit şi filtru
z Teoretic: la de două ori frecvenţa
antialias. Acesta este un filtru analog deoarece se utilizează atunci
maximă a semnalului.
când semnalul este încă în domeniul analog.
z Practic: la de 5 … 10 ori frecvenţa
maximă a semnalului.

z Efectele eşantionării la diverse


frecvenţe sunt prezentate alăturat.

Fundamentele achiziţiei de semnale 45


Eşantionarea şi cuantizarea semnalelor

De ce se utilizează decibelii?
z Reprezentarea unei valori în decibeli transformă scara de reprezentare
liniară într-una logaritmică astfel:
1 dB = 10 log10(raport de puteri) = 20 log10(raport de tensiuni/curenţi)

z Această reprezentare comprimă un domeniu mare de valori de


amplitudine într-o reprezentare numerică utilizând un număr mic de
cifre.
z Percepţia umană este bazată pe o scară logaritmică. De aceea scara
logaritmică este folosită în măsurări de sunete şi vibraţii şi în
reprezentarea axelor de frecvenţă.
z Calcule mai uşoare: amplificările etajelor puse în cascadă se adună în
reprezentarea logaritmică şi se înmulţesc în reprezentarea liniară.

Fundamentele teoretice ale achiziţiei de semnale 8


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Introducere în instrumentaţia virtuală 2

Conţinutul cursului
z Ce este instrumentaţia?
INTRODUCERE ÎN
Ce este instrumentaţia virtuală?
INSTRUMENTAŢIA VIRTUALĂ z

Prof. Dr. Ing. Sever Paşca z Sisteme de instrumentaţie virtuală – schemă bloc şi funcţionare

Catedra de Electronică Aplicată şi Ingineria Informaţiei z Dispozitive de achiziţie şi control universale


Facultatea Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Universitatea POLITEHNICA din Bucureşti z Comunicarea dispozitive de achiziţie şi control cu PC-ul

z Caracteristicile, structura şi variante constructive ale dispozitive de achiziţie şi


control universale

z Mediul de programare grafic LabVIEW

3 Introducere în instrumentaţia virtuală 4


Instrumentaţie

Istorie
Instrumentaţia a fost făcută întotdeauna cu tehnologia disponibilă pe
scară largă:
Instrumentaţie z Secolul XIX: mişcarea roţilor ceasului a fost folosită pentru realizarea
primului instrument analogic.
z 1930: Condensatorul variabil şi rezistorul variabil împreună cu tubul cu
vid au fost folosite la realizarea primului instrument electronic.
z Anii ’50: tehnologia de afişare în televiziune a fost folosită la
z Facem măsurători cu instrumente. Instrumentaţia ajută progresul ştiinţei
osciloscoapele moderne.
şi tehnologiei.
z Anii ’70: apariţia microprocesoarelor a dus la dezvoltarea instrumentelor
z Inginerii şi oamenii de ştiinţă folosesc instrumente pentru a observa, a inteligente, care permit pe lângă măsurarea, prelucrarea şi afişarea
controla şi a înţelege universul fizic. analogică a datelor, procesarea şi afişarea lor digitală, conlucrarea mai
z Calitatea vieţii depinde de instrumentaţie, de la cercetări fundamentale multor instrumente controlate de calculatoare pentru realizarea de sisteme
în medicină şi ştiinţele vieţii, la testarea şi producţia sistemelor complexe de instrumentaţie.
electronice, până la controlul proceselor şi maşinilor din nenumărate z Anii ’80: PC-urile moderne au deschis posibilitatea manipulării,
domenii industriale. prelucrării şi afişării variate şi performante a datelor, la un raport
performanţă/preţ ridicat.

5 Introducere în instrumentaţia virtuală 6


Instrumentaţie virtuală

Utilizarea instrumentaţiei virtuale


z Instrumentaţia virtuală se foloseşte pentru crearea la comandă a unor
Instrumentaţie virtuală sisteme de test, măsurare şi control, prin combinarea unor resurse hard
cu cele soft.
z Dacă parametrii sau cerinţele sistemului se modifică, sistemul de instru-
mentaţie virtuală se poate modifica fără cumpărarea altui hard sau soft.
z Computerele moderne universale (PC-urile) sunt folosite pe scară largă
Ce este instrumentaţia virtuală? pentru implementarea sistemelor de instrumentaţie virtuală deoarece
permit implementarea rapidă şi versatilă a tuturor funcţiilor necesare.
Instrumentaţia virtuală combină hardware-ul şi software-ul cu tehnologia
calculatoarelor standard (universale), pentru a obţine soluţii de z Ele permit implementarea unor variate şi complexe prelucrări de date,
instrumentaţie definite de utilizator. analize, stocări, manipulări şi vizualizări de date inaccesibile în mod
obişnuit sistemelor clasice şi chiar a celor inteligente de măsurare şi
Instrumentaţie Virtuală: reglare a proceselor.
Sistem de instrumentaţie universal sau specializat inteligent +
Calculator personal universal + z Sunt foarte eficiente la realizarea unor sisteme unicat sau pe scară mică,
Software de instrumentaţie generală = dar prin scăderea continuă a preţurilor calculatoarelor au devenit mai
Soluţie de instrumentaţie definită de utilizator uşor reconfigurabilă ieftine decât implementarea unor sisteme specializate în situaţiile de
producţie pe scara foarte largă.

Introducere în instrumentaţia virtuală 1


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Introducere în instrumentaţia virtuală 7 Introducere în instrumentaţia virtuală 8


Instrumentaţie virtuală Instrumentaţie virtuală

Schema funcţională a unui Funcţiile unui sistem de instrumentaţie virtuală


sistem de instrumentaţie virtuală z Achiziţia de date
z Un proces dintr-un sistem real este caracterizat de nişte parametri fizici | Prin achiziţia de date se înţelege colectarea unor date măsurate din
z Senzorii transformă parametrii fizici în semnale analogice sau digitale diverse surse (şi a informaţiei conţinute în ele), într-o formă precisă,
z Acestea sunt achiziţionate şi transferate sistemului de calcul organizată şi sincronizată în timp, ca parte a unui proces de
monitorizare a unui sistem fizic real. Achiziţia impune de cele mai
z Semnalele sunt manipulate, prelucrate, analizate şi prezentate de
sistemul de calcul multe ori şi un proces de discretizare, adică de eşantionare şi
cuantizare, a semnalelor analogice, pentru a fi convertite în
z Acesta generează semnalele de control care prin intermediul reprezentare digitală accesibilă calculatoarelor numerice.
actuatoarelor controlează procesul din sistemul real
z Manipularea datelor
Manipulare
| Salvarea, memorarea, arhivarea, gruparea şi indexarea, sunt câteva
Parametri Traductoare
Achizi ţia din activităţile incluse în această categorie.
fizici (senzori) Procesare
şi z Procesarea şi analiza datelor
Analiză
controlul | Transformă datele primare într-o informaţie inteligibilă/interpretabilă.
Traductoare datelor Prezentare
Proces | Prin procesarea datelor se înţelege în general prelucrarea
(actuatoare) Generare
semnalelor pentru a asigura calitatea necesară pentru analiza şi
Sistem real Sistem de calcul interpretarea lor (filtrări, interpolări, scalări, corelări etc.)

Introducere în instrumentaţia virtuală 9 10


Instrumentaţie virtuală

Funcţiile unui sistem de instrumentaţie virtuală (cont.)


| Prin analiza datelor se înţelege în general prelucrarea semnalele
pentru a le prezenta sub altă formă, mai uşor de interpretat (analize
statistice, analize în frecvenţă, transformări etc.) Sisteme de instrumentaţie virtuală
z Prezentarea datelor
| Asigură prin mijloace specifice comunicarea utilizatorului cu sistemul
de instrumentaţie virtuală într-o formă intuitivă şi inteligibilă,
z Generarea datelor
Se prezintă în continuare o structură mai detaliată a unui sistem de
| Generarea unor semnale, de obicei pe baza rezultatelor analizei şi instrumentaţie virtuală şi se face o prezentare generală a elementelor sale
interpretării datelor, care să permită controlul sistemului fizic real în
componente.
vederea reglării procesului monitorizat.
z Controlul de date
| Distribuirea datelor generate către diverse destinaţii, într-o formă
precisă, organizată şi sincronizată în timp, ca parte a unui proces de
control a unui sistem fizic real. Controlul de date impune uneori şi un
proces de convertire a datelor numerice în semnale analogice care
pot acţiona asupra sistemului fizic real.

Introducere în instrumentaţia virtuală 11 Introducere în instrumentaţia virtuală 12


Sisteme de instrumentaţie virtuală Sisteme de instrumentaţie virtuală

Structura unui sistem de instrumentaţie virtuală Traductoare


SISTEMREAL z Traductoarele sunt dispozitive de conversie a energiei dintr-o formă în
TRADUCTOARE PARAMETRII
PROCES
TRADUCTOARE alta.
(SENZORI) FIZICI (ACTUATOARE)
z Traductoarele de intrare se mai numesc senzori.
z Traductoarele de ieşire se mai numesc actuatori.
CONDIŢIONĂRI
SEMNALE
DISPOZITIVDEACHIZIŢIEŞICONROL CONTROLER z Traductoarele electrice transformă energia preluată de la sistemul real
măsurat în energie electrică (tensiune, curent, câmp electric etc.), în
DRIVERE
cazul celor de intrare, şi invers în cazul celor de ieşire.
z Rolul senzorilor este ca să răspundă preponderent la mărimea sau la
ACHIZIŢIE / GENERARE variaţia mărimii fizice care trebuie măsurată, iar mărimea electrică
MANIPULARE
PROCESARE / ANALIZĂ
furnizată la ieşire să fie proporţională cu valoarea parametrului fizic
măsurat.
AFIŞARE z Senzorii pot fi pasivi (parametrici) sau activi (generatori).
APLICAŢIEINSTRUMENTAŢIEVIRTUALĂ z Senzorii trebuie să consume o energie cât mai mică din sistemul real
SOFTWARE
măsurat pentru ca să nu îi schimbe starea de echilibru sau
HARDWARE
(FIRMWARE ŞI SO) cvasiechilibru pe care dorim să o analizăm.
CALCULATORPERSONALUNIVERSAL

Introducere în instrumentaţia virtuală 2


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Introducere în instrumentaţia virtuală 13 Introducere în instrumentaţia virtuală 14


Sisteme de instrumentaţie virtuală Sisteme de instrumentaţie virtuală

Condiţionări semnale Controlere


z Senzorii dau în general semnale de amplitudine mică într-o formă în z Actuatorii sunt de obicei dispozitive complexe care nu pot fi controlate
care nu pot fi preluate direct de dispozitivele de achiziţie de date. direct de semnalele de control generate de sistem. Interfeţele care
z Aducerea semnalelor furnizate de senzori la parametrii compatibili cu controlează aceste dispozitive, conform comenzilor primite prin datele
dispozitivele de achiziţie de date este realizată de blocul de condiţionări. generate, se numesc controlere.
z Acestea pot conţine numeroase blocuri funcţionale printre care: z Uneori acestea sunt sisteme complexe cu microprocesoare şi bucle de
| Circuite de măsurare (care asigură şi energia de activare pentru reglaj.
traductoarele pasive) z Exemple:
| Izolatoare galvanice | Controlere de comandă a motoarelor pas cu pas
| Adaptoare de impedanţă | Circuite de control a turaţiei unui motor de curent continuu
| Translatoare de nivel | Controlere de comandă a unui braţ mobil de robot industrial
| Amplificatoare liniare sau neliniare | Controler pentru reglajul în fază a puterii electrice într-o sarcină
| Circuite de liniarizare şi alte elemente de calul analogic rezistivă
| Circuite de modificare a formelor de undă
| Convertoare (f/U, U/f etc.)

Introducere în instrumentaţia virtuală 15 Introducere în instrumentaţia virtuală 16


Sisteme de instrumentaţie virtuală Sisteme de instrumentaţie virtuală

Dispozitiv de achiziţie şi control (DAQ) Dispozitive de achiziţie şi control universale


z Orice dispozitiv care face măsurarea unor mărimi fizice de intrare şi z Aceste dispozitive hardware realizează doar conversia semnalelor de
poate fi conectat la un PC. intrare în semnale digitale fără să le prelucreze. Toate calculele trebuie
z Conţine cel puţin un convertor. O interfaţă care transformă semnalele să le facă softul din PC.
analogice (continue cu valori continue), specifice lumii reale, în semnale z Acelaşi dispozitiv poate face o multitudine de măsurări, printr-o simplă
digitale (eşantionate şi cuantizate), reprezentări accesibile calulatoarelor modificare a traductoarelor utilizate şi a softului care preia şi analizează
numerice. datele.
z Clasificare z Softul de aplicaţie are pe lângă rolul de măsurare, control şi afişare a
| Dispozitive de achiziţie şi control universale datelor şi rolul firmware-ului, softul inclus de fabricant într-un sistem
| Instrumente cu destinaţie specială specializat care asigură procesarea şi analiza datelor şi calculează
rezultatele finale.
z Au o flexibilitate mare permiţând utilizarea lor în mai multe aplicaţii cu
dezavantajul timpului pierdut de utilizator în elaborarea şi dezvoltarea
softului de aplicaţie pentru fiecare sistem.
z Aceste dispozitive pot fi interne sau externe PC-ului. Cele mai
răspândite sunt DAC-board-urile.

Introducere în instrumentaţia virtuală 17 Introducere în instrumentaţia virtuală 18


Sisteme de instrumentaţie virtuală Sisteme de instrumentaţie virtuală

Instrumente cu destinaţie specială Calculator personal universal


z Îndeplinesc şi funcţia de conversie a datelor dar au inclus şi un firmware, z Hardware (placă de bază, procesor, memorie, hard disc,
deci softul de prelucrare şi analiză a datelor, de calcul a rezultatelor unităţi de dischete, CD-uri, DVD-uri etc.)
finale şi de prezentare a lor.
z Ele au o destinaţie specială anume, care nu poate fi modificată. Se z Software
poate uneori îmbunătăţi sau extinde funcţionalitatea lor prin actualizarea | Firmware (BIOS)
firmware-ului (update).
| Sistem de operare (SO)
z Majoritatea acestor instrumente sunt exterioare PC-ului, pot fi operate
solitar, pot fi controlate şi monitorizate printr-o conexiune la PC. | Aplicaţii şi utilitare care extind funcţiile realizate de SO
Instrumentul are un protocol specific pe care PC-ul trebuie să îl
cunoască şi să îl folosească pentru a comunica cu instrumentul.
z Există unele instrumente care se conectează în interiorul unui PC pe un
conector de extensie. Acestea se numesc instrumente bazate pe PC.

Introducere în instrumentaţia virtuală 3


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Introducere în instrumentaţia virtuală 19 Introducere în instrumentaţia virtuală 20


Sisteme de instrumentaţie virtuală Sisteme de instrumentaţie virtuală

Aplicaţie de instrumentaţie virtuală Drivere


z Funcţiile pe care trebuie să le realizeze sunt în principal cele descrise la z Driverele sunt elementele cheie pentru comunicarea programelor cu
schema funcţională a unui sistem de instrumentaţie virtuală: dispozitivele periferice, inclusiv cu DAQ.
| Achiziţie şi generare de date
| Manipulare, Procesare, Analiză z Un driver este o colecţie de funcţii (subprograme) care implementează
| Prezentare comenzile necesare pentru interfaţarea cu hardware-ul.
z Un astfel de program poate fi scris în orice limbaj de programare. Dar
avantajele unuia specializat sunt nete şi vor fi discutate ulterior. z Driverul primeşte comenzi de nivel înalt de la programul de aplicaţie şi
z Exemple: generează comenzile de nivel coborât către DAQ. El recepţionează,
| LabVIEW (Laboratory Virtual Instrument Engineering Workbench - prelucrează, analizează şi scalează răspunsul DAQ şi returnează
National Instruments) programului de aplicaţie datele scalate car pot fi utilizate de acesta.
Driverul transferă, în ambele direcţii, date şi comenzi sau stări,
| HP-VEE (Hewlett-Packard Visual Engineering Environment) translatând un limbaj de nivel înalt utilizat cu programul de aplicaţie într-
| DIA-dem (Gessellschaft für Strukturanalzse mbH) un limbaj de nivel coborât utilizat cu dispozitivul hard.
| DASY Lab (Data Acquisition System Laboratory)
| TestPoint, ICONNECT, Genie etc.

Introducere în instrumentaţia virtuală 21 Introducere în instrumentaţia virtuală 22


Sisteme de instrumentaţie virtuală Sisteme de instrumentaţie virtuală

Drivere (cont.) Comunicarea DAQ cu PC-ul


z Este nevoie de un driver pentru fiecare dispozitiv hard pentru a putea să z Toate dispozitivele DAQ comunică cu PC-ul printr-o conexiune externă
fie utilizat. El depinde însă de sistemul de operare şi uneori şi de (nivel fizic - port sau bus) în care s-a definit un protocol de comunicaţie
versiunea aplicaţiei de instrumentaţie folosite. (nivel soft).
z Driverul simplifică programarea dispozitivelor deoarece programatorul z Dispozitivele DAQ au un set de comenzi pe care le înţeleg. Utilizatorul
foloseşte funcţii de nivel înalt şi nu trebuie să cunoască sintaxa scrie o aplicaţie care trimite comenzi dispozitivului şi primeşte datele
comenzilor de nivel coborât, specifice fiecărui dispozitiv hard. Astfel se (prelucrate sau nu) de la dispozitiv.
câştigă timp preţios pentru aplicaţia propriu-zisă. z Nivelul fizic (clasificare):
z Conceptul de driver uşurează şi mentenanţa sistemelor. Orice upgrade | Extensii ale bus-ului microprocesorului:
hard necesită doar modificarea driver-ului, nu şi a aplicaţiei. Toate z ISA (8 şi 16 biţi)
comenzile concrete legate de implementarea hard a DAQ sunt separate
de softul de aplicaţie. z EISA
z PCI
z PCMCIA (PC card)
z AGP
z CMR, AMR

Introducere în instrumentaţia virtuală 23 Introducere în instrumentaţia virtuală 24


Sisteme de instrumentaţie virtuală Sisteme de instrumentaţie virtuală

Comunicarea DAQ cu PC-ul (cont.) Comunicarea DAQ cu PC-ul (cont.)


| Porturi/busuri externe universale: z Nivelul soft (protocol):
z Porturi seriale (RS232, RS422, RS485) | Mesaje text
z USB (1.1, 2) | Mesaje registre
z IEEE1394 (FireWire, I.Link)
z Port paralel z Observaţie: Conexiunea reală este pe mai multe nivele numite layere,
z Ethernet (fast ethernet, gigaethernet) unele fizice şi altele soft, dar am lăsat doar două pentru a putea înţelege
z Infraroşu în principiu comunicaţia DAQ cu PC-ul.
z Bluetooth
z WiFi (wireless)
| Bus-uri specializate
z GPIB
z VXI

Introducere în instrumentaţia virtuală 4


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

25 Introducere în instrumentaţia virtuală 26


Dispozitive de achiziţie şi control universale

Caracteristicile DAQ universale


z Domeniul tensiunilor de intrare
Dispozitive de achiziţie şi control universale | Trebuie corelat cu domeniul furnizat de senzorii utilizaţi. Domeniul
de ieşire al senzorilor trebuie inclus complet în domeniul de intrare a
DAQ, în plus, el trebuie să acopere majoritatea acestuia. În caz
contrar e nevoie de condiţionare deoarece altfel se obţine o rezoluţie
slabă.
Există o multitudine de astfel de dispozitive. Selecţia trebuie să se facă | Majoritatea DAQ au un singur domeniu (de exemplu 0 … 10V) dar
ţinând cont de facilităţile şi caracteristicile lor în corelaţie cu caracteristicile multe au un număr limitat de domenii de intrare selectabil soft (de
celorlalte componente din sistemul de instrumentaţie virtuală. Se vor exemplu: 0 … 0,1 V; 0 … 1 V; 0 … 10V)
prezenta în continuare cele mai importante din caracteristicile care trebuie | Multe DAQ au posibilitatea de a selecta un domeniu de intrare
avute în vedere. monopolar sau bipolar (de exemplu: monopolar 0 … 10 V; bipolar: –
Selecţia unui astfel de dispozitiv este eficientă atunci când toate facilităţile 5 … 5 V).
necesare unei anumite aplicaţii sunt disponibile iar cele nenecesare nu sunt
prezente. De multe ori însă, deoarece investiţia este destul de mare, se
achiziţionează un sistem mult supradotat şi performant pentru a putea fi
utilizat şi în alte aplicaţii ulterioare mai pretenţioase.

Introducere în instrumentaţia virtuală 27 Introducere în instrumentaţia virtuală 28


Dispozitive de achiziţie şi control universale Dispozitive de achiziţie şi control universale

Caracteristicile DAQ universale (cont.) Caracteristicile DAQ universale (cont.)


z Tipul intrării z Durata de conversie
| Intrare nesimetrică – care necesită o conexiune cu un singur fir de | Timpul necesar convertorului pentru a realiza o conversie a unui
semnal, fir cald, plus o masa de măsură, fir rece. eşantion al semnalului analogic în reprezentarea digitală
| Intrare diferenţială sau simetrică – care necesită două fire de semnal echivalentă.
(pe lângă firul de masă de măsură) dar este mult mai imună la
z Rata de eşantionare
perturbaţii (zgomote).
z Acurateţea sau precizia | Frecvenţa maximă la care DAQ poate achiziţiona, eşantiona şi
converti semnalul de intrare.
| Defineşte cantitativ cât de precis semnalele de ieşire digitale
reprezintă semnalele analogice de intrare. Aici intervin acurateţea z Rata de transmisie
convertorului digital/analog dar şi precizia componentelor electronice | Este dată de numărul de eşantioane pe secundă pe care le poate
analogice. transmite către PC, fiind determinat de durata de achiziţie, conversie
z Rezoluţia şi transfer.
| Reprezintă precizia de reprezentare digitală a semnalelor analogice z Numărul de canale analogice de intrare
de intrare, rezultând din divizarea domeniului de intrare la 2n, unde n
este numărul de biţi ai convertorului analog/digital. z Numărul de canale analogice de ieşire
z Numărul de porturi digitale de intrare, de ieşire sau de intrare/ieşire

Introducere în instrumentaţia virtuală 29 Introducere în instrumentaţia virtuală 30


Dispozitive de achiziţie şi control universale Dispozitive de achiziţie şi control universale

Caracteristicile DAQ universale (cont.) Structura generală a unei plăci DAQ


z Capacitatea buffer-ului (dacă există) z Cele mai des utilizate DAQ sunt cele care se conectează pe un bus de
z Prezenţa şi numărul timerelor, counterelor, generatoarelor de ceas extensie al microprocesorului, denumite generic placi (de extensie) DAQ
şi a altor blocuri componente (PWM – Pulse Width Modulator, DMA (DAQ-board).
– Direct Memory Acces, controler de întreruperi) INTRĂRI CONVERTOR CONVERTOR IEŞIRI
z Sincronizarea în timp a canalelor ANALOGICE A/D D/A ANALOGICE

z Tipul transferului (pooling, DMA, întreruperi)


SEMNALEDE CONTROLER PORTURIDIGITALE INTRĂRI/IEŞIRI
SINCRONIZARE ÎNTRERUPERI DEI/O DIGITALE
Observaţie: Performanţele DAQ trebuie corelate cu cele ale PC-ului.
Performanţele DAQ nu trebuie să fie limitate de performanţele PC-ului.
NUMĂRĂTOARE IEŞIRI
MEMORIE
PROGRAMABILE DIGITALE

BLOCDEINTERFAŢĂ ŞI CONTROL BUS

BUSPC

Introducere în instrumentaţia virtuală 5


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Introducere în instrumentaţia virtuală 31 Introducere în instrumentaţia virtuală 32


Dispozitive de achiziţie şi control universale Dispozitive de achiziţie şi control universale
MUX
Variante constructive INTRĂRI
ANALOGICE AN A-
S /H
CONVERTOR Variante constructive
LO- A/D
ale convertorului GIC ale convertorului CONVERTOR
D/A
analog/digital analog/digital
IEŞIRI
ANALOGICE
z În funcţie de viteza de z În funcţie de viteza de
eşantionare necesară, S /H eşantionare necesară,
CONVERTOR
preţ şi de necesitatea MUX preţ şi de necesitatea D/A
INTRĂRI AN A- CONVERTOR
sincronizării în timp a ANALOGICE LO- A/D sincronizării în timp a
canalelor, se pot alege GIC canalelor, se pot alege
următoarele variante de S /H următoarele variante de
realizare a schemei bloc realizare a schemei bloc S /H
DE-
a convertorului A/D a convertorului D/A CONVERTOR
MUX IEŞIRI
CONVERTOR AN A-
S /H D/A ANALOGICE
A/D LO-
MUX GIC
INTRĂRI DI- S /H
ANALOGICE GI-
TAL
CONVERTOR
S /H
A/D

33 Introducere în instrumentaţia virtuală 34


Mediul de programare grafic LabVIEW

LabVIEW - program de instrumentaţie


z O aplicaţie de instrumentaţie virtuală poate fi definit ca un program
Mediul de programare grafic LabVIEW împreună cu mediul său de programare care permit controlul unui
proces fizic, adică achiziţia, prelucrarea, analiza, prezentarea şi
generarea datelor.
z LabVIEW a adus o creştere a productivităţii în instrumentaţie similară cu
cea a tabelelor de calcul în programele financiare.
LabVIEW = Laboratory Virtual Instrument Engineering Workbench z Timpul asamblării unui sistem de măsură sau de control este mult mai
mic decât cel necesar programării într-un limbaj clasic de programare
LabVIEW este un limbaj grafic de programare cu caracter universal în (C, Pascal, etc.). Interfeţele grafice realizate cu mare consum de timp
special adaptat pentru instrumentaţie, care realizează achiziţia şi controlul sunt de cele mai multe ori obscure şi neinteligibile. Implementările
datelor, prelucrarea şi analiza lor, precum şi prezentarea rezultatelor. pentru procesări şi analize consumă timp programator preţios.
z LabVIEW este un instrument integrat care are gata implementate
funcţiile necesare pentru toate sarcinile impuse unei aplicaţii de
Mediul de programare bazat pe instrucţiuni text similar cu LabVIEW (având instrumentaţie, ele trebuie doar folosite, programatorului rămânându-i un
implementate aceleaşi biblioteci de funcţii) este LabWINDOWS – CVI (C for
timp preţios pentru soluţionarea aplicaţiei propriu-zise de instrumentaţie.
Virtual Instrumentation)

Introducere în instrumentaţia virtuală 35 Introducere în instrumentaţia virtuală 36


Mediul de programare grafic LabVIEW Mediul de programare grafic LabVIEW

LabVIEW - program de instrumentaţie (cont.) Scurtă istorie


z LabVIEW oferă o metodologie inovativă de programare în care modulele z 1983 – National Instruments începe dezvoltarea unui sistem grafic
de program sunt asamblate grafic. Modulele sunt denumite Instrumente pentru realizarea, testarea şi modificarea rapidă a sistemelor de
Virtuale (IV sau VI – Virtual Instrument) instrumentaţie
z LabVIEW este bazat pe limbajul grafic G (analogie cu C!), fiind unul z 1986 – LabVIEW revoluţionează industria instrumentaţiei oferind un
sistem grafic de programare viabil pe MacIntosh
dintre primele limbaje de programare grafice destinat dezvoltării
aplicaţiilor de achiziţie de date. z 1990 – United States Patent Office emite 2 patente mai largi
recunoscând tehnologia inovativă a LabVIEW
z Programarea se face pe baza principiului fluxului de date, adică se
z 1990 – NI scoate versiunea 2 a LabVIEW asigurând un compilator grafic
programează transferul datelor de la un modul de procesare la altul, şi care creşte viteza de execuţie a IV.
nu succesiunea de prelucrări asupra datelor, ca în limbajele de
z 1992 – NI introduce o versiune 2.5 multiplatformă (Windows – PC, PS2;
programare bazate pe text, obişnuite. MacOS – MacIntosh-Apple, XWindows sau Open Windows – SUN)
z Deşi gândit iniţial pentru proiectarea şi simularea echipamentelor de z 1993 – Versiunea 3 a LabVIEW include un “Application Builder” care
instrumentaţie inteligente, LabVIEW a devenit un limbaj grafic de permite realizarea de programe executabile de sine stătătoare.
programare foarte puternic, complet şi versatil. z Prezent – versiunea 8 care include tot ce vă puteţi imagina (achiziţii pe
internet, baze de date, prelucrare distribuită, conlucrare cu DSP-uri,
suport pentru USB, FireWire, Bluetooth etc.)

Introducere în instrumentaţia virtuală 6


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Introducere în instrumentaţia virtuală 37 Introducere în instrumentaţia virtuală 38


Mediul de programare grafic LabVIEW Mediul de programare grafic LabVIEW

Structura LabVIEW LabVIEW – instrument de lucru foarte puternic


ACHIZIŢIA ŞI PROCESAREA z Utilizează toate facilităţile şi avantajele interfeţelor interactive ale
PREZENTAREA
CONTROLUL ŞI ANALIZA microcalculatoarelor actuale
DATELOR
DATELOR DATELOR
z Furnizează obiecte foarte apropiate grafic de obiectele reale întâlnite în
instrumentele de măsură clasice sau inteligente
z Controlul z Procesare numerică z Afişarea datelor z Furnizează şi instrumente familiare şi uşor de utilizat pentru programare
instrumentelor | Interfaţă interactivp (structuri de programare, funcţii aritmetice şi logice, structuri de date
| Generare de
grafică etc.)
| IEE488 semnale
| RS232 | Filtrare | Grafice, curbe, z Permite utilizarea tuturor regulilor ingineriei programării (specificaţii
imagini integrate, modularitate, încapsulare, biblioteci de programe etc.)
| VXI | Analiză în
frecvenţă | Animaţii z LabVIEW prezintă o mare capacitate de evoluţie (dezvoltare)
| USB ….
z Analiză statistică z Stocarea datelor z Este gândit atât pentru începători în ale programării, dar şi pentru
z Achiziţia datelor
| Arhivare automată
programatori experimentaţi!
| Intrări/ieşiri | Regresii, neteziri
| Tipărire
Concluzie: LabVIEW a devenit un standard în industria şi mediile
analogice | Valori medii
universitare. El schimbă filozofia şi concepţia multor domenii: educaţie,
| Intrări/ieşiri digitale | Abateri proiectare, producţie, ştiinţă, dar chiar şi management.

Introducere în instrumentaţia virtuală 39


Mediul de programare grafic LabVIEW

Exemple de aplicaţii LabVIEW


z Laboratoare didactice sau industriale (cu LabVIEW mentenanţa şi
dezvoltarea laboratoarelor devine foarte uşoară)
| Măsurarea temperaturii, concentraţiei de oxigen
| Înregistrarea ECG, EEG, potenţiale de acţiune, miogramă,
potenţiale evocate
z Simulări şi modele
| Simularea geneticii populaţiei
| Simulare de potenţiale de acţiune, ECG, EEG etc.
| Simularea activităţii inimii
| Orice modelare atâta timp cât sistemul este guvernat de legi
matematice şi statistice (portanţa avioanelor, sisteme sociale etc.)
z Grupuri de lucru orientate pe rezolvarea unor probleme interdisciplinare
z Sisteme automate de testare
| Circuite electronice
| Dispozitive semiconductoare

Introducere în instrumentaţia virtuală 7


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Concepte fundamentale LabVIEW 2

Conţinutul cursului

z Pachetul de programe LabVIEW şi licenţierea


CONCEPTE FUNDAMENTALE LabVIEW
z Noţiuni fundamentale despre Instrumentul virtual
Prof. Dr. Ing. Sever Paşca
z Noţiuni şi elemente fundamentale ale mediului de programare LabVIEW
Catedra de Electronică Aplicată şi Ingineria Informaţiei
Facultatea Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Universitatea POLITEHNICA din Bucureşti

3 Concepte fundamentale LabVIEW 4


Pachetul software LabVIEW

Conţinut National Instruments LabVIEW 6.1.lnk Measurement & Automation.lnk

z LabView Professional Development System 6.1

Pachetul software LabVIEW | Pachetul de bază


z Programe de bază absolut necesare rulării aplicaţiei
z Biblioteci de funcţii de bază şi avansate
z Documentaţie şi linkuri la documentaţie online
z Exemple de programe şi aplicaţii concrete
| Measurement & Automation Explorer
z LabVIEW este un program grafic de dezvoltare de aplicaţii utilizând terminologia, z MAX permite accesul la toate dispozitivele de achiziţie şi control NI (DAQ, GPIB,
simbolurile grafice şi ideile familiare mediului tehnic, motiv pentru care devine un IMAQ, IVI, Motion, VISA, and VXI).
instrument de lucru deosebit de intuitiv şi prietenos la îndemâna cercetătorilor şi z Prin MAX se vizualizează şi se configurează componentele hardware şi software
inginerilor din cercetare şi exploatare, mai ales în colectivele multidisciplinare de NI existent în sistem
specialişti. z Prin MAX se adaugă canale noi, interfeţe şi instrumente virtuale noi
z Versiuni disponibile: z Permite diagnosticul sistemului
- Student Edition (licenţă versiunea 3.1) z Asigură update-ul softwarelui
- Professional version (Licenţă universitară versiunea 6.1 = utilizare învăţământ | Pachetul software NI-DAQ
şi cercetare în campusul universitar + beneficiari contracte cercetare) z constituie driverele pentru dispozitivele DAQ NI, o interfaţă puternică de
z Informaţii suplimentare: National Instruments (http://www.ni.com/labview) programare (API) între aceste dispozitive şi aplicaţiile DAQ

Concepte fundamentale LabVIEW 5 Concepte fundamentale LabVIEW 6


Pachetul software LabVIEW Pachetul software LabVIEW

Conţinut (cont.) Conţinut (cont.)


z Module (subprograme, aplicaţii şi exemple care adaugă funcţionalităţi complexe z AddOn (subprograme, aplicaţii şi exemple care extind funcţionalităţi specializate
cu aplicaţii universale) cu aplicaţii într-un domeniu concret/îngust)
| Real Time Module (performanţe de viteză ridicate pentru programe şi | Application Builder (permite realizarea aplicaţiilor executabile – stand alone)
hardware pentru aplicaţii în timp real, monitorizare şi control distribuit, | Signal Processing Toolkit (prelucrări complexe de semnal – analize timp-
platformă hardware scalabilă) frecvenţă, analiza seriilor în timp, wavelets)
| FPGA module (proiectarea şi simularea aplicaţiilor folosind dispozitive | Sound and Vibration Toolset (analiza semnalelor de frecvenţă joasă pentru
controlul funcţionării maşinilor şi testelor audio)
reconfigurabile)
| Order Analysis Toolset (examinarea semnalelor dinamice şi desfacerea lor
| Embedded application (dezvoltarea în mediul grafic a aplicaţiilor în componente)
dedicate/înglobate pentru procesoare, FPGA-uri, DSP-uri)
| Database Connectivity Toolset (conectare la baze de date locale şi la
| PDA module (LabVIEW pentru PDA-uri şi calculatoare cu Touch Panel) distanţă – MS Access, SQL Server, Oracle)
| Vision Development Module – incluzând IMAQ (“machine vision” şi aplicaţii | Report Generation Toolset (crearea li editarea raporturilor în MS Word şi
stiinţifice de imagistică) Excel direct din LabVIEW)
| Datalogging and control systems (dezvoltarea interactivă de sisteme | Internet Development Toolkit (publicare pe web a rezultatelor şi a datelor,
distribuite de monitorizare şi control) accesarea aplicaţiilor la distanţă şi distribuite, protocoale de comunicaţie
avansate – XML, CGI, FTP)
z Observaţie: Informaţii complete la:
| Etc. (orice funcţionalitate hardware apare la un moment dat, este însoţită
LabVIEW Toolkits (http://www.ni.com/toolkits/)
rapid cu pachetul software care suportă hardware-ul respectiv)

Concepte fundamentale LabVIEW 1


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Concepte fundamentale LabVIEW 7 8


Pachetul software LabVIEW
National Instruments LabVIEW 6.1.lnk

Avantajele LabVIEW
z Filozofia LabVIEW: programarea la nivel de diagramă grafică
z Interfeţe prietenoase intuitive uşor de realizat Instrument virtual
z Biblioteci vaste de obiecte pentru interfaţarea cu utilizatorul şi
dispozitivele hard
z Biblioteci cu procesări complexe de semnale
z Biblioteci cu suport pentru toate resursele hardware şi de conectivitate a
PC-ului Program de măsură = instrument de măsură controlat de către un
calculator
z Portabilitatea programelor de pe un SO pe altul
Apare logic noţiunea de Instrument Virtual (instrument real simulat de
z Interfaţarea cu alte limbaje de programare (C++, MatLab) calculator)
z Integrează şi alte metode avansate de proiectare a sistemelor Un modul de program sau o aplicaţie LabVIEW este numit Instrument
electronice dedicate (FPGA, DSP, microcontrolere, microprocesoare) Virtual (VI – Virtual Instrument) datorită asemănării vizuale şi funcţionale cu
z Un mediu în permanentă dezvoltare un instrument real. Dar în spatele acestei asemănări, se găsesc elemente
tipice limbajelor clasice de programare (program principal, subprograme,
Exemplu program monitorizare şi analiză temperatură (apps\tempsys.llb) funcţii, variabile locale şi globale, modulariate, programare structurată etc.)

Concepte fundamentale LabVIEW 9 Concepte fundamentale LabVIEW 10


Instrument virtual Instrument virtual

Componente fundamentale ale unui VI Componente fundamentale ale unui VI (cont.)


z Panou frontal (FP - Front Panel), sau pe scurt panou z Diagrama bloc (BD - Block Diagram) sau pe scurt diagrama
| corespunzător panoului frontal al unui aparat | corespunzătoare schemei bloc funcţionale a unui aparat
| constituie interfaţa interactivă cu utilizatorul | constituie codul sursă grafic al VI-ului care defineşte funcţionalitatea
| Conţine: unui VI
z Controale (intrări de date utilizator) | constituie codul executabil al VI-ului reprezentat sub formă grafică
z Indicatoare (ieşiri de date din program) | Conţine:
z Elemente grafice (design, ergonomie, grupări de controale după z Terminale (asociate cu controalele din Panoul Frontal)
funcţionalitate etc.) z Noduri (elementele executabile ale codului grafic)
z Etichete text (informaţii auxiliare pentru utilizator) | Constante
| Funcţii elementare ale LabVIEW
z Observaţie: Controalele şi Indicatoarele sunt denumite generic | Structuri de control ale programului
Controale | VI-uri implementate în LabVIEW, în modulele sau AddOn-
urile instalate, dar şi de către utilizator
z Legături (reprezentând fluxul de date între noduri)

Concepte fundamentale LabVIEW 11 Concepte fundamentale LabVIEW 12


Instrument virtual Instrument virtual

Componente fundamentale ale unui VI (cont.) Caracteristici


z Icoana şi conectorul (I&C - Icon & Connector) sau pe scurt icoana z VI-urile sunt ierarhice şi modulare
| corespunzătoare denumirii şi canalului de comunicaţie de date cu | Se pot folosi ca aplicaţii sau ca subprograme
exteriorul ale unui aparat | Un VI utilizat ca subprogram se numeşte subVI
| Icoana şi conectorul reprezintă „numele” grafic de apelare respectiv z LabVIEW foloseşte modelul programării fluxului de date
parametrii de apelare (de intrare/ieşire) ale unui VI atunci când el | La limbajele de programare bazate pe text, fluxul de instrucţiuni
este apelat de un alt VI determină execuţia programului
| Icoana conţine: | La LabVIEW, un nod de execuţie din diagrama bloc este executat
z Grafică atunci când toate datele sunt disponibile la intrările sale.
z Text | Numai după execuţia sa completă, nodul va furniza datele la
| Conectorul conţine: terminalele sale de ieşiri pentru nodurile următoare din arborele
z Terminale de intrare fluxului de date.
z Terminale de ieşire z Un VI se poate găsi la un moment dat în unul din următoarele moduri:
z Observaţie: Icoana şi conectorul sunt suprapuse, doar una dintre ele | Editare (Edit)
fiind vizibilă la un moment dat | Rulare (Run)

Concepte fundamentale LabVIEW 2


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Concepte fundamentale LabVIEW 13 14


Instrument virtual

Caracteristici (cont.)
z LabVIEW foloseşte programarea modulară
| Aplicaţia se împarte în subsarcini şi subsarcini din ce în ce mai
simple (o structură arborescentă pe mai multe nivele)
Mediul de programare LabVIEW
| Se realizează un VI pentru fiecare sarcină elementară, pornind de la
nivelele de jos)
| Se asamblează aceste VI-uri într-un singur VI care rezolvă sarcinile
aplicaţiei
Mediul de programare LabVIEW dă posibilitatea, prin intermediul unor
z Avantajele programării modulare: meniuri, palete şi ferestre, ca utilizatorul/programatorul să creeze, să
| Fiecare VI poate fi rulat editeze şi să execute programe LabVIEW.
şi testat separat APLICAŢIA
Sunt descrise pe scurt în continuare cele mai importante palete şi ferestre
| Unele subVI-uri pot fi
precum şi meniurile LabVIEW.
reutilizate şi în alte aplicaţii Sarcina 1 Sarcina 2 Sarcina n

| Diagramele devin mai


simple şi mai uşor de subS 1.1 subS1.m subS n.1 subSn.m
înţeles şi urmărit
s 1.m.1 s 1.m.2

Concepte fundamentale LabVIEW 15 Concepte fundamentale LabVIEW 16


Mediul de programare LabVIEW Mediul de programare LabVIEW

Ferestre Ferestre (cont.)


z Panou frontal (o fereastră asociată fiecărui VI prin care utilizatorul
interacţionează cu programul)
| mai multe VI-uri pot fi deschise şi chiar rulate simultan, ele
rămânând în memoria de lucru a calculatorului atâta timp cât
ferestrele PF rămân deschise (pot fi şi minimizate)
| permite editarea şi operarea interfeţei cu utilizatorul
| Conţine controale (controale=intrări şi indicatoare=ieşiri), elemente
grafice şi text
z Fereastra de întâmpinare (apare la lansarea programului)
| deschiderea unui nou fişier pentru editare, implicit un fişier de tip
program LabVIEW având extensia vi (butonul NEW VI);
| deschiderea unui program salvat anterior (butonul Open VI);
| căutarea unor exemple (butonul Find Examples)
| căutarea unor soluţii de achiziţie şi control (butonul DAQ Solution)

Concepte fundamentale LabVIEW 17 Concepte fundamentale LabVIEW 18


Mediul de programare LabVIEW Mediul de programare LabVIEW

Ferestre (cont.) Ferestre (cont.)


z Diagrama bloc (păstrează codul sursă al VI-ului)
| BD permite editarea codului sursă şi vizualizarea grafică şi
depanarea codului de execuţie al VI-ului
| Poate fi vizibilă sau nu, accesibilă sau nu, dar întotdeauna încărcată
în memorie pentru a putea fi executată
| Conţine terminale (pentru fiecare control din FP), noduri (elemente
de execuţie) şi legături (stabilesc fluxul de date)

z Documentare LabVIEW (LabVIEW Help )


| constituie o documentaţie completă şi detaliată, cu facilităţi
dezvoltate de accesare, parcurgere şi căutare, a elementelor
mediului de programare, a obiectelor şi tehnologiilor implementate în
LabVIEW precum şi a numeroaselor resurse accesibile prin internet

Concepte fundamentale LabVIEW 3


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Concepte fundamentale LabVIEW 19 Concepte fundamentale LabVIEW 20


Mediul de programare LabVIEW Mediul de programare LabVIEW

Ferestre (cont.) Ferestre (cont.)


z Documentare contextuală (Context Help ) z Observaţie: Deşi cu denumiri identice şi înfăţişare identică, cele trei
| sunt afişate informaţii esenţiale despre componente ale unui VI nu trebuie confundate cu elementele mediului
obiectul deasupra căruia se află cursorul de programare similare. În mediul de programare, aceste elemente
grafic al mouse-ului permit editarea, rularea şi utilizarea VI-ului. Ca şi componente ale VI-
z Lista erorilor (Error List ) ului, fiecare element are o altă semnificaţie:
| sunt expuse erorile de | panoul frontal reprezintă codul sursă creat pentru interfaţa cu
implementare ale utilizatorul şi preluarea şi afişarea datelor – atunci când VI-ul este în
programului cu facilităţi modul Edit – şi permite interacţiunea utilizatorului cu aplicaţia şi
de localizare şi transferarea datelor – atunci când VI-ul este în modul Run;
documentare a lor | diagrama bloc reprezintă codul sursă – atunci când VI-ul este în
modul Edit – şi codul executabil – atunci când VI-ul este în modul
Run;
| icoana şi conectorul reprezintă numele de apelare respectiv
parametrii de apelare ai subVI-ului atunci când el constituie un
subprogram apelat de alt VI (program) apelant.

Concepte fundamentale LabVIEW 21 Concepte fundamentale LabVIEW 22


Mediul de programare LabVIEW Mediul de programare LabVIEW

Palete Palete (cont.)


z Paleta controalelor (Controls Palette) z Paleta funcţiilor (Functions Palette)
| o colecţie structurată ierarhic de obiecte de programare specifice | o colecţie structurată ierarhic de elemente de
utilizate în fereastra Panel pentru editarea interfeţei de interacţiune programare (noduri de execuţie) specifice utilizate
(intrare/ieşire) cu utilizatorul în fereastra Diagram pentru editarea algoritmului
| controalele sunt grupate în subpalete care formează o structură de execuţie a VI-ului
logică arborescentă. | Nodurilor de execuţie sunt grupate în subpalete care
| În paleta Controls găsim controale şi indicatoare, formează o structură logică arborescentă.
obiecte de intrare respectiv ieşire prin care
utilizatorul iteracţionează cu VI-ul.
| când se plasează un control sau indicator pe
panoul frontal, un terminal corespunzător este
adăugat automat în diagrama bloc

Concepte fundamentale LabVIEW 23 Concepte fundamentale LabVIEW 24


Mediul de programare LabVIEW Mediul de programare LabVIEW

Palete (cont.) Palete (cont.)


z Observaţii: z Paleta instrumentelor (Tools Palette
| Paletele de controale şi funcţii au o bară de instrumente proprie, | o colecţie de instrumente, fiecare reprezentând un mod
situată imediat sub bara de titlu, care uşurează selecţia unui anumit special de operare a cursorului grafic al mouse-ului în LabVIEW
obiect din colecţia panoului. Navigarea prin structura arborescentă a | forma cursorului este aceeaşi cu a icoanei butonului de selecţie a
paletelor se face instrumentului
z cu un click pe o subpaletă – în sensul coborârii în ierarhie | aceste instrumente determină modul în care cursorul modifică
z cu butonul – în sensul revenirii la un nivel ierarhic superior obiectele din cele două ferestre ale VI-ului
| Butonul permite o căutare în mod text printre elementele Toolbox Assistant (asistentul cutiei de instrumente) LabVIEW
panourilor selecteze automat instrumentul adecvat doar la poziţionarea
| Butonul permite configurarea paletelor cursorului deasupra unui obiect
Operating tool (instrumentul de operare) serveşte la
manipularea obiectelor din Panel; preia automat modul
de operare a instrumentului de etichetare atunci când
se menţine deasupra unei etichete sau a unei valori
numerice.

Concepte fundamentale LabVIEW 4


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Concepte fundamentale LabVIEW 25 Concepte fundamentale LabVIEW 26


Mediul de programare LabVIEW Mediul de programare LabVIEW

Palete (cont.) Palete (cont.)


Positioning Tools (instrumentul de poziţionare) permite Probe Tool (instrumentul de sondare) permite poziţionarea
poziţionarea, dimensionarea şi selectarea obiectelor unei sonde de vizualizare a valorilor datelor vehiculate în
Labeling Tool (instrumentul de etichetare) permite modificarea timpul execuţiei în diverse puncte ale diagramei
etichetelor obiectelor precum şi scrierea de etichete neataşate Copy Color tool (instrumentul de copiere a culorii) folosit pentru a
obiectelor (etichete singulare, libere) în ambele ferestre ale VI-urilor copia culoarea din orice locaţie a ferestrei curente
Wiring Tool (instrumentul de conectare) serveşte la trasarea Coloring Tool (instrumentul de colorare) care permite colorarea
legăturilor care conectează terminalele nodurilor din BD spaţiului de lucru al ferestrelor Panel şi Diagram şi a obiectelor
Shortcut Menu Tools (instrumentul meniului contextual) permite aflate în fereastra Panel
accesul la meniul contextual al obiectelor prin click–stânga
Scrooling Tool (instrumentul de defilare) permite deplasarea
porţiunii vizibile în interiorul ferestrelor Panel şi Diagram
Breakpoint Tool (instrumentul punctelor de întrerupere) permite
setarea sau ştergerea punctelor de întrerupere (Breakpoint) în BD

Concepte fundamentale LabVIEW 27 Concepte fundamentale LabVIEW 28


Mediul de programare LabVIEW Mediul de programare LabVIEW

Meniuri Meniuri (cont.)


z Bara de instrumente (ToolBar) z Bara de meniuri cu meniuri pull-down
| conţine butoane cu comenzi des folosite; componenţa diferă puţin la
cele două ferestre şi de modurile de operare ale VI-ului (Edit/Run)
Butonul Run porneşte execuţia programului
Butonul Continuous Run permite rularea repetitivă a programului
Butonul Abort opreşte execuţia programului
Butonul Pause întrerupe execuţia programul în mijlocul rulării
Butonul Execution Highlighting evidenţiează execuţia (vizualizarea
fluxului de date şi a nodului procesat) în timpul depanării programului
Butoanele Step Into, Step Over, Step Out permit rularea pas cu pas a | Meniul Tools conţine o serie de facilităţi
programului avansate ale LabVIEW
Meniul Font Control permite setarea atributelor textelor utilizate în VI | Meniul Browse permite navigarea prin
multitudinea de VI-uri, fişiere şi puncte de
Meniurile Align Objects, Distribute Objects, Reorder Objects pentru
întrerupere incluse într-un proiect complex
alinierea, distribuirea şi reordonarea obiectelor din ferestre

Concepte fundamentale LabVIEW 29 Concepte fundamentale LabVIEW 30


Mediul de programare LabVIEW Mediul de programare LabVIEW

Meniuri (cont.) Modurile de operare ale unui VI


z Meniuri contextuale (meniuri pop-up) z Un VI se poate găsi la un moment dat în unul din următoarele moduri:
| se obţin prin apăsarea butonului din dreapta al mouse-ului cu | Editare (Edit) – Permite crearea sau modificarea VI-urilor
cursorul grafic situat deasupra obiectului de interes | Rulare (Run) – Permite rularea şi depanarea VI-urilor
| există un meniu pop-up specific fiecărui obiect Observaţii:
| deoarece în acest meniu sunt grupate toate comenzile specifice z Un VI poate fi rulat din ambele moduri, după rulare VI-ul rămâne în
obiectului căruia îi aparţine, componenţa lui diferă foarte mult în modul iniţial.
funcţie de obiectul sau chiar regiunea obiectului pe care se află z Trecerea din modul Edit în modul Run echivalează cu compilarea
cursorul la apelarea sa, iar meniul contextual este numit şi Shortcut programului.
Menu
z Diagrama bloc care reprezintă codul sursă în modul Edit devine
| Conţin unele facilităţi inteligente care nu sunt accesibile în meniurile reprezentarea codului executabil în modul Run.
pull-down:
z Unele obiecte au meniuri pop-up diferite în cele două moduri. Dacă o
z Operarea asupra datelor opţiune dorită nu este prezentă, faceţi click dreapta pe o altă zonă a
z Modificarea vizibilităţii unor elemente ale obiectelor obiectului sau schimbaţi modul VI-ulu.
z Schimbarea tipului controalelor z Singurul instrument disponibil în modul Run este cel de operare .
z Crearea automată de obiecte (noduri) în BD

Concepte fundamentale LabVIEW 5


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Concepte fundamentale LabVIEW 31


Mediul de programare LabVIEW

SubVI-uri
z Un VI apelat într-o diagramă bloc a unui alt VI se numeşte subVI.
z Pentru ca un VI sa poată fi folosit ca un subVI, el trebuie să aibă definite
icoana şi conectorul şi să fie salvat ca fişier.
z Un subVI corespunde unei subrutine din limbajele de programare
bazate pe text.
z Un nod subVI din diagrama bloc a VI-ului apelant corespunde apelării
unei subrutine în limbajele bazate pe text (terminalele conectorului
reprezentând variabilele de apel al subrutinei). Nodul nu este subVI-ul
propriu-zis, exact aşa cum instrucţiunea de apelare a subrutinei nu este
subrutina însăşi.
z Natura ierarhică şi modulară a VI-urilor trebuie înţeleasă şi utilizată
pentru a folosi LabVIEW eficient.
z Abordarea modulară face ca o aplicaţie să fie uşor de programat, de
depanat, de înţeles şi de modificat.

Concepte fundamentale LabVIEW 6


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Principii fundamentale LabVIEW 2

Conţinutul cursului
z Tipuri de date fundamentale

PRINCIPII FUNDAMENTALE LabVIEW z Crearea de VI-uri

Prof. Dr. Ing. Sever Paşca z Rularea, încărcarea şi salvarea VI-urilor

Catedra de Electronică Aplicată şi Ingineria Informaţiei


z Documentarea VI-urilor
Facultatea Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Universitatea POLITEHNICA din Bucureşti
z Facilităţi de dezvoltare a VI-urilor

z Crearea de subVI-uri

z Tehnici de depanare a VI-urilor

3 Principii fundamentale LabVIEW 4


Tipuri de date fundamentale
National Instruments LabVIEW 6.1.lnk
Numerice
z Controale numerice:
Tipuri de date fundamentale | Controale = intrări de date / indicatoare = ieşiri de date
| Fiecare obiect are un tip implicit, dar care poate fi
schimbat (cu Change to indicator/control)
z Terminale numerice
(apar in BD automat pentru fiecare control pus in FP)
LabViIEW are 4 tipuri de date fundamentale cu care se pot crea tipuri de | Controale = surse de date în BD = chenar gros şi
date complexe: săgeată în dreapta spre exterior
| Indicatoare = destinaţie de date în BD = chenar
Tipuri de date fundamentale: Tipuri de date complexe: subţire şi săgeată în stânga spre interior
z Numerice z Tablouri (arrays) z Legături numerice (transportă datele numerice de la
z Booleene z Structuri (clusters) sursă la destinaţie)
z Şiruri de caractere (string) z Diagrame (charts) z Culoarea terminalelor şi conexiunilor numerice
z Căi de fişiere (path) z Grafice (graphs) | Portocaliu = real sau complex
| Albastru = întreg

Principii fundamentale LabVIEW 5 Principii fundamentale LabVIEW 6


Tipuri de date fundamentale Tipuri de date fundamentale
National Instruments LabVIEW 6.1.lnk
Numerice (cont.) Numerice (cont.)
z Controale speciale numerice de tip subset (enumerare): z Meniuri contextuale:
| Text ring = un set de N elemente de tip text (string) cărora | Format & Precision
li se asociază numere întregi fără semn (0, 1, … , N - 1) z Formatul de afişare
| Enum = idem Ring doar că la afişare valorilor se afişează | Data Range
textul şi nu valoarea numerică asociată
z Valoarea implicită
| Pict Ring = idem doar ca elementele din listă sunt imagini
z Domeniul de reprezentare valid
| Text & Pict Ring = lista e compusă şi din text şi din imagini
| Opţiuni ale controalelor
z Subtipurile (reprezentările) numerice sunt:
| Data operation
| În virgulă mobilă (Precizie extinsă – 128 biţi, dublă – 64
biţi, simplă – 32 biţi)
| Etc.
| Întregi (lung/long – 32 biţi, cuvânt/word – 16 biţi, byte – 8
z Valori numerice speciale:
biţi) | NaN (Not A Number)
| Întregi fără semn (lung/long – 32 biţi, cuvânt/word – 16 biţi, | Inf (Infinity)
byte – 8 biţi) z Domeniul posibil de reprezentare depinde de tip, precizie şi sistemul de
| Complexe (două numere în virgulă mobilă concatenate operare (Help/Index; Data Type, numeric; Numeric Data Types Table)
reprezentând partea reală şi partea imaginară)

Principii fundamentale LabVIEW 1


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Principii fundamentale LabVIEW 7 Principii fundamentale LabVIEW 8


Tipuri de date fundamentale Tipuri de date fundamentale
National Instruments LabVIEW 6.1.lnk National Instruments LabVIEW 6.1.lnk
Booleene Şiruri de caractere (string)
z Controale boolene: z Datele sunt sub formă ASCII (Help/Index; ASCII Codes)
z Terminale booleene z Controale string, Terminale string, Legături string
z Legături booleene z Culoarea terminalelor şi conexiunilor string – roz (magenta)
z Meniuri contextuale:
z Culoarea terminalelor şi conexiunilor numerice – verde | Normal – ‘/’ Code – Password – Hex Display
| Data operation
z Meniuri contextuale: | Limit to a single line
| Mechanical Action | Visible Items / Scrollbar (dacă e redimensionat pe mai multe linii)
| Data operation | Etc.
| Etc. Observaţii:
z Butoanele etichetate au valori implicite z Codurile ‘/’ se pot vizualiza la Help/Index; Backslash ('\') Codes Display
pentru etichete dar acestea pot fi schimbate z Deşi pot conţine caractere numerice, string-urile nu conţin valori
numerice. Pentru a putea fi prelucrate, ele trebuie să fie convertite într-o
valoare numerică cu ajutorul unei funcţii de conversie

Principii fundamentale LabVIEW 9 10


Tipuri de date fundamentale

Căi de fişiere (path)


z Similare cu string-urile doar că vehiculează căi pentru
unităţi, nume de fişiere şi foldere în format complet Crearea de VI-uri
(unitate:\folder\subfolder\…\nume_fişier.ext)
z Controale path, Terminale path, Legături path
z Culoarea terminalelor şi conexiunilor
path – cian (verde-albastru)
z O cale invalidă este precizată prin Sunt prezentate pe scurt acţiunile necesare a fi parcurse pentru crearea
valoarea <Not A Path> unui nou modul de program (VI)
z Meniuri contextuale:
| Visible Items / Browse Button
(pentru deschiderea
ferestrei de navigare)
| Browse Options …
| Etc.

Principii fundamentale LabVIEW 11 Principii fundamentale LabVIEW 12


Crearea de VI-uri Crearea de VI-uri

Crearea unui nou VI Crearea unui nou VI (cont.)


z Deschiderea unui nou VI (a unei perechi de ferestre PF şi BD) cu z Etichetarea elementelor
File/New VI (Ctrl+N) | Se poate face astfel:
z Adăugarea de controale în FP z Imediat la poziţionarea obiectului cu tastarea etichetei
| Selecţie din paleta Controls z Ulterior cu instrumentul de operare sau etichetare
| Selecţie din meniul contextual de pe o zonă liberă a FP (mai z Eticheta unui control apare automat lângă terminalul
avantajoasă deoarece poziţionează obiectul pe locul unde s-a corespunzător din BD
deschis meniul contextual) | Încheierea editării se face cu una din acţiunile
z Util: z Shift+Enter
z Enter de pe padul numeric
| “Acoperirea” display-ului cu cele două ferestre folosind Window /
Tile Left and Right (Ctrl+T) z Click în exteriorul etichetei
| Eticheta nu se poate şterge dar se poate face invizibilă
| Vizualizarea la nevoie a paletelor de instrumente, controale şi
funcţii folosind Windows / Show Toolls Palette, Windows / Show | O etichetă goală (automat invizibilă) poate fi făcută vizibilă pentru
editare bifând Visible Items /Label din meniul contextual al obiectului
Controls Palette, respectiv Windows / Show Functions Palette
| Etichetele singulare folosite pentru comentarea FP şi BD nu sunt
ataşate unui obiect şi se creează cu instrumentul de etichetare cu
un click pe o zonă libera a FP sau BD

Principii fundamentale LabVIEW 2


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Principii fundamentale LabVIEW 13 Principii fundamentale LabVIEW 14


Crearea de VI-uri Crearea de VI-uri

Crearea unui nou VI (cont.) Creearea unuii nou VI (cont.)


| Eticheta unui subVI nu poate fi editată (este numele subVI-lui) | Conexiuni
| Eticheta unei funcţii poate fi editată (în scopul documentării VI-ului) z O conexiune leagă o singură sursă la una sau mai multe
destinaţii având toate acelaşi tip de date.
| Modificarea atributelor textului z Folosind instrumentul de conectare prin click-uri succesive cu
z Se fac cu instrumentul Text Settings din bara de instrumente mouse-ul pe terminalul de start şi terminalul destinaţie (ordinea
nu contează)
z Daca e cel puţin un obiect selectat, modificările atributelor se fac
z O întoarcere de 90 grade se face automat. Pentru mai multe, se
pentru obiectul/obiectele selectate, altfel se schimbă valorile fixează punctul de întoarcere cu un click în locul dorit
implicite care vor fi utilizate pentru toate textele adăugate ulterior z Direcţia de plecare dintr-un colţ de traseu se schimbă apăsând
z Adăugarea de elemente în BD (crearea programului – stabilirea tasta Space
algoritmului de prelucrare şi a fluxului de date) z O conexiune poate începe sau termina şi pe o altă legătură
| Elemente (noduri) de prelucrare z Un dublu click cu instrumentul de legături porneşte sau sfârşeşte
o legătură într-o zonă liberă (nu la un terminal)
z Selecţie din paleta Controls z O legătură se poate face direct între interiorul şi exteriorul unei
z Selecţie din meniul contextual de pe o zonă liberă a FP structuri, LavVIEW creând automat un tunel de legătură pe
(poziţionează obiectul pe locul unde s-a deschis meniul) chenarul structurii
z O legătură incorectă este neagră şi întreruptă. Ea nu permite
z Selecţie din meniul contextual al terminalelor nodurilor de compilarea VI-ului si trebuie ştearsă (Edit / Remove Broken
prelucrare deja poziţionate Wires – Ctrl+B)

Principii fundamentale LabVIEW 15 Principii fundamentale LabVIEW 16


Crearea de VI-uri Crearea de VI-uri

Tehnici de editare Tehnici de editare


Observaţie: Pentru o acţiune asupra unui obiect, el trebuie întâi selectat z Duplicarea obiectelor
z Selectarea obiectelor | Selecţie urmată de Copy (Ctrl+C), apoi click pe poziţia dorită urmată
| Click cu instrumentul de poziţionare de Paste (Ctrl+V)
| Selecţii multiple | Selecţie urmată de click and drag în noua poziţie cu tasta Ctrl
z Cu click and drag pentru includerea în dreptunghiul trasat a apăsată
obiectelor dorite | Selecţie urmată de apăsarea tastelor săgeţi (deplasare fină) sau
z Shift+click succesiv pe obiectele dorite Shift+taste săgeţi (deplasare rapidă)
| Deselectarea individuală se face cu un click pe obiect (ţinând Shiftul | Se pot copia obiecte dintr-un VI în altul
apăsat dacă există o selecţie multiplă) | Nu se pot copia obiecte din BD în FP sau invers
| Deselectarea tuturor obiectelor se face cu un click într-o zonă liberă z Ştergerea obiectelor
z Mutarea obiectelor | Selecţie urmată de Edit / Clear
| Selecţie urmată de Cut (Ctrl+X), apoi click pe noua poziţie dorită | Selecţie urmată de apăsarea tastei Del sau Bacspace
urmată de Paste (Ctrl+V) | Terminalele din BD nu se pot şterge. Ele dispar la ştergerea
| Selecţie urmată de click and drag în noua poziţie controlului asociat din FP
| Selecţie urmată de apăsarea tastelor săgeţi (deplasare fină) sau | Unele componente ale controalelor complexe nu se pot şterge, dar
Shift+taste săgeţi (deplasare rapidă) se pot face invizibile (label, caption, digital display etc.)

Principii fundamentale LabVIEW 17 Principii fundamentale LabVIEW 18


Crearea de VI-uri Crearea de VI-uri

Tehnici de editare Tehnici de editare


z Redimensionarea obiectelor z Selectarea conexiunilor
| Click and drag cu instrumentul de poziţionare pe un colţ al obiectului | Un click selectează un segment
z Vizibilitatea obiectelor suprapuse | Un dublu click selectează o ramură
| Se pot deplasa în faţă sau în spatele celorlalte obiecte folosind | 3 click-uri selectează o legătură
comenzile din instrumentul Reorder din bara de instrumente | Se pot selecta segmente multiple chiar neconectate cu Shift+click-
z Colorarea obiectelor uri succesive pe segmentele dorite
| La majoritatea obiectelor (excepţie cele la care se foloseşte un cod z Deplasarea conexiunilor
de culoare pentru tipurile de date vehiculate), se pot schimba | Se face similar cu deplasarea oricărui obiect, doar ca LabVIEW
culorile, separat pentru background şi foreground, folosind modifică segmentele adiacente
instrumentul de colorare | Când se deplasează un obiect, toate segmentele conectate la
| Pentru obiectele logice, fiecare stare are setul propriu de culori terminalele sale se modifică/deplasează corespunzător pentru a nu
| Culoarea marcată cu T face obiectul transparent, fiind vizibil obiectul se pierde conexiunea
din spatele său, dar acţiunea cu instrumentul de operare făcându-se | La copierea unor obiecte sau la mutarea lor din interiorul în
pe el exteriorul unei structuri sau invers, unele conexiuni se pot rupe

Principii fundamentale LabVIEW 3


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

19 Principii fundamentale LabVIEW 20


Rularea, încărcarea şi salvarea VI-urilor

Rularea unui VI
z Un VI se poate rula atât din modul Run, cât şi din modul Edit apăsând
Rularea, încărcarea şi salvarea VI-urilor butonul Run din bara de meniuri. După execuţie, VI-ul revine în
modul iniţial.
z Trecerea din modul Edit în Run echivalează cu compilarea programului.
z Când un VI este rulat, butonul Run îşi schimbă forma:
| – când VI-ul este rulat ca program principal;
| – când VI-ul este executat ca subVI apelat de alt VI.
z Se pot rula mai multe VI-uri simultan.
z Un VI nu se poate rula în acelaşi moment atât ca program principal, cât
şi ca subprogram. De aceea, toate programele care au ca subVI un
program care este rulat ca program principal, au butonul Run rupt până
când respectivul VI îşi termină execuţia.

Principii fundamentale LabVIEW 21 Principii fundamentale LabVIEW 22


Rularea, încărcarea şi salvarea VI-urilor Rularea, încărcarea şi salvarea VI-urilor

Încărcarea şi salvarea VI-urilor Încărcarea şi salvarea VI-urilor


z Un VI se poate salva în două feluri: z Un VI se poate salva cu opţiuni (File / Save with Options …):
| VI individual, cu extensia .vi, | Salvarea întregii ierarhii
| Într-un fişier bibliotecă cu extensia .llb. | Includerea subVI-urilor externe
z Fişierele biblioteci .llb pot conţine mai multe VI-uri şi sunt portabile, spre | Includerea meniurilor
deosebire de fişierele .vi care sunt specifice sistemului de operare. | Salvarea cu parolă
z Fişierele biblioteci .llb sunt comprimate, salvând spaţiu, dar dacă arhiva | Salvarea fără diagrame
este coruptă, se pierd toate VI-urile incluse în ea. z Un VI modificat poate fi adus la
z O bibliotecă poate fi editată cu comanda Tools / Edit VI Library … starea de la ultima salvare
z O bibliotecă .llb salvată in directorul vi.lib din directorul de instalare al folosind comanda File / Revert …
LabVIEW va fi inclusă automat la lansarea LabVIEW în paleta Function.
Aceasta este o modalitate dinamică prin care se poate personaliza acest
meniu cu subprogramele proprii care pot fi utilizate în mai multe aplicaţii.

23 Principii fundamentale LabVIEW 24


Documentarea VI-urilor

z Fiecare obiect are o descriere care poate fi editată (nu şi în modul Run)
şi vizualizată din meniul contextual al obiectului.
Documentarea VI-urilor z Fiecare VI are o documentare accesibilă din meniul File / VI Properties
… selectând categoria Documentation. Aici se pot introduce:
| O descriere a VI-ului
| Numele unui fişier în format html care conţine o documentare
completă a VI-ului
Documentarea unui program ajută la utilizarea şi înţelegerea lui şi la
dezvoltarea sa ulterioară. | Un cuvânt cheie la care se doreşte trimiterea prin funcţia help la un
index al unui fişier Help compilat.
Observaţii:
z Documentarea este foarte importantă pentru eficienţa utilizării şi
dezvoltării ulterioare a unui program.
z Firmele de soft alocă un timp însemnat din timpul de programare
documentării programelor.
z Calitatea unui programator se vede de cele mai multe ori în
documentarea programelor

Principii fundamentale LabVIEW 4


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

25 Principii fundamentale LabVIEW 26


Crearea de subVI-uri
National Instruments LabVIEW 6.1.lnk

z Pentru ca un modul de program (VI) să poate fi utilizat ca un subprogram


Crearea de subVI-uri (subVI), el trebuie:
| Să fie salvat fie ca fişier de sine stătător în format .vi, fie într-o
bibliotecă în format .llb;
| Să aibă creată o icoană, care reprezintă numele de apel al subVI-
ului;
LabVIEW este un limbaj de programare modular. Un program LabVIEW | Să aibă definit un conector, care reprezintă parametrii de apel ai
poate fi rulat atât ca program principal (VI) cât şi ca un subprogram (subVI). subVI-ului.
z Crearea icoanei
| LabVIEW creează automat o icoană la deschiderea unui nou VI care
poate fi editată apoi folosind comanda Edit Icon … din meniul
contextual obţinut pe icoana din FP.
| Editorul de icoană este un editor grafic minimal care permite
realizare unei icoane cu informaţii în formă text şi grafic.

Principii fundamentale LabVIEW 27 28


Crearea de subVI-uri
National Instruments LabVIEW 6.1.lnk

z Crearea conectorului
| Selectând din meniul contextual al icoanei din FP comanda Show Facilităţi de dezvoltare a VI-urilor
Connector, LabVIEW propune şi creează o structură de conector
corespunzătoare numărului de controale şi indicatoare din FP-ul VI-
ului.
| Structura conectorului poate fi schimbată oricând prin:
z Selecţia altei configuraţii din submeniul grafic Patterns din meniul Sunt trecute în revistă unele facilităţi ale mediului de programare LabVIEW
contextual al conectorului; care e bine să fie utilizate pentru eficientizarea activităţii de programare a
z Rotirea sau oglindirea configuraţiei folosind comenzile VI-urilor.
corespunzătoare din meniul contextual al conectorului.
| Alocarea terminalelor conectorului la controalele (de regulă
terminalele din stânga) şi indicatoarele (de regulă terminalele din
dreapta) din FP se face cu instrumentul de conectare (click pe
conector, click pe control, click pe o zonă liberă a FP).

Principii fundamentale LabVIEW 29 Principii fundamentale LabVIEW 30


Facilităţi de dezvoltare a VI-urilor Facilităţi de dezvoltare a VI-urilor

z Utilizarea comenzilor scurte (shortcut-uri) care apar în meniurile pull- z Comutarea instrumentului prin apăsarea tastei Space între
down în dreapta comenzilor respective. Câteva foarte utile sunt instrumentele de operare şi selecţie în FP şi instrumentele de selecţie şi
următoarele: conectare în fereastra BD.
| Ctrl+R – rularea unui VI z Schimbarea succesivă a instrumentului prin apăsarea tastei Tab între
| Ctrl+M – schimbarea modului VI-ului din Edit în Run şi invers cele patru instrumente cele mai des folosite în fereastra FP/BD:
| Ctrl+E – comutarea între ferestrele FP şi BD instrumentul de operare, de selecţie, de editare text şi de colorare /
conectare.
| Ctrl+H – Afişarea sau ascunderea ferestrei help contextual
z În timpul trasării unei legături, se poate schimba direcţia cu 90 de grade
| Ctrl+B – ştergerea tuturor legăturilor incorecte apăsând tasta Space.
| Ctrl+W – închiderea ferestrei active z Deplasarea fină a unui obiect sau segment sau a unui grup de astfel de
| Ctrl+T – redimensionarea celor două ferestre ale VI-ului ca să elemente selectate folosind tastele săgeţi (pixel cu pixel) sau
acopere tot ecranul Shift+tastele săgeţi (câte 10 pixeli odată).
| Ctrl+/ – maximizarea/redimensionarea ferestrei curente z Adăugarea elementelor noi la un text ring folosind Shift+Enter la
| Ctrl+? sau F1 – afişarea ferestrei help terminarea introducerii unui element din enumerare şi trecerea la
următorul.

Principii fundamentale LabVIEW 5


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Principii fundamentale LabVIEW 31 32


Facilităţi de dezvoltare a VI-urilor

z Duplicarea unui element sau grup de elemente prin menţinerea apăsată


a tastei Ctrl în timpul operaţiei de mutare a obiectului cu tehnica click Tehnici de depanare a VI-urilor
and drag (se deplasează o copie a elementelor selectate).
z Preluarea unei culori de la un obiect folosind instrumentul de colorare cu
tasta Ctrl apăsată. Culoarea este memorată ca cea implicită, astfel că
printr-un singur click pe alte obiecte acestea sunt colorate identic cu
primul. z La compilarea VI-ului, LabVIEW afişează o fereastră cu toate erorile de
z Pentru a elimina rapid eroarea des întâlnită de a lega două controale sintaxă existente în VI. VI-ul nu poate fi executat până când nu se
între ele, se foloseşte din meniul contextual comanda Change to elimină aceste erori.
indicator. z Dar erorile logice de programare nu pot fi detectate de către LabVIEW.
z Ştergerea unei legături în curs de realizare se realizează uşor cu un Dacă ele apar (VI-ul nu rulează cum trebuie sau dă rezultate
click pe butonul din drapata al mouse-ului. neaşteptate şi incorecte) trebuie eliminate prin verificarea logică a
z Utilizarea comenzilor din meniurile grafice din bara de instrumente Align programului.
Objects şi Distribute Objects pentru aranjarea rapidă a elementelor din z Punerea la punct a unui program prin eliminarea erorilor de sintaxă şi
ferestrele VI-ului. erorilor logice se face prin depanarea VI-ului.

Principii fundamentale LabVIEW 33 Principii fundamentale LabVIEW 34


Tehnici de depanare a VI-urilor Tehnici de depanare a VI-urilor

VI cu erori Rularea pas cu pas


z Pe perioada editării, butonul RUN apare întrerupt atâta timp cât z Pentru urmărirea execuţiei unui VI, o diagramă poate fi rulată pas cu pas
programul are erori. De cele mai multe ori o comandă Remove Broken folosind următoarele taste din bara de instrumente:
Wire (Ctrl+B) rezolvă problema. | - Single Stepping Into (rularea pas cu pas a diagramei curente cu
z Pentru a afla de ce un VI nu poate fi compilat, se apasă butonul Run execuţie pas cu pas şi a nodului de execuţie următor)
sau se selectează comanda Window / Show Error List (Ctrl+L). | - Single Stepping Over (rularea pas cu pas a diagramei curente cu
z În fereastra Error List care apare: execuţie într-un singur pas a nodului de execuţie următor)
| Se selectează VI-ul dorit, | - Step Out (terminarea completă a execuţiei diagramei curente)
| Selecţia erorii (cu un click pe el) determină afişarea unor informaţii z Nodul următor care va fi executat este pus în evidenţă prin clipirea sa.
detaliate despre eroarea respectivă,
| Cu o eroare selectată, prin apăsarea butonului Find (sau cu un
dublu-click pe eroare) LabVIEW aduce fereastra cu eroare în prim
plan şi selectează automat obiectul care a generat eroarea.
z Prin bifarea opţiunii Show Warnings se afişează informaţii suplimentare
sub forma unor avertizări. Acestea nu determină întreruperea butonului
Run dar atrag atenţia asupra unor lucruri fără sens pentru LabVIEW.

Principii fundamentale LabVIEW 35 Principii fundamentale LabVIEW 36


Tehnici de depanare a VI-urilor Tehnici de depanare a VI-urilor

Rularea cu evidenţierea execuţiei Utilizarea sondei de vizualizare


z Vizionarea animată a execuţiei unui VI permite urmărirea ordinii de z Sonda de vizualizare (Probe) permite verificarea valorilor intermediare
execuţie a nodurilor şi a valorilor intermediare ale datelor vehiculate. ale unui VI care produce rezultate nesigure sau neaşteptate.
z Folosind rularea cu evidenţierea execuţiei în conjuncţie cu rularea pas cu z Se poate lega şi un indicator la o legătură de date pentru a vizualiza
pas, se poate înţelege foarte bine fluxului datelor între nodurile BD valoarea dar e mult mai rapidă şi comodă utilizarea unei ferestre Probe
(deplasarea datelor este simulată cu nişte puncte care se deplasează pe la care se poate alege orice tip de indicator se doreşte.
legături). z În modul Run, un clik-dreapta pe legătură şi selectarea comenzii Probe
z Validarea acestui mod se face prin apăsarea butonului Highlight determină apariţia unei ferestre Probe numerotate asociate legăturii
Execution care işi schimbă culoarea pentru marcarea faptului că respective.
modul este activat. z Probe în conjuncţie cu rularea pas cu pas şi evidenţierea execuţiei
z Rularea cu evidenţierea execuţiei reduce substanţial performanţele unui permite urmărirea valorilor intermediare mult mai uşor.
VI. Un subVI cu acest mod validat poate înrăutăţii substanţial şi z O legătură poate avea o singură fereastră Probe.
performanţele VI-ului apelant / principal. z Valorile datelor nu pot fi modificate din fereastra Probe.
z Ferestrele Probe nu au nici un efect asupra execuţiei programului.

Principii fundamentale LabVIEW 6


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Principii fundamentale LabVIEW 37 Principii fundamentale LabVIEW 38


Tehnici de depanare a VI-urilor Tehnici de depanare a VI-urilor

Utilizarea punctelor de întrerupere a execuţiei Reguli pentru depanarea VI-urilor


z Un punct de întrerupere suspendă execuţia nodului la care a fost setat, z Verificarea corectitudinii conexiunilor – prin triplu-click pe o legătură se
permiţând inspectarea datelor care sunt trimise nodului înainte ca selectează întreaga conexiune şi se poate verifica faptul că acesta
acesta să fie executat. pleacă/ajunge la terminalul dorit.
z Setarea unui punct de întrerupere se face în mai multe moduri: z Verificarea conectărilor folosind fereastra Context Help (corectitudinea
| Din meniul contextual al nodului de execuţie se selectează comanda semnalelor la terminalul dorit).
Set Breakpoint. Dacă nodul de execuţie este un subVI, această
comandă va avea efect numai la acest apel al subVI-ului. z Verificarea valorilor implicite la terminalele neconectate ale funcţiilor şi
| În fereastra subVI-ului, se selectează comanda Operate / Suspend subVI-urilor care trebuie să fie cele dorite.
when Called. Această comandă are efect pentru toate instanţele z Utilizarea punctelor de întrerupere, evidenţierea execuţiei şi rularea pas
acestui subVI, în toate VI-urile care apelează acest VI. cu pas pentru controlul execuţiei programelor care trebuie să fie identic
| În fereastra Files / VI Properties… a unui subVI, în categoria cu cel dorit. Pentru asigurarea performanţelor ridicate ale execuţiei VI-
Execution, se bifează opţiunea Suspend when Called. Această urilor, aceste facilităţi trebuie dezactivate.
opţiune are efect pentru toate instanţele acestui subVI, în toate VI- z Utilizarea sondei de vizualizare pentru inspectarea rezultatelor
urile care apelează acest VI. intermediare.
z După întreruperea execuţiei la un breakipoint, se poate continua
z Verificarea erorilor date de funcţii şi subVI-uri, mai ales pentru cele care
execuţia normal, pas cu pas sau/şi cu evidenţierea execuţiei.
execută operaţii de intrare/ieşire.

Principii fundamentale LabVIEW 39


Tehnici de depanare a VI-urilor

Reguli pentru depanarea VI-urilor (cont.)


z Observarea comportării VI-urilor sau a subVI-urilor cu diverse valori de
intrare. Pentru controale numerice, se pot introduce şi valori speciale
(NaN, ±Inf).
z Verificarea invalidării evidenţierii execuţiei pentru toate subVI-urile
atunci când un VI rulează încet. Ferestrele VI-urilor neutilizate trebuie să
fie închise – pentru eliberarea memoriei utilizate.
z Verificarea buclelor FOR care pot să nu execute nici o iteraţie şi creează
tablouri goale.
z Verificarea iniţializării corecte a registrelor de deplasare atunci când nu
se doreşte în mod expres păstrarea datelor de la o execuţie la alta.
z Verificarea ordinii elementelor în structurile de date (clustere) care
trebuie să fie aceeaşi la sursă şi la destinaţie (se poate corecta cu
comanda Cluster Order).
z Verificarea ordinii execuţiei nodurilor care poate să nu fie exact cea
care se doreşte.

Principii fundamentale LabVIEW 7


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

1 Principii fundamentale LabVIEW 2

Conţinutul cursului
Execuţia repetitivă (buclarea) – bucla FOR şi bucla WHILE
STRUCTURI DE CONTROL AL z

Poziţionarea obiectelor în interiorul structurilor


EXECUŢIEI PROGRAMELOR z

z Registrele de deplasare (variabile locale în bucle)

z Teste condiţionale – structura CASE numerică şi booleană

z Casete de dialog modale

z Ordonarea execuţiei nodurilor – structura SEQUENCE

z Variabile locale în structura secvenţă

z Temporizări

z Formule matematice în mod text – Structura FORMULA NODE

z Probleme la conectarea structurilor

3 Principii fundamentale LabVIEW 4


Introducere

z Structurile sunt noduri de execuţie în LabVIEW. Ca şi celelalte noduri de


Introducere execuţie, structurile de programare:
| au terminale prin care se pot conecta la celelalte noduri,
| se execută atunci când toate datele sunt disponibile la terminalele
lor de intrare,
| furnizează date, la terminalele lor de ieşire, numai după completa lor
execuţie.
z Structurile de programare în LabVIEW sunt reprezentări grafice ale
instrucţiunilor de control al execuţiei programului dintr-un limbaj de z Fiecare structură are un contur distinctiv, redimensionabil, care
programare clasic bazat pe text. Ele sunt utilizate în diagrama bloc a delimitează în interior porţiunea de diagramă care se execută după
unui VI pentru a executa repetitiv, condiţionat sau într-o anumită ordine regulile specifice structurii.
porţiuni de cod (subdiagrame). z Secţiunea de diagramă delimitată de conturul unei structuri poartă
numele de subdiagramă.
z Terminalele prin care o structură schimbă date cu exteriorul se numesc
tuneluri. Un tunel este un punct (terminal) de conectare pe conturul
structurii.

5 Principii fundamentale LabVIEW 6


Execuţia repetitivă (buclarea)
National Instruments LabVIEW 6.1.lnk

Bucla FOR
z O buclă FOR execută o subdiagramă de un număr prestabilit de ori.
Execuţia repetitivă (buclarea) z Pseudocod:
for i = 0 to N–1 do subdiagrama;
z Terminalului de numărare (un terminal de intrare) precizează de câte
ori se repetă execuţia subdiagramei.
z Numărul de iteraţii se setează
z Buclele pot fi: cu test iniţial; cu test final respectiv: cu cunoaşterea
iniţială a numărului de iteraţii, fără cunoaşterea iniţială a numărului de | explicit prin legarea unei valori din exteriorul buclei prin laturile din
iteraţii. stânga sau de sus ale terminalului de numărare,
z Nu toate cele patru combinaţii posibile sunt implementate în fiecare | implicit prin indexare.
limbaj de programare. z Terminalul de iteraţie (un terminal de ieşire) indică numărul de iteraţii
z LabVIEW implementează doar două: complete efectuate.
- bucla FOR (cu test iniţial şi cunoaşterea iniţială a numărului de iteraţii), z Terminalul de iteraţie porneşte întotdeauna
de la zero. În timpul primei iteraţii, valoarea
- bucla WHILE (cu test final şi fără cunoaşterea iniţială a numărului de generată de terminalul de iteraţie este zero.
iteraţii).

Principii fundamentale LabVIEW 1


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Principii fundamentale LabVIEW 7 Principii fundamentale LabVIEW 8


Execuţia repetitivă (buclarea) Execuţia repetitivă (buclarea)
National Instruments LabVIEW 6.1.lnk

Bucla FOR (cont.) Bucla WHILE


z Terminalele de numărare şi de iteraţie sunt reprezentate ca numere z Bucla WHILE execută o subdiagramă atât timp cât este îndeplinită o
întregi lungi cu semn (signed long integers). anumită condiţie, similar cu bucla do-while sau repeat-until din limbajele
z Dacă se conectează la terminalul de numărare o valoare în reprezentare de programare bazate pe text.
reală în virgulă mobilă (floating-point), LabVIEW o rotunjeşte şi o z Pseudocod:
constrânge la domeniul posibil de reprezentare a numerelor signed long do subdiagrama while condiţie;
integers. repeat subdiagrama until condiţie;
z Dacă valoarea legată la terminalul de numărare este zero sau negativă, z Bucla WHILE execută subdiagrama din interiorul conturului său atât timp
bucla nu se execută de loc. cât terminalul condiţional (un terminal de intrare) primeşte o valoare
z Pentru a transfera valori de la iteraţiile precedente la iteraţia curentă, se booleană prestabilită. Subdiagrama setează valoarea transferată
utilizează variabilele locale numite Shift Registers. terminalului condiţional.
z Bucla WHILE este o buclă cu test final, de aceea ea se execută
întotdeauna cel puţin o dată. Dacă terminalul condiţional este
neconectat, butonul Run al VI-ului
este rupt indicând o eroare.

Principii fundamentale LabVIEW 9 Principii fundamentale LabVIEW 10


Execuţia repetitivă (buclarea) Execuţia repetitivă (buclarea)

Bucla WHILE (cont.) Bucla WHILE (cont.)


z Comportarea şi aspectul implicit al terminalului condiţional este z Terminalul condiţional al unei bucle While poate fi utilizat şi pentru
Continue If True (continuă dacă este adevărat). Când terminalul operaţiile fundamentale legate de tratarea erorilor. Când se conectează
condiţional este Continue If True, bucla While repetă execuţia un Error Cluster (o colecţie de date de tipuri diferite care descriu o
subdiagramei sale până când terminalul condiţional primeşte valoarea condiţie de eroare) la terminalul condiţional, doar valoarea True sau
False. False a parametrului de stare a Error Cluster este transferată
z Comportarea şi aspectul terminalului condiţional pot fi modificate din terminalului condiţional. În această situaţie, comenzile Stop If True şi
meniul contextual obţinut cu un click-dreapta pe terminal sau pe conturul Continue If True din meniul contextual se modifică în Stop on Error şi
buclei selectând opţiunea Stop If True. Când terminalul condiţional este Continue while Error.
Stop If True, bucla While repetă execuţia subdiagramei sale până când z Pentru a transfera valori de la iteraţiile precedente la iteraţia curentă, se
terminalul condiţional primeşte valoarea True. utilizează, ca şi la bucla For, variabilele locale Shift Registers.
z Terminalul de iteraţie (un terminal de ieşire) indică numărul de iteraţii
complete efectuate. Terminalul de iteraţie porneşte întotdeauna de la
zero. În timpul primei iteraţii, valoarea
generată de terminalul de iteraţie este
zero, iar în timpul iteraţiei n valoarea
generată este n–1.

Principii fundamentale LabVIEW 11 Principii fundamentale LabVIEW 12


Execuţia repetitivă (buclarea) Execuţia repetitivă (buclarea)

Poziţionarea obiectelor în interiorul structurilor Terminale în interiorul structurilor


z Selectarea unei structuri din meniul Functions / Structures determină z Cum LabVIEW operează prin metoda fluxului de date, intrările de date
modificarea cursorului în forma structurii selectate. Cu tehnica click and trebuie să-şi transfere valoarea înainte de execuţia structurii. Structura
drag se înglobează în dreptunghiul trasat obiectele care se doresc transferă datele de ieşire numai după execuţia completă a sa.
introduse în structură. z Dacă se doreşte ca un terminal să fie testat sau să fie actualizat la
z O dată creată structura, obiectele se pot introduce în interior prin: fiecare iteraţie a unei bucle, atunci terminalul trebuie introdus în
| Selectarea unui obiect din meniul pop-up (meniul Functions) obţinut interiorul buclei.
cu un click-dreapta în interiorul structurii. z Dacă se foloseşte terminalul de iteraţie pentru indexarea execuţiilor unei
| Prin mutarea unui obiect din exterior în interiorul structurii cu click bucle, trebuie să se adauge 1 deoarece terminalul de iteraţie variază
and drag. Când un obiect este introdus sau scos dintr-o structură, începând cu valoarea 0 (i = 0 … N – 1)
structura îşi evidenţiază conturul pentru a sublinia acest lucru.
z Dacă se deplasează o structură existentă peste un obiect, atunci:
| Dacă obiectul este parţial acoperit, el se vede peste structură.
| Dacă obiectul este complet acoperit, el apare “în faţa” structurii dar
cu o umbră care precizează că nu este în structură.

Principii fundamentale LabVIEW 2


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Principii fundamentale LabVIEW 13 Principii fundamentale LabVIEW 14


Execuţia repetitivă (buclarea) Execuţia repetitivă (buclarea)

Transferul datelor înspre şi dinspre structuri Transferul datelor înspre şi dinspre structuri (cont.)
z Structurile de control al execuţiei programelor sunt noduri de execuţie şi z Tunelele unor bucle permit indexarea automată la transferul unui tablou.
utilizează pentru a vehicula date (variabile) cu exteriorul (restul | Cu indexarea validată, un tunel de intrare de tip tablou transferă la
diagramei) terminale speciale numite tunele. fiecare iteraţie a buclei valoarea din tablou cu indexul egal cu
z Tunelele sunt terminale de conectare situate oriunde pe latura structurii, iteraţia. Un astfel de tunel de ieşire memorează într-un tablou
care se creează automat atunci când se traversează cu o conexiune valorile rezultate la fiecare iteraţie, întreaga arie fiind transferată la
latura structurii, în oricare direcţie, sau atunci când o conexiune ieşire după completa execuţie a structurii.
porneşte sau se termină chiar pe latura buclei (cu un dublu-click pe | Cu indexarea invalidată, tunelul transferă întreaga arie la începutul
latură cu instrumentul de conectare). (dacă tunelul este de intrare) sau la sfârşitul (dacă tunelul este de
z Tunelele au posibilitatea să transfere fie valori scalare – valori unice, fie valori ieşire) execuţiei structurii.
vectoriale – structuri de date de acelaşi tip (tablouri/arii uni- sau multi-
z Pentru bucla For, indexarea este implicit validată, iar pentru bucla
dimensionale), fie clustere – structuri de date de tipuri diferite.
While, indexarea este implicit
invalidată. Meniul contextual al
tunelului permite invalidarea
(Disable Indexing) respectiv vali-
darea (Enable Indexing) indexării.

Principii fundamentale LabVIEW 15 Principii fundamentale LabVIEW 16


Execuţia repetitivă (buclarea) Execuţia repetitivă (buclarea)

Setarea valorii terminalului de numărare Registrele de deplasare


a buclei FOR prin autoindexare
z Variabilele Shift Registers (registre de deplasare) sunt utilizate în
z Dacă la o buclă FOR este validată autoindexarea la un tunel cu un buclele FOR şi WHILE pentru a transfera valori de la iteraţia precedentă
tablou de intrare, LabVIEW setează automat terminalul de numărare la (sau de la iteraţiile precedente) la iteraţia curentă. Funcţia lor este
dimensiunea tabloului, nemaifiind nevoie de legarea unei valori la acest similară cu cea a variabilelor statice utilizate în acelaşi scop în buclele
terminal. limbajelor de programare bazate pe text.
z Dacă se leagă mai multe tablouri de intrare cu autoindexarea validată, z Un Shift Register se creează selectând Add Shift Register din meniul
sau daca se atribuie şi o valoare pentru terminalul de numărare, contextual obţinut pe una din laturile verticale ale conturului buclei.
LabVIEW alege valoarea cea mai mică dintre valoarea atribuită şi z Terminalul de ieşire din dreapta conţine o săgeată îndreptată în sus şi
dimensiunile tablourilor cu autoindexarea validată. memorează datele la terminarea execuţiei unei iteraţii.
z LabVIEW transferă aceste date la iteraţia următoare prin deplasarea lor
la terminalul de intrare din stânga marcat cu o săgeată îndreptată în jos.

Principii fundamentale LabVIEW 17 Principii fundamentale LabVIEW 18


Execuţia repetitivă (buclarea) Execuţia repetitivă (buclarea)

Registrele de deplasare (cont.) Registrele de deplasare (cont.)


z Un terminal de intrare suplimentar se adaugă din meniul contextual al z Un Shift Register poate fi iniţializat cu valori conectate din exteriorul
terminalului registrului de deplasare selectând Add Element. Se buclei la terminalele de intrare ale registrului de deplasare.
memorează astfel o valoare suplimentară dintr-o iteraţie precedentă. z Dacă registrul nu este iniţializat, bucla va folosi:
z Shift Register-ul transferă date de orice tip (inclusiv structuri de date) şi, | fie ultimele valori înscrise în registru la ultima execuţie a buclei,
automat, tipul şi aspectul său se modifică corespunzător primului obiect | fie valorile implicite (de iniţializare) corespunzătoare tipului de date
conectat la el. Datele care se conectează la terminalele fiecărui registru asociat registrului dacă el n-a fost niciodată executat.
de deplasare trebuie să fie toate de acelaşi tip. Observaţii:
z După ce bucla a fost complet executată, ultimele valori din registrele de z Atenţie însă, la lansarea în execuţie a unui program registrele de
deplasare rămân memorate. Dacă se conectează terminalul de ieşire al deplasare din buclele sale nu sunt iniţializate, acest lucru se întâmplă
unui Shift Register în afara buclei, legătura respectivă transferă valoarea numai la încărcarea programului în memorie.
memorată la sfârşitul ultimei iteraţii a buclei. z O buclă cu registre de deplasare neiniţializate se utilizează într-un VI
atunci când se doreşte ca la fiecare rulare a sa, valorile furnizate de
registru la prima iteraţie să fie valorile memorate în registru la ultima
iteraţie din execuţia precedentă a VI-ului. Un registru de deplasare
neiniţializat se foloseşte, de exemplu, pentru a păstra informaţii de stare
între execuţii succesive ale unui VI.

Principii fundamentale LabVIEW 3


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

19 Principii fundamentale LabVIEW 20


Teste condiţionale

Structura CASE
z O structură CASE are două (case logic) sau mai multe (case numeric)
Teste condiţionale subdiagrame.
z Este vizibilă o singură subdiagramă la un moment dat şi se execută o
singură subdiagramă la fiecare execuţie a structurii CASE.
z O valoare a unui selector, conectată la terminalul de selecţie,
determină care din subdiagramele structurii CASE este executată.
Structura CASE este în LabVIEW metoda de a executa instrucţiuni z Pseudocod:
condiţionale similare cu if ... then ... else ... sau case din limbajele de
if selector then subdiagrama_true else subdiagrama_false;
programare bazate pe text.
case selector
valoare_1: subdiagrama_1;
...
valoare_n: subdiagrama_n;
end case;

Principii fundamentale LabVIEW 21 Principii fundamentale LabVIEW 22


Teste condiţionale Teste condiţionale

Structura CASE (cont.) Structura CASE (cont.)


z Eticheta structurii CASE, situată în centrul laturii de sus a conturului z La plasarea unei structuri CASE, ea este de tip logic, având două case-
structurii, conţine: uri etichetate FALSE respectiv TRUE.
| numele valorii selectorului care corespunde subdiagramei vizibile; z La conectarea din exterior a unei valori numerice la terminalul de
| săgeţile de incrementare şi decrementare; permit navigarea prin selecţie, structura se schimbă în una numerică, case-urile fiind
subdiagramele disponibile; etichetate cu numere cu valori întregi.
| o săgeată orientată în jos care deschide un meniu pull-down cu lista z Se pot adăuga până la 215 – 1 subdiagrame folosind una din comenzile
subdiagramelor disponibile. din meniul contextual:
| Add Case After (adaugă o subdiagramă după cea vizibilă),
z Pentru a determina care subdiagramă să fie executată, se conectează
din exteriorul structurii o valoare de intrare (selector) la terminalul de | Add Case Before (adaugă o subdiagramă înainte de cea curentă),
selecţie. Selectorul poate fi de tip boolean, întreg, caracter sau | Duplicate Case (dublează/copiază subdiagrama).
enumerat.

Principii fundamentale LabVIEW 23 Principii fundamentale LabVIEW 24


Teste condiţionale Teste condiţionale

Structura CASE (cont.) Structura CASE (cont.)


z Este bine să se precizeze o subdiagramă implicită / default (cu comanda z Se pot crea mai multe tuneluri de intrare şi de ieşire pentru schimbul de
MakeTthis The Default Case din meniul contextual al structurii) care să date între structură şi diagrama din exteriorul structurii (structura Case
fie selectată pentru o valoare a selectorului în afara celor care au fiind şi ea un nod de execuţie):
diagrame definite explicit. | Intrările sunt disponibile la toate subdiagramele, dar o anumită
z Dacă subdiagrama implicită nu este definită, atunci trebuie să se subdiagramă nu este obligată să utilizeze toate intrările.
definească câte un case pentru toate valorile posibile ale selectorului. | Ieşirile trebuie definite (conectate) la toate subdiagramele. Dacă un
z O valoare numerică reală este rotunjită automat de LabVIEW la cel mai astfel de tunel nu este conectat în cel puţin una din subdiagrame,
apropiat întreg. tunelul apare ca un pătrat cu interiorul alb în toate subdiagramele şi
z Dacă se schimbă tipul selectorului din numeric în boolean, subdiagra- butonul Run este rupt indicând o eroare.
mele în plus nu sunt z Se poate defini câte o sursă de date diferită pentru un tunel de ieşire în
şterse automat dar fiecare subdiagramă, dar toate tipurile de date ale surselor trebuie să fie
trebuie şterse compatibile.
manual dacă într- z Se poate selecta din meniul contextual al tunelului comanda Use Default
adevăr se doreşte If Unwired pentru a se utiliza automat valoarea implicită pentru tipul de
schimbarea şi nu a date asociat tunelului pentru fiecare caz (subdiagramă) în care tunelul
fost o greşeală. nu este conectat.

Principii fundamentale LabVIEW 4


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Principii fundamentale LabVIEW 25 Principii fundamentale LabVIEW 26


Teste condiţionale Teste condiţionale

Structura EVENT Casete de dialog


z O structură EVENT este similară cu o structură CASE dar la care z Există două funcţii în subpaleta Time & Dialog din meniul Functions care
selecţia subdiagramei executate se face de un eveniment petrecut în aduc pe ecran casete / ferestre de dialog care conţin mesaje la alegere:
panoul frontal al VI-ului. | One Button Dialog – rămâne deschisă până utilizatorul apasă
z Subdiagrama conţine codul necesar tratării evenimentului respectiv. butonul OK,
| Two Button Dialog – rămâne deschisă până utilizatorul apasă unul
din butoanele OK sau CANCEL.
z Denumirile implicite ale butoanelor pot fi schimbate legând la intrare un
şir de caractere cu numele dorit pentru buton.
z Aceste casete de dialog sunt modale, adică nu se poate face nimic în
LabVIEW atâta timp cât ele sunt deschise.

27 Principii fundamentale LabVIEW 28


Ordonarea execuţiei nodurilor

Structura SEQUENCE
z O structură SEQUENCE (secvenţă) conţine una sau mai multe
Ordonarea execuţiei nodurilor subdiagrame (numite Frames sau cadre) care sunt executate într-o
anumită ordine secvenţială prestabilită.
z Este vizibilă o singură subdiagramă la un moment dat.
z Eticheta unui Frame este similară cu eticheta unei subdiagrame CASE.
Eticheta conţine în mijloc numărul Frame-ului curent şi, în paranteze
z LabVIEW este un limbaj grafic care programează fluxul de date. drepte, domeniul Frames-urilor create.
Limbajele clasice programează fluxul de instrucţiuni, instrucţiunile z Spre deosebire de eticheta de la un CASE, în eticheta de la un Frame
executându-se în ordinea în care sunt scrise.
nu se poate introduce/edita un număr sau un nume. Când se adaugă, se
z LabVIEW utilizează structura SEQUENCE pentru a programa fluxul de şterg sau se reordonează Frames-urile dintr-o structură SEQUENCE,
instrucţiuni.
LabVIEW schimbă automat numărul din eticheta
z Ea este utilă atunci când regulile utilizate în programarea bazată pe subdiagramei conform ordinii în structură.
fluxul de date lasă ambiguităţi în ceea ce priveşte ordinea de execuţie a
nodurilor (nu există o dependenţă naturală a nodurilor faţă de datele z În interiorul Frame-urilor, fluxul de date determină
vehiculate) şi este necesară stabilirea unei ordini clare de execuţie a ordinea de execuţie a nodurilor.
nodurilor.

Principii fundamentale LabVIEW 29 Principii fundamentale LabVIEW 30


Ordonarea execuţiei nodurilor Ordonarea execuţiei nodurilor

Structura SEQUENCE (cont.) Variabile locale în structura secvenţă


z Pentru a transfera date dintr-un Frame în altul, se utilizează variabile z Variabile locale numite Sequence Locals transferă date dintr-un Frame
locale numite Sequence Locals. în oricare din Frames-urile următoare ale unei structuri SEQUENCE.
z Pentru schimbul datelor cu exteriorul structurii SEQUENCE, care este şi z Un terminal Sequence Local se poate adăuga pe oricare din laturile
el un nod de execuţie, se utilizează tunele. conturului structurii SEQUENCE selectând Add Sequence Local din
z Ca şi la structura CASE, datele prezente la o intrare sunt disponibile la meniul contextual al acesteia (click–dreapta pe o latură a structurii).
toate subdiagramele structurii, dar nu este obligatoriu ca o subdiagramă z O săgeată îndreptată spre exteriorul structurii apare în terminalul din
să le utilizeze pe toate. Frame-ul în care la acesta a fost conectată o sursă de date. Terminalul
z Spre deosebire de structura CASE (care execută o singură subdiagramă galben iniţial preia culoarea şi tipul de date de la sursa conectată.
la execuţia sa), la structura SEQUENCE (care execută toate z În terminalele corespunzătoare din toate cadrele următoare apare o
subdiagramale la fiecare execuţie a sa) un tunel de ieşire trebuie săgeată îndreptată spre interiorul structurii, indicând că terminalul este
conectat la o sursă de date într-un singur Frame. unul de intrare (este o sursă de date) pentru aceste subdiagrame.
z Ieşirea poate fi generată de oricare din Frames-urile z Toate terminalele din subdiagramele premergătoare primului Frame
structurii, dar datele vor părăsi structura doar atunci conectat (de fapt singurul conectat la o
când întreaga structură SEQUENCE este complet sursă de date) sunt haşurate indicând
executată şi nu când subdiagrama care generează că, în aceste subdiagrame,
ieşirea este complet executată. terminalul nu poate fi folosit.

Principii fundamentale LabVIEW 5


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Principii fundamentale LabVIEW 31 32


Ordonarea execuţiei nodurilor

Temporizări
z Uneori este nevoie să se controleze şi să se monitorizeze timpul în
decursul execuţiei unui VI. Există câteva funcţii pentru acest scop
localizate în subpaleta meniul Functions: Formule matematice în mod text
| – Waits (ms) determină ca VI să aştepte un număr de milisecunde
înainte de a continua execuţia. Este util pentru execuţia unei iteraţii
la un anumit interval de timp.
| – Tick Count (ms) întoarce valoarea în milisecunde a ceasului
intern al sistemului. Este util pentru a calcula durata scursă între LabVIEW dispune de structura FORMULA NODE utilă pentru:
evenimente. z Implementarea de calcule complexe sau cu multe variabile;
| – Wait Until Next ms Multiple determină ca VI să aştepte până z Reutilizarea unui cod bazat pe text deja existent. Codul text poate fi
când contorul de milisecunde este un multiplu întreg al unei valori copiat în nodul formulă fără să trebuiască recreată versiunea grafică a
precizate. Este util pentru sincronizarea activităţilor. sa.
Observaţii:
z Ceasul sistemului nu are o rezoluţie foarte bună (55 ms pentru PC-urile
rulând Windows).
z În aceeaşi subpaletă Time & Dialog se găsesc şi alte funcţii pentru
manipularea datei, timpului, erorilor şi activităţilor din FP.

Principii fundamentale LabVIEW 33 Principii fundamentale LabVIEW 34


Formule matematice în mod text Formule matematice în mod text

Structura FORMULA NODE Structura FORMULA NODE (cont.)


z Structura FORMULA NODE este un nod bazat pe text convenabil de z FORMULA NODE foloseşte verificări de tip pentru a se asigura că
utilizat pentru realizarea operaţiilor matematice dintr-o diagramă bloc. indexurile ariilor sunt date numerice şi că operanzii pentru operatorii de
Nu este necesară accesarea unui cod extern sau a unei aplicaţii externe bit sunt date de tipul întreg.
şi nici conectarea grafică a unor funcţii aritmetice elementare pentru a z El testează dacă indexurile ariilor sunt în domeniul permis.
realiza calcule matematice complexe. z O valoare în afara domeniului de reprezentare a unui anumit tip de date
z Structura FORMULA NODE se găseşte în paleta Functions, subpaleta dintr-o arie este înlocuită implicit cu valoarea zero, iar o instrucţiune de
Structures sau subpaleta Mathematics » Formula. atribuire a unei astfel de valori este înlocuită cu nop pentru a preciza că
z Ea este un chenar redimensionabil, similar cu celelalte structuri nu se execută nici o operaţie.
prezentate anterior, dar care conţine în interior, în loc de o subdiagramă z Această structură realizează automat conversiile de tip necesare.
grafică, una sau mai multe instrucţiuni în format text asemănătoare celor
din limbajul C.
z Toate instrucţiunile trebuie terminate cu simbolul „;”. Ca şi în C, se pot
adăuga comentarii
incluzându-le între o pereche
slash-asterisk (/*comentariu*/).

Principii fundamentale LabVIEW 35 Principii fundamentale LabVIEW 36


Formule matematice în mod text Formule matematice în mod text

Structura FORMULA NODE (cont.) Structura FORMULA NODE (cont.)


z În expresii sunt disponibile următoarele funcţii matematice: abs, acos, Operatorii utilizaţi în expresii sunt următorii (în ordinea creşterii priorităţii):
acosh, asin, asinh, atan, atanh, ceil, cos, cosh, cot, csc, exp, expm1, = şi op= atribuire şi notaţia scurtă pentru operaţie şi atribuire
floor, getexp, getman, int, intrz, In, Inp1, log, log2, max, min, mod, rand, (op poate fi +, -, *, /, >>, <<, &, ^, |, % sau **)
rem, sec, sign, sin, sinc, sinh, sqrt, tan, tanh. ?: evaluare condiţionată
z Pe lângă expresiile matematice uzuale în format text, FORMULA NODE || sau logic
acceptă şi versiuni bazate pe text ale următoarelor instrucţiuni (similare, && şi logic
dar nu identice, cu cele din limbajul de programare C): | sau pe bit
| instrucţiuni de declarare a variabilelor, ^ sau exclusiv pe bit
| instrucţiunea condiţională if & şi pe bit
| Instrucţiuni ale buclelor for, while şi do != şi == inegalitate şi egalitate
>, <, >=, şi <= mai mare, mai mic, mai mare sau egal şi mai mic sau egal
>> şi << deplasare aritmetică la dreapta şi la stânga
+ şi - adunare şi scădere
* şi / înmulţire şi împărţire
+, -, !, ~, ++, şi -- plus unar, minus unar, negare logică, complementare pe bit, pre-
incrementare, post-incrementare, pre-decrementare şi post-decrementare
** ridicare la putere

Principii fundamentale LabVIEW 6


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Principii fundamentale LabVIEW 37 Principii fundamentale LabVIEW 38


Formule matematice în mod text Formule matematice în mod text

Structura FORMULA NODE (cont.) Structura FORMULA NODE (cont.)


z Atunci când se utilizează variabile în FORMULA NODE, trebuie să se | O variabilă poate fi schimbată din una de ieşire în una de intrare sau
ţină cont de următoarele: invers selectând din meniul contextual al terminalului variabilei
| Nu există nici o limită pentru numărul de variabile sau ecuaţii comanda Change to Input respectiv Change to Output.
utilizate într-o structură FORMULA NODE. | Se poate declara şi utiliza în interiorul structurii o variabilă fără să fie
| Două intrări sau două ieşiri (variabile de intrare respectiv de ieşire) legată de un terminal de intrare sau de ieşire.
nu pot avea acelaşi nume, dar o ieşire poate avea acelaşi nume cu | Trebuie conectate toate terminalele de intrare ale structurii.
o intrare. Terminalele de ieşire pot rămâne neconectate.
| Se declară o variabilă de intrare selectând Add Input din meniul | Implicit, variabilele în nodul formulă sunt de tip scalar numeric
contextual al structurii (obţinut prin click-dreapta pe conturul reprezentate în virgulă mobilă, precizia lor fiind determinată de
structurii). Nu se poate declara o variabilă de intrare în interiorul configuraţia calculatorului. Se pot utiliza şi variabile de tip întreg sau
nodului formulă. arii de tip numeric. Ele trebuie să fie definite explicit în structură sau
| Se declară o variabilă de ieşire selectând Add Output din meniul prin conectarea unei date de tipul dorit la un terminal de intrare
contextual al structurii. Numele variabilei de ieşire trebuie să fie asociat variabilei respective.
identic cu numele unei variabile de intrare sau cu numele unei | Variabilele nu pot avea asociate o unitate de măsură aşa cum au
variabile declarate în interiorul nodului formulă. posibilitatea cele reprezentate grafic în diagrama bloc.

39 Principii fundamentale LabVIEW 40


Probleme la conectarea structurilor

z Alocarea mai multor valori la un terminal Sequence Local


| Se alocă o valoare la o singură subdiagramă
| Se utilizează valoarea în toate subdiagramele următoare
Probleme la conectarea structurilor z Legarea unui tunel în toate subdiagramele structurii CASE
| Legând un terminal dintr-o structură CASE la un terminal din
exterior, se obţine un tunel invalid, deoarece tunelul nu este
conectat la toate subdiagramele structurii
Sunt prezentate în continuare câteva probleme des întâlnite la conectarea | Legarea unei surse la la tunel în fiecare din subdiagramele structurii
structurilor care determină erori şi impiedică execuţia programelor. CASE corectează problema (nu este o legare împreună a mai
multor surse de semnal deoarece o singură subdiagramă este
executată la o execuţie a structurii CASE)
z Legături din subdiagramele structurii SEQUENCE
| Două subdiagrame ale unei structuri SEQUENCE alocă valori
aceluiaşi tunel – eroare deoarece tunelul are surse multiple

Principii fundamentale LabVIEW 41


Probleme la conectarea structurilor

z Suprapunerea tunelelor
| LabVIEW creează automat tunele la trasarea legăturilor şi pot apare
tunele suprapuse:
z Rularea nu este afectată
z Editarea este îngreunată deoarece e greu să se ştie care este în
faţă şi se poate greşi la conectare
z Este bine să se evite prin mutarea unui tunel într-o zonă liberă
| Dacă se leagă un obiect din interiorul unei structuri la un obiect din
exteriorul ei şi există deja un segment legat la marginea structurii,
este indicat să se lege obiectul la tunelul deja existent şi nu între
obiecte prin marginea structurii
z Legătură sub structură şi nu în structură
| Pentru a se realiza o legătură în structură, este necesar cel puţin un
click în interiorul structurii sau pe chenarul ei
| Dacă se trage un traseu peste o structură, apar tunele la intrare şi la
ieşire, dar dacă nu se face un click în interior sau pe margine, ele
dispar la primul click în exterior (şi traseul trece pe sub structură)

Principii fundamentale LabVIEW 7


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Structuri de date 2

Conţinutul cursului

z Tablouri (arrays)
STRUCTURI DE DATE z Funcţii pentru prelucrarea tablourilor

Prof. Dr. Ing. Sever Paşca z Polimorfism

Catedra de Electronică Aplicată şi Ingineria Informaţiei z Înregistrări (clusters)


Facultatea Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Universitatea POLITEHNICA din Bucureşti z Funcţii pentru înregistrări

z Diagrame (charts) şi grafice (graphs)

z Acţiunea mecanică a comutatoarelor booleene

Structuri de date 3 4

Introducere
z Pentru o mai mare flexibilitate şi uşurinţă în stocarea, manipularea şi
afişarea datelor, LabVIEW permite:
| gruparea datelor în structuri de date Tablouri (arrays)
z tablouri (Arrays)
z înregistrări (Clusters)
| afişarea unui set sau a mai multor seturi de date în aceeaşi fereastră
grafică
Un tablou, matrice sau o arie (Array) este o colecţie de elemente de
z grafice (Graphs) acelaşi tip.
z diagrame (Charts)

Structuri de date 5 Structuri de date 6


Tablouri (arrays) Tablouri (arrays)

Indexul
z Un tablou este caracterizat de elementele şi dimensiunile sale: z Elementele unui tablou sunt ordonate şi indexate.
| Elementele sunt datele care alcătuiesc tabloul. z Accesul explicit la un element particular al tabloului impune folosirea a
| O dimensiune reprezintă lungimea, înălţimea sau adâncimea câte unui index pentru fiecare dimensiune a tabloului:
tabloului. | în panoul frontal, indexurile permit navigarea prin tablou,
z Un tablou poate avea una sau mai multe dimensiuni | în diagrama bloc, ele permit selectarea unui anumit element, rând,
z Fiecare dimensiune poate avea până la 231 – 1 elemente. Numărul total coloană sau pagină dintr-un tablou.
de elemente poate fi limitat la o valoare mai mică de capacitatea z Ca şi în alte limbaje de programare, regula implicită de variaţie automată
memoriei de lucru a calculatorului. a indexurilor este următoarea:
z Se pot crea tablouri de elemente de tip numeric, boolean, cale (path), şir | indexul pentru ultima dimensiune variază cel mai repede,
de caractere (string) şi înregistrare (cluster). | Indexul pentru prima dimensiune variază cel mai încet.
z Nu se pot construi tablouri de tablouri. z În LabVIEW, indexarea elementelor se face întotdeauna începând cu
z În schimb, se pot construi tablouri multidimensionale sau tablouri de zero. Indexul unei dimensiuni variază între 0 şi n – 1, unde n reprezintă
înregistrări, în care fiecare înregistrare conţine unul sau mai multe numărul de elemente pe dimensiunea respectivă.
tablouri.

Structuri de date şi funcţii speciale 1


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Structuri de date 7 Structuri de date 8


Tablouri (arrays) Tablouri (arrays)

Utilizare Utilizare (cont.)


z Formele de undă (semnalele) sunt reprezentate de obicei sub forma
z Tablourile se utilizează atunci când unui tabel de date numerice, în care elementele din tablou reprezintă
| se lucrează cu o colecţie de date similare, valorile semnalului la momente succesive de timp (valorile cuantizate la
momentele de eşantionare ale semnalului analogic).
| se efectuează aceleaşi calcule în mod repetat.
z La achiziţia unui singur semnal:
| momentele de eşantionare (timpul) corespund valorii indexului,
| valoarea semnalului la un anumit moment de eşantionare este
z Tablourile sunt ideale pentru a păstra: reprezentată prin valoarea elementului selectat de indexul
| datele corespunzătoare semnalelor achiziţionate, corespunzător.
| datele generate în bucle, când fiecare iteraţie a buclei produce un z La achiziţia simultană a mai multor semnale, de regulă, datele sunt
element al tabloului. păstrate într-un tablou multidimensional:
| prima dimensiune (rândul) corespunde timpului (numărului
eşantioanelor),
| a doua dimensiune (coloana) corespunde canalului de intrare la
care este cuplat semnalul.

Structuri de date 9 Structuri de date 10


Tablouri (arrays) Tablouri (arrays)
National Instruments LabVIEW 6.1.lnk

Utilizare (cont.) Crearea de controale şi constante tablou


z Se pot crea tablouri de aproape toate tipurile de date elementare sau z Crearea unui control sau indicator în FP:
structurate, cu următoarele excepţii: | Se plasează un cadru tablou (Array Shell), selectând obiectul Array
| Nu se pot crea tablouri de tablouri. Se pot utiliza însă tablouri din subpaleta Controls » Array & Cluster.
multidimensionale sau funcţia Build Cluster Array pentru a crea un | Se plasează în interiorul acestui cadru un control sau indicator de tip
tablou de înregistrări, fiecare înregistrare conţinând unul sau mai numeric, boolean, referinţă, cale, şir de caractere sau cluster, prin
multe tablouri. adăugarea sau tragerea obiectului în interiorul cadrului. Cadrul se
| Nu se pot crea tablouri de grafice altele decât graficele XY, redimensionează automat la dimensiunea obiectului introdus.
deoarece graficele sunt date structurate de tip tablou în timp ce | Pentru a crea un tablou multidimensional, după operaţiile anterioare,
graficul XY este o înregistrare conţinând două tablouri, unul cu se selectează din meniul contextual al tabloului (click dreapta pe
coordonatele pe X şi unul cu coordonatele pe Y ale punctelor care fereastra indexului sau pe conturul cadrului tabloului) comanda Add
trebuie reprezentate. Dimension.
| Nu se pot crea tablouri de diagrame.

Structuri de date 11 Structuri de date 12


Tablouri (arrays) Tablouri (arrays)
National Instruments LabVIEW 6.1.lnk

Crearea de controale şi constante tablou (cont.) Crearea de controale şi constante tablou (cont.)
z În diagramă apare mai întâi un terminal tablou generic negru care apoi z Crearea unei constante tablou în diagrama bloc:
preia culoarea şi simbolul tipului de date asociat tabloului. | Se selectează funcţia Functions » Array » Array Constant pentru a
z Pentru a afişa un element particular al tabloului, se tastează valoarea pune un cadru tablou în diagramă.
indexului în afişajul indexului sau se folosesc săgeţile de navigare ale | Se plasează în acest cadru o constantă numerică, booleană, şir de
afişajului indexului. caractere sau o înregistrare constantă. Cadrul se redimensionează
z Folosind instrumentul de poziţionare, cu un click & drag în colţul din automat la elementul constant introdus.
dreapta-jos al cadrului tabloului, acesta se poate redimensiona astfel | Cu instrumentul de poziţionare, cadrul poate fi redimensionat
încât să fie vizualizate simultan mai multe elemente ale tabloului. oricând la dimensiunile dorite.
z Un tablou 1D poate fi afişat ca un tablou rând (cu elementele pe | Cu comanda Add Dimension se pot crea constante tablou
orizontală) sau ca un tablou coloană (cu elementele pe verticală). multidimensionale.
z O constantă tablou poate fi utilizată ca:
| bază de comparare cu un alt tablou,
| pentru crearea sau iniţializarea unui tablou.

Structuri de date şi funcţii speciale 2


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Structuri de date 13 Structuri de date 14


Tablouri (arrays) Tablouri (arrays)

Crearea de controale şi constante tablou (cont.) Afişajul indexurilor tabloului


z Crearea unui tablou folosind autoindexarea: z Un tablou 2D conţine rânduri şi coloane. Afişajul de sus din cele două
| Buclele FOR şi WHILE pot indexa şi acumula valorile elementelor cadre situate în stânga-sus este indexul rândului (primului index), iar
unui tablou în mod automat. afişajul de jos este indexul coloanei (al doilea index). Cadrul din dreapta
| Tabloul este furnizat la ieşire printr-un tunel (cu indexarea validată) conţine mai multe afişaje care arată valorile elementelor tabloului de la
la terminarea execuţiei complete a structurii. poziţia specificată de valorile prezente în afişajele indexurilor.
| Prin includerea unei bucle în altă buclă se pot crea tablouri z În FP, prin selectarea valorilor indexurilor, se selectează elementul
bidimensionale. Bucla din interior creează un rând de elemente iar afişat în colţul din stânga sus, restul elementelor fiind afişate spre
bucla din exterior “clădeşte” aceste rânduri ăn tabloul 2D. dreapta şi în jos în ordinea crescătoare a indexurilor. Numărul de
elemente (respectiv numărul de rânduri şi coloane) afişate se poate
4
varia prin redimensionarea cadrului tabloului.
Array 1D

z Dacă se încearcă afişarea unui element în afara dimensiunilor tabloului,


afişajul corespunzător acestuia este gri pentru a
3
4
indica faptul că nu există o valoare definită pentru
Array 2D
acest element, iar LabVIEW afişează valoarea
10 implicită pentru tipul de date asociat tabloului.

15 Structuri de date 16
Funcţii pentru prelucrarea tablourilor
National Instruments LabVIEW 6.1.lnk

Sarcini realizate
z Pentru crearea şi manipularea tablourilor se utilizează funcţiile din
Funcţii pentru prelucrarea tablourilor subpaleta Functions » Array.
z Se pot realiza sarcini cum ar fi:
| crearea şi iniţializarea tablourilor;
| extragerea unor elemente individuale din tablou;
| inserarea, ştergerea sau înlocuirea unor elemente într-un tablou;
| divizarea tablourilor;
| operaţii asupra elementelor tabloului (ordonare,
căutare, rotire, transpunere, aflarea maximului
şi minimului.

Structuri de date 17 Structuri de date 18


Funcţii pentru prelucrarea tablourilor Funcţii pentru prelucrarea tablourilor
National Instruments LabVIEW 6.1.lnk

Schimbarea automată a dimensiunii funcţiilor Redimensionarea funcţiilor


z Funcţiile Index Array, Replace Array Subset, Insert Into Array, Delete z Cu aceste funcţii se pot accesa simultan, pe ieşiri diferite, mai mult de
From Array şi Array Subset îşi schimbă automat dimensiunea pentru a un element, rând, coloană, pagină etc., prin redimensionarea funcţiei cu
se adapta la numărul dimensiunilor tabloului conectat la intrare: instrumentul de poziţionare. Funcţia se extinde în incremente
| Dacă se conectează un tablou 1D la intrarea uneia din aceste determinate de dimensiunea tabloului conectat la intrarea funcţiei (o
funcţii, atunci funcţia va afişa o singură intrare de index, singură intrare de index pentru 1D, două intrări de index, una pentru
| Dacă se conectează un tablou 2D la intrare sa, atunci funcţia va rânduri şi una pentru coloane, pentru 2D, etc.).
afişa două intrări de index, una pentru indexul rândurilor şi una
z Fiecare grup de intrări, obţinut prin extinderea funcţiei, este independent
pentru indexul coloanelor.
şi poate accesa orice porţiune de orice dimensiune a tabloului de la
z Intrările de index care sunt conectate determină forma subtabloului care
intrare.
este accesat. La o funcţie Index Array, care are la intrare un tablou 2D:
| Dacă se conectează doar indexul de rând, atunci se extrage un rând z Pentru a accesa porţiuni consecutive de aceeaşi dimensiune dintr-un
complet (tablou 1D) din tabloul de intrare, tablou, se extinde funcţia dar nu se conectează intrările index la fiecare
| Dacă se conectează doar indexul de coloană, atunci se extrage o increment. Un increment neconectat va selecta
coloană completă (tablou 1D), porţiunea următoare, de aceeaşi dimensiune, faţă
| Dacă se conectează atât indexul de rând cât şi cel de coloană, de cea selectată de incrementul anterior.
atunci se selectează un singur element.

Structuri de date şi funcţii speciale 3


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Structuri de date 19 20
Funcţii pentru prelucrarea tablourilor
National Instruments LabVIEW 6.1.lnk

Exemple
z Initialize Array
z Array Size Polimorfism
z Build Array
z Array Subset
z Index Array
Funcţiile aritmetice Add, Multiply, Divide din LabVIEW sunt polimorfice.

Structuri de date 21 22
Polimorfism

z Polimorfism, un cuvânt mare pentru un principiu simplu: intrările acestor


funcţii pot fi de tipuri diferite: Înregistrări (clusters)
| scalar + scalar = scalar
| scalar + tablou = tablou
(scalar este operat cu fiecare element al tabloului)
| tablou + tablou = tablou
(se operează elementele corespunzătoare ale tablourilor de intrare, O înregistrare (Cluster) este o colecţie de elemente de tipuri diferite.
rezultatul având dimensiunea cea mai mică a tablourilor de intrare)
| scalar + cluster = cluster
| cluster + cluster = cluster
| Array of cluster + cluster = Array of cluster
Observaţie:
z Pentru ca polimorfismul să se aplice pentru clustere, ele trebuie să aibă
elemente cu tipuri de date compatibile.

Structuri de date 23 Structuri de date 24


Înregistrări (clusters) Înregistrări (clusters)

Dimensiunea şi tipul înregistrării


z Înregistrările sunt colecţii de date de tipuri diferite, similar cu un z Spre deosebire de un array, un cluster este de dimensiune fixă. În
mănunchi de fire în care fiecare fir reprezintă un element distinct al decursul execuţiei unui VI, numărul de elemente dintr-un tablou poate
înregistrării. Un cluster este similar cu un record sau struct din limbajele varia, în schimb, numărul de elemente dintr-o înregistrare rămâne
clasice de programare bazate pe text. neschimbat.
z Utilitatea grupării mai multor elemente într-un cluster: z Ca şi un tablou, o înregistrare este fie control, fie indicator. Cluster-ul nu
| eliminarea aglomerărilor de conexiuni în diagramă, poate conţine un amestec de controale şi indicatoare. Tipul lui este dat
| reducerea numărului de terminale necesare în de tipul primului obiect plasat în cadru, dar tipul poate fi schimbat ulterior
conectoarele subVI-urilor. din meniul contextual cu comanda Change to Control/Indicator.
Observaţie:
z Un conector poate avea cel mult 28 de terminale.
Dacă un subVI are mai mult de 28 de obiecte în FP,
atunci se pot grupa câteva dintre ele (de preferinţă
cele care sunt legate logic sau prin funcţionalitate)
în înregistrări care apoi sunt alocate fiecare câte
unui terminal din conector.

Structuri de date şi funcţii speciale 4


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Structuri de date 25 Structuri de date 26


Înregistrări (clusters) Diagrame (charts)

Crearea de controale şi constante de tip înregistrare Crearea de controale şi constante de tip înregistrare (cont.)
z Crearea în FP a unui control sau indicator de tip înregistrare: z Majoritatea terminalelor cluster şi conexiunile din diagramă care
| Se plasează un cadru înregistrare (Cluster Shell), selectând obiectul vehiculează aceste date sunt roz aprins.
Cluster din subpaleta Controls » Array & Cluster, z Înregistrările numerice (la care toate elementele componente sunt
| Se plasează în interiorul acestui cadru elementele dorite prin numerice) au terminale şi legături de culoarea maro.
adăugarea sau tragerea lor. Cadrul se poate redimensiona manual.
z Legăturile maro se pot conecta la funcţiile matematice (ca de exemplu
z Crearea în BD a unei constante cluster: Add, Multiply, Square Root etc.) pentru a realiza aceleaşi operaţii
| Se selectează funcţia Functions » Cluster » Cluster Constant pentru simultan asupra tuturor elementelor înregistrării.
a pune un cadru înregistrare în diagramă,
z Pentru a interconecta înregistrări, ambele trebuie să aibă acelaşi număr
| Se plasează în acest cadru constantele dorite.
de elemente. Elementele corespunzătoare, determinate de ordinea
z O constantă înregistrare poate fi utilizată ca şi bază de comparare cu o logică din cluster, trebuie să aibă tipuri de date compatibile. În caz
altă înregistrare sau pentru crearea sau iniţializarea unei înregistrări.
contrar, legătura este întreruptă şi VI-ul nu poate fi rulat.
z Dacă reprezentarea elementelor numerice
corespondente este diferită, LabVIEW le
constrânge la aceeaşi reprezentare.

Structuri de date 27 28
Înregistrări (clusters)

Ordinea logică a elementelor unei întregistrări


z Elementele unei înregistrări au o ordine logică nelegată de poziţia lor
geometrică în cadrul înregistrării din panoul frontal (dată iniţial de
ordinea poziţionării lor). Dacă se şterge un element, ordinea logică se Funcţii pentru înregistrări
modifică automat.
z Ordinea logică din cluster determină ordinea în care elementele apar în
diagrama bloc ca terminale în funcţiile Bundle şi Unbundle.
z Ordinea logică poate fi vizualizată şi modificată utilizând funcţia Reorder
Controls In Cluster din meniul contextual al înregistrării (click-dreapta pe
conturul cadrului cluster-ului).
z Cu toate că şi elementele înregistrărilor sunt ordonate ca şi cele ale
tablourilor, ele nu pot fi accesate individual prin indexare. Ele sunt
accesate prin ordinea lor logică în înregistrare.
z Pentru a accesa unul din elementele unei înregistrări, toate elementele
înregistrării trebuie extrase odată folosind funcţia Unbundle.
z Se pot utiliza şi funcţiile Bundle By Name respectiv Unbundle By Name
pentru înlocuirea respectiv extragerea elementelor utilizând numele lor
în locul ordinii logice.

Structuri de date 29 Structuri de date 30


Funcţii pentru înregistrări Funcţii pentru înregistrări
National Instruments LabVIEW 6.1.lnk

Sarcini realizate Exemple


z Pentru crearea şi manipularea înregistrărilor se utilizează funcţiile din z Bundle
subpaleta Functions » Cluster. z Unbundle
z Se pot astfel realiza sarcini cum ar fi: z Bundle By name
| crearea şi iniţializarea înregistrărilor; z Unbundle by name
| extragerea unor elemente individuale din înregistrare;
| înlocuirea unor elemente într-o înregistrare;
| desfacerea unei înregistrări în elementele
sale componente;
| transformarea unui tablou în înregistrare de
tablouri şi invers.

Structuri de date şi funcţii speciale 5


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

31 Structuri de date 32
Grafice (graphs) şi diagrame (charts)

z Graficele şi diagramele sunt reprezentări grafice ale unor structuri de date.


Grafice (graphs) şi diagrame (charts)

Graficele (Graphs) şi diagramele (Charts) sunt obiecte LabVIEW utilizate


pentru reprezentarea unui set sau a unor seturi de date într-o formă grafică.

Structuri de date 33 Structuri de date 34


Grafice (graphs) şi diagrame (charts) Grafice (graphs) şi diagrame (charts)

Afişarea şi actualizarea datelor Crearea graficelor şi diagramelor


z Graficele şi diagramele diferă prin modul de afişare şi actualizare a z Graficele şi diagramele se poziţionează în FP selectând din subpaleta
datelor: Controls » Graph una din următoarele tipuri:
| VI-urile care folosesc grafice adună mai întâi datele într-un tablou şi | Waveform Chart and Graph (diagrame şi grafice pentru forme
apoi le desenează în fereastra (ecranul) graficului, similar cu un de undă) afişează date achiziţionate la intervale de timp egale (cu o
program de calcul tabelar (spreadsheet) care memorează mai întâi frecvenţă de achiziţie constantă).
datele şi apoi generează graficul bazat pe ele. | XY Graph (grafice XY) afişează date achiziţionate la intervale de
| Spre deosebire de grafice, diagramele adaugă în fereastra lor, la timp inegale, aşa cum sunt cele achiziţionate prin declanşare de
punctele deja existente, punctele corespunzătoare datelor noi, pe evenimente exterioare aleatoare.
măsură ce ele sunt generate, citite sau achiziţionate. Într-o | Intensity Chart and Graph (diagrame şi grafice cu afişare prin
diagramă, se pot vizualiza datele curente în momentul în care ele intensitate/culoare) afişează date 3D pe un desen 2D utilizând
ajung la diagramă împreună cu (şi în context cu) cele afişate culoarea pentru afişarea valorii pe a 3-a dimensiune.
anterior. | Digital Waveform Graph (grafice pentru forme de undă digitale)
afişează datele sub forma unor impulsuri ca semnale sau grupuri de
semnale digitale aşa cum sunt ele vehiculate între calculatoare.

Structuri de date 35 Structuri de date 36


Grafice (graphs) şi diagrame (charts) Grafice (graphs) şi diagrame (charts)

Crearea graficelor şi diagramelor (cont.) Crearea graficelor şi diagramelor (cont.)


| (Windows) 3D Graphs (grafice 3D în perspectivă) care afişează z Un grafic sau o diagramă poate afişa simultan mai multe seturi de date.
date 3D într-un grafic cu trei dimensiuni afişate în perspectivă, Pentru aceasta, seturile de date trebuie grupate împreună folosind
folosind obiecte ActiveX specifice Windows. funcţia Bundle din subpaleta Cluster a paletei Functions.
z Actualizarea datelor afişate de un Chart se poate face în unul din cele z Seturile de date pot fi afişate sub două forme, opţiune prezentă în
trei moduri care pot fi selectate din submeniul grafic Advanced » Update meniul contextual al diagramei:
Mode aflat în meniul contextual al diagramei: | Sub forma unor curbe suprapuse (Overlay Plots),
z Strip Chart în care afişarea datelor se face prin defilarea (curgerea) | Sub forma unor curbe stivuite (Stack Plot),.
ecranului la fel ca pe un înregistrator pe hârtie. z Datele afişate în fereastra unui Graph sau Chart pot fi şterse folosind
z Scope Chart în care afişarea datelor se face prin baleierea ecranului, comenzile Clear Graph respectiv Clear Chart care se găsesc în meniul
cu ştergerea lui la fiecare nouă baleiere, similar cu metoda de afişare la contextual al obiectului, fie direct – în modul Run, fie în submeniul Data
un osciloscop. Operation – în modul Edit.
z Sweep Chart în care afişarea datelor se face prin baleierea ecranului,
fără ştergerea lui la fiecare nouă baleiere, similar cu metoda de afişare a
semnalelor lent variabile în timp la un osciloscop cu memorie.

Structuri de date şi funcţii speciale 6


Achiziţia şi prelucrarea semnalelor
medicale Prof. Dr. Ing. Paşca Sever

Structuri de date 37 Structuri de date 38


Grafice (graphs) şi diagrame (charts) Grafice (graphs) şi diagrame (charts)

Componentele graficelor şi diagramelor Componentele graficelor şi diagramelor (cont.)


z Modul în care graficele şi diagramele apar în panoul frontal se poate | Graph Palette (paleta graficului) care permite scalarea şi
schimba prin afişarea sau ascunderea unor opţiuni (subobiecte ale formatarea axelor în timpul rulării VI-ului.
obiectelor complexe Graph şi Chart). | X Scale şi Y Scale (axa X şi axa Y) care stabilesc formatarea axelor
z Din meniul contextual al obiectului, obţinut cu un click dreapta pe el, se X respectiv Y.
pot selecta din submeniul Visible Items, pentru afişare sau ascundere, | Cursor Legend (legenda cursorului care apare numai la Graph)
următoarele opţiuni (opţiunea vizibilă este bifată): permite afişarea unui cursor şi a coordonatelor sale precum şi
| Plot Legend (legenda graficului) care defineşte culoarea şi stilul stabilirea proprietăţilor cursorului. Se pot afişa cursoare multiple prin
graficului. Prin redimensionarea legendei se pot selecta opţiunile redimensionarea acestei legende.
pentru grafice multiple (care includ mai multe curbe | Scrollbar (barele de defilare care apar numai la Chart) care permit
corespunzătoare mai multor seturi de date). „defilarea” (deplasarea) datelor vizibile în fereastra diagramei.
| Scale Legend (legenda axelor) care stabileşte etichetele şi Aceste bare se pot folosi pentru vizualizarea datelor din buffer-ul
proprietăţile axelor. diagramei care nu sunt afişate în modul curent.

39 Structuri de date 40
Acţiunea mecanică a comutatoarelor booleene

Din meniul contextual al unui control boolean se poate selecta una din
Acţiunea mecanică a z
cele şase acţiuni mecanice (Mechanical Action) prezentate mai jos.
comutatoarelor booleene z În icoanele din meniu, M reprezintă mişcarea butonului mouse-ului când
se operează controlul, V reprezintă valoarea de ieşire a controlului, iar
RD reprezintă momentele de timp când VI-ul citeşte controlul.
z Starea iniţială a controlului poate fi setată folosind comanda Data
Controalele booleene au şase tipuri de acţiuni mecanice care permit Operatoion » Make Curent Value Default după ce controlul a fost
crearea de FP care să se asemene cât mai mult cu comportarea acţionat în starea dorită.
instrumentelor reale. | Switch When Pressed – fiecare apăsare cu instrumentul de
operare schimbă imediat starea logică a controlului, indiferent de
Prin setarea acţiunii mecanice se permite sincronizarea într-un anumit mod
citirea lui de către VI
a unei operări asincrone a butoanelor realizate de utilizator cu prelucrarea
datelor şi a informaţiei realizate de program. | Switch When Released – idem dar starea se schimbă când butonul
este eliberat
| Switch Until Released – starea logică se
schimbă la apăsare şi revine în starea iniţială
la eliberarea butonului

Structuri de date 41
Acţiunea mecanică a comutatoarelor booleene

| Latch When Pressed – acţionarea schimbă starea logică a


controlului, care este memorată până când VI-ul viteşte controlul
prima oară, când starea revine la cea iniţială, indiferent dacă
acţionarea continuă sau nu
| Latch When Released – idem, dar starea se schimbă doar la
eliberarea butonului
| Latch Until Released – starea logică se schimbă la acţionarea
controlului, revenirea la starea iniţială având loc la citirea controlului
de către VI sau la eliberarea controlului, în funcţie de care
eveniment s-a petrecut ultimul.

Structuri de date şi funcţii speciale 7


Apr 20­2:20 PM

1
Apr 20­2:26 PM

2
Apr 20­2:34 PM

3
Apr 20­3:18 PM

4
Apr 20­3:26 PM

5
Apr 20­3:31 PM

6
Apr 20­3:34 PM

7
Apr 20­3:42 PM

8
Apr 20­3:45 PM

9
Apr 20­3:49 PM

10
Apr 20­3:54 PM

11
Apr 20­4:14 PM

12
Apr 20­4:26 PM

13
Apr 20­4:40 PM

14
Apr 20­4:45 PM

15
Apr 20­4:50 PM

16
Apr 20­5:00 PM

17
Apr 20­5:03 PM

18
Inteligenţă Ambientală

TECHNISCHE
UNIVERSITÄT
DARMSTADT
Outline

Ambient Intelligence - Ubiquitous Computing:  Ambient Intelligence & Ubiquitous Computing Environments
Zukünftige Treiber der  Microelectronics – Technology Driver in the Internet Age
Mikro- und Nanoelektronik  Technologies for SoC Design
 EDA Support: Silicon Design Chain
Prof. Dr. Dr. h.c. mult. Manfred Glesner  Emerging Technologies - Electronics in 30 Years
 Outlook

Institute of
Microelectronic
Systems
1 2

Terminology Labyrinth Dawns of UbiComp (Pervasive Comp)

ubiquitous computing calm technology  1988


 Mark Weiser
ambient intelligence  Ubiquitous Computing Program
proactive computing  Computer Science Laboratory
distributed computing  Xerox PARC (Palo Alto Research Center)
location-based computing
 The Computer for the 21st Century
augmented reality location-aware computing  “Specialized elements of HW and SW, connected by wires, radio waves
and infrared, will be so ubiquitous that no one will notice their
smart spaces presence.”
invisible computing embedded computing  “The most profound technologies are those that disappear. They weave
themselves into the fabric of everyday life until they are
disappearing computing indistinguishable from it.”
pervasive computing September 1991
Scientific American,

wearable computing
 The World is not a Desktop
smart dust  A good tool is an invisible tool. By invisible, I mean that the tool does
embodied virtuality mobile computing not intrude on your consciousness; you focus on the task, not the tool.”
1994

sentient computing context-aware


computing
3 4

The Computer for the 21st Century DisSys MobComp UbiComp

 disappearance
 “Whenever people learn something sufficiently well, they cease to
be aware of it becoming more focused on new goals.”
 writing one of the first information technologies -> ubiquitous today
 street signs, embedded motors and processors in an automobile,
eyeglasses

 early 1990’s state of the art


 silicon-based IT far from having become part of the environment
 desktop PC’s cannot truly make computing an integral, invisible
part of people’s life
 a new way of thinking is needed, that takes into account the
human world and allows the computational resources to vanish into
the background

Source: M. Satyanarayanan
IEEE Personal Communication
August 2001

5 6

Cap. 1. Introducere 1
Inteligenţă Ambientală

Wearables Ambient Intelligence Global System

 Smart Shirt System (Sensatex)


 electro-optical fabric
 biological sensor data
 wireless communication infrastructure
 application programming interface
 hardware and software add-ons
 washable
 portable wireless gateway
 connection to the internet
 data processing on a data server
 applications
 child monitoring
 sports/training
 vital signs/medical monitoring
 ...
 Personal Computing Space (PCS) Picture Source: Sensatex Web Page
www.sensatex.com
Source: Hugo De Man

7 8

Outline Personal Internet Products

 Ambient Intelligence & Ubiquitous Computing Environments


 Microelectronics – Technology Driver in the Internet Age
 Technologies for SoC Design
 EDA Support: Silicon Design Chain
 Emerging Technologies - Electronics in 30 Years
 Outlook

Source: Dennis Buss

9 10

From the PC Age to the Internet Age Semiconductor Market (1)

 Stationary PC World Dynamic, Real Time Internet Age

Source: ICE

Source: Dennis Buss, TI

11 12

Cap. 1. Introducere 2
Inteligenţă Ambientală

Semiconductor Market (2) Nano-Technology And Charge Control Issues

 In 2000, for the first time, semiconductor revenues in communication


exceeded revenues in PC sector

Based on: Stephen M. Goodnick, IEEE Nano 2003

13 14

Productivity Crisis CAGR of the Semiconductor Market

 21% Productivity Increase / Year


 58% Complexity Increase / Year

15 16

Vertical Disintegration Semiconductor Industry Value Chain

 Participants in the Semiconductor Industry Value Chain


System
System
System company
System company
System company
System company
company
company
Fabless
Fabless
Semicon-
Semicon-
Fabless ductor
ductor
Electronic
Electronic Fabless
Company Semicon-
Company Semicon-
ductor
ductor
IPIP
Company
Company
Semicon-
Semicon-
ductor
ductor
company
company Foundry
Foundry Foundry
Foundry

1960 200X

 New business models driven by extremely high fab costs


 Europe’s independent fabless companies grow faster than the traditional
semiconductor industry (51% vs. 32% in 2000)
Source: Gartner

17 18

Cap. 1. Introducere 3
Inteligenţă Ambientală

Electronics Industry Dissagregation Semiconductor Industry Value Chain

 Reducing Risks and Costs in the Nanometer Era  Value Chain


 The focus is to help companies preserve design intent below 130 nm  Michael Porter [1985]:
and fight with the physical inferno as creating working Si at these  The goal of each activity in a value chain is to add more value for the
customer than the cost of carrying out the activity
small process geometries is fraught with uncertainties
 The ability to add value depends ultimately on the ability to reconfigure
 The disintegration and the links of the supply chain are varying with the value chain
technological and economical requirements  The structure of the value chain changes periodically, depending on the
degree of vertical integration that maximizes profits at a given point in
time

 The Semiconductor Value Chain


 Materials and equipment suppliers
 Manufacturing and other service suppliers
 Semiconductor device vendors
 Distribution channels
Source: Silicon Design Chain
 Original equipment manufacturers (OEMs)
 Associated service and content providers
 Equipment end users

19 20

Semiconductor Industry Value Chain Electronics Industry Dissagregation

 Industry and Economy Trends  Concentration on core competencies


 Processes and core competencies that led to success in the past are now  With ready availability of the best technologies in every field,
becoming commoditized electronics makers have to concentrate on a few core competencies
 The value in semicond. devices is shifting away from manufacturing into design  Industry expertise spreads thus among myriad players world-wide
 Proliferation of low-volume applications and of chips with greater levels of  Decisions are not taken anymore under a single roof, but in competent
application-specific functions
and effective alliances
 In the 1980s and 1990s, the market was driven by clear “killer” applications
(PCs and cellular phones)  The majority of the industry nowadays depends on a design chain
 Since 1998 the overall growth of the total available market (TAM) has slowed comprising hundreds of
 Demand will likely be driven by a large number of low-cost applications, which makes specialized providers
it difficult for integrated device manufacturers (IDMs) to keep their fabs running at  The biggest issue:
minimum efficiency levels and to support design and manufacturing costs optimize chain links
-> Electronics is pervading our lives  Silicon Design Initiative
 Instead of killer applications we need killer functions such as wireless connectivity, is a five member alliance
which span multiple product categories aiming at bringing different
 The value of end-equipment is shifting from hardware to services players in the silicon design
 As industry matures and consolidates, understanding where value and profits chain for insuring profit
(Applied Materials, ARM,
will lie becomes a critical survival issue Artisan, Cadence, TSMC)
 Semiconductor vendors must anticipate the needs of, design for and do business
with a new, heterogeneous group of clients far beyond the OEMs -> new business
model Source: Silicon Design Chain

21 22

Outline SoC - System-on-Chip

 System on a Chip development:


Yesterday’s chip is today’s functional block!
 Ambient Intelligence & Ubiquitous Computing Environments
 Microelectronics – Technology Driver in the Internet Age New design methodologies are needed
 Technologies for SoC Design 2.5 million gates

 EDA Support: Silicon Design Chain 500k gates


New Design Paradigm
Simulation,
 Emerging Technologies - Electronics in 30 Years Emulation,
Synthesis,
 Outlook 50K gates Formal equivalence
20K gates Schematics
Schematics & Synthesis
& simulation

Source: ICE
3.0 1.0 0.5 0.2

23 24

Cap. 1. Introducere 4
Inteligenţă Ambientală

SoC - System-on-Chip What are typical SoC Components ?


 Processor Cores
 What is a SoC? Mobile  CPU, DSP
 system which integrates heterogeneous Phone  Memories
components on one piece of Si  RAM (DRAM, SRAM)
 need for more than 1 EDA tool  ROM
 Reconfigurable Comp.
 field-programmable logic (FPGA)
 Why SoCs?
fine-grained coarse-grained
 increased functionality
 configurable interconnect
 smaller packaging
 lower manufacturing costs  Micro-Electro-Mechanical Systems (MEMS) - Microsystem Comp.
 improved reliability  low cost & increased performance
 low power consumption  optical MEMS
 Analog RF Components, Mixed-Signal Components
 Effect: use of IP cores (Intellectual Property)  LNA, VCO, mixers, inductors
 ADCs & DACs
 Software for SoCs
Source: Dennis Buss, TI

25 26

Modular Process Technologies Technology Trend in the Internet Age

Source: ISSCC 2000


Source: Dennis Buss, TI

27 28

Block Diagram of a 2G/2.5G Cell Phone SoC Components

Digital Software
LNA Baseband Logic
RX User Audio
Radio
Synth
Inter-
CODEC
PA TX
Face Display
Memory Keyboard Reconfigurable
MEMS DRAM
Logic

Passives Power Management


Communication Bus

SiGe BICMOS DSM Digital


Analog
CPU ADC DAC
Components
High Voltage Flash

Analog CMOS SAW Filters, Inductors, etc.

29 30

Cap. 1. Introducere 5
Inteligenţă Ambientală

Processor Cores For SoCs Energy (Power) Efficiency

 There are processor cores available from different companies e.g.:


 CPU: ARM, MIPS, Infineon, Fujitsu...
 DSP: Motorola, LSI Logic, STMicroelectronics...

 Several fully tested peripherals are available


(e.g. for ARM’s AMBA bus):
 Static/Dynamic Memory Controller
 LCD Controller
 Serial Interface
 Real Time Clock
 Keyboard/Mouse Interface
 General Purpose Input/Output
 Smart Card Interface
 DC to DC Converter Interface
 ...... Source: Hui Zhang, et al. VLSI’99
Based on: Bob Brodersen: SoC Design – Specification, Architecture and Prototyping, ISSCC Short Course, 2003

31 32

Architecture Alternatives Conclusions

There is no software/hardware tradeoff


 The difference between hardware and software in
performance, power and area is so large that there is
no “tradeoff”.
 It is reasons other than power, energy, performance
or cost that drives a software solution (e.g. business,
legacy, …).
 The “Cost of Flexibility” is extremely high.

Based on: Bob Brodersen: SoC Design – Specification, Architecture and Prototyping, ISSCC Short Course, 2003
Source: Berkeley Wireless Research Center

33 34

SoC Components Reconfigurable Components

 Benefits of Application:
Software  flexibility, adaptability  changing standards, high demands
 multiple products from a single SoC device
 power consumption: direct gate structure mapping  efficient Implementation
 short time-to-market: no ASIC design cycle

Reconfigurable  Types of Reconfigurable Resources


MEMS DRAM  field-programmable logic
Logic
 fine-grained  coarse-grained
 combined with processor core

Communication Bus  reconfigurable blocks


 insert IP into your application (e.g. Actel‘s EPGA, Xilinx Virtex)
 Test problem: function cannot be tested by supplier!
 configurable processors
Analog processor + programmable logic + memory + system bus)
CPU ADC DAC 
Components  configurable interconnect networks
  suitable for real-time systems?

35 36

Cap. 1. Introducere 6
Inteligenţă Ambientală

Virtex-II Architecture Virtex-II Pro Architecture

 Industry First Platform FPGA Solution Rocket


 It contains PowerPC IO
 3 Mb of True Dual-Port™ RAM in 18-Kbit block SelectRAM resources ® 405 RISC CPU
 Up to 12 DCM (Digital Clock (PPC405) cores
Manager) modules
 Dedicated 18-bit x 18-bit multipliers  FPGA fabric based
 Fast look-ahead carry logic chains on Virtex-II Power PC
 0.15µm / 0.12µm CMOS 8-layers architecture Core

On Chip
Fastest DSP Virtex-II Memory
8x8 MAC 4.8 Billion MAC/s 0.5 Tera MAC/s Controller
256-FIR 9.3 MSPS 180 MSPS
1024-FFT 10 µs 1 µs

Embeded
RAM
Source: Xilinx Virtex-II documentation
Source: Ivo Bolsens, Xilinx

37 38

Virtex-II Pro Architecture „FPGAs ... not even the sky is the limit“

 It contains PowerPC ® 405 RISC CPU (PPC405) cores  Mission to Mars:


 FPGA fabric based on Virtex-II architecture  Mars rovers ‚Discovery‘ and
‚Spirit‘ launched in summer
2003 and landed in January
On Chip BRAM BRAM 2004 successfully
Metal 9
Memory
 FPGAs for critical functions
Metal 8 Controller
Metal 7  2 Virtex for motor control
Metal 6
Metal 5  4 4000XL on Mars lander
Metal 4
radiation-tolerant
Metal 4
Metal 3 Hard Metal 3
Power PC 
Metal 2 Metal 2 Core
Metal 1 IP-block Metal 1  success paves the way for
Poly (Power PC) Poly future replacement of ASICs
Substrate even in critical applications
 „... not even the sky is the limit"
BRAM BRAM
Integration process: IP Immersion
Embeded
RAM
Source: Xilinx Virtex-II-Pro documentation

Source: Xcell Journal

39 40

SoC Components A/D Interface Components

 High performance required for analog/digital interfaces:


Software  Speed
 Resolution
 Spurious Free Dynamic Range
 Power consumption
Reconfigurable
MEMS DRAM
Logic
 Solutions:
Generic configuration of a sigma - delta converter
Communication Bus  New architectures Source: Franco Maloberti / Texas A&M University

 ADC: flash architecture, sigma-delta modulators


 DAC: current steering architecture
Analog
CPU ADC DAC  Technological advances
Components
 Digitally assisted data converters - digital correction and calibration

41 42

Cap. 1. Introducere 7
Inteligenţă Ambientală

Figure Of Merit For ADC. Trend Of F.o.M. For ADC...

 Resolution/accuracy trend can be used as basis for Figure of Merit (F.o.M.).


 F.o.M. in data converters is a relationaship between the power consumption, the
effective number of bits (ENOB) and bandwidth. pJ/conv

No. of output bits 100
10b
ENOB 
-3dB (-1/2 bit) 
Best in  
10
r class
e Power 
s F .o.M .  12b  
(2 ENOB )2 BW 
o
  
l Relevant for F.o.M. 1 14b
[energy per 
u
conversionstep] On the market Design
t
i
o
n 90 92 94 96 98 00 02 Year
Frequency
0 fin BW fS/2
E.g. ENOB=9.2, Power=120mW, BW=20MHz: F.o.M.=5pJ

43 44

System In A Package Outline

 Ambient Intelligence & Ubiquitous Computing Environments


 Microelectronics – Technology Driver in the Internet Age
 Technologies for SoC Design
 EDA Support: Silicon Design Chain
 Emerging Technologies - Electronics in 30 Years
 Outlook

Courtesy Gammel, et.al.

45 46

„Future of EDA“ in the Early 1970s Problems Change

 1973 ACM IEEE Design Automation Conference


 Proc. of the 10th Workshop on Design Automation  Much of the problems remained similar
 „Present and Future in Design Automation Systems“  However, as Deep Sub-Micron Design geometry shrinks problems
 T. Kitamura and T. Watanabe (NEC) change (the number thereof increases)

 Status
 Feature Size Design Issues
 The role of EDA becomes more and more important because of the
processing of complex and a great deal of data is requested, and still  1.0 um Area, Speed
more accurate, reliable and rapid processing capability is required  .5 um Speed, Power, Area
 Difficulties  .25 um Speed, Power, Area
 dealing with new hardware technologies
 .18 um Speed, Power, Area, Signal-Integrity
 Complexity of DA system
 .13 um Speed, Power, Signal-Integrity, Metal Migration, Area
 Aims
 Design quality improvement  90 nm Power, Signal-Integrity, Yield, Metal Migration, Speed, Area
 Reduction of the design period and design cost
 Increasing of automation and reduction of interaction
 Nowadays
 Almost the same problems, nevertheless…

47 48

Cap. 1. Introducere 8
Inteligenţă Ambientală

Main Issues of EDA in the Early 2010s Power Density

 Heat Dissipation
 Design Issues in the Nanometer Era
 Many argue that power may become the main show-stopper of Moore’s Law
 With increasing integration levels heat dissipation is one of the main
 Especially leakage
issue and a possible show-stopper. Insufficiently increasing battery
lives pose additional pressure.
 Low-Power Gap
 In a processes smaller than 90nm, many hundreds, even thousands of
transistors could fit in into a red blood cell and the transistors are only a
few atoms thick -> Leakage
 Interconnect Timing Delay: the signal delay associated with the wires
connecting the transistors outweighs the delay in the transistors
themselves -> increasing design iterations
 Interconnects & Timing Closure
 Inter-Die & Intra-Die Variations / On-Chip Variations (OCV)
 Process Variations

Source: Intel

49 50

Impact of Static Variations Design Methodology Changing

 Both performance and power consumption are  Active Power Reduction

High Supply
Low Supply

Voltage
Voltage
Multiple Vdd
severely affected  Vdd scaling will slow down
Slow Fast Slow

 Especially leakage  Mimic Vdd scaling with multiple Vdd


 Challenges:
1.4
 Interface between low & high Vdd
 Delivery and distribution
Normalized Frequency

1.3 30% Frequency


 Leakage Control
~30%
1.2  Body Bias 2-10x Reduction
130nm  Stack Effect 5-10x Reduction
1.1 Leakage  Sleep Transistor 2-1000x Reduction
Power  Adaptive Body Biasing
1.0
5X ~5-
~5-10X  Excellent yield increase
Number of dies

too
leaky
too ABB
0.9 slow

1 2 3 4 5 FBB RBB
Normalized Leakage (Isb
(Isb)) f target f target
Frequency

51 52

EDA Costs and Industry Evolution EDA Disintegration

 Design re-spin  Nanometer Chip Design


 typically costs around $2 million @ 90nm  Tools from different
 Additionally, a three month re-spin induced delay can result in a 25% EDA companies
loss in revenue
 Some estimates for 90 nm projects say the average re-spin count is  Example
three per design  TSMC
 Innovation in EDA is needed more than ever!  Design Reference Flow 4.0

 Evolution of Independent EDA Companies


 From internally developed solutions to independent design tools
companies
 Vertically integrated electronics companies drive design technology Source: Silicon Design Initiative

53 54

Cap. 1. Introducere 9
Inteligenţă Ambientală

Platform-Based Design: Platform Life-Cycle Economic Trends – Platform-Based-Design is for Real

Easy Implementation:
DSP
core API
bus Generic
OS
Memory Platform
CPU
core Platform
+ Intel Xscale
TI OMAP (PDA)
Application-
(Wireless, PDA)
Lifecycle Specific
Additions ARM PrimeXSys

Experiences Philips Nexperia


Specific Applications (Digital video processing)
New Requirements DSP blocks
core API
 Feedback for future bus OS
Memory
platform generations CPU
core
Drivers

multiple devices with similar basic functions

55 56

Outline Emerging Technology Sequence

 Ambient Intelligence & Ubiquitous Computing Environments


 Microelectronics – Technology Driver in the Internet Age
 Technologies for SoC Design
 EDA Support: Silicon Design Chain
 Emerging Technologies - Electronics in 30 Years
 Outlook

Source: SIA

57 58

Emerging Research Logic Devices The Ideal Chip

 Designers and Users want:


Device Resonant  Highest possible integration density (n)
1D Spin
FET RSFQ
structures
Tunneling SET Molecular QCA
transistor  To keep chips size small and increase yields
Devices
 To increase functionality
Not
Cell Size 100 nm 0.3 µm 100 nm 100 nm 40 nm
known
60 nm 100 nm  Highest possible speed (f=1/t)
Density  Speed sells!
3E9 1E6 3E9 3E9 6E10 1E12 3E10 3E9
(cm-2)  Lowest possible power consumption (P)
Switch 700 GH Not Not
Speed z
1.2 THz
known
1 THz 1 GHz
known
30 MHz 700 GHz  Decrease demands for energy
Circuit 250–  The generation of too much heat means costly cooling systems
30 GHz 30 GHz 30 GHz 1 GHz <1 MHz 1 MHz 30 GHz
 However
Speed 800 GHz
Switching –18
2×10 >1.4×10–17 2×10–18 >2×10–18 >1.5×10–17 1.3×10–16 >1×10–18 2×10–18
Energy, J  there are (fundamental) limits related to physics,
Binary technology, finances and economy
Throughput, 86 0.4 86 86 10 N/A 0.06 86
GBit/ns/cm2

2003 ITRS - No viable emerging logic technologies identified for Information Processing beyond CMOS

59 60

Cap. 1. Introducere 10
Inteligenţă Ambientală

Ultimate Limits Of Integration Fundamental Physics: Electron Transport Limits

 Distinguishability is an essential 1) Minimum energy per binary transition min


Ebit  k BT ln 2
property of a system that
represents binary information.
 This property is usually obtained
Eb
{ „one“ 2) Minimum distance between two distinguishable states (Heisenberg)

by energy barriers. electron



 err: Probability of spontaneous
L
xp   xmin  a 
2mkT ln 2
 1.5nm(300 K )
transition
 Reasons: classic overbarrier or
quantum mechanic tunneling
}E b „zero“ 3) Minimum state switching time (Heisenberg)

 L large enough: only classic electron L 


overbarrier plays a role:
classic = exp(-Eb/kBT) < 0.5
! Et   t st 
kT ln 2
 4  10 14 s (300 K )
err  classic
 If err = 50% -> Distinguishability  Eb > Eb,min = ln(2) kBT
is completely lost 1 gate
4) Maximum gate density n 2
 4.6  1013
Based on: Zhirnov et al.: „Limits to Binary Logic Switch Scaling – A Gedanken Model“, Proc. IEEE, Nov. 2003
xmin cm 2
Source: Cavin and Zhirnov, Semiconductor Research Corporation

61 62

Energy Efficiency of CMOS Energy Efficiency of CMOS

 Can we decrease the energy of CMOS?


 Does practical CMOS operate far from fundamental limits?
 From 3*10-18 J to 3*10-21 J
 Not really...  In principle yes, but...

Decrease the barrier height: Decrease the number of electron per switching event:
2018 FET Fundamental limits 0.7 eV  0.02 eV 32  1

xmin  a   1.5nm(300 K ) E
amin: Channel length 7 nm 2mkT ln 2  err  exp( b )
Eb kT
Esw: Switching energy 3 x 10-18 J Esw > kTln2 = 3 x 10-21 J 22kT 0.0000003%

Eb: S-Ch barrier height ~0.7 eV Eb > kTln2=0.02 eV 12kT 0.001%

Electrons/switching event ~32 1 8kT 0.03%

Energy/electron 9 x 10-20 J~22 kT 3 x 10-21J ~ kT 4kT 2%

kT ln2 50%

Each device must communicate with several other devices (Fan-out requirement)

63 64

Energy Efficiency of CMOS Ultimate Limits Of Integration (3)

 Computation at Eb=kBTln2 means err =0.5  Maximum device density


 Impossible 1 devices
 Useful computation n max  2  4.7 1013
 err << 0.5 -> barrier height larger than kBln2 Lmin cm 2
 it will result in larger total power consumption
 The probability that all N switches in a circuit work correctly  The power dissipation per unit area of this limit
  syst  1   err  technology is given by
N

 The lower boundary is 0.5 Device perspective


n max Eb , min MW
P  3.7
a>5 nm (Boltzmann) a<5 nm
(Boltzmann and Heisenberg)
then t min cm 2
Ebmin  k BT ln 2  0.017eV 2 2
 (ln 2)

 Summary on Energy per bit


Ebmin  kT ln 2 
8ma 2
 0.025eV @ 1nm
 For comparison:
Circuit perspective
a>5 nm (Boltzmann)
a<5 nm
 Surface of the sun: 6 kW/cm2
 N1 
 2 
(Boltzmann and Heisenberg)  Forced water cooling: 800 W/cm2
E bmin  k BT ln 1 
 2 N 1 
 
a=3 nm: Ebmin=0.7 eV  ITRS 2016: < 100 W/cm2
a=2 nm: Ebmin=1.5 eV
Ebmin0.6 eV @a=7nm
a=1 nm: Ebmin=6.7 eV
2018 FET: Lg=a=7 nm; Vdd=0.7 V
Based on: Zhirnov et al.: „Limits to Binary Logic Switch Scaling – A Gedanken Model“, Proc. IEEE, Nov. 2003
Source: Cavin and Zhirnov, Semiconductor Research Corporation

65 66

Cap. 1. Introducere 11
Inteligenţă Ambientală

Possible Implications Marriage of living cells and silicon devices

 Heat removal
 Several hundred W/cm2 is close to known limits of heat removal
from a 2-dimensional solid material structure with Tmax =125°C
 Cavin and Zhirnov @ MSE’2005
 Inflexion of the ITRS vectors
300 K
Heisenberg barrier
1. 00E- 0 8

l is the “transistor length”:


1 Memory
1. 00E- 0 9 lmin=a
lMPU=20a
1.00E- 10
4
t, s

1.00E- 11
Logic
P=100 W/cm2
1.00E- 12
3
2 Molecular biology meets microelectronics – Erwin Neher, Nature Biotecnology, 2001
1.00E- 13 Heisenberg barrier
Source: 1 10 100 10 00
Cavin and Zhirnov,
Semiconductor Research Corporation
l, nm

67 68

Integration of new functions on chip: Future SoC INPG - MINATEC

POLYGONE SCIENTIFIQUE

• 45 000 m2
de bâtiments
Pôle supplémentaires
MINATEC

• 170 M€
CEA-LETI

OPERATIONNEL : Septembre 2005


PREFIGURATION DEJA OPERATIONNELLE
MEL-ARI Nanoelectronics Roadmap Source: INPG Visiting Committee, 7.-9. Juni 2004

69 70

INPG - MINATEC Outline

 INPG
 „Projet Minatec vue de la Bastille“
 Ambient Intelligence & Ubiquitous Computing Environments
 Microelectronics – Technology Driver in the Internet Age
 Technologies for SoC Design
 EDA Support: Silicon Design Chain
 Emerging Technologies - Electronics in 30 Years
 Outlook

71 72

Cap. 1. Introducere 12
Sisteme Ambientale Inteligente

Obiective
 Obiectivul urmărit este acela de a prezenta şi înţelege
conceptele teoretice care stau la baza realizării
sistemelor ambientale inteligente, posibilităţile de
realizare, precum şi tendinţele de dezvoltare ale
Cap.2. Noţiuni fundamentale acestora
 Bibliografie:
E. Aarts, R. Rovers “Embedded System Design Issues in
Ambient Inteligence” din cartea:
Curs Sisteme Ambientale Inteligente
Twan Basten, Marc Geilen, Harmke de Groot, “Ambient
Intelligence: Impact on Embedded Ssystem Design”,
Kluwer Academic Publishers, Boston, 2003

Sisteme Ambientale
Sisteme Ambientale Inteligente 1 Inteligente Cap. 2. Noţiuni fundamentale 2

2.1. Definiţii 2.1. Definiţii

 Inteligenţa ambientală (ambient intelligence – AmI) este  Inteligenţa ambientală (IA) se referă la un mediu
o viziune pentru viitorul sisteme electronice de consum electronic capabil de a interacţiona cu fiinţa umană
care este susţinută de interfeţe inteligente şi intuitive
incorporate în obiectele uzuale de zi cu zi şi de un mediu  Mediul electronic construit este sensibil la prezenţa
care răspunde prezenţei indivizilor într-un mod invizibil fiinţelor umane şi interacţionează cu acestea intr-un mod
 Sistemul ambiental inteligent este sistemul care este natural
implementat conform viziunii inteligenţei ambientale.
 Se creează o arhitectură de informare, comunicare,
servicii şi de petrecere a timpului liber centrate pe
utilizatorul uman

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 3 Inteligente Cap. 2. Noţiuni fundamentale 4

2.1. Definiţii 2.1. Definiţii

 Într-un mediu ambiental inteligent, oamenii sunt


 Suportul hardware este asigurat de tehnologia circuitelor înconjuraţi de o reţea de sisteme electronice inteligente
integrate care pune la dispoziţie componente miniaturale care asigură o informare, comunicare şi o petrecere a
cu o mare capacitate de prelucrare a informaţiilor la un timpului liber, oriunde în cadrul acestui mediu
preţ extrem de redus, ceea ce ne permite integrarea  Mediul ambiental inteligent diferă de mediile electronice
acestora în orice obiect care ne înconjoară contemporane (caracterizate prin dispozitive şi sisteme
staţionare ca de exemplu calculator, boxe, telefon etc.)
prin faptul ca această electronică este omniprezentă în
îmbrăcăminte, mobilă, pereţii caselor, automobil, la locul
de muncă, locuri publice etc.

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 5 Inteligente Cap. 2. Noţiuni fundamentale 6

Cap. 2. Noţiuni fundamentale 1


Sisteme Ambientale Inteligente

2.2. Funcţii de bază ale unui mediu ambiental


2.1. Definiţii inteligent

Pot fi identificate 3 funcţii de bază care să caracterizeze un


 Se impune dezvoltarea unor noi modalităţi şi tehnici de mediu ambiental inteligent:
interfaţare care să permită interacţiunea dintre fiinţa
umană şi acest mediu intr-un mod natural (voce, gestică  În primul rând mediul ambiental inteligent este
etc.) contextual în sensul că sunt integraţi senzori în mediul
înconjurător, iar din informaţiile furnizate de acestea pot
fi deduse stări şi acţiuni semnificative ca de exemplu:
 Identificarea persoanei
 Detecţia poziţiei acesteia etc.

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 7 Inteligente Cap. 2. Noţiuni fundamentale 8

2.2. Funcţii de bază ale unui mediu ambiental 2.2. Funcţii de bază ale unui mediu ambiental
inteligent inteligent

 În cel de-al doilea rând informaţiile audio, video şi de  Funcţiile enumerate mai sus nu se referă numai la
date sunt transmise wireless către toate dispozitivele domiciliu, ci se vor regăsi şi în autoturisme, la locul de
prezente în acel mediu permiţând un acces de muncă, magazine, spitale etc.
pretutindeni (ubiquitous) la informaţii, comunicaţii şi
entertainment  Aceste funcţii vor asigura suportul necesar pentru o
gamă variată de activităţi umane cum ar fi:
 În cel de-al treilea rând utilizatorul aflat intr-un mediu  Muncă
ambiental inteligent va putea exercita o interacţiune cu  Securitatea individului
mediul său intr-un mod natural prin voce, gesturi şi  Asistenţă medicală
hands-free  Comunicaţii personale
 Petrecerea timpului liber

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 9 Inteligente Cap. 2. Noţiuni fundamentale 10

2.3. Componentele de bază ale unui mediu 2.3. Componentele de bază ale unui mediu
ambiental inteligent ambiental inteligent

 Orice activitate de culegere, transmitere şi/sau de


prelucrare a informaţiilor presupune un anumit consum
de energie

 Cantitatea de energie disponibilă va limita funcţiile


enumerate mai sus ale unui dispozitiv integrat intr-un
mediu ambiental inteligent

 Din figură putem observa că o capacitate mare de prelucrare la un


consum redus de energie practic nu este posibilă (coltul stânga sus)

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 11 Inteligente Cap. 2. Noţiuni fundamentale 12

Cap. 2. Noţiuni fundamentale 2


Sisteme Ambientale Inteligente

2.3. Componentele de bază ale unui mediu 2.3. Componentele de bază ale unui mediu
ambiental inteligent ambiental inteligent

Din punct de vedere al consumului de energie necesar, 2. Dispozitive portabile - Se caracterizează prin faptul că
vom putea defini trei clase de dispozitive generice: îţi asigură necesarul de energie de la baterii sau
acumulatoare şi au o funcţionare autonomă de ordinul
1. Dispozitive autonome - Acestea se vor caracteriza orelor sau al zilelor.
prin faptul că îşi asigură necesarul de energie singure Le vom numi dispozitive de tip miliwatt (miliWatt node)
pe toată durata de viaţă a dispozitivului prin extragerea şi vor putea fi exemplificate prin
acesteia din mediul înconjurător (din lumină, din vibraţii  telefon mobil
mecanice sau din diferenţe de temperatură)  monitoare portabile
 sisteme de supraveghere şi de comandă de la distanţă
Aceste dispozitive autonome le vom numi de tip
“microWatt” (microwatt node), iar ca exemplu tipic ar fi
un senzor inteligent
Sisteme Ambientale Sisteme Ambientale
Inteligente Cap. 2. Noţiuni fundamentale 13 Inteligente Cap. 2. Noţiuni fundamentale 14

2.3. Componentele de bază ale unui mediu 2.4. Arhitecturi pentru sisteme ambientale
ambiental inteligent inteligente
Mediul ambiental inteligent este creat prin interacţiunea unui număr
mare de dispozitive de tipuri diferite legate în reţea

3. Dispozitive statice - Acestea sunt alimentate de la


reţea şi în consecinţă dispun de resurse energetice
practic nelimitate.
Le vom numi dispozitive de tip watt (watt node) şi pot fi
exemplificate prin
 Ecrane LCD de mari dimensiuni
 Servere
 Unităţi de stocare de mari dimensiuni

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 15 Inteligente Cap. 2. Noţiuni fundamentale 16

2.4. Arhitecturi pentru sisteme ambientale 2.4. Arhitecturi pentru sisteme ambientale
inteligente inteligente

 Un mediu ambiental inteligent va fi realizat printr-o Nodurile de tip microwatt


combinaţie optimă a prelucrării informaţiei distribuită  Funcţionalitatea contextuală a nodului de tip microWatt
nodurilor diferite care compun reţeaua este realizată prin combinarea senzorilor cu funcţii de
interfaţare mixte a funcţiilor de comandă şi control cu
 Plecând de la limitările de comunicaţie şi putere de comunicaţii wireless
calcul ale nodurilor, acestea vor fi completate cu senzori,  Schema bloc a nodului microwatt este prezentată în
elemente de execuţie şi de stocare pentru a face în felul slide-ul următor
acesta reţeaua viabilă

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 17 Inteligente Cap. 2. Noţiuni fundamentale 18

Cap. 2. Noţiuni fundamentale 3


Sisteme Ambientale Inteligente

2.4. Arhitecturi pentru sisteme ambientale 2.4. Arhitecturi pentru sisteme ambientale
inteligente inteligente
Proiectarea unui asemenea nod presupune următoarele
activităţi:
 Modelarea adecvată
 Optimizarea consumului de energie
 Simularea reţelei caracterizată printr-un număr foarte
mare de asemenea noduri şi la care trebuie sa ţinem
seama de
 Defectări
 Redundanţă
 Protocoale specifice

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 19 Inteligente Cap. 2. Noţiuni fundamentale 20

2.4. Arhitecturi pentru sisteme ambientale 2.4. Arhitecturi pentru sisteme ambientale
inteligente inteligente
Noduri de tip miliwatt
 Multitudinea de legături wireless garantează accesul la
cele mai diverse tipuri de informaţii având rate de
transmisii şi calitate diferite
 Circuitele de interfaţare procesează semnalele audio şi
video, iar prezenţa unor sisteme locale de stocare a
informaţiei adaugă o funcţionalitate sporită
 Managementul consumului de energie este esenţial

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 21 Inteligente Cap. 2. Noţiuni fundamentale 22

2.4. Arhitecturi pentru sisteme ambientale 2.4. Arhitecturi pentru sisteme ambientale
inteligente inteligente
Aspecte de proiectare a nodurilor de tip miliWatt Noduri de tip watt
 Optimizarea arhitecturii din punct de vedere al  Caracteristica principală constă în asigurarea unei
consumului de energie interfeţe naturale în sensul de a extrage informaţie utilă
 Integrarea diverselor standarde de comunicaţie provenită de la diverse surse şi de a asigura un dialog
 O proiectare de tip low-power şi pentru partea de RF
inteligent cu utilizatorul
 Folosirea şi optimizarea tehnicilor de compresie pentru
semnalele audio, video şi de date

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 23 Inteligente Cap. 2. Noţiuni fundamentale 24

Cap. 2. Noţiuni fundamentale 4


Sisteme Ambientale Inteligente

2.4. Arhitecturi pentru sisteme ambientale 2.4. Arhitecturi pentru sisteme ambientale
inteligente inteligente
Aspecte de proiectare
 Nevoia de circuite integrate de foarte mare complexitate
 Decizii privind soluţii microprogramate, configurabile sau
mixte
 Proiectare modulară, ca să permită extinderi ulterioare
 Asigurarea unui software adecvat pentru asemenea
sisteme distribuite
 Posibilităţi de testare şi autoevaluare a componentelor şi
subsistemelor

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 25 Inteligente Cap. 2. Noţiuni fundamentale 26

2.5. Aspecte generale ale proiectării unor sisteme 2.5. Aspecte generale ale proiectării unor sisteme
ambientale inteligente ambientale inteligente
Împărţirea componentelor care compun un sistem Putem formula următoarele tipuri de probleme în
ambiental inteligent în cele 3 tipuri: microWatt, miliWatt proiectare:
şi Watt creează premizele unor abordări interesante ale
proiectării sistemelor dedicate (embedded) pentru medii  Proiectare pentru variaţie
ambientale inteligente

 Proiectare pentru distribuire

 Proiectare pentru inteligenţă

 Proiectare pentru experienţă

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 27 Inteligente Cap. 2. Noţiuni fundamentale 28

2.5. Aspecte generale ale proiectării unor sisteme 2.5. Aspecte generale ale proiectării unor sisteme
ambientale inteligente ambientale inteligente

Proiectare pentru variaţie Proiectare pentru variaţie


 Un sistem dedicat constând din cele 3 tipuri de noduri se  Variaţia extremă a parametrilor ce caracterizează
va caracteriza printr-o varietate extremă a parametrilor nodurile va impune proiectantului nevoia de înţelegere
principali, cum ar fi: profundă a limitărilor impuse nodurilor
 Viteza de comunicaţie variază de la 1 Bit/sec la câţiva GB/sec  Sistemele proiectate vor fi o combinaţie de circuite
 Puterea de calcul poate varia de la 1 KOP/sec la TOP/sec analogice şi digitale cu senzori şi elemente de execuţie
 Nevoia de putere consumată de la 1 microWatt la sute de Watti
 Se impune utilizarea pe lângă tehnologiile cunoscute şi
a nano tehnologiilor

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 29 Inteligente Cap. 2. Noţiuni fundamentale 30

Cap. 2. Noţiuni fundamentale 5


Sisteme Ambientale Inteligente

2.5. Aspecte generale ale proiectării unor sisteme 2.5. Aspecte generale ale proiectării unor sisteme
ambientale inteligente ambientale inteligente
Proiectare pentru distribuire
Proiectare pentru distribuire  Nodurile de tip microwatt vor fi esenţialmente intrări
 Sistemele ambientale inteligente construite cu cele 3 destinate culegerii de informaţii
tipuri de componente vor trebui sa fie adecvate pentru a  Nodurile de tip miliWatt şi Watt vor fi la rândul lor
executa aplicaţii distribuite, cu alte cuvinte sarcini sisteme cu mare putere de comunicare şi procesare cu
modulare executate de noduri diferite arhitecturi standardizate interoperabile şi
 O modalitate de a asigura execuţia aplicaţiilor distribuite interschimbabile
este aceea de a construi sistemele modulare:
 Unităţi de intrare-ieşire
 Unităţi de stocare
 Unităţi de routare
 Unităţi de prelucrare

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 31 Inteligente Cap. 2. Noţiuni fundamentale 32

2.5. Aspecte generale ale proiectării unor sisteme 2.5. Aspecte generale ale proiectării unor sisteme
ambientale inteligente ambientale inteligente
Proiectare pentru inteligenţă Proiectare pentru experienţă
 Un mediu ambiental inteligent este o reţea de sisteme  Sistemele ambientale inteligente sunt reţele de sisteme
dedicate conectat la rândul său cu alte reţele (de dedicate care sunt sensibile la prezenta fiinţelor umane
exemplu internetul) şi interacţionează cu acestea
 Software-ul care asigură inteligenţa sistemului uneori  Electronica dispare în fundal (mediu) apărând în prim-
este dificil de localizat plan interacţionalitatea socială şi funcţionalitatea cu
 Vor exista: scopul de a îmbunătăţi condiţiile de viaţă ale omului
 Sisteme ambientale cu inteligenţă internă
 Sisteme ambientale cu inteligenţă externă
 Sisteme hibride

 Se impune un inside-outside-codesign

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 33 Inteligente Cap. 2. Noţiuni fundamentale 34

2.5. Aspecte generale ale proiectării unor sisteme


ambientale inteligente
2.6. Concluzii
Proiectare pentru experienţă  Inteligenţa ambientală este o viziune pentru viitorul
 Presupune o înţelegere profundă a nevoilor personale sistemelor electronice de consum
ale individului şi transpunerea acestora în interacţiuni  În conceptul inteligenţei ambientale, resursele energetice
funcţionale constituie un criteriu principal în proiectarea
 Realizarea de sisteme autoadaptive şi autoinstruibile dispozitivelor, rezultând trei tipuri generice de noduri:
 Nevoia unor cercetări pentru asigurarea interacţiunii
microWatt, miliWatt şi Watt
eficiente dintre fiinţa umană şi mediul ambiental  Pentru aceste dispozitive, circuitele integrate cu siliciu
inteligent reprezintă tehnologia de bază pentru calcul, comunicare
şi interfeţe mixte

Sisteme Ambientale Sisteme Ambientale


Inteligente Cap. 2. Noţiuni fundamentale 35 Inteligente Cap. 2. Noţiuni fundamentale 36

Cap. 2. Noţiuni fundamentale 6


Sisteme Ambientale Inteligente

2.6. Concluzii
 Funcţionalitatea inteligenţei ambientale este distribuită
(mapată) într-o reţea de dispozitive de trei tipuri
 Acest lucru este aplicat în conştientizarea contextului, în
prezenţa informaţiei pretutindeni şi în interfeţe naturale
rezultând trei studii de caz care să indice diversele
provocări pentru proiectarea CI
 Partiţionarea pe trei nivele a sistemelor inteligente
ambientale în noduri microWatt, miliWatt şi Watt
introduce patru provocări majore pentru proiectarea
sistemelor integrate (dedicate): proiectare pentru
variaţie, pentru distribuire, pentru inteligenţă şi pentru
experienţă

Sisteme Ambientale
Inteligente Cap. 2. Noţiuni fundamentale 37

Cap. 2. Noţiuni fundamentale 7


Cap.3. Suportul Hardware

Sisteme Ambientale Inteligente 1


Obiective

 Trecerea în revistă a principalelor cerinţe de realizare a


hardware–ului sistemelor ambientale inteligente

 Exemplificarea de principiu a acestor componente

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 2


3.1. Generalităţi
 Suportul hardware este esenţial pentru asigurarea unui
sistem ambiental inteligent
 Dispozitivele care compun un sistem ambiental inteligent
se caracterizează printr-o plaja de variaţie extrem de
întinsă, în ceea ce priveşte pe de-o parte puterea de
calcul, iar pe de altă parte constrângerile legate de
costuri şi putere consumată

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 3


3.1. Generalităţi
 Arhitecturile sistemelor hardware care compun un sistem
ambiental inteligent se pot grupa în 3 mari categorii
 Sisteme fixe de reţea (workhorses)
 Sisteme mobile de reţea (hummingbirds)
 Reţeaua de senzori (butterflies)

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 4


3.2. Sisteme fixe de reţea
 Staţii de lucru
 Procesoare de înalta performanţă
 Arhitecturi superscalare
 Frecvenţa de tact mare
 Consum de putere cât mai mic
 Memorii cache integrate

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 5


3.2. Sisteme fixe de reţea

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 6


3.2. Sisteme fixe de reţea
Un exemplu în acest sens este procesorul Itanium II
dezvoltat de INTEL şi HP in 2002
 A doua generaţie de microprocesoare IA-64
 Tehnologie 0.18 μm
 C-MOS cu 6 straturi de metalizare
 421 mm2
 221 milioane de tranzistoare
 Frecvenţa 1 GHz
 Procesor de 64 biţi
 O multitudine de unităţi de execuţie
 Predicţie speculativă a salturilor cu o acurateţe de 95%

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 7


3.2. Sisteme fixe de reţea
 Execuţia paralelă explicită a instrucţiunilor (Explicitly
Parallel Instruction Computing - EPIC)
 Memorie cache pe 3 nivele integrată pe chip:
 L3 de 3 MB, timp de acces 12 cicluri maşină
 L2 de 250 KB, timp de acces 6 cicluri maşină, multiport (4 de
citire şi 2 de scriere)
 L1 (16 KB instrucţiuni), timp de acces ½ cicluri maşină, multiport
(2 citiri şi 2 scrieri)
 Memoriile cache ocupa ¾ din suprafaţa chipului
 Consumul de putere este 130 Watts

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 8


3.2. Sisteme fixe de reţea
 Din cele 221 de milioane de tranzistoare, doar 25 de
milioane sunt folosite pentru procesare, restul intră în
memoria cache
 Jumătate din puterea disipată este consumată în logica
de comutaţie
 33% din putere este consumată de generatorul de tact şi
de circuitele care distribuie tactul
 8% este consumată de circuitele I/O
 2% reprezintă puterea pierdută

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 9


3.3. Sisteme mobile de reţea

 Ocupă o poziţie intermediară din punct de vedere al


puterii de calcul şi al energiei consumate

 Caracteristica lor principală este aceea de a comunica


wireless

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 10


3.3. Sisteme mobile de reţea
Cerinţele principale faţă de aceste noduri
 Consum redus de energie (de ordinul sutelor de
miliWatts)
 Bandă de transmisie largă în limitele oferite de
standardele WLAN (zeci Mb pe secundă)
 Nivele ridicate de securitate pentru datele transmise
 Costuri reduse (de ordinul dolarilor)
 Dimensiuni reduse (câţiva cm cubi)

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 11


3.3. Sisteme mobile de reţea

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 12


3.3. Sisteme mobile de reţea
 TNETW 1130 de la Texas Instruments a fost conceput
pentru a fi compatibil cu standardul de comunicaţii IEEE
802.11
 Schema este organizată pe 2 blocuri
 Unul care să asigure nivelul MAC al standardului
 Altul pentru interfaţare la nivel de bază (BB)
 ARM 9 pentru executarea operaţiilor din cadrul MAC
 SRAM 128 KB
 Interfaţă cu nodul fix de tip DMA

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 13


3.3. Sisteme mobile de reţea

 Advanced Encryption Standard – AES

 Pentru criptarea informaţiilor Wired Equivalency Protocol


– WEP asigură mecanismul de securitate de bază

 Wi-Fi Protocol Access – WPA pentru autentificare

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 14


3.3. Sisteme mobile de reţea

 Secţiunea BB pentru suportul hardware al comunicaţiei


în banda de bază, respectiv schemele de codare utilizate
pentru diferitele benzi de frecvenţă din standardul
802.11:
 OFDM – Orthogonal frequency Multiplexing
 PBCC – Packet Binary Convolution Code
 CCK – Complementary Code Keying
 Barker – modulatorul cu secvenţă Barker

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 15


3.4. Reţeaua de senzori
 Reţeaua de senzori este partea cea mai critică din punct
de vedere al constrângerilor de putere consumata şi cost
 Cerinţe principale
 Consum de energie redus (zeci de micro Watts)
 Cost redus (câţiva cenţi)
 Dimensiuni reduse (mm cubi)

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 16


3.4. Reţeaua de senzori
Caracteristici operaţionale
 Reţelele de senzori au densităţi foarte mari (câteva
noduri pe metru pătrat)
 Acoperă distante mici
 Rata de transmisie extrem de redusă
 Sunt active cca. 1% din timp

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 17


3.4. Reţeaua de senzori

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 18


3.4. Reţeaua de senzori
 Senzorul transmite datele unităţilor de prelucrare
 Interfaţa de comunicare wireless asigură legătura cu
nodurile reţelei
 Comunicarea RF 1 microJ/bit
 Comunicare optică 1 nano J/bit
 Soluţii programabile sau configurabile de la distantă care
asigură flexibilitatea necesară

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 19


3.4. Reţeaua de senzori

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 20


3.4. Reţeaua de senzori
 Smart dust dezvoltat la universitatea Berkley
 Înseamnă elemente de siliciu miniaturale active
 Fiecare are capabilitatea de a comunica wireless cu
staţia de bază sau cu alţi senzori
 Se autoalimentează
 Consum sub 100 microWatts
 Rata de transmisie mai mică de 1 Kb pe secundă
 Comunicaţie optică

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 21


3.4. Reţeaua de senzori
Schema conţine
 Un senzor de lumină şi un accelerometru
 Un convertor A/D realizat pe principiul aproximărilor
succesive pentru aplicaţii low-power
 Receptor optic bazat pe o fotododă
 Un automat finit (FSM) care asigura controlul şi
comanda părţilor componente ale senzorului

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 22


3.5. Concluzii
 Este de aşteptat ca dispozitivele inteligente ambientale
să asigure putere de procesare scalabilă la toate
nivelurile infrastructurii în reţea
 Există trei clase principale de dispozitive acoperind şase
ordine de mărime în ceea ce priveşte puterea de calcul,
consumul de energie, lărgimea de bandă şi dimensiuni
 La toate nivelurile reţelei există o tendinţă clară de
creştere a paralelismului, ca o soluţie pentru provocările
în ceea ce priveşte scalabilitatea:
 Arhitecturi paralele explicite (microprocesoare şi chip-uri pentru
reţele) în nodurile fixe şi mobile
 Un număr mare de senzori simpli, chiar fără putere mare de
procesare

Sisteme Ambientale Inteligente Cap. 3. Suportul hardware 23


Module Introduction

Purpose:
• This module provides an introduction to the ZigBee™ Alliance
networking standard, its underlying technology, and its target markets.

Objective:
• Understand the goals of the ZigBee Alliance.
• Identify ZigBee target markets and applications.
• Discover how ZigBee compares with other wireless standards.
• Examine the basics of the IEEE 802.15.4 standard.
• Examine the basics of the ZigBee software stack.

Content
• 34 pages
• 5 questions

Learning Time:
• 50 minutes

This ZigBee Overview provides you with an introduction to ZigBee™ technology.

In this module, we will discuss the ZigBee Alliance and its goals, target markets and
applications. We will see how ZigBee compares to other wireless standards and
explore the technology which underlies the standard. In particular, we will examine
the IEEE 802.15.4 Wireless Personal Area Network (WPAN) standard and the
ZigBee Network standard.

1
The Buzz of ZigBee

What is ZigBee? What makes ZigBee What is the ZigBee


different? architecture?

• ZigBee Alliance: • Diverse market penetration • Based on the IEEE 802.15.4


Consortium of 70+ standard
companies • Low cost, low power,
sophisticated networking • Incorporates all layers of
• Emerging software including the
standardized protocol • Standardization Application Layer and below:
for Ultra Low Power NWK, MAC, and PHY
Wireless Personal • Interoperability
Area Networks
(WPANs) • Focuses on low data rate,
low duty cycle connectivity

The term ZigBee is used to describe a standardized wireless protocol for personal
area networking, or “WPAN.” The protocol is the work of and property of the ZigBee
Alliance, a consortium of more than 70 companies who have joined together to
create and promote the new standard.

ZigBee is different from other wireless standards in that it has been designed to
serve a diverse market of applications that require low cost, low power wireless
connectivity with more sophistication than previously available at the target price.
The standard focuses on low data rate, low duty cycle connectivity, a market
segment not serviced well by existing standards. The reason for promoting a new
protocol as a standard is to afford interoperability between devices manufactured by
different companies.

ZigBee is a hardware and software standard built on the recently ratified IEEE
802.15.4 standard. This important standard defines the hardware and software,
which is described in networking terms as the physical (PHY), and Medium Access
Control (MAC) layers. The ZigBee Alliance has added Network (NWK) and
application (APL) layer specifications to complete what is called the ZigBee stack.

2
ZigBee Alliance Promoters

The ZigBee Alliance has two classes of membership. The promoters are the leaders
of the alliance. As you can see, the promoters represent a cross section of the
wireless industry with semiconductor, software, and system providers.

3
ZigBee Alliance Participants

Participants have a less committed stake in ZigBee. Participants can attend the
alliance meetings and have access to all preliminary specifications. As with
promoters, ZigBee Alliance participants represent a cross section of the wireless
industry.

4
ZigBee Markets and Applications
Mouse over the circles to learn more about ZigBee applications.

Security TV
HVAC VCR
Metering Reading DVD/CD
Lighting Control Remote Control
Access Control BUILDING CONSUMER Interactive Toys
AUTOMATION ELECTRONICS

Patient
Monitoring ZigBee Mouse
Fitness Wireless Control that Keyboard
Monitoring PERSONAL Simply Works PC & Joystick
HEALTH CARE PERIPHERALS

Asset Management Security


Process Control HVAC
Environmental LIGHTING &
Lighting Control
Energy Management INDUSTRIAL COMMERCIAL
CONTROL
Access Control
CONTROL
Lawn & Garden Irrigation

Solutions based on the ZigBee networking standard target specific markets and
applications. The ZigBee standard is tailor-made for monitoring and control
applications.

Therefore, such markets as building automation, personal health care, industrial


control and lighting and commercial control are perfect fits.

Additionally, because of their low data rates and demand driven nature, high-end
remote controls for consumer electronics and human interface devices such as
keyboards, mice and joysticks are also good fits. In all cases, the target markets
require only low data rates but demand long battery life, sophisticated networking or
both.

Move your mouse pointer over the circles to learn more about ZigBee applications.

5
Question

Is the following statement true or false? Click Done when you are
finished.

“Building automation, personal health care, and industrial control are


good markets for the ZigBee networking standard.”

True

False

Done

Consider this question regarding the ZigBee networking standard.

Correct.
The ZigBee networking standard is tailor-made for monitoring and control
applications. Therefore, markets such as building automation, personal
health care, and industrial control are perfect fits.

6
ZigBee Market Goals

• Global band operation, 2.4 GHz, 915 MHz, 868 MHz


• Unrestricted geographic use
• RF penetration through walls and ceilings
• Automatic or semi-automatic installation
• Ability to add or remove devices
• Cost advantageous

Let’s summarize the market goals of the ZigBee alliance.

ZigBee is implemented in either the globally assigned 2.4 GHz unlicensed band or one of the 900
MHz regional bands. Unlicensed radio spectrum is designated by international agreement and
puts the burden of specification adherence on the equipment manufacturer. Users are not
required to have a license demonstrating their technical competence, hence the term unlicensed.

Since unrestricted geographic use is a goal, the 2.4 GHz band is the preferred band due to its
international allocation. There are many unlicensed bands at higher and lower frequencies. The
2. 4 GHz and 900 MHz bands were chosen by the IEEE 802.15.4 standard because of their
propagation characteristics. Propagation refers to the way radio waves behave in the
environment.

900 MHz and 2.4 GHz both have good penetration through walls and ceilings but have a limited
range. Range limitation is desirable to reduce interference. After all, ZigBee is based on
802.15.4, which is a PAN standard.

Moving to desirable features of ZigBee-based systems, installation should be automatic or semi-


automatic so that consumers can easily set up wireless networks.
Additionally, adding new hardware to an existing system should be straightforward.
Since ZigBee replaces wires and other wireless systems, cost must be kept low to make the
change to ZigBee advantageous.

7
ZigBee Technical Market Goals

• 10 kbps to 115 kbps data throughput


• 10 to 75 m coverage range
• Up to 100 collocated networks
• Up to 2 years of battery life on standard alkaline
batteries

Continuing with some technical market goals, ZigBee hardware and networks must
be able to accomplish 10 to 115 kbps data throughput. This represents the actual
amount of data that can be transferred once the protocol overhead is removed.

ZigBee hardware must be able to communicate over a 10 to 75 meter range.


Typical 2.4 GHz hardware has demonstrated 30 meters indoors and over 100
meters outdoors.

Up to 100 ZigBee networks should be able to be co-located and still function.

Network end points as they are called should give up to 2 years of battery life from
standard AA and AAA batteries. End points are typified by such devices as wireless
sensors, monitors or controllers.

8
ZigBee Network Model
One ZigBee Coordinator per Network

ZigBee End Device (RFD or FFD)

ZigBee Coordinator (FFD)

ZigBee Router (FFD)


Mesh Link

Star Link

Let’s examine a typical ZigBee network model.

We mentioned the end point or end device in discussing ZigBee technical market goals. End
devices can be full function devices, meaning that they have the capability to perform all of the
tasks required in a network or can be reduced function devices.

An end device gets its instructions from a ZigBee Coordinator. All ZigBee networks must
include a coordinator, which is a full function device that manages the network.

If the end device is out of range of its coordinator, it can communicate through a router.
The diagram shows what is called a mesh network. The term mesh is used because of the
routers and coordinator have multiple communication path options.

End devices are arranged in what is called a star network around a router or coordinator. This
star arrangement is the typical way that low-cost wireless networks operate. ZigBee maintains
the low cost while adding the power of mesh networking, a feature not found in most wireless
networking standards.

9
How Does ZigBee Compare?

Bluetooth Wi-Fi (WLAN)


ZigBee (WPAN)
(WLAN/WPAN)

• 802.15.4 standard • 802.15.1 standard • 802.11 standard


• 250 kbps • 1 Mbps • Up to 54 Mbps
• TX: 35 mA • TX: 40 mA • TX: 400+ mA
• Standby: 3 uA • Standby: 200 uA • Standby: 20 mA
• 32-60 KB memory • 100+ KB memory • 100+KB memory
• Lighting, sensors, RC • Telecom audio, cable • Enterprise, home access
peripherals replacement points
• Mesh networking • Point to multi-point • Point to multi-point

There are many wireless options available to designers. Let’s compare ZigBee with some of the more popular
standards which share the unlicensed 2.4 GHz band. The parameters listed in the chart include the governing MAC
standard, maximum over the air data rate, typical transmit and standby currents, memory requirements for a typical
device, target applications and networking options.

Bluetooth is a popular standard applied to wire replacement applications. It too is based on an IEEE PAN standard,
802.15.1. Bluetooth operates with a 1 Mbps data rate. Note that Bluetooth and ZigBee have similar transmit
currents, but ZigBee has a significantly lower standby current. This is because devices in Bluetooth networks must
frequently report into the network to maintain synchronization, so they cannot easily drop into a “sleep” mode.

Wi-Fi is a wireless LAN standard, so it requires almost continuous activity by devices in the network. The advantage
of this standard is the tremendous amount of data that can be moved from point to multi-point. Note the transmit and
standby currents. Wi-Fi hardware is designed to operate off a significant power source.

Note that, of the three wireless standards, only ZigBee offers the flexibility of mesh networking.

Also note the reduced memory requirements of ZigBee. ZigBee applications are typically simple. The power is in the
networking and the fact that ZigBee end devices can “sleep” while still maintaining network association.

One of the key points of this chart is to show that wireless standards are built around what are called “use models”
or “applications.” No one standard meets the requirement of all use models. Designers should choose the standard
that most closely meets their application requirements.

10
ZigBee versus Bluetooth

• Bluetooth targets medium data rate continuous duty


– 1 Mbps over the air, ~700 kbps best case data transfer
– File transfer, streaming telecom audio
– Point to multipoint networking

• ZigBee targets low data rate, low duty cycle


– 250 kbps over the air, 60-115 kbps typical data transfer
– Long battery life (weeks to months)
– More sophisticated networking

• Cross over in applications space is about 1 second data rep rate


– > 1 sec favors BT
– < 1 sec favors ZigBee

Let’s examine the comparison of Bluetooth and ZigBee more closely. Both
standards are in the personal area networking category. As you learned previously,
both have similar radios, as evidenced by their transmit currents. The difference
between the two standards is in their target applications.

Bluetooth targets medium data rate, continuous duty applications like file transfer
and streaming telecom audio.

ZigBee on the other hand, targets low data rate, low duty cycle applications. End
point devices do not transmit or receive as frequently in these applications, resulting
in exceptional battery life.

Based on battery life calculations, the crossover point for Bluetooth and ZigBee
applications is at around a 1 second data rep rate. Put another way, if ZigBee and a
Bluetooth device were to transmit the same data once every second, the battery life
would be about the same for both.

11
Question
Match the wireless standards with their features by dragging the letters
on the left to their appropriate locations on the right. Each letter may be
used more than once. Click Done when you are finished.

B Targets low data and low duty cycle


applications

B Offers the flexibility of mesh


A Bluetooth (WLAN/WPAN) networking

A Operates with a 1 Mbps data rate


B ZigBee (WPAN)
Has high data rate, but has a standby
C current of 20mA

Wi-Fi (WLAN) Devices can sleep and still maintain


C B association
Targets medium data rate and continuous
A duty applications

Show
Done Reset Solution

Let’s review the 2.4 GHz wireless options available to designers.

Correct.
Bluetooth (WLAN/WPAN) operates with a 1 Mbps data rate and targets
medium data rate and continuous duty applications. ZigBee (WPAN) targets
low data rate, low duty cycle applications, offers the flexibility of mesh
networking, and devices can sleep and still maintain network association.
Wi-Fi (WLAN) supports high data rates but has a standby current of 20 mA,
requiring a significant power source.

12
Battery Life Examples

Example 1 High-Duty Cycle


• 5 Byte Data Transmission in intervals of 1.28 seconds
• assuming 200 mAh available battery capacity

• Battery lifetime based on Bluetooth: 15 days


• Battery lifetime based on Freescale ZigBee: 33 days

Example 2 Event Driven Applications (security system scenario)


• Network coordinator is on all the time (not battery powered)
• Sensor transmitting every 60 seconds + 10 events per days
• Based on 2 AA batteries

• Battery lifetime based on Bluetooth: 100 days


• Battery lifetime based on Freescale ZigBee: 3559 days or 9.8 years

Let’s look at two battery life examples, one high-duty cycle and one low, to
understand where ZigBee demonstrates extended battery life. This scenario
analysis is based on published data for a typical Bluetooth Radio and Freescale’s
ZigBee solution RFIC and GB60 MCU.

In the first example, we will transfer 5 bytes of data once every 1.28 seconds. In this
scenario, assuming a 200 milliAmp-hour (mAh) battery, a Bluetooth device will last
15 days. An equivalent ZigBee device will last about 33 days.

In the second example, we have the event driven scenario of a security system
sensor. The sensor transmits once a minute to report its status and another 10
times a day when there is some sort of event such a door opening. In this case, the
Bluetooth device will last 100 days. The ZigBee device will last 9.8 years, exceeding
the shelf life of the battery! Clearly, ZigBee is a better choice for such an event
driven application.

13
2.4 GHz PHY Performance

802.15.4 has excellent


performance in low
SNR environments

Bluetooth

ZigBee

Nearly 12 dB better than Bluetooth/FSK

As a final point of comparison, let’s look at 2.4 GHz radio performance. ZigBee, as
defined by the underlying 802.15.4 specification, uses Direct Sequence Spread
Spectrum (DSSS), coding, and half-sine filtered Offset Quadrature Phase Shift
Keying (QPSK) modulation.

This chart shows the Bit Error Rate (BER) performance of various radio
technologies versus Signal to Noise Ratio (SNR).

The BER performance of Bluetooth, with its Frequency shift keying, is shown by the
blue line.

ZigBee, with its DSSS and Offset QPSK modulation is shown by the green line.

Note that ZigBee BER is 12 dB better than the Bluetooth BER that can be obtained
at a given signal-to-noise ratio. This translates directly to range, with ZigBee giving
3 to 5 times the range for the same output power. This is yet another way the
ZigBee conserves battery life.

14
The Challenge of Coexistence

• Potential for interference exists in every unlicensed band

• IEEE 802.11 and 802.15.2 committees are addressing coexistence


issues

Mouse over the bulleted text below to learn more.

• ZigBee/802.15.4 Protocol is very robust


– Clear channel checking before transmission
– Back off and retry if no acknowledgment received
– Duty cycle of ZigBee-compliant device usually extremely low

Coexistence inevitably comes up in discussions of unlicensed band standards.

Both the 802.11 and 802.15.2 committees are reviewing the situation.

ZigBee and 802.15.4 networks are in better shape than most due to their low data
rate and low duty cycle. ZigBee devices will typically operate at 0.1 to 1% duty
cycles. This allows the Carrier Sense Multiple Access (CSMA) scheme to produce
robust results. ZigBee or 802.15.4 devices listen for a clear channel before they
transmit. The CSMA algorithm is part of the 802.15.4 software so the user is
relieved of the burden of creating a collision avoidance scheme.

Move your mouse pointer over the third bulleted point for more information.

15
ZigBee Stack Block Diagram
Application Layer (APL)

Application Application ZigBee IEEE 802.15.4


Object 31 Object 1 defined
Device
… Object
ZigBeeTM Alliance
defined

Application Support Layer


End manufacturer
Security (APS) defined
Service
Provider
Network (NWK) Layer

Medium Access Control


(MAC) Layer
Physical (PHY) Layer
2.4 GHz radio or 868-928 MHz radio

We have discussed ZigBee performance attributes and mentioned the underlying


802.15.4 MAC. Let’s look in more detail at the ZigBee software stack architecture.

If you are familiar with other communications protocol software stacks you will note
some familiar terms: PHY for the physical, or hardware, layer, MAC for the medium
access control layer and NWK for the network layer.

ZigBee is simpler than many protocol stacks, so it requires less software code. The
MAC and PHY are defined by the IEEE 802.15.4 standard, as mentioned before.
The NWK and application layers are defined by the ZigBee Alliance with the actual
application code being supplied by the equipment designer. Let’s look in more detail
at the MAC and PHY as defined by the IEEE standard.

16
IEEE 802.15.4 Standard Basics

• Channel access is via CSMA with collision avoidance and optional


time slotting

• Three bands, 27 channels specified


- 2.4 GHz: 16 channels, 250 kbps
- 868.3 MHz : 1 channel, 20 kbps
- 902-928 MHz: 10 channels, 40 kbps

• Message acknowledgment and an optional beacon structure

• Multi-level security

• Works well for selectable latency for controllers, sensors, remote


monitoring and portable electronics

• Configured for maximum battery life


- has the potential to last as long as the shelf life of most batteries

802.15.4 is a simple packet data protocol for lightweight wireless networks. Many of the
aspects of the design have been used for years in packet radio networks.

Since ZigBee focuses on low data rate and low data rep rate applications, as mentioned
earlier, CSMA is employed to avoid interferers. Simply put, 802.15.4 devices listen before
they transmit. If there is interference, the device either waits for a period of time and tries
again or moves to another channel.

There are 16 channels defined for the 2.4 GHz band. Note that this band can support
significantly higher data rate than the two lower bands.

Message acknowledgment is also available for improved data delivery reliability, and
beacon structures are available to improve latency.

The IEEE 802.15.4 standard defines multiple levels of security.

The 802.15.4 protocol is designed for monitoring and control applications where battery
life is important. 802.15.4 is the source of ZigBee’s excellent battery life.

17
IEEE 802.15.4 MAC Features
• Employs 64-bit IEEE & 16-bit short addresses
– Ultimate network size can be 264 nodes (more than probably needed)
– Using local addressing, simple networks of more than 65,000 (216) nodes can be
configured, with reduced address overhead
• Three devices specified
– Reduced Function Device (RFD)
– Full Function Device (FFD)
– Network coordinator (FFDC)
• Simple frame structure
• Reliable delivery of data
• Supports association/disassociation
• Supports AES-128 security
• Employs CSMA-CA channel access for better coexistence
• Offers Optional superframe structure with beacons, GTS mechanism

802.15.4 employs both IEEE long and short addressing. Short addressing is used in network
management where network IDs are assigned ad hoc. This results in reduced memory
requirements but still allows more than 65,000 network nodes.

As mentioned earlier, three device types are specified: the Reduced Function Device (RFD),
the Full Function Device (FFD), and the network coordinator. These map to the ZigBee
device definitions where an end device is either an RFD or FFD, a router is an FFD, and a
ZigBee coordinator is a network coordinator.

802.15.4 employs a simple frame structure which we will discuss in more detail later. This
structure combined with acknowledgment results in reliable data delivery.

Network association and disassociation are supported as is AES-128 encryption if desired.

As mentioned, the CSMA scheme allows for good coexistence with other equipment. An
optional superframe structure is available for improved latency.

18
Question

Which of the following statements describe the IEEE 802.15.4


standard? Select all that apply and then click Done.

16 channels are defined for the 2.4 GHz band.

802.15.4 is a poor protocol for monitoring and control applications where


battery life is important.

CSMA is employed to avoid interferers.

Multiple levels of security are defined.

Message acknowledgment is available for improved data delivery


reliability, and beacon structures are available for improved latency.

Done

Consider this question regarding the IEEE 802.15.4 standard.

Correct.
16 channels are defined for the 2.4 GHz band and CSMA is employed to
avoid interferers. Message acknowledgment is available to improve data
delivery reliability, and beacon structures are also available to improve
latency. Multiple levels of security are defined. 802.15.4 is configured for
maximum battery life, which makes it an excellent protocol for monitoring
and control applications where battery life is important.

19
MAC Options

• Non-beacon network
- Standard ALOHA CSMA-CA communications
- Positive acknowledgment for successfully received packets

Mouse over the bulleted point below for more information.

• Optional beacon-enabled network


- Superframe structure
• For dedicated bandwidth and low latency
• Set up by network coordinator to transmit beacons at predetermined
intervals
» 15ms to 252sec (15.38ms ∗ 2n where 0 ≤ n ≤ 14)
» 16 equal-width time slots between beacons
» Channel access in each time slot is contention free

Let’s examine the MAC optional features. There are two channel access
mechanisms. Non-beacon operation implies reliance on the CSMA and
acknowledgment features for successful communications.

If better latency is desired, beacon operation can be used. In this mode,


devices are assigned one of 16 time slots between beacons. Beacon
intervals can be from 15 ms up to 252 seconds.

Three security levels are specified. Security options include none, the
network access control list, and AES-128. The later option involves extra
software, which will add to the code size.

Move your mouse pointer over “Optional beacon-enabled network” for more
information.

20
IEEE 802.15.4 Device Types

• Network Coordinator
- Maintains overall network knowledge; most sophisticated of the
three types; most memory and computing power

• Full Function Device (FFD)


- Carries full 802.15.4 functionality and all features specified by the
standard
- Additional memory, computing power make it ideal for a network
router function
- Could also be used in network edge devices where the network
touches other networks or devices that are not IEEE 802.15.4
compliant

• Reduced Function Device RFD)


- Carriers limited (as specified by the standard) functionality to control
cost and complexity
- General usage will be in network edge devices

Let’s examine the three device types in more detail.

The network coordinator is the most sophisticated device. It must manage the
network and, therefore, generally requires the most memory.

The FFD has full 802.15.4 functionality. While an FFD can be an end device, more
often it will be a router. FFD can also be employed as a bridge to other networks. In
this case, it may require more memory and computing power than the network
coordinator. Such a device will generally not be powered by a small battery.

Finally, the RFD carries, as its name implies, a reduced feature set. It only needs to
know of its network coordinator and its closest router. This class of device targets
battery operated end device applications.

21
Data Frame Format
Mouse over the diagram for more information.

• Is one of two most basic and important structures in 15.4.


• Provides up to 104 byte data payload capacity
• Data sequence numbering ensures that packets are tracked
• Robust structure improves reception in difficult conditions
• Frame Check Sequence (FCS) validates error-free data

Let’s examine the 802.15.4 packet structures. The most basic structure is the Data Frame
packet. This structure is used for sending and receiving data.

Note the nesting of the MAC Packet Data Unit, or MPDU, within the PHY Packet Data Unit,
PPDU. The MPDU is also called the PHY Service Data Unit (PSDU).

The PSDU is a maximum of 127 bytes in length. 2 bytes are for the Frame Check Sequence,
FCS.

In addition to the PSDU, the PPDU includes a 4-byte preamble, a 1-byte start of frame
delimiter and a 1-byte frame length.

The MPDU includes 2 bytes of frame control, a 1 byte data sequence number used for
acknowledgment.
4 to 20 bytes are used for address information, which can include both source and
destination information. This leaves a maximum of 104 bytes of actual data.

While the MAC software does the parsing of the data and managing of the address info and
data sequence numbers, it is useful to understand this structure.
Move your mouse pointer over the diagram for more information.

22
Acknowledgment Frame Format
Mouse over the diagram for more information.

• The other most important structure for 15.4.


• It provides active feedback from receiver to sender that packet was received
without error.
• Short packet that takes advantage of standards-specified quiet time
immediately after data packet transmission.

The acknowledgment frame, or ACK, confirms that the data is received


successfully. Frame control and Data sequence are taken from the original
packet. A transmission is considered successful if the ACK frame contains
the same sequence number as the transmitted frame.

Move your mouse pointer over the diagram for more information.

23
MAC Command Frame Format
Mouse over the diagram for more information.

• Is a mechanism for remote control and configuration of client nodes


• Allows a centralized network manager to configure individual clients no
matter how large the network

The command frame is used for remote control. Instead of data as the
payload, this frame contains command information. A command type byte is
added as well. The MPDU must still be 127 bytes or less as with the Data
frame.

Move your mouse pointer over the diagram for more information.

24
Beacon Frame Format
Mouse over the diagram for more information.

• Beacons add a new level of functionality to a network.


• Client devices can wake up only when a beacon is to be broadcast, listen
for their address, and if not heard, return to sleep.
• Beacons are important for mesh and cluster tree networks to keep all of the
nodes synchronized without requiring nodes to consume precious battery
energy listening for long periods of time.

The beacon frame is much more complex as it must convey the


synchronization and guaranteed time slot (GTS) information to all of the
devices in the network.

Move your mouse pointer over the diagram for more information.

25
Question
Match the frame formats to their functions by dragging the letters on the
left to their appropriate locations on the right. Click Done when you are
finished.

Conveys synchronization and GTS


D information to all the devices in the
A Data Frame Format network

B ACK Frame Format B Confirms that data is received


successfully

C MAC Command Frame Format A Sends data

Contains information that is used for


D Beacon Frame Format C remote control

Show
Done Reset Solution

Consider this question regarding the frame formats.

Correct.
The Data Frame Format is used for sending data. The ACK Frame Format
confirms that data is received successfully. The MAC Command Frame
Format contains command information that is used for remote control. The
Beacon Frame Format conveys synchronization and GTS information to all
the devices in the network.

26
ZigBee NWK Layer

Application Layer (APL)

Application Application ZigBee IEEE 802.15.4


Object 31 Object 1 defined
Device
… Object
ZigBeeTM Alliance
defined

Application Support Layer


End manufacturer
Security (APS) defined
Service
Provider
Network (NWK) Layer

Medium Access Control


(MAC) Layer
Physical (PHY) Layer
2.4 GHz radio or 868-928 MHz radio

You may recall from the ZigBee Stack block diagram that the NWK layer resides
above the MAC and PHY.

Since the ZigBee protocol stack is relatively simple compared with other
communications protocol stacks, what is called the ZigBee Network layer often
refers to the application layer (APL) as well. This architecture is the starting point for
discussion of the network layer.

27
ZigBee Architecture Objectives
Mouse over the bulleted text for more information.

• Be suitable to support all target environments and applications that are


in the scope of ZigBee:
– Ensure that devices are efficient in their use of the available bandwidth
• Provide a platform and implementation for wirelessly networked
devices:
– Make it easy to design and develop ZigBee devices
– Reduce today’s cost of building wireless solutions
• Ensure interoperability through the definition of application profiles:
– Enable out-of-the-box interoperable devices where desired by manufacturers
• Define the ZigBee network and stack models:
– Define ZigBee device types and core functions
– Define layers and modules with their interfaces, and services
• Provide the framework to allow a separation of concerns for the specification,
design, and implementation of ZigBee devices:
– Help to create and coordinate consistent use of terms in ZigBee
• Allow future extension of ZigBee:
– Enable both extension of the basic ZigBee platform as well as ZigBee application
profiles

The ZigBee architecture has other objectives beyond simply enabling low cost, low
power, reliable devices for monitoring and control.

The architecture must support all the target applications and environments within
the scope of the marketing requirements.

The architecture must allow for the easy design and development of the low cost
and low power devices promised.

Interoperability must be addressed as it is one of the main reasons for


standardization.

The architecture should define the stack in such a way that terminology is
standardized.
The architecture must also allow for upgrades and extensions in the future.
Move your mouse pointer over the bulleted points for more information.

28
Wireless Networking Basics

• Network scan: ability to detect active channels within a local


Personal Operating Space (POS)

• Creating/Joining a PAN: ability to create a network on an unused


channel or to join an existing network within the POS

• Device discovery: ability to identify devices on active channels within


the PAN

• Service discovery: ability to determine supported services on given


devices within the PAN

• Binding: ability to perform application level command/control


messaging

Let’s examine some commonly used terms in wireless networking. These terms
relate directly to network layer features.

Network scan is the ability of a device to detect active channels within its
communications range. This range is often called, in personal area networking, the
Personal Operating Space (POS).

Creating is the ability to form a network on unused channels within the POS. In the
case of ZigBee, the network is a PAN. Joining is the ability to join a network within
the POS.

Device discovery is the ability to identify the devices on active channels in the PAN.

Service discovery is the ability to determine what features or services are supported
on devices within a network.

Binding is the ability to communicate at the application level with other devices in
the network.

29
Wireless Networking Assumptions

Mouse over the bulleted text for more information.

• Devices are pre-programmed for their network function:


- Coordinator scans to find an unused channel to start a network.
- Router (mesh device within a network) scans to find an active channel to
join, then permits other devices to join.
- End device will always try to join an existing network.

• Devices discover other devices in the network providing


complementary services:
- Service discovery can be initiated from any device within the network.
- Discovery can be performed via Gateways from devices outside the
network, but this will only be implemented in future ZigBee releases.

• Devices can be bound to other devices offering complementary


services:
- Binding provides a command and control feature for specially identified sets
of devices.

Network formation and joining is based on some assumptions.

First, devices are pre-programmed for their network function. End devices will
always try to join an exiting network. Coordinators will always try to find an unused
channel and form a network.

Devices discover other devices and join in the network to provide complementary
services. For example, a ZigBee light control device will discover only a ZigBee
lighting network because that is all that it understands. Devices can; however, be
programmed to function in multiple network types.

The same holds for binding. Devices can only talk to devices in a complementary
network.

Move your mouse pointer over the bulleted points for more information.

30
ZigBee Network Routing Features

Star Network Cluster Tree Mesh Network Routing

• Supports a single • Permits “netmask” • Employs a simplified version of Ad Hoc


ZigBee coordinator style message On Demand Distance Vector Routing
with one or more routing down or up (AODV). This is an Internet Engineering
ZigBee end devices the tree based on Task Force (IETF) Mobile Ad Hoc
(up to 65,536 in the destination Networking (MANET) submission
theory) address
• Flooding is used to determine paths
from source to destination in the mesh

• Route Replies determine viable paths


in the mesh

• Routing tables record known paths.

We have mentioned that mesh networking is one of ZigBee’s strong points. Let’s
look at the full list of ZigBee network possibilities.

The star network is the most simple network topology. This topology has one
coordinator networked with one or more end devices. Remember that an end device
communicates only with a router or coordinator, not directly to another end device.
A TV remote control is a simple example of a star network.

A more complex network topology is called a cluster tree. This is similar to computer
networking where devices branch off of a tree, the network backbone. Star networks
can be branches in a cluster tree network.

In mesh networking, routing paths are not as constrained as in the cluster tree
topology. Mesh networking permits path formation from any source to any
destination device. There can be multiple paths for device communications and the
viable paths are maintained in the network routing table.

31
Application Support Features
Mouse over the bulleted text for more information.
• Profile: an agreement on a series of messages defining an application
space (for example, “Home Controls – Lighting”)

• Endpoint: a physical dimension added to a single ZigBee radio that


permits support for multiple applications, addressed by the Endpoint
number (0-31)

• Interface: a logical extension, defined per Endpoint, which permits


advertisement of multiple Profiles per Endpoint (to support proprietary
extensions, backward compatibility and other application needs)

• Key Relationships:
– Maximum of 30 Endpoints per ZigBee device (0 is reserved to
describe the device itself and 31 is reserved for broadcast
messaging to all endpoints)
– Maximum of 8 Interfaces per Endpoint
– One Profile described per Interface

As we discussed under binding, information exchange can only occur between


devices with complementary services.These complementary services are defined
by application support features.

Profiles are used to define a device’s application capability and drive the application
details. An example of a profile would be Home Control—Lighting.

Endpoints are the physical dimensions added to a ZigBee device which permit
multiple application support.

Interfaces are defined per endpoint and allow such things as extra proprietary
capability extensions and backwards compatibility.

Move your mouse pointer over the bulleted points for more information.

32
Question
Match the wireless networking terms to their definitions by dragging the
letters on the left to their appropriate locations on the right. Click Done
when you are finished.

Ability to identify the devices on


A Network scan C active channels in the POS

Ability to communicate at the application


B Creating a PAN E level with other devices in the network

Ability to determine what features are


C Device discovery D supported on devices within a network

A Ability to detect active channels


D Service discovery within a local POS

B Ability to form a network on unused


E Binding channels within the POS

Show
Done Reset Solution

Let’s review some terms that are commonly used in wireless networking.

Correct.
Network scan is the ability for a device to detect active channels within its
communications range (local POS). Creating a PAN is the ability to form a
network on unused channels within the POS. Device discovery is the ability
to identify the devices on active channels in the POS. Service discovery is
the ability to determine what features or services are supported on devices
within a network. Binding is the ability to communicate at the application
level with other devices in the network.

33
Module Summary

• ZigBee Alliance goals, target markets, and applications


• ZigBee comparisons with other wireless standards
• Basics of the IEEE 802.15.4 standard
• Basics of the ZigBee software stack

This module provided an introduction of the ZigBee Alliance networking


standard, its underlying technology, and its target markets.

In this module, we discussed the ZigBee Alliance and examined its goals,
target markets, and applications. A major goal of the ZigBee Alliance is to
promote the ZigBee standard as a protocol for allowing interoperability
between devices manufactured by different companies. The ZigBee
standard is tailor-made for monitoring and control applications markets such
as building automation, personal health care, industrial control and lighting,
and commercial control. Because of their low data rates and demand driven
nature, high-end remote controls for consumer electronics and human
interface devices such as keyboards, mice and joysticks are also good fits.

We compared ZigBee to other wireless standards and delved into the


technology which underlies the standard, in particular, the IEEE 802.15.4
WPAN standard and the ZigBee Network standard. Of the three wireless
standards, only ZigBee offers both the flexibility of mesh networking and
reduced memory requirements.

34
1

Dezvoltarea software a SAI

Prof. Dr. Ing Sever Paşca


Laboratorul de Electronică şI Informatică Medicală
Catedra de Electronică Aplicată şi Ingineria Informaticii
Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Universitatea POLITEHNICA din Bucureşti
Dezvoltarea software a SAI 2

Conţinutul cursului
 Enunţul problemei

 Problematica proiectării software a SAI

 Software-ul de sistem tradiţional

 Cerinţe noi pentru software-ul de sistem

 Dezvoltarea software-ului de sistem

 Concluzii
Dezvoltarea software a SAI 3

Problema
 Tradiţional, majoritatea produselor software înglobate /
dedicate / încapsulate (embeded) au fost produse fără
suportul software-ului de sistem.
 Când s-a folosit software de sistem, a fost constituit cel mult
din drivere de dispozitiv sau sisteme de operare.
 O dată cu extinderea necesităţii de comunicare cu fir sau
fără fir, software-ul înglobat a început să utilizeze software
de nivel mediu (middleware) pentru a ascunde detaliile
implementării comunicaţiilor de nivel coborât.
 Inteligenţa ambientală este o tendinţă nouă de dezvoltare a
sistemelor înglobate tradiţionale cu o viziune proprie şi
cerinţe specifice suplimentare faţă de sistemele tradiţionale.
Dezvoltarea software a SAI 4

Problema (cont.)
 Viziunea inteligenţei ambientale:
 Aplicaţiile vor fi din ce în ce mai distribuite;

 Aplicaţiile trebuie să fie adaptive la schimbările mediului


în care rulează;
 Aplicaţiile trebuie să se reconfigureze în acord cu
preferinţele diferiţilor utilizatori.

 Vom discuta în continuare cerinţele impuse de această


viziune a inteligenţei ambientale asupra software-ului de
sistem precum şi câteva din soluţiile propuse ca răspuns la
aceste cerinţe mereu crescânde pentru software-ul de
sistem.
5

Problematica proiectării software a SAI

Stadiul implementării sistemelor ambientale inteligente


Abordarea proiectării şi implementării sistemelor înglobate pentru SAI
Principalele provocări generale ale realizării de aplicaţi pentru SAI
Scopul şi componentele software-ului de sistem
Modalităţi de tratare a complexităţii sistemelor
Terminologie
Dezvoltarea software a SAI 6
Problematica proiectării software a SAI

Stadiul implementării sistemelor ambientale inteligente


 Unii spun, discutabil, că inteligenţa ambientală este cel mai mult
implementată în autoturisme:
 Diferite şi numeroase sisteme inteligente au fost integrate pentru
confortul utilizatorilor: controlul motorului, computerul de bord,
navigare, climatizare, multimedia;
 Succesul în acest domeniu a fost posibil deoarece fiecare
producător are controlul complet asupra tuturor subsistemelor care
trebuie controlate de aplicaţii.
 În domeniul inteligenţei ambientale pentru sistemele tip “home” şi “office”
rezultatele implementărilor sunt mai modeste:
 Au o mai mică întindere, complexitate şi diversificare;
 Cauza este faptul că sunt mult mai mulţi jucători şi niciodată un
singur producător nu poate controla întregul sistem;
 Integrarea subsistemelor este o piedică serioasă în dezvoltarea
aplicaţiilor de inteligenţă ambientală.
Dezvoltarea software a SAI 7
Problematica proiectării software a SAI

Abordarea proiectării şi implementării


sistemelor înglobate pentru SAI
 Startul nu diferă faţă de cel pentru sistemele înglobate tradiţionale.
 Sunt necesare aceleaşi cunoştinţe, aptitudini şi instrumente uzuale:
programarea la nivel coborât (limbaj de asamblare), programare cu
resurse minimale, optimizări de performanţă, programare şi depanare în
circuit.
 Dar sunt şi cerinţe particulare impuse de viziunea inteligenţei ambientale
în care aplicaţiile trebuie să se schimbe şi să se adapteze instantaneu la
contextul variabil fără să deranjeze utilizatorul: reprogramare rapidă,
reconfigurare hard şi soft automată şi transparentă pentru utilizator,
cooperare şi conlucrare independentă de utilizator între diversele
componente distribuite hard şi soft ale sistemului.
Dezvoltarea software a SAI 8
Problematica proiectării software a SAI

Principalele provocări generale


ale realizării de aplicaţi pentru SAI

 Aplicaţiile sunt de obicei distribuite şi rulează pe câteva


obiecte în acelaşi timp.

 Mediul în care rulează aplicaţia este extrem de dinamic:


 Parţial datorită mobilităţii obiectelor;

 Parţial datorită sensibilităţii aplicaţiei la mediu.


Dezvoltarea software a SAI 9
Problematica proiectării software a SAI

Scopul şi componentele software-ului de sistem


 Rolul este să susţină şi să uşureze dezvoltarea aplicaţiilor concrete.
 Uneori software-ul de sistem este numit mediul de execuţie deoarece
împreună cu platforma hardware asigură mediul în care aplicaţia este
executată.
 Din punct de vedere al dezvoltatorului de software, software-ul de
sistem este numit deseori platforma software. Aceeaşi platformă poate
fi reutilizată pentru diferite produse şi diferite aplicaţii.
 Teme uzuale ale software-ului de sistem pentru sisteme distribuite
sunt: comunicare la distanţă, toleranţă la defecte, acces la distanţă la
informaţii, disponibilitate ridicată, securitate etc.
 Teme uzuale ale software-ului de sistem pentru sisteme mobile sunt:
reţele mobile, acces mobil la informaţii, suport pentru aplicaţii adaptive,
tehnici de sistem de economisire a energiei şi sensibilitate la locaţii, etc.
 Aceste funcţii pot fi utilizate de mai multe aplicaţii şi este o necesitate de
a fi implementate o singură dată.
Dezvoltarea software a SAI 10
Problematica proiectării software a SAI

Modalităţi de tratare a complexităţii sistemelor


 Utilizarea nivelurilor (layer-elor)
 Din ce în ce mai multe nivele au fost introduse între hardware şi
aplicaţie;
 Graniţa dintre software-ul de sistem şi software-ul de aplicaţie este
într-o permanentă modificare şi variază de la caz la caz.
 Arhitectura software
 Devine din ce în ce mai importantă pentru a face situaţiei din ce în
ce mai complexe în cazul SAI.
 Ea defineşte organizarea fundamentală a software-ului, în special
componentele sistemului, relaţiile între ele şi mediul în care sistemul
va opera.
 Deşi funcţionalitatea este raţiunea pentru care un sistem există,
deciziile de bază privind proiectarea arhitecturii sunt cerinţele
nefuncţionale. Acestea sunt, pentru un sistem distribuit, legate de
asigurarea calităţii serviciilor – QoS, incluzând printre altele
regularitatea, disponibilitatea, securitatea, garantarea lucrului în timp
real, sincronizarea fluxurilor de date multimedia etc.
Dezvoltarea software a SAI 11
Problematica proiectării software a SAI

Terminologie
 Următorii termeni sunt deseori interschimbaţi deoarece sunt
foarte apropiaţi şi partajează aceeaşi viziune a unui mediu
cu spaţii inteligente şi obiecte inteligente:
 Ambient Intelligence – Inteligenţă ambientală

 Ubiquitous Computing – Calcul/calculator omniprezent

 Pervasive Computing – Calcul/calculator răspândit

 Inteligenţa ambientală va fi discutată în continuare din punct de


vedere al dezvoltării software-ului de sistem.
12

Software-ul de sistem tradiţional

Structura software-ului de sistem

Pachete de protocoale de reţea

Sistemul de operare

Software de nivel mediu


Dezvoltarea software a SAI 13
Software-ul de sistem tradiţional

Structura software-ului de sistem

 Tradiţional, software-ul de sistem este divizat în trei nivele:

 Software de nivel mediu (Middleware)

 Sistemul de operare (Operating system)

 Pachete de protocoale de reţea (Network protocol

stacks)
Dezvoltarea software a SAI 14
Software-ul de sistem tradiţional

Pachete de protocoale de reţea


 În ultimii ani, sistemele înglobate au început să suporte
diferite şi multiple tipuri de comunicaţii.
 Un pachet de protocoale de reţea include serviciile şi
funcţiile necesare pentru implementarea completa a unei
reţele (stabilirea conexiunii, schimbarea de date, securizare
etc.)

 De exemplu, telefoanele mobile au deseori, pe lângă


suportul pentru comunicaţii în una sau mai multe reţele
celulare, şi suport pentru comunicaţii fără fir (wireless) pe
distanţe mici, cum ar fi bluetooth sau infraroşu. Astfel,
Dezvoltarea software a SAI 15
Software-ul de sistem tradiţional

Sistemul de operare
 Scopul sistemului de operare este de a uşura şi de a eficientiza
utilizarea substratului hardware prin asigurarea unui set de servicii care
sunt necesare în general tuturor sau majorităţii dezvoltatorilor de
aplicaţii.
 Tipuri de servicii care pot fi incluse în sistemul de operare: execuţia
programelor, operaţii de intrare/ieşire, manipularea fişierelor de sistem,
comunicaţii, detecţia erorilor, alocarea resurselor, gestiune şi protecţie.
 Sunt numeroase tipuri de sisteme de operare, de la mininuclee de timp
real până la sisteme de operare complete de uz general, depinzând de
necesităţile dezvoltatorilor şi capacităţile platformelor.
 Uneori sistemele de operare sunt combinate, de exemplu un kernel
(nucleu) de timp real care se ocupă de funcţionalităţile care necesită un
răspuns în timp real şi un sistem de operare general care se ocupă de
interfaţa utilizator.
Dezvoltarea software a SAI 16
Software-ul de sistem tradiţional

Software de nivel mediu (Middleware)


 Middleware-ul este definit ca software-ul de sistem reutilizabil care
umple golul între cerinţele funcţionale de nivel înalt ale utilizatorilor şi
funcţiile de nivel coborât implementate de sistemul de operare şi
pachetele de protocoale de reţea.
 Middleware-ul ascunde pentru dezvoltatorii de aplicaţii distribuţia şi
componenţa infrastructurii (hardware-ului) de bază. De asemenea, el
permite evoluţia independentă a a aplicaţiilor şi a infrastructurii.
 Servicii tipice middleware sunt: servicii de nume, directoare de resurse,
protocoale de descoperire, protocoale de acces la resurse, certificarea
cu chei publice, managementul cheilor, notificarea evenimentelor.
 În timp ce sistemul de operare ascunde aplicaţiei platforma unui
dispozitiv, nivelul middleware a fost dezvoltat pentru a ascunde mai
multe dispozitive care cooperează pentru a asigura un serviciu de care
are nevoie utilizatorul.
17

Cerinţe noi pentru software-ul de sistem

Modele pentru inteligenţa ambientală


Model simplificat cu trei nivele
Interfeţele software-ului de sistem
Interacţiunea cu aplicaţia
Interacţiunea cu platforma hardware
Interacţiunea cu alte dispozitive
Interacţiunea cu utilizatorul
Divizarea responsabilităţilor
Dezvoltarea software a SAI 18
Cerinţe noi pentru software-ul de sistem

Modele pentru inteligenţa ambientală


 Pentru stabilirea constrângerilor software-ului de sistem se
foloseşte un model conceptual pentru inteligenţa
ambientală/calcul omniprezent/calcul răspândit.
 Există mai multe modele inspirate din modelul OSI la care s-
au adăugat alte câteva nivele în special pentru modelarea
utilizatorului.
 În continuare vom folosi un model simplificat cu doar trei
nivele, suficient pentru scopul nostru:
 Nivelul fizic

 Nivelul resurselor

 Nivelul abstract
Dezvoltarea software a SAI 19
Cerinţe noi pentru software-ul de sistem

Model simplificat cu trei nivele


 Nivelul fizic (Physical layer)
 Garantează că entităţile sunt compatibile fizic între ele (caracteristici
electrice, mecanice şi fizice compatibile)
 Dispozitivul trebuie să aibă mijloace de a comunica cu utilizatorul
astfel încât utilizatorul şi mediul să poate recepţiona şi transmite
semnale
 Nivelul resurse (Resource layer)
 Defineşte ce resurse logice sunt disponibile, adică entităţile pentru
procesare, memorare şi intrare/ieşire
 Entităţile utilizator de pe acest nivel sunt asociate caracteristicilor
personale ale utilizatorului (limbă şi alte abilităţi şi comportamente)
 Nivelul abstract (Abstract layer)
 Conţine software-ul de aplicaţie şi modelele mentale ale utilizatorului
 Scopul e de a menţine o armonie între judecata şi aşteptările
utilizatorului şi logica şi comportarea aplicaţiei
Dezvoltarea software a SAI 20
Cerinţe noi pentru software-ul de sistem

Model simplificat cu trei nivele (cont.)


 Software-ul de sistem este situat în nivelurile resurse şi fizic.
 Componentele nivelului fizic controlează componentele hardware.
 Componentele nivelului resurse ascund dezvoltatorilor aplicaţiei detaliile
platformei.
 De obicei, sistemul de operare este inclus în nivelul resurse iar nivelul
fizic este hardware. În cazul sistemelor ambientale inteligente, această
delimitare nu poate fi făcută deoarece:
 În sistemele înglobate, nivelul fizic include funcţionalităţi software
necesare pentru interfaţarea cu hardware-ul;
 În sistemele înglobate, partiţionarea hardware/software variază
deseori în funcţie de cerinţele sistemului, multe din funcţionalităţi
putând fi implementate atât hardware cât şi software;
 Sistemele de operare sunt foarte diferite şi unele implementări nu
necesită un sistem de operare tradiţional ci doar alte metode care să
implementeze aceleaşi funcţionalităţi.
Dezvoltarea software a SAI 21
Cerinţe noi pentru software-ul de sistem

Interfeţele software-ului de sistem


Dezvoltarea software a SAI 22
Cerinţe noi pentru software-ul de sistem

Interfeţele software-ului de sistem (cont.)


 Software-ul de sistem are patru tipuri de interfeţe, 2 cu acelaşi dispozitiv
şi două pentru comunicaţia cu exteriorul:
 Cu hardware-ul aceluiaşi dispozitiv − software-ul de sistem
controlează hardware-ul;
 Cu aplicaţia aceluiaşi dispozitiv − software-ul de sistem ascunde
aplicaţiei detaliile platformei;
 Cu alte dispozitive din reţea − software-ul de sistem preia
responsabilitatea comunicaţiei între nivelul fizic şi nivelul resurse cu
alte dispozitive din reţea;
 Cu utilizatorul − software-ul de sistem preia responsabilitatea
comunicaţiei între nivelul fizic şi nivelul resurse cu utilizatorul.
 În continuare vom studia caracteristicile necesare software-ului de
sistem impuse de modificările în relaţia cu elementele cu care software-
ul de sistem trebuie să coopereze.
Dezvoltarea software a SAI 23
Cerinţe noi pentru software-ul de sistem

Interacţiunea cu aplicaţia
 Cerinţele speciale ale SAI legate de conexiunea cu aplicaţia
vin din modificările din ce în ce mai accentuate ale tipurilor
de cerinţe pe care le au aplicaţiile. De asemenea, aceste
cerinţe se pot schimba pe parcursul execuţiei aplicaţiei.
 Una din deciziile majore în proiectare este delimitarea
responsabilităţilor între aplicaţie şi sistemul de operare.
Deoarece, de obicei, aplicaţia hotărăşte această graniţă,
sistemul de operare trebuie să se poată adapta la orice
doreşte aplicaţia.
 Varianta tradiţională în care scopul urmărit de middleware
este ca, pentru aplicaţie, tehnologia de bază să fie total
transparentă, nu este adecvată pentru SAI deoarece
aplicaţia trebuie să aibă grijă de mediul înconjurător.
Dezvoltarea software a SAI 24
Cerinţe noi pentru software-ul de sistem

Interacţiunea cu aplicaţia (cont.)


 Responsabilităţi impuse software-ului de sistem de interacţiunea cu
aplicaţia:
 Să fie capabil să ruleze una sau mai multe aplicaţii şi să le satisfacă
cerinţele calităţii serviciilor (QoS);
 Să fie capabil să ruleze o aplicaţie distribuită având părţi care
rulează în alte dispozitive din reţea;
 Să suporte, în funcţie de necesităţile aplicaţiei, controlul centralizat
sau distribuit a dispozitivelor;
 Să ascundă aplicaţiei detaliile platformei astfel încât aplicaţia să
poată fi acţionată independent de posibilităţile platformei şi ale
mediului de execuţie;
 Să dea aplicaţiei posibilitatea să selecteze şi să configureze
serviciile corespunzător necesităţilor sale;
 Sa fie capabil să reconfigureze sistemul pentru a rula aplicaţii noi;
 Sa fie capabil să download-eze aplicaţii noi în timpul execuţiei.
Dezvoltarea software a SAI 25
Cerinţe noi pentru software-ul de sistem

Interacţiunea cu platforma hardware


 Tradiţional, software-ul este prea monolitic şi este scris cu prea multe
presupuneri asupra resurselor hardware şi software.
 In SAI acest lucru se va schimba deoarece dispozitivele, obiectele şi
oamenii vor fi în permanentă mişcare şi vor crea şi permanent modifica
setul de resurse.
 Pentru rezolvarea acestei probleme există trei cerinţe complementare:
 Aplicaţia trebuie împărţită în mici module şi distribuită pe hardware-
ul omniprezent;
 Trebuie să existe formate de interschimbare a datelor în care datele
se autodescriu iar mesajele îşi găsesc calea de la expeditor la
destinatar într-un mod autonom şi sigur;
 Trebuie să existe mecanisme prin care dispozitivele să îşi anunţe
posibilităţile lor astfel încât aplicaţiile să fie informate de resursele
disponibile.
Dezvoltarea software a SAI 26
Cerinţe noi pentru software-ul de sistem

Interacţiunea cu platforma hardware (cont.)


 Dezvoltările în electronică constituie un factor de progres în inteligenţa
ambientală: miniaturizarea, densitatea de integrare, nanotehnologiile,
creşterea benzii de comunicaţii, creşterea capacităţii de memorare,
micşorarea costurilor procesărilor.
 Cu cât platformele au mai multe resurse de împărţit, cu atât trebuie să
suporte aplicaţii din ce în ce mai complexe. În astfel de sisteme este
greu să prevezi dinainte toate condiţiile, de aceea este nevoie de un
sistem de management al resurselor pe timpul execuţiei care să asigure
utilizatorului un nivel agreabil al performanţelor.
 Când aplicaţiile sunt distribuite, performanţele lor nu depind doar de
performanţele unui singur dispozitiv, ci de suma/combinaţia
performanţelor individuale ale tuturor dispozitivelor.
Dezvoltarea software a SAI 27
Cerinţe noi pentru software-ul de sistem

Interacţiunea cu platforma hardware (cont.)


 Un aspect foarte important al viziunii inteligenţei ambientale
este faptul că dispozitivele vor avea din ce în ce mai multă
grijă faţă de mediul lor ambiant.
 Există două posibilităţi de rezolvare a acestei probleme fără
a cere utilizatorului informaţia necesară:
 Fie dispozitivul obţine aceste informaţii comunicând cu
alte dispozitive;
 Fie dispozitivul îşi foloseşte proprii senzori pentru a
detecta, percepe şi măsura mediul ambiant.
 Lucrul cu senzorii este o activitate critică în timp: fluctuaţiile
şi jitter-ele în timp creează probleme în prelucrarea
semnalelor, măsurătorile neputând fi efectuate sau dând
valori eronate.
Dezvoltarea software a SAI 28
Cerinţe noi pentru software-ul de sistem

Interacţiunea cu platforma hardware (cont.)


 Provocarea legată de platforma hardware este asigurarea
mijloacelor de control a entităţilor fizice din dispozitiv. Pentru
aceasta, software-ul de sistem trebuie să asigure:
 Controlul diferitelor tipuri de senzori;

 Scalabilitatea la diferite tipuri de platforme care pot avea


posibilităţi diferite;
 Administrarea sau prevenirea supraîncărcărilor în
condiţiile în care cerinţele aplicaţiilor se schimbă pe
parcursul execuţiei lor;
 Folosirea avantajelor hardware-ului specializat atunci
când el este disponibil.
Dezvoltarea software a SAI 29
Cerinţe noi pentru software-ul de sistem

Interacţiunea cu alte dispozitive


 Software-ul de sistem are grijă de transmisia fizică a datelor
între hardware şi celelalte dispozitive din reţea. În plus, el
ascunde detaliile calculului distribuit al altor niveluri cum ar fi
rezervarea resurselor de comunicare şi alte responsabilităţi
legate de conexiunile securizate.
 Problema conectării la alte dispozitive constă în faptul că
utilizatorul se poate mişca astfel încât se pot crea noi
conexiuni şi pierde conexiuni vechi. În plus, pentru unii
problema securităţii conexiunii trebuie luată în considerare.
 Dezvoltatorii software-ului de sistem nu trebuie să facă nicio
presupunere despre posibilităţile celorlalte dispozitive sau
ale reţelei.
Dezvoltarea software a SAI 30
Cerinţe noi pentru software-ul de sistem

Interacţiunea cu alte dispozitive (cont.)


 Provocările induse de conectarea la alte dispozitive sunt:
 Conectarea la diferite tipuri de reţele;

 Menţinerea mai multor conexiuni în acelaşi timp;

 Asigurarea securităţii conexiunii;

 Menţinerea conexiunii când utilizatorul (şi dispozitivul)


depăşeşte limitele reţelei care asigură o conexiune
activă;
 Tratarea conexiunilor pierdute şi a erorilor în alte
dispozitive;
 Descoperirea serviciilor şi dispozitivelor disponibile când
se schimbă mediul de execuţie.
Dezvoltarea software a SAI 31
Cerinţe noi pentru software-ul de sistem

Interacţiunea cu utilizatorul
 Implementarea fizică a unui dispozitiv determină ce modalităţi de
interfaţare cu utilizatorul vor fi disponibile.
 În viziunea inteligenţei ambientale, elemente de calculator (procesor,
memorie etc.) vor fi integrate în toate tipurile de obiecte (scaun, masă,
uşă etc.). Interfaţa cu utilizatorul nu este vizibilă dar utilizarea
computerului/software-ului înglobat este implicită atunci când obiectul
este utilizat ca parte a activităţii normale.
 Pe nivelul mai ridicat, nivelul abstract, recunoaşterea utilizatorului
devine importantă deoarece:
 Drepturile de acces se bazează pe identitatea utilizatorului;
 Interfaţa utilizator trebuie să se adapteze preferinţelor personale ale
fiecărui utilizator.
 Recunoaşterea utilizatorului este indicat să se facă folosind metode
biometrice pentru a evita necesitatea memorării de către utilizator a
parolelor, codurilor pini etc.
Dezvoltarea software a SAI 32
Cerinţe noi pentru software-ul de sistem

Interacţiunea cu utilizatorul (cont.)


Soluţii pentru rezolvarea problemei preferinţelor utilizatorului:
 În cazul dispozitivelor personale, folosite de un singur utilizator:
 Dispozitivul poate să stea în permanenţă personalizat pentru
utilizator care poate să modifice setările conform preferinţelor sale;
 În cazul dispozitivelor cu utilizare publică dar care sunt utilizate de un
singur utilizator la un moment dat (problema principală constă în
memorarea preferinţelor fiecărui utilizator):
 Fiecare echipament recunoaşte utilizatorul şi memorează
preferinţele şi setările specifice lui pentru echipamentul respectiv;
 Fiecare utilizator are un card de memorie (de orice tip) care
memorează preferinţele şi setările sale şi care sunt transmise
fiecărui echipament care începe să fie utilizat de către utilizator;
 În cazul dispozitivelor cu utilizare publică şi care sunt folosite de câţiva
utilizatori în acelaşi timp:
 Fără utilizarea unei tehnologii reale avansate pare că este
imposibilă adaptarea interfeţei la fiecare utilizator în acelaşi timp.
Dezvoltarea software a SAI 33
Cerinţe noi pentru software-ul de sistem

Interacţiunea cu utilizatorul (cont.)


 Provocările legate de conexiunea cu utilizatorul sunt legate
de faptul că software-ul de sistem trebuie să asigure servicii
personalizate utilizatorului astfel încât el nu trebuie să facă
nicio presupunere legată de posibilităţile utilizatorului.
Dezvoltarea software a SAI 34
Cerinţe noi pentru software-ul de sistem

Divizarea responsabilităţilor
 Principala grijă în toate cele patru interfeţe ale software-ului
de sistem este divizarea responsabilităţilor:
 Pe de o parte, software-ul de sistem trebuie să asigure
unele servicii aplicaţiei în mod automat, dar pe de altă
parte, uneori aplicaţia trebuie să ajusteze platforma
conform cerinţelor sale;
 Uneori utilizatorul doreşte să controleze dispozitivul şi să
poată alege modul de comunicare cu dispozitivul. Alteori,
utilizatorul se aşteaptă ca unele adaptări ale
dispozitivului să aibă loc în mod automat.
 Similar, în comunicarea cu alte dispozitive şi cu
hardware-ul, sunt importante răspunsurile la întrebări de
genul “ce se presupune” sau “cine controlează”
interacţiunea.
35

Dezvoltarea software-ului de sistem

Probleme la dezvoltarea aplicaţiilor pentru SAI

Soluţia: proiectarea arhitecturii software

Adaptabilitatea SAI

Adaptarea la modificările cerinţelor aplicaţiei şi utilizatorului

Adaptarea la totalul resurselor hardware

Adaptarea la modificarea mediului de execuţie


Dezvoltarea software a SAI 36
Dezvoltarea software-ului de sistem

Probleme la dezvoltarea aplicaţiilor pentru SAI


Experienţa reală a delimitat câteva probleme care trebuie avute în vedere în
proiectarea aplicaţiilor care implementează viziunea inteligenţei
ambientale:
 Modelul tradiţional în care componentele sunt dezvoltate separat şi apoi
integrate în sistem nu funcţionează în SAI. Integrarea trebuie avută în
vedere la implementarea oricărei componente a SAI.
 Defectele trebuie tratate ca o parte normală în execuţia unei aplicaţii şi
nu ca o excepţie, deoarece ele apar mult mai des deoarece aplicaţiile
sunt distribuite şi dinamice.
 Măsurarea tradiţională a performanţelor unui sistem (biţi pe mesaj,
latenţă, rată de transfer, etc) nu dezvăluie performanţa reală a unui SAI.
Evaluări orientate mai mult pe utilizator (uşurinţa instalării, durata de
restartare după întreruperea alimentării, etc.) sunt mult mai greu de
măsurat.
 Valoarea unui sistem din punct de vedere al inteligenţei ambientale
trebuie măsurată prin impactul său asupra utilizatorului, dar nu există
încă nicio măsurare directă a unui astfel de parametru.
Dezvoltarea software a SAI 37
Dezvoltarea software-ului de sistem

Soluţia: proiectarea arhitecturii software


 Deoarece problemele anterioare afectează întreg sistemul
şi nu numai software-ul de sistem, ele trebuie rezolvate
când proiectăm arhitectura software-ului.
 Delimitarea dinamică între componentele hardware/software
şi complexitatea şi variabilitatea în permanenţă creştere ale
unui SAI, subliniază faptul că sistemul trebuie tratat ca un
întreg. Arhitectura software este o cale de a realiza acest
lucru. Atâta timp cât scopul sistemului şi a softului este
clarificat, selecţia tehnicilor pentru software-ul de sistem
devine mai uşor şi mai sistematic.
 Arhitectura software-ului este şi punctul de plecare atunci
când se decide care sunt funcţionalităţile reale necesare
într-un sistem şi care aparţin software-ului de sistem şi care
aplicaţiei.
Dezvoltarea software a SAI 38
Dezvoltarea software-ului de sistem

Adaptabilitatea SAI
 Un lucru care diferenţiază SAI în mod special de restul
sistemelor este necesitatea diferitelor forme de
adaptabilitate.
 Adaptarea este parte din funcţionarea normală a SAI.
 Arhitectura trebuie să se schimbe şi chiar să se
autoconfigureze pe baza acţiunilor utilizatorului.
 SAI au o funcţionalitate latentă, însemnând că utilizatorul
poate activa anumite funcţionalităţi/caracteristici care erau
inactive la livrarea software-ului.
 Uneori este necesară chiar o libertate mai mare, utilizatorul
având nevoie să programeze o funcţionalitate nouă în
sistem sau aplicaţie.
Dezvoltarea software a SAI 39
Dezvoltarea software-ului de sistem

Adaptabilitatea SAI (cont.)


 Necesitatea ca aplicaţia să se adapteze poate avea diferite cauze:
 Pot exista modificări în platforma pe care aplicaţia rulează care să
necesite adaptare (epuizarea bateriilor unui dispozitiv, memorie
liberă prea mică);
 Utilizatorul aplicaţiei se poate schimba sau utilizatorul “transportă”
aplicaţia într-o locaţie nouă;
 Pot exista modificări în infrastructură (unele resurse din reţea devin
disponibile sau altele încetează să mai existe);
 Mediul de execuţie poate de asemenea să se modifice (unele noduri
cu care trebuie sau se poate comunica apar şi dispar);
 Infrastructura poate să modifice serviciile pe care le oferă (printere,
scanere, etc.)
 Scopul software-ului de sistem în adaptare este de a asigura servicii
care să permită adaptările menţionate să se întâmple.
 În continuare se prezintă unele tehnici utilizate să rezolve diferitele
aspecte ale adaptabilităţii.
Dezvoltarea software a SAI 40
Dezvoltarea software-ului de sistem

Adaptarea la modificarea cerinţelor


aplicaţiei şi utilizatorului
 Natura dinamică a SAI înseamnă că aplicaţia/sistemul
trebuie sa se adapteze la modificările condiţiilor de operare.
 Tradiţional, există două strategii de bază pentru controlul
modificărilor, în prezent a treia este cercetată intensiv:
 Controlul distribuit;

 Controlul centralizat;

 Soluţia middleware, o combinaţie a primelor două


strategii.
Dezvoltarea software a SAI 41
Dezvoltarea software-ului de sistem

Adaptarea la modificarea cerinţelor


aplicaţiei şi utilizatorului (cont.)
 Soluţii practice la problema “ce trebuie şi ce nu trebuie ascuns”
dezvoltatorilor aplicaţiei:
 Middleware reflectiv
 O abordare opusă variantei tradiţionale “black-box” (cutie neagră);
 Este o metodă principală de a obţine expunere, configurabilitate şi
reconfigurabilitate;
 Este implementată ca o colecţie de componente care pot fi configurate
şi rerconfigurate de aplicaţie, astfel că dezvoltatorii aplicaţiei pot decide
cât de mult control asupra platformei de bază vor să aibă.
 Calcul autonom
 Se bazează pe presupunerea că dispozitivele, obiectele şi elementele
individuale trebuie să fie autonome dacă dorim ca ele să fie utilizabile
într-o reţea;
 Este un sistem de control distribuit promovat de IBM, care consideră că
singura abordare a complexităţii mereu crescânde a sistemelor de
calcul este să le facem autoreglabile;
 Se pot rezolva astfel probleme ca autorepararea şi reconfigurarea.
Dezvoltarea software a SAI 42
Dezvoltarea software-ului de sistem

Adaptarea la modificarea cerinţelor


aplicaţiei şi utilizatorului (cont.)
 Pe lângă problema controlului, adaptabilitatea mai aduce o problemă:
adăugarea şi eliminarea aplicaţiilor şi serviciilor.
 Arhitectura software dinamică a fost studiată în domeniul aplicaţiilor în
cazul sistemelor care nu pot să fie oprite pentru o perioadă lungă de
timp, astfel că update-ul şi modificările trebuie efectuate în timpul
execuţiei fără a afecta operarea normală;
 O abordare posibilă a tratării adaptărilor dinamice este utilizarea de
modele pentru arhitectura software care să monitorizeze şi să ghideze
modificările dinamice ale sistemului.
 Operaţiile de bază care trebuie implementate pentru un sistem dinamic
sunt adăugarea şi eliminarea componentelor.
Dezvoltarea software a SAI 43
Dezvoltarea software-ului de sistem

Adaptarea la totalul resurselor hardware


 În SAI servicii similare trebuie să fie asigurate de dispozitive
cu posibilităţi diferite. Software-ul de sistem trebuie să poată
să încapă şi în dispozitive cu constrângeri critice de resurse.
 Soluţia este tot middleware-ul reflectiv care permite
interoperabilitatea unor motoare middleware mici cu
middleware-uri convenţionale:
 Mini sisteme de operare, bazate pe componente, care
sunt dezvoltate pentru sisteme cu resurse limitate (de
exemplu, TinyOS, Gaia). Ele includ şi un nucleu de
management al componentelor, care încarcă şi descarcă
dinamic componentele sistemului de operare şi a
aplicaţiilor.
 Medii de execuţie portabile care permit execuţia pe o
mare varietate de platforme (8, 16 şi 32 biţi).
Dezvoltarea software a SAI 44
Dezvoltarea software-ului de sistem

Adaptarea la totalul resurselor hardware (cont.)


 Abordările flexibile şi cu minimizarea de resurse sunt
necesare dar nu sunt suficiente. În special în sistemele
complexe cu multe aplicaţii şi numeroase interacţiuni cu
utilizatorii, este foarte dificil de a estima înainte consumul de
resurse.
 Este necesară o metodă de monitorizare a resurselor
folosite în timpul execuţiei.
 Uneori este necesară o balansare dinamică a puterii
utilizate şi a performanţelor pentru a decide unde să fie
localizate anumite funcţionalităţi.
Dezvoltarea software a SAI 45
Dezvoltarea software-ului de sistem

Adaptarea la modificarea mediului de execuţie


 Adaptarea le modificările mediului de execuţie presupune
mai întâi că există posibilitatea de a înţelege că sau
modificat condiţiile.
 O pierdere a conexiunii este uşor de observat, dar uneori
este nevoie de senzori speciali care să detecteze apariţia
altor modificări.
 Datele directe date de senzori pot fi uneori utilizate ca atare,
alteori necesită prelucrare de semnal pentru extragerea
unor informaţii utile, şi în cazul cel mai complicat, este
necesară utilizarea inteligenţei artificiale şi de metode de
învăţare pentru a le transforma în informaţii utilizabile şi
inteligibile pentru aplicaţie. Evident, necesarul de resurse
creşte corespunzător.
Dezvoltarea software a SAI 46
Dezvoltarea software-ului de sistem

Adaptarea la modificarea mediului de execuţie (cont.)


 În a treia categorie intră calculul cu cunoaşterea contextului (context-
aware computing).
 Context înseamnă orice informaţie care poate fi utilizată pentru
caracterizarea unei entităţi. O entitate este o persoană, un loc, un obiect
care este relevant pentru interacţiunea între utilizator şi o aplicaţie,
incluzând însuşi utilizatorul şi aplicaţia.
 Cunoaşterea contextului poate fi abordată în două moduri. Detectarea şi
procesarea poate avea loc în:
 Infrastructură (dispozitivele mobile sunt mai simple, mai ieftine si
mai puţin consumatoare de energie);
 Dispozitive mobile (dispozitivele mobile sunt independente de orice
element inteligent specific din mediu).
 Software-ul de sistem trebuie să asigure funcţionalităţile necesare
dezvoltatorilor de astfel de aplicaţii cu cunoaşterea contextului. Aici sunt
incluse şi modalităţile de comunicare multiplă şi asigurare a securităţii
datelor transmise.
47

Concluzii
Dezvoltarea software a SAI 48
Concluzii

 Tema a trecut în revistă provocările şi soluţiile existente pentru


dezvoltarea software-ului de sistem pentru SAI.
 Există câteva soluţii dar încă netestate în lumea reală a inteligenţei
ambientale comerciale.
 Soluţiile încă trebuie dezvoltate pentru a include facilităţi suplimentare
impuse de cerinţele crescânde în personalizarea şi adaptabilitatea
sistemelor/aplicaţiilor.
 Combinarea şi crearea acestor facilităţi este provocarea pentru
dezvoltarea arhitecturilor software pentru SAI.
 Arhitecturii software este punctul de început pentru definirea unei
platforme software pentru un sistem şi pentru armonizarea diferitelor
cerinţe ale sistemului.
 Utilizarea nivelurilor este utilizată pentru separarea problemelor de
interes şi pare să fie o abordare eficientă în cazul SAI.
 Totuşi, datorită cerinţelor excesive de adaptare, sunt necesare şi
conceperea altor metode.

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