12
Procesoare numerice de semnal - Cap. 5 13 5.3 Accesul direct la memorie (DMA) Unele proiecte avansate cu TMS320C2x utilizează DMA sau memoria globală (vezi §4.4). DMA poate fi utilizat pentru multiprocesare, prin oprirea temporară a unuia sau a mai multor procesoare, permiţând altora să citească / scrie în memoria procesorului oprit. DMA utilizează semnalele HOLD şi HOLDA. Sistemul multiprocesor este în general o configuraţie de tip master - slave. Master- ul trebuie să iniţializeze slave-ul prin încărcarea programului în spaţiul acestuia de programe din memorie şi / sau să asigure circuitului slave datele necesare. Circuitul master poate fi încă un circuit TMS320C2x sau un convertor analog - digital. O configuraţie simplă de master - slave este arătată în Fig.5.18. Circuitul master exercită un control complet asupra memoriei externe a slave-ului prin trecerea HOLD în "0" prin bistabilul XF. Acesta determină ca slave-ul să treacă liniile sale de adresă - date - control în stare de impedanţă ridicată. Prin aplicarea RS în conjuncţie cu HOLD, procesorul master poate încărca memoria program locală a circuitului slave cu programul necesar de iniţializare la RESET. Cele două procesoare pot fi sincronizate cu intrarea SYNC, lucru ce permite transferul mai rapid şi mai eficient pe magistrală. Fig.5.18 Accesul direct la memorie utilizând o configuraţie master - slave După ce controlul a fost preluat de master, circuitul slave răspunde cu HOLDA. Acest semnal poate apărea pe pinul BIO al lui TMS320C2x. Pinul XF al circuitului slave poate fi utilizat pentru a indica master-ului că şi-a terminat sarcinile şi trebuie reprogramat cu date suplimentare pentru a-şi continua lucrul.

aplicatii dsp

Embed Size (px)

DESCRIPTION

aplicatii dsp

Citation preview

Page 1: aplicatii dsp

Procesoare numerice de semnal - Cap. 5 13

5.3 Accesul direct la memorie (DMA)

Unele proiecte avansate cu TMS320C2x utilizează DMA sau memoria globală(vezi §4.4). DMA poate fi utilizat pentru multiprocesare, prin oprirea temporară aunuia sau a mai multor procesoare, permiţând altora să citească / scrie în memoriaprocesorului oprit. DMA utilizează semnalele HOLD şi HOLDA.

Sistemul multiprocesor este în general o configuraţie de tip master - slave. Master-ul trebuie să iniţializeze slave-ul prin încărcarea programului în spaţiul acestuia deprograme din memorie şi / sau să asigure circuitului slave datele necesare.Circuitul master poate fi încă un circuit TMS320C2x sau un convertor analog -digital. O configuraţie simplă de master - slave este arătată în Fig.5.18. Circuitulmaster exercită un control complet asupra memoriei externe a slave-ului printrecerea HOLD în "0" prin bistabilul XF. Acesta determină ca slave-ul să treacăliniile sale de adresă - date - control în stare de impedanţă ridicată. Prin aplicareaRS în conjuncţie cu HOLD, procesorul master poate încărca memoria programlocală a circuitului slave cu programul necesar de iniţializare la RESET. Cele douăprocesoare pot fi sincronizate cu intrarea SYNC, lucru ce permite transferul mairapid şi mai eficient pe magistrală.

Fig.5.18 Accesul direct la memorie utilizând o configuraţie master - slave

După ce controlul a fost preluat de master, circuitul slave răspunde cu HOLDA.Acest semnal poate apărea pe pinul BIO al lui TMS320C2x. Pinul XF al circuituluislave poate fi utilizat pentru a indica master-ului că şi-a terminat sarcinile şi trebuiereprogramat cu date suplimentare pentru a-şi continua lucrul.

Page 2: aplicatii dsp

14 Procesoare numerice de semnal - Cap. 5

