I2C总线

  1. I2C结构

I2C只使用两条双向漏极开路,串行数据线(SDA)和串行时钟线(SCL),数据线用于传输数据,时钟线用于同步数据收发。SDA和SCL总线都需要接上拉电阻,当总线空闲时,两根线均为高电平。连接到总线上的任意器件输出低电平都会将总线信号拉低。I2C允许相当大的工作电压范围,但典型的电压准位为+3.3V或+5v。

I2C的参考设计使用一个7比特长度的地址空间,但保留了16个地址,所以在一组总线最多可和112个节点通信(应该为2^7=128个,但是其中16个指令具有特殊定义,所以剩下112)。

                                 

I2C时序说明:

  1. 在SCL保持高电平的同时,通过将SDA拉低来作为启动条件(S),启动数据传输。
  2. SCL被拉低,并且SDA设置第一个数据位电平,同时保持SCL为低(在蓝色条形时间内)。
  3. 当SCL上升到第一位(B1)时,对数据进行采样(接收)。为了使位有效,SDA不得在SCL的上升沿和随后的下降沿(整个绿条时间)之间改变。
  4. 重复此过程,在SCL为低电平时SDA转换(整个蓝条时间),而在SCL为高电平(B2,... Bn)时读取数据。
  5. 最后一位之后是时钟脉冲,在此期间,SDA被拉低以准备停止位。
  6. 当SCL上升在停止条件(P),随后SDA上升来结束数据传输

当 SCL 线是高电平时 SDA 线从高电平向低电平切换,这个情况表示通讯的起始。

当 SCL 是高电平时 SDA线由低电平向高电平切换,表示通讯的停止。

I2C使用 SDA信号线来传输数据,使用 SCL信号线进行数据同步。SDA数据线在 SCL的每个时钟周期传输一位数据。传输时,SCL为高电平的时候 SDA表示的数据有效,即此时的SDA为高电平时表示数据“1”,为低电平时表示数据“0”。当SCL为低电平时,SDA的数据无效,一般在这个时候 SDA进行电平切换,为下一次表示数据做好准备。

常见的I2C总线依传输速率的不同而有不同的模式:标准模式(100 kbit/s)、低速模式(10 kbit/s),但时钟频率可被允许下降至零,这代表可以暂停通信。而新一代的I2C总线可以和更多的节点(支持10比特长度的地址空间)以更快的速率通信:快速模式(400 kbit/s)、高速模式(3.4 Mbit/s)超高速模式(5 Mbit/s)。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值