2.5 dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/doc/curs/prezentare_03.pdf ·...

35
Procesoare Numerice Procesoare Numerice de de Semnal Semnal - - CURS CURS 1 1 2.5 2.5 Dezvoltări Dezvoltări software software Proiectarea unui Proiectarea unui sistem sistem DSP se DSP se axează pe axează pe dezvoltarea dezvoltarea ş ş i implementarea i implementarea algoritmilor algoritmilor DSP DSP pentru pentru a a ob ob ţ ţ ine func ine func ţ ţ ionarea dorită pentru ionarea dorită pentru o o aplica aplica ţ ţ ie ie dată dată . . Odată ce algoritmii cei mai potrivi Odată ce algoritmii cei mai potrivi ţ ţ i i au au fost ale fost ale ş ş i i , , sarcina rămasă este sarcina rămasă este de a de a dezvolta dezvolta ş ş i testa programul i testa programul . . Folosind un limbaj Folosind un limbaj de de programare programare , , se se transpune algoritmul transpune algoritmul î î ntr ntr - - o formă o formă care care să poată să poată fi fi prelucrată pe baza resurselor disponibile dintr prelucrată pe baza resurselor disponibile dintr - - un anumit un anumit procesor procesor . . Î Î n multe aplica n multe aplica ţ ţ ii ii , , timpul timpul de de execu execu ţ ţ ie ie ş ş i mărimea memoriei necesare sunt i mărimea memoriei necesare sunt dictate de dictate de rata de rata de e e ş ş antionare antionare ş ş i i de de complexitatea algoritmului implementat complexitatea algoritmului implementat pe un anumit procesor pe un anumit procesor DSP. DSP. Arhitectura Arhitectura ş ş i setul i setul de de instruc instruc ţ ţ iuni iuni ale ale procesorului procesorului DSP au DSP au un un impact impact major major asupra implementării algoritmilor asupra implementării algoritmilor î î ntr ntr - - o formă o formă optimală optimală . .

Upload: others

Post on 07-Sep-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 11

2.52.5 Dezvoltări Dezvoltări softwaresoftware

Proiectarea unuiProiectarea unui sistemsistemDSP se DSP se axează pe axează pe dezvoltarea dezvoltarea şşi implementarea i implementarea algoritmiloralgoritmilor DSPDSPpentrupentru aa obobţţine funcine funcţţionarea dorită pentruionarea dorită pentru oo aplicaaplicaţţieie

datădată. .

Odată ce algoritmii cei mai potriviOdată ce algoritmii cei mai potriviţţii auau fost alefost aleşşii ,, sarcina rămasă este sarcina rămasă este de ade adezvolta dezvolta şşi testa programuli testa programul. .

Folosind un limbajFolosind un limbaj de de programareprogramare, , sesetranspune algoritmultranspune algoritmul îîntrntr --o formă o formă carecare să poată să poată fifi prelucrată pe baza resurselor disponibile dintr prelucrată pe baza resurselor disponibile dintr--un anumit un anumit procesorprocesor..

ÎÎ n multe aplican multe aplicaţţiiii ,, timpultimpul dede execuexecuţţie ie şşi mărimea memoriei necesare sunti mărimea memoriei necesare suntdictate de dictate de rata derata de eeşşantionare antionare şşii dede complexitatea algoritmului implementatcomplexitatea algoritmului implementatpe un anumit procesorpe un anumit procesorDSP.DSP.

Arhitectura Arhitectura şşi setuli setul dede instrucinstrucţţiuniiuni ale ale procesoruluiprocesorului DSP auDSP auunun impact impact majormajor asupra implementării algoritmilor asupra implementării algoritmilor îîntrntr --o formăo formă optimală optimală..

Page 2: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 22

2.52.5 Dezvoltări Dezvoltări softwaresoftware

ÎÎ n principiun principiu , , sarcina programatoruluisarcina programatorului sese rezumă rezumă lala deplasarea datelor deplasarea datelor îîntre ntre memorie memorie şşi registre i registre şşii de ade a gestiona unită gestiona unităţţileile de de operareoperare, , astfel astfel îîncâtncât ALUALU şşiiMACMAC să opereze corect să opereze corect şşi eficient asupra ei eficient asupra eşşantioanelorantioanelor de datede datepentrupentru aa

realiza procesarea doritărealiza procesarea dorită..

DezvoltareaDezvoltareasoftsoft--ului pentruului pentru DSPDSP trebuie să exploateze trebuie să exploateze îîn totalitate n totalitate procesarea procesarea paralelăparalelă şşi capacităi capacităţţileile de de "pipeline""pipeline" care secare se regăsesc regăsesc îîn structuran structura hardhard şşi i îîn n ceacea dată de dată de setulsetul dede instrucinstrucţţiuni asociate unui procesor datiuni asociate unui procesor dat. .

Utilizarea unei tehnici adecvateUtilizarea unei tehnici adecvatedede programare este esenprogramare este esenţţială ială îîn utilizarean utilizarea cucusuccessuccesa DSPa DSP--urilorurilor ..

Trebuie Trebuie ţţinut continut cont de ode oserie serie îîntreagăntreagă dede factorifactori carecare influeninfluenţţează semnificativ ează semnificativ procesarea digitalăprocesarea digitală,, precumprecum:: cerincerinţţeleeledede memoriememorie,, limitările procesorului limitările procesorului,, mărimea programuluimărimea programului ,, timpultimpul dede execuexecuţţieie, etc., etc.

Există Există două limbajedouă limbaje dede programareprogramare curent utilizate pentru scrierea coduluicurent utilizate pentru scrierea coduluiDSP:DSP: asamblare asamblare şşii CC.. Deoarece procesorul permiteDeoarece procesorul permitecaca mai multe unită mai multe unităţţii dede

procesare să lucreze procesare să lucreze îîn paraleln paralel,, limbajelelimbajele dede programareprogramare dede nivel nivel îînaltnalt ,,precumprecum C,C, sunt sunt adesea ineficienteadesea ineficiente..

Page 3: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 33

2.5.12.5.1 SetulSetul dede instrucinstrucţţiuniiuni

InstrucInstruc ţţiuneaiunea definedefineşşte operate operaţţiile ce trebuie executateiile ce trebuie executatedede către procesorul către procesorul

DSP laDSP lafiecare ciclufiecare ciclu dede ceasceas. .

SetulSetul dede instrucinstrucţţiuniiuni reprezintă totalitatea opera reprezintă totalitatea operaţţiilor peiilor pe carecare un anumit un anumit procesorprocesor lele poate efectuapoate efectua. .

SetulSetul dede instrucinstrucţţiuni cuprinde instruciuni cuprinde instruc ţţiuni pentru iuni pentru procesarea aritmeticăprocesarea aritmetică,,pentru pentru manipularea datelormanipularea datelor,, deplasarea datelor deplasarea datelor îîn memorien memorie,, operaoperaţţii logiceii logice,,testarea unor conditestarea unor condiţţiiii şşi pentru i pentru controlul programuluicontrolul programului astfel astfel îîncât săncât să seseoptimizeze exploatarea memoriei optimizeze exploatarea memoriei şşi timpuli timpul dede execuexecuţţieie. .

Multe dintre procesoareleMulte dintre procesoareleTMS320TMS320 suportă suportă două formedouă forme pentru setulpentru setul dedeinstrucinstrucţţiuniiuni : o: o formă formă mnemonică mnemonică şşii o formă o formă algebricăalgebrică. .

Forma Forma mnemonică este cea folosită cel mai desmnemonică este cea folosită cel mai des..

Page 4: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 44

2.5.12.5.1 SetulSetul dede instrucinstrucţţiuniiuni

InstrucInstruc ţţiunile aritmeticeiunile aritmetice realizează opera realizează operaţţiileiile dede bază folosind registrele bază folosind registrele dededeplasaredeplasare,, multiplicatorul multiplicatorul şşii ALU. ALU.

Aceste instrucAceste instrucţţiuni includiuni includ :: adunareaadunarea,, scăderea scăderea,, calculul valoriicalculul valorii absolute,absolute,îînmulnmulţţireairea,, îînmulnmulţţireairea cucu sumaresumare,, îînmulnmulţţireairea cucu scădere scădere,, negarea negarea şşi i deplasările spre stânga sau spre dreaptadeplasările spre stânga sau spre dreapta. .

ÎÎ n funcn funcţţieie dede arhitectura procesoruluiarhitectura procesorului, pot, pot existaexistaoo serieseriedede operaoperaţţiiii carecare

specifică registrelespecifică registrele implicate,implicate, rolul bituluirolul bitului de transportde transport şşi dacă extensiai dacă extensiadede