În schemele cu mai multe circuite slave, priorităţile acestora sunt determinate deaplicarea semnalului XF pe una din intrările INT(2-0) de pe master-ulTMS320C2x.

Implementările în mediul PC constituie un alt exemplu unde magistrala sistem estefolosită pentru transfer de date. Aici, circuitul CPU sau controlerul de disc poateplasa datele pe magistrala de date de unde se pot transfera în memoria locală acircuitului TMS320C2x. În această configuraţie, TMS320C2x joacă mai mult rolulunui procesor periferic cu funcţii multiple. De exemplu, în aplicaţii de analizăvocală, TMS320C2x poate fi încărcat de către master cu algoritmi de analiză,sinteză şi recunoaştere de sunete. În alte situaţii, TMS320C2x poate lucra cu uncontroler grafic dedicat. Programele pot fi depozitate în circuitul ROM de peTMS320C2x sau pot fi încărcate prin magistrala sistem în RAM. Datele potproveni de pe hard-disk sau direct din CPU master.

Fig.5.19 arată utilizarea DMA într-un mediu bazat pe un PC. În aceastăconfiguraţie, decoderul şi arbitrul de logică este utilizat pentru controlul DMA.Când adresa de pe magistrală este decodificată în memoria locală a perifericuluiTMS320C2x, logica plasează HOLD în "1". Circuitul transmite master-ului unsemnal de aşteptare. După ce TMS320C2x recunoaşte DMA prin setarea HOLDA,se generează READY, apoi se transferă informaţiile.

Fig.5.19 Acces direct la memorie în mediul unui PC

Page 3: aplicatii dsp

Procesoare numerice de semnal - Cap. 5 15

5.4 Memoria globală

În aplicaţiile multiprocesor, memoria externă a lui TMS320C2x poate fi divizată îndouă secţiuni: cea locală, respectiv cea globală. Registrele speciale şi pinii alocaţicircuitului permit alocarea a până a 32K pentru memoria globală. Acest lucruconstituie un avantaj când datele se transferă între două sau mai multe procesoare.Din schemă, spre deosebire de DMA, se vede că citirea sau scrierea din / înmemoria globală nu necesită oprirea unuia dintre procesoare. Memoria globalăpoate fi utilizată într-o gamă variată de aplicaţii de procesare a semnalelor digitale(filtre sau modemuri) unde algoritmul poate fi divizat în secţiuni distincte. În acesttip de aplicaţii, cele două procesoare vor împărţi memoria globală. Logica dearbitrare va desemna care secţiune din algoritm va fi în execuţie şi care va accesamemoria globală.

Fig.5.20 Comunicaţia prin memorie globală

Dimensiunea memoriei globale este programabilă între 256 şi 32K locaţii înmemoria de date prin încărcarea registrului de memorie globală (GREG). După cememoria globală a fost definită în GREG, circuitul TMS320C2x trimite o cerere demagistrală BR înaintea fiecărui acces la memoria globală. Procesorul insereazăstări de aşteptare până când se permite accesul prin generarea READY.

Fig.5.20 ilustrează o asemenea interfaţă la o memorie globală. Procesorul poate fisincronizat cu SYNC, logica poate fi simplificată, iar transferul pe magistralele dedate, respectiv adrese, poate fi făcut mai eficient.

Page 4: aplicatii dsp

16 Procesoare numerice de semnal - Cap. 5

5.5 Interfaţarea perifericelor

Cele mai mlte sisteme cu DSP necesită şi circuite de I/O împreună cu o oarecarecantitate de memorie în sistem. Printre acestea se includ de obicei circuite deintrare / ieşire analogică ce pot fi legate la porturile paralele şi seriale aleprocesorului TMS320C2x.

Când se accesează porturile extrne paralele, accesul pe magistrala de date estemultiplexat pe aceiaşi pini cu ai memoriei de program / date. Spaţiul I/O esteselectat de semnalul IS activ în "0", iar adresa portului este plasată pe biţii deadresă A3 - A0. Biţii A15 - A4 sunt menţinuţi în "0".

