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

I2C (Inter-Integrated Circuit) 통신

by My Course 2025. 5. 2.

개요

I2C (아이투씨) 는 NXP(구 Philips)에서 개발한 양방향 직렬 통신 프로토콜로, 단 2개의 선(SDA, SCL)만으로 여러 개의 장치와 통신할 수 있는 마스터-슬레이브 구조입니다.

주로 센서, EEPROM, RTC, IMU, LCD 등 다양한 임베디드 장치 간 통신에 사용되며, 복잡한 배선을 줄이면서도 안정적인 데이터 전송을 제공합니다.


기본 구조

핀 이름설명
SDA (Serial Data) 데이터 송수신 선
SCL (Serial Clock) 클럭 신호 (동기화용)
 
  • 모든 장치는 SDA, SCL 라인을 공유
  • 마스터(Master): 클럭을 생성하고 통신 제어
  • 슬레이브(Slave): 마스터의 명령에 따라 응답

동작 원리

  1. START 조건: SDA가 High → Low로 변할 때, 통신 시작
  2. 슬레이브 주소 전송: 마스터가 7비트(또는 10비트) 슬레이브 주소 + R/W 비트를 전송
  3. ACK 응답: 슬레이브가 응답(ACK)하면 연결 성공
  4. 데이터 송수신: 8비트 단위로 데이터 전송, 각 바이트마다 ACK/NACK
  5. STOP 조건: SDA가 Low → High로 변할 때, 통신 종료

특징 및 장점

  • 단 2개의 선으로 여러 장치 연결 (멀티 슬레이브 지원)
  • 저전력, 소형 회로에 적합
  • ACK/NACK 신호로 오류 검출 가능
  • 풀 이중 통신 불필요, 단방향 동기식 구조

단점

  • 속도 제한: 일반적으로 100kHz ~ 400kHz (Fast-mode)
  • 버스 충돌 가능성: 여러 장치가 동시에 전송 시 충돌 발생 가능
  • 선로 길이에 민감: 1m 이상은 권장하지 않음 (잡음 영향)

사용 예시

  • MPU6050, BMP180 등 센서 데이터 수집
  • DS3231 RTC 모듈로 시간 데이터 읽기
  • OLED/LCD 디스플레이 제어
  • EEPROM 읽기/쓰기 (예: 24LC256)

마무리

I2C는 임베디드 시스템 개발에서 가장 널리 사용되는 통신 프로토콜 중 하나로, 간단한 배선, 다중 장치 지원, 범용성이 높은 것이 특징입니다.
프로젝트의 확장성과 안정성을 고려할 때, 적절한 통신 거리와 속도 제한을 고려하여 사용해야 합니다.

'통신 프로토콜' 카테고리의 다른 글

PWM (Pulse Width Modulation) 제어  (0) 2025.05.02
SPI (Serial Peripheral Interface) 통신  (0) 2025.05.02
UART / USART 통신  (0) 2025.05.02