Sunteți pe pagina 1din 4

CIRCUITUL TIMER

Circuitul timer 82C54 este versiunea CHMOS a circuitului standard I8254. El este destinat
rezolvrii problemelor de natur temporal care apar n sistemele cu microprocesor [1]. Circuitul
conine trei numrtoare independente de 16 bii i este considerat de ctre microprocesor drept un
tablou de porturi I/O succesive, putnd fi utilizat ca numrtor de evenimente externe, generator
programabil de semnale dreptunghiulare, monostabil redeclanabil, circuit de ntrziere, etc. [2]
Cu ajutorul timer-ului este rezolvat una dintre cele mai des ntlnite probleme n sistemele cu
microprocesor: generarea unor ntrzieri precise sub control software. Astfel, n locul generrii buclelor
de ntrziere prin program, este suficient configurarea unuia dintre numrtoare pentru generarea
ntrzierii dorite. La terminarea numrrii circuitul genereaz o nterupere.

Structura circuitului 82C54


n Figura 1 este reprezentat structura intern a circuitului 82C54, n care se remarc
urmtoarele blocuri constitutive:

Figura 1. Schema bloc a circuitului 82C54 [1].


Buffer-ul magistralei de date realizeaz interfaarea circuitului timer cu magistrala de date a
sistemului.
1

Logica de citire/scriere permite selecia i comanda circuitului. Circuitul este selectat prin
aducerea semnalului /CS n starea low. Intrrile A0 i A1 selecteaz unul dintre cele trei
numrtoare n vederea citirii sau scrierii. De asemenea, ambele intrri A n starea high,
combinate cu un semnal high pe intrarea /RD i un semnal low pe intrarea /WR, determin
ncrcarea registrului de comand.
Registrul cuvntului de comand (control) stocheaz informaiile referitoare la
programarea circuitului.
Numrtoarele sunt identice, fiecare dintre ele coninnd un numrtor descresctor de 16
bii. Pot fi setate s numere n format BCD sau binar, independent unul de altul.
CLKi intrri de ceas pentru numrtoare, frecvena maxim admis fiind de 10 MHz.
GATEi pot aciona ca i pori de validare ale intrrilor de ceas sau ca impuls de declanare a
numrrii n funcie de modul de funcionare selectat.
OUTi ieirile celor trei numrtoare.

Programarea circuitului timer


La iniializarea sistemului starea circuitului 82C54 este nedefinit. nainte de a fi folosit,
fiecare numrtor trebuie programat. Programarea se face cu ajutorul unui cuvnt de comand, al crui
format poate fi vzut n Figura 2.
D7
SC1

D6
SC0

D5
RW1

D4
RW0

D3
M2

SC selecteaz numrtor (Select Counter):


SC1
0
0
1
1

SC0
0
1
0
1

D2
M1

D1
M0

D0
BCD

M mod de lucru (Mode):


M2
0
0
X
X
1
1

selecteaz numrtor 0
selecteaz numrtor 1
selecteaz numrtor 2
comand ilegal

M1
0
0
1
1
0
0

M0
0
1
0
1
0
1

mod 0
mod 1
mod 2
mod 3
mod 4
mod 5

RW citire/scriere (Read/Write):
RW1 RW0
0
0
0
1
1
0
1

citete numrtor
citete/scrie octetul low
citete/scrie octetul
high
citete/scrie octetul low
i apoi octetul high

BCD numrare:
BCD
0
1

numrare binar
numrare BCD

Figura 2. Structura cuvntului de comand a circuitului timer.

