I2C设备想输出0时给NMOS栅极1(导通),想输出1时给栅极0(关断);而总线电平是所有设备行为的叠加结果。默认输出是高电平。
I²C总线的MOS实现原理
1. 物理结构
所有设备的SDA(数据线)和SCL(时钟线)均采用 NMOS + 外部上拉电阻结构。
-
NMOS: 当栅极(G)电压相对于源极(S)电压高于其阈值电压
Vth
时导通。可以理解为:高电平(1
) 有效导通。NMOS擅长将漏极(D)电压下拉到接近源极(S)电压(通常是Vss
)。 -
PMOS: 当栅极(G)电压相对于源极(S)电压低于其阈值电压
Vth
时导通。可以理解为:低电平(0
) 有效导通。PMOS擅长将漏极(D)电压上拉到接近源极(S)电压(通常是Vdd
)。
2. 关键特性
-
线与(Wire-AND)逻辑:
任意设备拉低总线(NMOS导通),总线即为0;所有设备释放总线(NMOS关断),总线被Rp上拉为1。 -
高阻态实现:
NMOS关断时,输出端与GND断开 → 等效高阻态(高阻抗状态),不影响其他设备驱动。 -
外部上拉电阻(Rp)必要性:
提供逻辑高电平的电流路径,限制上升时间
NMOS栅极控制信号与总线状态的对应关系
设备欲输出逻辑 | 设备内部给NMOS栅极的信号 | NMOS状态 | 总线实际电平 | 电流路径 |
---|---|---|---|---|
逻辑0 (主动拉低) | 高电平 (Vdd) | 导通 | 低电平 (0V) | Vdd → Rp → NMOS → GND |
逻辑1 (释放总线) | 低电平 (0V) | 关断 | 高电平 (Vdd) | 无电流 (Rp维持高电平) |
✅ 关键结论:
当设备需要输出逻辑0时,它向NMOS栅极发送高电平(导通NMOS);需要输出逻辑1时,向栅极发送低电平(关断NMOS)。
这是开漏输出(Open-Drain)的核心特性!
工作原理分步解析
1. 设备主动拉低总线(输出逻辑0)
2. 设备释放总线(输出逻辑1)
多设备协同下的“线与”逻辑
总线电平的集体决策
设备1 NMOS栅极信号 ──┐
设备2 NMOS栅极信号 ──┤
... ├─○─ SDA/SCL
设备N NMOS栅极信号 ──┘
▲
Rp → Vdd
-
总线为低电平的条件:
任意一个设备输出逻辑0(即其NMOS栅极为高电平 → NMOS导通)。 -
总线为高电平的条件:
所有设备均输出逻辑1(即所有NMOS栅极为低电平 → NMOS全部关断)。
✨ 这就是“线与”(Wire-AND)逻辑:
总线电平 = 设备1输出 AND 设