ADC的工作原理总结

ADC和DAC是联系连续和离散的重要桥梁,是信号采集和处理的重要环节。

这里我们先认识下ADC,聊一聊ADC的工作原理。

信号为何要相互转换?

模拟信号和数字信号的特点

自然界中大多数都是连续的模拟信号,模拟信号容易受到干扰,难以存储和处理,保密性差,比如用一跟导线将电话线分接出来就能窃取信息了。另一方面,现代计算机只能处理离散信号,而且离散信号便于存储,所以就需要将连续的信号进行离散化数字化,方便计算机处理和存储。

于是科学家们就发明了ADC这种器件,将连续信号经过采样转换成离散信号。

模数转换,即Analog-to-Digital Converter,常称ADC,是指将连续变量的模拟信号转换为离散的数字信号的器件,比如将模温度感器产生的电信号转为控制芯片能处理的数字信号0101,这样ADC就建立了模拟世界的传感器和数字世界的信号处理与数据转换的联系。

当然,数字信号通过处理器处理后,也可以通过DAC还原回去,但是还原也不可能是百分百的,必然是有损的。

从模拟到数字的转换步骤

注意,信号进来之前一般都要先滤波。

ADC的转换过程中有四个关键步骤:采样、保持、量化、编码。

注:采样保持有些地方会统称为采样,有些地方会分开说,量化编码有些地方统称为量化,有些地方分开说,不必过分纠结,知道有这么回事儿就行。

采样是将时间上连续变化的信号,转换为时间上离散的信号,即将时间上连续变化的模拟量转换为一系列等间隔的脉冲,脉冲的幅度取决于输入模拟量。这里采样需遵循奈奎斯特采样定理,即当采样频率大于模拟信号中最高频率成分的两倍时,采样值才能不失真的反映原来的模拟信号。

模拟信号经采样后,得到一系列样值脉冲。采样脉冲宽度一般是很短暂的,在下一个采样脉冲到来之前,应暂时保持所取得的样值脉冲幅度,以便进行转换。因此,在采样电路之后须加保持电路。

输入的模拟信号电压经过采样保持后,得到的是阶梯波。而该阶梯波仍然是一个可以连续取值的模拟量。因此,用数字量来表示连续变化的模拟量时就有一个类似于四舍五入的近似问题。将采样后的样值脉冲电平归化到与之接近的离散电平之上,这个过程称为量化。

具体参考这篇文章:

一篇易懂的模数转换器(ADC)学习笔记1

此处不赘述

量化是存在误差的

编码就是将经过量化的值转换成二进制数字的过程,也就是我们最终从ADC中读出来的数据。

ADC技术参数

转换精度

分辨率resolution

ADC的分辨率表示ADC对输入信号的分辨能力,其根据满程电压和ADC输出二进制数的位数决定,如下所示:不同的满程电压下,分辨率不同;不同的ADC输出二进制数的位数,分辨率也不同。

同等满程电压的情况下,位数越多,量化误差越小,分辨率越高,常用的位数有8位、10位、12位、14位、16位等等。

转换速率

转速速率是指ADC从转换控制信号到来开始,到输出端得到稳定的数字信号所经过的时间的倒数。ADC的转换速率与转换电路的类型有关,不同类型的转换器转换速度相差甚远。

总体来说不同的分辨率和转换速率的对比情况,如下所示:

如何换算一个电压值

因为离散化和量化误差的存在,所以最终换算出来的电压值并不会就是实实在在的原始值,而是一个在分辨率范围内最接近于真实值的一个值。

分辨率越高,这个值越精确。

那么,如何换算电压值呢?

首先,我们了解下参考电压Vref,一般就是满量程电压值。

通常ADC会有专门的参考电压引脚可以让我们提供一个稳定的参考电压值,如果没有,也可以直接接VCC,参考电压越稳定,得到的值误差也会越小。

因为ADC内部要有个DAC提供比较电压值,根据参考电压和位数的等比例关系来从小到大依次输出编码数对应的模拟电压,通过比较器和原电压依次比较,直到得到最接近原电压的值。

要注意的是,待测量的电压不能超过参考电压,因为参考电压已经是ADC的满量程了,如果被测电压超过了参考电压,就需要通过前级电路将电压限制在ADC的参考电压范围之内。

有了参考电压,就可以计算最终的结果值了。

分别以10位和12位ADC为例,可有如下换算关系

其实ADC就是将满量程电压均匀分成2的n次方份,然后看得到的值占其中的多少份,然后进行等比例计算即可得到结果值。

位数越高,参考电压越稳定,则得到的结果越能接近原始值。

再举例说明下。

如果是个3位的AD,参考电压范围为0—1V,则分辨率为1/8V,也就是说,AD最终只能得到0V、1/8V、2/8V、3/8V、4/8V、5/8V、6/8V、7/8V,在1/8V以下的电压都会视为0,2/8以下的都会视为1/8……8/8以下的都会视为7/8。

从而也能知道,位数越高,分辨率越高,得到的数据精度越高。

各种ADC的工作原理

ADC的实现方式有多种,我们来了解下几种常见的类型。

计数器型ADC

最基本的一种ADC,通过它能够直观理解ADC的工作原理。

组成部分:比较器、计数器、DAC、控制器、锁存器

工作原理:计数器不断计数驱动DA生成不断增加的模拟量,这个模拟量再不断和输入电压做比较,一旦大于输入电压,则锁存和清零计数器,此时计数器的值就是输入电压的数字量,计数器清零后准备下一次转换。

特点:

计数器从零开始增加,被测电压越高,计数器花费时间越长;

