Sunteți pe pagina 1din 26

Procesoare Numerice de Semnal - CURS 1

4. Structura hardware a generaţiei TMS320C2x

4.1 Descrierea semnalelor


4.2 Privire generală asupra arhitecturii
4.3 Structura internă
4.4 Organizarea memoriei
4.5 Unitatea centrală aritmetică şi logică
4.6 Controlul sistemului
4.7 Memoria externă şi interfaţa I/O
4.8 Întreruperile
4.9 Portul serial
4.10 Multiprocesare şi accesul direct la memorie
Procesoare Numerice de Semnal - CURS 2

4.9 Portul serial

Un port serial full-duplex asigură comunicarea cu dispozitive seriale


externe (codec, convertoare A/D seriale).
Portul serial poate fi folosit la intercomunicarea între procesoare în
aplicaţiile multiprocesor.
Atât recepţia cât şi transmisia sunt dublu bufferate la TMS320C25,
asigurându-se un flux continuu de biţi chiar dacă FSX (frame
syncronisation) este ieşire.
Utilizarea modului FSM (frame sync mode) asigură continuitatea operaţiei,
care odată începută, nu mai necesită impulsuri de sincronizare.
Frecvenţa de ceas poate fi oricât de mică (fmin = 0).
Procesoare Numerice de Semnal - CURS 3

4.9 Portul serial

Pentru controlul comunicaţiei seriale sunt prevăzuţi următorii


biţi, pini şi registre:
Pin / Registru / port serial
FO - bitul de format
TXM - bitul mod transmisie
FSM - bitul mod sincronizare
CLKX - ceas pentru transmisie
CLKR - ceas pentru recepţie
DX - semnal transmisie serială a datelor
FSX - semnal de sincronizare cadru pentru transmisie
FSR - semnal de sincronizare cadru pentru recepţie
DXR - registru date transmise
DRR - registru date recepţionate
XSR - registru de deplasare la transmisie
RSR - registru de deplasare la recepţie
Procesoare Numerice de Semnal - CURS 4

4.9 Portul serial

Portul serial are două registre: DXR, care păstrează datele ce vor fi transmise şi
DRR, care păstrează datele recepţionate, la adresele 0000h, respectiv la 0001h.
Ambele registre pot lucra pe 8 sau 16 biţi şi pot fi accesate ca orice locaţie de
memorie. Fiecare registru are un ceas extern, impuls de sincronizare şi registrele
de deplasare aferente. Orice instrucţiune care accesează memoria de date poate
fi utilă la scrierea / citirea lor, în afară de BLKD. Registrele DXR şi DRR pot fi
utilizate ca registre generale, caz în care CLKR şi FSR trebuie conectaţi la "0"
pentru a preveni o posibilă iniţiere a unei operaţii de recepţie.
Procesoare Numerice de Semnal - CURS 5

4.9 Portul serial

În registrul de stare ST1 există 3 biţi care controlează funcţionarea portului


serial.
Bitul FO = 0 stabileşte efecuarea operaţiilor portului serial pe 16 biţi, iar FO =
1, pe 8 biţi. În modul de lucru pe 8 biţi sunt folosiţi cei mai puţin semnificativi 8
biţi ai registrelor. Bitul poate fi încărcat prin instrucţiunea FORT. FO = 0 se
stabileşte în urma unui reset.
Bitul TXM este utilizat la stabilirea generării interne sau extern a impulsului de
sincronizare pentru transmisie. Dacă TXM = 1, pinul FSX este ieşire şi impulsul
este generat pe FSX de fiecare dată când registrul DXR este încărcat, impuls
sincronizat cu frontul crescător al ceasului CLKX. Dacă TXM = 0, atunci FSX
este intrare şi procesorul aşteaptă să primească un impuls de sincronizare
înainte să înceapă transmisia. La reset, TXM = 0 şi FSX este configurat ca
intrare. TXM poate fi încărcat cu instrucţiunile LST1, STXM şi RTXM.
Procesoare Numerice de Semnal - CURS 6

4.9 Portul serial

