본문 바로가기
통신 프로토콜

SPI (Serial Peripheral Interface) 통신

by My Course 2025. 5. 2.

개요

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 핀으로 선택됩니다.

동작 원리

  1. 마스터가 **SCK(클럭 신호)**를 생성
  2. 마스터가 MOSI를 통해 슬레이브로 데이터 전송
  3. 슬레이브가 MISO를 통해 마스터로 응답 전송 (동시에 가능 → 전이중)
  4. 통신할 슬레이브는 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