Sunteți pe pagina 1din 103

PROIECT DE DIPLOMA

COMANDA UNUI MOTOR DE CURENT CONTINUU


FOLOSIND DSP

-2009-

0
CUPRINS:

1. Optiuni de control ale sistemelor cu motoare……………...….................. 1


1.1 Motoarele cu perii de curent continuu…………………………... 1
1.2 Motoare de curent continuu fara perii…………………………... 1
1.3 Motoarele pas cu pas……………………………………………. 2
1.4 Motoarele cu reluctanta comutata………………………………. 3
1.5 Motoarele de inductie de curent alternative…………………….. 3
1.6 Solutii de comanda si control al motoarelor…………………… 4
2. Motorul electric cu curent continuu............................................................ 6
3. Circuite DSP............................................................................................. 9
3.1 Introducere…………………….…………………………......... 9
3.2 Arhitectura circuitelor DSP……..…………...……………....... 10
3.3 Reprezetarea informatiei……....…………………………...... 14
3.4 Programarea DSP-urilor.....………………………………....... 18
3.5 Piata DSP-urilor……………………………………………... 20
3.6 MSC8101…………………………………………………….. 22
3.7 Core-ul SC140.......................................................................... 25
3.8 SRAM........................................................................................ 25
3.9 Controllerul DMA..................................................................... 26
3.10 CPM – Modulul procesor de comunicatii................................. 26
3.11 EFCOP- Procesorul imbunatatit pentru filtre.......................... 28
3.12 HD116 – Interfata gazda......................................................... 28
3.13 Nucleul de procesare SC140................................................... 29
3.14 Schema bloc a SC14 3.15 Unitatea aritmetică şi logică
de date – DALU....................................................................... 33
3.15 Unitatea aritmetică şi logică de date – DALU.......................... 35
3.16 Unitatea de generare a adreselor – AGU.................................. 37
3.17 Unitatea secven ţiator de program – PSEQ.............................. 38

1
3.18 Unitatea de emulare în circuit – EonCE.................................. 39
3.19 Setul de instrucţiuni................................................................. 39
3.20 Modulul de dezvoltare MSC8101 ADS................................... 39
3.21 Modulul de dezvoltare MSC8101 ADS..................................... 42
4. Evolutia controlerelor digitale de semnal……………………………… 48
4.1 Operatii tipice pentru DSP-uri : ………………………………. 48
4.2 Detalii tehnice ale DSP-urilor si MCU-urilor…………………. 49
4.3 Fuzionarea circuitelor MCU si DSP…………………………… 51
4.4 Arhitectura DSP……………………………………………….. 53
4.5 Hardware intr-un cip…………………………………………... 55
4.6 Contactul cu realitatea……………………………………….... 56
5. Selectia unui microcontroler pentru aplicatiile de comanda
si control ale motoarelor ……………………………………………. 59
5.1 Optiunile Timer……………………………………………...... 60
5.2 Convertoare Analog-/-Digital si Suport……………………..... 61
5.3 Pinii I/O determina dimensiunea…………………………....... 63
6. Sisteme de reglare automata (SRA)………………………………….... 65
6.1 Strucura. Marimi caracteristice………………………….......... 65
6.2 Problema reglarii. Analiza SRA…………………………......... 69
6.3 Stabilitatea SRA…………………………………………......... 70
6.4 Performanta SRA in regim dynamic…………………….......... 73
7. Sisteme de acţionare electrică............................................................... 75
7.1 Introducere................................................................................. 75
7.2 Motorul de curent continuu cu excitaţie independentă….......... 79
7.3 Reglarea turaţiei motorului de curent continuu......................... 85
8. Descrierea sistemului de dezvoltare TMS320F2812………..….... 96
8.1 Structura perifericelor............................................................... 100
8.2 Unitati digitale I/O .................................................................. 101
Bibliografie................................................................................................ 106

2
1. Optiuni de control ale sistemelor cu motoare
Exista diferite tipuri de motoare ce pot fi utilizate in sistemele de comanda
echipate cu dispozitive electronice si fiecare dintre ele pot fi comandate diferit.
Elementele de comanda hardware si software ale unui motor folosit in sistemele
electrice de putere ale autoturismelor vor fi diferite fata de elementele de comanda
si control ale unui motor utilizat pentru sistemul de ventilatie din interiorul unui
laptop. Acest articol va discuta despre diferitele tipuri de motoare ce sunt
implementate in diverse sisteme si solutiile tipice utilizate pentru controlul lor.

1.1 Motoarele cu perii de curent continuu

Motoarele cu perii de curent continuu (CC) sunt cel mai usor de comandat
datorita auto-comutarii. Alimentati periile si motorul va incepe sa se roteasca.
Viteza se modifica foarte simplu prin modificarea tensiunii de alimentare continue
aplicata periilor. Pentru miscarile de baza, motoarele cu perii de curent continuu
reprezinta cea mai ieftina solutie.

Pe de alta parte insa, periile se vor uza in timp, deci vor trebui inlocuite. In
plus, aceste tipuri de motoare produc zgomot electric si apar de asemenea pierderi
prin frecare la interfata mecanica a periilor. Acestea din urma se manifesta prin
incalziri ce pot creea uneori probleme in indusul motorului.
Produsele tipice care utilizeaza motoarele CC cu perii sunt jucariile, uneltele
portabile, antenele electrice, sistemele cu servo-mecanisme, ventilatoarele si alte
dispozitive precum cele utilizate la ridicarea si coborarea geamurilor portierelor
autoturismelor.

3
1.2 Motoare de curent continuu fara perii

Motoarele CC fara perii sunt normal mai usoare si mai fiabile decat cele cu
perii datorita absentei mecanismului cu perii. Incalzirea este generata in stator
astfel incat problemele sunt mult mai simplu de rezolvat (cata vreme, prin
definitie, intr-un mediu stationar absorbtia de caldura se realizeaza mult mai usor).
Viteza se modifica prin varierea tensiunii aplicate obtinandu-se performante de
viteza foarte bune si datorita eliminarii pierderilor de energie cauzate de sistemul
de perii. In schimb, dezavantajul motoarelor CC fara perii este dat de cerinta
pentru comutare a rotorului ce are nevoie de un modul de comanda. Acest lucru
inseamna existenta unui modul electronic de comanda al motorului, practic costul
sistemului va creste.
Produsele tipice care folosesc motoare de curent continuu fara perii sunt
ventilatoarele PC-urilor si disk driver-elor, masinile de spalat, ventilatoarele si
compresoarele frigiderelor si aplicatiile auto precum modulele de tractare si de
transmisie.

1.3 Motoarele pas cu pas

La fel ca la motoarele de curent continuu fara perii, caldura este generata in


stator astfel ca problema este usor de solutionat. Pentru motoarele pas cu pas
viteza de operare este modificata prin controlul frecventei formei de unda aplicate
motorului (semnalul CC este chopat). Principalele avantaje ale acestui tip de
motor sunt raportul foarte bun cuplu / pozitie si efortul de mentinere ce exista
cand motorul nu este alimentat si se afla intr-un camp magnetic puternic.
Dezavantajele (asociate motoarelor de curent continuu fara perii) sunt problemele
de rezonanta, o mai slaba eficienta si vibratii inalte rezultate ca urmare a
comportamentului oscilatoriu.

4
Produse tipice care utilizeaza motoarele pas cu pas sunt imprimantele, masinile
industriale, echipamentele de birou, driver-ele calculatoarelor, scanner-ele
medicale, instrumentatia stiintifica si alte aplicatii ce au nevoie de o pozitionare
precisa si un sistem de control al vitezei economic.

1.4 Motoarele cu reluctanta comutata

Motoarele cu reluctanta comutata sunt foarte robuste si in acelasi timp, datorita


modului de constructie simplu au un pret de cost atractiv. Au un cuplu la pornire
foarte bun si un domeniu larg al vitezelor de operare. Alt avantaj al acestui tip de
motor care il propulseaza inaintea altor tipuri de motoare este viteza mica in
aplicatii de pozitionare fara senzori. Din nefericire, motoarele cu reluctanta
genereaza un zgomot acustic mare si nu lucreaza corespunzator la vibratii mari.
Neliniaritatile magnetice provoaca dificultati controlului momentului la pornire.
Produsele tipice care utilizeaza motoare cu reluctanta sunt masinile de spalat,
aspiratoarele cu praf, ventilatoarele industriale si cateva bunuri de larg consum.

1.5 Motoarele de inductie de curent alternativ

Motoarele de inductie de curent alternativ prezinta cele mai atractive costuri


pentru clasa motoarelor cal-putere clasice cu operare in curent alternativ. Aceasta
inseamna ca ele pot lucra fiind conectate direct la o priza de curent alternativ.
Cuplul de pornire nu genereaza un zgomot mare, iar motoarele sunt foarte robuste
(cata vreme nu exista magneti permanenti in constructia lor). Principalele
dezavantaje sunt ineficienta la sarcini usoare, iar controlul vitezei necesita
ajustarea tensiunii statorului si a frecventei. De asemenea, este dificil de realizat
controlul pozitiei atunci cand sunt cerute aplicatii de orientare.
Produsele tipice care folosesc motoarele de inductie de curent alternativ sunt
masinile de spalat, compresoarele, unitatile de aer conditionat, pompele, sistemele

5
de deschidere a usilor de la garaj, driver-ele industriale, ventilatoarele de bucatarie
si masinile industriale.

1.6 Solutii de comanda si control al motoarelor

S-a stabilit ca exista diferite tipuri de motoare ce prezinta caracteristici diferite.


Pe de alta parte, exista o multime de tipuri de solutii de comanda si control al
motoarelor. Motorola are diverse familii de produse (care acestea la randul lor au
foarte multe derivate) ce sunt utilizate in modulele de comanda si control al
motoarelor (Motor Control). Acestea sunt ilustrate in figura 1. Pentru aplicatiile
finale care necesita costuri mici este utilizata deseori familia de microcontrolere
de 8 biti M68HC08. Aplicatiile medii sunt adesea implementate folosind familia
de microcontrolere de 16 biti M68HCS12 si cu familia de controlere hibride
56F800. Un controler hibrid reprezinta un nou tip de arhitectura ce combina
functionalitatea unui microcontroler traditional cu cea a unui procesor digital de
semnal (DSP). Aplicatiile de inalt nivel de comanda ale motoarelor sunt acoperite
de familia de controlere hibride 56F8300 si de familia microcontrolerelor de 32 de
biti, MPC500. Aceste produse opereaza intr-o largime de banda capabila sa
acopere cerintele complexe de timp real ale sistemului de control.
Masina de spalat - realizat cu un microcontroler cu 8 pini 908QT4. Tipul
motorului in acest caz este un motor de inductie de curent alternativ.
Totodata, iesirile microcontrolerului conectate la gate-driver-ele care genereaza
un semnal suficient de mare pentru alimentarea tranzistoarelor driver din puntea
ce comanda infasurarile motorului.
Microcontrolerele sunt adesea preferate pentru comanda motoarelor deoarece
setul de instructiuni este foarte prietenos si intuitiv pentru un inginer proiectant de
software. Instructiunile sunt de tip "comanda" si exista o varietate de moduri de
adresare ce pot fi folosite pe orice microcontroler. Densitatea de cod este, tipic,
mai mare (mai densa si implicit mai eficienta) decat a unui DSP si totodata,

6
microcontrolerele sunt in general mai usor de programat decat DSP-urile.
Exista avantaje clare in folosirea controlerelor hibride precum cea a familiilor
de dispozitive 56F800 sau 56F8300. Cea mai rapida capabilitate MAC (Multiply
and Accumulate) a acestor dispozitive permite filtrelor digitale sa fie executate la
viteze foarte mari. Acest lucru permite un control digital al vitezelor de
esantionare. Procesarea rapida in matrice intr-o arhitectura DSP sau hibrida
permite facilitati mai avansate privind algoritmii de control executati in timp real
si permite o procesare mai sofisticata a intrarilor senzorului (de exemplu filtrarea
Kalman). Acest lucru ajuta la cresterea performantei sistemului de control al
motorului, iar includerea unui senzor va mari fiabilitatea sistemului. Arhitectura
hibrida prezinta in general o suma a celor mai bune capabilitati oferite de un
microcontroler si un DSP.
Concluzie:
In concluzie, exista nenumarate solutii de comanda a motoarelor pentru sistemele
utilizate in acest moment. Sistemele simple sau complexe tind sa foloseasca
microcontrolerele, iar sistemele cu un grad sporit de complexitate utilizeaza
arhitectura DSP-urilor. Recent, disponibilitatea arhitecturilor hibride ce includ
caracteristicile microcontrolerelor si DSP-urilor a oferit proiectantilor de sisteme
noi optiuni. In general, arhitectura hibrida reprezinta o buna solutie atat timp cat
sunt utilizate doar cateva componente (acesta este un factor de crestere a
fiabilitatii deoarece mai putine componente inseamna o sursa mai mica de
posibile defecte), proiectarea software se realizeaza simplu si rapid, iar costul
intregului sistem se micsoreaza.

7
2. Motorul electric cu curent continuu

Generatoarele de curent continuu

Dacă un rotor se învârte între doi poli magnetici staţionari, curentul din
rotor circulă într-o direcţie pe parcursul unei jumătăţi de rotaţie şi în cealaltă pe
parcursul celeilalte jumătăţi. Pentru a produce o trecere constantă, într-o singură
direcţie a curentului dintr-un astfel de dispozitiv, este necesară furnizarea unui
mijloc prin care curentul rezultat să aibă acelaşi sens pe parcursul întregii rotaţii.
La maşinile mai vechi aceasta este realizată cu ajutorul unor plăcuţe colectoare,
un inel de metal împărţit în două, montat pe axul rotorului. Cele două jumătăţi
sunt izolate şi sunt bornele bobinei. Perii fixe de metal sau carbon sunt ţinute pe
plăcuţele colectoare în timp ce acestea se rotesc, conectând electric bobina la fire
exterioare. În timp ce rotorul se învârte, fiecare perie intră în contact alternativ cu
plăcuţele colectoare, schimbându-şi poziţia în momentul când curentul din
bobină îşi schimbă sensul. Astfel circuitul exterior la care generatorul este
conectat este alimentat cu un curent continuu. Generatoarele de curent continuu
sunt de obicei folosite la tensiuni mici pentru a evita scânteile dintre perii şi
plăcuţe care rezultă la tensiuni mari. Cel mai mare potenţial obţinut în general de
astfel de generatoare este de 1500 de volţi. În unele maşini mai noi această
inversare se face folosind dispozitive electronice de mare putere, cum ar fi de
exemplu diode redresoare.

Generatoarele moderne folosesc rotoare cilindrice care, de obicei sunt


constituite dintr-un număr mare de bobinaje aşezate longitudinal în lăcaşuri
speciale şi conectate la plăcuţe colectoare. Într-un bobinaj în care este un număr
mic de lăcaşuri, curentul produs va creşte şi scădea în funcţie de partea de câmp
magnetic prin care rotorul trece. Un bobinaj compus din mai multe segmente şi
un rotor circular conectează în permanenţă circuitul aproape constant deoarece
întotdeauna un bobinaj longitudinal se deplasează printr-o suprafaţă cu un câmp

8
magnetic intens. Câmpurile de la generatoarele moderne sunt de obicei din patru
sau mai mulţi poli, pentru a creşte mărimea şi puterea câmpului magnetic.
Câteodată poli mai mici sunt adăugaţi pentru a compensa distorsiunile din fluxul
magnetic cauzat de efectul magnetic al rotorului.

I.Motoarele cu curent continuu

În general, sunt similare în construcţie cu generatoarele de curent


continuu. Ele pot, de fapt să fie descrise ca generatoare care „funcţionează
invers”. Când
curentul trece prin
rotorul unui
motor, este
generat un câmp
magnetic care
generează o forţă
electromagnetică,
şi ca rezultat rotorul se roteşte. Acţiunea periilor colectoare şi a plăcuţelor
colectoare este exact aceiaşi ca la generator. Rotaţia rotorului induce un voltaj în
bobinajul rotorului. Acest voltaj indus are sens opus voltajului exterior aplicat
rotorului. În timp ce motorul se roteşte mai rapid, voltajul rezultat este aproape
egal cu cel indus. Curentul este mic, şi viteza motorului va rămâne constantă atât
timp cât asupra motorului nu acţionează nici o sarcină, sau motorul nu efectuează
alt lucru mecanic decât cel efectuat pentru învârtirea rotorului. Când asupra
rotorului se aplică o sarcină, voltajul va fi redus şi un curent mai mare va putea să
treacă prin rotor. Astfel, motorul este capabil să primească mai mult curent de la
sursa care îl alimentează, şi astfel să efectueze mai mult lucru mecanic.

Deoarece viteza rotaţiei controlează trecerea curentului prin rotor,


mecanisme speciale trebuie folosite pentru pornirea motoarelor cu curent

9
continuu. Când rotorul se află în repaus, el, efectiv, nu are nici o rezistenţă, şi
dacă voltajul normal este aplicat, va trece un curent mare, ceea ce ar putea avaria
periile colectoare sau motorul. Mijloacele obişnuite pentru prevenirea acestor
accidente este folosirea în serie a unei rezistenţe, la început, împreună cu rotorul,
pentru a limita curentul până când motorul începe să dezvolte un curent suficient.
Pe parcurs ce motorul prinde viteză, rezistenţa este redusă treptat, fie manual ori
automat.

Viteza cu care un motor cu curent continuu funcţionează, depinde de