semn trebuie consideratăsemn trebuie considerată. .

MultiplicatorulMultiplicatorul areare asociat unasociat unset specific deset specific deinstrucinstrucţţiuniiuni dede îînmulnmulţţireire cucuacumulareacumulare carecare manipulează manipulează şşi eventualele depăi eventualele depăşşiri intermediareiri intermediare ..

Page 5: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 55

2.5.12.5.1 SetulSetul dede instrucinstrucţţiuniiuni

OperaOperaţţiile logiceiile logice,, precumprecum AND, OR,AND, OR, deplasările logice deplasările logice, de, de testaretestareaa stării stării

logice logice şşii XOR (XOR (eXclusiveeXclusive--OR)OR) sunt sunt şşi ele atai ele ataşşateate ALUALU şşii sesefolosesc pentru folosesc pentru mascareamascarea, , sau pentru setarea unor anumisau pentru setarea unor anumiţţi bii bi ţţi ai operanzilori ai operanzilor. .

Aceste instrucAceste instrucţţiuniiuni pot fi depot fi de asemeni utilizate pentru manipularea biasemeni utilizate pentru manipularea biţţilorilor(de(de exemplu testareexemplu testare,, setaresetare,, resetareresetare,, complementarecomplementare, etc.). , etc.).

EleEle pot operapot opera asupra orcărui asupra orcărui bit (bit ( sau perechisau perechidede bibiţţii ) din) din componencomponenţţa unui a unui cuvântcuvânt dindin memorie sau dintrmemorie sau dintr--un registruun registru intern. intern.

InstrucInstruc ţţiunile pentru deplasarea dateloriunile pentru deplasarea datelor acoperă acoperă îîncărcarea ncărcarea şşi stocarea i stocarea datelordatelor ((sausauaa unuiunui bloc de date) dinbloc de date) dinşşi i îîn memorian memoria de date,de date,îîntre memoriantre memoriade programde program şşi ceai ceade date,de date,sau sau îîntre registrelentre registrele interne.interne.

Page 6: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 66

2.5.12.5.1 SetulSetul dede instrucinstrucţţiuniiuni

InstrucInstruc ţţiunile pentru testarea condiiunile pentru testarea condiţţiiloriilor furnizează suportul pentru furnizează suportul pentru

operaoperaţţiileiile de control alede control aleprogramuluiprogramului , ca de, ca deexemplu instrucexemplu instrucţţiuneaiunea IFIF --ELSE ELSE din C. din C.

CondiCondiţţiileiile care pot fi testatecare pot fi testate variază variază de la de la un procesorun procesorlala altulaltul ,, dardar dede obicei obicei includ valoarea acumulatoruluiinclud valoarea acumulatorului ((adicăadică zero,zero, pozitivă sau negativă pozitivă sau negativă),), starea starea unor liniiunor linii dede intrareintrare ,, precum precum şşi starea unori starea unor flagflag--uri specifice uri specifice -- carry carry (transport), overflow ((transport), overflow (depădepăşşireire), etc. ), etc.

InstrucInstruc ţţiunileiunile de control a de control a programuluiprogramului includ ramificări includ ramificări,, apeluriapeluri dedesubrutinesubrutine,, revenirireveniri dindin subrutine subrutine şşi i îîntreruperintreruperi . .

InstrucInstruc ţţiuniiuni dede repetarerepetare,, repetarerepetare aa unuiunui blocbloc şşii dede îîntârzierentârziere aa ramificărilor ramificărilor

sunt disponibile doar pentru procesoarelesunt disponibile doar pentru procesoareledindin generageneraţţiile avansateiile avansate. .

Aceste instrucAceste instrucţţiuniiuni pot fipot fi executateexecutatedede obicei obicei îîntrntr --oo manieră condi manieră condiţţionatăionată dede

rezultatele testării anumitor condirezultatele testării anumitor condi ţţiiii ..

Page 7: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 77

2.5.22.5.2 ProgramePrograme dede asamblareasamblare

PentruPentru aa proiecta cel mai eficient sistemproiecta cel mai eficient sistemDSP,DSP,codul scris trebuie optimizat codul scris trebuie optimizat pentrupentru aa exploata cât mai bine exploata cât mai bine resursele disponibileresursele disponibilealeale unui procesor datunui procesor dat. .

LimbajulLimbajul dede asamblareasamblareconstituieconstituie primaprima etapă situată deasupra etapă situată deasupra codului macodului maşşinăinăutilizatutilizat direct dedirect de către procesor către procesor;; astfelastfel,, el determină cea mai rapidă execu el determină cea mai rapidă execuţţie ie şşi i cea mai compactăcea mai compactă formă de formă de reprezentarereprezentareaa unui algoritmunui algoritm . .

InstrucInstruc ţţiunile sunt desemnate prin mnemoniciiunile sunt desemnate prin mnemonici,, registreregistre interneinterne şşi simboluri i simboluri predefinitepredefinite. .

NumereleNumerelepot fipot fi reprezentate reprezentate îînn formă formă hexazecimală hexazecimală,, zecimală zecimală,, sau binară sau binară,, sau sau prin intermediul unor simboluriprin intermediul unor simboluri definite dedefinite de către utilizator către utilizator. .

AsamblorulAsamblorul (assembler)(assembler)plasat plasat îîn calculatorul gazdăn calculatorul gazdă traducetraduce programulprogramul dedeasamblare asamblare îînn codcod obiectobiect, care, carepoatepoate fifi descărcat descărcat directdirect îîn memorian memoria de program de program aa procesorului procesorului îîn vederea execun vederea execuţţieiiei. .

Scrierea Scrierea îînn limbajlimbaj dede asamblare permite specificarea moduluiasamblare permite specificarea moduluidede generaregenerareaaadreseloradreselor,, modulmodul dede exploatareexploatareaa resurselor procesoruluiresurselor procesorului((registre registre şşi unităi unităţţi i funcfuncţţionaleionale),), setarea moduluisetarea moduluidede lucrulucru ,, precum precum şşi alte operai alte operaţţiiii dede administrareadministrare,,dând astfel programatorului posibilitateadând astfel programatorului posibilitatea de ade adedeţţine controluline controlul totaltotal asupra asupra performanperformanţţelorelor..

Page 8: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 88

2.5.32.5.3 ProgramePrograme CC

LimbajulLimbajul CC esteesteoo unealtă unealtă dede programare extremprogramare extrem dede utilă mai utilă mai alesalesîîn cazul n cazul sarcinilorsarcinilor dede calcul intensivcalcul intensiv. .

LimbajeleLimbajele dede programareprogramare dede uzuz general,general,aaşşaa cumcum esteesteCC sausauC++C++,, sunt adesea sunt adesea folosite pentru realizarea sarcinilorfolosite pentru realizarea sarcinilor dede procesareprocesareaa semnalelor semnalelor îîntrntr --o formăo formă

compactăcompactă şşi i portabil ăportabil ă. .

Programarea orientată pe obiecteProgramarea orientată pe obiecte(object(object--oriented programming) aoriented programming) a căpătat un căpătat un

interes aparte datorită faptuluiinteres aparte datorită faptului că că ea permite reutilizarea elementelorea permite reutilizarea elementelorsoft (soft (sau sau obiecteobiecte)) îîn alte programen alte programe.. Acest fapt poateAcest fapt poateconduce la oconduce la o scădere semnificativă scădere semnificativă aacostuluicostului dede dezvoltaredezvoltareaa noi programenoi programe..

CC areare capacită capacităţţile unui ile unui limbajlimbaj dede nivel nivel îînaltnalt,, precum manipularea ariilor precum manipularea ariilor şşi i funcfuncţţiiloriilor ,, necesare necesare îîn implementarea algoritmilorn implementarea algoritmilor DSP. DeDSP. Deasemeniasemeni,, dispunedispunedede

capacităcapacităţţi specifice unui i specifice unui limbajlimbaj dede nivel scăzut nivel scăzut,, precum manipulareaprecum manipularea lala nivelnivel de bit, de bit, aa pointerilor pointerilor şşi aci acţţiunea directă asupra facilităiunea directă asupra facilităţţilorilor I/O hardware.I/O hardware.

EficienEficienţţa compilatoruluia compilatorului CC ss--aa îîmbunătămbunătăţţit continuuit continuu,, dar programele dar programele îînn CC nu vor nu vor

putea să putea să îînlocuiască niciodată nlocuiască niciodată completcomplet avantajele coduluiavantajele coduluidede asamblareasamblare..

Page 9: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 99

