I2C

来源:互联网 发布:太原程序员招聘 编辑:程序博客网 时间:2024/05/16 15:53

 

在网上淘了一把I2C,呵呵先看看别人试如何说的哦!

i2c是英文“inter   integrated   circuit”的缩写,中文意思是“集成电路之间”。总线是用来传送信息的公用线。i2c总线就是集成电路之间传送时钟脉冲与数据的公用线路。采用i2c总线控制就是将微处理器的scl、sda用总线与其它集成电路或存储器连接起来,通过总线来交换信息,实行控制。这样可以减少印制板连接线;而且便于调试与测试;在开发新产品时,由于电路单元可直接在总线上接入和分离,可以很方便地在一个产品的基础上,完成一系列新产品的开发。  

   i2C数据传输的格式是:启动条件   -->   从地址   -->   读写   -->   确认   -->   子地址   -->   确认   -->   传输数据   [n(8bit+确认位)]   -->   停止条件  

  i2c总线传输数据首先要满足启动条件。启动条件是:时钟线为高电位时数据线由高电位转向低电位。启动条件通常由微处理器产生。mpu产生启动条件后,接着传送7位二进制数组成的“从地址”,所谓“从地址”就是i2c总线所连接的各集成电路的编号;例如ta8880cn的从地址是1000100、ta8776n的从地址是1000000,不同的集成电路有不同的从地址。mpu若传送从地址1000100,ta8880cn就接收数据,而ta8776n则不能接收数据。传送从地址之后,传送1bit的读写位;读写位如为“0”,表示mpu向其他集成电路发送数据,即写入数据;如为“1”表示mpu接收其他集成电路发送的数据,即读入数据。第9位是确认位,此时mpu发送的时钟脉冲scl线为高电位,接收数据的集成电路必须把sda线电位拉低到低电位,才确认接收数据,即传送的数据才有效。接着再传送8bit的“子地址”。所谓“子地址”,就是在被控制的集成电路中存放各种控制数据的存储单元的地址。例如ta8880cn子地址00000000存放白峰值限幅器及色饱和度控制数据。子地址00000001存放锐度调整开关与色调控制数据。子地址传送后同样要有确认位。然后一个字节接一个字节地传输数据,每一个字节是8bit长,后面都要跟随一个确认位,直到mpu发出停止条件为止。停止条件是:当scl线在高电位时,sda线由低电位变为高电位。

发表者:tony1976

至于讲得那么复杂吗?只要找到一个应用i2c总线的ic资料,一看它的通讯时序图就什么都明白了.你可以上www.21ic.com上去查一下ic资料(如2313)

自己也开了一些这方面的资料,现将自己的看法写下来。i2c用两根先就够了SDA和SCL,发送方式如下所示:

主芯片                       从I2C芯片

起始位------------>

          <-------------应答                

从器件地址(R/W)--------->

        <----------------应答

从器件子地址---------->

       <-------------------应答

数据-------------------->

     <----------------------应答

结束位------------------>

这里主要要注意带有子地址的i2c器件,及分页寻址的器件!

多加练习,慢慢就会理解了哦!非常重要的一个东东哦!

o(∩_∩)o...!    

 

原创粉丝点击