puterea câmpului magnetic care acţionează asupra rotorului, cât şi de curentul
rotorului. Cu cât este mai puternic câmpul magnetic, cu atât este mai mică rata
rotaţiei necesare să creeze un curent secundar necesar pentru a contracara
curentul aplicat. Din acest motiv viteza motoarelor cu curent continuu poate fi
controlată prin variaţia câmpului curentului.

3. CIRCUITE DSP
3.1.Introducere

10
Reamintindu-ne de jocul de puzzle pe care îl face inginerul care proiectează
o aplicaţie am considerat oportun să prezentăm o piesă a acestui joc, întâlnită în
ultimii ani în tot mai multe aplicaţii, în variate domenii - este vorba despre
procesorul digital de semnale cunoscut de avizaţi ca circuit DSP (Digital Signal
Procesor). dp-urile fac parte din categoria circuitelor specializate şi sunt
microprocesoare proiectate pentru a îndeplini optim sarcini de procesare digitală de
semnal.
Dezvoltarea acestui tip de componentă ca varietate şi volum de producţie a
fost dictată de sectorul comercial mai degrabă decât de necesităţile militare sau
guvernamentale. dp-urile au ajuns la utilizatorul obişnuit prin telefoane mobile,
aparate CD-palyer, poştă electronică vocală, şi alte aplicaţii. Amintim câteva
domenii şi categorii de aplicaţii în care sunt utilizate circuite DSP:
• cercetare ştiinţifică (achiziţii de date, analiză spectrală, simulare
şi modelare);
• medicină (stocare/redare de imagini, tomografii computerizate);
• domeniul militar (radar, sonar, comunicaţii secrete);
• domeniul aerospaţial (îmbunătăţirea calităţii imaginilor,
compresie de date, analiza informaţiei de la sonde);
• telecomunicaţii (telefonie, televiziune, radio);
• domeniul comercial (compresie de imagine şi sunet, efecte
speciale în filme, videoconferinţe);
• seismologie;
• industrie (monitorizarea şi controlul proceselor, testarea
nedistructivă, proiectare asistată).
Plasarea eficientă a unui circuit DSP în jocul de puzzle presupune deţinerea
unui bagaj de cunoştinţe în relativ multe domenii (analiză numerică, probabilităţi şi
statistică, procesarea analogică a semnalelor, electronică digitală, electronică
analogică, teoria comunicaţiilor).

11
3.2.Arhitectura circuitelor DSP
Majoritatea calculatoarelor zilelor noastre au arhitectură von Neumann (cu
bus unic pentru date şi instrucţiuni). Această arhitectură nu satisface necesităţile de
viteză de procesare ale aplicaţiilor de procesare de semnal. Arhitectura Harvard
(Fig. .1) este mult mai potrivită pentru a fi implementată în DSP-uri.

Bus adrese Bus adrese


Mem progr. Mem date

Memorie Memorie de
Program UCP date
(numai instr.) (numai date)

Bus date Bus date


Mem progr Mem date

Fig. 1 Arhitectura Harvard (memorie program şi memorie de date separate)

Inconvenientul acestei arhitecturi, din punct de vedere al vitezei de procesare, este


faptul că magistrala memoriei de date este mult mai încărcată decât magistrala
memoriei de program.
La înmulţirea a două numere, prin magistrala de memorie de date sunt vehiculate
două cuvinte (cele două numere), iar prin magistrala memoriei program, un singur
cuvânt (codul instrucţiunii de înmulţire).
Această situaţie poate fi îmbunătăţită dacă o parte din informaţia din
memoria de date este relocată în memoria program.
Pentru un filtru, de exemplu, se poate păstra informaţia ce reprezintă
eşantioanele în memoria de date şi coeficienţii în memoria program.

12
Informaţia relocată este referită ca date secundare. Aparent această
modificare nu îmbunătăţeşte cu nimic situaţia; considerând însă specificul
operaţiilor DSP, cu încă o modificare în arhitectură se poate obţine reducerea
timpului de procesare; în UCP se include un bloc de memorie cache pentru
instrucţiuni. Memoria cache pentru instrucţiuni este binevenită deoarece
majoritatea algoritmilor DSP conţin bucle ce se repetă de un număr de ori. O astfel
de arhitetură este numită Super-Harvard şi este reprezentată în Fig. .2.

Bus adrese Bus adrese


Mem progr Mem date
Memorie UCP Memorie de
program date
(instructiuni si Cache
(numai date)
date sec.) instructiuni
Bus date Bus date
Mem progr Mem date

Controller
I/O

date
. Fig.2.Arhitectura Super-Harvard

Arhitectura Super-Harvard evidenţiază şi un controller intrare/ieşire dedicat.


Controllerul conţine porturi rapide de comunicaţie serială şi paralelă. Controllerul
intrare/ieşire poate să includă şi un modul DMA care să conducă transferul de date
între
memorie şi periferice fără a consuma timp UCP. Schimbul rapid de informaţie cu
exteriorul este la fel de important la un DSP ca şi viteza de procesare a unităţii
centrale. Problema aplicaţiei trebuie privită în felul următor: datele sunt introduse,

13
procesate, după care rezultatul este livrat spre exterior înainte ca următorul
eşantion de procesat sa fie disponibil la intrare.
O arhitectură tipică pentru un DSP, privită mai în detaliu, este reprezentată în
Fig. .3.
Corespunzător fiecărui bloc de memorie, există în UCP câte un generator de
adrese; în procesoarele obişnuite funcţie este realizată de secvenţiatorul de program.
Procesarea matematică este împărţită în trei secţiuni: multiplicator, UAL
(unitate aritmetică şi logică) şi modul de shiftare. Multiplicatorul şi UAL pot fi
accesate în paralel. Conceptul de procesare paralelă este implementat la toate
nivelele într-un DSP.
Există multe particularităţi şi artificii specifice fiecărui tip de procesor,
implementate în scopul creşterii eficienţei procesării semnalelor. Acestea vor fi
exemplificate pe cazuri particulare.

14
Fig.3 Arhitectură tipică DSP

3.3 Reprezetarea informatiei

In funcţie de modul în care sunt reprezentate numerele, procesoarele digitale


sunt de două categorii:
• procesoare în virgulă fixă;
• procesoare în virgulă mobilă.

15
In cazul procesoarelor în virgulă fixă, în mod obişnuit, fiecare număr este
reprezentat folosind minimum 16 biţi. Spre exemplu, Motorola fabrică procesoare
în care se utilizează reprezentarea în virgulă fixă pe 24 de biţi.
In reprezentare pe n biţi sunt posibile patru moduri de reprezentare a celor 2n
combinaţii:
• întreg fără semn;
• întreg cu semn;
• număr fracţionar fără semn;
• număr fracţionar cu semn.
Pentru reprezentarea numerelor cu semn se foloseşte codul complement faţă
de doi. Pentru n=16, pot fi reprezentate numere întregi fără semn de la 0 la 65 535,
numere întregi cu semn în intervalul -32 768 la +32 767, 65 536 de numere
fracţionare fără semn distribuite uniform în intervalul cuprins între 0 şi 1 şi 65 536
de numere fracţionare cu semn distribuite uniform în intervalul cuprins între -1 şi +1.
Pentru reprezentarea în virgulă mobilă, în DSP-uri se utilizează minimum 32
de biţi, astfel sunt posibile mult mai multe combinaţii de biţi (cel puţin 2 =4 294
967 296). în reprezentarea în virgulă mobilă codurile nu sunt uniform distribuite în
intervalul reprezentat. Cel mai utilizat format de reprezentare în virgulă mobilă
este cel reglementat de standardul ANSI/IEEE 754-1985; în acest format cel mai
mare număr reprezentabil este +/-3.4*10 , iar cel mai mic număr reprezentabil este
+/-1.2*10- . Distanţa între două numere consecutive este de aproximativ 10 milione
de ori mai mică decât numărul reprezentat - în acest fel, între numere mari
consecutive distanţa este mai mare, iar distanţa între numere mici consecutive este
mică.
Toate procesoarele în virgulă mobilă pot opera şi cu numere reprezentate în
virgulă fixă, mod de lucru necesar atunci când se implementează numărătoare,
bucle sau când se operează cu informaţie de la convertoare analog-digitale sau
informaţie destinată convertoarelor digital-analogice.

16
într-un procesor de uz general, aritmetica în virgulă fixă este mai rapidă decât
aritmetica în virgulă mobilă; în DSP-uri, prin optimizările arhitecturale specifice,
viteza de procesare este aproximativ egală pentru cele două moduri de reprezentare
a numerelor. Arhitectura internă a unui DSP în virgulă mobilă este mult mai
complicată decât a unui DSP în virgulă fixă. Toate registrele şi toate magistralele
trebuie să fie de 32 de biţi în loc de 16, unitatea de multiplicare şi UAL trebuie să
execute rapid operaţii în virgulă mobilă şi setul de instrucţiuni trebuie să cuprindă
instrucţiuni care permit manipularea atât a numerelor în virgulă mobilă cât şi a
numerelor în virgulă fixă. Simplitatea procesoarelor în virgulă fixă este reflectată
în costul acestora care, oricât de rapidă ar fi evoluţia preţurilor, va rămâne
întotdeauna mai scăzut decât al DSP-urilor în virgulă mobilă; dinamica preţurilor
se reflectă
raportul celor două costuri. Avantajele utilizării fiecărui mod de reprezentare a
numerelor sunt sintetizate în continuare:
• reprezentarea numerelor în virgulă mobilă conferă DSP-
urilor următoarele avantaje:
= precizie bună (posibilitatea de a reprezenta numere
fracţionare foarte mici);
= dianamică mare (intervalul dintre cel mai mare întreg
negativ şi cel mai mare întreg pozitiv este foarte mare);
= timp scurt de dezvoltare a aplicaţiilor.
• reprezentarea numerelor în virgulă fixă conferă DSP-urilor
avantajul unui cost scăzut.
DSP-urile operează cu semnale; reprezentarea discretă a semnalului
presupune cuantizarea acestuia şi implicit survine zgomotul de cuantizare.
Zgomotul de cuantizare este în directă legătură cu formatul ales pentru
reprezentarea numerelor, depinde de distanţa dintre două valori consecutive în
codul de reprezentare. Raportul semnal/zgomot, când se utilizează reprezentarea în

17
virgulă mobilă este de aproximativ 30 milioane /l, în timp ce acesta este de 10 mii/l
dacă se utilizează reprezentarea în virgulă fixă.
Presupunem că se implementează un FIR în virgulă fixă; pentru aceasta se
operează în buclă, fiecare coeficient este înmulţit cu eşantionul corespunzător din
semnalul de intrare şi rezultatele se adună în acumulator. într-un procesor de uz
general, acumulatorul este un registru de 16 biţi unde numerele sunt reprezentate în
virgulă fixă. Pentru a evita depăşirea capacităţii de reprezentare, valorile ce se
adaugă în acumulator vor fi rotunjite şi se adaugă astfel zgomot de cuantizare la
fiecare pas.
Pentru un filtru cu 500 de coeficienţi, zgomotul fiecărui eşantion de ieşire va fi de
500 de ori mai mare decât zgomotul avut la intrare.
Această problemă este tratată într-un DSP prin utilizarea unui acumulator
pentru precizie extinsă. Acesta este un registru special a cărui dimensiune este de
2-3 ori mai mare decât dimensiunea unui cuvânt (32-40 biţi pentru procesoarele pe
16 biţi sau până la 80 de biţi pentru procesoarele pe 32 de biţi). Strategia utilizării
extensiei pentru acumulator dă rezultate bune în dp-urile în virgulă fixă. dp-urile cu
reprezentare în virgulă mobilă, introduc un zgomot de cuantizare atât de mic încât
nu este necesare utilizarea extensiei de acumulator.
Alegerea unui DSP în virgulă fixă sau mobilă se face în funţi de
particularităţile aplicaţiei considerate. Spre exemplu, semnalele din televiziune, în
general semnalele video, sunt convertite analog/digital şi apoi digital/analog în
mod uzual pe un număr redus de biţi (8 biţi) - în astfel de aplicaţii este suficientă
precizia unui procesor în virgulă fixă. Aplicaţiile audio profesionale folosesc
semnale procesate cu convertoare analog/digital şi digital/analogice de 20-24 biţi,
ceea ce presupune necesitatea de a utiliza procesoare în virgulă mobilă pentru a
acoperi dinamica semnalului.
Un alt considerent în alegerea tipului de DSP pentru o aplicaţie este
complexitatea algoritmului ce va fi implementat. Pentru algoritmi simpli, cum ar fi

18
filtrele sau alte procesări în domeniul timp, este suficient un DSP în virgulă fixă;
pentru algoritmi complecşi, cum ar fi convoluţia, FFT sau în general procesări în
domeniul frecvenţă, utilizarea unui DSP în virgulă.
mobilă ar simplifica scrierea programului, ceea ce implică scurtarea timpului de
dezvoltare a aplicaţiei.
în cele din urmă, costul produsului final este de asemenea un element
considerat în alegerea tipului de DSP. Alegerea unui DSP în virgulă fixă înseamnă
utilizarea unei componente mai ieftine, dar în acelaşi timp costul dezvoltării
aplicaţiei poate fi mai mare datorită dificultăţii de implentare în virgulă fixă a unui
algoritm complex. Astfel, procesoarele în virgulă fixă, mai ieftine, sunt utilizate cu
precădere în produse de larg consum unde o diferenţă cât de mică de preţ poate
însemna succesul sau eşecul produsului; un exemplu bun pentru această situaţie
sunt telefoanele celulare. Procesoarele în virgulă mobilă sunt preferate în produse
performante, unde costul DSP-ului este insignifiant faţă de costul global al
produsului; pentru acest caz, un exemplu bun sunt tomografele computerizate.

3.4 Programarea DSP-urilor

Programele pentru DSP-uri sunt dezvoltate în limbaj de asamblare sau în C,


limbaje utilizate în general în aplicaţii ştiinţifice şi de inginerie. Dacă în aplicaţii
implementate pe procesoare de uz general raportul dintre numărul programelor în
limbaj de asamblare şi numărul programelor în C este de 1/10, în aplicaţii
implementate pe DSP-uri, raportul poate fi
1/1-1/2.
Programele scrise pentru DSP-uri se deosebesc de aplicaţiile soft tradiţionale
sub două aspecte:
• programele sunt de obicei mai scurte;
• viteza de execuţie a programului este un aspect critic.

19
Aceste două aspecte fac ca pentru a programa un DSP să fie utilizat mai
mult limbajul de asamblare decât în programarea procesoarelor de uz general.
în ceea ce priveşte venitul obţinut pe seama unui DSP programat în limbaj
de asamblare şi venitul obţinut pe seama unui DSP programat în C, raportul este de
2/1. Considerând performanţa (viteza de execuţie) şi costul de fabricaţie,
programarea în limbaj de asamblare este întotdeauna mai avantajoasă decât
programarea în C; codul rezultat dintr-un program scris în C este întotdeauna mai
mare decât codul unui program scris în limbaj de asamblare, ceea ce înseamnă că
este necesară mai multă memorie, ccea ce înseamnă preţ de fabricaţie mai mare
pentru componentă. Tendinţa în prezent este de a fabrica DSP-uri optimizate pentru
programare în C (set de registre de uz general, spaţiu de memorie unificat).
în general, în cazul microprocesoarelor, şi în particular în cazul DSP-urilor,
programarea în limbaj de asamblare este mai dificilă. De aceea se caută
dezvoltarea unor compilatoare C eficient şi a altor instrumente software pentru
eficientizarea codului. Practica curentă este de a scrie programe în principal în C,
iar secvenţele critice se scriu în limbaj de asamblare. Chiar dacă se alege
programarea în C, este necesară cunoaşterea unor elemente de arhitectură specifice
DSP-urilor şi de asemenea cunoaşterea setului de instrucţiuni al limbajului de
asamblare.
Care este limbajul potrivit pentru dezvoltarea unei aplicaţii particulare?
Răspunsul depinde de ce este mai important pentru aplicaţie; dacă se impune
flexibilitate şi timp de
dezvoltare scurt, se alege C, iar dacă se cere performanţă sub aspectul timp şi
utilizarea resurselor, se alege limbajul de asamblare.
Alte considerente sunt enumerate în continuare:
• pentru un program lung şi imbricat se alege C, pentru un
program mai scurt şi mai simplu, se alege limbaj de asamblare;

20
• pentru un timp de execuţie foarte scurt, în limbaj de asamblare se
poate obţine maximul de performanţă; pentru aplicaţii care nu sunt critice
sub aspectul timp de execuţie, se alege C;
• pentru aplicaţii dezvoltate de mai mult de un programator se
recomandă C cu scrierea în limbaj de asamblare a secvenţelor critice sub
aspectul timp;
• dacă primează costul resurselor hardware, se alege limbaj de
asamblare, iar dacă primează costul de dezvoltare, se alege C;
• în funcţie de experienţa anterioară, un programator experimentat
în limbaj de asamblare (pentru alte procesoare) va putea alege limbajul de
asamblare; un programator experimentat în C va alege C;
• se recomandă a considera şi recomandările fabricantului DSP-
ului (unele DSP-uri pot fi programate foarte uşor în limbaj de asamblare,
altele sunt foarte dificil de programat în limbaj de asamblare).

3.5.Piata DSP-urilor

Creşterea rapidă a pieţei DSP-urilor este determinată de cererea mare de