2.5.42.5.4 Utilizarea combinată Utilizarea combinată aa limbajuluilimbajului CCşşii aa coduluicodului dede asamblareasamblare

Principalul scopPrincipalul scop alal dezvoltării dezvoltării softwaresoftware este scrierea mai ueste scrierea mai uşşoarăoară aa unuiunuiprogram, careprogram, care să asigure să asigure şşi facilit ăi facilit ăţţii dede depanaredepanare,, îîntrentreţţinereinere şşi i portabilitateportabilitatepepe o mareo mare varietatevarietate dede procesoareprocesoare. .

ÎÎ nn plus, seplus, sedoredoreşşte dezvoltarea unuite dezvoltarea unuiprogram careprogram care să necesite mai pu să necesite mai puţţine ine localocaţţiiii dede memorie memorie şşii carecare să utilizeze resurselesă utilizeze resurseledede calcul specificecalcul specificeunui anumit unui anumit procesorprocesor,, făcându făcându--ll astfel să ruleze cât mai astfel să ruleze cât mai rapid. rapid.

Aceste două direcAceste două direcţţii sunt adesea ii sunt adesea contradictoriicontradictorii. .

LimbajulLimbajul CC, de, denivel nivel îînaltnalt ,, este mai ueste mai uşşoror dede utilizat pentru un anumit algoritm utilizat pentru un anumit algoritm dat dat şşi ui uşşoror dede transpustranspus de lade la un anumit procesorun anumit procesor lala altulaltul . El. El permite urmărirea permite urmărirea

logicii unui algoritmlogicii unui algoritm ,, programul obprogramul obţţinut fiind uinut fiind u şşoror dede îînnţţeles eles şşii dede îîntrentreţţinutinut . .

TotuTotuşşii ,, codulcodul dede asamblare generatasamblare generatdede compilatorulcompilatorul CC nu estenu estelala felfel dede eficienteficientcaca şşi codul scrisi codul scrisdirectdirect îîn acest limbajn acest limbaj. .

Programul scrisProgramul scris directdirect îîn limbajn limbaj dede asamblareasamblareeste este îînn generalgeneralmaimai rapidrapid şşii dededimensiuni mai micidimensiuni mai mici,, dar necesită un timp mai dar necesită un timp mai maremare pentru dezvoltarepentru dezvoltare..

Page 10: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1010

2.5.42.5.4 Utilizarea combinată Utilizarea combinată aa limbajuluilimbajului CCşşii aa coduluicodului dede asamblareasamblare

BibliotecileBibliotecile softwaresoftware devin importante pe măsură ce algoritmii devin importante pe măsură ce algoritmii DSPDSPdevindevintottot mai complicamai complicaţţi i şşi necesită resurse computai necesită resurse computaţţionaleionale tottot mai marimai mari . .

ProducătoriiProducătorii de DSPde DSP--uri furnizeazăuri furnizează dede obicei obicei şşi uni un set dinset din cele mai utilizate cele mai utilizate operaoperaţţiiii dede procesareprocesaredede semnalsemnalîîn bibliotecin biblioteci softwaresoftware optimizate pentru un optimizate pentru un anumit procesoranumit procesor. .

Pe baza Pe baza crecreşşterii eficienterii eficienţţei compilatoruluiei compilatorului CC şşii aa disponibilită disponibilităţţiiii tottot mai mai marimari dede unelteunelte dede dezvoltaredezvoltaresoftware integrate,software integrate,utilizarea utilizarea îîn paraleln paralel aalimbajuluilimbajului CC şşii aa unor rutine unor rutine îîn asamblare devine calea cea mai bună n asamblare devine calea cea mai bună îîn n domeniul dezvoltării programelor pentru sistemedomeniul dezvoltării programelor pentru sisteme DSPDSP..

Page 11: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1111

2.5.52.5.5 Unelte pentru dezvoltareaUnelte pentru dezvoltarea softwaresoftware

UnelteleUneltelesoftware desoftware de bază includ bază includ

un un compilatorcompilator CC,, un un asamblorasamblor şşi i unun linkerlinker ..

Pentru validarea unui algoritmPentru validarea unui algoritmsesepoate utiliza fie unpoate utiliza fie un simulator simulator softwaresoftware,, fie unfie un emulator emulator hardwarehardware..

MATLABMATLAB este un limbaj pentru calculeste un limbaj pentru calculde marede mareperformanperformanţţăă carecare este utilizat frecvent este utilizat frecvent îîn domeniuln domeniulDSPDSPpentru proiectarea algoritmilor pentru proiectarea algoritmilor şşi pentru i pentru analizăanaliză. .

MATLAB MATLAB punepune lala dispozidispoziţţie un ie un mediumediu dede lucrulucrupentru manipularea variabilelor pentru manipularea variabilelor şşii aa datelordatelor I/OI/O şşi i pentru afipentru afi şşareare,, dar dar şşi pentru dezvoltarea aplicai pentru dezvoltarea aplicaţţiiloriilor . .

El includeEl include biblioteci matematice biblioteci matematice şşii DSP deDSP de bază bază şşi i permite crearea unor funcpermite crearea unor funcţţii mai complexe printrii mai complexe printr --o o maremare varietatevarietate de toolboxde toolbox--uriuri ..

Page 12: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1212

2.5.52.5.5 Unelte pentru dezvoltareaUnelte pentru dezvoltarea softwaresoftware

Compilatorul Compilatorul CC

CompilatoareleCompilatoarele C aleC ale procesoarelorprocesoarelor DSPDSP generează generează îînn modmod obiobişşnuitnuit cod de cod de asamblareasamblare, , astfel astfel îîncât utilizatorul poate urmări instrucncât utilizatorul poate urmări instruc ţţiunileiunile dede asamblareasamblaregenerate degenerate decompilator pentru fiecare liniecompilator pentru fiecare linie dindin codul sursă codul sursă îînn C. C.

CodulCodul dede asamblare poateasamblare poatefifi apoi apoi optimizatoptimizat dede către utilizator către utilizator şşi reintrodus i reintrodus îîn asamblorn asamblor. .

CompilatorulCompilatorul CC pentru familiapentru familia TMS320TMS320 corespunde standardelorcorespunde standardelorANSIANSI--C,C, făcând posibilăfăcând posibilă oo portabilitate maximăportabilitate maximă şşii oo crecreşşteretere aa capacită capacităţţilorilor . .

UnelteleUnelteledede compilarecompilare conconţţin in şşii oo bibliotecă completăbibliotecă completă care includecare includefuncfuncţţiiii dedeintrareintrare // ieieşşireire standard, destandard, demanipularemanipulare aa şşirurilorirurilor , de, de alocare dinamică alocare dinamică aamemorieimemoriei, de, deconversieconversieaa datelordatelor,, precum precum şşi funci funcţţii matematiceii matematice. .

Compilatorul dispune Compilatorul dispune şşii de o de o facilitatefacilitate opopţţionalăională dede optimizareoptimizare pentru pentru generarea unuigenerarea unuicod compactcod compactşşi eficient pornindi eficient pornind de lade la programul sursă programul sursă C.C.

Page 13: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1313

2.5.52.5.5 Unelte pentru dezvoltareaUnelte pentru dezvoltarea softwaresoftware

AsamblorulAsamblorul

FiFişşierulierul carecare conconţţine ine programulprogramul dede asamblareasamblareeste utilizateste utilizat caca intrare intrare îîn asamblorn asamblor, , care, decare, deobiceiobicei, se, se află pe calculatorul gazdă află pe calculatorul gazdă. .

Sarcina asamblorului esteSarcina asamblorului estede ade aconverti moduleleconverti modulelede codde cod sursă sursă,, scrise folosind scrise folosind mnemonicile limbajuluimnemonicile limbajului dede asamblareasamblare,, îînn modulemodule executabile executabile îînn codcod obiectobiect pentru pentru procesorulprocesorul DSP. DSP.

AsamblorulAsamblorul produceproduce două fidouă fi şşiereiere dede ieieşşireire. .

Un Un fifi şşier listăier listă carecare corelează opera corelează operaţţiileiile dede asamblareasamblarealeale unui modulunui modul particularparticularsausauaa unui grupunui grup de module, cude module, culocalocaţţiile memorieiiile memoriei de program/date,de program/date,erorileerorile dedeasamblareasamblare, etc. , etc.

Celălalt fiCelălalt fi şşier este ier este fifi şşierul obiectierul obiect, care, carepoatepoate fifi folositfolosit caca intrare intrare îînn linkerlinker . .

AsamblorulAsamblorul include deinclude de obicei facilită obicei facilităţţii macromacro--librarylibrary pentrupentru aa permitepermite oo abordare abordare

