ADC介绍

2023-10-31

  ADC(Analogue to Digital Converter)  

模数转换器(analog to Digital Converter,简称ADC)是一种数据转换器,它通过将模拟信号编码为二进制代码,使数字电路能够与现实世界进行接口。

         7e5b8c2033b8a6317e2688890d8725de.png

模数转换器(adc)允许微处理器控制电路,Arduinos,树莓派和其他此类数字逻辑电路与现实世界通信。在现实世界中,模拟信号具有不断变化的值,这些值来自各种来源和传感器,可以测量声音,光,温度或运动,许多数字系统通过测量来自这些传感器的模拟信号与环境相互作用。

虽然模拟信号可以连续并提供无限多个不同的电压值,但另一方面,数字电路可以处理只有两个离散状态的二进制信号,即逻辑“1”(HIGH)或逻辑“0”(LOW)。因此,需要一种能够在连续变化的模拟信号和离散数字信号这两个不同域之间进行转换的电子电路,这就是模数转换器(A/D)的作用。

基本上,模数转换器在某一时刻获取模拟电压的快照,并产生表示该模拟电压的数字输出代码。用于表示该模拟电压值的二进制数字或位的数量取决于A/D转换器的分辨率。

例如,4位ADC的分辨率为1 / 15(2^4 - 1),而8位ADC的分辨率为1 / 255(2^8 - 1)。因此,模拟数字转换器接收未知的连续模拟信号并将其转换为2^n位的“n”位二进制数。

但首先让我们提醒自己模拟(或模拟)信号和数字信号之间的区别,如下所示:

模拟和数字信号

b50ac6c8f770cddbd7e708cf4e1786e9.png

在这里我们可以看到,当电位器的雨刷端在0伏和VMAX之间旋转时,它产生一个连续的输出信号(或电压),相对于雨刷位置有无限个输出值。当电位器雨刷器从一个位置调整到下一个位置时,两个电压水平之间没有突然或阶跃变化,从而产生连续可变的输出电压。模拟信号的例子包括温度、压力、液位和光强度。

对于数字电路,电位器刮水器已被单个旋转开关所取代,该开关依次连接到串联电阻链的每个结,形成一个基本的电位分压器网络。当开关从一个位置(或节点)旋转到下一个输出电压时,VOUT以离散和独特的电压阶跃快速变化,每个开关动作或步骤表示1.0伏的倍数,如图所示。

例如,输出电压将是2伏,3伏,5伏等,而不是2.5V, 3.1V或4.6V。通过使用多位置开关和增加电位分压器网络内的电阻元件的数量,从而增加离散开关步骤的数量,可以很容易地产生更精细的输出电压水平。

然后我们可以看到,模拟信号和数字信号之间的主要区别是,“模拟”量是随时间连续变化的,而“数字”量是离散的(一步一步)值。“低”到“高”或“高”到“低”。那么,我们如何将一个具有无限数值的连续变化的信号转换为具有不同数值或阶跃的信号,以供数字电路使用呢?

模数转换器

采用模拟电压信号并将其转换为等效数字信号的过程可以通过许多不同的方式完成,虽然有许多模数转换器芯片,如各种制造商提供的ADC08xx系列,但可以使用分立元件构建简单的ADC。

一种简单易行的方法是使用并行编码,也称为闪变、同步或多个比较器转换器,其中比较器用于检测不同的电压水平,并将其开关状态输出到编码器。

并行的“Flash”A/D转换器使用一系列互连但间隔相等的比较器和电压参考,这些比较器和电压参考由一系列精密电阻网络产生,用于生成特定n位分辨率的等效输出代码。

并联或闪存转换器的优点是它们构造简单,并且不需要任何定时时钟,因为在将模拟电压施加到比较器输入的瞬间,它与参考电压进行比较。考虑下面的比较器电路。

比较器电路

一种模拟比较器,如LM339N,它有两个模拟输入,一个正一个负,可以用来比较两个不同电压水平的幅度。

e6905bb6ed6a037f80cdd27b08da312a.png

