IIC的概述
(1)I2C总线是一种串行数据总线,只有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL,两根线可以挂多个设备。I2C设备(绝大多数)里有个固定的地址,只有在两条线上传输的值等于I2C设备的固化地址时,其才会作出响应。通常我们为了方便把I2C设备分为主设备和从设备,基本上谁控制时钟线(即控制SCL的电平高低变换)谁就是主设备。
(2)I2C总线通过上拉电阻接正电源。当总线空闲时。两根线均为高电平。连到总线上的任意器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。上拉电阻一般在4.7~10k之间。
空闲状态
当IIC总线的数据线SDA和时钟线SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。
三种信号
(1)起始信号:SCL为高电平期间,SDA出现下降沿
(2)终止信号:SCL为高电平期间,SDA出现上升沿
注意:起始信号和终止信号都是由主机发送的。在起始信号产生之后,总线就处于被占用的状态,在终止信号产生之后,总线就处于空闲状态。
(3)应答信号:发送器每发送一个字节(8个bit),就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。应答信号为低电平时,规定为有效应答位(ACK,简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。
即每当发送器传输完8bit的