Bitul FSM (frame syncronisation mode) este utilizat pentru indicarea modului
de sincronizare cerut de fiecare transfer al portului serial. Dacă FSM = 1,
impulsul de sincronizare este necesar, dacă FSM = 0, impulsul nu este necesar.
Bitul este setat de instrucţiunea RFSM.
Când FSM = 1, un impuls pe linia FSX va duce la încărcarea registrului XSR cu
data din DXR şi va începe transmisia. Dacă FSX apare înainte de transmisia
ultimului bit, XSR va fi reîncărcat cu conţinutul lui DXR, se abandonează
transmisia în curs şi se va începe o alta.
Procesoare Numerice de Semnal - CURS 7

4.9.1 Operaţiile de transmisie şi recepţie


Sunt implementate separat, deci se asigură independenţa lor. Interfaţa portului serial
este implementată utilizând 6 pini externi. Figura arată registrele şi pinii utilizaţi în
transmisie şi recepţie.
Procesoare Numerice de Semnal - CURS 8

4.9.1 Operaţiile de transmisie şi recepţie

Datele de pe liniile DX şi DR sunt recepţionate sau transmise în XSR sau RSR, pe


fronturile CLKX sau CLKR. La TMS32020 datele sunt recepţionate în DRR,
respectiv sunt extrase din DXR. Ceasurile CLKX şi CLKR sunt cerute a fi
prezente doar în timpul transferului efectiv şi pot fi oprite când nu se mai
transferă date. Biţii de date se transferă câte 8 sau câte 16. Transmisia se face pe
frontul crescător al CLKX, iar recepţia se face pe frontul crescător al CLKR. Cel
mai semnificativ bit este transferat primul.

Pentru a se începe o nouă transmisie, conţinutul registrului DXR este transferat în


XSR, iar după ce au fost recepţionaţi toţi biţii, conţinutul lui RSR este transferat
în DRR (la TMS320C25).

Transferurile la TMS320C25 sunt în general iniţializate de un impuls de


sincronizare, excepţie de la acest mod fiind transferul continuu, selectat prin
punerea în "0" a bitului FSM. Impulsul de sincronizare este aplicat pe FSX
pentru transmisie şi pe FSR pentru recepţie.
Procesoare Numerice de Semnal - CURS 9

4.9.1 Operaţiile de transmisie şi recepţie


Operaţia de transmisie începe când datele sunt scrise în registrul DXR odată cu trecerea
impulsului FSX în low când CLKX este în high sau trece în high. Datele sunt deplasate şi
transmise pe DX pe frontul crescător al CLKX. Când toţi biţii s-au transmis, se generează
întreruperea internă XINT pe frontul negativ al ceasului. Dacă portul serial nu transmite, linia
DX este trecută în înaltă impedanţă. DX şi FSX nu sunt afectate de linia /HOLD, orice transmisie
în desfăşurare este terminată înainte de trecerea în înaltă impedanţă a pinului DX, dacă linia
/HOLD este activată în timpul unei transmisii. Pinul FSX va rămâne în aceeaşi configuraţie
(intrare sau ieşire), iar dacă este ieşire, va rămâne în low.
Procesoare Numerice de Semnal - CURS 10

4.9.1 Operaţiile de transmisie şi recepţie


Operaţia de recepţie este similară transmisiei. Diagrama de timp pentru recepţie este cea din
figură. Recepţia este iniţiată de un impuls pe FSR. Dacă FSR trece în low, datele de pe DR sunt
trecute în RSR pe frontul negativ al CLKR. Primul bit recepţionat este cel MSB. După recepţia
tuturor biţilor, se generează întreruperea RINT pe frontul negativ al CLKR şi conţinutul
registrului RSR se transferă în DRR. Dacă DRR este citit înainte de a se genera întreruperea, biţii
ce n-au fost introduşi până în momentul citirii vor fi formaţi din datele transferului precedent.
Pentru a preveni o posibilă depăşire a registrului DRR, acesta trebuie citit înainte de următorul
impuls FSR.
Procesoare Numerice de Semnal - CURS 11

4.9.2 Semnalul de ceas şi controlul sincronizării