DA的位数决定了ADC的位数,位数越多,一次采样时间越长;

每次采样后计数器清零。

跟踪型ADC

由于计数型ADC被测电压越高花费的时间越长,而且每次采样后计数器都要清零,导致测量速度不够快,所以科学家们就想办法让每次采样完不用清零,以此来提高采样速率。

组成部分:比较器、计数器、DAC、控制器、锁存器

工作原理:和计数器型ADC原理相似,减少了清零步骤,在计数器增加了向上和向下计数,这样就可以跟随输入电压的变化而改变计数器的值。

特点:

和计数器型ADC相比,提高了采样速度。

逐次逼近型ADC

组成部分:采样保持电路、比较器、控制逻辑电路、 SAR寄存器、DAC

工作原理:模拟输入电压(VIN)由采样/保持电路保持。为实现二进制搜索算法,N位寄存器首先设置在中间刻度(即:100... .00,MSB设置为1)。这样,DAC输出(VDAC)被设为VREF/2,VREF是提供给ADC的基准电压。然后,比较判断VIN是小于还是大于VDAC。如果VIN大于VDAC,则比较器输出逻辑高电平或1,N位寄存器的MSB保持为1。相反,如果VIN小于VDAC,则比较器输出逻辑低电平,N位寄存器的MSB清0。随后,SAR控制逻辑移至下一位,并将该位设置为高电平,进行下一次比较。这个过程一直持续到LSB。上述操作结束后,也就完成了转换,N位转换结果储存在寄存器内。

原理类似与二分查找法,依次逼近。

特点:

采样速率低于5Msps,一般为8位至16位;

具有低功耗、小尺寸等特点,通过二进制搜索算法实现。

Flash型/并行ADC

组成部分:分压电阻、比较器、优先级编码器

工作原理:2^N个电阻串联,节点之间接入比较器的反相输入端,输入电压接入比较器的同相输入端,如果电阻节点的电压比输入电压大,比较器输出1,小则输出0,优先级编码器采集到2^N输入电平,输出N位数。

特点:

功耗大;

比较器和分压电阻的精度要求高;

采样速度非常快;

因为需要 2^N-1 个比较器,分辨率每提高一位,电路规模增大一倍,所以位数不能做多。

更多类型参考这篇文章AD模数转换 - 知乎

以及郭天祥课程里讲的ADC相关知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/423107.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为AC+FIT AP组网配置

AC配置 vlan batch 100 to 101dhcp enableip pool apgateway-list 192.168.100.254 network 192.168.100.0 mask 255.255.255.0 interface Vlanif100ip address 192.168.100.254 255.255.255.0dhcp select globalinterface GigabitEthernet0/0/1port link-type trunkport trun…

Pixelmator Pro Mac版 v3.5 图像处理软件 兼容 M1/M2

在当今数字化时代,图像编辑软件成为了许多人必备的工具之一。无论您是摄影师、设计师还是普通用户,您都需要一款功能强大、易于使用的图像编辑软件来处理和优化您的照片和图像。而Pixelmator Pro for Mac正是满足这一需求的理想选择。 Pixelmator Pro f…

gradle构建spring-framework源码

5.3.22版本构建 通过启动的jvm参数配置代理下载 Could not download jruby-stdlib-9.2.20.1.jar (org.jruby:jruby-stdlib:9.2.20.1) Could not get resource https://repo.maven.apache.org/maven2/org/jruby/jruby-stdlib/9.2.20.1/jruby-stdlib-9.2.20.1.jar. Could not GE…

python+PyQt5 网口功能测试

UI界面: 源代码: # -*- coding: utf-8 -*-# Form implementation generated from reading ui file NetOpeningWinFrm.ui # # Created by: PyQt5 UI code generator 5.15.2 # # WARNING: Any manual changes made to this file will be lost when pyuic5…

springcloud alibaba sentinel熔断降级

简介 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 sentinel相当于hystrix的升级版,加入了web界面,能够实时在线的改变流…

Spring Security 之 用户名/密码认证

用户名/密码 验证用户身份的最常见方式之一是验证用户名和密码。Spring Security提供了全面的支持,用于使用用户名和密码进行身份验证。 您可以使用以下方式配置用户名和密码身份验证: @Configuration @EnableWebSecurity public class SecurityConfig {@Beanpublic Secur…

Excel象限图

Excel象限图 1、背景描述2、象限图(散点图)3、象限图(气泡图) 1、背景描述 平常我们在工作中做图表时,使用最多的就是柱状形、折线图、饼图,这些图表主要为了展示趋势、对比和构成,但有时候我们…

LeetCode 48 旋转图像

题目描述 旋转图像 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],[4…

怎么检查直线模组的故障?

直线模组可谓是自动化设备中不可或缺的一部分,在自动化设备运行过程中,如果发生直线模组报警故障,往往会导致自动化生产线停下来,造成产量的减少,所以检查直线模组的故障很重要! 1、检查外观是否有明显的磨…

8.5跳跃游戏(LC55-M)

算法: 其实跳几步无所谓,关键在于可跳的覆盖范围! 不一定非要明确一次究竟跳几步,每次取最大的跳跃步数,这个就是可以跳跃的覆盖范围。 这个范围内,别管是怎么跳的,反正一定可以跳过来。 那…

知识笔记(九十五)———Vue中的导航守卫

直白的说,导航守卫就是路由跳转过程中的一些钩子函数,这些函数能让你在跳转过程中操作一些其他的事儿的时机,这就是导航守卫。 比如最常见的登录权限验证,当用户满足条件时,才让其进入导航,否则就取消跳转…