produse mai bune şi mai ieftine ca: telefoane celulare, calculatoare multimedia,
aparatură muzicală de înaltă fidelitate.
Evoluţia pieţei DSP-urilor este prezentată în Fig..4.
DSP-urile pot fi cumpărate înglobate într-un modul de dezvoltare, ca circuit
procesor sau doar a nucleu de procesare (core).
Nucleul de procesare (core) reprezintă secţiunea unde are loc procesarea efectivă.
Acesta include registrele de date, multiplicatorul, unitatea aritmetică şi logică şi
secvenţiatorul de program. Nucleul de procesare este utilizat în aplicaţii croite
exact pe cerinţe particulare; se adaugă nucleului strictul necesar de resurse. Aceste
aplicaţii reprezintă un segment important din piaţa DSP-urilor.

21
Procesorul conţine pe lângă nucleul de procesare, memorie şi interfeţe pentru
comunicare cu exteriorul. Toate elementele sunt implementate într-un singur
circuit intergrat şi sunt referite ca procesor.

20

15

10

0
2001 2002 2003 2004 2005 2006 2007

Fig. 4 Evoluţia pieţei DSP-urilor

Modulele de dezvoltare au procesorul DSP montat pe o placă de circuit


imprimat pe care de asemenea mai sunt montate şi alte resurse cum ar fi: memorie
suplimentară, convertoare analog/digitale şi digital/analogice, socluri pentru
memorie EPROM sau Flash, o serie de controllere şi interfeţe populare, extensii
pentru accesul la semnalele procesorului sau la semnalele magistralei modulului.
Astfel de module sunt fabricate de obicei de companii partenere
fabricantului de DSP (Third Party Developer) despre existenţa cărora se poate afla
consultând pagina de web a fabricantului circuitului DSP.
Piaţa DSP-urilor este dominată de câteva companii, lista acestora şi
indicativele de codificare a produselor sunt prezentate în continuare:

Analog Devices

22
ADSP 21xx procesoare pe 16 biţi în virgulă fixă
ADSP 21xxx procesoare pe 32 biţă în virgulă mobilă
ADSP 2199x procesoare mixed signal
ADSP TigerSHARK101 procesoare pe 32 biţi în virgulă
mobilă Motorola
DSP56300 procesoare pe 24 biţi program, 24 biţi date
DSP56800 procesoare 16 biţi în virgulă fixă
DSP9600 procesoare pe 32 biţi în virgulă mobilă
MSC8101 procesoare 16 biţi în virgulă fixă
Texas Instruments
TMS 320C55x procesoare pe 16 biţi în virgulă fixă
TMS 320C64x procesoare pe 16 biţi în virgulă fixă
TMS 32C67x procesoare pe 32 biţi în virgulă mobilă
Graniţa între un procesor de tip DSP şi un procesor de uz general începe să
nu mai fie foarte clară; spre exemplu, procesoarele Intel dispun de instrucţiuni noi
proiectate pentru a manipula şi a procesa eficient informaţie video, audio şi grafică.
Aceste instrucţiuni sunt utile în procesarea paralelă a secvenţelor repetitive
specifice în operaţiile multimedia. Fără îndoială, funcţii şi atribute specifice DSP-
urilor vor fi înglobate în procesoarele de uz general, astfel termenul de DSP este
posibil să se contopească în ceea ce numim astăzi microprocesor.
Pentru a avea o imagine actualizată a pieţei DSP-urilor, şi nu numai, consultarea
revistelor ca EDN (Electronic Design News) şi ECN (Electronic Component
News) este binevenită.

3.6 MSC8101

23
MSC8101 este primul reprezentant al unei familii de procesoare digitale de
semnal (DSP) bazat pe unitatea centrală StarCore140. Acest procesor vine în
întâmpinarea necesităţilor născute de aplicaţiile de comunicaţii în reţea. MSC8101
este special proiectat pentru a fi utilizat într-o infrastructură de comunicaţii mobile
de generaţia a III-a (3G).
G II – comunicaţii wireless cu următoarele caracteristici:
- viteza de transfer date de la 9.6 Kbps până la 28.8 Kbps;
- suportă semnal vocal şi mesaje (SMS);
- afişare în mod text.
G III - comunicaţii wireless cu următoarele caracteristici:
- viteze de transfer date de la 384 Kbps până la 2 Mbps;
- suportă semnal multimedia;
- afişează imagini statice sau în mişcare
Principalele aplicaţii ale DSP-ului MSC8101 sunt poziţii în infrastructura
unei reţele de telecomunicaţii. Dintre sarcinile pe care le poate îndeplini un DSP
amintim:
• In staţiile de bază (BSC) din infrastructura comunicaţiilor
mobile efectuează codarea de voce şi/sau eliminarea ecourilor şi nu numai
sarcini de procesare de semnal clasice, ci poate realiza şi anumite sarcini de
interfaţare cu reţeaua.
• In Gateway-urile media (voce, fax, date) DSP-ul realizează
compresia vocală, eliminarea ecourilor, compresia de date, detecţia şi
corecţia de erori. Principalele componenete ale unui DSP MSC8101 sunt
reprezentate în Fig. .5.

24
Core EF
SCI 140 COP MSC 8101

SRAM

Controller
DMA

BUS Controller CMP


Power PC memorie

Fig.5 MSC8101 - Schema bloc generală 161

EFCOP - Enhanced Filter


COProcessor CPM - Communications
Processor Module
în principal, MSC8101 este compus din core, memorie şi un procesor de
comunicaţie. Resursele comunică prin magistrale interne sub controlul unor
blocuri funcţionale specializate, ca în orice sistem performant; există în această
idee controller de memorie, controller DMA şi controller de magistrală, care în
acest caz este PowerPC.
în continuare sunt prezentate pe scurt blocurile funcţionale ale circuitului.

25
3.7 Core-ul SC140

Modulul de procesor SC140 pe 16 biţi conţine patru unităţi aritmetice şi


logice (ALU) fiecare constând dintr-o unitate MAC (Multiply and ACcumulate) şi
o unitate logică. Unităţile MAC sunt de înaltă performanţă şi pot fi folosite în
implementarea algoritmilor de filtre FIR (Finite Impulse Respone), IIR (Infinite
Impulse Respone) şi a algoritmilor pentru FFT (Fast Fourier Transform). Toate cele
patru ALU sunt identice. Pe lângă cele patru ALU core-ul mai conţine două unităţi
aritmetice de adresare AAU (Address AritKmetic Unit) cu moduri de adresare
specifice DSP-urilor. SC140 poate iniţia şi executa până la 6 instrucţiuni într-un
clock. Cele patru ALU şi cele două AAU pot opera simultan în orice combinaţie.
De exemplu, SC140 poate executa patru operaţii MAC într-un singur clock, sau o
operaţie MAC, două operaţii aritmetice şi logice şi o operaţie pe bit. Faptul că cele
patru ALU sunt identice conferă o mare flexibilitate în asignarea şi executarea
instrucţiunilor; unităţile de execuţie pot fi ţinute ocupate în orice ciclu, permiţând
astfel programului să beneficieze de arhitectura paralelă a procesorului.
Clock-ul maxim acceptat este de 300 MHz, iar la această viteză poate
executa 1200 de operaţii DSP pe secundă. Un DSP MIPS este echivalentul a mai
multor MIPS-uri RISC, măsură a performanţei la alte DSP-uri.

3.8 SRAM

Capacitatea memoriei SRAM cu care este echipat circuitul este de 512KB,


cu geometria 256Kx16 biţi. într-un ciclu la 300 MHz core-ul poate accesa
simultan, fără stări de aşteptare, 256 de biţi (128 biţi de date şi 128 biţi de
program). într-un ciclu al magistralei interne PowerPC este posibil accesul
simultan la 64 biţi. Capacitatea memoriei SRAM este suficient de mare pentru a
stoca tot codul unui program şi toate datele necesare acestuia în majoritatea

26
aplicaţiilor, eliminând astfel inconvenientele legate de preţ, performanţă şi spaţiu
ale unei memorii externe. Dacă totuşi nu este suficientă memoria internă,
MSC8101 poate adresa 4 GB de memorie externă prin magistrala PowerPC
externă.

3.9 Controllerul DMA

Blocul de control DMA gestionează transferul de date între memoria internă


şi externă, perifericele interne şi externe, pe 16 canale unidirecţionale
independente, fără intervenţia core-ului. Transferul poate avea loc prin magistrala
internă PowerPC, prin magistrala externă PowerPC sau între cele două magistrale.
Blocul DMA dispune de registre FIFO care pot stoca temporar date; de
exemplu, dacă magistrala internă nu este liberă şi DMA are de transferat date din
memoria externă în
memoria internă, nu se aşteaptă eliberarea magistralei, ci datele se transferă în
registrele FIFO proprii blocului DMA urmând să fie transferate de aici în memoria
internă atunci când magistrala internă este disponibilă.
O altă particularitate a blocului DMA din circuitul MSC8101 este modul de
lucru flyby - datele sunt transferate direct de la sursă la destinaţie într-un singur
ciclu. Acest mod poate funcţiona între un periferic intern şi memoria internă sau
între un periferic extern şi memoria externă.

3.10 CPM – Modulul procesor de comunicatii

Modulul CPM este componenta care determină domeniul de aplicabilitate al


MSC8101 - reţele şi telecomunicaţii. CPM este un procesor care dispune de o
arhitectură şi de rutine microcod capabile să gestioneze protocoale de mare viteză
cum ar fi ATM (până la 155 Mbps full-duplex) şi Fast Ethernet (până la 100 Mbps
full duplex).

27
CPM conţine următoarele blocuri funcţionale:
• o unitate RISC pe 32 de biţi cu un set de instrucţiuni optimizat
pentru comunicaţii;
• 2 controllere seriale DMA (SDMA) prin care pot fi executate
două transferuri simultan;
• 3 controllere de comunicaţii seriale rapide FCC (Fast
Communication Controller) care suportă protocoalele IEEE 802.3 şi Fast
Ethernet. Fiecare FCC poate fi configurat să transmită în mod tarnsparent şi
să recepţioneze în mod HDLC şi invers. Două FCC au pini dedicaţi, iar al
treilea operează în mod TDM (Time-Division Multiplex); FCC1 suportă
protocolul ATM de 155 Mbps prin intermediul interfeţei UTOPIA2;
• 2 controllere multicanal MCC (Multi-Channel Controller) care
pot gestiona canale HDLC în limitele 256x64 Kbps multiplexate în până la
patru interfeţe
TDM;
• 4 controllere de comunicaţii seriale full-duplex SCC (Serial
Communication Controller). Cele patru controllere suportă următoarele
moduri de comunicaţie: IEEE 802.3, HDLC, UART, Synchronous UART,
BISYNC şi mod transparent. Două SCC au pini dedicaţi, celelalte două pot
opera doar în mod TDM;
• 2 unităţi de management al transferului serial (Serial
Management Controller) full-duplex care suportă interfeţe generale de circuit
GCI (General Interface Circuit), UART şi operaţii transparente;
• controllere de interfaţă SPI (Serial Perpheral Interface);
• controller de magistrală I C (Inter-Integrated Circuit);
• 8 generatoare independente de baud-rate şi 10 pini de intrare
pentru semnale de clock pentru sincronizare necesară canalelor seriale FCC,
SCC şi SMC;

28
• 4 timere-e de 16 biţi independente care pot fi interconectate ca
doua timer-e de 32 de biţi.

3.11 EFCOP- Procesorul imbunatatit pentru filtre

EFCOP relizează operaţiile de filtrare şi eliminare a ecourilor, funcţii vitale


pentru un DSP. Operaţiile de filtrare includ filtrări neadaptive şi filtrări adaptive,
filtre FIR şi IIR. Coprocesorul lucrează în precizie de 32 de biţi şi conţine o unitate
de multiplicare 32*32 şi un acumulator de 72 de biţi. Circuitele din EFCOP pot
realiza într-un ciclu de clock un pas de filtrare cu un consum foarte mic. EFCOP
poate actualiza coeficienţii într-un filtru adaptiv.
EFCOP lucrează în paralel cu core-ul procesorului, ceea ce înseamnă că
operaţii ca anularea ecourilor pot fi procesate în paralel cu operaţiile de compresie
a vocii, facilitate utilă în telefonia prin Internet. Considerând un indice de utilizare
de 70% al EFCOP, o medie tipică pentru aplicaţiile DSP, contribuţia la performanţa
sistemului este de 210 MIPS peste cei 1200 MIPS ai core-ului SC140.

3.12 HD116 – Interfata gazda

Pe lângă interfaţa PowerPC, MSC8101 are şi o interfaţă HDI16 care suportă


o varietate mare de magistrale standard şi permite interconectarea comodă cu
microcontrollere, microprocesoare sau alte DSP-uri. Interfaţa HDI16 poate fi
utilizată în mod concurent cu interfaţa PowerPC, ceea ce face ca sistemul să fie
flexibil în proiectare. De exemplu, în sistemele este vehiculată o cantitate mare de
informaţie între un procesor gazdă şi un banc de procesoare MSC8101, DSP-urile
vor comunica cu procesorul gazdă prin interfaţa PowerPC în mod 64 de biţi; în
sistemele cu trafic mai redus, procesorul gazdă şi DSP-ul pot comunica prin
interfaţa HDI16 pe 16 biţi, şi în acelaşi timp DSP-ul poate fi conectat la o memorie
partajată prin intermediul interfeţei powerPC în mod 32 de biţi.

29
3.13 Nucleul de procesare SC140

StarCore este numele core-ului de procesor proiectat de centrul de dezoltare


cu acelaşi nume înfiinţat de Motorola şi Lucent (actuală Agere) Technologies în
anul 1998 în vederea producerii unui core de procesor care să echipeze generaţiile
următoare de DSP-uri. Prima arhitectură StarCore a fost anunţată în anul 1999, iar
prima implementare a acestei arhitecturi a fost core-ul SC140.
SC140 exceleaz prin gradul înalt de paralelism de care dispune; clock-ul
maxim cu care poate lucra este de 300 MHz. SC140 este în prezent (2002) cel mai
rapid DSP de uz general realizat în siliciu. SC140 este un core de DSP cu un
consum redus de putere. Din punct de vedere al programării, core-ul este foarte
flexibil şi compilatoarele existente realizeaz coduri eficiente şi compacte. în
execuţia instrucţiunilor este implementat conceptul VLES (Variable Length
Execution Set - set de execuţie cu lungime variabilă).
Performanţa SC140, relativ la procesoarele DSP Motorola, este ilustrată în
Fig. .6.
SC140 a fost proiectat cu scopul de a oferi o platformă care să satisfacă cerinţele
crescânde ale aplicaţiilor DSP datorate următoarelor condiţii:

• standarde şi servicii de comunicaţii noi;


• canale de bandă largă şi rată mare de transfer;
• interfeţe noi pentru utilizatori şi media.

30
Dimensiune cod
Puterea disipata

C 6000

C 5000
C 6000

SCI 140
C 5000

SCI 140

SCI 140 C 6000 C 5000 Performanta

Fig. .6 Caracteristici SC140 raportate la procesoarele C5000 şi C6000

SC140 este gândit pentru a fi utilizat în aplicaţii de mare performanţă în


comunicaţii mobile, cum ar fi gateway-uri, staţii de bază şi aplicaţii portabile
(terminale celulare). Aplicaţiile către care ţinteşte SC140 sunt:
• wireless, internet, multimedia;
• comunicaţii de date în reţea;
• infrastructura wireless;
• sisteme handset wireless de generaţia a treia cu servicii de date de bandălargă;
• terminale handset configurabile prin software;
• codarea, sinteza şi recunoaşterea vocii;
• codarea semnalului muzical.
Dintre însuşirile care diferenţiază SC140 pe piaţă pot fi amintite următoarele:
• permite un nivel înalt de abstractizare a software-ului pentru
aplicaţii:

31
= aplicaţiile pot fi dezvoltate în C; un compilator de
optimizare generează instrucţiuni paralele şi menţine o densitate
mare a codului;
= setul ortogonal de instrucţiuni permite compilatoarelor să
genereze cod eficient;
= hardware-ul suportă reprezentarea numerelor întregi şi
subunitare cu sau fără semn, modul de reprezentare este la alegerea
programatorului.
• oferă performanţă scalabilă:
= SC140 dipune de şase unităţi de execuţie (patru unităţi
aritmetice şi logice şi două unităţi de adresare);
= la o alimentare redusă sunt posibile patru milioane de
operaţii MAC (Multiply and ACcumulate) pe secundă pentru
fiecare MHz din frecvenţa clock-ului;
= dispune de suport pentru implementarea de acceleratori de
aplicaţie.
• se poate obţine densitate mare de cod datorită unui set de
instrucţiuni bogat şi ortogonal;
• execuţiei de tip VLES;
codarea instrucţiunilor pe 16 biţi.
• dispune de suport îmbunătăţit pentru aplicaţii multi-tasking:
• hardware-ul dispune de suport optimizat de stive;
• magistralele de date sunt largi şi oferă suport pentru schimbarea
de context.
• Optimizarea managementului puterii (proiectat pentru consum de
energie redus, moduri noi de economisire a energiei, clock de control
dinamic);

