比较器,迟滞比较器

news/2024/9/12 11:13:40

自记:

一、什么是比较器?

比较器,具有两个模拟电压输入端UIN+和UIN-,一个数字状态输出端UOUT,输出端只有两种状态,用以表示两个输入端电位的高低关系:

UH代表高电平,UL代表低电平,具体的电位值,取决于系统的定义。常见的数字系统中,3.3V代表高电平,0V代表低电平;也有12V/5V代表高电平,0V代表低电平。

高低电平的本质:可以明显区分的电位。

实现比较器的方法:

  • 专门的比较器
  • 运放实现比较器(不推荐)

二、用运放实现比较器

用运放实现比较器,局限性较大,一般不被建议,在要求不高的场合,运放可作为比较器。

三、简单的运放比较器

1、理想比较器

作比较器应用时,一般都是将一个输入端接成固定电位,称为基准,用UREF表示,用另一个输入端接被测电位uI,用于衡量被测电位与基准的关系。

理想运放与其输入输出关系

上图为理想运放与其输入输出关系。图中输出只有两种状态:UH和UL。用运放实现的比较器,具有极高的开环增益(不是工作在负反馈状态下):

  • 输入电压大于基准电压时,两者的差乘以开环增益,一般都会超过正电源电压,而使实际运放输出为正电源电压(轨对轨运放)
  • 输入电压小于基准电压时,两者的差(负值)乘以开环增益,一般都会低于负电源电压,而使运放的实际输出为负电源电压。

2、实际比较器

实际比较器

该曲线中的红色虚线区域为比较器的不灵敏区。发生在输入电压非常接近基准电压时,输出是一个不确定的值。理想运放组成的比较器,不灵敏区为0.

这里有个思考的问题:不灵敏区越小越好或者说比较器越灵敏越好吗?

四、比较器的灵敏度问题

对于一个过于灵敏的比较器,往往会给系统带来麻烦。因为日常生活的输入信号,它并不是一个理想的信号,它是包含噪声信号的。

比较器灵敏度问题

将图中蓝色区域展开,可发现:对于一个非常灵敏的比较器, 噪声信号是波动的,经常会在某个点低于基准点,从而使比较器发生翻转。这就形成了有点所示的很多较小时间的脉冲,而这往往是不准确的。

举个例子:生活中有些场所是有人员限制的,在进出口安装红外发生器和接收器,一旦有人经过就产生一个脉冲,但是给与比较器判断的信号是有干扰的,如果明明进去一个人,但是像右图所示产生了7个脉冲,判断有7个人进去了,这是不准确的。我们可以通过软件编程的方式判断脉冲的时间,过小的时间不可能进去一个人,从而剔除干扰信号;也可以在模拟电路阶段采取迟滞比较的方式来剔除。

如果把基准电压从单个变成两个呢?只有一个基准电压,称为单门限比较器

五、迟滞比较器

迟滞比较器

如图所示:两个黄线表示两个基准电压,可以看出右边黄线区间内的噪声信号被滤除了,虽然这种情况还是存在噪声干扰,但是明显比单门限好得多。这两个基准电压越接近,效果就越接近单门限的效果。

迟滞比较器

原理:

当输入电压足够负时,运放的负输入端电压总是小于正输入端,因此输出一定是正电源电压+VCC(近似),此时运放的正输入端作为比较基准,为kVCC

k=R1/R1+R2

随着输入电压逐渐增大,工作点沿着红色线一直向右移动, 到达B点,输入电压大于kVCC,此时运放的正输入端电压小于负输入端电压,输出变为-VEE,即从B点处红色跌落。此时,比较基准立即改变:由原先的kVCC变为-kVEE。这就表示:此时就算输入电压发生轻微的逆向翻转,比较器也不翻转。

图中:假设从 A 开始,到 B 点翻转,到 C点,红色线一直向右,然后以绿色线回转到达kVCC 处,比较器不翻转,沿着绿色线一直到 D 点,才回到 A 点(重新回到高电平)。

拓展:

这个比较器的输出状态,不仅仅与输入状态相关,还与当前的输出状态有关,使得输入输出伏安特性曲线,呈现出类似迟滞回线的形态,因此称为迟滞比较器。

迟滞比较器看起来比较迟钝,但是带来的好处是:只有明确的、强有力的输入,才能引起输出改变,而一旦改变,想要恢复,也得特别厉害的反向动作。

迟滞比较器

六、多种形态的迟滞比较器

前面提到的只是迟滞比较器的一种,它的伏安特性曲线是顺时针旋转的,且它的两个阈值电压是基于0V对称的。当接入一个基准电压UREF这就是更为常用的比较器