5.5.1 Interfaţa la un COMBO - CODEC

Unele aplicaţii de voce, telecomunicaţii, etc., ncesită convertoare A/D şi D/Aieftine. Circuitele combo-codec sunt cele mai eficiente în realizarea sistemelor cuDSP. Aceste circuite sunt codoare şi decodoare pe un singur chip folosindmodulaţia impulsurilor în cod, proiectate pentru a realiza conversia D/A şi A/D şiîn plus funcţiile de netezire şi filtrare antialias. Cum circuitele combo-codecrealizează toate aceste funcţii simultan într-un singur chip de cost scăzut, ele suntfoarte economicoase.

Fig.5.21 Interfaţarea circuitului codec TCM29C16

Page 5: aplicatii dsp

Procesoare numerice de semnal - Cap. 5 17

Interfaţa combo-codec este legată la TMS320C2x prin portul serial şi asigură oreprezentare în cod numeric a intrării analogice. Acest cod PCM poate fi uşortranslatat într-o formă liniară în TMS320C2x pentru a fi utilizat în procesare. Înschema din Fig.5.21 este utilizat circuitul codec TCM29C16 interfaţat pe portulserial al procesorului TMS320C25.

5.5.2 Interfaţa la circuite de tip AIC

Pentru aplicaţii de voce, în modemuri, control, instrumentaţie şi alte interfeţeanalogice pentru DSP, este necesară o pereche A/D şi D/A completă. Circuitul deinterfaţă analogică (AIC - Analogic Interface Circuit) TLC32040 are încorporatîntr-un singur circuit monolitic CMOS un filtru trece-bandă, un condensator denetezire, un filtru de intrare şi unul de ieşire cu capacităţi comutate. Acest circuitoferă numeroase alternative posibile pentru frecvenţa ceasului master, care poate fimodificat de procesorul care îl controlează. Patru porturi seriale ale acestui circuitpot fi folosite ca interfaţă pentru TMS320C2x. Deoarece secţiunile de transmisie şirecepţie ale circuitului AIC lucrează sincron, ele se pot interfaţa cu două registre dedeplasare serie - paralel SN74299 care la rândul lor pot fi legate paralel laTMS320C25. Sunt emise impulsuri corespunzătoare pentru a informa procesorulcă transmisia este încheiată, sau pentru a diferenţia doi octeţi de date consecutivi.

Fig.5.22 Interfaţarea TLC32040 cu TMS320C2x

Fig.5.23 Diagramele sincronizării TLC32040 cu TMS320C2x

Aşa cum se arată în Fig.5.22, circuitul AIC se poate interfaţa cu procesorulTMS320C2x; ele pot comunica sincron sau asincron, aceasta depinzând de

Page 6: aplicatii dsp

18 Procesoare numerice de semnal - Cap. 5

conţinutul registrului de control. Pentru comunicarea sincronă, secvenţa defuncţionare este următoarea:1) FSX sau FSR este trecut în "0"2) Este transmis / recepţionat un cuvânt pe 16 biţi3) FSX sau FSR trec în "1"4) Pe EODX sau EODR se emite un impuls de "0"

Pentru comunicaţii asincrone, secvenţa este identică, dar FSX şi FSR nu segenerează în acelaşi timp (Fig.5.24). Pentru o funcţionare corectă, TxM dinregistrul de control poate fi trecut în "0", deci FSX devine intrare, bitul de format(FO) trecut în "0" şi AIC WORD/BYTE în nivel ridicat. După fiecare operaţieserială cu AIC se generează o întrerupere internă RINT sau XINT, care pot fifolosite pentru controlul execuţiei programului.

Fig.5.24 Comunicaţia asincronă TLC32040 şi TMS320C2x

5.5.3 Interfaţa la convertoare D/A

Funcţionarea la o viteză ridicată a logicii interne a circuitului TLC7524 de 8 biţipermite o interfaţare la TMS320C2x cu un număr minim de circuite externe.

Fig.5.25 Interfaţa TLC7524 cu TMS32020

