I2C概要


PHPoC提供双线型串行通信方法I2C。

I2C数据构成

I2C数据按8-bit单位传送。 下面是体现I2C数据构成的例。

i2c_overview_01

数据开始与终止

I2C数据的开始与终止条件如下。

区分 SCL SDA
Start HIGH HIGH > LOW
Stop HIGH LOW > HIGH

Slave地址指定方式

PHPoC的I2C使用7-bit地址指定方式。 地址数据的LSB是体现读或是写的字节。

i2c_overview_02

读 / 写

I2C通信通过master传送读或写桢。

区分 SCL SDA
Read 8th bit - HIGH HIGH
Write 8th bit - HIGH LOW

ACK / NACK

I2C master和slave自对方正常接收8字节数据时发送确认应答(ACK)。 正常的应答确认在SCL的第九HIGH区间输出LOW来执行。相应区间为HIGH证明对方没有接收到数据的意思。

区分 SCL SDA
Acknowledgement(ACK) 9th bit - HIGH LOW
No Acknowledgement (NACK) 9th bit - HIGH HIGH

I2C通信方案

下面是4个I2C数据通信方案。不是阴影部分为master传送数据的部分,阴影部分是slave传送的数据。

成功传送读写数据

i2c_overview_03

传送读写数据失败

i2c_overview_04

成功传送读取数据

i2c_overview_05

传送读取数据失败

i2c_overview_06