modularămodulară aa programării programării şşi pentrui pentru a produce coda produce codrelocatabil pentru unrelocatabil pentru un linker linker software.software.

Page 14: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1414

2.5.52.5.5 Unelte pentru dezvoltareaUnelte pentru dezvoltarea softwaresoftware

LinkerLinker --ulul

Sarcina specifică Sarcina specifică a linkera linker --ului esteului estede de aa combina modulelecombina modulelede codde codobiectobiectgenerategenerateseparat separat şşi fii fi şşierele asociate pentruierele asociate pentrua formaa forma un un singur modul singur modul legatlegatîînn codcod obiectobiect. .

LinkerLinker --ul realizează realocarea ul realizează realocarea şşi rezolvă referini rezolvă referin ţţele externe ele externe îîn timpul n timpul creerii modulului executabilcreerii modulului executabil. .

Avantajul procesuluiAvantajul procesului modular demodular de asamblareasamblare-- compilarecompilare C C -- legarelegareesteeste că că

doar secdoar secţţiunile sau modulele relevanteiunile sau modulele relevantealeale unuiunui programprogram trebuie să fie trebuie să fie

editate editate şşi asamblatei asamblate((sau compilatesau compilate)) îîn timpul procesuluin timpul procesului dede dezvoltare dezvoltare şşi i nu nu îîntreg fintreg fi şşierul sursăierul sursă. . AceastăAceastă facilitatefacilitate poate salva timp poate salva timp şşi efort i efort considerabilconsiderabil. .

Un numărUn număr dede comenzi specialecomenzi specialelegate delegate demaparea maparea îîn memorie n memorie şşii dedeorganizarea acesteiaorganizarea acesteiapot fipot fi implementate implementate îîntrntr --un un fifi şşier ier dede comandă comandă a a linkerlinker --uluiului ..

Page 15: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1515

2.5.52.5.5 Unelte pentru dezvoltareaUnelte pentru dezvoltarea softwaresoftware

SimulatorulSimulatorul

Simulatorul este unSimulatorul este unprogram careprogram care rulează pe calculatorul gazdă rulează pe calculatorul gazdă. El. El acceptă acceptă lalaintrareintrare codcod obiectobiect şşi i simulează operasimulează operaţţiile efectuateiile efectuatedede procesorulprocesorul DSPDSPaaşşaa cumcum ar ar rula acesta programulrula acesta programul,, dar nu dar nu îîn timpn timp real, real, cici subsub controlul utilizatoruluicontrolul utilizatorului . .

InterfaInterfa ţţa utilizatora utilizator prezintă memoria prezintă memoria,, registreleregistrele interne, I/O, etc.,interne, I/O, etc., şşi efectele i efectele asupra acestor resurse după execuasupra acestor resurse după execuţţia fiecărei instrucia fiecărei instruc ţţiuniiuni . .

Pot fiPot fi inserate inserate punctepuncte dede îîntreruperentrerupere (break points)(break points),, sau programul poatesau programul poatefifi rulatrulatpas cu paspas cu pas,, iar coniar conţţinutul oric ărui registruinutul oric ărui registru intern, aintern, a memorieimemoriei interne de interne de programprogram sausaude date pot fide date pot fiexaminate examinate îîn diferite modurin diferite moduri dede afiafişşare aleseare alesededeutilizatorutilizator . .

Utilizatorul poate schimba oricând conUtilizatorul poate schimba oricând conţţinutul oric ărui registruinutul oric ărui registru , flag (indicator),, flag (indicator),sau locasau locaţţieie dede memorie memorie îînaintenainte dede reluarea execureluarea execuţţieiiei simulate.simulate. DateleDatelepot fipot fi citite citite sau scrise sau scrise îîn anumite fin anumite fişşiere pentru analiza sau procesarea lor ulterioarăiere pentru analiza sau procesarea lor ulterioară. .

Simulatoarele unui anumit procesorSimulatoarele unui anumit procesorDSP permitDSP permit utilizatorului să utilizatorului să determinedetermineperformanperformanţţa unui algoritma unui algoritm pe un anumit procesor pe un anumit procesor ţţintă intă îînaintenainte de ade adezvoltadezvoltahardwarehardware--ulul..

Page 16: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1616

2.5.52.5.5 Unelte pentru dezvoltareaUnelte pentru dezvoltarea softwaresoftware

Code Composer Studio (CCS)Code Composer Studio (CCS)

ExistăExistă o o cererecereretottot maimai mare de mare de platformeplatforme dede dezvoltaredezvoltarecompletecomplete, care, care să dispună să dispună

dede cele mai avansate uneltecele mai avansate unelte, , precumprecum: : programare bazată peprogramare bazată pe scheme bloc,scheme bloc,sistemesistemedede operare operare îîn timpn timp real,real, unelte grafice pentru organizarea memorieiunelte grafice pentru organizarea memoriei,, depanarea depanarea şşi i prezentarea coduluiprezentarea codului,, îînregistrarea datelor nregistrarea datelor îîn timpn timp real,real, depanarea sistemelor depanarea sistemelor eterogene sau multiprocesoreterogene sau multiprocesor, etc. , etc. Code Composer Studio (CCS)Code Composer Studio (CCS)alal firmeifirmei Texas Texas InstrumentsInstruments, , reprezintăreprezintă o o astfelastfel de de platform ăplatform ă, care , care ajută utilizatorul ajută utilizatorul îîn dezvoltarea n dezvoltarea mai rapidămai rapidă aa unuiunui codcod eficienteficient..

CCS CCS este un este un mediu integratmediu integrat dede dezvoltaredezvoltarecarecare îîncorporează un ncorporează un compilatorcompilator C,C, un un asamblorasamblor,, unun linker,linker, unun simulator,simulator, un depanatorun depanator, etc., etc., cu, cu resurse adiresurse adiţţionale precumionale precumoo interfainterfa ţţă grafică pentru dezvoltareaă grafică pentru dezvoltareasoftwaresoftware--ului pentruului pentru DSP. DSP.

EsteEsteoo unealtă unealtă softwaresoftware uuşşoror dede utilizat destinată utilizat destinată dezvoltăriidezvoltării dede programeprograme.. Ea Ea

furnizează unfurnizează un editoreditor pentru programarepentru programare şşi uni un manager demanager deproiectproiect pentru pentru construirea programelorconstruirea programelor dede aplicaaplicaţţieie.. ÎÎ n scopul testării programelorn scopul testării programelor ,, dispunedispunededepapaşşii ,, punctepuncte dede oprireoprire ,, ferestreferestre dede supravegheresupraveghere,, capacită capacităţţi grafice pentru i grafice pentru monitorizarea datelor monitorizarea datelor şşi punctei puncte dede probă pentru fi probă pentru fişşierulierul de date de I/O. de date de I/O.

Page 17: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1717

2.5.52.5.5 Unelte pentru dezvoltareaUnelte pentru dezvoltarea softwaresoftware

Code Composer Studio (CCS)Code Composer Studio (CCS)

CCSCCS dispunedispunedede asemeneaasemeneadede capacităcapacităţţii dede urmărire urmărire care permitcare permit utilizatorului utilizatorului

săsă determinedetermine timpultimpul dede execuexecuţţie solicitatie solicitat de ode o anumită por anumită porţţiuneiune aa programuluiprogramului . .

ÎÎ nn plus, CCSplus, CCSpunepune lala dispozidispoziţţia utilizatorului un ia utilizatorului un sistemsistemdede operareoperare DSPDSP,, numitnumitDSP/BIOS (basic input/output system)DSP/BIOS (basic input/output system).. Acesta reprezintă un Acesta reprezintă un nucleunucleu software software dede timptimp realreal carecare permite utilizatorului să organizeze sarcinile permite utilizatorului să organizeze sarcinile îîn programuln programulDSPDSP şşi să monitorizeze performani să monitorizeze performanţţaa dede timptimp real areal a codului pentrucodului pentru DSP,DSP, fără fără a a fifi necesară stabilirea unor puncte necesară stabilirea unor puncte dede oprireoprire . .

Spre deosebireSpre deosebiredede depanarea convendepanarea convenţţionalăională,, unde utilizatorul trebuie să unde utilizatorul trebuie să

oprească execuoprească execuţţiaia DSPDSPprin puncteprin puncte de stop, DSP/BIOSde stop, DSP/BIOS furnizează furnizează serviciiservicii runrun --time (time (îîn timpul rul ăriin timpul rul ării )) şşi poate detecta punctele slabei poate detecta punctele slabecarecare nu arnu ar fifi pututputut fifidetectate prin depanarea convendetectate prin depanarea convenţţionalăională. .

