清华大学-曾鸣-《ARM微控制器与嵌入式系统》I2C总线(一)

I2C是一种双向2线制同步串行通讯接口,是一类非常经典的串行总线通讯,理解好I2C通讯会帮助理解USB通讯、以太网通讯中的握手、数据帧等环节。

I2C的发展历史:

SPI串行通讯主要是由MOTOROLA公司提出的,MOTOROLA公司的半导体部门独立出来成为后来的freescale。I2C通讯是由PHILIPS公司提出的,PHILIPS公司的半导体部门独立出来成为后来的NXP。2015年NXP公司并购freescale公司。

I2C(Inter IC Bus)的基本特征:

  • 串行
  • 同步(主机产生时钟线)
  • 单端(时钟和数据线上的信号是单端而非差分,用3.3V或5V代表逻辑1)
  • 双向(但非双工,因此需要有协议规定数据传输的方向)
  • 主从(Mater/Slave)
  • 总线(Bus)

I2C(Inter IC Bus)的电气特性:

  • SDA 串行数据线
  • SCL 串行时钟线
  • 所有的SDA引脚,所有的SCL引脚,都是逻辑“与”的关系(只要总线上有任何一个主/从输出逻辑0,则总线对地导通变为0电平)
  • SDA和SCL都接了上拉电阻(Pull-Up)
  • 总线空闲时,都是高电平(不消耗电流)
  • 兼容性好,可以是5V或3.3V电平标准(需和主/从机支持的电平标准匹配)

如果将SDA和SCL的电平状态看做是两只小孩子玩的氢气球,将氢气球飘上去和拉下来的状态看做是SDA或SCL线的先平状态,飘起来的时候为高电平,拉下来的时候为低电平。然后将拉挂载在SDA和SCL线上的主/从设备看做是拉着氢气球的孩子们。平时我们是将这两只氢气球拴着,这时候两只氢气球都是飘起来的,即SDA和SCL都为高电平。这时候有一些小朋友过来,他们共同用两只手分别牵着这两只氢气球。当所有小孩都不往下拉的时候氢气球是飘上去的(SDA或SCL为高电平),这时候小孩子们完全不用费力气(总线空闲时不消耗电流)。当有一个小孩的任何一只手用力(SDA或SCL需消耗电流)往下拉时,对应的氢气球就会被拉下来(SDA或SCL为低电平)。

I2C(Inter IC Bus)的优点:

I2C(Inter IC Bus)的电平逻辑:

I2C(Inter IC Bus)的起始和停止信号:

猜你喜欢

转载自blog.csdn.net/weixin_43885532/article/details/109956731