Skaitītājs

Vikipēdijas lapa
Pārlēkt uz: navigācija, meklēt

Skaitītājs ir digitālā ierīce, kuras pielietojums ir impulsu skaitīšana. Darbības laikā skaitītājs maina savu stāvokli noteiktā secībā. Atļauto stāvokļu skaitu sauc par skaitīšanas moduli K_S. Viens no iespējamiem stāvokļiem tiek uzskatīts par sākuma stāvokli. Ja skaitītājs sāka savu darbību no sākuma stāvokļa, tad katrs impulss, kurš ir pēc kārtas vienāds ar skaitīšanas moduli, atkal uzstādina skaitītāju sākumā stāvoklī, un skaitītāja izejā parādās pārnešanas bits vai aizņemšanas bits.

Skaitītāju veidi[labot šo sadaļu | labot pirmkodu]

Skaitītājus var sadalīt pēc to apstrādāšanas koda un pēc skaitīšanas virziena. Gandrīz visi šodien izmantojamie skaitītāji ir bināri skaitītāji, kuri apstrādā 0 un 1 signālus. Ja kodi tiek izvietoti pieaugošā secībā, tad tādus skaitītājus sauc par summējošiem (Up-counter), bet ja kodi ir izvietoti dilstošā secībā, tad tādus sauc par samazinošiem (Down-counter). Skaitītājus, kuriem skaitīšanas virziens varētu mainīties, sauc par reversīviem skaitītājiem (Up/Down counter).
Ja skaitītāja darbībai ir nepieciešams sinhronizētais signāls, tad tādus skaitītājus sauc par sinhronizētiem (visi trigeri pārslēdzas vienlaicīgi). Savukārt skaitītājus, kuri strādā bez sinhronizētā signāla sauc par asinhroniem skaitītājiiem (visi trigeri pārslēdzas dažādos laika brīžos).
Vēl skaitītāji dalās pēc savas struktūras uz pakāpeniskiem, paralēliem un pakāpeniski-paralēliem. Galvenā atšķirība ir saistīta ar to, kādā veidā tiek sniegtie impulsi uz skaitītāja pozīcijas ieejām. Pakāpeniskā veida skaitītājos impulss tiek sniegts tikai uz pirmās pozīcijas ieeju, bet no tas izejas pāriet uz otrās pozīcijas ieeju. Paralēlveida skaitītājiem skaitīšanas impulsi tiek sniegti uz visu pozīciju ieejām vienlaicīgi, bet skaitītāja iekšējas struktūras dēļ pozīcijas vērtības tika mainītas nepieciešamajos gadījumos.

Asinhronais skaitītājs[labot šo sadaļu | labot pirmkodu]

Asinhronus binārus skaitītājus var realizēt uz T, JK vai D veida trigeriem. Piemēram, ja skaitītājs ir realizēts uz JK trigeriem ar lecošo fronti, tad iejās J un K ir jābūt augstā līmeņa signālam vai loģiskam 1. Šajā stāvoklī JK trigeris mainīs savējo stāvokli uz pretējo ar katru takta impulsu, līdz ar to kādu no izejam Q (summējošiem) vai  \bar Q (samazinošiem) var izmantot kā takta signālu nākamajam JK trigerim. JK trigeri asinhronā pakāpenveida skaitītājā strādā ar dažādam frekvencēm. Vislielākā frekvence ir pirmajam trigerim, bet pārslēgšanas frekvence katram nākamam trigerim ir divreiz mazāka.
Izmantojot n trigerus, skaitītājs varēs saskaitīt n impulsa periodus, sākot no 0 un līdz 2^n-1.

Četru bitu summējošā asinhrona skaitītāja izeju stāvokļu tabula:

Example alt text
4 bitu summējošā asinhrona skaitītāja realizācijas shēma uz JK trigeriem ar lecošo fronti
Impulsa
perioda
numurs
Q_A Q_B Q_C Q_D
0. 0 0 0 0
1. 0 0 0 1
2. 0 0 1 0
3. 0 0 1 1
4. 0 1 0 0
5. 0 1 0 1
6. 0 1 1 0
7. 0 1 1 1
8. 1 0 0 0
9. 1 0 0 1
10. 1 0 1 0
11. 1 0 1 1
12. 1 1 0 0
13. 1 1 0 1
14. 1 1 1 0
15. 1 1 1 1

Lai izveidotu samazinošo skaitītāju ir jāizmanto  \bar Q izejas perioda skaita noskaidrošanai.
Trīs bitu samazinošā asinhrona skaitītāja izeju stāvokļu tabula:

