最近一段时间工作上比较忙,一直没有抽出空来写文章与大家分享,这两天腾出些时间静下心来沉淀一番。看标题大家已经知道了是来总结I2C总线,我相信大家或多或少的都接触过I2C总线,这篇文章我们就由浅入深的仔细来研究研究,看看能不能挖掘些新东西,加深一下理解。
先说概念
I2C英文全称Inter-Integrated Circuit,字面意思是集成电路之间,也就是我们常说的I方C总线—I2C bus。它是一种串行通讯总线,使用多主从架构,由飞利浦公司(恩智浦NXP的母公司)在80年代开发,用于主板、嵌入式系统连接周边低速设备。
I2C由两条双向开漏线组成,这是一个很大的优势,接线简单。两条线利用上拉电阻将电位上拉。典型电位为+3.3V或+5V。标准传输速率为100Kb/s,低速模式10Kb/s。
物理层
下图为I2C总线的物理拓扑图,大家可以看到一共只有两条总线,一条SDA(serial data)数据线用来承载数据、一条SCL(serial clock line)时钟线用来控制数据收发时序。所有I2C设备的SDA都接到了总线的SDA上,SCL都接到了总线的SCL上。每个设备都有自己的唯一地址,以保证设备之间访问的准确性。