打印
[资料分享]

单片机A/D转换工作原理及优缺点分析方案

[复制链接]
2336|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Plantt|  楼主 | 2018-11-7 16:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机A/D转换工作原理及优缺点分析方案


       单片机应用于工业控制等方面时,经常要将电流、电压、温度、位移、转速等模拟量转换成数字量,然后在单片机内作进一步运算和处理,完成相应的数据存储、数据传输和数据输出,达到分析和控制的目的。

  随着大规模集成电路的不断发展,很多单片机都有内置A/D模块,因此,单片机的A/D转换可以用内置A/D模块也可以用外置A/D电路完成,现谈谈单片机A/D转换的工作原理及优缺点,并分析提高A/D转换精度的方法。


  1 A/D转换的工作原理及优缺点

  (1)单片机片内A/D转换单片机片内A/D转换是利用单片机的内置A/D模块,通过选择不同的模拟量通道进行A/D转换。可以将模拟量直接输入到单片机对应的输入脚,外围电路简单。转换后的数据直接保存在片内寄存器中,数据提取方便。但大多数单片机的内置A/D模块只有8位和10位,无法进行高精度的 A/D转换,原理如图1所示。

  

 (2)单片机片外A/D转换单片机外置A/D转换是单片机通过一定的逻辑电路控制外置A/D转换电路进行A/D转换,外围电路相对复杂。单片机将转换结果通过一定的时序读取到单片机中,按要求通过选择A/D转换电路,可以实现高精度的A/D转换(可以达到14位、16位、22位甚至更高),原理如图2所示。

  2 提高A/D转换精度的方法要提高A/D转换的精度,选用高精度的外部A/D转换器当然可以达到要求,除此之外,有没有其他方法呢?答案是肯定的。以下介绍几种利用片内A/D转换模块提高转换精度的方法。

  ①以采集电压为例,假设需要采集0.0~400.0 V直流电压,单片机A/D模块的基准电压VREF+取5.0 V,VREF-取0 V,需要采集的电压经过衰减,变成0.0~5.0 V,连接电路如图3所示。显然,如果要达0.1 V的精度,则A/D转换的分辨率必须小于1/4000,而片内A/D模块一般为10位,分辨率仅为1/1 024,达不到要求。由于模拟量(O~400V电压)输入大多不是稳定值,会有波动,为了得到更高精度的数据,可以将多次采集的数据累加后再取平均值(其实即使分辨率达到要求的A/D转换也要经过累加再取平均值,以得到更稳定的数据)。如果每间隔一定时间采集的10位数据为Di,取64个这样的数据累加后再除以16,就可以得到12位的数据D,即

  

  这时D的分辨率是1/212=1/4 096。这样,就得到了更高精度的数据。    但是,如果模拟量(0~400V电压)输入值非常稳定,每间隔一定时间采集的10位数据Di都相同,以上方法就达不到要求了。

  ②如果在A/D转换过程中要得到局部更高精度的数据,例如检测蓄电池充放电过程中的电压,电压范围是0~18 V,一般精度达到0.02 V即可,但用户更关心8~13 V的电压,8~13 V内精度要达到0.01 V。为了解决这个问题,设计了原理如图4所示的电路。

 

  单片机有内置10位A/D模块,Ui(0~20 V)电压经过R1、R2、P1衰减得到0~5 V的电压,该电压直接送到单片机的AN1输入口,即VAN1=Ui/4。U2A接成减法运算电路,即U2A 1端电压VU2A1=VAN1-2 V=Ui/4-2 V=(Ui-8 V)/4。U2B接成4倍放大电路,U2B 7端的电压VU2B7=VU2A&TImes;4=Ui-8 V。AN2输入并联一只5 V稳压二极管,以保证当输入电压大于8 V时,单片机AN2可以得到O~5 V电压。

  单片机先采集AN1的数据,通过采集的数据判断输入电压是否在8~13 V之间,如果不在8~13 V,则采集到的数据就是模拟量(U)对应的数字量(D:000H~3FFH),精度为20 V/2010=20 V/1 024≈0.02 V,电压数据U=D&TImes;0.02 V;如果采集的数据在8~13 V之间,单片机再采集AN2的数据,采集到的数据加上8 V就是模拟量(U)对应的数字量(D:000H~3FFH),精度为(13-8)V/210=5 V/1 024≈0.005 V,电压数据U=8 V+D&TImes;0.005 V。这样,在8~13 V之间的A/D转换精度就大大提高了。

  



相关帖子

沙发
Plantt|  楼主 | 2018-11-7 16:30 | 只看该作者
单片机A/D转换工作原理及优缺点分析方案

文档1.pdf

170.71 KB

使用特权

评论回复
板凳
蒋博1026| | 2018-11-8 10:28 | 只看该作者
好东西

使用特权

评论回复
地板
febgxu| | 2018-11-10 23:29 | 只看该作者
内部集成的AD吗

使用特权

评论回复
5
sdlls| | 2018-11-10 23:29 | 只看该作者
控制ADC0804进行模数转换

使用特权

评论回复
6
pixhw| | 2018-11-10 23:29 | 只看该作者
A/D 是模拟量到数字量的转换

使用特权

评论回复
7
updownq| | 2018-11-10 23:30 | 只看该作者
具有实用价值基于普通单片机的A/D与D/A转换?

使用特权

评论回复
8
sanfuzi| | 2018-11-10 23:30 | 只看该作者
多路开关可选通8个模拟通道

使用特权

评论回复
9
gygp| | 2018-11-10 23:30 | 只看该作者
AD转换是将模拟电压值转换为数字量

使用特权

评论回复
10
chenci2013| | 2018-11-10 23:30 | 只看该作者
三态缓冲输出形式,可以和单片机的数据线直接相连。

使用特权

评论回复
11
biechedan| | 2018-11-10 23:31 | 只看该作者
模拟量变换为数字量

使用特权

评论回复
12
wangdezhi| | 2018-11-10 23:31 | 只看该作者
通常A/D转换都需使用A/D转换芯片

使用特权

评论回复
13
isseed| | 2018-11-10 23:31 | 只看该作者
低成本高精度A/D转换

使用特权

评论回复
14
biechedan| | 2018-11-10 23:32 | 只看该作者
具有模拟量输入和模拟量输出的单片机

使用特权

评论回复
15
febgxu| | 2018-11-10 23:32 | 只看该作者
转换的速度怎样呢

使用特权

评论回复
16
chenci2013| | 2018-11-10 23:32 | 只看该作者
控制三态输出锁存器向单片机输出转换得到的数据。

使用特权

评论回复
17
sdlls| | 2018-11-10 23:32 | 只看该作者
转换的效率还是非常高的。

使用特权

评论回复
18
gygp| | 2018-11-10 23:32 | 只看该作者
用数字系统进行处理 模拟电压可以是模拟传感器的输出电压,或者是某个节点的电压 等

使用特权

评论回复
19
pixhw| | 2018-11-10 23:32 | 只看该作者
依靠的是模数转换器

使用特权

评论回复
20
sanfuzi| | 2018-11-10 23:32 | 只看该作者
允许8路模拟量分时输入

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

637

主题

901

帖子

4

粉丝