历史上的今天
今天是:2026年03月14日(星期六)
2023年03月14日 | 单片机外围模块漫谈之一,图解说明什么是Flash, SAR, Sigma-Delta型ADC
2023-03-14 来源:zhihu
模数转换模块ADC是连接现实世界模拟量和数字量之间的桥梁,它的转换精度经常可以决定一个产品的品质。现在单片机上一般都会集成ADC,我们如何根据自己的应用选择恰当的产品呢?怎么实现高的性价比,让产品在激烈的市场竞争中立于不败之地呢?下面我们从常用的几种ADC类型的特点,到使用中的注意事项,逐一探讨一下。
ADC类型
常用的ADC基本上可以分为三种类型: Flash型,SAR型,Sigma-Delta型。下面我们来了解一下它们的工作原理与性能特点。单片机中最常采用的是SAR型,在一些高精度场合会用到Sigma-Delta型,而Flash型很少会集成在MCU内部,如果需要一般需要通过串行或并行总线外扩。
Flash型

这种ADC使用电阻分压网络,输入的电压会同时与分压网络中的多个参考电压比较,比较器的输出通过编码器输出2进制的数字输出。这种ADC速度快,精度高,但缺点是随着输出位数的增加,它需要的分压电阻和比较器成指数增长,体积和成本随之迅速增加。
SAR逐次逼近型
SAR(Successive Approximation Register)型ADC仍然使用电压比较的方法,它使用数字电路控制DAC输出一个变化的电压,并用此电压和输入电压比较,经过多次比较逐渐使DAC输出接近输入电压,从而得出数字输出。

举例如下:
假设ADC参考电压为0-5V,输入为3.2V。
压控寄存器最高位置为1,其余位为0,DAC输出参考电压一半2.5V,输入3.2 > 2.5,比较器输出1,压控寄存器最高位1保留。然后次高位置1,DAC输出3.75V,此时3.2V < 3.75V,比较器输出0,压控寄存器次高位置0。之后与3.125V比较得到1,与3.4375V比较得到0。这样如果是8位ADC,最后就得到数字输出 10100011。SAR型ADC以较低的成本实现较高的转换速度和分辨率,比较常用的可以达到1MHz的转换速度和12-Bit的分辨率,得到了比较广泛的应用。如果单片机手册没有特别注明,一般都是集成的这种类型的ADC。

Sigma Delta型
下图为一个简化的原理电路。左半部分为模拟调制电路,它的作用为根据输入电压的大小输出位宽为1bit的比特流。右半部分为数字滤波和裁决器,根据比特流输出数字转换结果。

工作过程如下:输入电压减去DAC输出后的差值经过积分器后和0V电压比较,如果大于等于0V输出1,否则输出0。以一定的频率控制比较器输出形成比特流,控制DAC输出电压,1控制DAC输出+Vref参考电压,0控制DAC输出-Vref参考电压。当DAC在比较器输出的比特流控制下高速切换时,类似于PWM在输出端产生一个平均电压。容易看出,全1的比特流对应的平均电压为+Vref,全0的比特流对应的电压为-Vref,如果1和0各占一半,那么对应的电压是0V。
当平均电压Vadc小于输入Vin时,趋向于输出更多的1来增大Vadc。当平均电压Vadc大于Vin时,趋向于输出0来减小Vadc。这样一个合适的1,0比率的比特流会使Vadc最接近Vin,达到平衡状态。后级的数字滤波和裁决器从1,0的比率就可以推断出输入电压Vin的大小。
Sigma Delta原理动画演示链接:
http://designtools.analog.com/dt/sdtutorial/sdtutorial.html
Sigma Delta型单片机可以达到很高的分辨率,但转换速度慢很多。比较典型的如24-Bit,输出速率几十到几百HZ。集成此类ADC的单片机一般用于计量,仪表等。如TI的MSP430AFE253。
如果想更深入的了解Sigma Delta ADC的工作原理,如过采样,噪声整形,数字滤波等,可以参考ADI公司的一篇应用文档:
AN283 - Sigma Delta ADCs and DACs
Pipeline型
这种类型的ADC,结合了Flash型和SAR型,先用分压电阻比较法,快速判断输入电压落入的范围,然后用逐次逼近法在此范围内取得精确的转换结果。此类型ADC很少在单片机中采用。
参考资料:
ADI: The Data Conversion Handbook
ADI: Sigma-Delta ADC Tutorial
下一篇:通俗易懂的I2C协议
史海拾趣
|
在视频监控领域,常常会涉及到视频的检索问题。常用的方法是采用文本注释图像和视频信息,以基于文本的数据库管理系统进行图像和视频检索。把图像比对技术引入到视频监控领域,可以有效的提高视频的检索的效率,为视频监控提供更有力的支持。 &nb ...… 查看全部问答> |
|
春节快乐, 各位高手,各位大侠,小弟在这向你们求救啊。 本人急需 【WinCE5.0】蓝牙串行端口 的程序以及源代码,可以在VS2005中使用的。 望各位高手能将手中的程序分享给小弟。感激不尽。谢谢了。 ...… 查看全部问答> |
|
本人目前在一家SP企业工作2年多了,虽然工作上技术含量不高,但工资待遇还可以,也不用加班什么的,公司正在准备上市,如果上市成功还可以分到一定股份!但最大的一个缺点是公司管理很混乱,升职加薪的空间也不大,公司整体不太重视搞技术的,如果 ...… 查看全部问答> |
|
寻有熟悉开发研华pcm-4862工控板的人, 能够将板子的DOS软件修复即可,要求在深圳,价格面议。 msn: mikehorse@hotmail.com… 查看全部问答> |
|
用VS2005怎么样制作一个WinCE的驱动程序在WM6模拟器上运行? 我按照书上的例子创建了一个VS2005的基于WM6 SDK的Win32 DLL工程,然后输入源代码,如下 #include #include #define MAX_LENGTH 1024 HANDLE ghFile = NULL; BOOL WINAPI DllEntryPoint(HANDLE hinstDLL, DWORD dwReason, LPVOID lpReserved ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:03 编辑 n GB/T2820.1-1997《往复式内燃机驱动的交流发电机组第1部分:用途、定额和性能》 n GB/2820.2-1997《往复式内燃机驱动的交流发电机组第2部分:发动机》 n GB/T2820.3-1 ...… 查看全部问答> |
|
包含IAR加入driver的方法翻译了第一部分,ADC10库,感觉后面不用翻译了,就是把API罗列一下,没啥意义再翻译了 先传这些 [ 本帖最后由 zmaozhao 于 2012-4-24 16:26 编辑 ]… 查看全部问答> |
|
高手都来说说430与C51的区别吧? 相信很多人是从C51过来的,以前只知道430的超低功耗,是无可替代的。那具体有哪些区别?了解这些,相信更有助于掌握430,先说几条,抛砖引玉。 1、RISC与CISC。 2、16位与8位。 3 ...… 查看全部问答> |




