Documente Academic
Documente Profesional
Documente Cultură
4.6.3 Reset
4.6.3 Reset
După activarea resetului au loc următoarele iniţializări:
4.6.3 Reset
ARB - buffer pentru indicatorul registrelor auxiliare; când se încarcă ARP, vechea
valoare a sa se încarcă în ARB, exceptând instrucţiunea LST; când ARB este încărcat
prin LST1, aceeaşi valoare se încarcă în ARP.
C - bitul de carry; este în "1" dacă rezultatul are transport, sau în "0" dacă rezultatul
unei scăderi generează împrumut, cu excepţia instrucţiunilor ADDH sau SUBH, bitul se
resetează după adunare şi se setează după scădere; instrucţiunile de rotaţie şi deplasare
afectează bitul, iar salturile condiţionate date de BC şi BNC se fac în funcţie de starea
bitului; C = 1 în cazul unui reset.
Procesoare Numerice de Semnal - CURS 8
OVM - bitul mod de depăşire; OVM = 0 - rezultatul depăşeşte valoarea normală din
acumulator; OVM = 1 - fiecare bit al acumulatorului este setat în funcţie de valoarea
pozitivă sau negativă maximă; instrucţiunile SOVM şi ROVM setează, respectiv
resetează bitul.
SXM - bit mod de extensie a semnului; SXM = 1 - are loc extensia semnului când în
acumulator se ajunge printr-un registru de deplasare; SXM = 0 - suprimă extensia
semnului; SXM nu afectează rezultatul unor instrucţiuni; bitul este setat de SSXM şi
resetat de RSXM; poate fi încărcat cu LST1; SXM = 1 după un reset.
TC - bitul de test / control; este afectat de instrucţiunile BIT, BITT, CMPR, LST1 şi
NORM; TC = 1 - bitul testat cu BIT sau BITT este "1"; compararea condiţionată dintre
AR0 şi orice AR sau SAU-EXCLUSIV-ul dintre primii doi biţi cei mai semnificativi ai
acumulatorului dă un rezultat adevărat; instrucţiunile de salt condiţionat BBZ şi BBNZ
duc la executarea unui salt în funcţie de starea bitului.
TXM - bit mod de transmisie; TXM = 1 - configurează pinul FSX al portului serial ca
ieşire şi se produce un impuls pe această ieşire când DXR este încărcat şi se începe
transmisia pe linia DX; TXM = 0 - configurează pinul FSX ca intrare; TXM este setat
de STXM şi resetat de RTXM; poate fi încărcat cu LST1; TXM = 0 după un reset.
XF - bit de stare al pinului XF; este în general pin de ieşire; este setat de SXF şi
resetat de RXF; poate fi încărcat cu LST1; XF = 1 după un reset.
Procesoare Numerice de Semnal - CURS 12
4.6.5 Timerul
Procesoarele TMS320C2x au un registru timer (TIM) şi un registru de perioadă
(PRD) pe 16 biţi fiecare. Timerul este un numărător în jos; decrementarea se face în
funcţie de ceasul CLKOUT1. La TMS32020, ceasul are o perioadă de 4 ori mai mare
decât CLKOUT1 (frecvenţă divizată cu 4). Registrul TIM este setat la valoarea
FFFF în urma resetului, la ambele tipuri de procesoare. Registrul PRD la
TMS320C2x cere o iniţializare soft. Registrul TIM începe decrementarea după
dezactivarea resetului şi poate fi încărcat împreună cu PRD prin program.
Procesoare Numerice de Semnal - CURS 13
4.6.5 Timerul
Registrul TIM (a doua locaţie de memorie) conţine valoarea curentă a timerului. La
fiecare N perioade a CLKOUT1 (N = 1 pentru TMS320C25 şi N = 4 pentru
TMS32020), conţinutul registrului este decrementat cu 1.
Registrul PRD (locaţia a treia în memoria de date) conţine numărătorul de bază.
Întreruperea TINT este generată de fiecare dată când TIM ajunge la 0. Acesta va fi
reîncărcat cu valoarea din PRD la următoarea perioadă, deci întreruperea va fi
programată să apară la intervale regulate, de PRD + 1 perioade ale CLKOUT1 la
TMS32020 şi la 4 x PRD perioade la TMS320C25, lucru util pentru controlul
funcţionării şi pentru sincronizarea perifericelor.
Nu este permisă încărcarea unei valori în PRD. Registrele PRD şi TIM pot fi citite
sau scrise în orice moment. Un nou număr poate fi înscris în PRD fără a deranja
numărătoarea curentă. Timerul va reîncepe cu noul număr după terminarea
numărării curente. Dacă ambele registre sunt încărcate simultan cu noul număr,
timerul va reîncepe un nou ciclu fără a genera întreruperea. Dacă timerul nu este
utilizat, întreruperea trebuie mascată, sau toate întreruperile mascabile trebuie
dezactivate cu instrucţiunea DINT. Registrul PRD poate fi atunci utilizat ca o locaţie
de memorie simplă. Dacă se utilizează întreruperea, registrele TIM şi PRD trebuie
programate înainte.
Procesoare Numerice de Semnal - CURS 14
Semnalul R//W controlează direcţia de transfer, iar /STRB ceasul pentru controlul
transferurilor.
Spaţiul I/O constă din 16 intrări şi 16 ieşiri. O singură operaţie care utilizează
instrucţiunile IN şi OUT ia în mod normal 2 perioade, dar când se utilizează
împreună cu numărătorul de repetări, este necesar un ciclu.
Spaţiul I/O este tratat în acelaşi mod ca şi memoria, utilizând magistralele de date şi
adrese în acelaşi mod ca porturile mapate în memorie. Când se adresează memoria
internă, magistrala de date trebuie trecută în înaltă impedanţă şi semnalele de
control în stare inactivă (high). Interfaţa cu memoria şi spaţiul I/O de diferite viteze
utilizează linia READY. Când se comunică cu un dispozitiv lent, procesorul va
aştepta după acesta, până la activarea liniei READY.
Procesoare Numerice de Semnal - CURS 17
PE / DI: se lucrează la viteza maximă dacă memoria externă de program este suficient de
rapidă pentru ca datele din memoria internă apărute să coincidă cu accesul la memoria de
program. Dacă memoria nu este suficient de rapidă, se pot genera stări de aşteptare pe
intrarea READY.
4.8 Întreruperile
TMS320C2x are 3 întreruperi externe mascabile (/INT2, /INT1, /INT0) disponibile
pentru dispozitive externe. Întreruperile sunt generate de portul serial (RINT, XINT),
de timer (TINT) şi de instrucţiunea TRAP. Întreruperile au anumite priorităţi, resetul
având prioritatea cea mai mare, iar registrul de transmisie a datelor pe interfaţa
serială cea mai mică.
Procesoare Numerice de Semnal - CURS 23
Registrul poate fi citit sau scris, dar nu şi cu instrucţiunea BLKD. La citirea lui,
biţii 6-15 sunt citiţi în "1", numai ultimii 6 biţi fiind accesibili. Acest registru nu are
efect asupra resetului. Bitul INTM din registrul de stare ST1 validează ("0") sau
invalidează ("1") toate întreruperile mascabile.
Procesoare Numerice de Semnal - CURS 24