După un transfer complet pe portul serial, se generează o întrerupere, RINT sau
XINT, pe frontul crescător al CLKR, respectiv CLKX, după ce ultimul bit a fost
transferat. Dacă DRR se citeşte înainte ca RINT să apară, datele citite vor fi cele
corespunzătoare recepţiei anterioare. Dacă DXR se va încărca încă o dată după ce
XINT a fost generată, doar ultima înscrisă în el va fi înscrisă şi în XSR pentru
următoarea operaţie de transmisie. Când TMS320C2x este resetat, TXM = 0, DX este
trecut în înaltă impedanţă şi orice operaţie de transfer existentă în momentul apariţiei
resetului va fi terminată.

Impulsul de sincronizare pentru transmisie poate fi generat intern sau extern. Ceasul
pentru portul serial are frecvenţa maximă de 5MHz. Transferurile portului serial la
TMS320C25 sunt în general iniţiate de un impuls de sincronizare, excepţie fiind
modul continuu de lucru selectat cu FSM = 0. Impulsul intră pe FSX la transmisie şi
pe FSR la recepţie. Impulsul este cerut doar dacă FSM = 1. FSM este setat de
instrucţiunea SFSM şi resetat de instrucţiunea RFSM.
Procesoare Numerice de Semnal - CURS 12

4.9.3 Modul de funcţionare în salve (BURST)


În acest mod, transferurile sunt separate în timp de perioade de inactivitate ale
portului serial şi pentru a lucra în acest mod se programează FSM = 1.

Funcţionarea transmisiei pe portul serial în mod salvă


Procesoare Numerice de Semnal - CURS 13

4.9.3 Modul de funcţionare în salve (BURST)

Funcţionarea recepţiei pe portul serial în mod salvă


Procesoare Numerice de Semnal - CURS 14

4.9.3 Modul de funcţionare în salve (BURST)


Când TXM = 1 şi DXR este
încărcat, este generat un
impuls pe următorul front
crescător al CLKX. XSR
este încărcat cu conţinutul
curent al DXR când FSX
este în high şi CLKX în low.
Transmisia începe când FSX
trece în low şi CLKX trece
în high sau este în high.
XINT este generată pe
frontul crescător al CLKX
după ce 8 sau 16 biţi au fost Recepţia se desfăşoară asemănător cu transmisia. Conţinutul
transmişi Si DX este trecut lui RSR este încărcat în DRR când CLKR este în low, imediat
în înaltă impedanţă. Dacă după recepţia ultimului bit. RINT este generată la următorul
DXR este reîncărcat înainte front crescător al CLKR şi DRR poate fi citit în orice moment
de frontul crescător al înainte de recepţia ultimului bit al următoarei recepţii. Când
CLKX ce urmează după se lucrează pe 8 biţi, cei mai semnificativi 8 biţi ai registrului
XINT, pe FSX vi fi generat DRR sunt iniţial trecuţi în partea de LSB şi la recepţia
un impuls şi XSR va fi următorilor 8 biţi, ei vor fi trecuţi în partea de MSB, iar cei
reîncărcat. nou recepţionaţi sunt trecuţi în partea de LSB.
Procesoare Numerice de Semnal - CURS 15

4.10 Multiprocesare şi accesul direct la memorie

Flexibilitatea lui TMS320C2x permite configuraţii multiple astfel încât să


satisfacă o gamă largă de arhitecturi de sisteme. Câteva din configuraţiile de
sistem folosind TMS320C2x sunt următoarele:
sistem de sine stătător (un singur procesor);
un multiprocesor gazdă / sclav cu spaţiu de memorie globală de date
distribuită;
un multiprocesor cu circuite în paralel;
un procesor periferic interfaţat cu alte circuite prin folosirea semnalelor
de control ale procesorului.

Aceste configuraţii de sisteme sunt posibile pe baza a trei facilităţi ale


procesorului TMS320C2x:
funcţia de sincronizare folosind intrarea /SYNC;
interfaţa la memoria globală;
funcţia hold, implementată folosind pinii /HOLD şi /HOLDA.
Procesoare Numerice de Semnal - CURS 16

4.10.1 Sincronizarea

Într-un sistem cu mai multe procesoare, intrarea /SYNC poate fi folosită


pentru a uşura mult interfaţarea între procesoare. Această intrare este folosită
pentru a determina fiecare circuit TMS320C2x din sistem să-şi sincronizeze
ceasurile interne, permiţând astfel rularea de tip "lock-step".

