Sunteți pe pagina 1din 4

1)Arhitectura generala a unui procesor DSP:

Procesorul DSP realizeaza functiile esentiale de prelucrare a semnalelor. Dezvoltarea


unui sistem DSP eficient se bazeaza pe: arhitecturile hard si soft ale procesorului DSP,
transferul datelor, capacitatile sale aritmetice, configuratiile posibile ale memoriei,
structurile I/O, programabilitatea si setul de instructiuni al procesorului. Arhitectura
procesorului si algoritmul DSP folosit trebuie sa fie complementare. Pentru unele
aplicatii, algoritmul este dat si trebuie ales cel mai potrivit procesor care sa-l realizeze.
Pentru altele, procesorul disponibil este cunoscut si sarcina proiectarii este de a dezvolta
algoritmi eficienti care sa satisfaca cerintele aplicatiei. Scopul este de a dezvolta un
algoritm DSP astfel nct sa se utilizeze un minim de resurse ale procesorului, lasnd
astfel neutilizate resurse pentru mbunatatiri si dezvoltari ulterioare. Marea majoritate a
procesoarelor DSP sunt proiectate sa realizeze operatii repetitive de tip MAC (multiplyadd computation), precum filtrarea raspunsului la impuls finit (FIR - Finite-Impulse
Response)
Majoritatea procesoarelor DSP utilizeaza o arhitectura Harvard modificata, cu doua sau
trei magistrale de memorie (una de program si nca una sau doua pentru date). Este
facilitat astfel accesul simultan la coeficientii filtrului si la semnalul de intrare n acelasi
ciclu de ceas. Totusi, utilizarea arhitecturii Harvard creaza unele dificultati n scrierea
programelor n C care utilizeaza ntreaga capacitate a structurii MAC si a accesurilor
repetate la memorie.
2)Procesoarele TMS c24x Principalele blocuri functionale:
Structura interna a procesorului TMS320C2x implementeaza functii pe care alte
procesoare le realizeaza de obicei prin soft sau prin microcod. De exemplu, circuitul
contine hardware pentru nmultire 16 biti x 16 biti, rotire de date, manevrarea adreselor,
fiecare dintre acestea realizndu-se ntr-un singur ciclu. Acest hard eficient furnizeaza o
putere de calcul care n-ar fi fost disponibila cu un singur circuit cu putin timp n urma.
Prezentarea principalelor blocuri functionale
ACC(31-0), ACCH(31-16), ACCL(15-0) - Acumulator
Este un acumulator pe 32 de biti mpartit n doua jumatati: acumulator high (ACCH) si
acumulator low (ACCL). Este folosit pentru stocarea rezultatelor ALU.
ALU - Unitatea aritmetica si logica
Este o unitate aritmetica si logica pe 32 de biti n complement fata de 2, avnd doua
porturi de intrare pe 32 de biti si un port de iesire pe 32 de biti, legat la acumulator.
ARAU - Unitate aritmetica registre auxiliare
Este o unitate aritmetica pe 16 biti, fara semn, folosita pentru a realiza operatii cu datele
din registrele auxiliare.
AR0-AR7 (15-0) - Bancul registrelor auxiliare
Un banc de registre continnd 5/8 registre auxiliare pe 16 biti (AR0-AR7), folosit pentru
adresarea memoriei de date, stocari temporare sau prelucrari aritmetice cu numere ntregi
prin ARAU.

AFB(15-0) - Magistrala bancului registrelor auxiliare


O magistrala pe 16 biti care poarta datele de la registrul auxiliar (AR) indicat prin ARP.

ARP(2-0) - Indicatorul registrelor auxiliare


Un registru pe 3 biti folosit pentru a selecta unul din cele 5/8 registre auxiliare.

ARB(2-0) - Bufferul indicatorului registrelor auxiliare (ARP)


Un registru pe 3 biti folosit ca buffer pentru ARP. De fiecare data cnd ARP este ncarcat,
vechea valoare este nscrisa n ARB, cu exceptia cazului cnd se executa o instructiune
LST (Load Status Register - ncarcarea registrului de stare). Cnd ARB este ncarcat cu
un LST1, acea valoare este de asemenea copiata n ARP.
CALU - Unitatea centrala aritmetica si logica
Un bloc functional complex care grupeaza ALU, multiplicatorul, acumulatorul si
circuitele de deplasare-scalare. D(15-0) - Magistrala de date O magistrala de 16 biti
folosita pentru transportul datelor.
DAB(15-0) - Magistrala de adrese a memoriei de date
O magistrala de 16 biti care grupeaza adresele memoriei de date.
DP(8-0) - Indicatorul paginii din memoria de date
Un registru pe 9 biti indicnd adresa paginii curente. O pagina de date contine 128
cuvinte de memorie. Exista 512 pagini adresabile n spatiul memoriei de date.
DRB(15-0) - Magistrala de adrese directe a memoriei de date
O magistrala pe 16 biti care poarta adresa directa pentru memoria de date, care este
concatenarea continutului registrului DP cu cei mai putin semnificativi 7 biti ai
instructiunii.
GREG(7-0) - Registru de alocare a memoriei globale
Un registru de memorie pe 8 biti pentru alocarea marimii spatiului memoriei globale.
IR(15-0) - Registrul de instructiune
Un registru pe 16 biti folosit pentru stocarea instructiunii curente n curs de executie.
IFR(5-0) - Registrul bistabilelor de ntrerupere
Un registru pe 6 biti folosit pentru memorarea ntreruperilor externe de la utilizator,
/INT(2-0), active n low, si a ntreruperilor interne XINT / RINT (transmisie / receptie
prin portul serial) si TINT (ntreruperile de la timer). IFR nu este accesibil prin soft.
IMR(5-0) - Registrul de masti pentru ntreruperi
Un registru de memorie pe 6 biti folosit pentru mascarea ntreruperilor.
MCS(15-0) - Stiva de microapeluri
O stiva pe un singur cuvnt care stocheaza temporar continutul lui PFC ct timp PFC este
folosit pentru a adresa memoria de date cu mutare pe blocuri (BLKD / BLKP),
acumulator-multiplicator (MAC / MACD) si tabela instructiunilor de scriere - citire
(TBLR / TBLW).
MULT - Multiplicator
Un multiplicator paralel de 16 x 16 biti.