CCS CCS dispune dispune şşii de ode o unealtă prin unealtă prin carecare este legateste legatcu MATLAB.cu MATLAB.

Page 18: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1818

2.62.6 CerinCerinţţee hardwarehardware

ÎÎ n afara cerinn afara cerinţţelorelor softwaresoftware descrisedescriseanterior,anterior, există există şşi unele cerini unele cerinţţe e importanteimportante,, precum precum selectarea componentelorselectarea componentelorhardwarehardware necesare necesare şşi i modulmodul dede interfainterfa ţţareare aa dispozitivelordispozitivelor hardwarehardware externeexterne lala procesorulprocesorulDSP. DSP.

EsteEstedede asemenea necesar să asemenea necesar să seseconfigurezeconfigurezehardhard--ulul cu softcu soft--ul ul microprogramatmicroprogramat (firmware)(firmware) şşii care secare se integrează integrează îînn softwaresoftware--ulul DSPDSPpentrupentru a formaa forma un sistemun sistemDSPDSPcompletcomplet..

Page 19: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1919

2.6.12.6.1 SelectareaSelectarea hardhard--uluiului

FamiliaFamilia TMS320TMS320 punepune lala dispozidispoziţţieie oo gamă largăgamă largă dede dispozitivedispozitive din caredin care să să sese poată poată

alege cea mai bună solualege cea mai bună soluţţie pentruie pentru oo anumită aplica anumită aplicaţţieie. De. De exempluexemplu,, dispozitivele dispozitivele generageneraţţieiiei C54xC54x diferă diferă îîntre ele prin ntre ele prin nucleulnucleul DSP,DSP, frecvenfrecvenţţa ceasuluia ceasului dede operareoperare,,tensiunitensiuni,, configuraconfiguraţţiileiile ROM onROM on--chip,chip, configuraconfiguraţţiileiile RAM,RAM, tipul tipul şşi numărul i numărul porturilor serialeporturilor seriale , etc., etc.Aceste deosebiri Aceste deosebiri îîntre dispozitivelentre dispozitivele DSPDSP generează flexibilitate generează flexibilitate

utilizatorului pentruutilizatorului pentru aa adopta soluadopta soluţţiaia optimă optimă pentru aplicapentru aplicaţţia saia sa.. UnUn altalt avantaj esteavantaj este căcă utilizatorul poate programa pe un dispozitiv utilizatorul poate programa pe un dispozitiv şşi apoi i apoi poate porta codulpoate porta codul pe unpe un altaltdispozitivdispozitiv dindin aceeaaceeaşşi familiei familie cu marecu mare uuşşurinurin ţţăă..

ÎÎ n afara perifericelorn afara perifericelor interne,interne, procesoareleprocesoareleDSPDSP trebuie să comunice trebuie să comunice şşii cucu dispozitive dispozitive externeexterne,, precum canaleleprecum canaleledede comunicacomunicaţţiiii ,, difuzoaredifuzoare,, microfoane microfoane şşi dispozitivei dispozitive dedeîînregistrare nregistrare şşii //sau redaresau redare. Mai. Mai multmult ,, procesoareleprocesoareleDSPDSP trebuie să poată stoca trebuie să poată stoca datedatesuplimentare sau programe suplimentare sau programe îîn n memoria externămemoria externă,, sau chiar sau chiar să comunicesă comunicecu altcu altprocesorprocesorprin inermediul magistralelor externe sauprin inermediul magistralelor externe sauaa interconexiunilorinterconexiunilor . .

ProcesoareleProcesoareleDSPDSP solicită solicită dede asemeneaasemeneaoo sursă externăsursă externă dede tensiunetensiune,, precum precum şşi uni ungenerator degenerator deceas sau cristal oscilatorceas sau cristal oscilatorpentrupentru aa alimenta alimenta şşi respectivi respectiv aa pilota pilota funcfuncţţionarea procesoruluiionarea procesorului. De. Deobiceiobicei, , îîntrntr --un sistemun sistemDSPDSPmai sunt necesare mai sunt necesare şşi alte i alte circuite circuite şşi dispozitivei dispozitive hardware.hardware.

Page 20: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2020

2.6.22.6.2 ConfiguraConfiguraţţiiii hardwarehardware

După ce un procesorDupă ce un procesorDSPDSP corespunzător aplica corespunzător aplicaţţieiiei aa fost selectatfost selectat,, iariar hardwarehardware--ululextern aextern a fost conectatfost conectatlala piniipinii dede interfainterfa ţţă ai procesoruluiă ai procesorului,, trebuie trebuie îînscrisenscrise oo serieserie dedeprogrameprograme,, numitenumite firmwarefirmware ,, pentrupentru aa iniini ţţializa perifericele procesorului ializa perifericele procesorului şşi i dispozitivele externedispozitivele externe. .

Unele dintre cele mai importante Unele dintre cele mai importante configurăriconfigurări hardwarehardware includ următoarele includ următoarele::

�� Setarea frecvenSetarea frecvenţţei ceasului ei ceasului şşi programareai programarea PLLPLL --uluiului internintern pentrupentru aa pilota pilota corect procesorulcorect procesorul;;

�� SetareaSetareasoftwaresoftware şşii hardware ahardware a stărilor stărilor dede aaşşteptareteptare aleale memoriei externe memoriei externe şşiialeale dispozitivelordispozitivelor I/O;I/O;

�� Setarea frecvenSetarea frecvenţţeiei dede eeşşantionareantionare, a, a rateiratei de transferde transfer şşii aa mărimii mărimii bufferbuffer --elorelordede intrare intrare şşii dede ieieşşireire aleale convertoarelorconvertoarelor ADCADC şşii //sausauDAC;DAC;

�� Setarea protocoluluiSetarea protocoluluidede comunicacomunicaţţieie lala transferuluitransferului DMADMA pentrupentru aa deplasadeplasadatedate îîn n şşii dindin memoria internă memoria internă aa procesorului fără interven procesorului fără intervenţţia acestuiaia acestuia..

Page 21: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2121

2.6.32.6.3 UnelteUnelte hardwarehardware

Odată ceOdată cefirmwarefirmware --ulul aa fost corect programatfost corect programat,, codul este legat codul este legat şşi descărcat i descărcat îîn n memoria internămemoria internă a DSPa DSP--ului prinului prin softwaresoftware--ulul dede îîncărcarencărcare ((bootboot--loaderloader). ).

FirmwareFirmware --ul este rulat ul este rulat îînaintea rutinei principalenaintea rutinei principale a DSPa DSP--uluiului .. UnUn set deset deunelteuneltehardwarehardware esteestedede obicei disponibil pentruobicei disponibil pentru aa testa functesta funcţţionalitateaionalitatea firmwarefirmware --ului ului şşii a softwarea software--uluiului . .

Majoritatea producătorilorMajoritatea producătorilor de DSPde DSP--uriuri , ca, ca şşi unii distribuitorii unii distribuitori , au, au dezvoltat dezvoltat diferite diferite platformeplatforme dede dezvoltaredezvoltare,, pentrupentru aa acoperi cât mai bine cerinacoperi cât mai bine cerinţţele ele utilizatorilorutilizatorilor .. Aceste unelteAceste uneltedede dezvoltaredezvoltareauau tipuri diferitetipuri diferite ,, nivelenivele dede suport suport variatevariate,, precum precum şşi uni un costcostvariabilvariabil , de la, de lacel mai scumpcel mai scumpemulator inemulator in--circuitcircuit şşi i pânăpână lala cel mai ieftincel mai ieftin kit de startkit de start (DSK). (DSK).

UnelteleUnelteledede dezvoltare asistă proiectantul dezvoltare asistă proiectantul îîn testarea algoritmilorn testarea algoritmilor DSPDSPîîn timpn timprealreal şşi i îîn realizarea prototipului pentru produsuln realizarea prototipului pentru produsul final. Definal. De aceeaaceea, o, o arie cât mai arie cât mai

largălargă dede unelteunelte hardwarehardware şşii software, de chipsoftware, de chip--uri perifericeuri periferice I/OI/O şşii dede memorii memorii disponibile sunt elemente foarte importante disponibile sunt elemente foarte importante îînn a decide a decide carecare este cel maieste cel maibunbunprocesorprocesorDSPDSPpentrupentru oo anumită aplica anumită aplicaţţieie..

Page 22: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2222

2.6.32.6.3 UnelteUnelte hardwarehardware

EmulatorulEmulatorul

Emulatoarele grăbesc procesulEmulatoarele grăbesc procesuldede dezvoltare permidezvoltare permiţţând unuiând unui program DSPprogram DSP să să