Sincronizarea între mai multe circuite TMS320C2x se face folosind semnalul


comun /SYNC şi intrările de ceas externe. O tranziţie negativă /SYNC setează
fiecare procesor la primul sfert de fază intern (Q1). Această tranziţie trebuie
să fie sincronă cu frontul crescător al lui CLKIN. La TMS320C25 există două
cicluri de întârziere CLKIN care urmează ciclului în care /SYNC trece în
zero, înainte ca faza Q1 sincronizată să apară. La TMS32020 nu există această
întârziere.
Procesoare Numerice de Semnal - CURS 17

4.10.1 Sincronizarea

Timingul
semnalelor de
sincronizare
(TMS32020)

În mod normal, /SYNC este cerut când /RS este activ. Dacă /SYNC este activat
după un reset, atunci pot avea loc următoarele acţiuni:
1) Ciclul maşină al procesorului este resetat la Q1, dacă condiţiile de timp
pentru /SYNC sunt îndeplinite. Dacă /SYNC este activat la începutul lui Q1,
Q3 sau Q4, atunci instructiunea curentă este incorect executată. Dacă /SYNC
este activat la începutul lui Q2, instrucţiunea curentă este executată corect.
2) Dacă /SYNC nu îndeplineşte condiţiile de timp pot apare operaţii
imprevizibile ale procesorului. Pentru a readuce procesorul într-o stare
cunoscută, trebuie realizată o resetare.
Procesoare Numerice de Semnal - CURS 18

4.10.2 Memoria globală

Pentru aplicaţiile cu multiprocesoare, TMS320C2x are posibilitatea de a aloca


spaţiul de memorie globală de date şi de a comunica cu acest spaţiu prin cererea de
memorie globală /BS (bus request) şi a semnalelor de control READY.
Memoria globală este memoria împărţită la mai mult de un procesor, de aceea
accesul la ea trebuie să poată fi arbitrat. Când procesorul foloseşte memoria globală,
spaţiul de memorie al procesorului este împărţit în:
secţiunea locală, folosită de procesor pentru efectuarea funcţiilor sale
individuale;
secţiunea globală, folosită în comunicarea cu alte procesoare.

Registrul GREG specifică părţi din memoria de date a lui TMS320C2x ca o


memorie externă globală. GREG (locaţia 5 din memoria de date) este un registru pe
8 biţi conectat la cei mai puţin semnificativi 8 biţi ai magistralei de date interne
restul biţiilor fiind citiţi în "1". Conţinutul registrului GREG determină mărimea
spaţiului de memorie globală; valorile permise şi spaţiile corespunzătoare memoriei
globale sunt prezentate în tabelul următor:
Procesoare Numerice de Semnal - CURS 19

4.10.2 Memoria globală


Valoare GREG Memoria locală Memoria globală
Sp. Adrese Nr. cuvinte Sp. adrese Nr. cuvinte

000000XX 0 - FFFF 65536 - 0


10000000 0 - 7FFF 32768 8000 - FFFF 32768
11100000 0 - DFFF 57344 E000 - FFFF 8192
11110000 0 - EFFF 61440 F000 - FFFF 4096
11111000 0 - F7FF 63488 F800 - FFFF 2048
11111100 0 - FBFF 64512 FC00 - FFFF 1024
11111110 0 - FDFF 65024 FE00 - FFFF 512
11111111 0 - FEFF 65280 FF00 - FFFF 256

Observaţie: Alte valori decât acestea conduc la o fragmentare a memoriei.


Procesoare Numerice de Semnal - CURS 20

4.10.2 Memoria globală


Când o adresă de memorie de date, fie ea directă sau indirectă, corespunde unei adrese
a memoriei globale de date, /BR este trecut în "0" împreună cu /DS pentru a indica
faptul că procesorul doreşte accesul la memoria globală. Arbitrarea controlului asupra
memoriei globale se realizează printr-o logică externă, care activează READY când
TMS320C2x cere acces la memoria globală. Lungimea unui ciclu de memorie este
controlată prin READY. Diagrama de timp pentru o stare de aşteptare:
Procesoare Numerice de Semnal - CURS 21

4.10.3 Funcţia HOLD

TMS320C2x acceptă accesul direct la memoria sa locală de programe (externă),


