由于 I2 C 总线的连线少,结构简单,可不用专门的母板和插座直接用导线互连各个设备,因而可大大简化系统的硬件设计。
I2 C 总线是以双向的数据线SDA 和时钟线SCL两根连线实现了完善的全双工同步数据传送。总线备用时SDA 和SCL 都必须保持高电平状态,只有关闭I2 C总线时才使SCL钳位在低电平。所有具有I2C 接口的芯片,其 SDA 线都接到总线的 SDA上,其时钟线 SCL 接到总线的 SCL。由于 I 2C 总线接口均为开漏(OD )或开集电极(OC )输出,从而总线上所有电路的输出能实现“线与”逻辑功能,故要求I2 C系统总线的输出端必须接上拉电阻。
总线的数据传输由主器件控制。主器件在时钟线(SCL )上产生时钟脉冲,在数据线(SDA )上产生寻址信号、启始信号、停止信号。任何被寻址选中的器件都被看成是从器件。每个具有I2 C接口的设备都有一个唯一的7位地址,以便于主控器寻访。I 2C 总线的数据传输格式如上图所示。
主器件发出启始信号后(SCL 为高时,SDA出现下降沿),接着发送寻址信号(由 7 位的从器件地址和数据方向位 R/W 组成,其中 R/W=‘0’表明数据发送到从器件;R/W= ‘1 ’表明主器件读取从器件的数据),注意先发送最高位。ACK 为应答信号,此时主器件在SCL 线上产生一个应答脉冲(第 9 个脉冲),当被选中的从器件接收到数据后,从器件将SDA 线拉低,这时主器件可以继续发送数据。当从器件由于某种原因不产生应答信号或全部数据传送结束后,主控器可产生一个停止信号来终止总线数据传输。此时SCL 线必须保持高电平,SDA 线出现由低到高的电平变化。
文章评论(0条评论)
登录后参与讨论