I2C (Inter-Integrated Circuit)와 SPI (Serial Peripheral Interface)

agnusdei·2025년 2월 9일
0

Network

목록 보기
237/419

I2C (Inter-Integrated Circuit)와 SPI (Serial Peripheral Interface)는 마이크로컨트롤러, 센서, 메모리 등의 장치 간 통신을 위한 직렬 통신 프로토콜입니다. 각각의 특징과 차이점을 설명하겠습니다.


1. I2C (Inter-Integrated Circuit)

특징:

  • 2개의 신호선 사용: SDA(데이터), SCL(클럭)
  • 마스터-슬레이브 구조: 하나의 마스터가 여러 슬레이브와 통신 가능
  • 주소 기반 통신: 슬레이브는 고유한 주소를 가지며, 마스터가 주소를 기반으로 데이터 전송
  • 속도: 일반적으로 100kbps(표준), 400kbps(패스트), 1Mbps(고속), 3.4Mbps(울트라 패스트)
  • 풀업 저항 필요: SDA와 SCL 라인에 풀업 저항이 필요함
  • 반이중(half-duplex) 통신: 한 번에 한 방향으로만 데이터 전송 가능

장점:

  • 배선이 단순하여 여러 개의 슬레이브를 쉽게 연결 가능
  • 클럭 신호가 있어 동기식 통신이 가능
  • 슬레이브가 많아도 추가적인 핀이 거의 필요하지 않음

단점:

  • 속도가 상대적으로 느림
  • 풀업 저항으로 인해 전력 소비 증가 가능
  • 프로토콜이 복잡하여 구현이 어려울 수 있음

사용 예시:

  • 센서 (온도 센서, 자이로스코프 등)
  • EEPROM, RTC(실시간 시계)

2. SPI (Serial Peripheral Interface)

특징:

  • 4개의 신호선 사용: MOSI(마스터 → 슬레이브), MISO(슬레이브 → 마스터), SCLK(클럭), SS(슬레이브 선택)
  • 마스터-슬레이브 구조: 여러 개의 슬레이브 연결 가능 (각 슬레이브마다 SS 핀 필요)
  • 속도: 일반적으로 1~100Mbps 이상 가능
  • 전이중(full-duplex) 통신: 동시에 데이터를 송수신 가능

장점:

  • 빠른 데이터 전송 속도
  • 풀-이중 통신 지원으로 효율적인 데이터 교환 가능
  • 하드웨어적으로 간단하여 구현이 쉬움

단점:

  • 슬레이브마다 SS 핀이 필요하여 다중 슬레이브 연결 시 핀 수가 증가
  • 클럭 신호가 없어 송수신 속도 차이에 따라 데이터 손실 가능
  • 거리 제한이 있음 (일반적으로 1~2m 이내)

사용 예시:

  • 고속 데이터 전송이 필요한 장치 (SD 카드, TFT 디스플레이)
  • 무선 통신 모듈 (RF, Wi-Fi, Bluetooth 모듈)
  • ADC/DAC(아날로그-디지털 변환기)

3. I2C vs SPI 비교

특징I2CSPI
배선2개 (SDA, SCL)4개 (MOSI, MISO, SCLK, SS)
속도최대 3.4Mbps최대 100Mbps 이상
통신 방식반이중 (half-duplex)전이중 (full-duplex)
마스터-슬레이브 관계하나의 마스터, 여러 슬레이브 (주소 기반)하나의 마스터, 여러 슬레이브 (각 슬레이브별 SS 필요)
데이터 무결성클럭 신호 있음 (동기식)클럭 신호 없음 (비동기 가능)
하드웨어 요구사항풀업 저항 필요추가적인 SS 핀 필요
거리 제한수 미터 가능짧은 거리(1~2m)

4. 결론: 언제 I2C, 언제 SPI를 사용해야 할까?

  • I2C 사용 추천:
    • 센서, 메모리 등 저속 장치
    • 배선이 적어야 하는 경우
    • 여러 슬레이브를 제어해야 하는 경우
  • SPI 사용 추천:
    • 고속 데이터 전송이 필요한 경우
    • 단일 또는 소수의 슬레이브 연결
    • 양방향(전이중) 통신이 필요한 경우

I2C는 간단한 장치와 다수의 센서를 연결하는 데 적합하고, SPI는 빠르고 효율적인 데이터 전송이 필요한 경우에 적합합니다.

0개의 댓글