memoria locală de date şi la spaţiile de I/O.

Cele două semnale, /HOLD şi /HOLDA, au rolul de a permite altui dispozitiv să


preia controlul asupra magistralelor procesorului. După primirea unui semnal
/HOLD de la un circuit extern, procesorul răspunde trecând /HOLDA în "0",
după care procesorul îşi trece în stare de înaltă impedanţă magistralele de adrese
şi date precum şi semnalele de control /PS, /DS, /IS, R//W, /STRB. Pinii de ieşire ai
portului serial nu sunt afectaţi de /HOLD (DX şi FSX). Semnalizările între
procesorul extern şi TMS320C2x pot fi realizate folosind întreruperile.

Diagramele de timp sunt:


Procesoare Numerice de Semnal - CURS 22

4.10.3 Funcţia HOLD


Procesoare Numerice de Semnal - CURS 23

4.10.3 Funcţia HOLD


Procesoare Numerice de Semnal - CURS 24

4.10.3 Funcţia HOLD


/HOLD are acelaşi timp de tranziţie din low în high ca şi READY şi este testat la
începutul lui Q3. După îndeplinirea condiţiei de tranziţie în high, sunt necesare trei
cicluri maşină înainte ca magistralele şi semnalele de control să fie trecute în stare de
înaltă impedanţă. Spre deosebire de întreruperile externe, /INT2 - /INT0, /HOLD nu e
o intrare ce poate fi memorată. Circuitul extern trebuie să menţină /HOLD activ până
când primeşte un /HOLDA de la TMS320C2x. Dacă procesorul se află la mijlocul
execuţiei unui ciclu multi-instrucţiune, înainte de a trece magistralele şi semnalele de
control în stare de înaltă impedanţă, va termina execuţia instrucţiunii.
După terminarea execuţiei instrucţiunii magistralele sunt trecute în starea a treia.
Aceasta este valabil şi pentru instrucţiunile multiciclu, devenite astfel în urma inserării
unor stări de aşteptare sau prin folosirea instrucţiunilor RPT / RPTK. După ce /HOLD
este dezactivat, se reia execuţia programului din acelaşi punct unde s-a oprit. /HOLDA
este trecut în "1" sincron cu /HOLD. După tranziţia din low în high sunt necesare 2
cicluri maşină înainte ca magistrala şi semnalele de control să devină valide. /HOLD
nu este tratat ca o întrerupere.
Procesoare Numerice de Semnal - CURS 25

4.10.3 Funcţia HOLD


Dacă TMS320C2x execută instrucţiunea IDLE înainte de a trece în starea de hold,
după părăsirea stării de hold se revine la această instrucţiune.

Funcţia hold are două moduri distincte de funcţionare la TMS320C25:


1) modul de execuţie ca la TMS32020 în care se suspendă execuţia programului
pe timpul activării lui /HOLD;
2) modul DMA concurent, caracteristic TMS320C25, în care DSP-ul continuă să-
şi execute programul cât timp se operează din RAM-ul sau ROM-ul intern, ceea
ce îi măreşte mult aplicabilitatea.

Aceste moduri sunt selectate cu bitul HM din registrul de stare al TMS320C25. Când
HM = 1, procesorul opreşte execuţia programului şi intră în starea de hold. Când HM
= 0, atunci:
dacă programul este executat din memoria externă sau dacă este accesată
memoria externă de date, procesorul intră direct în starea de hold;
dacă programul se execută din memoria internă şi dacă nu există cereri externe
pentru accesarea memoriei de date, atunci procesorul este trecut extern în starea
hold, dar execuţia programului continuă intern.
Procesoare Numerice de Semnal - CURS 26

4.10.3 Funcţia HOLD

Astfel se permite o operare mai eficientă prin faptul că se poate continua execuţia
unui program simultan cu executarea unei operaţii DMA externe. Execuţia
programului este întreruptă până când /HOLD este dezactivat, dacă procesorul este
într-o stare de hold cu HM = 1 şi dacă execuţia internă a programului necesită un
acces extern sau dacă programul se ramifică la o adresă externă.

