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:


 

  Niska brzina, vreme između impulsa na istoj liniji.
  Velika brzina, vreme između dva impulsa na istoj liniji.
 Velika brzina, vreme između impulsa na različitim linijama.


Č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



  © 1982 - Electronic Design
  Makenzijeva bb-Pejton, Beograd
Tel:  +381 11 308 50 30
Fax: +381 11 308 50 31
Tel: 011 2 450 480
Tel: 011 308 74 59
   www.ed.rs
  ed@ptt.rs