电压输入(VIN)信号应用于比较器的一个输入,而参考电压(VREF)应用于另一个输入。对比较器输入端的两个电压电平进行比较,以确定比较器的数字逻辑输出状态,即“1”或“0”。

参考电压,VREF与输入电压比较,VIN应用于另一个输入。对于LM339比较器,如果输入电压小于参考电压,(VIN < VREF)输出为“OFF”,如果大于参考电压,(VIN > VREF)输出为“ON”。因此,比较器比较两个电压水平并确定两者中哪一个更高。

在上面的简单示例中,VREF是由R1和R2设置的分压器网络获得的。如果两个电阻相等,即R1 = R2,那么很明显,参考电压电平将等于电源电压的一半,即V/2。因此,对于具有开路集电极输出的比较器,如果VIN小于V/2,则输出为高电平,如果VIN大于V/2,则输出为低电平,作为1位ADC。

但是,通过向分压器网络添加更多的电阻,我们可以有效地将电源电压“除以”由电阻的电阻决定的量。然而,我们在分压器网络中使用的电阻器越多,需要的比较器就越多。

一般来说,转换“n”位二进制输出需要2^n - 1个比较器,其中“n”通常在8到16的范围内。在我们上面的例子中,单比特ADC使用21 - 1(等于“1”)比较器来确定VIN是否大于或小于V/2参考电压。

如果我们现在创建一个2位ADC,那么我们将需要22 - 1,这是“3”比较器,因为我们需要四个不同的电压电平,对应于4到2位编码器电路所需的4个数字值,如图所示。

2位模拟数字转换电路

beec0cde58a3fe2291c00cd119ab9ea0.png

这将为模拟输入的所有四个可能值提供一个2位输出代码:

27d53e8fd4800bf8f7d4c5595bca5c64.png

式中:“X”为“不关心”,即逻辑“0”或逻辑“1”条件。那么这个模数转换器是如何工作的呢?为了使A/D转换器有用,它必须产生模拟输入信号的有意义的数字表示。在这个简单的2位ADC示例中,为了简单起见,我们假设输入电压VIN在0到4伏之间,因此将VREF和电阻分压器网络设置为在每个电阻上降低1伏。

当VIN介于0和1伏之间时,(<1V)三个比较器的输入将小于参考电压,因此它们的输出将为LOW,编码器将在引脚Q0和Q1上输出二进制零(00)条件。当VIN增加并超过1伏但小于2伏时,(1V     <VIN<2V)比较器U1将检测到该电压差并产生高输出,其参考电压输入设为1伏。作为4- 2位编码使用的优先编码器检测d1输入的变化并产生二进制输出“1”(01)。< span>     </VIN<2V)比较器U1将检测到该电压差并产生高输出,其参考电压输入设为1伏。作为4->

注意,像TTL 74LS148这样的优先级编码器为每个单独的输入分配一个优先级级别。优先级编码器输出对应于具有最高优先级的当前活动输入。因此,当具有较高优先级的输入(D1与D0相比)存在时,所有其他具有较低优先级的输入将被忽略。因此,如果同时在逻辑级别“1”上有两个或两个以上的输入,则D0和D1上的实际输出代码将只对应指定优先级最高的输入。

所以现在当VIN增加到2伏以上时,下一个参考电压水平,比较器U2检测到变化并产生高输出。但由于输入D2比输入D0或D1具有更高的优先级,因此优先编码器输出二进制“2”(10)码,以此类推,当VIN超过3伏时,产生二进制“3”(11)码输出。显然,当VIN在每个参考电压水平之间降低或变化时,每个比较器将输出一个HIGH或LOW条件到编码器,编码器反过来产生一个相对于VIN在00到11之间的2位二进制代码。

这一切都很好,但是优先编码器不能作为4到2位设备使用,如果我们使用商用的编码器,如TTL 74LS148或其CMOS 4532等效的8位设备,则不会使用六个二进制位。但是一个简单的编码器电路可以用数字前或门和信号二极管矩阵制成,如图所示。