Dacă o execuţie repetitivă care necesită accesul la magistrala externă este executată
(cu HM = 0) şi apare o cerere hold, se trece în această stare după ciclul de magistrală
curent. Dacă situaţia apare pentru HM = 1, nu se intră în stare de hold până când
instrucţiunea repetitivă este executată complet. HM este setat / resetat cu SHM /
RHM. Toate întreruperile sunt dezactivate cât timp /HOLD este activ cu HM = 1.
Dacă se primeşte o întrerupere pe timpul stării de hold, întreruperea este memorată
şi păstrată pe durata lui /HOLD. /HOLD nu afectează nici unul din flagurile de
întreruperi sau registrul de întreruperi. Dacă HM = 0, întreruperile funcţionează
normal.

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

  • Cuprins
    Cuprins
    Document4 pagini
    Cuprins
    api-3725868
    Încă nu există evaluări
  • Cap 41
    Cap 41
    Document12 pagini
    Cap 41
    api-3725868
    Încă nu există evaluări
  • Aplicatii DSP
    Aplicatii DSP
    Document12 pagini
    Aplicatii DSP
    Corpaci Petrica
    Încă nu există evaluări
  • Cap 5
    Cap 5
    Document12 pagini
    Cap 5
    api-3725868
    100% (1)
  • Cap 42
    Cap 42
    Document18 pagini
    Cap 42
    api-3725868
    Încă nu există evaluări
  • Cap 43
    Cap 43
    Document10 pagini
    Cap 43
    api-3725868
    Încă nu există evaluări
  • Cap 44
    Cap 44
    Document14 pagini
    Cap 44
    api-3725868
    Încă nu există evaluări
  • Cap 4
    Cap 4
    Document10 pagini
    Cap 4
    api-3725868
    100% (1)
  • Cap 1
    Cap 1
    Document5 pagini
    Cap 1
    api-3725868
    50% (2)
  • Cap 2
    Cap 2
    Document10 pagini
    Cap 2
    Maria Botnari
    Încă nu există evaluări
  • Cap 21
    Cap 21
    Document10 pagini
    Cap 21
    api-3725868
    100% (1)
  • Cap 22
    Cap 22
    Document12 pagini
    Cap 22
    api-3725868
    Încă nu există evaluări
  • Pns c8
    Pns c8
    Document23 pagini
    Pns c8
    api-3725868
    Încă nu există evaluări
  • Pns c9
    Pns c9
    Document25 pagini
    Pns c9
    api-3725868
    Încă nu există evaluări
  • Pns c4
    Pns c4
    Document16 pagini
    Pns c4
    api-3725868
    Încă nu există evaluări
  • PNS C2
    PNS C2
    Document28 pagini
    PNS C2
    api-3725868
    100% (1)
  • Pns c5
    Pns c5
    Document38 pagini
    Pns c5
    api-3725868
    Încă nu există evaluări
  • PNS C7
    PNS C7
    Document25 pagini
    PNS C7
    api-3725868
    100% (1)
  • Pns c6
    Pns c6
    Document30 pagini
    Pns c6
    api-3725868
    Încă nu există evaluări
  • Pns c3
    Pns c3
    Document35 pagini
    Pns c3
    api-3725868
    Încă nu există evaluări
  • PNS C1
    PNS C1
    Document37 pagini
    PNS C1
    api-3725868
    100% (3)
  • PNS C11
    PNS C11
    Document26 pagini
    PNS C11
    api-3725868
    100% (1)
  • Pns c10
    Pns c10
    Document28 pagini
    Pns c10
    api-3725868
    Încă nu există evaluări
  • Pns c8
    Pns c8
    Document23 pagini
    Pns c8
    api-3725868
    Încă nu există evaluări
  • Pns c6
    Pns c6
    Document30 pagini
    Pns c6
    api-3725868
    Încă nu există evaluări
  • Pns c9
    Pns c9
    Document25 pagini
    Pns c9
    api-3725868
    Încă nu există evaluări
  • PNS C7
    PNS C7
    Document25 pagini
    PNS C7
    api-3725868
    100% (1)
  • Pns c5
    Pns c5
    Document38 pagini
    Pns c5
    api-3725868
    Încă nu există evaluări
  • Pns c4
    Pns c4
    Document16 pagini
    Pns c4
    api-3725868
    Încă nu există evaluări