fie rulatfie rulat lala viteza maximă viteza maximă îîntrntr --un mediuun mediu dede timptimp realreal.. Deoarece emularea este Deoarece emularea este

efectuată efectuată îîn timpn timp realreal utilizând chiar sistemul utilizând chiar sistemul ţţintăintă,, erorileerorile de hardwarede hardware sausaude de timing pot fitiming pot fi identificate prin utilizarea unui identificate prin utilizarea unui analizoranalizor logiclogic..

Verificarea finalăVerificarea finală aa validită validităţţii programului esteii programului este de ade a--ll îîncărca ncărca îîn memorian memoriaprogram aprogram a procesorului procesorului şşii de ade a--ll executa pe suportulexecuta pe suportulhardwarehardware disponibildisponibil . .

PentruPentru aa determina rezultateledetermina rezultatele,, folosind intrări folosind intrări dede timptimp real,real, emulatoarele emulatoarele

prevăd posibilitatea inserării unor puncteprevăd posibilitatea inserării unor puncte dede oprireoprire ((breakpointsbreakpoints),), îîn scopul n scopul opririi rul ării programului opririi rul ării programului şşi examinării coni examinării con ţţinutului registrelor inutului registrelor şşii aa localocaţţiiloriilordede memoriememorie.. ÎÎ naintenainte caca un punctun punct dede oprire să fie atins oprire să fie atins,, procesorulprocesorul DSPDSP rulează rulează

lala îîntreaga sa vitezăntreaga sa viteză.. UnUn emulator inemulator in--circuitcircuit permitepermite ca hardca hard--ulul finalfinal să fie să fie

testattestat lala îîntreaga viteză conectând procesorulntreaga viteză conectând procesorullala mediul mediul îîn timpn timp real alreal alutilizatoruluiutilizatorului .. PoatePoatefifi determinat numărul determinat numărul dede cicluri dintre punctelecicluri dintre punctele dede oprireoprire ,,iar timigiar timig --ulul hardwarehardware şşii software alsoftware al unui sistem poateunui sistem poatefifi şşi el urmăriti el urmărit ..

Page 23: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2323

2.6.32.6.3 UnelteUnelte hardwarehardware

Module de Module de evaluareevaluare

Un modulUn modul dede evaluare reprezintă evaluare reprezintă oo platform ăplatform ă dede dezvoltaredezvoltareuuşşorordede manipulatmanipulat carecare dispunedispunede de oo placă placă DSP,DSP,pepe care secare se află află şşi altei altechipchip--uri perifericeuri periferice ,, precum coderprecum coder--decoder (CODEC)decoder (CODEC)pentru pentru interfainterfa ţţaa audio,audio, suportsuport de emulator JTAG (joint test action group)de emulator JTAG (joint test action group)şşi memoriii memorii . .

O O placăplacă dede evaluare poateevaluare poatefifi introdusă introdusă îîntrntr --unun calculator PCcalculator PC sau sau îîntrntr --oo stastaţţieie dede lucrulucru . .

Este inclusEste inclusdede asemenea asemenea şşi uni un softwaresoftware integratintegrat dede dezvoltaredezvoltare,,precumprecum CCSCCS, care, care permite utilizatorului să pornească codul permite utilizatorului să pornească codul dedeevaluare pe platforma evaluare pe platforma ţţintă intă şşi săi să determinedetermine dacă sunt dacă sunt îîndeplinite ndeplinite constrângerileconstrângeriledede timptimp ..

Page 24: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2424

2.6.32.6.3 UnelteUnelte hardwarehardware

Kitul Kitul de start (DSK)de start (DSK)

KitulKitul de startde start esteesteoo versiune inferioară versiune inferioară aa modululuimodulului dede evaluareevaluare, care, careeste este foartefoarte economiceconomicpentrupentru aa realiza doar realiza doar evaluarea rapidăevaluarea rapidă aa coduluicodului. .

El seEl sepoate conecta upoate conecta uşşoror lala unun calculatorcalculator prin portul paralelprin portul paralel ,, sausau la la emulatoremulator prin cablulprin cablul JTAGJTAG . .

TotuTotuşşii ,, lipsa perifericelor lipsa perifericelor şşii aa memoriilor pe kitulmemoriilor pe kitul de start potde start pot solicita solicita

utilizatorului s ă construiască utilizatorului s ă construiască plăci adiplăci adiţţionaleionale de I/Ode I/O şşii dede memorie pentrumemorie pentruaa compensa economia făcută compensa economia făcută şşii aa dispunedispune((totutotuşşii ) de ) de un sistemun sistemfuncfuncţţional.ional.

Page 25: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2525

2.72.7 ConsideraConsideraţţii asupra sistemuluiii asupra sistemului

Proiectarea sistemelorProiectarea sistemelorDSPDSP constă constă îînn::

•• îînnţţelegerea unei aplicaelegerea unei aplicaţţiiii date,date,•• dezvoltarea algoritmilordezvoltarea algoritmilor DSP, DSP, •• implementarea algoritmilor prinimplementarea algoritmilor prin softwaresoftware pe baza unui anumit procesorpe baza unui anumit procesor,,•• dezvoltareadezvoltareahardwarehardware--uluiului , , •• integrareaintegrarea softsoft--uluiului cu hardcu hard--ul ul şşi i îînn•• analiza performananaliza performanţţei sistemului pentru asigurarea satisfacerii cerinei sistemului pentru asigurarea satisfacerii cerinţţelorelor. .

Proiectarea unui sistemProiectarea unui sistemDSPDSP utilizând unelteutilizând unelte CADCAD şşii dede analiză analiză conduce la oconduce la o abordare mai eficientă abordare mai eficientă îîn manipularea aplican manipularea aplicaţţiilor complexeiilor complexe..

Factorii cei mai criticiFactorii cei mai critici carecare determină timpul determină timpul dede execuexecuţţieie aa programului suntprogramului suntrata derata de eeşşantionareantionare şşi i complexitatea algoritmuluicomplexitatea algoritmului.. AceAceşşti factori impun ti factori impun restricrestricţţii asupra ratei maximeii asupra ratei maxime dede eeşşantionareantionare, care, care trebuie să fie trebuie să fie cel pucel puţţinin dede

două ori maidouă ori mai maremare decât frecvendecât frecvenţţa maximăa maximă aa semnaluluisemnalului dede intrare pentruintrare pentru aaevita citirileevita citirile falsefalse.. AcestAcest aspectaspecttrebuie avut trebuie avut îîn vedere cândn vedere cândsesestabilestabileşşte gradulte graduldede aplicabilitateaplicabilitate aa unui sistemunui sistemDSPDSPpentrupentru oo aplicaaplicaţţie concretăie concretă..

Page 26: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2626

2.7.12.7.1 Alegerea tipuluiAlegerea tipului dede procesorprocesor DSPDSP

ProcesoareleProcesoareleDSPDSP urmăresc evolu urmăresc evoluţţia microprocesoarelor ia microprocesoarelor îîn ce priven ce priveşşte te performanperformanţţa a şşi integrarea pei integrarea pe chip.chip. ÎÎ n acelan acelaşşi timpi timp ,, puterea consumată puterea consumată

devine undevine unfactor importantfactor important pentru dispozitivele pentru dispozitivele şşi aparatura portabil ăi aparatura portabil ă. .

Proiectarea unui produsProiectarea unui produs DSPDSP este limitată este limitată dede următoarele următoarele scopuri cheiescopuri cheiealeale proiectării proiectării: :

•• costul produsuluicostul produsului, ,

•• costul proiectării costul proiectării, ,

•• upgradabilitateaupgradabilitatea, ,

•• integrarea integrarea îîn sistem n sistem şşi i

•• puterea consumată puterea consumată. .

Aceste aspecte joacă un rol esenAceste aspecte joacă un rol esenţţial ial îîn n alegerea unui anumitalegerea unui anumit tip detip deprocesorprocesorDSPDSP..

Page 27: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2727

2.7.12.7.1 Alegerea tipuluiAlegerea tipului dede procesorprocesor DSPDSP

Alegerea unui procesorAlegerea unui procesorDSPDSP carecare să corespundă unei aplica să corespundă unei aplicaţţiiii datedate esteestededeobiceiobicei oo sarcină destul sarcină destul dede complicată complicată.. Unii dintre factoriiUnii dintre factorii carecare ar putea ar putea influeninfluenţţa alegerea sunt costula alegerea sunt costul,, performanperformanţţeleele,, perspectivaperspectiva dede dezvoltare dezvoltare şşi i suportulsuportul dede dezvoltaredezvoltarehardwarehardware şşii softwaresoftware disponibildisponibil ..

