SIPO 시프트 레지스터란 무엇인가 : 회로, 동작, 진리표 및 그 응용

문제를 제거하기 위해 도구를 사용해보십시오





일반적으로 레지스터는 이진 데이터를 저장하는 데 사용되는 장치로 정의할 수 있지만 여러 데이터 비트를 저장하려는 경우 직렬로 연결된 플립플롭 세트가 사용됩니다. 레지스터에 저장된 데이터는 CLK 펄스를 제공하여 오른쪽 또는 왼쪽의 시프트 레지스터를 사용하여 시프트할 수 있습니다. 시프트 레지스터 의 그룹입니다 슬리퍼 여러 비트의 데이터를 저장하는 데 사용됩니다. 유사하게, 모든 플립플롭이 단순히 단일 데이터 비트를 저장할 때마다 n개의 플립플롭을 간단히 연결하여 n비트의 시프트 레지스터를 형성할 수 있습니다. 레지스터가 비트를 오른쪽으로 이동하면 오른쪽 시프트 레지스터이고 왼쪽으로 이동하면 왼쪽 시프트 레지스터로 알려져 있습니다. 이 기사에서는 시프트 레지스터 유형 중 하나, 즉 직렬 병렬 출력 시프트 레지스터 또는 SIPO 시프트 레지스터 .


SIPO 시프트 레지스터란 무엇입니까?

직렬 입력 병렬 출력을 허용하는 시프트 레지스터는 SIPO 시프트 레지스터로 알려져 있습니다. SIPO 레지스터에서 SIPO라는 용어는 직렬 입력 병렬 출력을 나타냅니다. 이러한 유형의 시프트 레지스터에서 입력 데이터는 비트 단위로 직렬로 제공됩니다. 각 클록 펄스에 대해 모든 FF의 입력 데이터는 단일 위치만큼 이동될 수 있습니다. 모든 플립플롭의 o/p는 병렬로 수신될 수 있습니다.



회로도

그만큼 SISO 시프트 레지스터 회로도 아래에 나와 있습니다. 이 회로는 CLR 신호가 CLK 신호와 함께 모든 FF에 추가로 제공되는 다이어그램과 같이 연결된 4D 플립플롭으로 구성할 수 있습니다. 위의 회로에서 첫 번째 FF 출력은 두 번째 FF 입력에 제공됩니다. 모든 플립플롭에는 동일한 CLK 신호가 제공되기 때문에 이 4개의 D 플립플롭은 모두 직렬로 연결됩니다.

  SIPO 시프트 레지스터 다이어그램
SIPO 시프트 레지스터 다이어그램

SIPO 시프트 레지스터의 작동

SIPO 시프트 레지스터의 작동은 다음과 같습니다. 왼쪽의 첫 번째 플립 플롭에서 직렬 데이터 입력을 가져와 병렬 데이터 출력을 생성합니다. 4비트 SIPO 시프트 레지스터 회로는 아래와 같습니다. 이 시프트 레지스터의 작동은 먼저 FF1에서 FF4까지의 회로의 모든 플립플롭이 RESET되어야 하므로 QA에서 QD와 같은 FF의 모든 출력이 논리 0 레벨에 있으므로 병렬 데이터 출력이 없습니다.



SIPO 시프트 레지스터의 구성은 위에 나와 있습니다. 다이어그램에서 첫 번째 플립플롭 출력 'QA'는 두 번째 플립플롭 입력 'DB'에 연결됩니다. 두 번째 플립플롭 출력 'QB'는 세 번째 플립플롭 입력 DC에 연결되고, 세 번째 플립플롭 출력 'QC'는 네 번째 플립플롭 입력 'DD에 연결됩니다. 여기서 QA, QB, QC, QD는 데이터 출력이다.

처음에 모든 출력은 CLK 펄스 없이 0이 됩니다. 모든 데이터는 0이 됩니다. 1101과 같은 4비트 데이터 입력 예를 들어보자. 첫 번째 플립플롭에 첫 번째 클럭 펄스 '1'을 인가하면 FF와 QA에 입력할 데이터는 '1'이 되고 나머지는 QB와 같은 출력이 된다. , QC 및 QD는 0이 됩니다. 따라서 첫 번째 데이터 출력은 '1000'입니다.

첫 번째 플립플롭에 두 번째 클럭 펄스를 '0'으로 적용하면 QA는 '0', QB는 '0', QC는 '0', QD는 '0'이 됩니다. 따라서 두 번째 데이터 출력은 오른쪽 시프트 프로세스로 인해 '0100'이 됩니다.

