IIC(Inter-Integrated Circuit)又称I2C,是是IICBus简称,所以中文应该叫集成电路总线。是飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展而来的一种同步串行半双工通信总线方式。该总线允许同时连接多个设备(芯片)。每块芯片在总线上拥有特定的地址。

IIC总线规定,设备在空闲时,两根总线都处于高电平状态。为保证这种状态,数据线SDA和时钟线SCL都要外接上拉电阻。

I2C时序:
高位先行(起始信号后第一个字节:设备地址(高7位) + 数据流向位(低1位))
0:主机发送数据给从机(写)
1:从机发送数据给主机(读)

起始信号:SCL时钟信号线为高电平时,SDA数据信号线由高变低出现下降沿
数据传输:
SCL时钟信号线为高电平时,SDA数据信号线电平保持稳定,此时接收方采样数据
SCL时钟信号线为低电平时,SDA数据信号线电平可以改变,此时发送方发送数据
应答信号:第9个时钟周期,接收方需要向发送方回复应答信号(ACK 低电平 NACK 高电平)
结束信号:SCL时钟信号线为高电平时,SDA数据信号线由低变高出现上升沿
I2C通信速率:100KHZ、400KHZ、1.xM、3.xM
i2c写时序 :
1. 主机发送起始信号 + 设备地址 + 写位, 等待从机ACK应答
2. 主机发送寄存器地址,等待从机ACK应答
3. 主机向从机发送数据,等待从机ACK应答
4. 主机发送停止信号
i2c读时序 :
1. 主机发送起始信号 + 设备地址 + 写位,等待从机ACK应答
2. 主机发送寄存器地址,等待从机ACK应答
3. 主机重发起始信号 + 设备地址 + 读位,等待从机ACK应答
4. 主机接收从机数据,主机回复ACK应答
5. 当主机接收完最后一个字节数据,向从机回复NACK应答
6. 主机发送停止信号
网硕互联帮助中心

评论前必须登录!
注册