32
• dispune de o interfaţă eficientă pentru memorie şi dispozitive
I/O:
= spaţiu unificat pentru memoria de date şi program;
= spaţiu de adresare pe 32 de biţi pentru date şi
program;
= SRAM cu zero wait-state pe chip; = clock
indpendent pentru memoria externă.
• Organizarea core-ului suportă configuraţii SOC (System On-
Chip) flexibile.
Un exemplu de configuraţie SOC este prezentat în Fig. .7.
SC140 poate să execute şase instrucţiuni simultan (patru operaţii aritmetice
şi logice şi două operaţii de adresare). Instrucţiunile grupate pentru a fi executate în
paralel sunt referite ca set de execuţie. Instrucţiunile sunt grupate pentru execuţie
în paralel în timpul compilării sau de către programatorul în limbaj de asamblare.

33
Nivel 1- Extensie memorie Extensie
(memorie unificata) System

CORE DSP SC140 DMA


INT
Cache
Secventiator program

4 2
ALU AAU

Nivel 2
Extensie
memorie
Periferice standard
Acceleratoare speciale
Acceleratoare de uz general

Fig. .7 Configuraţii SOC cu SC140

3.14 Schema bloc a SC14

Schema bloc este reprezentată în Fig. .8.

Principalele blocuri funcţionale ale SC140 sunt:

• Unitatea aritmetică şi logică de date - DALU (Data Arithmetic


and Logic
Unit);

34
• Unitatea de generare de adrese - AGU (Address Generator Unit);
• secvenţiatorul de program - PSEQ (Program SEQuencer).
Schimbul de date între core şi blocurile funcţionale din circuitul DSP este realizat
prin următoarele magistrale:
• două magistrale de memorie (două perechi adrese/date: ABA,
DBA şi ABB, DBB) pentru a accesa datele din memorie;
• două magistrale de memorie (PAB, PDB) pentru a transfera
cuvinte instrucţiune;
• magistrale speciale pentru conectarea în imediata apropiere a
core-ului un set de instrucţiuni de accelerare.

Memorie unificata Date / Program

PDB PAB ABB DBA DBB

Reg adrese
27*32b
(16 gen.)

EOnCE
PSEQ SET.
Sevventiator Instr
Program
Registre generale date
Acc.
16*40b
Manageme
nt putere
128

Gen. clock AA AA AA ALU ALU ALU ALU


U U U
PLL

Fig. .8 SC140 - Schema bloc funcţională

35
3.15 Unitatea aritmetică şi logică de date – DALU

DALU execută operaţii logice şi aritmetice asupra operanzilor.


Componentele DALU
sunt:
• un bloc de 16 registre de 40 biţi;
• patru unităţi aritmetice şi logice (ALU) fiecare conţinând câte o
unitate MAC (Multiply and ACcumulate) şi câte o unitate BFU (Bit Field
Unit);
• opt registre de deplasare/limitare ca legătură a blocului de 16
registre generale de 40 de biţi spre magistrala de date cu memoria de 128
de biţi.
Unităţile MAC pot realiza multiplicări 16*16 întregi sau subunitare de
numere cu semn sau fără semn; produlsul este rotunjit la dreapta, se extinde
semnul şi poate fi adunat într-un registru general de 40 de biţi. într-un ciclu de
clock pot fi executate patru instrucţiuni ALU simultan.
Unităţile BFU conţin câte un registru de 40 de biţi bidirecţional, o unitate de
generare de mască şi o unitate logică. BFU sunt folosite în următoarele operaţii:

• deplasare pe mai multe poziţii (dreapta/stânga);


• rotire cu un bit;
• inserarea sau eliminarea unui bit;
• numărarea de biţi 1 sau 0;
• operaţii logice;
• extensie de semna sau 0.
Registrele generale de date pot fi scrise/citite prin magistralele DBA, DBB.
Un registru poate fi sursă pentru patru operaţii ALU (simultane), dar nu poate fi
destinaţia a mai multor operaţii simultane. Operanzii aritmetici provin de obicei
din registrele generale; un registru poate fi de asemenea destinaţia pentru rezultatul

36
unei operaţii, şi acest registru poate fi folosit ca sursă în operaţia imediat
următoare.
Datorită faptului că cele două magistrale de date ale DALU spre memorie
sunt fiecare de câte 64 de biţi, (DBA, DBB) este posibil să se execute în paralel
două transferuri de date, MOVE, fiecare de câte un cuvânt de până la 64 de biţi sau
transferuri multiple în limita lărgimii de 64 de biţi. Sunt posibile următoarele tipuri
de transferuri:
• MOVE.B - transferă cuvinte de 8 biţi;
• MOVE.W sau MOVE.F - transferă întregi, respectiv numere
subunitare reprezentate pe 16 biţi;
• MOVE.2W, MOVE.2F sau MOVE.L - transferă două numere
întregi, două numere subunitare, respectiv cuvinte lungi, fiecare de câte
32 de biţi;
• MOVE.4W sau MOVE.4F - transferă patru întregi, respectiv
patru numere subunitare reprezentate fiecare pe câte 64 de biţi;
• MOVE.2L - transferă două cuvinte lungi, adică 2*32 biţi.
Structura permite executarea a oricărei combinaţii de două instrucţiuni
MOVE în paralel într-un ciclu de clock, astfel rata maximă de transfer cu memoria
de date este de 4.8 GBytes/s (la 300 MHz).

3.16 Unitatea de generare a adreselor – AGU

AGU conţine registre de adrese şi execută calculul adreselor pentru


accesarea memoriei utilizând aritmetica numerelor întregi. AGU operează în
paralel cu alte resurse ale core-ului.
AGU dispune de două unităţi aritmetice de adresare (AAU - Address
Arithmetic Unit) cu care poate genera două adrese de memorie în fiecare clock.
Cele două unităţi AAU sunt identice. într-un ciclu de execuţie pot fi executate două
operaţii de adresare în paralel.

37
Blocul de registre de adrese este compus din mai multe registre de 32 de biţi,
distre care 16 sunt de uz general iar celelalte sunt utilizate pentru a specifica tipul
operaţiei utilizate pentru în calculul adresei. O unitate AAU actualizează un
registru de adresare într-un ciclu de clock. SC140 dispune de instrucţiuni explicite
pentru a opera indicatorii de adresă, capabilitate care poate fi utilizată şi pentru a
efectua calcule aritmetice asupra datelor.
AGU generează adrese pentru salturi în program şi actualizează indicatorii
de stivă corespunzător. în blocul registrelor de adresare există două registre
indicator de stivă, fiecare de câte 32 de biţi; existenţa a doi indicatori de stivă
permite alocarea separată a stivei utilizate de către sistemul de operare şi de fiecare
aplicaţie ce rulează, ceea ce optimizează utilizarea memoriei în sistem multi-
tasking.
Unitatea pentru mască de bit BMU (Bit Mask Unit) facilitează operaţii de
setare, resetare, inversare sau testare a unui grup de biţi dintr-un registru sau dintr-
o locaţie de memorie (biţii pot să nu fie adiacenţi). Deoarece există o singură
unitate BMU, într-un ciclu de execuţie poate fi executată o singură instrucţiune cu
mascare de bit. Un subgrup al instrucţiunilor cu mască de bit (BMTSET)
furnizează suport pentru semaforizare.

3.17 Unitatea secven ţiator de program – PSEQ

PSEQ este unitatea care execută fetch-ul instrucţiunii, dispatch-ul


instrucţiunilor, controlul buclelor hardware, procesarea excepţiilor şi este compus
din trei blocuri hardware:
• PDU (Program Dispatch Unit) - detectează setul de execuţie
dintr-unul sau două cicluri fetch şi alocă instrucţiunile blocurilor
funcţionale unde acestea vor fi decodificate;

38
• PCU (Program Control Unit) - controlează desfăşurarea
programului;
• PAG (Program Address Generator) - generează conţinutul pentru
numărătorul de program pentru fetch-ul instrucţiunilor, inclusiv buclele
hardware.

3.18 Unitatea de emulare în circuit – EonCE

EOnCE (Enhanced On-Chip Emulator) este modulul care permite


interacţiunea cu core-ul SC140 şi cu periferia printr-o interfaţă JTAG. Utilizatorul
poate examina registrele, memoria sau perifericele din circuit, facilitate utilă atât în
dezvoltarea hardware cât şi dezvoltarea de software.

Setul de instrucţiuni de accelerare


Setul de instrucţiuni de bază SC140 poate fi completat de utilizator în scopul
creşterii performanţei în aplicaţii particulare. Instrucţiunile suplimentare sunt
executate într-un modul
exterior core-ului; noile instrucţiuni sunt adăugate asamblorului şi compilatorului
prin biblioteci intrinseci.

3.19 Setul de instrucţiuni

Setul de instrucţiuni a fost proiectat în aşa fel încât executarea paralelă a


algoritmilor DSP şi a codului de control să fie cât mai eficientă. Pentru execuţia
instrucţiunilor în paralel trebuiesc respectate reguli de programare deoarece
resursele utilizate în paralel sunt limitate; deoarece există patru ALU şi două AAU,
un set de execuţie poate să conţină cel mult patru instrucţiuni ALU sau cel mult
două instrucţiuni AGU.
Setul de instrucţiuni SC140 este destul de ortogonal deoarece majoritatea
instrucţiunilor sunt simple şi specifică o singură operaţie. Spre deosebire de unele

39
procesoare VLIW (Very Long Instruction Word), setul de instrucţiuni SC140 este
format din instrucţiuni destul de scurte, de 16 biţi, a căror funcţionalitate poate fi
extinsă folosind prefixe sau extensii. Instrucţiunile scurte, de multe ori determină
proiectanţii procesoarelor să impună restricţii pentru folosirea registrelor. La
SC140 sunt evitate restricţiile utilizării registrelor prin utilizarea cuvintelor de
prefix. Cu excepţia instrucţiunilor speciale pentru decodare Viterbi, toate
instrucţiunile SC140 sunt fără restricţii. Există în schimb restricţii în gruparea
instrucţiunilor într-un set de execuţie, ceea ce complică programarea în limbaj de
asamblare.
Pentru execuţia rutinelor pentru procesarea de semnal, instrucţiunile pot fi
grupate pentru a fi executate în paralel. Grupul de instrucţiuni executate în paralel
reprezintă un set de execuţie, fiecare instrucţiune din setul de execuţie utilizează o
unitate de execuţie. Instrucţiunile din cadrul aceluiaşi set de execuţie îşi încep
execuţia în acelaşi moment; un nou set îşi începe execuţia numai după ce s-a
terminat execuţia tuturor instrucţiunilor din setul anterior. Sunt utilizate două
metode pentru a specifica faptul că o instrucţiune face parte dintr-un set de
execuţie:
• grupare serială- foloseşte cei mai semnificativi doi biţi din
instrucţiune pentru a determina sfârşitul unui set de execuţie;
• grupare prefixată- se adaugă un prefix de unul sau două cuvinte
unui set de execuţie care defineşte numărul de instrucţiuni incluse în setul
de execuţie.

Gruparea instrucţiunilor pentru execuţie în paralel foloseşte modelul VLES


(Variable Length Execution Set). Acest model menţine densitatea codului
compactă pentru aplicaţii.
Modelul VLES :

40
• defineşte un mecanism pentru specificarea lungimii unui set de
execuţie;
• adaugă biţi adiţionali la generarea codului doar dacă este
necesar;
• codul este generat transparent de către asamblor.

Unelte de dezvoltare a programelor


în generarea codului pentru SC140, programatorul este asistat de:
• SC100 C Compiler;
• SC100 Assembler;
• SC100 Linker;
• SC100 Utilities;
• Sc100 Simulator.
Compilatorul C are proprietatea de a transfera codul sursă C într-un cod de
asamblare optimizat. Compilatorul permite schimbarea nivelului de optimizare,
pentru rezultatele cele mai bune, în final, se aplică optimizarea globală.
Compilatorul C are următoarele caracteristici:
• este conform cu standardul ANSIC;
• are medii şi biblioteci runtime;
• permite integrarea uşoară a secvenţelor de programare.
Asamblorul converteşte codul de asamblare scris de programator sau generat de
compilator în fişiere obiect cu extensia ELF. Caracteristicile asamblorului sunt:
• evaluarea expresiilor folosind constante de tip şir şi numerice,
operatori şi funcţii încorporate;
• programarea modulară folosind secţiuni;
• macrouri care permit variabile ca argument;
• asamblare condiţională.
Link-editorul combină fişierele obiect şi arhivă, realocă datele lor, ajustează
referinţa la simboluri şi generează un fişier executabil. Link-editorul permite ca un

41
program lung să se poată desface în module mai mici, manipulabile mai uşor, care
pot fi asamblate separat.
Utilitarele SC100 folosesc la procesarea sau interpretarea fişierelor obiect;
ele se numesc Archiever, Disassembler, ELF File Dump, Name, Size.
Simulatorul SC100 este o unealtă interactivă de simulare care permite
măsurarea timpului de execuţie cu acurateţea ciclurilor de clock. Simulatorul
duplică funcţiile core-ului SC140 incluzând actualizarea memoriei şi a registrelor
asociate cu execuţia codului şi activitatea de procesare a excepţiilor. Funcţiile
principale ale simulatorului sunt:
• încarcă fişierele executabile în memoria simulatorului;
• citeşte valorile din memorie pentru un fişier de intrare sau
salvează valorile din memorie într-un fişier de ieşire;
• raportează sesiunile de simulare;
• examinează sau schimbă conţinutul registrelor şi al memoriei;
• controlează execuţia programului prin:
= setare de breakpoint-uri;
= salt peste un număr specificat de instrucţiuni.

3.20 Modulul de dezvoltare MSC8101 ADS

Modulul MSC8101 ADS (Application Development System) este o


platformă pentru dezvoltări software şi hardware de aplicaţii cu procesorul DSP
MSC8101. Utilzând resursele modulului şi debuggerul, este posibilă încărcarea şi
rularea de cod executabil, se pot seta breakpoint-uri, poate fi vizualizat conţinutul
memoriei şi al registrelor. Conectarea la modul este posibilă prin magistrale şi
conectori de extensie.In continuare sunt prezentate principalele componente ce
intră în echiparea modulului:
• controller MSC8101 - StarCore, 64b, 300MHz
• 8M Flash SIMMx32, 16M SDRAMx32

42
· FPGA pentru BSCR (Board Control and Status Register)
· conectori de extensie pentru analizor logic MICTOR interfaţă optică
· ATM - 155Mbps port Ethernet10/100-Base-T
SDRAM

Clock Buffer 13 pini


estensie

Transeeiver Flash
Date & adres SIMM
MSC
8101
Registru
Control & stare

D-9
14 pin 2. RS-232
JTAG
Controllr RJ45-8
Ethernet 10/100Base T

Controller Optic
Interfata optica ATM 155

Controller 4+RJ45
TI/EI TI/EI

DIM 41612
Extensie CMP

Mic/ linie stereo


CODEC
CS 4221
Amplificare audio stereo

Fig. .9 Schema bloc a modulului MSC 8101 ADS


• 4 canale Tl/El
• CODEC audio stereo pe 24 biţi
• 2 porturi RS-232
• port JTAG

43
Codul aplicaţiei software pentru MSC8101 poate fi transferat modulului prin
portul JTAG. Scrierea codului şi generarea executabilului necesită un calculator
compatibil PC pe care să ruleze unul din sistemele de operare Solaris, Windows
NT 4.0 sau Windows 9x. Pentru scrierea şi depanarea programului este utilizat un
mediu integrat de dezvoltare.

Schema bloc a modulului este reprezentată în Fig. .9.


Imaginea modulului este prezentată în Fig. .10.

Fig..10 Modulul de dezvoltare MSC8101 ADS

Modulul de dezvoltare poate opera în trei moduri:

44
• operare controlată de un calculator gazdă prin portul OnCE (un
subset al portului JTAG);
• operare prin interfaţa HDI16;
• operare independentă.
In modul de operare controlată, se realizează o conexiune între interfaţa
JTAG/OnCE a modulului şi portul paralel al unui calculator PC printr-un convertor
de interfaţă. Această configuraţie permite depanarea aplicaţiilor care rulează pe
modul utilizând un debugger care rulează pe calculatorul PC.
In modul de operare prin interfaţa HDI16, modulul foloseşte o interfaţă
HDI16 conectată direct la magistrala de date a unui procesor gazdă. în acest mod
de operare este posibilă o legătură full-duplex pe 16 biţi. Interfaţa HDI16 suportă o
conexiune cu un microprocesor/microcontroller sau cu un controller DMA.
In modul de operare independentă, modulul nu este conectat la calculatorul
gazdă prin portul JTAG/OnCE, ci prin una din interfeţele RS-232, T1/1, ATM155
(optic) sau Ethernet. în modul de operare independent este necesare o sursă de
boot-are şi software care să controleze interfaţa utilizată.

4. Evolutia controlerelor digitale de semnal

