최근 수정 시각 : 2024-10-04 15:28:26

I2C

1. 개요2. 장점3. 단점

1. 개요

Inter-Integrated Circuit

필립스에서 개발한 통신 방식이다. 원 목적은 DAC등의 칩셋과 제어칩셋간 사운드 데이터를 전송하기 위한 통신용으로 사용하기 위한 통신규격이지만[1] 현재는 IC간 통신으로 많이 쓰이며 여러 장비를 연결할수 있다는 장점 때문에[2] 센서류에서 많이 활용된다.

2. 장점

  • SDA와 SCL 두 가닥의 선만으로 데이터 송수신이 가능하다.
  • 동기식 통신이므로 비동기식 통신인 UART 등에 비해 안정적이다.[3]
  • BUS형태로 한개의 I2C MASTER에 다수의 I2S SLAVE 장치를 연결 가능하다.

3. 단점

  • 속도가 느리다.(표준 모드 100kbps) UART보단 빠르지만 SPI에 비교하면 느리기 때문에 애매한 경우가 많다.[4]
  • 반이중 통신이므로 한쪽에서 데이터를 보내는 중일 때는 반대편에서 데이터 전송이 불가능하다.
  • 구조상 복잡하기 짝이없어서 사용하기가 힘들다.[5]
  • 그냥 선만 연결해주면 되는 다른방식에 비해서 전송을 위해서는 별도의 회로를 구성해줄 필요성이 있다.[6]


[1] 따라서 I2C에서 파생된 I2S라는 규격이 있으며 이규격은 사운드 칩셋 쪽에서 많이 쓰인다.[2] UARTSPI와는 다르게 통신규격에서 통신 주소를 지정해놓으며 7bit로 128개의 공간을 가지지만 16개의 예약된 공간을 제외한 112개의 노드를 동시 연결할 수 있다. 하지만 실제로 112개까지 연결하는 경우는 거의 없고 이 경우에는 TCP/IP를 더 많이 사용한다.[3] 다만 UART도 필요하면 동기식으로 쓸수있다. 복잡해지는 관계로 그렇게 안할뿐.[4] SPI는 클럭속도에 따라서 수십 Mbps 수준의 통신 속도도 쓸수있다. UART는 이거보단 느리지만 대신에 이쪽은 전이중 통신이 된다는걸 고려해야 된다.[5] UART나 SPI 같은 경우에는 제어 레지스터가 3~4개 정도 뿐이지만 I2C는 제어레지스터가 5개를 넘어가고 주소값에서부터 전송 플래그 상태까지 확인해줘야될 부분이 많다.[6] UART는 접지만 잘연결되어있고 2선만 꼽혀있으면 통신이 잘되지만 I2C는 풀업저항을 사용해줘야된다. 센서모듈은 내부에 풀업저항을 내장하고 있는 경우가 많지만 직접 보드를 설계할 경우 사전에 풀업저항에 대한 고려가 있어야된다.

분류