Page 7: aplicatii dsp

Procesoare numerice de semnal - Cap. 5 19

Fig.5.26 Diagramele interfaţării TLC7524 cu TMS32020

Când TMS32020 execută o instrucţiune OUT, pe magistrala de adrese este plasatăadresa perifericului şi linia IS trece în "0". Acest nivel pe IS validează 74ALS138care decodifică adresa de pe magistrală la ieşirea Y0. Când Y0 va fi trecut în "0",este validat TLC7524, iar datele care apar pe magistrala de date sunt trecute înconvertorul D/A de către semnalul STRB.

5.5.4 Interfaţa la convertoare A/D

Circuitul TMS320C2x poate fi interfaţat cu un convertor A/D de 8 biţi, de exempluTLC0820. În acest caz, deoarece circuitul de control al acestui circuit opereazămult mai lent ca TMS32020, el nu poate fi conectat direct, necesitând stări deaşteptare (Fig.5.27 şi Fig.5.28).

Fig.5.27 Interfaţarea TLC0820 cu TMS32020

Page 8: aplicatii dsp

20 Procesoare numerice de semnal - Cap. 5

Fig.5.28 Diagramele interfaţării TLC0820 cu TMS32020

Circuitul 74LS138 decodează adresa pentru TLC0820. Una dintre adrese esteutilizată când se execută operaţia de scriere, cealaltă la citire. Cele două adresediferite sunt necesare pentru a asigura folosirea unui număr corect de stări deaşteptare pentru cele două operaţii.

Dacă TMS320C2x funcţionează cu 20 MHz şi TLC0820 este configurat ca omemorie lentă, sunt necesare 3 stări de aşteptare pentru a realiza un ciclu descriere. După ce conversia a început cu WR, procesorul trebuie să aştepte cel puţin600ns înainte ca rezultatul conversiei să poată fi citit.

5.5.5 Porturi de I/O

Aceste porturi sunt tratate de TMS320C2x în mod identic cu memoria, distincţiafăcându-se prin semnalul IS care devine "0" la începutul unui ciclu de acces.Procesorul poate avea acces la 16 porturi de intrare şi ieşire. Cei 4 biţi mai puţinsemnificativi începând cu LSB specifică adresa unui port. O pereche de circuite74AS138 se pot utiliza pentru decodarea acestor biţi de adresă (Fig.5.29).

Fig.5.29 Adresarea porturilor de I/O

Page 9: aplicatii dsp

Procesoare numerice de semnal - Cap. 5 21

O interfaţă simplă între două procesoare poate fi implementată utilizând până la 16porturi bidirecţionale I/O conectate la TMS320C2x. În această manieră, procesorulpoate fi conectat cu convertoare paralele A/D, registre, FIFO, memorii dublu-portsau alte periferice.

Utilizarea unui microcontroler pe 8 biţi cum este TMS70C42 proiectat pentrucontrol de claviatură este arătată în Fig.5.30. Semnalele schimbate de procesor şiTMS320C2x arată când datele sunt valide la citire. Această comunicare întreprocesoare este facilitată de utilizarea pinilor de intrare şi ieşire ai lui TMS70C42.Într-o configuraţie multiprocesor spaţiul de memorie pentru adrese este relativlimitat, iar transferul datelor este relativ lent în comparaţie cu DMA sau înconfiguraţia cu memorie globală.

Fig.5.30 Comunicaţia între procesoare prin porturi I/O

5.6 Aplicaţii de sistem

Circuitele TMS320C2x sunt utilizate într-o mare varietate de sisteme. Câtevaaplicaţii ar fi în telecomunicaţii, grafică şi procesarea imaginilor, control de înaltăviteză, instrumentaţie şi procesare numerică. Pentru exemplificare, se ilustreazăacest ultim caz.

5.6.1 Eliminarea ecoului şi a diafoniei