45
Articolul a fost inspirat de amalgamarea produsa, in ultimii ani, intre
microcontrolere si DSP-uri. Din aceasta combinatie a rezultat o noua categorie de
dispozitive cunoscute ca DSC sau Digital Signal Controller (Controlere digitale de
semnal). Un DSC combina atributele de control ale unui MCU cu puterea de calcul
rapid specific unui DSP creand astfel o arhitectura hibrida care este perfecta pentru
multe dintre problemele de inginerie ce necesitau in trecut deopotriva un MCU si un
DSP.
Acest articol va prezenta intai evolutia DSP-urilor si a MCU-urilor, iar apoi va
discuta caracteristicile comune care au condus in final la noua categorie de dispozitive
- DSC. Ca exemplu va fi utilizata familia de DSC-uri Motorola 56800 si la final va fi o
discutie a caracteristicilor ce sunt optimizate pentru o aplicatie tipica a unui DSC -
controlul unui motor.
Evolutia DSC-urilor este aratata in figura 1. DSC-ul este un dispozitiv hibrid
intre un DSP si un MCU, dar va coexista cu acestea si in viitor. Diagrama ilustreaza si
un MPU: un procesor cu grad mare de integrare ce nu contine periferice integrate on-
chip, cum ar fi memoriile.
Un DSP este un tip foarte specializat de microprocesor. Arhitectura DSP a fost
dezvoltata pentru a executa un numar mic de comenzi si operatii specifice intr-un timp
cat mai scurt cu putinta. Aceasta cerinta de rapiditate a executiei instructiunilor vine
din necesitatea de a prelucra semnale analogice intr-un mediu digital, unde matematica
specifica procesarii digitale a semnalelor este mai convenabila.
Clasic, aceasta functie era realizata cu filtre analogice (hardware) mai degraba
decat cu tehnici digitale bazate pe software. Un aspect cheie este acela ca procesarea
de semnale trebuie sa se faca in timp real. Aceasta deoarece semnalele de intrare ce
necesita procesare sunt folosite in aplicatii precum telefonia, televiziunea, sistemele
multimedia sau unitatile CD audio unde, evident, semnalele trebuie prelucrate
instantaneu. Daca un DSP nu poate prelucra semnalele suficient de rapid aplicatia nu
va fi efectiva (ganditi-va la o intirziere la celalalt capat al firului in timpul unei

46
convorbiri telefonice).
MCU-urile au fost dezvoltate pentru a oferi un grad mare de flexibilitate prin
programabilitate, dar aceasta pe seama performantei. Toate operatiile care pot fi
efectuate pe un DSP pot fi rulate si pe un MCU (sau un MPU, care este la fel minus
perifericele integrate on-chip). Diferenta este ca un MCU va fi mai lent la operatiile de
tip procesare de semnal, dar va fi capabil de multiple alte tipuri de operatii cu date. De
aceea, aplicatiile in care se va utiliza un MCU vor avea de regula o bucla de control
care este de asteptat sa ceara un numar de sarcini diverse mai degraba decat calculele
rapide si repetitive specifice algoritmilor DSP.
In concluzie, dispozitivele MCU sunt optimizate pentru o larga paleta de operatii
aritmetice, logice si de diagnosticare, pentru orice combinatie de date de intrare de la
diverse surse in timp ce DSP-urile sunt foarte eficiente pentru operatii numerice
repetitive.

4.1 Operatii tipice pentru DSP-uri :

Sunt acele operatii de calcul repetitive ce sunt atat de bine controlate de un DSP.
Acestea sunt in special operatiile de multiplicare si adunare, operarea de intarzieri si
operatii cu siruri de date. Figura 2 ilustreaza un filtru simplu de tip FIR (Finite Impulse
Response), una dintre aplicatiile cele mai comune ale DSP-urilor utilizate in
procesarea grafica si audio.
Diagrama ilustreaza operatiile de baza realizate de un DSP. Operatiile de
intarziere solicita procesorului sa retina datele pentru o utilizare ulterioara prin
stocarea intr-un registru de date. Operatiile de multiplicare si adunare se efectueaza
asupra datelor culese din diferite locatii, iar rezultatul acestor operatii este stocat intr-
un registru de rezultate "temporar". Intrucat datele reprezinta un flux continuu (similar
cu semnalul analogic) ele sunt stocate in locatii de memorie succesive. Adresele
consecutive ce sunt des utilizate cu astfel de date pot fi manuite cu usurinta folosind
moduri de adresare ce permit incrementarea automata a continutului registrelor.

47
Arhitectura DSP este optimizata sa permita rularea unor astfel de operatii simple foarte
rapid. De obicei, cateva functii de tipul "multiply and accumulate" (sau MAC) pot fi
rulate intr-un singur ciclu.

4.2 Detalii tehnice ale DSP-urilor si MCU-urilor

Exista cateva caracteristici particulare considerate ca fiind specifice fie DSP-


urilor fie MCU-urilor. De fapt, aceste caracteristici sunt atributele definitorii pentru a
stabili categoria din care face parte produsul. DSC-urile au adoptat toate aceste atribute
incorporandu-le intr-o structura hibrida. Iata in continuare descrierea de baza a acestor
caracteristici specifice.
Prima cerinta a unui DSP este existenta unei sectiuni hardware care sa execute
operatiile MAC; de asemenea este necesar un bit "de control" in registrul de rezultate
care sa previna depasirea capacitatii registrului de catre un rezultat al unor instructiuni
MAC. Multe MCU includ de asemenea instrutiuni MAC desi nu exista MCU-uri
clasice care pot concura cu capabilitatile de procesare paralela MAC (mai multe
operatii intr-un ciclu) ale DSP-urilor dedicate de inalta performanta.
O alta cerinta specifica DSP-urilor este abilitatea de a accesa mai multe locatii
de memorie simultan. Aceasta permite apelarea simultana atat a datelor cat si a
instructiunilor conducand astfel la o crestere importanta a randamentului. Acest tip de
arhitectura este cunoscut sub numele de "Harvard" si necesita bus-uri separate pentru
date si instructiuni. Desi MCU-urile folosesc in mod normal arhitectura conventionala
"Von Neumann", folosind acelasi bus pentru date si instructiuni, din ce in ce mai multe
MCU-uri preiau acum arhitectura Harvard.
Cea de-a treia caracteristica, ce a fost privita mult timp ca fiind definitorie
pentru DSP-uri, este capacitatea de a forma adrese si de a extrage operanzi fara a
conduce la gatuiri. Exista generatoare de adrese pentru unitatile de executie ale unui
DSP, ce opereaza autonom in timp ce instructiunile sunt executate. Modurile de
adresare folosite sunt optimizate pentru a permite accesul repetitiv la locatiile

48
succesive de memorie in care sunt stocate datele.
Aceste atribute sunt relativ comune pentru MCU-uri - moduri de adresare cum ar fi
"Register-indirect with post increment" vor permite MCU-urilor sa acceseze structurile
de date organizate intr-un mod similar cu cel de la DSP-uri.
Circuitele "Barrel shifter" reprezinta cel de-al patrulea element hardware al
DSP-urilor. Acest tip de circuit este folosit pentru a manipula rapid continutul
registrilor in scopul scalarii datelor. DSP-urile cu virgula fixa necesita scalarea datelor
pentru a genera acelasi "interval dinamic" ca la procesoarele cu virgula mobila.
Desigur, actiunea unui "barrel shifter" poate fi emulat software, dar acest proces
necesita timp care probabil nu este disponibil in aplicatiile audio sau video in timp
real. Circuitele hardware barrel-shifter sunt deja caracteristici populare pentru MCU-
urile recente.
Cea mai importanta caracteristica a unui MCU traditional si care il diferentiaza
de un DSP, este capacitatea de a putea fi utilizat ca circuit de uz general ce se regaseste
in setul de instructiuni si modurile de adresare. Un MCU va include instructiuni de
control, instructiuni de manipulare a bitilor si abilitatea de a manipula usor datele
folosind un "stack pointer (indicator de stiva). Un indicator de stiva dedicat si
adresarea relativa a indicatorului de stiva simplifica operatiile unui compilator si
permite codului compilat sa fie optimizat la cea mai mica dimensiune posibila.
O alta caracteristica asociata categoriei MCU este includerea perifericelor on-
chip. Chiar daca DSP-urile moderne includ in mod clar module periferice ca memorii
si controlere de comunicatii seriale, MCU-urile sunt acele componente de pe un PCB
care fac circuitele periferice clasice inutile. Nu exista motive tehnologice pentru care
circuitele DSP sa nu includa asemenea periferice chiar daca, in general, un circuit care
cere astfel de functii este mai probabil sa necesite un controler ca element central spre
deosebire de o arhitectura specializata a unui circuit de calcul rapid.
O ultima caracteristica asociata mai degraba cu MCU-urile decat cu DSP-urile
este capacitatea de tratare rapida a intreruperilor. Aceasta este necesara cand pe chip

49
sunt incluse multe periferice integrate intrucat in aceasta situatie exista mai multe surse
de intreruperi ce trebuie tratate de sistem.

4.3 Fuzionarea circuitelor MCU si DSP

Daca ne uitam la caracteristicile folosite pentru definirea produselor DSP si


MCU este clar ca pe ambele tipuri de dispozitive evolueaza acelasi tip de hardware.
DSC-ul este doar un pas logic in evolutia acestei categorii de produse.
DSC-urile au evoluat datorita cererii in aplicatii care necesitau atat MCU-uri cat si
DSP-uri a unor circuite efective din punctul de vedere al costului. Un DSC va inlocui
ambele chip-uri. Controlul unui motor este un exemplu de aplicatie de acest tip. Din
acest motiv multe dintre perifericele integrate in DSC-uri, cum ar fi Pulse Width
Modulated Timers, Analog-to-Digital Converters sunt de asemenea necesare pentru
controlul motoarelor.
Avantajele integrarii pe un singur chip DSC sunt aceleasi care au stat la baza
integrarii de-a lungul timpului: reducerea costului, reducerea spatiului ocupat de
componente sau cresterea fiabilitatii.
Beneficiul incorporarii tuturor acestor caracteristici intr-o singura arhitectura
mai degraba decat prin utilizarea unui co-procesor (de exemplu un MCU cu un co-
procesor DSP) este ca va fi necesar sa se dezvolte un singur program software. Aceasta
cale reduce semnificativ resursele, altfel folosite atat pentru MCU cat si pentru DSP -
unelte de dezvoltare, personal, curbe de invatare etc. Amandoua, sectiunea de control
si cea de procesare de semnal, sunt incluse in acelasi algoritm.
Continuare in numarul viitor cu 56800 Digital Signal Controller

DSP este un acronim pentru Digital Signal Processing (procesare digitala


de semnal) si reprezinta o familie de aplicatii care trateaza o gama larga de
semnale (audio, video etc.) prin procesarea lor intr-un microcomputer digital foarte
specializat. Acesta din urma este cunoscut tot sub numele de DSP - Digital Signal

50
Processor, sau procesor digital de semnal.
Care este de fapt locul aplicatiilor cu DSP? Procesoarele digitale de semnal preiau
in timp real informatia de mare viteza si o manipuleaza in multiple moduri si
scopuri. Cu DSP putem restaura vechi inregistrari pe suport de vinyl la claritatea
originala, putem sterge zgomotul static din liniile telefonice internationale si putem
„vedea” din sateliti detalii ale unor obiecte de dimensiunea unei mingi de golf. In
autoturisme, DSP-urile creeaza, in linia audio, sunetul spatial (surround), in timp
ce raspund de sistemele de suspensii active, franele ABS sau injectia electronica.
In telefonia mobila, prin procesarea digitala de semnal putem „inghesui” mai multe
conversatii pe undele aeriene, simultan cu codificarea lor pentru prevenirea
interceptarii. Procesoarele digitale de semnal pot fi intalnite in aparatele de
monitorizare medicale, in aparatele auditive, supercalculatoare sau modemuri. Sunt
folosite in detectoare radar, in televizoare digitale sau combine audio, instalatii de
amplificare si laser pentru spectacole. DSP-urile sunt, de fapt, o parte componenta
a existentei noastre moderne, translatand semnalele in inteligenta si permitandu-ne
sa luam decizii mai precise, intr-un timp mult mai scurt.

4.4 Arhitectura DSP


Desi exista o multitudine de procesoare DSP, ele contin un set comun de
caracteristici care pot fi
clasificate in trei categorii: o aritmetica specializata de mare viteza, o capacitate de
transfer de date din si catre procesul continuu si o arhitectura de accesare multipla
a memoriei. Functionarea unui DSP consta din cateva operatii specifice: adunari si
multiplicari, intarzieri (delay) si calcul matricial. Fiecare dintre aceste operatii
necesita cateva conditii specifice: adunarile si multiplicarile presupun citirea
simultana a doi operanzi, executarea operatiilor (de obicei in acelasi timp),
salvarea rezultatului sau retinerea lui pentru repetare; intarzierile presupun
retinerea unei valori pentru utilizarea sa ulterioara; calculul matricial consta in
preluarea datelor din locatii consecutive de memorie sau copierea datelor intre

51
zone diferite de memorie.
Pentru a putea obtine aceste performante obligatorii, procesoarele de semnal
trebuie sa ofere posibilitatea efectuarii in paralel a multiplicarii si adunarii,
accesarii multiple a memoriei si generarii eficiente a adreselor, sa contina o
multitudine de registri de retinere temporara a datelor, precum si facilitati speciale
cum ar fi intarzierile si adresarea circulara.
Cele mai multe operatii pe care le efectueaza un DSP constau in multiple adunari si
multiplicari. Pentru a citi doi operanzi intr-un singur ciclu de instructiune va trebui
sa avem simultan doua accesari ale memoriei. De fapt, gandindu-ne ca va trebui sa
salvam rezultatul si sa citim instructiunea insasi, vom dori sa avem mai mult de
doua accesari ale memoriei intr-un acelasi ciclu de instructiune. Se stie ca nu se pot
accesa doua adrese de memorie diferite pe aceeasi magistrala (bus) de date. Totusi,
accesarea multipla este posibila in cazul DSP folosind doua tehnologii derivate din
modelele arhitecturale adoptate: arhitectura Harvard sau arhitectura von Neuman
modificata.
In arhitectura Harvard, DSP are doua magistrale separate de memorie. Acestea
permit accesarea simultana a doua loca-tii de memorie. In procesoarele de uz
general, una dintre magistrale este dedicata citirii codului instructiunii, iar cealalta
aducerii operanzilor. Arhitectura Harvard-DSP permite ca magistrala de program sa
poata fi folosita pentru citirea operanzilor. Deoarece avem simultan nevoie de trei
informatii, Harvard-DSP include o memorie cache care poate stoca instructiunile
comune ce vor fi reutilizate, lasand ambele magistrale libere pentru operanzi.
Aceasta exten sie poarta denumirea de Super Harvard ARChitecture (SHARC).
Exista si un dezavantaj al arhitecturii Harvard. Un DSP care proceseaza cuvinte de
32 de biti, la un spatiu de memorie cu adrese de 32 de biti, necesita cel putin 64 de
pini pentru fiecare magistrala de date, deci un total de 128 de pini pentru
conectarea cu exteriorul. Rezultatul este un cip foarte mare, greu de amplasat in
circuite dedicate.

52
In acelasi timp, chiar si cea mai sim-pla operatie DSP - o adunare de doi operanzi
si o stocare a rezultatului in memorie - necesita patru accesari ale memoriei (trei
pentru aducerea operanzilor si instructiunii si o salvare a rezultatului). Depasirea
capacitatilor oferite de arhitectura Harvard este rezolvata, in unele procesoare, prin
adoptarea unei alte arhitecturi, denumita von Neuman modificata.
Arhitectura von Neuman foloseste o singura magistrala de memorie. Din acest
motiv este mai ieftina (necesitand mai putini pini) si mai simplu de utilizat
deoarece programatorul poate plasa instructiuni sau date oriunde in memoria
disponibila. In schimb, arhitectura nu permite acces multiplu de memorie. Totusi,
structura von Neuman modificata poate permite accesul multiplu intr-un ciclu de
instructiune folosind un simplu truc de setare a frecventei de memorie mai ridicata
decat cea a ciclului de instructiune. De exemplu cipul DSP32C al firmei Lucent
ruleaza cu un ceas la 80 MHz. Aceasta frecventa este divizata cu patru pentru a
obtine 20 de milioane de instructiuni pe secunda (MIPS), dar memoria este
accesata la frecventa maxima de 80 MHz - fiecare ciclu de instructiune este
impartit in patru stari, iar un acces la memorie se poate face in oricare dintre
acestea, permitand un total de patru accesari intr-un ciclu de instructiune.
In ambele cazuri, rolul programatorului este de a administra cu atentie loca-tiile de
memorie unde este amplasata informatia: de exemplu, in cazul arhitecturii
Harvard, daca ambii operanzi se gasesc in acelasi banc de memorie, ei nu pot fi
accesati simultan.

4.5 Hardware intr-un cip

Desi exista multe tipuri de procesoa-re, ele sunt in majoritate proiectate pentru a
detine cateva caracteristici comune. In inima arhitecturii DSP se afla unita tea
centrala de procesare (CPU). Aceasta este alcatuita din urmatoarele elemente: un
multiplicator in virgula fixa sau mobila, o unitate aritmetica si logica (ALU), un set

53
de registri si magistralele aferente. Primii opt dintre registri suporta operatii cu
numere in virgula mobila de 40 de biti, sau intregi de 32 de biti. Urmatorii opt sunt
registrii auxiliari a caror functie principala este generarea adreselor de memorie.
Doi registri aritmetici auxiliari pot genera doua adrese intr-un singur ciclu de tact,
functionand in paralel cu multiplicatorul si ALU. Ceilalti registri sunt denumiti
registri de control, avand acces la o multitudine de functii: adresare, managementul
stivelor, intreruperi etc.
In cipul DSP se afla un controler DMA (Direct Memory Access). Acesta este
capabil sa citeasca si sa scrie in orice locatie de memorie fara a intrerupe
functiona-rea CPU-ului. Controlerul DMA are propriile sale generatoare de adrese,
regis-trii sursa si destinatie, un numarator de transfer si un mecanism de raspuns la
intreruperi.
Comunicatia DSP cu exteriorul se efectueaza printr-o serie de module periferice,
accesate prin registri speciali de memorie si amplasate pe o magistrala dedicata.
Cele mai importante module periferice sunt timerele si porturile seriale, insa ele
pot fi extinse in functie de aplicatie si sistemul in care DSP-ul este integrat.
Timerele contin cate un pin bidirectional care poate fi folosit ca intrare de ceas, sau
ca semnal de iesire controlat de timer. Pinii porturilor seriale sunt configurabili
pentru a indeplini functii generale de intrare-iesire.

