简介
IIC(也称I2C或I2C)总线是Philips公司开发的一种简单、双向二线制同步串行总线,是Inter-Integrated Circuit的缩写。
IIC只用两条双向线,一条SDA(Serial Data Line)和一条SCL(Serial Clock Line),两条都是开漏输出,需要通过上拉电阻接VCC。IIC是一个多主机的总线,任何连接到总线的节点都可以作为主机和从机,但同一时刻只能有一个主机。
IIC的理论理想传输距离为15M,但是由于干扰和传输速率的提高,实际上会远小于15M,一般只适合用于板极器件的通信,不适合中长距离通信。在高速模式下,IIC传输速度在标准模式下可达100Kbps,快速模式下可达400Kbps,高速模式下可达3.4Mbps,但是速度越快可靠性越低。
硬件连接
主机和从机通过上图的方式接入总线,前面说到,IIC总线的SDA和SCL均需要通过上拉电阻接VCC。IIC使用7位寻址,除去0000000的广播地址,理论上一条IIC总线可以挂载27 - 1 = 127个节点,每个节点有一个地址。
通讯过程
1)位传输
IIC怎么通过SDA和SCL两条线来传输0和1比特位呢?首先SCL线必须是由主机时钟控制的,否则就乱套了,SDA主机从机都可以控制。如