개요
SPI는 Motorola에서 개발한 고속 동기식 직렬 통신 방식으로, 하나의 마스터와 하나 이상의 슬레이브 간 통신을 위해 설계되었습니다.
클럭 신호를 공유하며, 전이중(Full-Duplex) 통신이 가능한 특징 덕분에 센서, 메모리, 디스플레이 등 고속 장치 연결에 많이 사용됩니다.
특히 속도가 중요하고 전송량이 많은 상황에서 매우 효과적입니다.
기본 구조 (4선식)
핀 이름방향 (기준: 마스터)설명
| MOSI (Master Out Slave In) | 출력 | 마스터 → 슬레이브 데이터 전송 |
| MISO (Master In Slave Out) | 입력 | 슬레이브 → 마스터 데이터 수신 |
| SCK (Serial Clock) | 출력 | 클럭 신호 전송 |
| SS (Slave Select / CS) | 출력 | 슬레이브 선택 신호 (Active LOW) |
- 하나의 마스터가 여러 슬레이브와 연결될 수 있으며, 슬레이브는 각각의 SS 핀으로 선택됩니다.
동작 원리
- 마스터가 **SCK(클럭 신호)**를 생성
- 마스터가 MOSI를 통해 슬레이브로 데이터 전송
- 슬레이브가 MISO를 통해 마스터로 응답 전송 (동시에 가능 → 전이중)
- 통신할 슬레이브는 SS (또는 CS) 핀을 LOW로 설정하여 활성화
SPI는 항상 마스터가 클럭을 주도하고, 하나의 슬레이브만 선택되어야 데이터가 충돌하지 않습니다.
장점
- 매우 빠른 전송 속도 (수 MHz~수십 MHz까지 가능)
- 전이중 통신 가능 (MOSI, MISO 동시 사용)
- 구현이 단순하며, 클럭 기반 동기 통신으로 안정성 우수
- 다수의 슬레이브 장치 연결 가능 (SS 핀으로 구분)
단점
- 핀 수가 많음 (4선 + 슬레이브마다 SS 추가 필요)
- 버스 확장 어려움 (멀티 마스터 지원 안 됨)
- 거리 제약이 있음 (수십 cm 이상이면 노이즈 영향 받음)
사용 예시
장치설명
| SD 카드 모듈 | 대용량 저장 장치 |
| TFT LCD | 그래픽 디스플레이 |
| nRF24L01 | 무선 통신 모듈 |
| EEPROM (25LCxxx) | 비휘발성 메모리 |
| IMU 센서 (LSM9DS1, ADXL345 등) | 고속 센서 데이터 전송 |
마무리
SPI는 속도가 빠르고 전이중 통신이 가능하여 디스플레이, 메모리, 고속 센서 등의 통신에 적합한 프로토콜입니다.
다만, 하드웨어 핀 수가 늘어나고 슬레이브 수가 많을수록 복잡해지기 때문에, 고속/단거리/저 슬레이브 환경에서 특히 유리합니다.
I2C와 달리 클럭과 데이터가 완전히 분리되어 있어 보다 신뢰도 높은 통신이 필요한 경우 SPI가 더 적합할 수 있습니다.
'통신 프로토콜' 카테고리의 다른 글
| PWM (Pulse Width Modulation) 제어 (0) | 2025.05.02 |
|---|---|
| UART / USART 통신 (0) | 2025.05.02 |
| I2C (Inter-Integrated Circuit) 통신 (0) | 2025.05.02 |