Brojačko-vremenski
modul (u daljem tekstu Kaunter/Tajmeri ili CT) nalaze široku primenu u zadacima kao što su merenje vremenskih
intervala, brojanje događaja, merenje učestanosti, praćenje
brzine,
generisanje vremenske baze, generisanje impulsa i frekvencije,
poziciono merenje itd.
Svi ED-ovi kaunterski moduli su baziran na INTEL-ovom integrisanom kolu 8254, koji
korisniku pruža veliki izbor funkcija. Da bi se iskoristile mnoge osobenosti
ovih
modula, potrebno je detaljno poznavanje i razumevanje samog
integrisanog kola. Takođe, da bi se pomoglo korisnicima ED
sistema, na raspolaganju su mnogi programski alati.
Softver koji se isporučuje uz hardver omogući će vam da
lakše koristite mogućnosti
modula, a da pri tom ne morate direktno da
programirate 8254 Kaunter/Tajmer čip.
Neke karakteristike
integrisanog kola 8254 zahtevaju pojašnjenje sa ciljem da se spreče
nesporazumi i pogrešni koraci prilikom upotrebe. Ovaj tekst će vam
takođe pokazati korisna rešenja i za neke manjkavosti
integrisanog kola 8254. Isto tako, biće opisane i alternativne
tehnike za
merenje učestanosti, kao i konkretne električne šeme spoljnih
dodataka kojima se omogućava praćenje brzine, vremenska merenja i
generisanje programabilnih impulsa.
Komunikacija sa brojačima
Kaunter/Tajmer
moduli imaju četiri
nezavisna brojačka kanala “generetora taktova” dok
Kaunter/Tajmer sekcije na pojedinim modulima imaju jedan ili dva kanala. Svaki
brojač ima
tri ulazno/izlazna priključka: takt ulaz (CLK), ulaz za upravljanje
(GATE) i izlaz (OUT). Moguće je izabrati jedan od šest različitih
načina
rada, pri čemu svaki ima jedinstvene karakteristike. Njihov potpuni
opis može se naći u upustvu za upotrebu odgovoarajućeg modula
kojeg koristite.
Za sada, pomenimo samo da je početni izlazni logički nivo, kao i način odziva
promena na CLK i GATE ulazima, strogo zavistan od izabranog načina
rada. Proizvoljne pretpostavke o ovim veličinama su obično pogrešne,
pa zbog toga preporučujemo da pročitate korisničko uputstvo.
Takođe, postoji čitav niz registera na brojačkom
modulu ili sekciji koji omogućavaju postavljanje i pripremu kontrolnih
parametara ili čitanje statusa brojača. Funkcija svakog registra je
takođe opisana u korisničkom uputstvu. Tzv. “generator taktova”,
ili “generator povorki impulsa”, (engl. rate generator)
sadrži jedan stabilni kristalni oscilator frekvencije 8 MHz, koji pobuđuje
dva nezavisna brojača modula N (odnosno delitelja brojanja sa N), koji
su vezani serijski, a koji nisu uključeni u prethodno razmatranje.
Rezultantni izlaz je softversko- programabilni impulsni generator.
Biranjem modula brojanja, ova dva brojača (N), može se
dobiti širok opseg impulsnih učestanosti kao i koeficijenata ispune
(engl. Duty Cycle). Svi brojači su 16-bitni, što omogućava predstavljanje
brojeva u opsegu od 0÷65.535 (216). U smislu upotrebe
Kaunter/Tajmera, jedan impuls je definisan kao digitalni signal koji menja stanje
u sledećem nizu: nisko (0) - visoko (1) - nisko (0).
Slika 1. Jedinični impuls
|
Svaki od
brojača u brojačkom modulu ili sekciji može da se prekonfiguriše tako da akumulira
ulazne impulse (ulaz na CLK priključku). Generator taktova se može
upotrebiti za dobijanje precizne vremenske baze (ulaz na GATE priključku).
Količina izbrojanih ulaznih impulsa će biti direktno proporcionalna
vremenu za koje je GATE ulaz bio na višem logičkom nivou. Brojački
gejtovi se programiraju kratkospojnicima, tako da odgovaraju na
signalne promene, i na softverske komande.
U signalnom načinu rada svaki nezavisni brojač može
da se inhibira držanjem kontrolnog (GATE) ulaza na niskom logičkom
nivou (TTL 0). Ulazi nemaju internih otpornika za obezbeđenje visokog
logičkog nivoa (tzv. Pull-Up), pa je neophodno pobuđivati
upravljačke
ulaze potrebnim logičkim nivoom. U nedostatku bilo kakvog signala na
ulazu, način rada se ne može predvideti. Ne zaboravite, u slučaju
generatora taktova, oba brojača koji zajedno rade moraju biti uključena.
Brojanje impulsa
Vrlo
često u praksi
se javlja potreba za postavljanjem brojača u poznato stanje, tako da
sadrži poznati broj (u našem primeru, NUM), ili da brojimo impulse u
odnosu na poznato NUM stanje, ili da generišemo konkretan hardverski
izlaz po postizanju NUM stanja. Vrednost brojača koja se sadrži u
izlaznom registru, smanjuje se (redukuje) sa svakim takt impulsom. U
praksi, definisana vrednost NUM se ne ubacuje u brojač sve dok ne
stigne prvi impuls. Rezultat je stanje izlaznog
registra za jedan manje od broja prispelih impulsa: normalno, nije
problem da se ova činjenica uzme u obzir, jednostavnim dodavanjem broja
1 rezultatu očitavanja. Ali, šta se događa ako se primi manje od dva
impulsa? Pod tim uslovima, stanje registra se ne može predvideti. Na sreću,
postoje rešenja za ovaj problem; ako koristite softverske drajvere
ED-Link metod je sledeći:
Metoda
1:
a)
onemogućiti brojač (WRITE.CH sa 0)
b)
postaviti početno stanje na 65535 (CNF.CNTR)
c)
započeti brojanje (WRITE.CH sa 1)
d)
pročitati stanje brojača STATUS i COUNT (STAT.CNT)
|
ako je STATUS=0, stiglo je 0 impulsa
ako je STATUS=1, treba pročitati brojač (COUNT)
Broj ulaznih impulsa =
65.536 - COUNT
Ponekad se ukaže
potreba za brojanjem događaja kojih je više od maksimalnog modula
brojanja (65.535). Izgleda logično da bi bilo dovoljno kaskadno vezati
dva brojača, i dobiti 32-bitni brojač, ali to nije tako jednostavno
kao što bi se očekivalo. Kada brojači rade sa modulom-N, izlaz
brojača
je početno u visokom nivou (1) i spušta se u niski nivo (0) prilikom
dekrementa na jedinicu. Sledeći ulazni impuls vraća izlaz u stanje
visokog logičkog nivoa (1). Međutim, ovo nije baš
korektan talasni oblik koji sigurno treba da pobudi sledeći (sekundarni)
brojač.
Kompanija INTEL definiše ulazni impuls kao promenu stanja od Nisko (0)
- Visoko (1) - Nisko (0). Rezultat je da će 65 K impulsa biti propušteno
pre nego što se zadovolji ovaj uslov. Zbog toga postoji spoljni način
(vidi Metodu 2, dalje u tekstu) za korigovanje ovih hardverskih nivoa. Takođe, postoji i programsko (softversko) rešenje. Ova tehnika
koristi činjenicu da kada brojač prilikom dekrementiranja dođe
do
nule, isti prelazi u stanje pune skale (65.535) i odmah nastavlja
brojanje (Metoda 3)
.
Metoda
2:
a)
koristiti oba brojača
b)
potrebno je dodati (hardverski) invertor između izlaza prvog i
ulaza drugog
brojača; ovo menja “smisao” impulsa
c)
postaviti i čitati oba brojača prateći generalizovanu
proceduru impulsa
dodavanjem težinskog faktora stanja brojača.
|
Metoda 3:
a)
koristiti samo jedan brojač
b)
pratiti proceduru opisanu u Metodu 1
c)
čitati stanje brojača dovoljno često da bi se detektovao
prolaz kroz nulu (tzv. “prevrtanje
brojača”)
d)
za svaki prolazak kroz nulto stanje, dodati 65.535 stanju koje je
proračunato prema metodu 1.
|
Ovo
znači da je Total = (65.535 -
COUNT) + (65.535) × (broj prolaza kroz nulu).
Merenje frekvencije
(učestanosti)
Kaunter/Tajmer
je veoma pogodan za
merenje učestanosti. U zavisnosti od konkretne upotrebe, moguće je
postaviti nekoliko razlićitih konfiguracija, a one najpopularnije su
podržane softverskim drajverima ED-Link. Naćin rada je
sugerisan na sledećoj slici.
Slika 2. Kolo za merenje visokih
učestanosti
|
Ovo kolo broji ulazne
impulse za vreme poznatog vremenskog intervala (GATE vreme), kao što je
definisano generatorom takta. Vremena “otvaranja kaunterskih gejtova” (tzv. GATE vreme) se kreću u opsegu od 1 ms do jedne
sekunde. Jasno je da, što je duži merni interval, to će biti veći i
akumulirani broj (pri zadatoj ulaznoj učestanosti). Rezolucija merenja
kao i tačnost će biti proporcionalno uvećani. Maksimalna rezolucija
je ograničena činjenicom da se ne može akumulirati više od 65 K
impulsa u bilo kojem zadatom mernom intervalu. Praktični (korisni)
opseg učestanosti za kolo 8254 se kreće od oko 100 Hz do preko 8
Mhz.
Nešto drugačiji
alternativni pristup za merenje niskih učestanosti je prikazan na slici
Slici
3.
Merenje periode ponavljanja
Ovo kolo se razlikuje
od prethodnog po tome što broji takt impulse visoke frekvencije
za vreme trajanja nepoznatog ulaznog signala, što rezultuje u povećanoj
rezoluciji pri niskim učestanostima. U jednostavnom primeru koji je
prikazan na slici, vrednost brojanja je funkcija koeficijenata ispune
ulaznog signala, obzirom da do brojanja dolazi samo kada je nivo ulaznog
signala visok (1). Prema tome, tačna vrednost koeficijenta ispune mora
biti poznata, da bi se mogla tačno izračunati ulazna učestanost, pa
ako je ta informacija poznata, moguća su praktična merenja od malih
delova Hz do preko jednog kHz. U praksi, donja granica učestanosti
zavisi samo od vremena dopuštenog da se obavi merenje (na pr. da bi se
izmerila učestanost od 0,01 Hz, potrebno je 100 sekundi). Oba načina
merenja koja su ovde pomenuta, imaju maksimalnu rezoluciju od jednog
dela u 65 K. Ne zaboravite da ova rezolucija ne važi za
sve frekvencije u mernom opsegu. Programeri imaju priliku da iskoriste
sve tehnike
koje koriste pomenuti softverski drajveri, ali to nije direktno podržano
sa READ.FRQ komandom.
Slika
3. Kolo za merenje niskih
frekvencija.
|
Generisanje kontrolnih
signala i merenje brzine
Kao što je napred
navedeno, kolo sa Slike
3. zahteva poznati koeficijent ispune ulaznog signala. Vrlo
često
mi nemamo tu informaciju; na pr. kod merenja brzina (rotacionih masa,
traka konvejera, linearnih kretanja i sl.), koeficijent ispune se menja
u vremenu. Stoga je jedno od rešenja da se koristi kolo sa slike Slika
4.
Slika
4.
Kolo za generisanje kontrolnih signala.
|
Ovo kolo koristi
Flip-Flop da pretvori ulazni signal u pozitivni impuls čija je širina
(trajanje) jednaka periodi ponavljanja ulaznog signala. Prema tome, sada
je merenje nezavisno od vrednosti koeficijenta ispune. Jedan spoljni
logički ulaz se koristi za upravljanje rada generatora
kontrolnih signala. Za ovu svrhu se može koristiti i jedan od internih
digitalnih izlaznih kanala sa Kaunter/Tajmer modula, ili sa digitalne
sekcije modula ako je ivaj ima. Izbor učestanosti generatora takta zahteva
kompromis između dva oprečna faktora. Što je veća učestanost, to je
veća i rezolucija konačnog merenja. Sa druge strane, setimo se da je
brojač ograničen na maksimalni iznos od 65.535. “Brzina” ili
“broj ulaza u sekundi” je proporcionalan:
Učestanost (generator takta)
Količina izbrojanih impulsa
Programibilni impulsni
generator širokog opsega rada
Generator taktova na ED
modulima može da se programira tako da su izbor učestanosti i
koeficijenti ispune nezavisni jedan od drugog, izborom modula
delenja (N) kod oba upotrebljena brojača. Ako sa “N1” i
“N2” označimo module delenja za svaki pojedinačni
brojač,
i ako je frekvencija kristalnog oscilatora 8 MHz, tada je izlazna učestanost
generatora takta jednaka:
Pretpostavimo da se
izlazni talasni oblik sastoji od tzv. “niskog” i “visokog” logičkog
stanja, označenih sa t1 i t2. Tada je:
t1
= N1 × 125 ns , (125 ns = perioda XTAL oscilatora 8 MHz)
t2
= N1 × 125 ns × (N2 - 1)
Kombinovanjem modula
delenja N1 i N2 može se postići širok raspon
vrednosti frekvencija i koeficijenta ispune, pri čemu su oba parametra
nezavisna.
Slika 5. Impulsni generator sa promenljivim koeficijentom ispune i visokom
rezolucijom.
|
Slika
5, prikazuje elektronsko kolo
koje koristi dva brojača uz dodatak generatora taktova sa mogućnošću
nezavisnog izbora koeficijenta ispune, bez uticaja na zasebno
programiranu učestanost ponavljanja. Za to je potrebno definisati
četiri modula
delenja N:
N1
= modul delenja, generator takta, brojač 1
N2 = modul delenja, generator takta, brojač 2
N3 = modul delenja, nezavisni brojač (radi u režimu 2)
N4 = modul delenja, nezavisni brojač (radi u režimu 1) |
Učestanost i
koeficijent ispune se izračunavaju kao:
Slika 6. Talasni oblici generatora promenljivog koeficijenta ispune.
|
Merenje vremenskog intervala
između impulsa
Sledeći primeri u
praksi se vezuju za merenje vremenskog intervala između impulsa:
Čitav oblik se svodi
na generisanje odgovarajućeg kontrolnog (GATE) signala koji je
proporcionalan vremenskom intervalu između dva ulazna impulsa. Ovo je
sugerisano na slici Slika
7.
Slika
7. Osnovno
brojačko kolo.
|
Pre izbora
učestanosti
generatora takta korisnik mora da zna maksimalno vreme trajanja impulsa
koji se dovodi na gejt. Proizvod maksimalnog vremena impulsa i učestanosti ne sme
da pređe limit 16-bitnog brojača (65.535). Pa
ipak, što je veća učestanost generatora takta, to će i
rezolucija merenja vremenskog intervala biti veća. Slika pokazuje
jednostavno elektronsko kolo za pretvaranje niza ulaznih impulsa, na
jednoj liniji, u tzv. kontrolni (GATE) signal.
Ovo kolo je sporo,
obzirom na činjenicu da kada se jednom startuje (tzv. “arm”
signalom),
stanje brojača se mora pročitati pre dolaska trećeg ulaznog impulsa;
ako ovaj uslov nije ispunjen brojač će se ponovo restartovati što
će prouzrokovati pogrešno očitavanje istog. Alternativa za ovu
situaciju je da se startni (“arm”) signal vrati na logičko niski nivo posle drugog ulaznog impulsa. Ovo stanje se može
detektovati stalnim očitavanjem stanja brojača, dok se ne dobije
stabilan rezultat.
Slika 8. Jednostavno kolo za merenje vremenskih intervala.
|
Slika prikazuje varijaciju
prethodne šeme. Ovo je prihvatanje željenog vremenskog intervala
“lečovano” u samom elektronskom kolu. Prema tome, merenje traženog
vremenskog intervala je osigurano i bez intervencije računara.
Slika 9. Brzo kolo za merenje vremenskih intervala.
|
Kolo sa el. šeme
će
prihvatiti jedan kompletan ciklus iz niza ulaznih impulsa i sačekati da
kontrolni “Arm” signal prođe ciklus visoki - niski nivo i da zatim
nisko - visoki nivo promeni logička stanja, što je prikazano
na talasnim dijagramima na Slici 10.
Slika 10. Talasni dijagram šeme sa Slike 9.
|
Na oba prethodna
primera, merenje vremenskog intervala se radilo sa impulsima koji su
bili na istoj ulaznoj liniji. Slika prikazuje kolo koje obavlja istu funkciju ali sa nezavisnim
START i P ulazima, dok Slika
12., prikazuje talasne dijagrame ovog kola.
Slika 11. Dvoulazno kolo za merenje vremenskih intervala.
|
Ulaz A stvara START
impuls, dok ulaz B daje P impuls. Vreme između START/STOP impulsa je
praktično vreme koje kolo meri. Ova šema je pogodna za brzi rad.
Vremenski raspored je kontrolisan samim elektronskim komponentama,
tako da intervencija procesora nije potrebna za tačno merenje.
Slika 12. Vremenski dijagrami
kola sa Slike 11.
|
Generisanje paketa impulsa
Veoma
često je
potrebno da se proces prihvatanja podataka pobudi paketom, a ne
neprekidnim
nizom impulsa. Prednost rada sa ograničenim paketom impulsa se vidi
u smanjenju količine prihvaćenih podataka (nema bojazni od zagušenja
velikom količinom podataka), kao i u smanjenju vremena očitavanja na
različitim kanalima u sistemu za prihvat. Poslednje prednosti u radu sa
paketom impulsa nema kada se merenje vrši na samo jednom kanalu. Korišćenjem
generatora takta i dva brojača sa pomenutih modula, lako se mogu
generisati
paketi impulsa, a način povezivanja dat je na slici Slika
13.
Slika 13. Generisanje paketa impulsa.
|
Broj impulsa u svakom
paketu je određen brojem uprogramiranim u brojač 0.
Frekvencija u
samom paketu impulsa je jednaka učestanosti internog generatora takta
modula,dok je učestanost ponavljanja paketa jednaka frekvenciji
internog generatora takta podeljenoj sa stanjem brojača 1. Izlazni
signal se sastoji iz niza (paketa) pozitivnih impulsa, kao što se i
vidi iz talasnih dijagrama na slici Slika
14.
Slika
14. Talasni dijagram sa Slike 13.
|
Napajanje za logička
kola (+5V) se može dovesti iz računara pomoću prikladnog kabla.
Merenje položaja pomoću
optičkih enkodera
Poznati
rastući (inkrementalni) optički enkoder je pretvarač
koji pretvara mehaničko kretanje u električne
signale, detektujući svetlo koje prolazi kroz procepe rotacionog
diska a koji je pričvršćen na osi obrtnog tela.
Izlazna informacija sa ovog enkodera se može iskoristiti za dobijanje
pozicije obrtnog tela i/ili brzine kretanja odn. njegovog obrtanja.
Takođe, derivacijom (tj. izračunavanjem prvog izvoda) brzine, može se dobiti
i informacija o ubrzanju (akceleraciji). Rastući - inkrementalni
enkoderi daju dva niza pravougaonih impulsa koji se razlikuju po fazi
(vidi sliku Slika
15).
Slika 15. Kvadratni signali
tipičnog inkrementalnog enkodera.
|
Uzimajući u obzir da
su ovi signali u kvadraturi, pravilnim dekodovanjem i brojanjem ovih
impulsa mogu se tačno odrediti broj obrtanja (brzina), smer kretanja,
kao i relativni položaj ose enkodera.
Slika
16. prikazuje elektronsko
kolo koje omogućava pravilno dekodovanje/dešifrovanje niza impulsa,
sa ciljem da se generišu pravilni signali.
Impulsi se broje sa
dva brojača, jedan za impulse dobijene iz smera kretanja u smeru
kazaljke na satu (CW), a drugi za suprotne impulse (CCW-smer). Sadržaj
oba brojača se upoređuju programski (SW), tako da se relativni položaj
ose enkodera dobija iz njihove razlike.
* OR kolo sa invertovanim
ulazima je ekvivalentno logičkom NAND kolu
Slika 16. Dekodersko kolo za
optički enkoder
|
Ovaj članak će biti od koristi naročito onim korisnicima koji imaju sledeće module:
A2-07-CT, kaunter/tajmer za
A2, PC kontroler
A2-28-AD,
kaunter/tajmer sekcija ne podržava merenje frekvencije
A2-28-IS,
kaunter/tajmer sekcija ne podržava merenje frekvencije
|