4.6 Contactul cu realitatea


Pe langa calcule matematice, in practica, procesorul digital de semnal trebuie sa
comunice cu lumea reala. Intr-o aplicatie DSP tipica, procesorul va trebui sa
prelucreze date provenite de la multiple surse.
El va trebui sa poata primi si transmite date in timp real, fara a-si intrerupe
calculele matematice interne. Majoritatea aplicatiilor DSP implica tratarea

54
semnalelor analogice. Acestea trebuie convertite in forma digitala (cu ajutorul unor
convertoare A/D), intr-o secventa discreta de valori masurabile. O buna parte din
informatie este pierduta la conversia analog-digitala datorita impreciziei de
masurare, inacuratetei in sincronizare, limitari ale duratei de efectuare a masurarii.
Aceste efecte sunt numite erori de cuantizare.
Semnalul continuu, analog, trebuie sa fie retinut inainte de a fi esantionat. Altfel s-
ar putea modifica in timpul masurarii. Dupa ce a fost retinut, semnalul va fi
masurat si apoi convertit intr-o valoare digitala. Prin esantionare obtinem o
multime de numere in format binar ce reprezinta marimi ale semnalului, luate de
obicei la intervale constante de timp.
Exista trei moduri de interactiune a DSP-ului cu lumea reala: prin semnale care
sunt receptionate si transmise direct, prin comunicarea cu un sistem de control de
tip diferit sau prin comunicarea cu alte procesoare DSP de acelasi tip. Aceste cai de
comunicatie multiple marcheaza cea mai importanta distinctie dintre procesoarele
DSP si procesoarele obisnuite.
Sistemele care contin DSP trebuie sa functioneze in timp real, capturand si
procesand informatia pe masura ce se schimba. Mai intai convertoarele analog-
digitale trebuie sa tina pasul cu modificarile continue ale datelor reale. Daca raman
in urma, informatia se pierde, iar semnalul este distorsionat. Convertorul A/D
„fotografiaza” semnalul la intervale suficient de mici pentru a observa fluctuatiile
relevante, iar DSP efectueaza toate calculele necesare pana in momentul in care o
noua „fotografie” apare pentru a fi procesata. Semnalul audio stereo trebuie
prelucrat la frecvente de pana la 20 kHz (20.000 de cicluri pe secunda), obligand
DSP-ul sa realizeze sute de milioane de operatii pe secunda. Alte semnale, cum ar
fi transmisiile prin satelit, sunt si mai rapide, ajungand la ordinul gigahertzilor
(miliarde de cicluri pe secunda).
Cand primele procesoare DSP au aparut pe piata, ele erau destul de rapide: de
exemplu primul DSP - AT&T DSP32 - functiona la 16 MHz, in perioada in care

55
frecventa procesoarelor din PC-uri era de 5 MHz. Intr-o demonstratie a
superioritatii de viteza a DSP, celebra la vremea respectiva, un calcul de fractal
(Mandelbrot) era rulat in paralel pe un PC obis-nuit si pe unul in care se
introdusese o placa cu DSP. Astazi, insa, cel mai rapid procesor DSP este cel
produs de Texas Instruments, TMS 320C6201, care ruleaza la 200 MHz. Evident,
nu este cel mai rapid in comparatie cu un microprocesor obisnuit, iar acelasi fractal
va rula astazi mai repede pe un PC decat pe un DSP. Totusi, de ce procesoarele
DSP prezinta inca un atat de mare interes? Motivatia este dubla: in primul rand
DSP poate efectua mai multe operatii in paralel si, mai ales, poate lucra cu semnale
externe mult mai bine decat cel mai performant Pentium. Incercati, de exemplu, sa
prelucrati simultan pe un Pentium, in timp real, opt canale de semnal audio de
inalta calitate, prin achizitie si redare, fara a afecta performanta procesorului. Apoi,
faceti acelasi lucru cu un DSP. Veti simti diferenta.
Avantajele proiectarii cu DSP sunt multiple, dintre care putem aminti:
Cost - Cu un hardware foarte simplu, in absenta unor elemente electronice
sofisticate, si cu un chip DSP cu pretul intre 2$ si 100$ pentru performante variind
intre 10 MFLOPS pana la 500 MFLOPS, putem construi dispozitive cu o putere de
procesare extrem de mare.
Fiabilitate - Orice circuit electronic este supus modificarilor de performanta,
datorate variatiilor termice, imbatranirii, care pot duce la o functionare incorecta.
Un DSP, insa, va putea sa functioneze perfect in urmatorii 50 de ani.

5.Selectia unui microcontroler pentru aplicatiile


……..de comanda si control ale motoarelor

Motoarele mici, care au un consum mai mic de 300W, pot fi gasite intr-o
larga varietate de aplicatii incluzand automobilele, imprimantele, copiatoarele,
manipulatoarele de hartie, automatizarile fabricilor, vehiculele spatiale si militare,

56
echipamentele de test si robotica. Cantitatea de motoare produsa este aproximativ
invers proportionala cu nivelul de putere; mai mult, motoarele mici sunt produse in
cantitati mai mari decat motoarele de capacitate mare. Cele mai populare tipuri de
motoare mici sunt cele de curent continuu (c.c.), fara perii de curent continuu si
motoarele pas cu pas.
Controlul tipic al motorului realizat cu procesoarele de semnal digital (DSP)
este proiectat in asa fel incat sa corespunda cerintelor generale ale motoarelor.
Oricum, controlul/comanda motorului bazata pe un circuit DSP este adesea prea
costisitoare pentru sistemele de control ale motoarelor mici. Astfel, ca scop
general, factorul de forma mic al microcontrolerului reprezinta adesea solutia de
cost efectiva pentru controlul motoarelor in cazul motoarelor mici. Cand selectam
un microcontroler pentru o aplicatie de comanda/control a motorului, exista cateva
caracteristici care ar trebui incluse pentru a aduce beneficii importante sistemului.
Este important sa evaluam fiecare dintre aceste caracteristici atunci cand selectam
un microcontroler pentru a determina cel mai potrivit dispozitiv pentru o aplicatie
data.
5.1 Optiunile Timer

Un simplu motor pas cu pas poate impune doar un timer de scop general.
Oricum, motoarele c.c. si motoarele fara perii c.c. necesita un timer PWM (pulse
width modulator) pentru a controla viteza motorului. Caracteristicile principale ale
timer-ului PWM sunt rezolutia si frecventa. Frecventa trebuie sa fie deasupra
constantei de timp a infasurarilor si deasupra domeniului audibil, dar destul de
mica pentru a minimiza pierderile de comutatie. O frecventa a PWM-ului de la 16
la 24kHz este ideala pentru motoarele mici.
O rezolutie a timer-ului PWM de 8 biti este suficienta pentru majoritatea
aplicatiilor. Daca aplicatia necesita doar cateva viteze particulare, rezolutia de 8
biti este de ajuns. Un timer PWM de 8 biti este de asemenea suficient pentru
controlul in bucla inchisa atunci cand domeniul de viteze cerut este mai mic de 10

57
la 1. Daca aplicatia necesita controlul in bucla inchisa de-a lungul unui domeniu
larg de viteze sau o reglare a vitezei cu o precizie mai buna de 1%, este nevoie de o
rezolutie mai mare. O rezolutie a timer-ului PWM de 10 biti la 20kHz necesita un
ceas de sistem care sa aibe o frecventa mai mare de 20MHz.
Suprafata programabila PCA (programmable counter array) ce poate fi
gasita implementata in familia de microcontrolere C8051F300 produsa de Silicon
Laboratories prezinta un modul PWM de 8 biti. Frecventa modulului PWM de 8
biti poate fi fixata la 8, 24 sau 96kHz cand frecventa ceasului sistemului de operare
este de 24.5MHz. Pentru un modul PWM de 8 biti, frecventa de 16.0 sau 19.1kHz
poate fi obtinuta utilizand un T0 de depasire precum ceasul sursa al suprafetei
PCA. Cand este necesara o rezolutie mai inalta, un timer PWM de 10 biti la 20kHz
poate fi generat utilizand suprafata PCA in modul HSO (high speed output).
Numarul de canale PWM necesare variaza pentru aplicatii diferite cu motoare
mici. O simpla comanda a unui motor c.c. de operare intr-o directie numai, necesita
un modul PWM. Comanda unui motor c.c. care contine schimbarea pozitiei
necesita doua canale PWM sau unul singur cu un multiplexor cu doua iesiri. Un
motor c.c. fara perii necesita trei canale PWM sau un singur canal PWM cu un
multiplexor cu trei iesiri. Solutia gasita la familia de microcontrolere produsa de
Silicon Laboratories - C8051F300 - este de a multiplexa un singur PWM de-a
lungul unor iesiri multiple. Aceasta capabilitate minimizeaza nevoia de canale
multiple PWM simplificand foarte mult software-ul.
5.2 Convertoare Analog-/-Digital si Suport

Majoritatea aplicatiilor de control al motoarelor mici necesita un convertor


analog/digital (ADC) implementat "on-chip" sau extern. Convertorul ADC poate fi
utilizat sa masoare tensiunile motorului, tensiunea "dc link", curentii motorului,
tensiunea tahometrului si controlul vitezei potentiometrelor. Convertorul ADC
trebuie de asemenea sa fie utilizat sa masoare variabilele sistemului precum
temperatura, circulatia aerului si pozitia. Caracteristicile principale ale ADC-ului

58
pentru sistemele de control al motoarelor sunt rezolutia, viteza de esantionare,
numarul de canale, tensiunea de referinta si capabilitatea de masurare diferentiala.
Rezolutia necesara depinde de reactia si controlul sistemului in domeniu dinamic.
Un ADC de 8 biti este suficient pentru masurarea vitezei potentiometrelor si a
tensiunii "dc link". Tensiunea motorului, curentii motorului si tensiunea
tahometrului pot cere un domeniu dinamic larg. Daca aplicatia necesita reglarea
vitezei intr-un domeniu de viteza de peste 100 la 1, sistemul trebuie sa fie stabil
utilizand doar un mic interval din intreg domeniul ADC. Utilizand un ADC de 8
biti pentru a masura un parametru de reactie cu o precizie de 1%, pe intraga scala
vom obtine o citire de 2.5 numarari. Un convertor ADC de 10 biti ofera 20
numarari.
Masurarea curentului motorului este in particular destul de problematica. Adesea,
un rezistor de detectie cu valori mici este utilizat impreuna cu un amplificator
operational extern. O masuratoare diferentiala se impune atunci cand este nevoie
de masurari ale curentului foarte precise. Aceste tipuri de circuite sunt foarte
susceptibile la zgomot. Un convertor ADC cu o inalta viteza de esantionare si o
unitate centrala de procesare rapida va permite supra-esantionarea si medierea.
Supra-esantionarea si medierea sunt esentiale atunci cand facem masuratori ale
curentilor motorului pentru a obtine valori precise chiar in prezenta zgomotului
generat de motor.
Zgomotul sursei de putere reprezinta adesea o problema in circuitele de comanda /
control ale motoarelor. O referinta de tensiune integrata este utila pentru efectuarea
de masuratori absolute precum cele de curent si de temperatura si pentru asistarea
convertorului ADC pentru a putea oferi o precizie imbunatatita si performante mai
bune de zgomot decat in cazul utilizarii unei surse VDD. In anumite aplicatii
extreme de cost, amplificatorul operational extern de detectie a curentului poate fi
eliminat complet daca utilizam o mica referinta de tensiune integrata on-chip
impreuna cu un amplificator cu castig programabil.

59
Un comparator "on-chip" este util aplicatiilor de control al motorului cand este
necesara o protectie hardware de supra-tensiune sau supra-curent. Un comparator
"on-chip" poate fi utilizat pentru a genera o intrerupere sau un asa numit "capture
timer event". De asemenea, un comparator "on-chip" este util in aplicatiile cu
motoare c.c. fara perii pentru masurarea tensiunii motorului sau a trecerii prin zero
a tensiunii electromotoare inverse. Aceasta aplicatie necesita trei comparatoare sau
un singur comparator cu un multiplexer cu trei intrari.
Comunicatia in Sistem
Motoarele mici sunt adesea parti ale unui sistem mai mare, in care perifericele
trebuie sa realizeze controlul si comenzile receptionate de la microcontrolerul
central. Motoarele mici pot utiliza SMBus sau I2C in aplicatii precum
ventilatoarele PC-urilor sau ale placilor de baza ale sistemelor. Interfata SPI poate
fi de asemenea utilizata pentru realizarea comunicatiei dintre doua sau mai multe
microcontrolere din cadrul unui sistem complex. Magistrala SPI poafi fi de
asemenea utilizata cu perifericele SPI precum memoriile seriale EEPROM,
ceasurile de timp real sau convertoarele ADC externe. Interfata UART bazata pe
protocoale precum RS232, RS485 si LIN sunt de asemenea folosite in sistemele de
control ale motoarelor mici.
Constrangerile datorate numarului de pini impun anumitor microcontrolerele sa
ofere interfete UART sau SPI, dar numai separat. Altele impun alegerea intre SPI si
SMbus sau I2C. In timp ce este posibil sa se emuleze una din aceste periferii prin
programare, adesea nu este practic sa se emuleze periferiile intr-un sistem de
control al motorului "multi-tasking". Familia MCU produsa de Silicon
Laboratories - C8051F300 - ofera posibilitati multiple de a selecta sistemul de
comunicatie al periferiilor intr-o anumita aplicatie.

5.3 Pinii I/O determina dimensiunea

Numarul pinilor I/O dicteaza adesea dimensiunea capsulei si selectia unui

60
microcontroler. Numarul pinilor depinde de tipul motorului, de iesirile PWM, de
intrarile analogice, de pinii I/O generali si de comunicatia perifericelor. Sistemele
de motoare c.c. mici necesita numai 11 sau mai putini pini. Sistemele cu motoare
c.c. fara perii au nevoie in mod normal de 20 sau 28 de pini. Microcontrolerele
tipice de 8 pini in capsula SOIC ofera numai 6 pini I/O. Familia C8051F300
livreaza opt pini I/O intr-o capsula de 3x3mm, o patrime din suprafata ocupata de
un SO8. Exista cateva atribute importante ale microcontrolerelor de care se tine
cont in alegerea unui MCU cu factor de forma mic in aplicatiile de control al
motorului. Prin considerarea timer-elor PWM, a suportului ADC, a tensiunii de
referinta integrate, a comparatoarelor "on-chip" a comunicatiei perifericelor,
pinilor I/O si a capabilitatilor flexibile de multiplexare analogica si digitala,
proiectantii de aplicatii de control al motorului pot maximiza proiectele lor.

61
62
63
64
65
66
67
68
69
70
71
7. Sisteme de acţionare electrică
7.1. Introducere

Sistemele de acţionare electrică realizează conversia energiei electrice în


energie mecanică: motorul electric de acţionare absoarbe energia electrică de la
reţea şi o transformă în energie mecanică, pe care o cedează pe la arborele maşinii
de lucru, potrivit schemei de principiu din figura 7.1. Diferenţa dintre energia
electrică consumată şi energia mecanică utilă reprezintă pierderile electrice şi
mecanice, ce se transformă ireversibil în căldură.

Sursa de energie
Energie electrică
Pierderi consumată
mecanice în
organul de Dispozitiv de dozare a Pierderi în
transmisie energiei (convertor static) convertor

Maşina de Transmisie Motor Pierderi electrice şi


lucru mecanică electric mecanice în motor
Energie mecanică
utilă

Fig. 7.1 – Schema de principiu a unui sistem de acţionare electrică

Datorită marii diversităţi a proceselor tehnologice deservite de maşini de


lucru acţionate electric, sistemelor de acţionare li se impun cerinţe dintre cele mai
variate privind:
- turaţia şi cuplul dezvoltat la arbore;
- domeniul de modificare a turaţiei şi cuplului;
- precizia în menţinerea constantă a vitezei unghiulare de rotaţie;
- rapiditatea atingerii valorilor de regim staţionar;
- calităţile dinamice şi stabilitatea în funcţionare;

72
Pentru ca parametrii energiei mecanice (cuplu, viteză unghiulară) să poată fi
controlaţi pe cale electrică este necesar ca între motor şi sursa de alimentare să
existe dispozitive de dozare a energiei electrice prin modificarea parametrilor săi
(tensiune, curent, frecvenţă). Controlul parametrilor mecanici pe cale mecanică cu
ajutorul reductoarelor de turaţie, cutiilor de viteză sau variatoarelor mecanice de
turaţie este caracterizat de randamente scăzute, fiabilitate scăzută, cost ridicat şi
puteri unitare limitate din considerente constructive.
Utilizarea maşinilor electrice (grupuri motor-generator) sau a
amplificatoarelor magnetice la modificarea parametrilor energiei electrice
absorbite de motor este legată de costuri mari de investiţii, consum mare de cupru
(material deficitar), randamente scăzute (în cazul grupurilor de maşini) şi inerţie
electromagnetică mare, care afectează rapiditatea şi stabilitatea sistemelor de
acţionare electrică cu reglare automată.
Sistemele de acţionare electrică au evoluat de la forma simplă, la care
motorul este legat direct la reţea şi este cuplat nemijlocit cu maşina de lucru,
eventual printr-un organ de transmisie cu roţi dinţate sau curele, la forme dintre
cele mai complexe, cu un înalt grad de automatizare, în scopul satisfacerii
cerinţelor tot mai mari impuse de producţia de bunuri materiale:
- mărirea productivităţii prin mărirea vitezei de acţionare şi reducerea
timpilor de pornire şi frânare, fără solicitări inadmisibile ale motorului;
- reducerea consumului de energie prin mărirea randamentului şi a factorului
de putere;
- ridicarea calităţii producţiei prin respectarea riguroasă şi cu mare precizie a
cerinţelor impuse de procesele tehnologice.
În cazul cel mai general, acţionarea electrică este un sistem închis, care
cuprinde pe lângă motorul electric de acţionare ME şi maşina de lucru ML,
cuplajul cu organul de transmisie T, instalaţia de alimentare de la reţea cu

