IIC总线

来源:互联网 发布:企业级软件架构设计 编辑:程序博客网 时间:2024/05/01 05:25

I2C协议是一种二线的串行总线协议。最新的I2C规范,数据传输率可达3.4Mbps,且提供10位寻址。常见的设备都可以与I2C总线接口,包括EPROM、FLASH存储器、看门狗计数器和单片机等。

 

I2C总线由两条导线构成,数据导线称为串行数据线(SDA),时钟导线称为串行时钟线(SCL)。连接到总线上的设备称为执行设备,分两类:主执行设备和从执行设备。它们都可以是数据的发送器和接收器,但是数据的接收和发动作的发起者只能是主执行设备。正常情况下,I2C总线上的所有从执行设备被设置为高阻状态,而主执行设备保存高电平,表示空闲状态。

 

I2C总线上的数据传输用一个起始条件来启动。如下图所示,SDA信号发生由高到低的转换,同时SCL信号保持高,表示起始条件。I2C总线上的数据传输用一个终止条件来结束。如下图所示,SDA信号发生由低到高的转换,同时SCL信号保持高,表示终止条件。实际数据在起始和终止条件之间传输。

典型的I2C字节写入周期的操作过程是:主执行设备用一个起始条件启动传输,接着发送设备地址,该地址是要写入数据字节的设备的地址,以高位在前、低位在后的方式发送。1和0的发送如下图所示,图中主执行设备将数据位的值放在SDA信号线上,同时SCL信号线为低,SDA信号线上的值要一直保持到SCL信号线出现时钟脉冲。在发送接收设备的地址后,主执行设备发送一个0,接收设备在第一个ACK时钟周期使SDA信号线保持低,确认收到该地址。确认之后,主执行设备以高位在前、低位在后的方式发送一个字节数据。接收设备在第二个ACK时钟周期使SDA信号线保持低,确认收到数据。

 

典型的I2C字节读取周期的操作过程是:主执行设备用一个起始条件启动传输,接着发送设备地址,该地址是要读取数据字节的设备的地址,以高位在前、低位在后的方式发送。1和0的发送同上。在发送读取设备的地址后,主执行设备发送一个1,请求读取,并等待接收确认信号,接着发送设备发送一个字节数据,接收设备产生一个终止条件,确认数据的接收并终止传输。

原创粉丝点击