Sunteți pe pagina 1din 12

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.

Procesoare numerice de semnal - Cap. 5 13


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

Implementările în mediul PC constituie un alt exemplu unde magistrala sistem este


folosită pentru transfer de date. Aici, circuitul CPU sau controlerul de disc poate
plasa datele pe magistrala de date de unde se pot transfera în memoria locală a
circuitului TMS320C2x. În această configuraţie, TMS320C2x joacă mai mult rolul
unui 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 un
controler grafic dedicat. Programele pot fi depozitate în circuitul ROM de pe
TMS320C2x sau pot fi încărcate prin magistrala sistem în RAM. Datele pot
proveni 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 perifericului
TMS320C2x, logica plasează HOLD în "1". Circuitul transmite master-ului un
semnal 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

14 Procesoare numerice de semnal - Cap. 5


5.4 Memoria globală

În aplicaţiile multiprocesor, memoria externă a lui TMS320C2x poate fi divizată în


două secţiuni: cea locală, respectiv cea globală. Registrele speciale şi pinii alocaţi
circuitului permit alocarea a până a 32K pentru memoria globală. Acest lucru
constituie 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 / în
memoria 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 acest
tip de aplicaţii, cele două procesoare vor împărţi memoria globală. Logica de
arbitrare va desemna care secţiune din algoritm va fi în execuţie şi care va accesa
memoria globală.

Fig.5.20 Comunicaţia prin memorie globală

Dimensiunea memoriei globale este programabilă între 256 şi 32K locaţii în


memoria de date prin încărcarea registrului de memorie globală (GREG). După ce
memoria globală a fost definită în GREG, circuitul TMS320C2x trimite o cerere de
magistrală 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 fi


sincronizat cu SYNC, logica poate fi simplificată, iar transferul pe magistralele de
date, respectiv adrese, poate fi făcut mai eficient.

Procesoare numerice de semnal - Cap. 5 15


5.5 Interfaţarea perifericelor

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

Când se accesează porturile extrne paralele, accesul pe magistrala de date este


multiplexat pe aceiaşi pini cu ai memoriei de program / date. Spaţiul I/O este
selectat de semnalul IS activ în "0", iar adresa portului este plasată pe biţii de
adresă 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/A


ieftine. Circuitele combo-codec sunt cele mai eficiente în realizarea sistemelor cu
DSP. Aceste circuite sunt codoare şi decodoare pe un singur chip folosind
modulaţ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-codec
realizează toate aceste funcţii simultan într-un singur chip de cost scăzut, ele sunt
foarte economicoase.

Fig.5.21 Interfaţarea circuitului codec TCM29C16

16 Procesoare numerice de semnal - Cap. 5


Interfaţa combo-codec este legată la TMS320C2x prin portul serial şi asigură o
reprezentare în cod numeric a intrării analogice. Acest cod PCM poate fi uşor
translatat într-o formă liniară în TMS320C2x pentru a fi utilizat în procesare. În
schema din Fig.5.21 este utilizat circuitul codec TCM29C16 interfaţat pe portul
serial 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ţe


analogice pentru DSP, este necesară o pereche A/D şi D/A completă. Circuitul de
interfaţă analogică (AIC - Analogic Interface Circuit) TLC32040 are încorporat
într-un singur circuit monolitic CMOS un filtru trece-bandă, un condensator de
netezire, un filtru de intrare şi unul de ieşire cu capacităţi comutate. Acest circuit
oferă numeroase alternative posibile pentru frecvenţa ceasului master, care poate fi
modificat de procesorul care îl controlează. Patru porturi seriale ale acestui circuit
pot fi folosite ca interfaţă pentru TMS320C2x. Deoarece secţiunile de transmisie şi
recepţie ale circuitului AIC lucrează sincron, ele se pot interfaţa cu două registre de
deplasare serie - paralel SN74299 care la rândul lor pot fi legate paralel la
TMS320C25. Sunt emise impulsuri corespunzătoare pentru a informa procesorul
că 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 procesorul