使用二极管的2位ADC

3c1e5cf173d316641654c2da5492d791.png

这里比较器的输出在被馈送到二极管之前使用异或门进行编码。两个外部下拉电阻用于输出和地(0V),以确保低状态,并在二极管反向偏置时阻止输出浮动。

因此,与前面的电路一样,取决于VIN的值确定哪个比较器产生输出信号HIGH(或LOW)到产生高输出的异或门,如果一个输入或另一个输入是HIGH,但不是两个,(布尔表达式是Q = A.B + A.B)。这些前或门也可以使用组合逻辑与或与非门来构建。

这两种4对2转换器设计的问题是,这个简单的2位A/D转换器的分辨率是1伏,因为正如我们所看到的,VIN处的模拟输入电压必须改变1伏特才能使编码器改变其输出代码。提高输出分辨率的一种方法是使用更多的比较器将其增加到3位a /D转换器。

3位模数转换器

上面的并行ADC将0到3伏范围内的模拟输入电压转换为2位二进制代码。由于3位数字逻辑系统可以产生2^3 = 8个不同的数字输出,因此模拟输入电压可以与8个参考电压电平进行比较,每个电压电平等于参考电压的八分之一(V/8)。因此,我们现在可以测量0.5(4/8)伏的分辨率,并且需要23 - 1比较器来输出在000(0)和111(7)之间的3位二进制代码,如图所示。

3位模拟数字转换电路

5f40f7a3a382c57fae03c131df5f51b4.png

这将为模拟输入的所有八个可能值提供一个3位输出代码:

47ed2ecd2a95655d6efdd171ffe0d426.png

这里“X”是一个“不关心”,这是一个逻辑“0”或逻辑“1”的输入条件。然后我们可以看到,通过增加ADC的分辨率,不仅增加了输出二进制位的数量,而且增加了比较器的数量和所需的电压水平。

因此,4位分辨率需要15个(2^4 - 1)比较器,8位分辨率需要255个(2^8 - 1)比较器,而10位模数转换器需要1023个比较器,等等。因此,对于这种类型的模数转换器电路,输出位数要求越高,电路就越复杂。

然而,这种类型的并行或闪存A/D转换器的优点是它的实时转换率相对较快,如果只需要几个二进制位就可以在数字显示器上产生读出来显示模拟输入信号的电压值,则可以很容易地作为项目的一部分构建。

除了从传感器或换能器获取模拟输入信号并使用模数转换器将其转换为数字二进制代码作为输入接口电路的一部分外,我们还可以使用数模转换器将二进制代码转换为等效的模拟量,用于输出接口以控制电机或执行器,或通常用于音频应用。


