반응형

 

TI_I2C_doc.pdf
0.12MB

I2C(Inter-Integrated Circuit)는 두 개의 신호선(SDA, SCL)만으로 여러 개의 장치를 연결할 수 있는 직렬 통신 방식이다.
기본 개념, 하드웨어 회로 구성, 동작 방식을 논리적으로 설명하면 된다.


📌 1. I2C 기본 개념

I2C는 2개의 신호선(SDA, SCL)을 이용하여 다중 장치와 통신하는 직렬 프로토콜이다.
마스터(Master)와 슬레이브(Slave) 관계가 있으며, 한 개의 마스터가 여러 개의 슬레이브를 제어할 수 있다.
풀업 저항(Pull-up Resistor)이 필요하며, Open-Drain 구조를 사용한다.
속도는 일반적으로 100kHz(Standard), 400kHz(Fast), 1MHz(Fast+), 3.4MHz(High Speed)로 동작한다.


📌 2. I2C 하드웨어 회로

I2C 회로 구성 시 기본적으로 필요한 요소:

  1. SDA (Serial Data Line): 데이터 송수신
  2. SCL (Serial Clock Line): 클럭 신호 제공
  3. Pull-up Resistors (풀업 저항, 일반적으로 4.7kΩ~10kΩ 사용)

 

SDA, SCL 라인은 풀업 저항을 통해 VCC에 연결되어야 한다.
MCU와 I2C 장치 간에는 데이터 송수신이 Open-Drain 방식으로 이루어진다.
Pull-up 저항이 없다면 신호가 Low에서 High로 전환되지 않아 데이터 송수신이 불가능하다.


📌 3. I2C 동작 원리

① 마스터와 슬레이브 구조

  • 마스터(Master): MCU(예: STM32, ATmega328)가 마스터 역할을 하여 통신을 시작하고 클럭을 제어.
  • 슬레이브(Slave): 센서, EEPROM, RTC 등의 장치는 슬레이브 역할을 하며, 고유 주소(I2C Address)를 가짐.
  • I2C는 여러 개의 슬레이브를 연결할 수 있으며, 각 슬레이브는 서로 다른 주소를 가진다.

② 데이터 전송 과정

  1. 마스터가 Start Condition(SDA를 Low로 전환) 생성
  2. 마스터가 슬레이브 주소 전송 (7-bit 또는 10-bit 주소)
  3. 슬레이브가 자신의 주소와 일치하면 ACK(응답) 신호 전송
  4. 마스터가 Read(읽기) 또는 Write(쓰기) 명령 전송
  5. 데이터 송수신 수행
  6. 마스터가 Stop Condition(SDA를 High로 전환) 생성하여 통신 종료

③ Start/Stop Condition

  • Start Condition: SCL이 HIGH일 때 SDA를 LOW로 변경 → 데이터 전송 시작
  • Stop Condition: SCL이 HIGH일 때 SDA를 HIGH로 변경 → 데이터 전송 종료

중요한 점: "I2C는 클럭을 마스터가 제어하며, 슬레이브는 마스터의 요청에 따라 데이터 전송을 수행한다."


📌 4. I2C의 Open-Drain 방식과 Pull-up 저항 역할

I2C 신호선은 Open-Drain 방식(즉, 강제로 High 출력하지 않음)을 사용하며, Pull-up 저항을 통해 High 상태를 유지한다.
마스터 또는 슬레이브가 LOW 신호를 보낼 때만 실제 Low 상태가 된다.
Pull-up 저항이 없으면 신호선이 High로 유지되지 않아 통신이 불가능하다.

인터뷰에서 이렇게 설명하면 좋다:

"I2C는 Open-Drain 방식을 사용하기 때문에, 신호선의 High 상태를 유지하기 위해 Pull-up 저항(보통 4.7kΩ~10kΩ)을 사용해야 합니다."


📌 5. I2C의 장점과 단점

장점

  • 배선이 단순 (SDA, SCL만 필요)
  • 여러 개의 슬레이브를 쉽게 연결 가능
  • 풀업 저항만으로 여러 전압 레벨에서 동작 가능 (3.3V, 5V 혼합 가능)

단점

  • SPI보다 속도가 느림 (최대 3.4MHz)
  • 버스 충돌 가능성이 있음 (멀티마스터 환경에서 충돌 방지 필요)
  • 노이즈에 취약할 수 있음 (긴 배선 시 신호 품질 저하 가능)

이렇게 설명하면 좋다:

"I2C는 단순한 배선과 다중 슬레이브 지원이 장점이지만, 속도가 상대적으로 느리고 노이즈에 취약한 단점이 있습니다."


📌 6. I2C 예상 질문 & 답변

Q1. I2C의 기본 동작 원리를 설명해 주세요.

답변
"I2C는 두 개의 신호선(SDA, SCL)을 이용하여 마스터와 슬레이브 간 통신을 수행하는 직렬 통신 방식입니다.
마스터가 클럭(SCL)을 제어하며, 슬레이브는 마스터의 요청에 따라 데이터를 송수신합니다.
시작(Start Condition)과 종료(Stop Condition) 신호를 사용하며, Open-Drain 방식이므로 Pull-up 저항이 필요합니다."


Q2. I2C에서 여러 개의 슬레이브를 어떻게 연결하나요?

답변
"I2C는 각 슬레이브가 고유한 주소(I2C Address)를 가지므로, 하나의 SDA/SCL 버스에 여러 개의 슬레이브를 병렬 연결할 수 있습니다.
마스터는 특정 주소를 가진 슬레이브와만 통신하므로 여러 개의 장치를 쉽게 연결할 수 있습니다."


Q3. I2C와 SPI의 차이점은 무엇인가요?

답변
"I2C는 SDA와 SCL 두 개의 신호선만으로 다중 슬레이브를 연결할 수 있는 직렬 통신 방식입니다.
반면 SPI는 MISO, MOSI, SCK, SS 최소 네 개의 신호선을 필요로 하며, I2C보다 속도가 빠릅니다.
I2C는 배선이 단순하지만 속도가 느리고, SPI는 고속 데이터 전송이 가능하지만 추가적인 SS(Slave Select) 핀을 필요로 합니다."


📌 7. 결론

📌 I2C는 두 개의 신호선(SDA, SCL)만으로 여러 개의 장치를 연결할 수 있는 직렬 통신 방식이다.
📌 마스터가 클럭을 제어하며, 슬레이브는 고유 주소를 통해 선택된다.
📌 Open-Drain 방식으로 동작하며, Pull-up 저항(4.7kΩ~10kΩ)이 필요하다.
📌 속도는 100kHz(표준) ~ 3.4MHz(고속)이며, 다중 슬레이브 연결이 가능하다.

반응형

+ Recent posts