73
mutatorul M, instalaţia de comandă automată şi de reglare cu următoarele
elemente:
- elementul de măsurare (de exemplu un tahogenerator TG);
- dispozitivul de prescriere P care dă valoarea impusă mărimii de reglat;
- comparatorul C care compară mărimea măsurată cu mărimea impusă;
- amplificatorul A care amplifică semnalul de abatere;
- dispozitivul de comandă(care, pentru un Mcc este dispozitivul de comandă
grilă DCG)
3~

CS ME T ML

C
DC A TG

Fig. 7.2 – Sistem de acţionare electrică cu motor de current continuu, cazul general

Sistemele de acţionare electrică prevăzute cu regulatoare automate asigură


desfăşurarea pornirii, frânării, reversării şi reglării turaţiei după legi prescrise,
menţinând între anumite limite, cu toleranţe determinate, diferite mărimi electrice
şi mecanice (turaţia, curentul, cuplul etc.). La sistemele de acţionare complexe, de
mare importanţă (de exemplu acţionarea laminoarelor), prescrierea mărimilor este
asigurată de calculatoarele electronice de proces sau de microprocesoare.
La acţionarea electrică în mai multe cadrane (figura 7.3), sensul uneia sau al
ambelor mărimi se poate inversa. La frânarea cu recuperare a unui vehicul, sensul
turaţiei motorului se păstrează dar sensul cuplului se inversează, astfel că punctul
de funcţionare a acţionării trece din cadranul I în cadranul II.

74
La frânarea prin conectare inversă a unui mecanism de ridicat sensul
cuplului se menţine, dar se inversează sensul turaţiei trecându-sc din cadranul I în
cadranul IV.
În anumite procese industriale, este nevoie ca un motor să lucreze în toate
cele patru cadrane.
Acţionările electrice la care se pot obţine inversarea cuplului sau a vitezei
unghiulare de rotaţie se numesc acţionări reversibile:
- în cadranele I şi III regimul de funcţionare al maşinii electrice este de motor,
deoarece produsul dintre cuplu şi viteza unghiulară (putere mecanică) este pozitiv,
ceea ce înseamnă că motorul dezvoltă putere mecanică la arbore;
- în cadranele II şi IV produsul MΩ este negativ, motorul primeşte energie
mecanică la arbore şi o transformă în energie electrică; regimul de funcţionare este
de generator când energia electrică este cedată reţelei (frânare cu recuperare) sau
unei rezistenţe (frânare dinamică). Acesta este regimul de frână.

II Ω I
Generator Motor
frână sens direct
M
III IV
Motor Generator
sens invers frână

Fig 7.3 – Cele 4 cadrane de acţionare electrică

75
7.2. Motorul de curent continuu cu excitaţie independentă

7.2.1.Determinarea funcţiei de transfer din ecuaţiile de stare

Pentru determinarea funcţiei de transfer din ecuaţiile de stare, trebuie


cunoscute ecuaţiile ce descriu motorul. Schema echivalentă a motorului de curent
continuu cu excitaţie independentă este prezentată în figura 7.4.
Ea – tensiune contraelectromotoare
La – inductivitatea electrică a
indusului
Ra – rezistenţa electrică a
indusului
M – cuplul motorului
Jm – momentul de inerţie al
rotorului
Bm – factor de pierderi între
armătură şi carcasă
A,B – terminale de alimentare a
indusului
S – axul motorului (shaft)
H – carcasa (housing)

Fig. 7.4 – Circuitul echivalent al motorului de curent continuu cu excitaţie


independentă

Vom stabili modelul matematic al unui motor de curent continuu cu excitaţie


independentă, considerând:
- mărimea de intrare este tensiunea de alimentare (tensiune pe indus)
- mărimea de ieşire este viteza unghiulară
- perturbaţia este cuplul de sarcină (rezistiv)
Pentru stabilirea modelului matematic al MCC cu excitaţie independentă se
pleacă de la ecuaţia scrisă pentru circuitul indusului din figură şi de la ecuaţia

76
fundamentală a mişcării. Pentru că nu se cunosc apriori perturbaţiile ce acţionează
asupra sistemului, şi interesează reglarea după mărimea de intrare, în determinarea
funcţiei de transfer a motorului se consideră perturbaţiile ca fiind nule. Astfel, se
obţine:
 di
u  R a i  La  ea
dt

ea  k e e m
 (7.1)
 M  J d m  B 
 m
dt
m m

M  k  i
 m e

unde:
u – tensiunea la capetele circuitului indusului
i – curentul prin circuitul indusului
Ra, La – rezistenţa, respectiv inductanţa circuitului indusului
Ea – tensiunea contraelectromotoare
m - viteza unghiulară a motorului
M – cuplul activ dezvoltat de motor
Bm – factor de pierderi între armătură şi carcasă
Jm – moment de inerţie al arborelui motorului
e – fluxul de excitaţie
ke, km – constante constructive ale motorului de curent continuu (constanta
electrică, respectiv mecanică).
Sistemul de ecuaţii (7.1) este un sistem neliniar, neliniarităţile fiind datorate
atât produselor φeωm, φei, cât şi neliniarităţii curbei de magnetizare a motorului.
Întrucât, pentru a stabili un model matematic plecând de la un sistem
neliniar se impune utilizarea unui formalism matematic destul de complicat, se va
liniariza sistemul de ecuaţii în jurul unui punct de funcţionare şi se vor considera
nule toate variaţiile mici ale mărimilor în jurul acestui punct de funcţionare.
Pentru aceasta, se consideră φe=ct., astfel încât se poate scrie:

77
K e  k e e (7.2)
K m  k m e (7.3)
u  Ri
Ke   Kg / rot / sec (7.4)
2nn

Ke
Km   Kgm / A (7.5)
1,03

unde nn reprezintă turaţia nominală a motorului, exprimată în rotaţii pe secundă.


Din relaţia (4.5) se observă că cele două constante pot fi considerate ca fiind
egale ca valoare adimensională (Ke=Km=K) şi astfel, se pot scrie ecuaţiile pentru
MCC ca fiind:

 d m
 J m dt  Bmm  Ki
 (7.6)
L di  R i  u  K
 a dt a m

Ki
În regim staţionar, Bm  (7.7), ω
m
 2πn
n (7.8). Observând curba de
m

decelerare a motorului fără sarcină, atunci când tensiunea de alimentare este


întreruptă, este posibilă estimarea coeficientului J (observarea în diferite puncte a

dω m
).
dt

Pentru un proces sau obiect supus automatizării, modelul matematic al


acestuia poate fi reprezentat fie sub forma unor ecuaţii diferenţiale care sunt de
fapt, ecuaţii intrare - ieşire, fie sub forma ecuaţiilor de tip intrare - stare - ieşire,
care pot fi scrise astfel:

x  t   Ax  t   b u t   d p t 
 (7.9)
 y  t   c T
xt
În spaţiul stărilor ecuaţiile de mai sus pot fi exprimate alegând viteza de
rotaţie şi curentul electric prin indus ca mărimi de stare şi tensiunea de alimentare

78
ca intrare. Ca ieşire se alege viteza unghiulară. Pentru început, se rescriu ecuaţiile
(7.6) sub forma:

 dm dm   Bm   K i
Jm dt  Bmm  Ki  dt Jm m Jm
  
L di  R i  u  K di   K   Ra i  1 u
 a dt a m dt L L L
 a aa
Astfel se obţine relaţia echivalentă în spaţiul stărilor, ca fiind:

  Bm K 
 d    J J     0 
  m    m m   m    1 u
 dt  i    K  Ra   i   L 
  La La   a (7.10)

 T  m  m 
 y t   c    1 0  
 i i
Se ştie că în acest caz, funcţia de transfer are următoarea expresie:
H  s   c T  sI  A b
1

(7.11)
În cazul de faţă, aceasta se poate scrie astfel:
1
s  B / J K/J   0 
H MCC  s   1 0 
 K/L s  R / L  1 / L 

(7.12)
Determinăm transpusa matricei [Si-A] ca fiind:
1
A 1  A*
det( A)

(7.13)
det  A   s  B / J  s  R / L   K 2 / JL (7.14)

79
A11    1  s  R / L ; A12    1  K / J 
11 1 2

A21    1  K / L ; A22    1 s  B / J
2 1 2 2

1 s  R / L K / J  0 
H MCC  s   
 s  B / J  s  R / L   K / JL   K / L s  B / J  1/ L
2 

 s  R/ L K/J  0 
H MCC  s    1
  s  B / J  s  R / L   K / JL
2
 s  B / J  s  R / L   K 2 / JL   L 

K
1 1 KJL
H MCC  s   J  H MCC  s  
 sJ  B  sL  R   K L
2
 sJ  B  sL  R   K JL
2

JL
K
H MCC  s  
JLs   RJ  BL  s  BR  K 2
2

(7.15)
Relaţia (7.15) dă expresia funcţiei de transfer a motorului de curent
continuu cu excitaţie independentă.

7.2.2. Separarea funcţiei de transfer după o mărime intermediară

În scopul unei bune reglări, se va încerca găsirea unei mărimi intermediare a


procesului, mărime ce poate fi uşor accesibilă din punct de vedere fizic şi
măsurabilă cu mijloace relativ simple. Această mărime intermediară trebuie, în
plus, să răspundă la perturbaţii mai rapid decât mărimea de ieşire.
Pentru aceasta, se poate considera ca mărime intermediară curentul prin
indus deoarece, în cazul de faţă, îndeplineşte condiţiile de mai sus.
Alegând curentul ca mărime intermediară, funcţia de transfer a motorului de
curent continuu poate fi scrisă astfel:
( s ) I ( s ) ( s )
H MCC ( s )  H 1 ( s ) H 2 ( s )    (7.16)
U (s) U (s) I (s)

80
unde ( s ),U ( s ), I ( s ) se obţin aplicând ecuaţiilor din sistemul 7.6 transformata
Laplace în condiţii iniţiale nule, astfel:

 s  Js  B  KI  s 
 (7.17)
I  s  Ls  R  U  s   K s 
Din prima ecuaţie a sistemului 7.17 se poate obţine funcţia de transfer a
mărimii de ieşire (Ω) în raport cu mărimea intermediară (I):
KI ( s )
( s )  
Js  B

(7.18)
( s ) K
H1  s   
I ( s ) Js  B

(7.19)
Înlocuind expresia lui Ω(s) din relaţia (7.19) în cea de-a doua ecuaţie a
sistemului (7.17) se obţine expresia lui I(s) ca fiind:
KI ( s )
U ( s)  K
Js  B  [U ( s )  K I ( s) ] /( Ls  R)  U ( s )( Js  B )  K I ( s)
2 2
I (s) 
Ls  R Js  B ( Js  B )( Ls  R)

K2
 I ( s )( Ls  R )  I ( s )  U ( s)
Js  B

U (s) U ( s )( Js  B )
 I ( s)   K2
( Ls  R )( Js  B )  K 2
( Ls  R)( Js  B)
Js  B

Având expresia mărimii intermediare, se poate determina funcţia de transfer


a mărimii intermediare în raport cu mărimea de intrare:
I (s) Js  B
 H 2 ( s)   
U ( s) ( Ls  R)( Js  B)  K 2

Js  B
 H 2 (s) 
LJs  ( LB  RJ ) s  RB  K 2
2

81
7.2.3. Reglarea turaţiei motorului de curent continuu

7.2.3.1 Alegerea schemei de reglare

În cadrul sistemului de reglare automată propus, motorul de curent continuu


reprezintă elementul condus (supus automatizării).
Acesta e caracterizat în regim staţionar prin anumite valori ale mărimilor
caracteristice (tensiune, curent, cuplu, turaţie), care se modifică atunci când apar
schimbări în regimul de funcţionare al motorului. Acestea pot fi cauzate de variaţii
ale sarcinii corespunzătoare procesului tehnologic sau de comenzi voite
(programate), date de operator, comenzi ce pot fi de pornire, oprire, frânare,
schimbare de sens. Toate aceste schimbări ale regimului de funcţionare constituie
regimuri tranzitorii pentru motorul de curent continuu.
Se ştie că un regim tranzitoriu este trecerea de la un regim staţionar
caracterizat de anumiţi parametrii la un alt regim staţionar caracterizat de alţi
parametrii.
Rolul sistemului de reglare automată a motorului de curent continuu e
tocmai de a optimiza regimurile tranzitorii ale acestuia.
Pentru aceasta, pe baza mai multor observaţii practice s-au putut grupa
generic mărimile de intrare, cele de ieşire, precum şi perturbaţiile ce apar în cadrul
unui sistem de reglare automată cu motor de curent continuu:
- ca mărimi de intrare: tensiunea de alimentare, tensiunea de excitaţie;

82
- ca mărimi de ieşire: viteza unghiulară (turaţie), cuplul electromagnetic
dezvoltat, curentul prin indus, curentul prin excitaţie.
- ca perturbaţii: cuplul de sarcină de la axul motorului, modificări neprevăzute
ale tensiunilor de alimentare sau excitaţie.
Pentru multe procese supuse automatizării, în special pentru procesele rapide
(cum este cel reprezentat de motorul de curent continuu) structura convenţională de
reglare (cu o singură buclă) nu permite obţinerea unor performanţe dorite. De
aceea, alegerea structurii sistemelor de reglare se face ţinând cont de complexitatea
procesului, de gradul de cunoaştere al acestuia, precum şi de performanţele
impuse.
Reglarea în cascadă se utilizează atât în cazul proceselor rapide (procese cu
constante de timp mai mici de 10s), dar şi în cazul proceselor lente.
Pentru adoptarea reglării în cascadă trebuie ca procesul tehnologic să fie
descompus în sub-procese a căror funcţie de transfer să nu conţină mai mult de
două constante de timp principale. Funcţia de transfer determinată în subcapitolul
anterior respectă această cerinţă (relaţia 7.15).
O altă condiţie se referă la faptul că în modelul matematic al procesului
supus automatizării trebuie puse în evidenţă mărimi intermediare care să fie
accesibile din punct de vedere fizic şi măsurabile cu mijloace relativ simple.
Aceste mărimi intermediare trebuie, în plus, să răspundă la perturbaţii mai rapid
decât mărimea de ieşire.
În marea majoritate a cazurilor , procesele mecanice care interesează din
punct de vedere al conducerii automate , se referă la reglarea unei forţe sau a unui
cuplu necesar punerii în mişcare , liniară sau rotativă , a unei sarcini oarecare .
Mişcarea se realizează cu ajutorul unui motor cuplat într-o transmisie oarecare cu
sarcina.

Aşadar motorul de curent continu este foarte des întâlnit în teoria reglării
automate atât ca element de execuţie într-un sistem de reglare cât şi ca proces

83
supus automatizării. În mod deosebit , motoarele de curent continuu se întâlnesc în
cadrul sistemelor de reglare automată sub forma proceselor supuse automatizării.

Comanda motorului de curent continuu se face printr-o punte trifazată cu


tiristaoare.

Din categoria motoarelor de curent continuu pentru sistemele de reglare


automată , interesează în mod deosebit motoarele de curent continuu cu excitaţie
separată , sau independentă. Întrucât cele două circuite (circuitul indusului şi
circuitul excitaţiei) sunt separate , putând avea chiar surse de excitaţie separate ,
rezultă astfel că metodele de comandă pentru aceste tipuri de motoare se pot grupa
în două mari clase :

a) metode de comandă pe indus;

b) metode de comandă pe excitaţie.

Pentru asigurarea reglării concomitente a turaţiei şi curentului prin motor se


alege o schemă de reglare în cascadă cu două regulatoare , unul pentru curent şi
unul pentru turaţie.

Schema de principiu a sistemului de reglare a turaţiei unui motor de curent


continuu este prezentată în fig.7.5.

Fig.7.5

84
Pe baza schemei de principiu din fig.7.5 se alcătuieşte schema bloc de
reglare ca în fig.7.6.

Fig.7.6

În cazul de faţă, mărimea intermediară este curentul prin indus.


Date fiind avantajele reglării în cascadă faţă de o reglare convenţională
(permite reglarea simultană a mai multor parametri, micşorează influenţa
perturbaţiilor asupra mărimii de ieşire, creşte viteza de răspuns în raport cu
modificarea referinţei) şi faptul că sistemul de mai sus îndeplineşte condiţiile
necesare aplicării acesteia, s-a ales acest sistemul de reglare.
Separarea funcţiei de transfer a motorului de curent continuu în două funcţii
de transfer cu mărime intermediară, conform cerinţelor, a fost realizată în
subcapitolul 7.2.2.