*免责声明:版权归原作者所有,如有侵权,请联系(微信:leeing137)删除

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ADC介绍 的相关文章

  • 蓝桥杯每日一题(18):李白打酒(python)

    Topic 话说大诗人李白 一生好饮 幸好他从不开车 一天 他提着酒壶 从家里出来 酒壶中有酒2斗 他边走边唱 无事街上走 提壶去打酒 逢店加一倍 遇花喝一斗 这一路上 他一共遇到店5次 遇到花10次 已知最后一次遇到的是花 他正好把酒喝光
  • ecshop中ajax的调用原理 1

    ecshop中ajax的调用原理 1 首先ecshop是如何定义ajax对象的 ecshop中的ajax对象是在js transport js文件中定义的 里面是ajax对象文件 声明了一个var Ajax Transport 对象和一个方
  • 大坝安全监测有哪些监测项目

    大坝安全监测有 工程主体结构 地基基础 两岸边坡 相关设施以及周围环境所作的测量及观察 也包括对建筑物外表及内部大范围对象的定期或不定期的直观检查和仪器探查 通过观测仪器和设备 以及时取得反映大坝和基岩性态变化以及环境对大坝作用的各种数据的
  • centos6.5搭建贴吧云签到平台(多图预警)

    前提 我已经用oneinstack服务搭建好了主机环境LNAMP Linux NginxApache Mysql php 默认目录是 data wwwroot default 详细步骤 1 先下载要安装的文件 我用的是GitHub上star
  • 虚拟机vmware安装win10提示operating system not found解决办法

    首先如果启动提示进入BIOS 则删除下述文件的efi 首先先设置启动PE镜像 加载启动盘PE ISO后进入PE 将系统镜像复制到U盘 PE里先分区 然后再安装 PE里安装完后重启 后面的步骤按自动的即可
  • postman循坏调用接口

    postman循坏调用接口 新建一个Collections 在新建的Collections里面新建需要循环的接口 将需要循坏变化的参数设置成变量 设置好变量之后 运行整个collections 变量值的数量应该与迭代次数一致 可以导入jso
  • YOLOv5+单目测距(python)

    YOLOv5 单目测距 python 1 相关配置 2 测距原理 3 相机标定 3 1 标定方法1 3 2 标定方法2 4 相机测距 4 1 测距添加 4 2 细节修改 可忽略 4 3 主代码 5 实验效果 相关链接 1 YOLOV7 单目
  • python ttk Treeview的插入、清空、各种点击事件、获取条目值、标题单击排序

    昨天整了一天Tkinter的treeview 发现中文的教程乃至提问都很少 其中两个问题的解决都是靠steakoverflow上找到的 在这里放出来我遇到并解决的问题 大家以后可能遇到的话就能省点事了 插入方法 import tkinter

