Documente Academic
Documente Profesional
Documente Cultură
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
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
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.10.1 Sincronizarea
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
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
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.