첫 번째 플립플롭에 세 번째 클럭 펄스를 '1'로 적용하면 QA는 '1', QB는 '0', QC는 '1', QD는 '0'이 됩니다. 따라서 세 번째 데이터 출력은 오른쪽 시프트 프로세스로 인해 '1011'이 됩니다.
네 번째 클럭 펄스를 첫 번째 플립플롭에 '1'로 적용하면 QA는 '1', QB는 '1', QC는 '0', QD는 '1'이 됩니다. 따라서 세 번째 데이터 출력은 오른쪽 시프트 프로세스로 인해 '1101'이 됩니다.

SIPO 시프트 레지스터 진리표

SIPO 시프트 레지스터의 진리표는 다음과 같습니다.

  SIPO 시프트 레지스터 진리표
SIPO 시프트 레지스터 진리표

타이밍 다이어그램

그만큼 SIPO 시프트 레지스터의 타이밍 다이어그램 아래에 나와 있습니다.

  타이밍 다이어그램
타이밍 다이어그램

여기서 우리는 양의 에지 CLK i/p 신호를 사용하고 있습니다. 첫 번째 클럭 펄스에서 입력 데이터는 QA = '1'이 되고 QB, QC 및 QD와 같은 다른 모든 값은 '0'이 됩니다. 따라서 출력은 '1000'이 됩니다. 두 번째 클럭 펄스에서 출력은 '0101'이 됩니다. 세 번째 클럭 펄스에서 출력은 '1010'이 되고 네 번째 클럭 펄스에서는 출력이 '1101'이 됩니다.

SIPO 시프트 레지스터 Verilog 코드

SIPO 시프트 레지스터의 Verilog 코드는 아래와 같습니다.

모듈 sipomod(clk,clear,si,po);
입력 clk, si, clear;
출력 [3:0]포;
reg [3:0] tmp;
reg [3:0]포;
항상 @(posge clk)
시작하다
만약 (맑음)
tmp <= 4'b0000;
또 다른
tmp <= tmp << 1;
tmp[0] <= 예;
포 = tmp;

엔드 모듈

74HC595 IC SIPO 시프트 레지스터 회로 및 작동

74HC595 IC는 8비트 직렬 병렬 출력 시프트 레지스터이므로 입력을 직렬로 사용하고 병렬 출력을 제공합니다. 이 IC는 16핀을 포함하며 SOIC, DIP, TSSOP 및 SSOP와 같은 다양한 패키지로 제공됩니다.

74HC595의 핀 구성은 각 핀이 아래에서 논의되는 아래에 나와 있습니다.

핀 1 ~ 7 및 15(QB ~ QH 및 QA): 이들은 7-세그먼트 디스플레이 및 LED와 같은 출력 장치를 연결하는 데 사용되는 o/p 핀입니다.

핀8(GND): 이 GND 핀은 마이크로컨트롤러의 전원 공급 장치의 GND 핀에 간단히 연결됩니다.

핀9(QH): 이 핀은 다른 IC의 SER 핀에 연결하고 두 IC에 동일한 CLK 신호를 제공하여 16개 출력을 포함하는 단일 IC처럼 작동하도록 하는 데 사용됩니다.

핀16(Vcc): 이 핀은 5V 로직 레벨 IC이기 때문에 전원 공급 장치가 아닌 마이크로 컨트롤러에 연결하는 데 사용됩니다.

핀14(BE): 데이터가 이 핀 전체에 직렬로 입력되는 직렬 i/p 핀입니다.

핀 11(SRCLK): CLK 신호가 이 핀 전체에 제공되기 때문에 시프트 레지스터에 대한 CLK처럼 작동하는 것은 시프트 레지스터 CLK 핀입니다.

핀12(RCLK): 이 IC에 연결된 장치에서 o/ps를 관찰하는 데 사용되는 레지스터 CLK 핀입니다.

핀 10(SRCLR): 시프트 레지스터 CLR 핀입니다. 이 핀은 주로 레지스터의 저장소를 비워야 할 때 사용됩니다.

핀13(OE): o/p 활성화 핀입니다. 이 핀이 HIGH로 설정되면 시프트 레지스터는 높은 임피던스 조건으로 설정되고 o/ps는 전송되지 않습니다. 이 핀을 로우로 설정하면 o/ps를 얻을 수 있습니다.

74HC595 IC  작동

LED 제어를 위한 74HC595 IC의 회로도는 아래와 같습니다. 시프트 레지스터의 3-핀은 핀 11, 12 및 14와 같이 Arduino에 연결하는 데 필요합니다. 8개의 LED는 모두 이 시프트 레지스터 IC에 간단히 연결됩니다.