PornindPornind de lade la formatul datelorformatul datelor ,, procesorul vaprocesorul va fifi unul unul îîn virgulă fixăn virgulă fixă sau sau îîn n virgul ă mobilăvirgul ă mobilă.. Formatul datelor stabileFormatul datelor stabileşşte abilitatea dispozitivuluite abilitatea dispozitivului de ade amanipula semnalemanipula semnaledede precizii diferiteprecizii diferite ,, îîn domeniin domenii diverse diverse şşii cucu unun factorfactorsemnalsemnal--zgomotzgomotbun. bun.

Utilizarea procesoarelor Utilizarea procesoarelor îîn virgulă mobilă poate cren virgulă mobilă poate creşşte domeniile dinamiciite domeniile dinamiciialeale semnalelor semnalelor şşii aleale coeficiencoeficienţţilorilor .. Procesoarele Procesoarele îîn virgulă mobilă suntn virgulă mobilă sunt dede

regulă mai scumpe decât cele regulă mai scumpe decât cele îîn virgulă fixăn virgulă fixă,, dar ele sunt mult mai dar ele sunt mult mai potrivite pentru programareapotrivite pentru programarea dede nivel nivel îînalt nalt îînn C.C. AstfelAstfel,, ele sunt mai uele sunt mai uşşorordede utilizat utilizat şşii permit opermit o scurtarescurtare aa timpului timpului îînn carecare produsulprodusul finalfinal ajunge pe ajunge pe piapiaţţăă. .

CândCând sese alege alege îîntre un procesor ntre un procesor îîn virgulă fixă n virgulă fixă şşi unul i unul îîn virgulă mobilăn virgulă mobilă,,uuşşurinurin ţţa utilizării a utilizării şşi timpuli timpul dede dezvoltaredezvoltare aa unei aplicaunei aplicaţţiiii sunt adeseasunt adesealala felfeldede importanteimportante..

Page 28: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2828

2.7.12.7.1 Alegerea tipuluiAlegerea tipului dede procesorprocesor DSPDSP

VitezaViteza dede execuexecuţţieie aa unui algoritmunui algoritm DSPDSP reprezintă reprezintă dede asemenea un criteriuasemenea un criteriuimportantimportant pentru alegerea unui anumit procesorpentru alegerea unui anumit procesor. .

Când Când performanperformanţţa este cel maia este cel maiimportant factorimportant factor ,, algoritmul trebuie implementat algoritmul trebuie implementat prinprin codcod optimizat pentru diferite procesoareoptimizat pentru diferite procesoare,, iar timpiiiar timpii dede execuexecuţţie trebuie apoi ie trebuie apoi comparacomparaţţii .. Timpul pentruTimpul pentru aa realiza un anumit algoritm codificat realiza un anumit algoritm codificat îîn limbajn limbaj dede

asamblare optimizat poartă numeleasamblare optimizat poartă numeledede benchmarkbenchmark.. UnUn benchmark sebenchmark sepoate utiliza poate utiliza pentrupentru aa furnizafurniza oo măsură generală măsură generală aa performanperformanţţei unui algoritm pentru un ei unui algoritm pentru un anumit procesoranumit procesor. .

Alte aspecteAlte aspectece trebuiece trebuieconsiderateconsiderate sunt mărimea memoriei sunt mărimea memoriei ((pepe chipchip şşi adresabilă i adresabilă îînn exterior)exterior) şşi existeni existenţţa unor dispozitive periferice pea unor dispozitive periferice pechip,chip, precum interfeprecum interfeţţe e seriale seriale şşi paralelei paralele,, timere timere şşii capacitate decapacitate demultiprocesaremultiprocesare. .

ÎÎ nn plus,plus, dimensiuniledimensiunile,, greutatea greutatea şşi puterea consumatăi puterea consumată trebuie să fie cât mai mici trebuie să fie cât mai mici. .

O O constrângere importantă esteconstrângere importantă este dată de dată de prepreţţul sistemuluiul sistemului. Ca. Ca şşi i îîn cazul n cazul microprocesoarelormicroprocesoarelordede uzuz general,general, furnizorii secundarifurnizorii secundari ,, suportul oferitsuportul oferit dede alte alte firmefirme (third(third --party)party) şşi respectarea standardelor industriale sunt i respectarea standardelor industriale sunt alte aspectealte aspectecarecaretrebuietrebuie evaluate.evaluate.

Page 29: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2929

2.7.22.7.2 EEşşantionarea antionarea şşi cuantificareai cuantificarea

Semnalul analogic este eSemnalul analogic este eşşantionat antionat şşi cuantizati cuantizat ((codificatcodificat)) pentrupentru a fia fi utilizat utilizat îîntrntr --un un sistemsistemdigital. digital.

EEşşantionareaantionarea este procesuleste procesuldede convertireconvertire aa unui semnal continuu unui semnal continuu îîn timp n timp îîntrntr --unul unul discretdiscret ((îîn timpn timp), care), care îîncă posedă amplitudinincă posedă amplitudini continue lacontinue la intervaleintervale dede eeşşantionareantionarediscrete.discrete.Amplitudinile semnalelorAmplitudinile semnalelor discretediscretesunt apoi sunt apoi cuantificatecuantificate prin valori digitaleprin valori digitale ,,pe baza unei lungimipe baza unei lungimi(N) a(N) a cuvântului fixată cuvântului fixată. .

ADC ADC realizează procesulrealizează procesuldede eeşşantionare antionare şşi cuantificarei cuantificare.. EsteEste important deimportant de amintitamintit că că

numai semnalele digitalenumai semnalele digitale((nu nu şşi celei celediscretediscrete îîn timpn timp)) sunt utilizabile sunt utilizabile îîntrntr --un sistemun sistemDSP.DSP.

Page 30: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Dacă teoremaDacă teoremadede eeşşantionare este antionare este îîncălcatăncălcată, are, are loc un fenomenloc un fenomendede abatereabatere. . Rata (Rata (frecvenfrecvenţţaa) de) de eeşşantionareantionare,, îînn Hz,Hz, este legată este legată dede perioadaperioada dede eeşşantionareantionareT,T, îîn secunden secunde,, prin relaprin rela ţţiaia::

aa semnaluluisemnalului dede intrareintrare .. Adică Adică::

esteestedede două ori maidouă ori mai maremare decât frecvendecât frecvenţţa maximăa maximă,,

poatepoate fifi reconstituitreconstituit exact dinexact din valorile evalorile eşşantionate dacăantionate dacă rata derata de eeşşantionareantionare,,

PerioadaPerioadadede eeşşantionareantionare, T,, T, este determinată este determinată dede frecvenfrecvenţţa semnaluluia semnaluluidede intrareintrare . .

Conform Conform teoremeiteoremeidede eeşşantionareantionare aa luilui ShannonShannon,, un semnal analogicun semnal analogiccucu frecvenfrecvenţţa a îîn bandan banda

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 3030

2.7.22.7.2 EEşşantionarea antionarea şşi cuantificareai cuantificarea

Mff ≤≤≤≤

sf

Mf

Ms ff 2≥≥≥≥

Tfs

1====

(2.2)(2.2)

(2.3)(2.3)

Rata deRata de eeşşantionare este fixatăantionare este fixată dede obiceiobicei dede aplicaaplicaţţieie. De. De exempluexemplu,, unun CD audioCD audio este este eeşşantionatantionat la 44,1la 44,1KHzKHz ,, iar vocea iar vocea îîn telecomunican telecomunicaţţii este eii este eşşantionatăantionată la 8la 8 KHzKHz ..SemnaleleSemnalelediscretediscrete îîn timp presupunn timp presupun că că un număr infinit un număr infinit dede bibi ţţi sunt utilizai sunt utilizaţţi pentru i pentru reprezentarea valorilor digitalereprezentarea valorilor digitale.. ÎÎ n practicăn practică,, doar doar un număr finitun număr finit dede bibiţţii poatepoate fifi utilizatutilizat(de(de exempluexemplu, 16, 16bibiţţi i îîn majoritatea procesoarelor n majoritatea procesoarelor îîn virgulă fixăn virgulă fixă).).

Page 31: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