PRD(15-0) - Registru de perioada


Un registru de memorie pe 16 bit i folosit pentru rencarcarea timerului.

PR(31) - Registrul de produs


Un registru pe 32 de biti folosit pentru stocarea produsului multiplicatorului. Poate fi
accesat att n partea sa superioara, ct si inferioara, folosind instruct iunile SPH / SPL
(stocare PR High/Low).
P(15-0) - Magistrala de program
O magistrala pe 16 biti folosita pentru transportul instructiunilor (si a datelor pentru
instructiunile MAC si MACD).
PC(15-0) - Numaratorul de program
Este un numarator pe 16 biti folosit pentru adresarea memoriei de program. PC contine
ntotdeauna adresa urmatoarei instructiuni de executat. Continutul PC este incrementat
dupa decodificarea fiecarei instructiuni. La TMS32020, operatiile realizate de PFC al lui
TMS320C25 sunt realizate de catre PC.
Shifters - Circuite de deplasare
Registre de d eplasare localizate la intrarea ALU, iesirea acumulatorului si iesirea
registrului de produs. Un registru shifter este de asemenea localizat n acumulator.
STACK(15-0) - Stiva
O stiva hard de 8 x 16 biti folosita pentru stocarea PC n timpul ntreruperilor sau
apelurilor de subrutine. De asemenea, pot fi depuse si culese din stiva valorile lui ACCL
si date din memorie.
ST0, ST1(15-0) - Registre de stare
Sunt doua registre de stare pe 16 biti care cont in semnale de stare si bitii de control.
TR(15-0) - Registru temporar
Un registru pe 16 biti care poate pastra att un operand pentru nmultire, ct si un cod de
rotire (shift code) pentru scalling shifter.
TIM(15-0) - Timer
Un registru numarator pe 16 bit i pentru controlul temporizarilor.
3)Circuite de control ale sistemului resetare, oscilator:
Aceste circuite au functii critice pentru functionarea corecta a sistemului. Sunt prezentate
scheme de resetare la punerea sub tensiune si oscilatoare de tact.
Circuitul de resetare la punerea sub tensiune asigura ca resetarea se va face numai dupa
functionarea stabila a circuitului oscilator. Acesta foloseste n general cuarturi n mod
"overtone" pentru frecvente mai mari de 20 MHz, dar experienta practica arata ca se pot
folosi cuarturi normale pna la 25 - 30 MHz.
Circuitul de resetare la punerea sub tensiune
Acest circuit asigura resetarea lui TMS320C2x n momentul aplicarii tensiunii de
alimentare. n schema este inclus si un circuit de eliminare a oscilatiilor contactelor.
Aplicnd "0" logic pe intrarea RESET se initializeaza procesorul. Resetul afecteaza
diferite registre si bitii de conditie, asa cum s-a aratat anterior. Pentru o initializare
corecta a sistemului, semnalul reset trebuie aplicat n timpul ultimelor 3 cicluri CLKOUT,
adica 300ns pentru TMS320C25 care lucreaza la 40 MHz. Dupa pornire vor trece cteva
sute de ms naintea stabilizarii oscilatorului.
Din aceasta cauza, circuitul de pornire trebuie sa genereze un "0" logic pe linia de reset
pna cnd oscilatorul se stabilizeaza (100 - 200 ms). Tensiunea de pe pinul RS este
controlata de reteaua R1C1. Dupa resetare, aceasta tensiune creste exponential n acord
cu constanta de timp a circuitului R1C1. Durata t1 este timpul ct exista "0" logic pe RS,
timp n care condensatorul C1 se ncarca la 1,5V. Aceasta este tensiunea aproximativa la

care intrarea de reset trece n "1" logic. Tensiunea condensatorului este data de o functie
exponentiala din care rezulta valorile pentru condensator si rezistor.
Circuitul oscilator cu cristal de cuart
Acest circuit este proiectat sa lucreze la 40,96 MHz. Cristalele care lucreaza la frecvente
mai mari de 30 MHz nu sunt larg raspndite, de aceea este folosit un circuit oscilant
paralel "third-overtone" care foloseste a treia armonica superioara.
n oscilator, frecventa fundamentala a cristalului oscilator trebuie atenuata, fiindca
oscilatorul foloseste a treia armonica. Acest lucru este realizat de un circuit LC care
elimina fundamentala si lasa sa treaca a treia armonica. Filtrul LC trebuie sa aiba caracter
inductiv n jurul fundamentalei si caracter capacitiv n jurul armoniciin a treia. Frecventa
de rezonanta trebuie aleasa aproximativ la jumatatea dintre frecventa fundamentala si a
treia armonica. n cazul considerat: fr = 26,5 MHz, C = 20pF, L = 1,8 H.

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