Documente Academic
Documente Profesional
Documente Cultură
7.4.
Magistrala de date
Unitatea
central
Magistrala de comenzi
Memoria
Porturi
centrale, unitatea central este degrevat de astfel de sarcini iar traseul datelor este mai
scurt. n figura 7.6 este prezentat fluxul datelor n cazul utilizrii circuitului DMA.
Magistrala de adrese
Registru
acumulator
Magistrala de date
Unitatea
central
Magistrala de comenzi
Memoria
DMA
Porturi
Conexiunile externe
Schema bloc, figura 7.7, evideniaz aezarea, n jurul unei magistrale interne, a
circuitelor de interfa cu unitatea central i a celor pentru dialogul de
preluare/eliberare a magistralei acesteia, pe de o parte, i a registrelor de canal, inclusiv
circuitele de dialog cu perifericele i circuitele pentru stabilirea prioritii ntre canale,
pe de alt parte. Circuitul, prezentat n figura 7.8, are 40 de conexiuni externe, cu
urmtoarele semnificaii:
151
D0 D7
Amplificator
de
magistral
de date
I/OR
I/OW
CLK
RESET
Bloc scriere/
citire
A0
A1
A2
A3
CS
A4
A5
A6
A7
READY
HRQ
HLDA
MEMR
MEMW
AEN
ADSTB
Canal 0
DRQ 0
Numrtor
de adres
de 16 bii
DACK 0
Canal 1
DRQ 1
Numrtor
de adres
de 16 bii
DACK 1
Canal 2
DRQ 2
Numrtor
de adres
de 16 bii
DACK 2
Canal 3
DRQ 3
Numrtor
de adres
de 16 bii
Bloc de
comand
DACK 3
Arbitraj
prioritate
TC
MARK
Figura 7.7. Schema bloc a circuitului 8257
152
8257 conine cte 2 registre bidirecionale de 16 bii pentru fiecare dintre cele 4
canale i nc dou registre unidirecionale, pentru comanda i examinarea funcionrii
circuitului, Semnificaia fiecrei poziii din registre rezult din tabelul 7.2.
153
TABELUL 7.2.
Adresa Bistabil
A3A2 intern D7
Adres
Cmps 0000
0
A7
A15
1
canal 0
Cms 0000
Numrtor Cmps 0001
C7
0
S
de octei Cms 0001
1
canal 0
Adres
Cmps 0010
0
A7
A15
1
canal 1
Cms 0010
Numrtor Cmps 0011
C7
0
S
de octei Cms 0011
1
canal 1
Adres
Cmps 0100
0
A7
A15
1
canal 2
Cms 0100
Numrtor Cmps 0101
C7
0
S
de octei Cms 0101
1
canal 2
Adres
Cmps 0110
0
A7
A15
1
canal 3
Cms 0110
Numrtor Cmps 0111
C7
0
S
de octei Cms 0111
1
canal 3
Mod
1000
AL
Stare
1000
0
Simboluri folosite:
Registru
Cmps
Cms
C
S
AX
CX
Octet
D6
A6
A14
C6
C
D5
A5
A13
C5
C13
Coninut
D4 D3
A4 A3
A12 A11
C4 C3
C12 C11
A6
A14
C6
C
A5
A13
C5
C13
A4
A12
C4
C12
A3
A11
C3
C11
A2
A10
C2
C10
A1
A9
C1
C9
A0
A8
C0
C8
A6
A14
C6
C
A5
A13
C5
C13
A4
A12
C4
C12
A3
A11
C3
C11
A2
A10
C2
C10
A1
A9
C1
C9
A0
A8
C0
C8
A6
A14
C6
C
A5
A13
C5
C13
A4
A12
C4
C12
A3
A11
C3
C11
A2
A10
C2
C10
A1
A9
C1
C9
A0
A8
C0
C8
TCS EV EP
0
0
UP
D2
A2
A10
C2
C10
D1
A1
A9
C1
C9
D0
A0
A8
C0
C8
7.4.1.3.
Registrele de canal
Verificare
Citire port
Scriere port
Invalid
0
0
1
1
0
1
0
1
MEMW
1
0
1
-
MEMR
1
1
0
-
I / OR
1
0
1
-
I / OW
1
1
0
-
Fiecare registru de 16 bii este accesibil printr-o dubl adresare la cte 8 bii,
folosind un bistabil intern, care selecteaz ntre octetul cel mai puin semnificativ i cel
mai semnificativ.
7.4.1.4.
Registrul de mod
6
TCS
5
EW
4
RP
3
EN3
2
EN2
1
EN1
0
EN0
Registrul este nscris, de regul, dup completarea celor 2 registre de 16 bii ale
fiecrui canal cu care se lucreaz. La RESET registrul de control este ters, inhibnduse toate canalele i opiunile, astfel prevenindu-se transferuri DMA nedorite la aplicarea
tensiunii.
EN03: Enable Channel, corespunde validrii canalului pe care se dorete s se
efectueze transferuri. Se pot face transferuri pe 14 canale. Pentru mai mult de un
canal, ordinea de servire corespunde unei scheme de prioriti, stabilite de bitul 4.
RP: Rotating Priority, corespunde stabilirii schemei de prioriti, ntre dou
variante: prioritate fix sau prioritate circular. n varianta fix se aloc o prioritate
maxim canalului 0, prioritate care descrete pn la a fi minim pentru canalul 3. n
varianta circular, se aloc dinamic nivelul de prioritate al fiecrui canal, dup fiecare
ciclu de transfer. n acest caz, fiecare canal servit va trece ultimul pe lista de prioriti,
n arbitrarea ciclului DMA urmtor.
Alegerea modului RP previne fenomenul de gtuire, bottleneck, cnd unul
dintre canale monopolizeaz transferurile n mod DMA. Dac sunt prezentate cereri de
transfer pe mai multe canale, se vor servi toate canalele, pe rnd. Primul transfer se va
executa conform schemei fixe de prioriti.
EW: Extended Write, contribuie la generarea anticipat a semnalelor de scriere,
pentru compensarea unor eventuali timpi de acces mai lungi ai participanilor la
transfer. n absena acestei opiuni, ar fi fost necesare stri de ateptare, folosind
semnalul READY de la conexiunea exterioar 6 ceea ce ar fi micorat viteza de lucru.
TCS: Terminal Count Stop, specific oprirea sau continuarea transferurilor
DMA, din momentul cnd s-a emis ,,1" pe conexiunea exterioar TC, simultan cu
poziionarea bitului corespunztor canalului, n registrul de stare. Bitul de validare a
canalului este ters, iar operaiile DMA pe acest canal se pot relua dup o rescriere n
registrul de control. n cazul n care nu se programeaz bitul TCS, transferurile DMA
continu, la adrese succesive, ct timp perifericul emite DRQ.
155
Registrul de stare
Registrul indic pe care dintre canale s-a terminat transferul numrului de octei
programat, inclusiv semnalarea strii de nceput a unui bloc de transfer cu parametri
reiniializai (numai pentru canalul 2).
7
0
6
0
5
0
4
UP
3
TC3
2
TC2
1
TC1
0
TC0
156
7.4.1.6.
A
DRQ 03
READY=0
?
READY
VERIFY=0
?
VERIFY
HRQ=1
HLDA
HLDA ?
arbitrare
prioriti
READY
READY=0
?
READY
ADDSTB
eantioneaz
adresele
mari n port
auxiliar
TC STOP
TC = 1
ENCHi=0
da
AEN=1
IOR/MEMR=0
IOW/MEMW=0
IOR/MEMR = 1
IOW/MEMW = 1 (n
avans)
DACKi=0
MARK=0
TC=0
DACKi=1
nu
IOW/MEMW = 1
(normal)
TEST
NUMRTOR DE
TRANSFERURI
TC = 1 sau
MARK = 1
HLDA
DRQ03
nici un
cel puin un
DRQ03
DRQ03
AEN,HRQ=0
arbitraj
prioriti
DRQ03
158
nu
7.5.
159
comand. n tabelul 7.3 se prezint efectele semnalelor amintite mai sus asupra
funcionrii circuitului.
8
D0 D7
RD
WR
A0
A1
CS
Tampon
magistral
de date
Contor 0
CLK0 (C0)
POARTA0 (G0)
OUT0 (O0)
Logica
scrie/
citeste
Contor 1
CLK1 (C1)
POARTA1 (G1)
OUT1 (O1)
Registrul
cuvntului de
comand
Contor 2
CLK2 (C2)
POARTA2 (G2)
OUT2 (O2)
TABELUL 7.3.
CS RD WR
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
x
x
A1 A0
Funcia
0
1 ncarc contorul 0
0
0 ncarc contorul 1
1
1 ncarc contorul 2
1
0 ncarc cuvntul de comand
0
1 Citete contorul 0
0
0 Citete contorul 1
1
1 Citete contorul 2
1
0 Neoperaional, starea de mare impedan
x
x Circuit neselectat, starea de mare impedan
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
bitul 0
0 contorul selectat este tratat ca valoare binar (max. 65535z);
1 contorul selectat este tratat ca valoare BCD (max. 9999BCD);
biii 3,2,1
000 Mod 0;
001 Mod 1;
x10 Mod 2;
x11 Mod 3;
100 Mod 4;
101 Mod 5;
biii 5,4
00 operaia de citire a contorului, a se vedea procedura READ/WRITE;
01 citete/ncarc octetul cel mai semnificativ (la incrcare anuleaz octetul cel mai puin
semnificativ);
10 citete/ncarc octetul cel mai puin semnificativ (la incrcare anuleaz octetul cel mai
semnificativ);
11 citete/ncarc cel mai semnificativ octet, apoi cel mai puin semnificativ octet;
biii 7,6
00 selecie contor 0;
01 selecie contor 1;
10 selecie contor 2;
11 comand ilegal;
Figura 7.12. Cuvntul de comand pentru circuitul 8253.
Contorul selectat se consider ncrcat atunci cnd n el s-au nscris unul sau doi
octei, n funcie de specificaiile biilor 5, 4 din cuvntul de comand, operaia fiind
urmat de un front pozitiv i unul negativ ale impulsului de ceas. O eventuala citire
nainte de frontul cztor va conduce la o valoare incorect.
n continuare vor fi prezentate modurile de funcionare ale circuitului 8253.
Modul 0 este definit ca ntrerupere, la terminarea numrrii. Dup ncrcarea
cuvntului de comand, corespunztor
C
acestui mod, ieirea contorului selectat va
WR(n)
fi forat la nivelul cobort (fig. 7.13). n
5
3
4
2 1
O
continuare se ncarc contorul cu o
anumit valoare numeric, care va fi
n=5
decrementat, prin aplicarea semnalului
Figura 7.13. Modul zero
de ceas, pe intrarea corespunztoare.
Ieirea se va menine pe nivel cobort pn n momentul cnd valoarea numrului din
contor devine zero, moment n care ieirea trece pe nivel ridicat, meninndu-se astfel,
pn la o noua ncrcare a contorului. Decrementarea continu i dup atingerea valorii
finale. Renscrierea contorului, pe durata decrementrii, are ca efect blocarea operaiei
curente, dac se ncarc primul octet, sau amorsarea unei noi operaii, dac se ncarc al
doilea octet.
n figura 7.13 contorul a fost ncrcat cu valoarea 5, ca urmare a execuiei unei
operaii de nscriere ( WR = 0). Decrementarea se va declana dup un front pozitiv,
urmat de unul negativ ale semnalului de ceas. Decrementarea este blocat pe durata
aplicrii, la intrarea poart, a unui semnal de nivel cobort.
Citirea coninutului contorului, pe durata decrementrii, necesit o tehnic
special, care va fi prezentat la sfritul acestui paragraf.
Cuvntul de comand are urmtoarea structura:
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
1
0
0
1
0
0
0
0
1
T
5T
O (n=4) 2T
O (n=5)
2T
3T
Figura 7.16. Modul 3
163
Modul 4, definit ca strob comandat prin software, asigur o ieire la nivel ridicat,
dup stabilirea modului. Decrementarea contorului selectat are loc dup ncrcarea lui
cu numrul dat. Ieirea va fi forat la nivel cobort pe durata unei perioade a
semnalului de ceas, cnd contorul a fost decrementat la zero. Decrementarea va fi
inhibat, dac intrarea G va fi forat la nivel cobort. Rencrcarea contorului va
reporni decrementarea, plecnd de la noua valoare plasat n contor (fig. 7.17).
C
WR(n=4)
O
0
T
4T
Cuvntul de comand:
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
1
0
0
1
1
0
1
0
2
4T
0
T
164
7.6.
n modulul EV sunt trei timere de uz general (GP Timers). Aceste timere pot fi
folosite ca baze de timp independente n aplicaii cum ar fi:
o generarea perioadei de eantionare n sistemele de control;
o furnizarea unei baze de timp pentru operarea circuitului QEP sau
unitile de captur;
o furnizarea unei baze de timp pentru operarea unitile de comparare
simple sau complete (full) i a circuitelor PWM asociate pentru a
genera ieiri comparare/PWM.
Blocurile funcionale ale timerelor GP
Figura 7.19. prezint schema bloc a timerului GP. Fiecare timer conine:
o un contor up/down scriere/citire (R/W) de 16 bii, TxCNT (x=1,2,3);
o un registru R/W de 16 bii pentru comparare (cu imagine n memorie)
TxCMPR (x=1,2,3);
o un registru R/W de 16 bii pentru perioad (cu imagine n memorie)
TxPR (x=1,2,3);
o un registru de control R/W de 16 bii, TxCON (x=1,2,3);
o prescalare (divizare) programabil a ceasului de intrare intern sau
extern;
o logic de control a ntreruperilor;
o un pin de ieire al comparatorului GP timer, TxPWM/TxCMP
(x=1,2,3);
o ieire logic.
165