随机推荐

  • 第二章-Kali安装

    目录 2 Kali Linux安装 硬盘安装 虚拟机安装 01硬盘安装 02DOCKER 03虚拟机安装 3 Kali Linux 安装 持久加密USB安装 熟悉环境 熟悉BASH命令 01 持久加密USB安装 1 02 持久加密USB安装
  • 专注于开源技术的研究与应用由Tencent://Message协议想到的一个解决方案

    源代码下载 http files cnblogs com phinecos HelloWorldProtocal rar 前天在BruceZhang 的一篇博文 求助 如何在ASP页面中调用Winform程序呢 中回答了他提出的问题 但细想
  • jsp调用证书类ocx控件问题

    1 先注册ocx 本次使用的方式是先将我调用的两个控件打包成 CAB文件 然后做成一个exe让用户去下载注册 2 jsp页面上使用 进行调用 ps clsid可以在注册表中找到 id是自己定义的 因为控件在第一步已经注册到注册表里 code
  • 重学Elasticsearch7(来源官方文档)

    一 开篇总览 1 bulk操作最好请求体数据大小在5m 15m 2 由于要给文件系统缓存留下足够空间 es的jvm堆大小不要超过服务器可用内存空间的一半 二 聚合 1 在聚合时 missing字段可以给没有该字段的文档以默认值 2 带权重的
  • html登录页面整理

    img src data image png base64 iVBORw0KGgoAAAANSUhEUgAAAycAAAJGCAYAAABBdvriAAAgAElEQVR4Aey9W5okN5KsWUz2qmaxs7zzNEvoSo78Ii
  • java自动化测试语言高级之Java 9 新特性

    java自动化测试语言高级之Java 9 新特性 文章目录 java自动化测试语言高级之Java 9 新特性 Java 9 新特性 Java 9 新特性 Java 9 发布于 2017 年 9 月 22 日 带来了很多新特性 其中最主要的变
  • 内嵌模式搭建Hive

    在此之前已经搭建好了一个三台机器的hadoop集群 https blog csdn net QYHuiiQ article details 123055389 spm 1001 2014 3001 5501 接下来在此基础上搭建hive 下
  • (C++)GDAL学习笔记——1 均值滤波和中值滤波

    就要开始研究生生活了 这个暑假要学一下GDAL相关的知识 这里将中间完成的一些东西Mark下来 方便自己以后回顾 任务 利用Vc 编写一个3 3的均值滤波或中值滤波程序 代码 注 此次试验用到的影像为波段数为1的tif格式影像 主函数 in
  • 2022 年 MathorCup 高校数学建模挑战赛——大数据竞赛赛道 赛道 B:北京移动用户体验影响因素研究

    问题 1 根据附件 1 和附件 2 分别研究影响客户语音业务和上网业务 满意度的主要因素 并给出各因素对客户打分影响程度的量化分析和结果 附件 1 2 中各字段的解释说明见附件 5 问题一本质就是特征筛选问题 而且要给出各特征影响程度的量化
  • node实现发送邮件和上传文件功能

    文章目录 node实现发送邮件带附件 node 是什么 下载 文件结构 index html文件 nodemails js文件 node实现发送邮件带附件 记录下我前不久刚刚接触过的node用来实现发送邮件和上传文件图片功能 希望能帮到和我
  • L2-021 点赞狂魔分数

    微博上有个 点赞 功能 你可以为你喜欢的博文点个赞表示支持 每篇博文都有一些刻画其特性的标签 而你点赞的博文的类型 也间接刻画了你的特性 然而有这么一种人 他们会通过给自己看到的一切内容点赞来狂刷存在感 这种人就被称为 点赞狂魔 他们点赞的
  • vector扩容

    扩容原理 vector以连续的数组存放数据 当vector空间已满时会申请新的空间并将原容器中的内容拷贝到新空间中 并销毁原容器 存储空间的重新分配会导致迭代器失效 因为分配空间后需要进行拷贝 编译器会预分配更多空间以减少发生拷贝影响程序效
  • 音视频绕不开的话题之WebRTC

    什么是WebRTC 闲来无事 我们今天探讨下音视频绕不开的一个话题 WebRTC WebRTC之于音视频行业 无异于FFMpeg 可以说WebRTC的开源 让音视频行业大跨步进入发展快车道 WebRTC是一个支持实时音视频通信的开源项目 它
  • Vue3项目开发使用技巧setup

  • 【第18例】IPD进阶:跨部门团队 —— SPDT超级产品开发团队

    目录 简介 专栏目录 详细内容 相关专栏推荐 CSDN学院 作者简介 简介 今天 IPD体系进阶100例 就更新到了第 18 例 SPDT 是英文 Super Product Development Team 的英文首字母简称
  • java网络编程:9、基于TCP的socket编程(二)服务器端循环监听接收多个客户端_多线程服务器程序

    声明 本教程不收取任何费用 欢迎转载 尊重作者劳动成果 不得用于商业用途 侵权必究 文章目录 一 核心代码编写 1 服务器端程序的编写 2 客户端程序的编写 3 测试打印输出 二 系列文章 java网络编程 上篇讲了基于tcp的编程的一些基
  • 【Python-利用动态二维码传输文件(七)】计算文件传输速度,以KB/s形式显示在Tkinter界面。

    上一篇文章实现了动态二维码文件接收端的基本功能 但只能显示接收数据的完成度 不能显示接收速度 本篇文章研究怎么计算文件传输速度 并以KB s形式显示在Tkinter界面 方便以后调试和优化代码 一 程序效果展示 可以看到右下角有统计发送速度
  • 应用 POI 解析 Excel 表格并批量上传到数据库

    在日常生活中 我们时常会遇到添加用户之类的操作 但是这类操作 只能一位一位的添加 遇到向我这种强迫症晚期患者 会被烦死 那么应用 POI 解析含有用户信息的 EXCEL 表格会省很多时间 本文针对解析 EXCEL 表格以及将表格上的内容批量
  • 机器学习——损失函数(lossfunction)

    问 非监督式机器学习算法使用样本集中的标签构建损失函数 答 错误 非监督式机器学习算法不使用样本集中的标签构建损失函数 这是因为非监督式学习算法的目的是在没有标签的情况下发现数据集中的特定结构和模式 因此它们依赖于不同于监督式学习的算法 因
  • ADC介绍

    ADC Analogue to Digital Converter 模数转换器 analog to Digital Converter 简称ADC 是一种数据转换器 它通过将模拟信号编码为二进制代码 使数字电路能够与现实世界进行接口 模数转