- Ce este Shift Register:
- Tipuri de registre în electronică digitală
- 1. Serial in - Registre de schimbare în serie
- 2. Serial in - Out Shift Register paralel
- 3. Paralel in - Serial out Shift Register
- 4. Paralel in - Registrul de schimbare paralel out
- 5. Registre de schimbare bidirecționale
- 6. Contoare
- Aplicații ale registrelor Shift
Ce este Shift Register:
Shift Registers sunt circuite logice secvențiale, capabile de stocare și transfer de date. Acestea sunt alcătuite din flip flop care sunt conectate în așa fel încât ieșirea unui flip flop ar putea servi drept intrare a celuilalt flip-flop, în funcție de tipul de registre de schimbare care sunt create.
Registrele de schimbare sunt practic un tip de registru care are capacitatea de a transfera („deplasa”) date. Registrele sunt dispozitive de stocare generice care sunt create prin conectarea unui număr specific de flip-flops împreună în serie, iar cantitatea de date (numărul de biți) care pot fi stocate de registru este întotdeauna direct proporțională cu numărul de flip-flops, ca fiecare flip flop este capabil să stocheze un singur bit la un moment dat. Când flip-flop-urile dintr-un registru sunt conectate în așa fel încât ieșirea unui flip-flop devine intrarea celuilalt, se creează un registru de schimbare.
Flip Flops sunt dispozitive cu o operațiune similară cu cea a unui zăvor. Poate fi denumit un vibrator bistabil care se poate deplasa între două stări (0 sau 1) și este capabil să stocheze date în biți. Datele noi sunt citite într-un flip flop cu fiecare ciclu de ceas și datele anterioare trimise la ieșire.
Registre de schimburi Alcătuiești dintre care flip-flops?
Totuși, acest lucru depinde de tipul de flip flop, întrucât relația de intrare, ieșire și ciclu de ceas dintre flip flop variază. Există diferite tipuri de flip flops, dar cele mai frecvent utilizate în crearea registrelor de schimbare sunt flip flops D (Delay).
Pentru funcționarea basculantelor D, ceea ce le face atât de dezirabile pentru registrele de schimbare, ori de câte ori există o schimbare pe ceasul unui basculant D (fie margine ascendentă sau descendentă, în funcție de specificațiile baschetului). Datele de la ieșirea „Q” devin aceleași date cu cele de la intrarea „D”. Ieșirea „Q” a flip-flop-ului va rămâne la acea valoare până la următorul ciclu de ceas, unde apoi se va schimba din nou la valoarea (High sau low, 1 sau 0) la intrare.
Acum, că știm ce sunt registrele Sift, vom proceda la o scufundare mai profundă în tipurile de flip-flop și aplicațiile lor. Dar înainte de aceasta, pentru a oferi o expunere mai practică în cazul în care sunt utilizate registrele de schimbare, aruncăm o privire la popularul registru de schimbare 74HC595 pe care l-am folosit cu diferite microcontrolere pentru a interfața un afișaj sau o secvență de LED-uri.
- Shift Register cu 74HC595 cu Arduino pentru a controla o secvență de LED-uri
- Shift Register cu ESP32 pentru interfața afișajului cu 7 segmente
- Shift Register cu Raspberry Pi pentru a controla mai multe LED-uri
- Shift Register cu PIC pentru a controla secvența LED-urilor
Tipuri de registre în electronică digitală
Registrele de schimbare sunt clasificate în tipuri în principal în funcție de modul lor de funcționare, fie serial, fie paralel.
Există șase (6) tipuri de bază de registre de deplasare care sunt enumerate mai jos, deși unele dintre ele pot fi împărțite în continuare pe baza direcției fluxului de date, fie deplasare la dreapta, fie deplasare la stânga.
1. Serial in - Serial out Shift Register (SISO)
2. Serial In - Registrul de deplasare în paralel (SIPO)
3. Paralel in - Register Shift Parallel out (PIPO)
4. Paralel in - Serial out Shift Register (PISO)
5. Registre de schimbare bidirecționale
6. Contoare
1. Serial in - Registre de schimbare în serie
Serial in - Registrele de schimbare a ieșirii seriale sunt registre de schimbare care transmit în serie date (un bit pe ciclu de ceas) și transmite date în același mod, unul după altul.
Mai jos este prezentat un simplu registru de intrare serial - ieșire serială pe 4 biți, registrul este format din 4 flip-flops și detalierea modului în care funcționează este explicată mai jos;
La pornire, registrul de schimbare este mai întâi șters, forțând ieșirile tuturor flip-flop-urilor la zero, datele de intrare sunt apoi aplicate la intrare în serie, câte un bit pe rând.
Există două modalități de bază de transferare a datelor printr-un registru de schimbare SISO;
- Citire nedistructivă
- Citire distructivă
- Citire nedistructivă
Bazate pe citire nedistructivă, registrele de schimbare au întotdeauna un mod de operare citire / scriere cu o linie suplimentară adăugată pentru a permite trecerea între modurile operaționale de citire și scriere.
Când dispozitivul se află în modul operațional „scriere”, registrul de deplasare deplasează fiecare dată câte un bit la un moment dat, comportându-se exact ca versiunea de citire distructivă și astfel datele se pierd, dar când modul operațional este comutat pe „citit”, datele care sunt deplasate la intrare se întorc în sistem și servesc drept intrare în registrul de deplasare. Acest lucru vă asigură că datele rămân mai lungi (atâta timp cât rămân în modul de citire)
- Citire distructivă
Pentru citirile distructive, datele sunt complet pierdute, deoarece flip-flopul doar mută informațiile. Presupunând pentru registrul de schimbare de 4 biți de mai sus, dorim să trimitem cuvântul „1101”. După ștergerea registrului de schimbare, ieșirea tuturor flip-flop-urilor devine 0, deci în timpul primului ciclu de ceas pe măsură ce aplicăm aceste date (1101) în serie, ieșirile flip-flop-urilor arată ca tabelul de mai jos.
Primul ciclu de ceas:
FF0 |
FF1 |
FF2 |
FF3 |
1 |
0 |
0 |
0 |
Al doilea ciclu de ceas:
FF0 |
FF1 |
FF2 |
FF3 |
0 |
1 |
0 |
0 |
Al treilea ciclu de ceas:
FF0 |
FF1 |
FF2 |
FF3 |
1 |
0 |
1 |
0 |
Al patrulea ciclu de ceas:
FF0 |
FF1 |
FF2 |
FF3 |
1 |
1 |
0 |
1 |
2. Serial in - Out Shift Register paralel
Al doilea tip de registru de schimbare pe care îl vom lua în considerare este registrul de schimbare Serial in - Parallel out, cunoscut și sub numele de SIPO Shift Register. Aceste tipuri de registre de deplasare sunt utilizate pentru conversia datelor de la serial la paralel. Datele apar una după alta pe fiecare ciclu de ceas și pot fi schimbate și înlocuite sau citite la fiecare ieșire. Aceasta înseamnă că atunci când datele sunt citite, fiecare bit citit devine disponibil simultan pe linia de ieșire respectivă (Q0 - Q3 pentru registrul de schimbare pe 4 biți prezentat mai jos).
Un registru de intrare serial în 4 biți - Paralel out shift register este ilustrat în imaginea de mai jos.
Mai jos este prezentat un tabel care arată modul în care datele sunt schimbate din serial în –registru de schimbare de 4 biți în paralel, cu datele în 1001.
clar |
FF0 |
FF1 |
FF2 |
FF3 |
1001 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
0 |
1 |
0 |
0 |
|
0 |
0 |
1 |
0 |
|
1 |
0 |
0 |
1 |
Un bun exemplu al registrului de deplasare serial in - parallel out este registrul de deplasare 74HC164, care este un registru de deplasare pe 8 biți.
Dispozitivul are două intrări de date seriale (DSA și DSB), opt ieșiri de date paralele (Q0 la Q7). Datele sunt introduse în serie prin DSA sau DSB și oricare dintre intrări poate fi utilizată ca activare HIGH activă pentru introducerea datelor prin cealaltă intrare. Datele sunt deplasate la tranzițiile LOW-to-HIGH ale intrării ceasului (CP). Un LOW pe intrarea master reset (MR) șterge registrul și forțează toate ieșirile LOW, independent de alte intrări. Intrările includ diode cu clemă. Acest lucru permite utilizarea rezistențelor de limitare a curentului pentru interfața intrărilor la tensiuni mai mari de VCC.
3. Paralel in - Serial out Shift Register
În registrul de deplasare paralel în - ieșire serială, datele sunt furnizate în paralel, de exemplu, luați în considerare registrul de 4 biți prezentat mai jos.
Acest registru poate fi utilizat pentru a stoca și deplasa un cuvânt pe 4 biți, cu intrarea de control write / shift (WS) care controlează modul de funcționare al registrului shift. Când linia de control WS este scăzută (Mod Scriere), datele pot fi scrise și conectate prin D0 la D3. Pentru a deplasa datele în serie, linia de control WS este adusă HIGH (modul Shift), registrul mută apoi datele la intrarea ceasului. Registrul de schimbare paralel în serie este, de asemenea, numit registru de schimbare PISO.
Un bun exemplu de registru de schimbare paralelă în - ieșire serială este registrul de schimbare pe 8 biți 74HC165, deși poate fi operat și ca registru de deplasare în ieșire serială.
Dispozitivul are o intrare de date seriale (DS), opt intrări de date paralele (D0 la D7) și două ieșiri seriale complementare (Q7 și Q7 '). Când intrarea de încărcare paralelă (PL) este scăzută, datele de la D0 la D7 sunt încărcate în registrul de schimbare asincron. Când PL este HIGH datele intră în registru în serie la DS. Când intrarea de activare a ceasului (CE) este LOW datele sunt deplasate pe tranzițiile LOW-to-HIGH ale intrării CP. Un HIGH pe CE va dezactiva intrarea CP. Intrările sunt tolerante la supratensiune până la 15 V. Acest lucru permite dispozitivului să fie utilizat în aplicații de deplasare de nivel ÎNALT până la LOC.
Diagrama funcțională a registrului de schimbare este prezentată mai jos;
Diagrama de sincronizare a sistemului este așa cum se arată în imaginea de mai jos;
4. Paralel in - Registrul de schimbare paralel out
Pentru registrul de deplasare paralel în paralel, datele de ieșire din ieșirile paralele apar simultan pe măsură ce datele de intrare sunt introduse. Acest tip de registru de deplasare este numit și registru de schimbare PIPO.
Datele de intrare la fiecare dintre pinii de intrare de la D0 la D3 sunt citite în același timp când dispozitivul este ceas și în același timp, datele citite de la fiecare dintre intrări sunt transmise la ieșirea corespunzătoare (de la Q0 până la Q3).
Registrul de deplasare 74HC195 este un registru de deplasare multifuncțional, care este capabil de a lucra în cele mai multe dintre modurile descrise de toate tipurile care le - am discutat până acum mai ales ca o paralelă în - paralel în registrul de deplasare.
5. Registre de schimbare bidirecționale
Registrele de schimbare pot efectua fie transferul de date la dreapta, fie la stânga, sau ambele, în funcție de tipul de registru de schimbare și de configurația lor. În operațiile de deplasare la dreapta, datele binare sunt împărțite la două. Dacă această operațiune este inversată, datele binare se înmulțesc cu două. Cu o aplicație adecvată a logicii combinaționale, se poate configura un registru de comutare în serie pentru a efectua ambele operații.
Luați în considerare registrul de 4 biți din imaginea de mai jos. Câteva porți NAND sunt configurate ca porți SAU și sunt utilizate pentru a controla direcția de deplasare, fie la dreapta, fie la stânga.
Linia de control stânga / scriere este utilizată pentru a determina direcția spre care sunt deplasate datele, fie la dreapta, fie la stânga.
Registrul de deplasare bidirecțional 74HC194 este un bun exemplu. Registrul poate funcționa în toate modurile și variațiile de intrare sau ieșire seriale și paralele. Diagrama funcțională a 74HC194 care evidențiază linia de control, ceasul, pinii de intrare și ieșire este prezentată mai jos.
Schema de sincronizare a dispozitivului este, de asemenea, prezentată mai jos. Vă va ajuta mai bine să înțelegeți modul în care linia de control controlează acțiunile registrului.
6. Contoare
Contoarele, numite uneori registre de schimbare prin rotire, sunt practic registre de schimbare cu ieșirile lor alimentate înapoi în dispozitiv ca intrări în așa fel încât să creeze un anumit model. Aceste tipuri de registre sunt denumite contoare datorită tiparului și secvenței pe care le prezintă. Cel mai popular tip de contoare de registre de schimbare sunt contoare inelare.
Ring Counter
Contoarele inelare sunt practic un tip de contor în care ieșirea celui mai semnificativ bit este alimentată înapoi ca intrare în bitul cel mai puțin semnificativ. Un contor de inele de 4 biți este ilustrat în diagrama de mai jos folosind D flip flops.
Când se aplică impulsul ceasului, ieșirea fiecărei etape este deplasată la următoarea și ciclul continuă. Când claritatea este ridicată, toate bistabilele, cu excepția primei (care este setată la 1), sunt resetate la zero.
Aplicații ale registrelor Shift
Registrele de schimbare sunt utilizate în multe aplicații dintre care unele sunt;
1. Conversie paralelă la serie, unde sunt utilizate pentru a reduce numărul de fire sau linii necesare pentru comunicația între două dispozitive, deoarece comunicarea serială necesită în general doar două fire în comparație cu paralelele care depind de numărul de biți trimiși.
2. Extindere IO pentru microcontrolere. În electronica modernă, pinii IO ai microcontrolerelor sunt numiți proprietăți imobiliare și este nevoie cât mai mult pentru anumite aplicații, cum ar fi pornirea a 100 de leduri sau citirea a 100 de comutatoare reed cu ceva de genul unui Arduino sau a microcontrolerului Atmeg328p. De exemplu, schema de circuit de mai jos ilustrează modul în care un registru de deplasare de la serie la paralel poate fi utilizat pentru a controla 8 LED-uri, folosind doar trei dintre pinii IO ai microcontrolerelor.
3. Sunt folosite în registre de stare care sunt utilizate în dispozitive secvențiale. La fel ca o mașină de memorie finită, următoarea stare a dispozitivului este întotdeauna determinată prin deplasarea și inserarea de date noi în poziția anterioară.
4. O altă aplicație principală se găsește în Întârzieri de timp. Registrele de schimbare sunt utilizate pentru întârzierea timpului în dispozitive, ora fiind reglată de ceas sau crescută prin registre de schimbare în cascadă sau redusă luând ieșirea de la un bit semnificativ mai mic.
Întârzierea în timp este de obicei calculată folosind formula;
t = N * (1 / fc)
N este numărul de flip flop la care se face ieșirea, Fc este frecvența semnalului de ceas și t, care este valoarea determinată este cantitatea de timp pentru care ieșirea va fi întârziată.
Când selectați un registru de schimbare pentru o anumită sarcină din cauza gamei largi și tastați-l este important să selectați unul care se potrivește nevoilor dvs. particulare, luând în considerare lucruri precum, modul de funcționare, dimensiunea bitului (numărul de flip flops), dreapta sau stânga sau bidirecțional etc.
Unele dintre cele mai populare registre de schimbare sunt;
- 74HC 194 Registr de deplasare universal bidirecțional pe 4 biți
- 74HC 198 Registr de deplasare universal bidirecțional pe 8 biți
- 74HC595 Serial-In-Parallel-Out registru de schimbare
- 74HC165 Registr de deplasare paralel-în-serie
- IC 74291 Registr de deplasare universal pe 4 biți, contor binar sus / jos, sincron.
- IC 74395 Registr de deplasare universal pe 4 biți cu ieșiri în trei stări.
- IC 74498 Registr de deplasare bidirecțională pe 8 biți cu intrări paralele și ieșiri în trei stări.
- IC 74671 Registr de deplasare bidirecțională pe 4 biți.
- IC 74673 16-bit serial-in serial-out shift registre cu registre de stocare de ieșire.
- IC 74674 16-bit paralel-in serial-out shift registre cu ieșiri în trei stări.
Există mai multe, trebuie doar să găsiți care se potrivește cel mai bine aplicației dvs.
Mulțumesc pentru lectură, până data viitoare.