회로에 흐르는 생각들 – 전기전자, 알고 쓰는 법

[전기전자 기초 #13] 시프트 레지스터(Shift Register)의 모든 것 | 데이터의 이동과 저장

앤카 2025. 5. 21. 20:10
반응형

안녕하세요 😊
오늘은 전기전자 회로에서 데이터가 순차적으로 이동하는 회로
시프트 레지스터(Shift Register) 에 대해 알아보겠습니다.


✅ 시프트 레지스터란 무엇인가요?

시프트 레지스터(Shift Register)는 플립플롭(Flip-Flop)을 직렬로 연결하여 데이터가 순차적으로 이동하는 회로입니다.
클럭 신호(Clock Signal)가 들어올 때마다 데이터가 한 단계씩 이동하며,
직렬 ↔ 병렬 변환, 메모리 저장, 신호 지연에 많이 사용됩니다.

💡 비유:
시프트 레지스터는 마치 컨베이어 벨트처럼 데이터가 한 칸씩 이동하면서 전달됩니다.


🔌 시프트 레지스터의 주요 역할

 

역할 설명 예시
데이터 이동 신호를 한 칸씩 오른쪽 또는 왼쪽으로 이동 시리얼 통신
직렬 ↔ 병렬 변환 직렬 데이터를 병렬로, 병렬 데이터를 직렬로 변환 SPI, UART
메모리 저장 시간 순서대로 데이터 유지 버퍼, 래치(Latch)
신호 지연 클럭에 맞춰 데이터가 순차적으로 이동 타이밍 조절
 

🧱 시프트 레지스터의 종류

 

종류 특징 용도
SIPO (Serial In Parallel Out) 직렬 입력 → 병렬 출력 UART 수신, LED 제어
PISO (Parallel In Serial Out) 병렬 입력 → 직렬 출력 SPI 통신, 데이터 전송
SISO (Serial In Serial Out) 직렬 입력 → 직렬 출력 데이터 지연, 버퍼
PIPO (Parallel In Parallel Out) 병렬 입력 → 병렬 출력 빠른 데이터 전송
 

🎨 시프트 레지스터의 기본 구조

  1. Serial In Parallel Out (SIPO)
    • 직렬로 들어온 데이터를 클럭 신호에 맞춰 병렬로 출력합니다.
    • 예를 들어, 1010이 직렬로 입력되면 네 개의 출력 단자로 동시에 출력됩니다.
  2. Parallel In Serial Out (PISO)
    • 병렬로 입력된 데이터를 클럭 신호에 맞춰 직렬로 전송합니다.
    • 네 개의 입력이 동시에 들어와 순서대로 직렬 출력됩니다.

📐 SIPO와 PISO 예시

✔️ SIPO 진리표


Clock Serial In Q0 Q1 Q2 Q3
0 1 0 0 0 1
1 0 1 0 0 0
2 1 0 1 0 0
3 1 1 0 1 0
 

✔️ PISO 진리표

ClockParallel In (D3, D2, D1, D0)Serial Out

 

Clock Parallel In (D3, D2, D1, D0) Serial Out
0 1 0 1 1 1
1 - - - - 1
2 - - - - 0
3 - - - - 1
 

🔄 시프트 방향과 활용

 

방향 설명 예시
Right Shift 데이터가 오른쪽으로 이동 시리얼 수신 버퍼
Left Shift 데이터가 왼쪽으로 이동 시리얼 송신 버퍼
 

💡 실무 팁:
시프트 레지스터는 SPI, I2C, UART 통신에서 직렬 ↔ 병렬 변환에 필수적입니다.


⚡ 실무에서 시프트 레지스터 활용 예시

 

용도 설명
🔋 LED 제어 직렬로 데이터를 전송하여 여러 LED를 동시 제어
🌐 UART 통신 직렬 데이터를 병렬로 변환하여 CPU와 통신
🖥️ 버퍼 메모리 데이터 전송 중 신호 지연 없이 임시 저장
📡 시리얼 통신 인터페이스 데이터 전송 속도 향상
 

🧠 오늘의 요약

  • 시프트 레지스터(Shift Register)는 데이터를 순차적으로 이동시키는 디지털 소자입니다.
  • 직렬 ↔ 병렬 변환, 신호 지연, 데이터 이동에 사용됩니다.
  • SIPO, PISO, SISO, PIPO 등 다양한 구조가 있으며, 용도에 맞게 선택합니다.
  • LED 제어, UART 통신, 버퍼 메모리 등에서 핵심 역할을 합니다.

 

🔄 시프트 레지스터의 구조와 동작 방식

  • SIPO (Serial In Parallel Out): 직렬 입력 → 병렬 출력
  • PISO (Parallel In Serial Out): 병렬 입력 → 직렬 출력
  • SISO (Serial In Serial Out): 직렬 입력 → 직렬 출력
  • PIPO (Parallel In Parallel Out): 병렬 입력 → 병렬 출력

클럭 신호가 들어올 때마다 컨베이어 벨트처럼 한 칸씩 밀려 이동합니다.
UART 통신, LED 제어, 버퍼 메모리 등에서 널리 사용되며,
간단한 논리 회로만으로도 큰 데이터 흐름을 제어할 수 있습니다.

 

📌 다음 글 예고
다음 시간에는 디코더(Decoder)와 인코더(Encoder)에 대해 알아보겠습니다.

읽어주셔서 감사합니다 😊
유익했다면 댓글과 공감 부탁드려요!

반응형