Dup cum se poate vedea i din Figura 2 exist ase moduri de lucru:
Modul 0 ntrerupere la terminarea numrrii. Dup scrierea cuvntului de comand,
ieirea OUT a numrtorului este forat n starea low, n care va rmne pn cnd numrtorul va
ajunge la zero. n acel moment semnalul OUT trece n starea high, n care rmne pn la o nou
ncrcare a numrtorului. Numrarea este posibil doar dac semnalul GATE este activat.
Modul 1 monostabil programabil. Dup scrierea cuvntului de comand, ieirea OUT a
numrtorului va fi forat n starea high. Trecerea n starea low se va face abia dup ce va fi
ncrcat i numrtorul, iar semnalul pe intrarea GATE va fi pozitiv. La sfritul numrrii OUT trece
n starea 0. O nou activare a semnalului GATE are drept efect renceperea numrrii. Dac n timpul
numrrii se ncarc o nou valoare n numrtor aceasta nu va afecta decrementarea acestuia, pn n
momentul n care pe intrarea GATE se va nregistra un front pozitiv. n acest caz, numrarea se reia cu
ultima valoare nscris n contor.
Modul 2 generator de impulsuri. Factorul de umplere n este dat de valoarea nscris n
contor. Ieirea va fi n starea high timp de n-1 perioade de ceas i va trece n starea low n a n-a
perioad, dup care procesul se reia. Dac intrarea GATE trece n 0 n timpul numrrii procesul este
inhibat, fiind reluat de la valoarea iniial n momentul n care GATE trece din nou n starea 1. Dac n
timpul numrrii se ncarc o nou valoare n numrtor aceasta nu va afecta decrementarea acestuia,
ea fiind luat n considerare de-abia n ciclul urmtor.
Modul 3 generator de semnal dreptunghiular. Factorul de umplere al semnalului generat
este 1/2. Funcionarea n acest mod este similar cu cea din modul anterior, cu excepia
comportamentului ieirii OUT. Astfel, aceasta va fi iniial n starea high i va trece n starea low
cnd numrarea va ajunge la jumtatea valorii nscrise iniial n contor. Pentru o discuie privind modul
n care paritatea valorii iniiale nscris n contor afecteaz numrarea, consultai referina [1].
Modul 4 monostabil declanat prin program. i acest mod de funcionare este ntr-un fel
similar cu modul 2. Diferena ar fi c n acest caz numrtorul ajunge la 0, spre deosebire de modul 2,
unde numrtorul ajungea la valoarea 1, dup care procesul era reluat, valoarea 0 nefiind atins
niciodat. A doua diferen e dat de faptul c dup trecerea ieirii n starea low la sfritul numrrii
i generarea impulsului, procesul nu se reia. Semnalul OUT trece n starea high i rmne acolo,
numrtorul continundu-i decrementarea. ncrcarea unei noi valori n contor pe timpul numrrii
determin renceperea procesului cu aceast valoare pe urmtoarea perioad de ceas.
Modul 5 monostabil comandat prin hardware. Numrtoarea ncepe la activarea
semnalului GATE dup ce n prealabil numrtorul a fost iniializat cu constanta dorit. La terminarea
numrrii semnalul OUT trece n starea low pentru o perioad, procesul fiind reluat la un nou front
pozitiv pe intrarea GATE.
Pentru mai multe detalii privind funcionarea circuitului timer consultai referina [1].

Utilizarea circuitului timer n PC


Cele trei numrtoare ale circuitului timer se gsesc la adresele 40h 42h, n timp ce registrul
cuvntului de comand se gsete la adresa 43h. Intrrile de ceas ale celor trei numrtoare au
frecvena de 1,193 MHz.
n calculatoarele compatibile IBM, cele trei numrtoare ndeplinesc diferite funcii. Astfel,
numrtorul 0 furnizeaz impulsuri cu perioada de 55 ms, care genereaz ntreruperi hard pe intrarea
IRQ0 a controller-ului de ntreruperi. De ce 55 ms? Valoarea maxim cu care poate fi iniializat
contorul este 0FFFFh, adic 65535. Asta nseamn c frecvena corespunztoare este:

f =

1,19318MHz
= 18,20648 Hz ,
655356

iar perioada
T=

1
= 54,9255ms .
18,20648 Hz

Aceast proprietate a circuitului timer este folosit pentru a menine timpul i data sistemului.
Celelalte dou canale ale circuitului au urmtoarele roluri: numrtorul 1 comand intrarea
DRQ0 a circuitului DMAC I8237A, iar numrtorul 2 comand difuzorul calculatorului. Controlul
difuzorului se face cu cei doi bii mai puin semnificativi ai portului 61h. Astfel, ambii bii setai
pornesc difuzorul, n timp ce o valoare nul nscris pe cele dou poziii determin oprirea sa.

Bibliografie:
1. *** - Intel 82C54 CHMOS Programmable Interval Timer.
2. Eugen Lupu, Sisteme cu microprocesoare resurse hardware, prezentare, programare i
aplicaii, Editura Albastr, Cluj-Napoca, 2003.

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