개요
I2C (아이투씨) 는 NXP(구 Philips)에서 개발한 양방향 직렬 통신 프로토콜로, 단 2개의 선(SDA, SCL)만으로 여러 개의 장치와 통신할 수 있는 마스터-슬레이브 구조입니다.
주로 센서, EEPROM, RTC, IMU, LCD 등 다양한 임베디드 장치 간 통신에 사용되며, 복잡한 배선을 줄이면서도 안정적인 데이터 전송을 제공합니다.
기본 구조
핀 이름설명
| SDA (Serial Data) | 데이터 송수신 선 |
| SCL (Serial Clock) | 클럭 신호 (동기화용) |
- 모든 장치는 SDA, SCL 라인을 공유
- 마스터(Master): 클럭을 생성하고 통신 제어
- 슬레이브(Slave): 마스터의 명령에 따라 응답
동작 원리
- START 조건: SDA가 High → Low로 변할 때, 통신 시작
- 슬레이브 주소 전송: 마스터가 7비트(또는 10비트) 슬레이브 주소 + R/W 비트를 전송
- ACK 응답: 슬레이브가 응답(ACK)하면 연결 성공
- 데이터 송수신: 8비트 단위로 데이터 전송, 각 바이트마다 ACK/NACK
- 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 |