找回密码
 注册
关于网站域名变更的通知
查看: 656|回复: 1
打印 上一主题 下一主题

单片机AD转换方法 为什么要AD转换?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-12 08:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
单片机AD转换方法 为什么要AD转换?
6 I" E: @/ F- B# h
单片机AD转换方法 为什么要AD转换?所有单片机一般只能处理数字信号。可是当单片机需要获取电路上的某一点电压值的时候,就必须使用AD转换。如果你直接把单芯片的引脚连接到电路的点上,单片机只知道这个点的电压是低的或高的,怎样才能得到它的电压值呢?比如数字万用表,它测量电压,先将AD转换电路,将电压值转换为一个值,然后将此值发送到单片机,单片机经过计算处理后,再将电压值显示到屏幕上。但现在有一些强大的单片机,其内部AD转换器已经集成,不需要你连接AD转换芯片。
, I) H- w% ^/ G* d; o1 j( E6 J- Z7 j3 @0 B! v! Q
A是模拟信号的意思,D是数字信号的意思,AD转换就是模数转换,顾名思义,就是把模拟信号转换成数字信号,例如把电压值转化为数字信号。
7 P* A! e* ~+ p2 Z  U% W, j3 ^1 N3 I  X& I' J
1、分辨率
6 \! |# D' h9 Q: C$ c% l) y) a0 y  O0 i7 T. }; U- b8 Q4 F
举个简单的例子,8位芯片只能转换最小到0.01V的电压,而12位的芯片却能转换最小到0.001V的电压,如果一个电压为3.359V,8位芯片转出来后的数值是3.35V,12位芯片转换出来后是3.359V,精度比8位就高一个档次了。(注:这里数值不是正确的数值,举例用,切勿实际使用)1 N$ J  |  r8 n+ p. H) ]

$ k8 W4 w. Q6 q$ d# L2、8位16位的ad转换芯片是什么意思
* |! U  n  j: R- m
9 A1 p2 d/ |% A9 X) ]5 e8位,16位就代表了AD转换芯片的转换分辨率,数字越大,分辨率越高,同时也反映了它的精度,数字越大,精度相对也越高。8位算是最低了,有些单片机里集成的AD转换器一般是10位的。12位和16位的芯片价格就比较贵了。1 g9 B, C) a% v$ ?! p" E; x

8 c- s9 D+ C  S* u9 ?/ ]# G3、精度
' {7 u) l8 n$ d( d8 R% K+ x7 N
& U7 L1 l  r% X: B3 Q精度是AD芯片的一个重要参数,表示采集到的数据和真实值之间的相差的程度。例如单片机转换出来的结果是0.3V,而实际可能是0.31V,这样就相差了0.01V。这种误差是不可避免无法消除的。这和在第3点中提到的位数有关,位数越高,这样的误差越小。1 O2 J. ~  Y3 |: ~* }9 o1 `& I$ W

5 v8 Z4 a+ \$ q- f" |0 F. {2 u' M% V单片机ad转换处理方法
! A2 A/ ]6 R9 l# O- m+ m3 r7 N, l4 T$ [! i% c7 o
4、采样' ~1 }( M9 z  |* L* J: P: Z  C( n. K9 E
, g  k1 @' m. i# P9 f3 a9 v3 G
采样是AD转换的速度性能指标,通俗的说就是每秒里能采样多少次,采样次数越高芯片性能越好。如果对采样不理解,也可以用另一种方式理解,就是一个AD转换芯把电压值转换成数字值这个过程所需要的时间,时间越短越好。
! R) c/ _+ ]. P8 D( w- n
$ @  @" t  [" X. M& p单片机内集成的A/D转换,一般都有相应的特殊功能寄存器来设置A/D的使能标志,参考电压,转换频率,通道选择,A/D输入口的属性(模拟量输入还是普通的I/O口),启动,停止控制等。有了这些寄存器,使得我们控制单片机的模拟量采集变得非常方便。7 @% G& p  A8 b: [6 i

1 p- k  \* u8 j9 ]3 FA/D转换的基本原理是:将参考电平按最大的转换值量化,再利用输入模拟电平与参考电平的比例来求得输入电平的测量值(V测=V参*(AD量化值/AD转换的最大值))。有些mcu A/D转换的参考电平可以选择由一个外部引脚输入,这样使得用户可以对A/D转换进行更好的控制。值得注意的一点就是A/D转换的输入电平必须比参考电平低或相等,不然测试的结果就会有很大的偏差。4 T  q# X# _' l! F) y
) r. I( r+ F8 q$ V8 u* q/ Y+ @5 ^4 Y
下面以参考电平为5V,转换的精度为8位为例来说明如何取得实际的测量值是多少。如果AD量化值为128,则V测= 5*128/256=2.5V。因为V测=V参*(AD量化值/AD转换的最大值)=AD量化值*(V参/AD转换的最大值),而针对具体的硬件电路,“V参/AD转化的最大值”是一个固定的系数。而这个系数,就相当于测试的精度了。对于10位的A/D,5V的参考电压的测试精度约5毫伏,而用2.048伏的参考电压,精度就可以达到2毫伏。当然测试的电压范围相应的也减小了。我曾经就用这种减小测量范围来提高精度,使用PIC16F76做A/D测量,使得正负误差不超过5毫伏的高精度测试电源。当误差超过5毫伏时,电路发出报警声,提示操作员,重新调解电压到规定范围内。
7 ?3 r1 u3 }5 u* l: C" P) s
0 I2 }: U: Z% C$ H" J然而,即使使用同样一款MCU,不同的软硬件设计者,使得A/D转换的效果相差也甚远。主要是很多新手在处理上有些不当,不是直接把一次转换后的结果拿来处理并做相应的显示,就是对参考电平不做处理。所以使得显示效果老是变化不定,给人一种不稳定的感觉。
6 g: I; l, Q+ z6 Y: r- _$ D2 [, ?$ C, J8 \
针对参考电平设在单片机内部的MCU,主要是要对A/D的量化值做数字滤波处理,比如多次间隔采样,再求平均等。而针对参考电压可以从外部输入脚引入的,最好单独设置一组高稳定度的参考电压,如TL431等。这样,即使MCU的主电源有些波动也不会导致A/D转换值的漂移。其实在没有高精度参考电压的情况下,或者A/D量化值很不稳定的情况下,
1 j) E/ h# u& |6 s2 S3 V. l9 b2 k4 A
我们依然可以通过软件的方法将与A/D转换有关的显示或其他的驱动做得非常稳定。这就要看程序员的设计经验了。3 ~/ V9 u% @1 s& S/ y$ i+ H
9 z& C* u+ @* L* Y! P
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-28 21:56 , Processed in 0.109375 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表