Example alt text
3 bitu samazinošā asinhrona skaitītāja realizācijas shēma uz JK trigeriem ar lecošo fronti
Impulsa
perioda
numurs
Q_A Q_B Q_C
0. 1 1 1
1. 1 1 0
2. 1 0 1
3. 1 0 0
4. 0 1 1
4. 0 1 0
6. 0 0 1
7. 0 0 0

Reversīvā skaitītāja realizācijai, kurš var strādāt gan summēšanas, gan samazināšanas režīmā, ir nepieciešama papildus loģiskā shēma, kura nodrošinātu trigera Q izejas signāla padošanu nākama trigera takta signāla ieejai summēšanas gadījumā un \bar Q atņemšanas gadījumā. Uzstādot ieejā U/\bar D loģisko vieninieku skaitītājs strādās summēšanas režīmā, bet ar loģisko nulli tas strādās atņemšanas režīmā.
Trīs bitu reversīvā asinhrona skaitītāja izeju stāvokļu tabula:

Example alt text
3 bitu reversīvā asinhrona skaitītāja realizācijas shēma uz JK trigeriem ar lecošo fronti
U/\bar D Impulsa
perioda
numurs
Q_A Q_B Q_C
0 0. 1 1 1
0 1. 1 1 0
0 2. 1 0 1
0 3. 1 0 0
0 4. 0 1 1
0 5. 0 1 0
0 6. 0 0 1
0 7. 0 0 0
1 0. 0 0 0
1 1. 0 0 1
1 2. 0 1 0
1 3. 0 1 1
1 4. 1 0 0
1 5. 1 0 1
1 6. 1 1 0
1 7. 1 1 1

Ir iespējams arī izveidot skaitītājus, kuri var uzsākt skaitīšanu ar noteiktu perioda numuru un arī beigt sasniedzot noteikto perioda numuru. To var realizēt, izmantojot speciālas ieejas JK trigeros (overriding inputs). Viena no šiem ieejam ir S jeb Set (uzstādīšana) ieeja, kurai ir aktīvs zems līmenis. Tas nozīme sniedzot uz to loģisko nulli neatkarīgi no J, K un CLK ieejas, izejā Q vienmēr būs 1. Otrā ir R jeb Reset (dzēšana) ieeja, tai arī ir aktīvs zems līmenis. Kad uz šo ieeju tiek sniegta loģiskā nulle, neatkarīgi no ieejām J,K un CLK, izejā Q būs nulle.

Example alt text
Decimālā summēšanas asinhrona skaitītāja realizēšanas shēma uz JK trigeriem ar lecošo fronti un ar papildus loģiskiem elementiem


Tādā veidā, piemēram, var izveidot decimālo skaitītāju, kuram ir jāskaita no 0 līdz 9 un jāpārslēdzas kad būs sasniegts 10. impulsa signāls (kad attiecīgi trigeru izejās ir 1010 binārais kods) un atkal uzsākt skaitīšanu: \underbrace{ 0,1,\cdots,9 }_{10}. Realizācijai būs jāizmanto vienu NAND elementu, kurš sniegtu loģisko nulli uz katra trigera R ieeju gadījumā kad būs sasniegta 1010 kombinācija.

Sinhronais skaitītājs[labot šo sadaļu | labot pirmkodu]

Asinhrono skaitītāju trūkums ir tas, ka palielinot trigeru skaitu palielinās signāla aizkavēšana. Kopīga signāla aizkavēšana skaitītājam ar n trigeriem ir vienāda ar n \times T_P, kur T_P ir viena trigera aiztures laiks. Tādā gadījumā nedrīkst sniegt impulsus, kura periods ir īsāks par n \times T_P, citādāk skaitītājs nevarēs saskaitīs šādu impulsu.

Example alt text
4 bitu summēšanas sinhrona skaitītāja realizēšanas shēma uz JK trigeriem ar lecošo fronti un ar papildus loģiskiem elementiem


Lai risinātu šo problēmu var izmantot sinhronus skaitītājus, kur impulsa signāls ir sniegts uz visiem trigeriem vienlaicīgi. Salīdzinot ar asinhroniem skaitītājiem, sinhroniem ir nepieciešami papildus loģiskie elementi. Piemēram, realizējot 4 bitu summēšanas sinhrono skaitītāju, trigerim B (skatīt attēlu) būs jāskaita impulsu, tikai tādā gadījumā, kad trigera C izeja Q maina savu stāvokli no 1 uz 0. Trigerim A būs jāskaita tad kad B=C=1 pāriet uz stāvokli B=C=0. Līdzīgi arī var realizēt skaitītāju ar vairākiem bitiem. Stāvokļu tabula sinhroniem skaitītājiem ir tāda pati kā asinhroniem.