7.2.3.2. Calculul funţiilor de transfer şi a parametrilor regulatoarelor

Având în vedere schema echivalentă a MCC din figura 7.1, parametrii


motorului a cărui turaţie se doreşte controlată, sunt:
- Ra = 10.5  ,
- La = 0.098 H ,
- nn = 1500 rot/min ,
- U n = 220V ,

85
- I n = 85A ,
- J ≈ 0.0355 , moment de inerţie aproximat experimental, măsurând timpul de
frânare de la turaţia nominală la 0 atunci când este decuplată tensiunea de
alimentare şi modificându-l ca parametru într-o simulare Matlab, până la obţinerea
aceluiaşi timp de stabilizare a sistemului.
Pentru determinarea formei exacte a funcţiei de transfer a motorului de
curent continu se consideră următoarele mărimi:
- constanta electrică a motorului:
U R I
K  n an n  220  0,38485  1,33[ V/rot/ min]
e 2 π  n 23,141500
n

K 1,33
e
K   1,29[N  m/A]
m
1,03 1,03
- constanta electromecanică a motorului:
- constantele de timp ale motorului:

R J 0,384 2 L
T    0,597; T a  46,5  202
m K K 1,331,29 R 0,384
m e a

Cu aceste date cele două funcţii de transfer H1(s) şi H2(s) devin:


1,55s
H (s) 
1 (1 202s) (1 0,597s)
0,384
H 2 (s) 
0,794 s
Funcţia de transfer a elementului de execuţie este:
unde:
- KP - factor de proporţionalitate sau factor de transfer;

86
salutare
K
p
H (s) 
EE 1 τ s
p

-  P - timp mort al elementului de execuţie;

U π
K  d0
p 180
Factorul de transfer al elementului de execuţie se determină cu relaţia:

unde:

- Ud0 – valoarea medie a tensiunii redresate pentru puntea trifazată,

3 6
U   U  cosα |
d0 π s α 0

şi se calculează cu expresia:
unde cu Us am notat tensiunea de linie (tensiunea dintre fazele reţelei de
alimentare).

1
τ 
p 2pf
unde : f = 50 Hz – frecvenţa
p – numărul de pulsuri dintr-o perioadă pentru tensiunea redresată. În acest
caz p = 6.
Funcţia de transfer a DCG este:
180
H (s)   11,25grad/V
DCG 16V

87
Funcţia de transfer a traductorului de curent este:
Constanta kTi a traductorului de curent se determină din condiţia ca la

k
H (s)  Ti
Ri 1 T s
i
U
k  i  7,5  0,049 V
Ti I 153 A
l
pornire curentul de pornire să fie limitat la Il = 1,8 In = 153 A, tensiunea rezultată la
intrarea regulatorului de curent să fie Ui = 7,5 V, aşadar:

Constanta de timp a traductorului se alege Ti = 0,0025 s astfel în cât funcţia

0,049
H (s) 
TRi 1 0,025s
de transfer a traductorului de curent devine:
Funcţia de transfer a traductorului de turaţie este:
Constanta de proporţionalitate kTω a traductorului de turaţie este:

k
H (s)  Tω
TRω 1 T s
10V V
k  ω  0,006
Tω 1500rot/min rot/min
Constanta de timp a traductorului de turaţie se alege T ω = 0,001s astfel încât

0,006
H (s) 
TRω 1 0,001s
funcţia de transfer a traductorului de turaţie devine:

88
Funcţia de transfer a regulatorului de curent. Pentru a stabilii funcţia de
transfer a regulatorului de curent se stabileşte mai întâi funcţia de transfer a părţii
H (s)  H (s) �
H (s) �
H (s) �
H (s) 
f1 DCG EE 1 TRi
T
m
k s k
EE R Ti
k 
DCG 1τ s (1 Ts)(1
  s) 1 T
T s
p m i
ks 7,81s
 
(1 T s)(1 T s) (1 0,065s)(1 0,597 s)
�i m
fixe corespunzătoare buclei interioare din fig.7.6.

Funcţia de transfer a regulatorului de curent se determină conform variantei

1 T s
H (s)  m  1 0,597s 
1 0,597s
Ri 2 2 2
2kT s 2�
7,81�
0,065s 1,01s
�i
T 0,597
unde : k  k k  m  k  11,3  8,98   0,049 
DCG EE R Ti 0,38
 7,81
T  T  T  τ  0,061  0,0025  0,0016  0,065s
i i p
Kessler a criteriului modulului:

Schema bloc a sistemului de reglare cu regulatorul de curent optimizat este


prezentată în figura 7.7.

89
Fig. 7.7

Funcţia de transfer a regulatorului de turaţie .

Pentru a stabili funcţia de transfer a regulatorului de turaţie se stabileşte

H (s)  H (s) �[H (s)]1 � H (s) � H ( s)


f2 01 TR 2 TRω
H (s)� H (s) 1 1
H (s)  f1 Ri @ 
01 1 H (s) �H (s) 1 2T s 1 0,13s
f1 Ri �i
1 1 T s R k k
H (s)  � i � � Tω  ω
f2 1 2T s k k T s 1 T s T s(1 T s)
�i Ti e mω m ω �
funţia de transfer a părţii fixe a sistemului de reglare din figura 7.7 astfel:
unde:
R�k
k  Tω  0,384�0,006
 0,035
m k � k 0.049�
1,33
Ti e
T  2T  T  T  0,065  0,001 0,0025  0,063
�ω �i ω i

Aşadar :

90
0,035
H (s) 
f2 0,597s(1 0,063s)

Funcţia de transfer a regulatorului de turaţie se determină conform criteriului


simetriei astfel:

1 4T s 1 4�
0,063s
�ω
H (s)  
Rω 4T 2 4
�ω 2�
0,035�
0,063 � s
2k T s
ω �ω T 0,597
m
1 0,25s
H (s) 
Rω 0,001s

Funcţia de transfer a sistemului în circuit închis este:

H (s)H (s) 1 4T s
f2 Rω �ω
H (s)   
02 1 H (s)H (s) 2 2
f2 Rω 8T s (1 T s)  4T s 1
�ω �ω �ω
1 4�
0,063s
 
2 2
0,063 s (1 0,063s)  4 �
8� 0,063s 1
1 0,25s

2
0,031s (1 0,063s )  0,25s 1

Schema de simulare a funcţionării motorului este prezentată în figura 7.8

91
Răspunsul sistemului fără buclă de reglareeste prezentat în figura 7.9.
Răspunsul sistemului fără buclă de reglare are o eroare staţionară de 33% şi
o durată a regimului tranzitoriu de 4,5 s.

Fig. 7.9 – Răspunsul sistemului fără buclă de reglare

Răspunsul sistemului cu buclă de reglare cu legi PI este prezentat în figura 7.10.

92
Fig. 7.10 Reglarea turaţiei cu legi PI

8. Descrierea sistemului de dezvoltare


TMS320F2812

Prelucrarea numerică a semnalelor este unul dintre cele mai dinamice


domenii ale electronicii, atât din punct de vedere tehnologic, cât şi economic. Din
statisticile publicate rezultă că pe piaţa cipurilor dedicate acestui domeniu, 45%
reprezinta procesoarele numerice de semnal. Acest segment este dominat de 5
firme : Texas Instruments (57%), Motorola (13%), AT&T(13%), NEC(8%) şi
Analog Devices(6%).
Poziţia dominantă, unanim recunoscută, a firmei Texas nu este întamplatoare,
deoarece aceasta oferă cea mai largă linie de procesoare DSP de uz general într-un
singur cip şi are cea mai extinsă reţea de utilizatori experimentaţi. Această poziţie
este justificată şi de aplicarea celor mai avansate arhitecturi şi tehnologii, precum
şi de suportul eficient şi complex creat şi oferit pentru fiecare procesor DSP, care

93
cuprinde : sisteme de dezvoltare hardware şi software de înalta calitate, asistenţă
tehnică permanenta, peste 2000 de pagini de note de aplicaţii, precum şi un volum
impresionant de cod sursă oferit gratuit.
Deşi procesoarele de semnal pot părea un artificiu exotic, un lux pentru
majoritatea specialiştilor angrenaţi în rezolvarea unor probleme practice în diverse
domenii ale electronicii şi automatizarilor, preţul în continuă scădere al acestor
componente, suportul tehnic şi de aplicaţii oferit de firmele producătoare, le fac din
ce în ce mai atractive pentru aplicaţii uzuale. Utilizarea lor face ca aplicaţii
inabordabile în timp real de catre procesoarele clasice fară hardware suplimentar să
revină la un preţ convenabil cu un minim de circuite externe.
Actualmente familia de procesoare TMS320 constă în 3 platforme
importante: TMS320C2000, TMS320C5000 şi TMS320C6000. În cadrul
platformei C6000 s-au profilat trei generaţii: TMS320C62x, TMS320C64x şi
TMS320C67x, cu caracteristici şi performanţe ce reflectă poziţia de lider a firmei
Texas Instruments pe piaţa soluţiilor DSP, [26]-[28].
In sistemele electronice de putere este raportată în literatură doar utilizarea
procesoarelor din familia TMS320C2000:P Generation DSP Type Features
- TMS320C24x™ DSP procesor pe 16 biti, virgulă fixă SCI, SPI, CAN, 10-
bit A/D, timere, generare PWM, memorie Flash, on-chip, 20–40 MIPS
- TMS320C28x™ DSP procesor pe 32 biti, virgula fixa, SCI, SPI, CAN, 12-
bit A/D, McBSP, timere, generare PWM, on-chip Flash memory, pana la 150
MIPS, a carui structura este prezentată în figura 8.1.

94
Figura 8.1. Structura procesorului TMS320F2812

Deoarece un processor de semnal digital este capabil sa execute 6 operatii de


baza intr-un singur ciclu de instructiuni, arhitectura lui TMS320F2812 trebuie sa
reflecte aceasta trasatura intr-un fel. Structura platformei TMS320F2812 se poate
imparti in 4 blocuri .
-Sistemul de magistrale interna si externa
-Unitatea Centrala de Procesare (CPU)
-memoria
-perifericele
Ca sa fie capabili sa aduca 2 operanzi din memorie in unitatea centrala de
procesare intr-un singur ciclu de ceas, F2812 este echipat cu 2 sisteme de
magistrale independente:Magistrala de date si Magistrala de program.Acest tip de
arhitectură este numita Arhitectura Harvard. Datorită abilităţii F2812 de a citi 2

95
operanzi nu numai din memoria de date cat si din memoria de program, Texas
Instruments a numit acest echipament o arhitectura Harvard modificata.
Sageata de “bypass” din coltul stang de jos a figurii 8.2 indică caracteristici in plus
ale acestei trasaturi.
Unitatea de control (CPU) a lui F2812 prezentată în figura 8.3, este capabilă
să execute majoritatea instructiunilor care sa realizeze operatiile registru la registru
si un sir de instructiuni care sunt folosite de obicei de microcontrolere (exemplu
impachetarea si despachetarea octetilor si manipularea de biti intr-un singur ciclu).

Fig. 8.3. Unitatea de control.


Trei temporizatoare de 32 biti pot fi folosite pentru scopuri generale de
sincronizare sau să genereze perioade de timp pentru sisteme de operare in timp
real. Controlul intreruperilor periferice (PIE) permite raspunsuri rapide la
intreruperi de la surse variate de semnale interne si externe si diferite evenimente.
Controlul PIE acopera vectori individuali de intrerupere pentru toate sursele.
Un multiplicator hardware de 32 cu 32 biti ,si o unitate aritmetic logica de 32 de
biti(ALU) pot fi folosite in paralel sa execute o multiplicare si o operatie de
adunare simultan.Bancul de registri auxiliari este echipat cu propria unitate
aritmetica logica(ARAU)care este de asemenea folosita in paralel pentru
executarea de pointeri aritmetici.

96
Interfata JTAG suporta schimbul de date in timp real intre DSC si
calculatoru gazda in timpul fazei de depanare a proiectului de dezvoltare.Este
posibil sa urmarim variabile in timp ce codul ruleaza in timp real,fara nici o
intarziere a codului de control.

8.1 Structura perifericelor

Toate registrele periferice sunt grupate in aşa numite „Structuri Periferice”:


PF0, PF1 si PF2. Aceste structuri conţin informaţii numai din harta de memorie.
Structura periferica PF0 conţine un set de registri pentru controlul vitezei interne a
memoriei FLASH, precum si timpul de acces la memoria internă SARAM.
Memoriile FLASH sunt memorii interne nevolatile, de obicei folosite pentru
memorarea codului sursă si a informaţiei care trebuie sa fie prezentată în timp util.
Structura periferica PF1 conţine cei mai mulţi registri de control ai echipamentului
periferic, in timp ce structura periferica PF2 este rezervata registrilor bloc CAN.
CAN- „Controler reţea” este l folosit la maşini pentru a construi o reţea intre
echipamentele electronice de control (ECU).

97
Fig. 8.4
Unele dintre suprafeţele de memorie sunt protejate cu parola numita Cod de
Securitate Modul.Aceasta este o caracteristica pentru a proteja drepturile de autor.
Odată ce parola este programata,orice acces in suprafaţa securizata este garantat
când este introdusa parola corecta in suprafaţa speciala a PF0.

8.2 Unitati digitale I/O

Toate intrările şi ieşirile digitale I\O sunt grupate in „Porturi” numite


GPIO-A,B,D,E,F si G. Aici GPIO înseamnă „obiective generale de intrare ieşire”.
C28x este echipat cu atât de multe unitati interne, incit nu ar putea fi conectate
toate caracteristicile la pinii dedicaţi ai pachetului de mecanisme măcar o data.
Soluţia este multiplexorul. Aceasta înseamnă, un singur pin fizic al procesorului

98
poate fi folosit pentru 2(uneori 3) funcţii diferite si programatorul decide care
funcţie este selectata. Tabelul următor arata opţiunile disponibile:

Termenul „trăsătura competenta de intrare” se refera la opţiunile adiţionale


pentru semnale digitale de intrare pentru Porturile A,B,D si E. Când aceasta
caracteristica este folosita,un puls de intrare trebuie sa fie mai mare decât numărul
specific de cicluri de ceas pentru a fi recunoscut ca semnal de intrare valabil.
Următorul tabel explica procedura de iniţializare. Toate cele 6 porturi GPIO
sunt controlate de către registrul propriu de multiplexare, numit GPxMUX (unde x
ia valori de la A la F).Daca setăm un bit pe zero atunci se selectează funcţiile
digitale de I\O, setând bitul pe 1 se selectează o funcţie speciala (TI se cheamă
aceasta funcţie primara).
Când funcţia digitală de I\O este selectată, registrul grup GPxDIR defineşte
direcţia de intrare sau ieşire (figura 8.5). Setând unui bit pe zero se configurează
linia de intrare, setând bitul pe 1 se configurează linia de ieşire. Unele porturi de
intrare sunt prevăzute cu „Caracteristici calificate de intrare”.

99
Fig. 8.5. Schema bloc a unui port de I/O.

100
Concluzii:

Este unanim recunoscut faptul că aceste procesoare oferă una dintre cele mai

bune combinaţii între integrare, flexibilitate, eficienţă şi performanţă. Cum

sistemele de acţionări sunt din ce în ce mai complexe si, corespunzator, creşte

complexitatea metodelor de control (cu orientare după câmp sau de tip formatoare

de curent cu reluctanţe comutate), proiectarea unor astfel de sisteme devine o

sarcină dificilă în absenţa unor controllere performante, care să poată fi, la

rândul lor, proiectate într-un mediu de dezvoltare prietenos. şi din acest punct de

vedere familia de circuite Texas Instruments oferă un suport software extrem de

valoros, atât prin facilitatile propriu-zise ale mediului, cât şi prin bibliotecile de

programe pe care le pune la dispoziţia utilizatorilor.

101
Bibliografie

1 Antoniniu, M. , Masurari electronice, Editura Satya, Iaşi ,1999


2 Arsinte, R. – Procesoare digitale de semnal, Generatia TMS320C2X –
Prezentare şi aplicatii, Editura Promedia Plus, 1993.
3 Busquets-Monge, S, Soremekun, G., Hefiz, E., Crebier, C., Ragon, S.,
Boroyevich, D.; Gurdal, Z., Arpilliere, M., Lindner, D.K.: Power
converter design optimization, IEEE Industry Applications Magazine,
Vol: 10,Issue: 1, Jan-Feb 2004, pp:32 – 38
4 Boris Benedičič, Tomaž Kmecl Gregor Papa, Barbara Koroušić-Seljak ,
Evolutionary Optimization of a Universal Motor, IECON'01: The 27th
Annual Conference of the IEEE Industrial Electronics Society
5 Lungu, Ş., Microcontrolere Familia Intel 8051 Editura Comprex, Cluj-
Napoca, 1993
6 Manolescu Anca, Manolescu Anton, Mihuţ I., Mureşan T. – Circuite
integrate liniare, Ed. Did. şi Ped. Bucureşti, 1983.
7 Marinescu, D., Microcontrolerul 80C32 Manual de utilizare, Editura
Tehnică, Bucureşti, 1998
8 Toma Liviu, Sisteme de achiziţie şi prelucrare numerică a datelor, Editura
de Vest, Timişoara, 1996.
9 Intel , Data Acquisition Book
10 National, Data Acquisition Book
11 TMS320C28x– Manual de utilizare, Texas Instruments, 2001
Texas Instruments Application Notes – Motor Control Overview, SPRu430,

102

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