본문 바로가기
Essential/통신

I2C, SPI, UART - 임베디드 시스템에서의 통신 방식

by 조용한주인장 2025. 3. 1.

I2C, SPI, UART

임베디드 시스템에서는 다양한 장치 간의 효율적인 데이터 전송을 위해 여러 통신 방식이 사용됩니다. 대표적인 방식으로 I2C (Inter-Integrated Circuit), SPI (Serial Peripheral Interface), UART (Universal Asynchronous Receiver/Transmitter)가 있습니다. 각각의 방식은 장단점이 있으며, 애플리케이션의 요구사항에 따라 적절한 방식이 선택됩니다.


1. I2C (Inter-Integrated Circuit)

I2C두 개의 선(SDA, SCL)만을 사용하여 여러 개의 장치를 연결할 수 있는 직렬 통신 방식입니다.

🛠 특징

  • 양방향 통신: 데이터 및 제어 신호를 주고받을 수 있음
  • 클럭 신호(SCL)를 활용한 동기식 통신
  • 한 개의 마스터와 다수의 슬레이브 가능
  • 속도: 일반적으로 100kHz(표준 모드), 400kHz(고속 모드), 1MHz(고속 플러스 모드), 3.4MHz(울트라 고속 모드)

장점

  • 단 두 개의 신호선만 사용하여 배선이 간단함
  • 여러 개의 장치를 동일한 버스에 연결 가능 (멀티슬레이브 가능)
  • 낮은 전력 소비

단점

  • 속도가 상대적으로 느림 (최대 3.4MHz)
  • 클럭 신호를 관리해야 하므로 구현이 다소 복잡할 수 있음

📌 사용 예시

  • 센서 데이터 수집 (온도 센서, 가속도계, 자이로스코프 등)
  • EEPROM과 마이크로컨트롤러 간의 데이터 전송
  • 디스플레이 모듈 제어 (OLED, LCD)

2. SPI (Serial Peripheral Interface)

SPI다중 신호선을 활용하는 동기식 통신 방식으로, 빠른 데이터 전송이 가능합니다.

🛠 특징

  • 4개의 신호선 사용
    • MOSI (Master Out Slave In)
    • MISO (Master In Slave Out)
    • SCLK (Serial Clock)
    • SS (Slave Select)
  • 클럭 신호(SCLK)를 이용한 동기식 통신
  • 단일 마스터-멀티 슬레이브 구조 지원
  • 속도: 수십 MHz까지 가능 (최대 100MHz 이상)

장점

  • 높은 전송 속도 (I2C보다 빠름)
  • 전송 데이터의 크기가 자유로움 (8비트, 16비트, 32비트 등)
  • 클럭을 사용한 동기식 방식이므로 안정적인 데이터 전송 가능

단점

  • 많은 신호선 필요 (각 슬레이브마다 별도의 SS 핀 필요)
  • 멀티슬레이브 연결이 어렵고 복잡함
  • 다소 높은 전력 소비

📌 사용 예시

  • SD 카드 데이터 전송
  • 고속 ADC/DAC (아날로그-디지털 변환기) 인터페이스
  • TFT 디스플레이 제어
  • 플래시 메모리 제어

3. UART (Universal Asynchronous Receiver/Transmitter)

UART비동기 방식으로 데이터를 직렬 전송하는 통신 방식입니다.

🛠 특징

  • Tx (전송) / Rx (수신) 두 개의 신호선만 사용
  • 클럭 신호 없이 비동기 방식으로 동작
  • 시작(Start), 정지(Stop), 패리티(Parity) 비트를 사용하여 데이터 무결성 확보
  • 속도: 300bps ~ 1Mbps 이상 (일반적으로 9600, 115200bps 사용)

장점

  • 간단한 하드웨어 및 프로토콜 구조
  • 직렬 통신을 위한 범용적인 인터페이스
  • 긴 거리 전송에 적합

단점

  • 두 장치 간 통신 속도를 미리 설정해야 함 (보드레이트 설정 필요)
  • 마스터-슬레이브 구조가 아니므로 다중 장치 간 동시 통신이 어렵다
  • 동기화 오류 가능성 있음

📌 사용 예시

  • 마이크로컨트롤러와 PC 간 시리얼 통신 (예: USB-to-Serial 변환기)
  • 디버깅 및 로그 출력
  • 블루투스 및 GPS 모듈과의 인터페이스

4. I2C, SPI, UART 비교표

항목 I2C SPI UART

통신 방식 동기식 동기식 비동기식
신호선 수 2개 (SDA, SCL) 4개 (MOSI, MISO, SCLK, SS) 2개 (Tx, Rx)
속도 최대 3.4MHz 최대 100MHz 이상 일반적으로 115.2kbps
다중 장치 연결 가능 (1 마스터, 다수 슬레이브) 가능하지만 복잡 (멀티 슬레이브) 불가능 (1:1)
전력 소비 낮음 높음 중간
전송 거리 짧음 짧음 길음
주요 사용처 센서, EEPROM SD 카드, 디스플레이 PC-마이크로컨트롤러 통신

5. 어떤 통신 방식을 선택할까?

요구사항 추천 통신 방식

저속 & 저전력 I2C
고속 데이터 전송 SPI
장거리 통신 & 간단한 구조 UART
멀티 디바이스 연결 필요 I2C

6. 결론

임베디드 시스템에서는 I2C, SPI, UART가 각각의 장점과 단점을 가지며 다양한 용도로 사용됩니다.

  • I2C는 저전력 및 간단한 배선을 요구하는 센서 통신에 적합하고,
  • SPI는 빠른 데이터 전송이 필요한 SD 카드, 디스플레이 등에 주로 사용되며,
  • UART는 직렬 통신을 통해 디버깅 및 마이크로컨트롤러 간 통신에 적합합니다.

추가로 읽어볼 만한 주제

댓글