PHPoC는 2선식 직렬 버스 통신방식인 I2C를 제공합니다.
I2C 데이터는 8비트 단위로 전송됩니다. 다음은 I2C 데이터의 구성을 나타낸 예 입니다.

I2C 데이터의 시작과 종료 조건은 다음과 같습니다.
| 구분 | SCL | SDA |
|---|---|---|
| 시작조건 | HIGH | HIGH > LOW |
| 종료조건 | HIGH | LOW > HIGH |
PHPoC의 I2C는 7비트 주소지정방식을 사용합니다. 주소 데이터의 LSB는 읽기 또는 쓰기를 나타내는 비트 입니다.

I2C 통신은 마스터가 읽기 또는 쓰기 프레임을 전송하면서 시작됩니다.
| 구분 | SCL | SDA |
|---|---|---|
| 읽기 | 8번째 HIGH 구간 | HIGH |
| 쓰기 | 8번째 HIGH 구간 | LOW |
I2C 마스터와 슬레이브는 상대방으로부터 8비트 데이터를 정상적으로 받으면 응답 확인(ACK)을 보냅니다. 정상적인 응답 확인은 SCL의 9번째 HIGH구간에서 LOW를 출력함으로써 이루어집니다. 해당 구간이 HIGH라는 것은 상대방이 데이터를 수신하지 못했다는 것을 의미합니다.
| 구분 | SCL | SDA |
|---|---|---|
| 응답 확인(ACK) | 9번째 HIGH 구간 | LOW |
| 응답 미확인(NACK) | 9번째 HIGH 구간 | HIGH |
다음은 4개의 I2C 데이터 통신 시나리오 입니다. 음영 표시가 되지 않는 부분은 마스터가 전송한 데이터이고, 음영 표시가 된 부분은 슬레이브가 전송한 데이터 입니다.



