
比较器基础——输出级、输入范围与颤振的解决之道
一、比较器是什么——工作在开环的判决电路
功能
比较器(Comparator)只有一个核心任务:比较两个模拟输入电压的大小,输出一个二值(高/低)的结果。
- 同相输入端 ,反相输入端
- 当 时,输出高电平
- 当 时,输出低电平
输入是连续的模拟量,输出是离散的数字量,所以比较器本质上是模拟世界到数字世界的桥梁——ADC 的前端、过压保护的眼睛、PWM 发生器的心脏,背后常常站着一个比较器。
与运算放大器的区别
比较器和运放在符号上一模一样(都是 +、- 两个输入端),但它们是为不同任务设计的两种芯片,不能简单互换:
| 维度 | 运算放大器(Op-Amp) | 比较器(Comparator) |
|---|---|---|
| 工作方式 | 设计用于闭环负反馈 | 开环使用,无反馈 |
| 内部补偿 | 有补偿电容,保证闭环稳定 | 无补偿,不为线性放大优化 |
| 输出 | 模拟量(线性区) | 饱和到电源轨(数字式) |
| 响应速度 | 慢(受补偿电容拖累,退出饱和也慢) | 快(专为快速翻转设计) |
| 当对方用 | 运放当比较器:能用但慢,退出深度饱和需几微秒 | 比较器当运放:开环必饱和,无法线性放大 |
⚠️ 简单记法:运放追求"线性听话",比较器追求"果断判决"。运放里有补偿电容防止自激,代价是慢;比较器砍掉补偿换取速度,但一上电就饱和,永远只输出两个极端。所以能用比较器的地方别用运放凑合,反之亦然。
典型应用
- 过压 / 欠压检测、电池低电量报警
- 过零检测(把正弦波变成方波)
- PWM 信号产生(三角波与直流比较)
- 窗口比较(判断信号是否落在某区间内)
- 把缓慢变化的传感器信号转成数字触发
二、输出结构——为什么比较器常常需要上拉电阻 ★
这一节回答最常被问到的问题:比较器输出到底要不要加上拉电阻? 答案取决于它内部的输出级结构。比较器输出级有两种典型形式。
1. 推挽输出(Push-Pull / 图腾柱)
内部有两个输出管一上一下:
- 上管导通时,把输出拉高到正电源
- 下管导通时,把输出拉低到地
两管轮流工作,能主动输出高电平,也能主动输出低电平,不需要任何外部元件。输出电压由比较器自己的供电决定。
🔑 推挽输出的比较器不需要上拉电阻,接上负载直接用。
2. 开漏 / 开集输出(OD / OC)
内部只有一个下拉管,没有上拉管:
- 输出低电平:下拉管导通,把输出拉到地(低电平有驱动能力)
- 输出高电平:下拉管截止,输出端悬空(高阻态)——完全靠外部上拉电阻把电压拉上去
换句话说,开漏/开集结构自己给不出高电平。
⚠️ OD/OC 输出的比较器必须外接上拉电阻,否则输出永远只能在地电平和高阻之间跳,永远到不了真正的高电平。
什么时候必须加上拉电阻 ★(核心问题)
把上面的结论归纳成几条判别规则:
- 输出是 OD/OC 结构 → 必须加上拉电阻,否则没有高电平
- 输出是推挽结构 → 不需要上拉电阻,加了反而可能和内部上管打架
- 看数据手册:输出类型写 "Open Drain" / "Open Collector" 就是开路输出,要加上拉;写 "Push-Pull" / "Totem Pole" 就是推挽,不用加
- 经验型号:LM393、LM339 系列是经典的开集输出,几乎一定要加上拉电阻。这是新手最容易踩的坑——电路接好了,输出永远只有低电平,查半天才发现没加上拉
💡 一个简单的自检:如果比较器输出低电平正常、高电平却上不去(万用表量出来在 0V 附近或乱飘),第一个怀疑的就是漏了上拉电阻。
上拉电阻接到哪、取多大
- 接到 (比较器电源),高电平等于
- 也可以接到另一个电压:比如用 3.3V 供电的比较器,输出上拉到 5V,就能把 3.3V 逻辑转成 5V 逻辑。这正是开漏/开集结构做电平转换的能力所在,推挽输出做不到
- 取值权衡:
| 上拉电阻 | 优点 | 缺点 |
|---|---|---|
| 太大(如 1MΩ) | 功耗低、低电平灌流小 | 上升沿由 决定,慢,高频波形差 |
| 太小(如 100Ω) | 上升沿快 | 低电平时灌入电流大(),功耗高,可能超过下拉管灌流能力 |
| 典型 4.7kΩ~100kΩ(常用 10kΩ) | 平衡速度与功耗 | —— |
- 校核灌电流:输出低电平时,上拉电阻的电流 全部灌入比较器输出管,必须小于比较器的最大灌电流(LM393 典型 6~16mA)。例如 5V 上拉用 1kΩ,灌流就是 5mA,在范围内;用 100Ω 就是 50mA,肯定超了。
三、OD与OC的区别——开漏 vs 开集
很多人把 OD 和 OC 当同义词混用,它们本质相同(都是开路输出 + 外部上拉),区别只在输出管的制造工艺。
| 维度 | OD(Open Drain,开漏) | OC(Open Collector,开集) |
|---|---|---|
| 输出管类型 | MOSFET(场效应管) | BJT 三极管 |
| 制造工艺 | CMOS | 双极(Bipolar) |
| 低电平压降 | ,低压差,几乎不随电流变 | ,随灌流增大而升高 |
| 开关速度 | 一般更快 | 略慢(受存储电荷影响) |
| 典型型号 | 多数低压 CMOS 比较器 | LM393 / LM339 系列 |
| 静态功耗 | 较低 | 输入端需偏置电流,略高 |
🔑 共同本质:两者输出都只能主动拉低,高电平由外部上拉决定。正因如此,它们都能:
- 上拉到任意电压做电平转换(把输出电平适配到不同电源域的后级)
- 多路输出并联做"线或"(Wire-OR)——多个开漏/开集输出接在同一根线上、共用一个上拉,只要任一输出为低,整根线就被拉低;这是推挽输出做不到的(推挽并联会短路)
一句话:OD 是 CMOS 工艺的开路输出,OC 是双极工艺的开路输出,电气细节有别,但用法和"必须上拉"的规矩完全一样。
四、输入信号范围——共模电压的禁区
共模输入电压范围
比较器两个输入端的电压都必须落在允许的共模输入范围内,否则性能恶化甚至输出错误。数据手册里这个参数写作 或 "Common-Mode Input Voltage Range"。
注意是"两个输入端"——不仅被测信号要合规,参考电压也要在范围内。
超出范围的后果
- 输入级差分对退出正常偏置区 → 增益急剧下降,翻转阈值偏移
- 严重时发生相位反转(Phase Inversion):输出跳到与真实比较结果相反的极性。比如本该输出高,却输出低,逻辑完全颠倒
- 这类错误非常隐蔽,仿真里未必体现,上电才暴露
为什么有这个限制
输入级的差分对管需要一定压差才能正常工作。经典双极比较器有两种输入结构:
| 输入结构 | 共模范围 | 特点 |
|---|---|---|
| PNP 输入型 | 可达地(0V),但到不了正电源(约 ) | 能处理低端信号 |
| NPN 输入型 | 可达正电源,但到不了地 | 能处理高端信号 |
经典型号 LM393 的共模范围通常是 (PNP 输入),意味着输入电压不能顶到正电源,留 1.5V 余量。
Rail-to-Rail(轨到轨)输入
要覆盖 全程,需要轨到轨输入。这类比较器内部并联了两套差分对(一套管低端、一套管高端),在全范围都能工作。当信号可能接近电源轨时,应优先选 Rail-to-Rail 型号。
设计建议
- 估算被测信号和参考电压在比较器输入端实际呈现的电压范围,确认都落在 内
- 超范围时:用电阻分压把信号缩进范围、换用 Rail-to-Rail 比较器、或调整参考电平位置
- 留意"相位反转"这个隐藏陷阱,输入绝不能长时间压在范围之外
五、颤振(Chattering)——缓慢信号过阈值时的麻烦 ★
现象
当输入信号缓慢变化经过比较器的翻转阈值时,叠加在信号上的噪声会让输入电压在阈值上下快速来回。比较器增益极高,毫伏级噪声就被放大成满幅翻转,于是输出不再是干净的跳变,而是在 0 和 1 之间高频抖动——这就是颤振(也叫振荡、抖动)。
后级的计数器会乱跳、中断会被反复触发、继电器会啪啪打火——一切依赖"输出跳一次"的逻辑都会出错。
成因
- 单阈值比较器只有一个翻转点
- 信号缓慢爬升到阈值附近时,哪怕 1mV 的噪声都能让输入在阈值上下穿越多次
- 比较器响应又快,于是输出疯狂翻转
输入信号 ───────╱╲ 噪声 ╱╱─────── 缓慢上升过阈值
阈值 ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
输出 ─┐┌┐┌┐┌──────────────── 颤振!反复翻转
解决方案
方案 1:迟滞(正反馈)——首选 ★
引入施密特触发器结构:从输出端接一个正反馈电阻到同相输入端,让翻转阈值随当前输出状态而变。结果是产生两个阈值:
- 上升阈值 :信号上升时,必须超过它,输出才翻高
- 下降阈值 :信号下降时,必须低于它,输出才翻低
- 两者之差 称为迟滞量
只要噪声幅度小于 ,输出就稳如磐石,不会颤振。
🔑 迟滞的核心思想:"请神容易送神难"。一旦翻到高,就要降很多才肯回低;一旦翻到低,就要升很多才肯回高。两个阈值之间的"死区"把噪声吞掉了。
设计原则: 要大于信号上的噪声峰峰值,但又不能大到影响判决精度(迟滞太大,判决点会明显偏移)。
方案 2:RC 低通滤波
在输入端或输出端加 RC 滤波,滤除高频噪声。
- 优点:简单
- 缺点:引入延迟、拖慢响应,治标不治本,适合噪声主要是高频分量的场合
方案 3:后级消抖 / 锁存
用软件消抖(采样多次判定)或 D 触发器锁存,适合慢变信号(如按键、温度阈值)。
实践中,方案 1(迟滞)是最干净的硬件解法,几乎所有"正经"的比较器电路都会按需加一点迟滞。
迟滞电路怎么算
最常用的同相端正反馈接法:参考电压 经电阻 接到同相输入端,比较器输出经反馈电阻 也接到同相输入端,被测信号 接反相端。
利用叠加原理,同相端电压(也就是当前的翻转阈值)为:
- 输出为高()时:阈值是上升阈值的反向关系……实际更常见的是信号接反相端、阈值由同相端决定,于是:
迟滞量:
设计步骤:先定 和中心阈值,再根据想要的 反推 的比值,最后选具体阻值(通常 ,使迟滞量远小于参考电压)。注意 要代入实际输出电平——如果是开漏输出加 5V 上拉,,。
总结
| 概念 | 要点 |
|---|---|
| 功能 | 比较 与 ,输出二值(高/低),模拟到数字的桥梁 |
| 与运放区别 | 比较器开环、无补偿、饱和输出、响应快;运放闭环、有补偿、线性、慢。不可简单互换 |
| 推挽输出 | 主动拉高也主动拉低,不需要上拉电阻 |
| 开漏/开集(OD/OC) | 只能拉低,高电平靠外部上拉电阻 |
| 何时加上拉 | OD/OC 必须加;推挽不用加。LM393/LM339 是开集,必加 |
| 上拉电阻取值 | 典型 4.7k~100kΩ(常用 10kΩ),权衡速度与功耗;校核灌电流 不超最大值 |
| OD vs OC | 本质相同(开路+上拉),区别是输出管工艺:OD 是 MOS,OC 是 BJT。都能做电平转换和线或 |
| 共模输入范围 | 两输入端电压必须落在范围内;超出会增益下降甚至相位反转。LM393 约 |
| Rail-to-Rail | 输入可覆盖 全程,适合信号接近电源轨的场合 |
| 颤振 | 缓变信号过阈值 + 噪声 → 输出高频抖动 |
| 颤振解法 | 迟滞(正反馈,首选)、RC 滤波、后级消抖 |
| 迟滞量 | ,要大于噪声峰峰值 |
比较器是模拟电路里最"干脆"的角色——它不磨叽,不模棱两可,给它两个电压,它立刻报出谁大谁小。但这份果断也带来两个脾气:一个是不爱自己拉高电平(开漏/开集要靠你外接上拉),一个是阈值附近容不得噪声(缓变信号非得加迟滞不可)。摸清这两个脾气,比较器就成了电路里最可靠的"判决官"。
本文是硬件基础系列的一篇,属于有源器件主题。比较器常与运算放大器成对出现,建议结合后续的运放笔记对照阅读——同样三个引脚的符号,工作哲学却截然不同。