在嵌入式硬件设计中,输出电路的选择直接影响系统可靠性和信号质量。推挽输出和开漏输出是两种最常见的输出结构,它们各有特点,适用于不同场景。
推挽输出电路由两个晶体管组成,一个负责"推"(输出高电平),一个负责"挽"(输出低电平)。这种结构的特点是:
开漏输出(或开集输出)则只有下拉能力,需要外部上拉电阻才能输出高电平。其特点是:
提示:开漏输出在I2C等总线协议中广泛应用,正是因为它允许多个设备共享同一总线而不会产生冲突。
推挽电路的核心是一对互补的晶体管(通常为NPN和PNP三极管或N沟道和P沟道MOSFET)。当输入信号为高电平时,上管导通,下管截止,电流从电源通过上管流向负载,这就是"推"的过程。反之,当输入为低电平时,下管导通,上管截止,电流从负载通过下管流向地,完成"挽"的动作。
这种结构的优势在于:
设计推挽电路时需要考虑几个关键参数:
对于三极管推挽电路,基极电阻的选择尤为重要。电阻太小会导致基极电流过大,增加功耗;太大则可能无法充分驱动晶体管进入饱和区。一般建议:
开集输出(Open Collector)是三极管实现的开漏结构。如图所示,集电极悬空作为输出端,使用时必须外接上拉电阻。当三极管截止时,输出被上拉至高电平;当三极管导通时,输出被拉低至接近地电位。
这种电路有几个重要特点:
开漏输出(Open Drain)是MOSFET版本的开集输出。由于MOSFET的栅极几乎不消耗电流,使得开漏输出特别适合以下场景:
MOSFET开漏输出的优势:
注意:使用三极管实现开集输出时,必须确保基极电流足够大,否则三极管可能工作在线性区,导致过热损坏。而MOSFET则没有这个问题。
| 特性 | 推挽输出 | 开漏/开集输出 |
|---|---|---|
| 输出能力 | 强,高低电平都能主动驱动 | 弱,只能主动拉低 |
| 速度 | 快,上升下降时间短 | 上升慢(依赖上拉) |
| 电平转换 | 困难 | 容易 |
| 并联能力 | 不能直接并联 | 可以并联 |
| 功耗 | 较高(有直通风险) | 较低 |
| 电路复杂度 | 较高 | 较低 |
推挽输出适合:
开漏/开集输出适合:
直通电流问题:在高低电平切换的瞬间,可能出现上下管同时导通的情况,造成大电流短路。解决方法:
热设计:推挽电路在大电流工作时,晶体管可能发热严重。建议:
上拉电阻选择:上拉电阻值需要权衡速度和功耗:
电平转换实现:利用开漏输出实现3.3V到5V电平转换的典型电路:
总线冲突处理:多个开漏输出并联时,需要考虑:
在工业控制等需要电气隔离的场合,常常使用光耦实现隔离输出。光耦输出端同样可以采用推挽或开漏结构。
光耦推挽输出提供完全隔离的强驱动能力,典型电路包括:
这种结构的优势是:
光耦开漏输出常用于隔离总线信号,如隔离I2C。设计要点:
在实际项目中,我经常使用高速光耦(如6N137)来实现100kHz以上的隔离I2C通信。关键是要选择足够小的上拉电阻(如1kΩ)来补偿光耦的延迟。