I2C란
I2C(Inter-Intergrated Circuit, 또는 TWI - Two Wire Interface)는 복수 개의 슬레이브 장치가 복수개의 마스터 장치와 통신하기 위한 프로토콜이다. SPI와 마찬가지로 하나의 완성품을 구성하는 요소들 간의 근거리 통신을 위해 고안되었다.
정식 명칭은 I 2C이다. 따라서 I2C는 "아이투씨"가 아니라 "아이스퀘어드씨"라고 부르는 것이 맞다. Inter-IC라고도 부르지만, 잘 사용되지는 않는다. 주로 MCU, EEPROM, ADC, DAC, I/O 인터페이스와 같은 저속의 임베디드 시스템의 주변장치들(Peripheral)에 사용된다
하나의 마스터와 다수의 슬레이브로 연결이 구성되며, 마스터에서 기준클럭(SCL)을 생성하고, 이 클럭에 맞춰 데이터(SDA)를 전송 및 수신합니다.

각 송신과 수신은 구분(송신과 수신이 동시에 이루어지지 않음)되어 있는 반이중(Half-Duplex) 방식입니다.
각 슬레이브는 개별 주소(어드레스)를 가지고 있으며, 이 주소를 통해 식별이 가능합니다.
즉, 기준클럭과 데이터는 I2C 네트워크의 모든 디바이스에게 전달되고, 해당 주소를 가진 디바이스만 응답하는 방식으로 서로 데이터를 주고 받습니다.

SDA, SCL 선은 기본 값(디폴트)으로 HIGH인 상태여야 합니다. 그러므로 이 두 개의 선이 HIGH인 상태가 되기 위해서는 반드시 버스에 PULLUP 저항을 달아주어야 합니다. 왜냐하면 I2C에서 사용되는 두 선은 SDA와 SCL로 구성되어 있습니다. 통신이 개시되었을 때 SDA는 데이터를 주고 받는 역할을 하고 SCL은 동기화를 위한 CLOCK 역할을 합니다. 여기서 Master와 Slave 각각에 SDA와 SCL을 바로 연결해주기만 하면 되는 것이죠. 그러나 이러한 회로만으로는 오픈 드레인(회로에 + 전압이 걸리지 않는 상황) 상태가 되기 때문에 SDA와 SCL 회로에 풀업 저항(Pull-up resistor)을 달아 전압을 공급해 줘야 합니다. 각각의 신호선은 PULLUP 저항으로 연결되어 있어서 어떤 장치도 신호선을 LOW로 만들지 않는한 신호는 HIGH로 유지 됩니다.
장점
- SDA와 SCL 두 가닥의 선만으로 데이터 송수신이 가능하다.
-
동기식 통신이므로 비동기식 통신인 UART 등에 비해 안정적이다.
-
BUS형태로 한개의 I2C MASTER에 다수의 I2S SLAVE 장치를 연결 가능하다.
단점
-
속도가 느리다.(표준 모드 100kbps) UART보단 빠르지만 SPI에 비교하면 느리기 때문에 애매한 경우가 많다.
-
반이중 통신이므로 한쪽에서 데이터를 보내는 중일 때는 반대편에서 데이터 전송이 불가능하다.
-
구조상 복잡하기 짝이없어서 사용하기가 힘들다.
-
그냥 선만 연결해주면 되는 다른방식에 비해서 전송을 위해서는 별도의 회로를 구성해줄 필요성이 있다.
'통신' 카테고리의 다른 글
SPI (0) | 2022.02.16 |
---|---|
LoRa (1) | 2022.02.15 |
WIFI (0) | 2022.02.14 |
Bluetooth (0) | 2022.02.14 |
UART (0) | 2022.02.11 |