24.6. Contorul în inel Johnson
24.6. Contorul în inel Johnson
Contorul Ring Johnson constă dintr-un număr de contoare conectate împreună cu ieșirea trimisă înapoi la intrare.
În tutorialul precedent am văzut că, dacă aplicăm un semnal de date serial la intrarea unui registru de deplasare Serial-in to Serial-out, aceeași secvență de date va ieși din ultimul flip-flop din lanțul registrului.
Această mișcare serială de date prin registru are loc după un număr prestabilit de cicluri de ceas, permițând astfel registrului SISO să acționeze ca un fel de circuit de întârziere la semnalul original de date de intrare.
Dar, dacă ar fi să se conecteze ieșirea acestui registru de deplasare înapoi la intrarea sa, astfel încât ieșirea de la ultima flip-flop, QD devine intrarea primului flip-flop, DA. Atunci, vom avea un circuit cu buclă închisă care "recirculă" același bit de DATE într-o buclă continuă pentru fiecare stare a secvenței sale și aceasta este operația principală a unui contor Ring.
Deci, prin reluarea ieșirii la intrare (feedback) putem converti un circuit registru de deplasare standard într-un contor ring. Considerați circuitul de mai jos.
Contor Ring pe 4 biți
Exemplul de contor Ring sincron de mai sus este presetat astfel încât un singur bit de date din registru să fie setat la logic "1" cu toți ceilalți biți resetați la "0". Pentru a realiza acest lucru, un semnal "CLEAR" este aplicat în primul rând tuturor flip-flop-urilor pentru a "RESETA" ieșirile lor la un nivel "0" logic și apoi se aplică un impuls "PRESET" la intrarea primului flip -flop (FFA) înainte de aplicarea impulsurilor de ceas. Acesta introduce o singură valoare logic "1" în circuitul contorului Ring.
Deci, pe fiecare impuls de ceas succesiv, contorul circulă același bit de date între cele patru flip-flop-uri din nou și din nou în jurul "inelului" la fiecare patru cicluri de ceas. Dar pentru a cicliza datele corect în jurul contorului trebuie mai întâi să "încărcăm" contorul cu un model de date adecvat, deoarece toate "0" logic sau toate "1" logic scoase la fiecare ciclu de ceas ar face invalid contorul ring.
Acest tip de mișcare a datelor se numește "rotație" și, ca registrul de deplasare anterior, efectul mișcării bitului de date de la stânga la dreapta printr-un contor inel poate fi prezentat grafic, după cum urmează, împreună cu diagrama sa de timp:
Mișcarea rotativă a unui contor Ring
Deoarece exemplul contorului inel prezentat mai sus are patru stări distincte, este de asemenea cunoscut ca un contor "modulo-4" sau "mod-4", fiecare ieșire de flip-flop având o frecvență egală cu un sfert (1/4) din cea a frecvenței de ceas principală.
"MODULO" sau "MODULUS" unui contor este numărul de stări pe care le contorizează contoarele sau secvențe înainte de a se repeta și un contor ring poate fi făcut pentru a scoate orice număr modulo. Un contor ring "mod-n" va necesita "n" flip-flop-uri conectate împreună pentru a circula pe un singur bit de date, asigurând "n" diferite stări de ieșire.
De exemplu, un contor ring mod-8 necesită opt flip-flop-uri și un contor ring mod-16 ar necesita șaisprezece flip-flop-uri. Dar, ca în exemplul de mai sus, doar patru din cele șasesprezece stări posibile sunt folosite, ceea ce face contorul ring să fie foarte ineficient în ceea ce privește utilizarea stărilor lor de ieșire.
Contor Ring Johnson
Contorul Ring Johnson sau „Contor Ring Twisted“, este un alt registru de deplasare cu feedback, exact la fel cu contorul ring standard de mai sus, cu excepția faptului că de această dată ieșirea inversată Ǭ din ultimul flip-flop este acum conectată înapoi la intrarea D a primul flip-flop, după cum se arată mai jos.
Principalul avantaj al acestui tip de contor inel este că are nevoie doar de jumătate din numărul de flip-flop-uri în comparație cu contorul inel standard, atunci numărul său modulo este redus la jumătate. Deci, un contor Johnson "n-etaje" va circula un singur bit de date, oferind secvențe de 2n stări diferite și, prin urmare, poate fi considerat ca un "contor mod-2n".
Contor Ring Johnson pe 4 biți
Această inversare a lui Q înainte de a fi trimisă înapoi la intrarea D determină contorul să "numere" în mod diferit. În loc să numere printr-un set fixat de modele ca un contor inel normal, cum ar fi pentru un contor pe 4 biți, "0001" (1), "0010" (2), "0100" (4), "1000" (8) și repetă, contorul Johnson numără în sus și apoi în jos, pe măsură ce "1" logic inițial trece prin el în dreapta, înlocuind "0" logic precedent.
Un contor inel Johnson pe 4 biți trece blocuri de patru "0" logic și apoi patru "1" logic, producând astfel un model pe 8 biți. Deoarece ieșirea inversată Ǭ este conectată la intrarea D, acest model de 8 biți se repetă continuu. De exemplu, "1000", "1100", "1110", "1111", "0111", "0011", "0001", "0000" și acest lucru este demonstrat în tabelul de mai jos.
Tabel de adevăr pentru un contor Ring Johnson de 4 biți
Pe lângă numărarea sau rotirea datelor într-o buclă continuă, contoarele inel pot fi utilizate și pentru a detecta sau a recunoaște diverse modele sau valori de numere într-un set de date. Prin conectarea unor porți logice simple, cum ar fi AND sau OR, la ieșirile flip-flop-urilor, circuitul poate fi făcut pentru a detecta un număr sau o valoare setată.
Contoarele Ring Johnson standard cu 2, 3 sau 4 etaje pot fi utilizate pentru a divide frecvența semnalului de ceas prin modificarea conexiunilor lor de feedback și sunt disponibile și ieșiri divide-cu-3 sau divide-cu-5.
De exemplu, un contor Ring Johnson cu 3 etaje ar putea fi utilizat ca generator de undă pătrată trifazat, cu faze defazate la 120 grade, prin conectarea la ieșirile de date la A, B și NOT-B.
Contorul standard Johnson cu 5 etaje, cum ar fi CD4017 disponibil în mod obișnuit, este folosit în general ca un circuit de contor/divizor decadic sincron.
Alte combinații, ca circuitul mai mic, cu două etaje, numit și Oscilator sau Generator "Quadrature" (sinus/cosinus), pot fi utilizate pentru a produce patru ieșiri individuale care sunt fiecare la 90 de grade dafazate în raport unele cu fiecare altele pentru a produce un semnal de sincronizare în 4 faze, după cum se arată mai jos.
Generator de cuadratură pe 2 biți
Deoarece cele patru ieșiri, de la A la D sunt defazate cu 90 de grade una față de cealaltă, ele pot fi utilizate cu circuite suplimentare, pentru a comanda un motor pas cu pas în două faze pentru controlul poziției sau abilitatea de a roti un motor la o anumită locație, după cum se arată mai jos.
Controlul motorului pas cu pas
Circuitul motorului pas cu pas cu două faze (unipolar)
Viteza de rotație a motorului pas cu pas va depinde în principal de frecvența de ceas, iar circuitele suplimentare ar fi necesare pentru a acționa cerințele de "putere" ale motorului. Întrucât această secțiune este destinată doar să ofere cititorului o înțelegere de bază a contoarelor Ring Johnson și a aplicațiilor sale, alte site-uri bune explică în detaliu tipurile și cerințele de acționare ale motoarelor pas cu pas.
Contoarele Ring Johnson sunt disponibile în formatul standard TTL sau CMOS IC, cum ar fi CD4017 5-Stage, decade Johnson ring counter with 10 active HIGH decoded outputs sau CD4022 4-stage, divide-by-8 Johnson counter with 8 active HIGH decoded outputs.