CuantizareaCuantizarea este procesul prineste procesul princarecare un eun eşşantion discret antion discret îîn timp este reprezentatn timp este reprezentatdedecel mai apropiat nivelcel mai apropiat nivel carecare corespundecorespundela ola o scară scară îîntreagăntreagă.. Acest procesAcest procesintroduceintroduce un un zgomotzgomot dede cuantificarecuantificare nedoritnedorit , care, care reprezintă diferen reprezintă diferenţţa dintre valoarea realăa dintre valoarea reală((discretă discretă îîn timpn timp)) şşi valoarea atribuită prin semnaluli valoarea atribuită prin semnalul digital. Cudigital. Cu cât cât lungimealungimea N aN acuvântuluicuvântului folosit pentru reprezentarea efolosit pentru reprezentarea eşşantioanelor digitale este maiantioanelor digitale este maimare, cumare, cu atât atât este mai mic zgomotuleste mai mic zgomotuldede cuantificarecuantificare.. ÎÎ nn general,general, raportul semnalraportul semnal -- zgomotzgomot dedecuantificarecuantificare (SQNR)(SQNR) este dat prineste dat prin::

(2.4)(2.4)

Orice acurateOrice acurateţţe dorită poatee dorită poatefifi atinsă prin simpla cre atinsă prin simpla creşşteretere aa lungimii cuvântuluilungimii cuvântului ,,ceea ceceea ceconduceconduceîînsănsă lala crecreşşterea costuluiterea costului..

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 3131

2.7.22.7.2 EEşşantionarea antionarea şşi cuantificareai cuantificarea

)dB(NSQNR 6====

Page 32: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 3232

2.7.22.7.2 EEşşantionarea antionarea şşi cuantificareai cuantificarea

VitezaViteza dede procesare determină procesare determină rata la carerata la care semnalul analogic poatesemnalul analogic poatefifi eeşşantionatantionat. .

SemnaleleSemnalelecucu bandă limitată bandă limitată pot fipot fi eeşşantionate dacăantionate dacă rata derata de eeşşantionare corespunde antionare corespunde relarelaţţieiiei (2.2).(2.2).TotuTotuşşii ,, majoritatea aplicamajoritatea aplicaţţiilor reale implic ăiilor reale implic ă oo anumită anumită rată de rată de

eeşşantionare cerutăantionare cerută dede semnalele analogice realesemnalele analogice realecare potcare pot avea lă avea lăţţimiimi dede bandă mai bandă mai

mari decât jumătatea frecvenmari decât jumătatea frecvenţţeiei dede eeşşantionare specificatăantionare specificată. .

De De exempluexemplu, rata de, rata de eeşşantionare antionare îîn majoritatea sistemelorn majoritatea sistemelordede telecomunicatelecomunicaţţii este ii este definitădefinită la la 88 KHzKHz ,, dar lă dar lăţţimea benzii semnalelor vorbite poateimea benzii semnalelor vorbite poatefifi până până la la 2020 KHzKHz ,,ceea ceceea ceee mult mai mult decâtmult mai mult decât 44 KHzKHz . .

PentruPentru aa garantagaranta că că teoremateoremadede eeşşantionare este satisfăcutăantionare este satisfăcută, se, se utilizează un utilizează un filtru filtru analogic treceanalogic trece--josjos îîn scopul reducerii lăn scopul reducerii lăţţimii benzii semnalului analogic imii benzii semnalului analogic îînaintea naintea convertoruluiconvertorului ADAD. .

Chiar dacă semnalulChiar dacă semnaluldede intrare intrare are are banda limitatăbanda limitată subsub jumătatea frecven jumătatea frecvenţţeiei dedeeeşşantionareantionare,, filtrulfiltrul ((antianti --aliasingaliasing filterfilter )) este totueste totuşşi utilizat pentrui utilizat pentru a reducea reduceposibilitatea posibilitatea ca ca zgomotulzgomotul dindin afara benzii să intre afara benzii să intre îîn bandan banda dede frecvenfrecvenţţe dorităe dorită..

Page 33: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 3333

2.7.32.7.3 ConversiaConversia digitaldigital--analogicăanalogică

Un Un semnal analogic poatesemnal analogic poatefifi refăcut fără distorsiuni refăcut fără distorsiuni pornindpornind de lade la semnalulsemnaluldigitaldigital eeşşantionat antionat îînn mod ideal cumod ideal cuajutorul convertoruluiajutorul convertorului DADA şşii aa filtrării trece filtrării trece--josjos. .

Filtrul pentru reconstrucFiltrul pentru reconstruc ţţia idealăia ideală areare un răspuns un răspuns bun labun la jumătate jumătate dindin frecvenfrecvenţţaadede eeşşantionareantionare.. Orice Orice îîndepărtarendepărtare dede caracteristicile filtruluicaracteristicile filtrului ideal introduce oideal introduce oserieseriedede distorsiuni spectraledistorsiuni spectrale..

Proiectarea unui Proiectarea unui filtrufiltru dede netezirenetezireeste mai ueste mai uşşoară prin utilizarea tehniciioară prin utilizarea tehnicii de de suprasupra--eeşşantionareantionare.. FiltreleFiltrele cucu condensator comutatcondensator comutat sunt preferate sunt preferate îîn practică n practică datorit ă frecvendatorit ă frecvenţţei lorei lor dede tăiere programabile tăiere programabile şşii a a dimensiunii fizicedimensiunii fizice redusereduse..

Page 34: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 3434

2.7.42.7.4 CodareCodare -- decodaredecodare

Un Un codeccodecincludeinclude pe acelape acelaşşii chipchip filtrulfiltrul antianti --aliasingaliasing, ADC, DAC, ADC, DAC şşi filtruli filtrul dedereconstituirereconstituire.. CodecCodec--urileurile ss--auau dezvoltat mai dezvoltat mai îîntâi ntâi îîn telecomunican telecomunicaţţiiii : : ele sunt ele sunt practic nipractic ni şşte te convertoareconvertoarede datede dateserialeseriale şşi sunt deosebiti sunt deosebitdede atractive atractive îîn n aplicaaplicaţţiileiile de vocede voce(audio,(audio, îînn general)general)pentrupentru carecare porturile seriale există deja pe porturile seriale există deja pe

procesorprocesor..

Schema bloc a Schema bloc a unui codecunui codec::

Page 35: 2.5 Dezvoltări software - pns.ac.tuiasi.ropns.ac.tuiasi.ro/Doc/curs/Prezentare_03.pdf · Procesoare Numerice de Semnal -CURS 1 2.5 Dezvoltări software Proiectarea unui sistem DSP

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 3535

2.7.52.7.5 Optimizarea vitezeiOptimizarea vitezei

Multe aplicaMulte aplicaţţiiii DSPDSP necesită necesită procesarea procesarea îîn timpn timp realreal pe durate maripe durate mari dede timptimp . .

Pentru operaPentru operaţţiile iile îîn timpn timp real,real, trebuie procesată trebuie procesată oo secvensecvenţţăă dede eeşşantioaneantioanedede intrare intrare pentrupentru a producea produceeeşşantionulantionul dede ieieşşire corespunzător ire corespunzător pe durata unuipe durata unui interval de interval de eeşşantionareantionare, , deoarece datele nudeoarece datele nupot fipot fi stocate stocate şşi procesatei procesateulteriorulterior pepe oo perioadă perioadă dede

timp mai lungă decât perioadatimp mai lungă decât perioadadede eeşşantionareantionare. .

Procesorul trebuie săProcesorul trebuie să executeexecutealgoritmul destulalgoritmul destul dede repede pentrurepede pentruaa evita orice evita orice pierderepierdere aa datelordatelor dede intrareintrare . .

TimpulTimpul dede execuexecuţţie poateie poatefifi redus prin redus prin prepre--procesareaprocesarea unei cantită unei cantităţţi cât mai marii cât mai mari dedeinformainforma ţţii ii şşi stocarea acestor informai stocarea acestor informaţţii ii îîn memorien memorie. .

De De exempluexemplu, o, o funcfuncţţie sinusoidalăie sinusoidală poatepoate fifi evaluată printr evaluată printr--oo aproximare polinomialăaproximare polinomială

implementată implementată îîntrntr --unun program careprogram care utilizează mai multe cicluri utilizează mai multe cicluri dede ceas pentruceas pentrua oa oexecutaexecuta.. TotuTotuşşii , se, sepoate poate prepre--procesaprocesaoo perioadă perioadă aa formei sinusoidaleformei sinusoidale,, stoca aceste stoca aceste eeşşantioane antioane îîn memorie n memorie şşii generagenerafuncfuncţţia sinusoidală utilizândia sinusoidală utilizând oo tehnică tabelară tehnică tabelară

(lookup(lookup--table)table).. ÎÎ n acest cazn acest caz,, vitezaviteza dede execuexecuţţie este crescută pe seama ie este crescută pe seama utilizării maiutilizării maiintense aintense a spaspaţţiuluiiului dede memoriememorie..