为什么I²C只有上拉电阻(面试题)?
稍微扩展乔恩的答案:
是的,这与您要使用的 MOSFET 有关。
N 沟道 MOSFET 在开关逻辑方面比 P 沟道要好得多,因为:
- 它们通常具有低得多的阻力 (\$R_{DSON}\$)
- 他们更快地打开和关闭
因此,对于开漏配置(这就是 I2C),使用 N 沟道 MOSFET 的“空闲高”布置而不是 P 沟道 MOSFET 的“空闲低”来创建它要便宜得多,也更容易。
第三种选择是使用 N 沟道 MOSFET 的“低电平空闲”,但为此,您需要一个高压栅极驱动器将栅极电压提高到远高于源电压以使 MOSFET 导通。对于小型通信总线不实用,但这种布置实际上在 H 桥中非常普遍地用于电机驱动,您希望在 H 桥的高端和低端之间具有相同(或相似)的响应。在 H 桥中使用 P 通道和 N 通道对通常意味着您必须在关闭 P 通道和打开 N 通道之间加入一个死区,因为这需要更长的时间,并且会降低您的电源效率.
但对于需要高速、低成本和使用简单的 I2C 等小型通信总线,具有 N 沟道 MOSFET 和上拉电阻的“空闲高电平”是迄今为止最具成本效益的。
被动上拉/主动下拉的另一个优点是它可以在一系列电源电压下工作。请注意,数字高电平和低电平由 IIC 明确指定。这些电平足够低,可以使用 3.3 V 上拉。因此,可以构建同时使用 5 V 和 3.3 V 电源的设备。事实上,IIC 总线线路可上拉至 3.3 V,这将适用于总线上以不同电压单独供电的混合设备。
虽然 NMOS 在速度/面积方面确实优于 PMOS,但当您谈论一个或两个引脚上的驱动器时,这种差异确实很小。毕竟,大多数输出驱动器实际上是图腾柱类型,需要 NMOS 和 PMOS,所以无论他们选择下拉还是上拉配置,他们最终都会得到比图腾更小的输出驱动器-极司机。
但是 NMOS 开漏输出相对于 PMOS 开漏输出有一个好处,它并不直接应用于 I2C:当 VCC 为正时,NMOS 开漏允许具有不同 VCC 电平的芯片相互连接。这就是(部分)为什么有众多 NMOS 开漏分立逻辑 IC 可用的原因。
另一方面,我不知道市场上有任何可用的 PMOS 开漏芯片。事实上,我不相信我曾经在任何芯片上遇到过 PMOS 开漏输出。(我用过很多次 ECL,它的 NPN 开路发射极输出与 PMOS 开漏极相似)
NMOS 开漏分立逻辑芯片的可用性使得电子设计人员比 PMOS 开漏更熟悉 NMOS 开漏。
分立芯片的熟悉度和可用性(例如用于原型设计)可能会影响 I2C 的设计人员选择 NMOS 开漏配置。
我想答案可以追溯到为什么我们首先使用否定的接地约定(这在半导体时代之前肯定不是无处不在)。其原因是 N 沟道器件比 P 沟道器件具有更好的性能,这是由于其中使用的多数载流子类型的物理特性。
在集成电路的早期,这是一个相当严重的限制,因此人们倾向于使用 N 沟道(或 NPN)晶体管来实现可能的最高性能。由此我们得到了一个负接地系统和集电极开路输出,需要使用上拉电阻而不是下拉电阻。
当然,I2C 总线的速度并不高,所以没有理由不能使用下拉电阻来实现,但也没有优势。所以我们坚持惯例,它使用引体向上。