TMS320C2x; ele pot comunica sincron sau asincron, aceasta depinzând de
Procesoare numerice de semnal - Cap. 5 17
conţinutul registrului de control. Pentru comunicarea sincronă, secvenţa de
funcţionare este următoarea:
1) FSX sau FSR este trecut în "0"
2) Este transmis / recepţionat un cuvânt pe 16 biţi
3) 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 se


generează în acelaşi timp (Fig.5.24). Pentru o funcţionare corectă, TxM din
registrul 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ţie
serială cu AIC se generează o întrerupere internă RINT sau XINT, care pot fi
folosite 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ţi


permite o interfaţare la TMS320C2x cu un număr minim de circuite externe.

Fig.5.25 Interfaţa TLC7524 cu TMS32020


18 Procesoare numerice de semnal - Cap. 5
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ă 74ALS138
care 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 în
convertorul 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 exemplu


TLC0820. Î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 de
aşteptare (Fig.5.27 şi Fig.5.28).

Fig.5.27 Interfaţarea TLC0820 cu TMS32020


Procesoare numerice de semnal - Cap. 5 19
Fig.5.28 Diagramele interfaţării TLC0820 cu TMS32020

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

Dacă TMS320C2x funcţionează cu 20 MHz şi TLC0820 este configurat ca o


memorie lentă, sunt necesare 3 stări de aşteptare pentru a realiza un ciclu de
scriere. După ce conversia a început cu WR, procesorul trebuie să aştepte cel puţin
600ns î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ţia


fă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ţin
semnificativi începând cu LSB specifică adresa unui port. O pereche de circuite
74AS138 se pot utiliza pentru decodarea acestor biţi de adresă (Fig.5.29).

Fig.5.29 Adresarea porturilor de I/O


20 Procesoare numerice de semnal - Cap. 5
O interfaţă simplă între două procesoare poate fi implementată utilizând până la 16
porturi bidirecţionale I/O conectate la TMS320C2x. În această manieră, procesorul
poate fi conectat cu convertoare paralele A/D, registre, FIFO, memorii dublu-port
sau alte periferice.

Utilizarea unui microcontroler pe 8 biţi cum este TMS70C42 proiectat pentru


control de claviatură este arătată în Fig.5.30. Semnalele schimbate de procesor şi
TMS320C2x arată când datele sunt valide la citire. Această comunicare între
procesoare 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 relativ
limitat, iar transferul datelor este relativ lent în comparaţie cu DMA sau în
configuraţ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âteva


aplicaţ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ţă din
liniile telefonice. Circuitul TMS320C25 cu un RAM intern de 544 de cuvinte şi un
ROM de 4K permite realizarea unui filtru adaptiv de 256 intrări (eliminare de ecou
Procesoare numerice de semnal - Cap. 5 21
de 32ms) fără memorie de date sau de program externă. Fig.5.31 arată o aplicaţie
unde un eliminator de diafonie utilizează circuitul de interfaţă de tip codec
TMS29C16.

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 de
memorie 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. Modemul
prezentat î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 cod


full-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 de
voce. Viteza de lucru a TMS320C2x permite aceste prelucrări de obicei prin
program, fără a se apela la alte resurse externe. Fig.5.33 prezintă un sistem codor
de voce.

22 Procesoare numerice de semnal - Cap. 5


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 şi
capacitatea memoriei globale de a permite depozitarea în memorie a imaginilor
grafice, 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 permite


procesarea matricilor, iar multiplicarea matricilor este folosită pentru rotaţii şi
translaţii de imagini bidimensionale.

5.6.5 Controlul proceselor rapide

Aplicaţiile de mare viteză, cum este robotica, utilizează aceste circuite pentru
manipularea biţilor, operaţii logice, sincronizare şi transfer rapid de date (10 mil.
Procesoare numerice de semnal - Cap. 5 23
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 cu
un 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 şi
multiplexare 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ă un


spaţiu de memorie de date larg, şi un procesor TMS320C2x care poate să realizeze
transformate FFT de lungime mare, sau generare de funcţii de înaltă precizie
folosind echipament extern minim. Fig.5.36 arată un astfel de exemplu de sistem
de instrumentaţie.

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

24 Procesoare numerice de semnal - Cap. 5

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