반응형
안녕하세요 😊
오늘은 전기전자 회로에서 데이터가 순차적으로 이동하는 회로인
시프트 레지스터(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) | 병렬 입력 → 병렬 출력 | 빠른 데이터 전송 |
🎨 시프트 레지스터의 기본 구조
- Serial In Parallel Out (SIPO)
- 직렬로 들어온 데이터를 클럭 신호에 맞춰 병렬로 출력합니다.
- 예를 들어, 1010이 직렬로 입력되면 네 개의 출력 단자로 동시에 출력됩니다.
- 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)에 대해 알아보겠습니다.
읽어주셔서 감사합니다 😊
유익했다면 댓글과 공감 부탁드려요!
반응형
'회로에 흐르는 생각들 – 전기전자, 알고 쓰는 법' 카테고리의 다른 글
| [전기전자 기초 #12] 카운터(Counter)의 모든 것 | 숫자를 세는 디지털 회로의 핵심! (0) | 2025.05.23 |
|---|---|
| [전기전자 기초 #11] 플립플롭(Flip-Flop)의 모든 것 (0) | 2025.05.22 |
| [전기전자 기초 #10] 로직 게이트(Logic Gate)의 모든 것 | 디지털 회로의 기초! (0) | 2025.05.21 |
| [전기전자 기초 #9] 연산 증폭기(Op-Amp)의 모든 것 | 전압 증폭과 신호 처리의 핵심! (1) | 2025.05.20 |
| [전기전자 기초 #8] 트랜지스터(Transistor)의 모든 것 | 전류 증폭과 스위칭의 핵심! (1) | 2025.05.19 |