- Wat is Shift Register:
- Soorten registers in digitale elektronica
- 1. Serie in - Serie uit schuifregisters
- 2. Serie in - parallel uit schuifregister
- 3. Parallel in - Serie uit schuifregister
- 4. Parallel in - Parallel uit schuifregister
- 5. Bidirectionele schuifregisters
- 6. Tellers
- Toepassingen van schuifregisters
Wat is Shift Register:
Schuifregisters zijn sequentiële logische schakelingen die gegevens kunnen opslaan en overdragen. Ze bestaan uit flip-flops die zo zijn aangesloten dat de uitgang van de ene flip-flop kan dienen als de ingang van de andere flip-flop, afhankelijk van het type schuifregisters dat wordt gemaakt.
Schuifregisters zijn in feite een soort register die gegevens kunnen overdragen ("verschuiven"). Registers zijn generieke opslagapparaten die worden gemaakt door een bepaald aantal flip-flops in serie met elkaar te verbinden en de hoeveelheid gegevens (aantal bits) die door het register kan worden opgeslagen, is altijd recht evenredig met het aantal flip-flops, aangezien elke flip-flops flop kan slechts één bit tegelijk opslaan. Wanneer de flip-flops in een register zodanig zijn aangesloten dat de uitgang van de ene flip-flop de ingang van de andere wordt, ontstaat er een schuifregister.
Flip Flops zijn apparaten met een werking die vergelijkbaar is met die van een grendel. Het kan een bistabiele vibrator worden genoemd die tussen twee toestanden (0 of 1) kan bewegen en in staat is om gegevens in bits op te slaan. Nieuwe gegevens worden bij elke klokcyclus in een flip-flop ingelezen en de vorige gegevens worden aan de uitgang verzonden.
Shift Registers Bestaat uit welke flip-flops?
Dit hangt echter af van het soort flip-flop, aangezien de input-, output- en klokcyclusrelaties tussen flip-flops variëren. Er zijn verschillende soorten flip-flops, maar de meest gebruikte bij het maken van schuifregisters zijn de D (Delay) -flip-flops.
Voor de werking van de D-flip-flops, waardoor ze zo wenselijk zijn voor schuifregisters, telkens wanneer er een verandering is op de klok van een D-flip-flop (stijgende of dalende flank, afhankelijk van de specificaties van de flip-flop). De gegevens aan de uitgang "Q" worden dezelfde gegevens als die aan de ingang "D". De uitgang "Q" van de flip-flop blijft op die waarde tot de volgende klokcyclus, waar hij dan weer verandert naar de waarde (hoog of laag, 1 of 0) aan de ingang.
Nu we weten wat Sift Registers zijn, gaan we dieper in op de soorten flip-flop en hun toepassingen. Maar laten we eerst eens kijken naar het populaire schuifregister 74HC595, dat we met verschillende microcontrollers hebben gebruikt om een display of reeks LED's te koppelen, om een meer praktische belichting te geven over waar schuifregisters worden gebruikt.
- Shift Register met 74HC595 met Arduino om een reeks LED's te besturen
- Shift Register met ESP32 om 7-Segment Display te koppelen
- Shift Register met Raspberry Pi om meerdere LED's te bedienen
- Shift Register met PIC om de volgorde van LED's te regelen
Soorten registers in digitale elektronica
Schuifregisters worden voornamelijk in typen onderverdeeld op basis van hun werkingsmodus, serieel of parallel.
Er zijn zes (6) basistypen schuifregisters die hieronder worden opgesomd, hoewel sommige ervan verder kunnen worden onderverdeeld op basis van de richting van de gegevensstroom, ofwel naar rechts of naar links.
1. Serial in - Serial out Shift Register (SISO)
2. Serieel in - Parallel out shift Register (SIPO)
3. Parallel in - Parallel uit schuifregister (PIPO)
4. Parallel in - Serial out Shift Register (PISO)
5. Bidirectionele schuifregisters
6. Tellers
1. Serie in - Serie uit schuifregisters
Serieel in - Serieel uit schuifregisters zijn schuifregisters die gegevens serieel streamen (één bit per klokcyclus) en ook gegevens op dezelfde manier achter elkaar streamen.
Een eenvoudig serieel in - serieel uit 4-bits schuifregister wordt hierboven weergegeven, het register bestaat uit 4 flip-flops en de uitsplitsing van hoe het werkt wordt hieronder uitgelegd;
Bij het opstarten wordt eerst het schuifregister gewist, waardoor de uitgangen van alle flip-flops naar nul worden gedwongen, de ingangsgegevens worden dan serieel aan de ingang toegevoerd, bit voor bit.
Er zijn twee basismanieren om gegevens via een SISO-schuifregister te verplaatsen;
- Niet-destructieve uitlezing
- Destructieve uitlezing
- Niet-destructieve uitlezing
Niet-destructieve op uitlezing gebaseerde schuifregisters hebben altijd een lees- / schrijfmodus met een extra regel toegevoegd om te kunnen schakelen tussen de lees- en schrijfmodus.
Wanneer het apparaat zich in de operationele modus "schrijven" bevindt, verschuift het schuifregister elke gegevens bit voor bit naar buiten en gedraagt zich precies zoals de destructieve uitleesversie en gaan de gegevens dus verloren, maar wanneer de operationele modus wordt omgeschakeld naar "lezen", worden gegevens die aan de ingang worden uitgeschoven, gaan terug in het systeem en dienen als invoer voor het schuifregister. Dit helpt ervoor te zorgen dat de gegevens langer blijven (zolang ze in de leesmodus blijven)
- Destructieve uitlezing
Voor destructieve uitlezingen gaan de gegevens volledig verloren omdat de flip-flop de informatie gewoon doorschuift. Ervan uitgaande dat voor het 4-bits schuifregister hierboven, we het woord "1101" willen verzenden. Nadat het schuifregister is leeggemaakt, wordt de uitvoer van alle flip-flops 0, dus tijdens de eerste klokcyclus, terwijl we deze gegevens (1101) serieel toepassen, zien de uitgangen van de flip-flops eruit als in de onderstaande tabel.
Eerste klokcyclus:
FF0 |
FF1 |
FF2 |
FF3 |
1 |
0 |
0 |
0 |
Tweede klokcyclus:
FF0 |
FF1 |
FF2 |
FF3 |
0 |
1 |
0 |
0 |
Derde klokcyclus:
FF0 |
FF1 |
FF2 |
FF3 |
1 |
0 |
1 |
0 |
Vierde klokcyclus:
FF0 |
FF1 |
FF2 |
FF3 |
1 |
1 |
0 |
1 |
2. Serie in - parallel uit schuifregister
Het tweede type schuifregister dat we zullen overwegen, is het serieel in - parallel uit schuifregister, ook wel bekend als SIPO- schuifregister. Dit soort schuifregisters worden gebruikt voor de conversie van gegevens van serieel naar parallel. De gegevens komen na elkaar per klokcyclus binnen en kunnen ofwel worden verschoven en vervangen of worden uitgelezen bij elke uitgang. Dit betekent dat wanneer de gegevens worden ingelezen, elke ingelezen bit tegelijkertijd beschikbaar komt op hun respectievelijke uitgangslijn (Q0 - Q3 voor het 4-bits schuifregister dat hieronder wordt getoond).
Een 4-bits serieel in - parallel uit schuifregister wordt geïllustreerd in de onderstaande afbeelding.
Een tabel die laat zien hoe gegevens uit het seriële in-parallel uit 4-bits schuifregister worden verschoven, wordt hieronder weergegeven, met de gegevens als 1001.
Doorzichtig |
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 |
Een goed voorbeeld van het seriële in - parallel uitgaande schuifregister is het 74HC164 schuifregister, dat een 8-bits schuifregister is.
Het apparaat beschikt over twee seriële data-ingangen (DSA en DSB), acht parallelle data-uitgangen (Q0 tot Q7). Gegevens worden serieel ingevoerd via DSA of DSB en beide invoer kunnen worden gebruikt als een actieve HIGH-mogelijkheid voor gegevensinvoer via de andere invoer. Gegevens worden verschoven op de LAGE naar HOGE overgangen van de klokinvoer (CP). Een LAAG op de master-reset-ingang (MR) wist het register en dwingt alle uitgangen LAAG, onafhankelijk van andere ingangen. Ingangen zijn onder meer klemdiodes. Dit maakt het gebruik van stroombegrenzende weerstanden mogelijk om ingangen te koppelen aan spanningen hoger dan VCC.
3. Parallel in - Serie uit schuifregister
In het schuifregister Parallel in - Serieel uit worden de gegevens parallel aangeleverd, kijk bijvoorbeeld naar het onderstaande 4-bits register.
Dit register kan worden gebruikt om een 4-bits woord op te slaan en te verschuiven, waarbij de schrijf / verschuif (WS) stuuringang de werking van het schuifregister bestuurt. Wanneer de WS-stuurlijn laag is (schrijfmodus), kunnen gegevens worden geschreven en ingeklokt via D0 tot D3. Om de gegevens serieel naar buiten te schuiven, wordt de WS-besturingslijn HOOG (Shift-modus) gebracht, het register verschuift vervolgens de gegevens bij klokingang. De parallel in serieel ons schuifregister wordt ook wel PISO-schuifregister genoemd.
Een goed voorbeeld van een parallel in - serieel uit schuifregister is het 74HC165 8-bits schuifregister, hoewel het ook kan worden gebruikt als een serieel in - serieel uit schuifregister.
Het apparaat beschikt over een seriële data-ingang (DS), acht parallelle data-ingangen (D0 tot D7) en twee complementaire seriële uitgangen (Q7 en Q7 '). Wanneer de parallelle belastingsinvoer (PL) LAAG is, worden de gegevens van D0 tot D7 asynchroon in het schuifregister geladen. Als PL HOOG is, komen de gegevens serieel het register binnen bij DS. Wanneer de klokinschakelingsingang (CE) LAAG is, worden de gegevens verschoven op de LAGE naar HOGE overgangen van de CP-ingang. Een HOOG op CE schakelt de CP-ingang uit. De ingangen zijn overspanningstolerant tot 15 V. Hierdoor kan het apparaat worden gebruikt in toepassingen met hoog naar laag niveauverschuivingen.
Het functionele diagram van het schuifregister wordt hieronder weergegeven;
Het timingdiagram voor het systeem is zoals weergegeven in de onderstaande afbeelding;
4. Parallel in - Parallel uit schuifregister
Voor een parallel in - parallel uitgaand schuifregister verschijnen de uitgangsgegevens over de parallelle uitgangen tegelijkertijd terwijl de ingangsgegevens worden ingevoerd. Dit type schuifregister wordt ook wel PIPO - schuifregister genoemd.
De invoergegevens op elk van de invoerpennen van D0 tot D3 worden op hetzelfde moment ingelezen als het apparaat wordt geklokt en tegelijkertijd worden de gegevens die van elk van de ingangen worden ingelezen, doorgegeven aan de overeenkomstige uitgang (van Q0 tot Q3).
Het 74HC195-schuifregister is een multifunctioneel schuifregister dat in de meeste modi kan werken die zijn beschreven door alle typen die we tot nu toe hebben besproken, vooral als een parallel in-parallel uit schuifregister.
5. Bidirectionele schuifregisters
Schuifregisters kunnen gegevensverschuiving naar rechts of links uitvoeren, of beide, afhankelijk van het soort schuifregister en hun configuratie. Bij rechtsverschuivingsbewerkingen worden de binaire gegevens door twee gedeeld. Als deze bewerking wordt omgekeerd, worden de binaire gegevens vermenigvuldigd met twee. Met geschikte toepassing van combinatielogica kan een serieel schuifregister worden geconfigureerd om beide bewerkingen uit te voeren.
Beschouw het 4-bits register in de onderstaande afbeelding. Een paar NAND-poorten zijn geconfigureerd als OF-poorten en worden gebruikt om de schakelrichting te regelen, zowel rechts als links.
De controlelijn links / schrijven wordt gebruikt om de richting te bepalen waarnaar data wordt verschoven, naar rechts of naar links.
Het 74HC194 bidirectionele schuifregister is een goed voorbeeld. Het register kan werken in alle modi en variaties van seriële en parallelle invoer of uitvoer. Het functionele diagram van de 74HC194 met de nadruk op de controlelijn, klok, invoer- en uitvoerpennen, wordt hieronder weergegeven.
Het timingdiagram van het apparaat wordt ook hieronder weergegeven. Het zal u beter helpen begrijpen hoe de controlelijn de acties van het register controleert.
6. Tellers
Tellers, ook wel rotatie-schuifregister genoemd, zijn in feite schuifregisters waarvan de uitgangen als ingangssignalen in het apparaat worden teruggevoerd op een zodanige manier dat het een bepaald patroon creëert. Dit soort registers worden tellers genoemd vanwege het patroon en de volgorde die ze vertonen. Het meest populaire type schuifregistertellers zijn de ringtellers.
Ringteller
Ringtellers zijn in feite een soort teller waarin de uitvoer van het meest significante bit wordt teruggekoppeld als invoer naar het minst significante bit. Een 4-bits ringteller wordt geïllustreerd in het onderstaande diagram met D-flip-flops.
Wanneer de klokpuls wordt toegepast, wordt de uitvoer van elke trap naar de volgende verschoven en gaat de cyclus door. Als clear hoog wordt gezet, worden alle flip-flops behalve de eerste (die op 1 wordt gezet) op nul gezet.
Toepassingen van schuifregisters
Schuifregisters worden in veel toepassingen gebruikt, waarvan sommige;
1. Parallel aan seriële conversie, waar ze worden gebruikt om het aantal draden of lijnen dat nodig is voor communicatie tussen twee apparaten te verminderen, aangezien seriële communicatie over het algemeen slechts twee draden nodig heeft in vergelijking met parallel, wat afhangt van het aantal bits dat wordt verzonden.
2. IO-uitbreiding voor microcontrollers. In moderne elektronica worden microcontrollers IO-pinnen onroerend goed genoemd en men heeft zoveel mogelijk nodig voor bepaalde toepassingen, zoals het inschakelen van 100 leds of het lezen van 100 reed-schakelaars met zoiets als een Arduino of de Atmeg328p-microcontroller. Het onderstaande schakelschema illustreert bijvoorbeeld hoe een serieel naar parallel schuifregister kan worden gebruikt om 8 LED's te besturen, met behulp van slechts drie van de IO-pinnen van de microcontrollers.
3. Ze worden gebruikt in staatsregisters die worden gebruikt in sequentiële apparaten. Net als bij een machine met eindig geheugen wordt de volgende toestand van het apparaat altijd bepaald door het verschuiven en invoegen van nieuwe gegevens naar de vorige positie.
4. Een andere hoofdtoepassing is te vinden in Tijdvertragingen. Schuifregisters worden gebruikt voor tijdvertragingen in apparaten, waarbij de tijd wordt aangepast door de klok, of vergroot door trapsgewijze schuifregisters of verminderd door de uitvoer van een lager significant bit te nemen.
De vertraging wordt meestal berekend met de formule;
t = N * (1 / fc)
N is het aantal flip-floptrappen waarop de uitvoer wordt opgenomen, Fc is de frequentie van het kloksignaal en t is de waarde die wordt bepaald, de hoeveelheid tijd gedurende welke de uitvoer wordt vertraagd.
Bij het selecteren van een schuifregister voor een bepaalde taak vanwege het brede bereik en het typen is het belangrijk om er een te selecteren die past bij uw specifieke behoefte, rekening houdend met zaken als de werkingsmodus, de bitgrootte (aantal flip-flops), rechts of links of bidirectioneel etc.
Enkele van de meest populaire schuifregisters zijn;
- 74HC 194 4-bits bidirectioneel universeel schuifregister
- 74HC 198 8-bit bidirectioneel universeel schuifregister
- 74HC595 Serieel-in-parallel-uit schuifregister
- 74HC165 Parallel-In-Serial-Out schuifregister
- IC 74291 4-bits universeel schuifregister, binaire op / neer-teller, synchroon.
- IC 74395 4-bits universeel schuifregister met uitgangen met drie statussen.
- IC 74498 8-bit bidirectioneel schuifregister met parallelle ingangen en uitgangen met drie statussen.
- IC 74671 4-bits bidirectioneel schuifregister.
- IC 74673 16-bit serieel-in serie-uit schuifregister met uitvoeropslagregisters.
- IC 74674 16-bits parallel-in serie-uit schuifregister met drie-standen uitgangen.
Er zijn er nog meer, u hoeft alleen maar uit te vinden welke het beste bij uw toepassing past.
Bedankt voor het lezen, tot de volgende keer.