기출 I²C (Inter-Integrated Circuit)

agnusdei·2025년 2월 9일
0

Network

목록 보기
239/419

I²C(Inter-Integrated Circuit) 버스를 사용하는 직렬 통신 방식의 특징과 패킷 형식, 주소 지정 방식, 통신 과정


1. 개요

I²C(Inter-Integrated Circuit)는 필립스(Philips, 현재 NXP Semiconductors)가 개발한 양방향 반이중(Half-Duplex) 직렬 통신(Serial Communication) 방식이다.
마이크로컨트롤러(MCU)와 주변 장치(EEPROM, 센서, RTC 등) 간의 저속(Short-Distance), 저전력(Low Power) 데이터 통신을 위해 설계되었다.


2. 특징

특징설명
직렬 통신 방식(Serial Communication)한 번에 한 비트씩 데이터를 전송하는 방식
반이중(Half-Duplex) 방식송신과 수신이 동시에 이루어지지 않음
멀티마스터(Multi-Master) 지원여러 개의 마스터가 하나의 버스를 공유 가능
2선식(Two-Wire) 구조데이터(SDA, Serial Data)와 클럭(SCL, Serial Clock)만 사용
풀업 저항(Pull-up Resistor) 필요SDA, SCL 라인은 풀업 저항을 통해 HIGH 상태 유지
슬레이브 주소 지정 방식(Addressing)7비트 또는 10비트 주소 지정 방식 사용
속도(Speed Mode)표준(100kbps), 고속(400kbps), 초고속(3.4Mbps), 울트라패스트(5Mbps) 모드 지원

3. 패킷 형식(Packet Format)

I²C 프로토콜은 패킷(Packet) 단위로 전송된다.

(1) 일반적인 I²C 프레임 형식

구성 요소설명
Start Condition (S)마스터가 SDA를 LOW로 설정 (SCL이 HIGH일 때)
주소 프레임(Address Frame)슬레이브 7비트 또는 10비트 주소 + 읽기/쓰기(R/W) 비트(1비트)
ACK/NACK 비트(Acknowledge)슬레이브가 응답(Acknowledge)
데이터 프레임(Data Frame)8비트 데이터 전송, 이후 ACK/NACK 응답
Stop Condition (P)마스터가 SDA를 HIGH로 설정 (SCL이 HIGH일 때)

(2) 7비트 주소 패킷 예시

S | 1010000 | 0 | A | DATA | A | DATA | A | P
  • S : Start Condition
  • 1010000 : 슬레이브 주소 (예: 0x50)
  • 0 : Write(쓰기) 비트 (0 = Write, 1 = Read)
  • A : Acknowledge (슬레이브가 응답)
  • DATA : 8비트 데이터
  • P : Stop Condition

4. 주소 지정 방식(Addressing Scheme)

I²C는 슬레이브를 식별하기 위해 7비트 또는 10비트 주소 지정 방식을 사용한다.

(1) 7비트 주소 방식 (일반적인 방식)

  • 슬레이브 주소는 7비트 (0~127, 0x00~0x7F)
  • 실제 데이터 전송 시에는 주소 + 1비트(R/W)로 총 8비트 전송

(2) 10비트 주소 방식 (확장형)

  • 슬레이브 주소를 10비트(0x000~0x3FF)로 확장 가능
  • 첫 바이트에서 11110XX 비트를 사용하여 10비트 주소임을 표시

5. 통신 과정 (Communication Process)

I²C는 마스터(Master)와 슬레이브(Slave) 간의 반이중(Half-Duplex) 방식으로 동작한다.

(1) 데이터 송신 과정 (Write Operation)

  1. 마스터가 Start Condition(S)를 생성
  2. 마스터가 슬레이브 주소(7비트) + Write(0) 비트를 전송
  3. 슬레이브가 ACK를 반환 (Acknowledge 비트)
  4. 마스터가 데이터(8비트)를 전송
  5. 슬레이브가 ACK를 반환
  6. 필요한 만큼 데이터 전송 반복
  7. 마스터가 Stop Condition(P)를 생성하고 종료

(2) 데이터 수신 과정 (Read Operation)

  1. 마스터가 Start Condition(S)를 생성
  2. 마스터가 슬레이브 주소(7비트) + Read(1) 비트를 전송
  3. 슬레이브가 ACK를 반환
  4. 슬레이브가 데이터(8비트)를 전송
  5. 마스터가 ACK를 반환
  6. 필요한 만큼 데이터 수신 반복
  7. 마스터가 Stop Condition(P)를 생성하고 종료

6. I²C의 종류 및 속도 모드(Speed Mode)

모드최대 속도특징
Standard Mode100kbps일반적인 저속 모드
Fast Mode400kbps고속 센서 통신 등에 사용
Fast Mode Plus1Mbps향상된 속도 지원
High-Speed Mode3.4Mbps초고속 데이터 전송 가능
Ultra-Fast Mode5Mbps최신 고속 응용 가능

7. I²C의 장점과 단점

(1) 장점

2개 라인만 사용 → 간단한 배선 구조
멀티마스터 지원 → 여러 개의 마스터 사용 가능
ACK/NACK 기능 → 오류 검출 가능
다양한 속도 모드 지원 → 유연한 적용 가능

(2) 단점

낮은 전송 속도 → SPI에 비해 속도가 느림
버스 충돌 가능성 → 멀티마스터 환경에서는 충돌 방지 필요
풀업 저항 필요 → 추가적인 하드웨어 요구됨


8. 전망 및 개선 방향

  • I²C는 저속, 저전력, 저비용의 특성으로 센서, 임베디드 시스템, IoT 기기, 웨어러블 등에서 지속적으로 활용될 전망
  • 향후 I3C (Improved Inter-Integrated Circuit) 기술이 발전하면서 더 높은 속도(12.5Mbps), 낮은 전력 소비, 자동 주소 할당 등의 개선이 기대됨

9. 결론

I²C는 간단한 2선식 구조로 저전력, 저속의 직렬 통신을 지원하는 프로토콜이며, 센서, EEPROM, RTC 등의 다양한 임베디드 장치에서 널리 사용된다.
반이중(Half-Duplex) 방식으로 동작하며, 멀티마스터 지원, ACK/NACK 기능 등 다양한 특성을 가진다.
향후 I3C 등으로 발전할 가능성이 크며, 고속 저전력 통신 기술로 계속 사용될 전망이다.

0개의 댓글