I2C 통신의 데이터 구조는 아래와 같습니다.

 

i2c001.jpg

[S] START bit

[Addr] 7bit address

[R/W] Read or Write

[A] Acknowledge

[Data] 8bit data

[P] STOP bit

 

8Bit 데이터를 전송할경우

i2c002.jpg 

[Slave Address] Slave device address

[Sub-Address]  Slave device 의 Sub-Address(레지스터 주소)

[Data] data

 

혹은

i2c005.jpg

[Slave Address] Slave device address

[Sub-Address]  Slave device 의 Sub-Address

[Data] Sub-Address의 data

[Data] Sub-Address +1 의 data

의 형태로 데이터를 전송합니다.

 

8Bit 데이터 Read는 아래와 같습니다.

 

i2c004.jpg

 Data 를 읽을  device의 Slave Address 와 Sub-Address를 전송후

[RS]Re-start 한후 데이터를 읽으면 됩니다.