多种形态的迟滞比较器

分析:

假设运放输出高电平为 UOH(对理想运放来说,此值为VCC),输出低电平为UOL,那么对输入信号,电路有两个比较翻转点,较大的一个称为UR+,较小的称为UR-。

设正反馈系数为k,k值越接近于1,说明反馈越强烈,迟滞窗口越宽

k=R1/R1+R2

当输出为高电平时,翻转点为:

U R + = UOHk + UREF ( 1 − k )

当输出为低电平时,翻转点为:

U R − = UOLk + UREF (1 − k )

如果UOH=-UOL,即输出对称,可得到:

U R + = ( 1 − k ) UREF + 0.5 U WDU

U R − = ( 1 − k ) UREF − 0.5 UWU

其中,UWD代表两个比较阈值之间的电压宽度,或者叫窗口电压。

UWD = UREF + − U REF − = ( VCC + VEE*(R1/R1+R2))

拓展:

合理地选择电路结构,选择电阻值,可以做出符合设计要求的迟滞比较器:可改变顺逆结构,可以改变中心阈值,可以改变阈值窗口电压。

叠加原理分析

七、TINA-TI仿真

1、过零比较器

信号源VG1上叠加一个噪声源VG2

过零比较器

波形如下:

过零比较器波形

过零点展开:

过零比较器波形过零点展开

2、迟滞过零比较器

加入迟滞

迟滞过零比较器

波形如下:

迟滞过零比较器波形

过零点展开:

迟滞过零比较器过零点展开

八、特点(缺点)

  • 运放的输出取决于供电电压,与数字电平不一定匹配。
  • 运放存在严重的过驱恢复时间,不利于高速运行。
  • 运放灵敏度过高。

九、专门的比较器(实际比较器)

下面为LM311/LM111数据手册:

LM311/LM111数据手册

TINA-TI仿真

实际比较器TINA-TI仿真

波形

实际比较器波形图


http://lihuaxi.xjx100.cn/news/1334470.html

相关文章

导航流程:从输入URL到页面展示,这中间发生了什么?

“在浏览器里,从输入 URL 到页面展示,这中间发生了什么? ”这是一道经典的面试题,能比较全面地考察应聘者知识的掌握程度,其中涉及到了网络、操作系统、Web 等一系列的知识。所以我在面试应聘者时也必问这道题&#xf…

简化生活之让AI以指定格式输出

原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 今天京东也宣布即将发布了自己的大模型,那么使用AI大模型进行工作或者生活将是必不可少的步骤。 建立命令 AI大模型是一种生成式聊天对话模型,我们可以通过预先定义命令的方式…

OWASP Dependency-Check简单教程,及检查mybatis和压制bug的过程

教程: https://www.jianshu.com/p/f1a2f5357d12 资源下载: https://download.csdn.net/download/tiantangpw/88041075 命令行参数说明 https://jeremylong.github.io/DependencyCheck/dependency-check-cli/arguments.html 压制bug文件说明 https://github.com/jeremylong/De…

STL,Sort自定义排序

目录 一,map 默认排序 标准库排序 示例 自定义排序 1.排序类 2.结构体内排序 3.sort排序 二,priority_queue 默认排序 标准库排序 自定义排序 1.排序类 3.结构体外排序 4. lambda表达式 5.函数指针 三,set 默认排序 自定义排序 …

SpringBoot 启动输出 Git 版本信息(2023/07/11)

SpringBoot 启动输出 Git 版本信息 文章目录 SpringBoot 启动输出 Git 版本信息1. 环境依赖2. pom.xml 配置3. 启动类配置 为了方便记录项目打包时的 Git 版本,本文将介绍如何将 Git 版本信息打包进 JAR 文件,并在项目启动时输出。 1. 环境依赖 SpringB…

字典树TRIE(前缀树)

字典树(Trie 树)是一种用于快速查找前缀的数据结构。它的主要思想是: 树的每个节点表示一个字符从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串每个节点的所有子节点包含共同的前缀 例如,对于单词列表[“hello”, “help”, “world”]可以构造这样的字典…

标准单元库---NLDM/CCS library model

Timing Model 数字芯片设计,除了全定制设计外,绝大部分都是基于std cell的半定制设计,那么std cell的模型就极为重要,尤其半定制,需要把一个std cell看成block box,只考虑其input/output pin。其input pin对…

Python 生成随机datetime和date

Python 生成随机datetime和date 验证程序经常需要生成随机的datetime和date 。 import datetime import time# 2000年到2023年日期时间 def randdatetime():mintime datetime.datetime(2000,1,1,0,0,0)maxtime datetime.datetime(2023,12,31,23,23,59)mintime_ts int(time…