关于SCL和SDA为什么都要拉高至电源电压

  • 符合 I2C 总线开漏输出结构要求:I2C 是一种开放漏极(open - drain)或开集电极(open - collector)的通信协议,其 SCL 和 SDA 都是开漏输出结构。这意味着驱动器(主设备或从设备)只能将线拉低到低电平(逻辑 0),但不能主动将线拉高到高电平(逻辑 1)。上拉电阻的存在可以将信号线拉升至电源电压,在设备不驱动时使线路保持高电平,以满足 I2C 总线在空闲时信号线为高电平状态的要求。
  • 防止信号线浮空:没有上拉电阻时,SCL 和 SDA 线在设备不驱动时可能处于不确定的浮空状态,这会导致信号电平不稳定,影响通信的可靠性。上拉电阻可以防止这种浮空状态,确保信号线有明确的电平,使电路能正常工作。
  • 适应多设备通信:I2C 总线允许多个设备连接在同一条总线上,任何一个设备都可以驱动总线。上拉电阻使得每个设备在不工作时能保持总线的高电平,当多个设备同时连接到总线上时,不会因为某个设备处于高阻态而影响总线的电平状态,确保了通信的可靠性。
  • 实现总线仲裁:I2C 支持多主多从,当多个主设备同时抢占总线时需要仲裁机制。I2C 总线是通过线与机制来实现总线仲裁的,在 I2C 协议中定义 SDA 为高电平时,说明总线空闲主设备可以占用总线,占用后将其拉低开始传输数据。SDA 为低电平期间,标志总线已经被一个主设备占用其余主设备将退出。由于有上拉电阻,默认状态下 SDA 是高电平表示总线空闲,当总线上的一个设备将 SDA 拉低后,由于线与逻辑,SDA 整条线都为低,其余设备就无法抢占总线了,从而达到了仲裁的效果。
  • 简化电路设计:使用开放漏极或开集电极的驱动方式,设备只需要一个下拉开关来控制信号线的电平(拉低到地),而不需要额外的电路来推动信号线到高电平,电路更加简单,也减少了功耗。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值