이 회로를 설계하는 데 필요한 구성 요소에는 주로 74HC595 시프트 레지스터 IC, Arduino UNO, 5V 전원 공급 장치, 브레드보드, 8개의 LED, 1KΩ 저항기 – 8개 및 연결 와이어가 포함됩니다.

  74HC595 IC 시프트 레지스터 회로도
74HC595 IC 시프트 레지스터 회로도

먼저 Shift Register의 Serial i/p Pin을 Arduino Uno의 Pin-4에 연결해야 합니다. 그런 다음 IC의 핀 11 및 12와 같은 CLK 및 래치 핀을 Arduino Uno의 핀 5 및 6에 각각 연결합니다. LED는 1KΩ 전류 제한 저항을 사용하여 IC의 8-o/p 핀에 연결됩니다. Arduino에서 5V를 공급하기 전에 Arduino에 공통 GND가 있는 74HC595 IC에 별도의 5V 전원 공급 장치가 사용됩니다.

암호

8개의 LED를 직렬로 ON시키는 간단한 코드는 아래와 같습니다.

정수 래치 핀 = 5;
정수 clkPin = 6;
정수 데이터 핀 = 4;
바이트 LED = 0;
무효 설정()
{
Serial.begin(9600);
핀모드(래치핀, 출력);
핀모드(데이터핀, 출력);
핀모드(clk핀, 출력);
}
무효 루프()
{
정수 i=0;
LED = 0;
시프트LED();
지연(500);
(i = 0, i < 8, i++)
{
bitSet(LED, i);
직렬.println(LED);
시프트LED();
지연(500);
}
}
무효 shiftLED()
{
digitalWrite(래치핀, 낮음);
shiftOut(dataPin, clkPin, MSBFIRST, LED);
digitalWrite(래치핀, 높음);
}

이 시프트 레지스터 회로의 작동은 바이트 변수 LED가 0으로 설정되어 있기 때문에 처음에는 8개의 모든 LED가 꺼집니다. 이제 모든 비트는 'bitSet' 기능으로 1로 설정되고 'shiftOut' 기능으로 시프트됩니다. 마찬가지로 모든 LED는 동일한 시리즈에서 켜집니다. LED를 끄려면 'bitClear' 기능을 사용할 수 있습니다.

74HC595 시프트 레지스터 IC는 서버, LED 제어, 산업 제어, 전자 제품, 네트워크 스위치 등과 같은 다양한 애플리케이션에 사용됩니다.

애플리케이션

그만큼 직렬 입력 병렬 출력 시프트 레지스터의 응용 아래에 나와 있습니다.

  • 일반적으로 시프트 레지스터는 임시 데이터를 저장하는 데 사용되며 링 & 존슨 링 카운터 .
  • 데이터 전송 및 조작에 사용됩니다.
  • 이 플립플롭은 데이터 라인이 수많은 병렬 라인으로 역다중화되어야 하는 모든 통신 라인 내에서 주로 사용되는데, 이 시프트 레지스터가 데이터를 직렬에서 병렬로 변경하는 데 사용되기 때문입니다.
  • 데이터 암호화 및 암호 해독에 사용됩니다.
  • 이 시프트 레지스터는 PN 코드 또는 의사 잡음 시퀀스 번호를 생성하기 위해 CDMA 내에서 사용됩니다.
  • 데이터를 추적하는 데 사용할 수 있습니다!
  • SIPO 시프트 레지스터는 데이터 변환을 위한 다양한 디지털 애플리케이션에서 사용됩니다.
  • 때때로 이러한 유형의 시프트 레지스터는 GPIO 핀이 더 필요할 때 마이크로프로세서에 간단히 연결됩니다.
  • 이 SIPO 시프트 레지스터의 실제 적용은 마이크로프로세서의 출력 데이터를 원격 패널 표시기에 제공하는 것입니다.

따라서 이것은 SIPO의 개요입니다. 시프트 레지스터 – 응용 프로그램이 있는 회로, 작업, 진리표 및 타이밍 다이어그램. 가장 자주 사용되는 SIPO 시프트 레지스터 구성 요소는 74HC595, 74LS164, 74HC164/74164, SN74ALS164A, SN74AHC594, SN74AHC595 및 CD4094입니다. 이 레지스터는 사용 속도가 매우 빠르며 데이터를 직렬에서 병렬로 매우 쉽게 변환할 수 있으며 설계가 간단합니다. 다음은 PISO 시프트 레지스터가 무엇인지에 대한 질문입니다.