Procesarea digitală a semnalelor este larg utilizată în telecomunicaţii. În aceastăaplicaţie, un filtru adaptiv FIR realizează modelarea şi prelucrarea semnalului,operaţii necesare pentru eliminarea ecoului cauzat de diferenţele de impedanţă dinliniile telefonice. Circuitul TMS320C25 cu un RAM intern de 544 de cuvinte şi unROM de 4K permite realizarea unui filtru adaptiv de 256 intrări (eliminare de ecou

Page 10: aplicatii dsp

22 Procesoare numerice de semnal - Cap. 5

de 32ms) fără memorie de date sau de program externă. Fig.5.31 arată o aplicaţieunde un eliminator de diafonie utilizează circuitul de interfaţă de tip codecTMS29C16.

Fig.5.31 Eliminator de ecou

5.6.2 Modem de viteză ridicată

În aceste modemuri, procesorul de semnal este utilizat pentru a realiza funcţii ca:modulare / demodulare, egalizare adaptivă şi eliminarea diafoniei. Spaţiul larg dememorie asigurat de TMS320C2x permite implementarea a multiple standarde ca:Bell 103, Bell 212A, V.22bis, V.29, V.32 şi V.33 ca şi algoritmi proprii. Modemulprezentat în Fig.5.32 este format în principal din interfaţa la gazdă, controler, DSPşi interfaţa analogică.

Fig.5.32 Modem de viteză ridicată

5.6.3 Codor de voce

Tehnicile avansate de prelucrare ca: modulaţia diferenţială a impulsurilor în codfull-duplex de 32 Kbps (definite de CCITT G.721), codarea sub-bandă de 16 Kbpsşi codarea predictivă liniară, sunt frecvent utilizate în transmisia şi stocarea devoce. Viteza de lucru a TMS320C2x permite aceste prelucrări de obicei prinprogram, fără a se apela la alte resurse externe. Fig.5.33 prezintă un sistem codorde voce.

Page 11: aplicatii dsp

Procesoare numerice de semnal - Cap. 5 23

Fig.5.33 Codor de voce

5.6.4 Grafică şi procesare de imagine

În aceste aplicaţii, posibilitatea de interfaţare cu un procesor gazdă este importantă.TMS320C2x poate fi utilizat într-o mare varietate de scheme tip gazdă /coprocesor (Fig.5.34). Aceste aplicaţii pot utiliza spaţiul larg de memorie de date şicapacitatea memoriei globale de a permite depozitarea în memorie a imaginilorgrafice, ceea ce reduce volumul de date manipulate în sistem.

Fig.5.34 Sistem grafic cu DSP

Folosirea modurilor de adresare indirecte sau indexate ale TMS320C2x permiteprocesarea matricilor, iar multiplicarea matricilor este folosită pentru rotaţii şitranslaţii de imagini bidimensionale.

5.6.5 Controlul proceselor rapide

Aplicaţiile de mare viteză, cum este robotica, utilizează aceste circuite pentrumanipularea biţilor, operaţii logice, sincronizare şi transfer rapid de date (10 mil.

Page 12: aplicatii dsp

24 Procesoare numerice de semnal - Cap. 5

De cuvinte pe 16 biţi / secundă). În afară de controlul numeric intensiv,TMS320C2x apare ca o interfaţă gazdă ori de câte ori robotul vrea să comunice cuun procesor central (Fig.5.35). TMS320C2x se mai utilizează în sisteme de controlîn buclă închisă, în drivere de disc, pentru condiţionarea semnalelor, filtrare şimultiplexare multicăi.

Fig.5.35 Subsistem pentru controlul unui braţ robot

5.6.6 Instrumentaţie cu procesare numerică

Instrumentaţia de precizie, cum este cazul unui analizor de spectru, necesită unspaţiu de memorie de date larg, şi un procesor TMS320C2x care poate să realizezetransformate FFT de lungime mare, sau generare de funcţii de înaltă preciziefolosind echipament extern minim. Fig.5.36 arată un astfel de exemplu de sistemde instrumentaţie.

Fig.5.36 Aplicaţie în sisteme de instrumentaţie