0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机内置ADC实现高分辨率采样?

工程师 来源:嵌入式客栈 作者:逸珺 2020-10-14 14:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

[导读] 相信ADC的应用或多或少都会用到,在很多场合都有分辨率要求,要实现较高分辨率时,第一时间会想到采用一个较高位数的外置ADC去实现。 可是高分辨率外置ADC往往价格都不便宜,这就带来一对矛盾: 高指标与低成本。 其实利用单片机片上的ADC利用过采样技术就能很好的解决这样一对矛盾体,本文来聊聊这个话题。

什么是过采样?

信号处理中,过采样是指以明显高于奈奎斯特速率的采样频率对信号进行采样。从理论上讲,如果以奈奎斯特速率或更高的速率进行采样,则可以完美地重建带宽受限的信号。奈奎斯特频率定义为信号带宽的两倍。过采样能够提高分辨率和信噪比SNR,并且通过放宽抗混叠滤波器的性能要求,有助于避免混叠和相位失真。

在很多项目应用中,需要测量信号的动态范围较大,且需要参数的微小变化。例如,ADC需要测量很大的温度范围(比如工业中甚至要求从-200℃~500℃),但仍要求系统对小于1度的变化做出响应。常见的单片机片上ADC位数为12位,如要实现高于12位分辨率要怎么做呢?我们知道奈奎斯特-香农采样定理可知:

或许你会问,常规的应用都是过采样,怎么也没见分辨率提高了呀?如果仅仅过采样,要实现更高分辨率显然是不够的,那么要怎么利用过采样实现更高的分辨率呢?要知道所采用的ADC硬件核分辨率是固定的,难道还会变不成?

过采样提高分辨率

如果对一模拟信号,采用过采样,然后再进行一定的软件后处理,理论上是可以得到更高分辨率的:

为增加有效位数(ENOB :effective number of bits),对信号进行过采样,所需的过采样率可以由下面公式确定(省略理论推导,过于枯燥):

具体怎么做呢?

首先将256个连续采样累加

然后将总数除以16(或将总数右移4位)。该过程通常称为抽取,也即将速率采样。

在类似进行下一次16位样本处理

注意:用于累积过采样数据并执行除法抽取数据类型必须具有足够的字节宽度,以防止溢出和截断错误。比如这里累积和可以采样32位无符号整型。

这个公式没必要去记,用到的时候参考计算一下即可。从公式中可看出,要提升一个模数转换器的理论SNR的一种可行方案可以通过提升采样位数,但是需要注意的是这里的信噪比是度量模数转换器本身的,就一个真实系统的信噪比还与整个信号链相关!

从上式中不难算出,12位ADC的理论SNR极限值为74dB,而通过过采样提升4位分辨率后,其SNR理论极限提高至96 dB!

到底怎么实现呢?

这里以伪代码的方式给出编程思路:

void init_adc(void)

{

/*配置ADC的采样率为过采样率连续中断模式*/

}

void start_adc(void)

{

/*控制ADC启动采样*/

}

/*不同的开发平台中断函数写法略有差异,比如51需要指定向量 */

/*OVERSAMPLE_FACTOR=4^RSHIFT_BITS 下面两个宏一起修改 */

#define RSHIFT_BITS (4)

#define OVERSAMPLE_FACTOR (256)

static unsigned short adc_result=0U;

void adc_isr(void)

{

static unsigned short adc_index = OVERSAMPLE_FACTOR;

static unsigned int accumulator = 0U;

/*ADC_REG ADC转换结果寄存器,不同平台名称不同*/

accumulator += ADC_REG;

adc_index--;

if( adc_index==0 )

{

/* 加和按因子抽取 */

adc_result = accumulator》》RSHIFT_BITS;

accumulator = 0;

adc_index = OVERSAMPLE_FACTOR;

}

}

该方案有一个缺陷,就是每次ADC中断都需要CPU参与,在过采样率很高的情况下,上述方案消耗很多CPU资源,那么如果单片机内存资源足够的情况下可以考虑采用DMA模式,采集很多数据并将数据暂存下来,然后再做累加平均抽取。这是空间换时间的策略的体现。这个编代码也很容易,只需要申请一片内存区,内存区的大小可以定为256的倍数,这是因为在提升4位分辨率情况下,一个16位的输出样本需要256个12位样本。

总结一下

在成本受限的情况下,可以通过单片机片内ADC过采样以及累积抽取的技术来提升采样分辨率,这种技术的特点:

可以使用过采样和平均来提高测量分辨率,而无需增加昂贵的片外ADC。

过采样和加和抽取将以提高CPU利用率和降低吞吐量为代价来提高SNR和测量分辨率。

过采样和加和抽取可以改善白噪声的信噪比。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45580

    浏览量

    673716
  • adc
    adc
    +关注

    关注

    100

    文章

    7946

    浏览量

    556899
  • 编程
    +关注

    关注

    90

    文章

    3723

    浏览量

    97439
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Vieworks超高分辨率、像素移位工业相机—VN系列

    Vieworks超高分辨率、像素移位工业相机—VN系列
    的头像 发表于 04-08 11:34 141次阅读
    Vieworks超<b class='flag-5'>高分辨率</b>、像素移位工业相机—VN系列

    MAX11270:一款超低功耗高分辨率的24位Δ - Σ ADC

    MAX11270:一款超低功耗高分辨率的24位Δ - Σ ADC 在电子设计领域,模拟信号到数字信号的转换一直是关键环节。而ADC(模数转换器)作为实现这一转换的核心部件,其性能的优劣
    的头像 发表于 04-01 14:40 165次阅读

    MAX11200/MAX11210:低功耗、高分辨率ADC的卓越之选

    MAX11200/MAX11210:低功耗、高分辨率ADC的卓越之选 在电子设计领域,模拟数字转换器(ADC)是连接现实世界模拟信号与数字系统的关键桥梁。今天,我们聚焦于Maxim
    的头像 发表于 04-01 13:50 187次阅读

    深入剖析AD7747:高分辨率电容数字转换器的卓越之选

    深入剖析AD7747:高分辨率电容数字转换器的卓越之选 在电子工程师的设计世界里,寻找一款性能卓越的电容数字转换器(CDC)至关重要。AD7747作为一款高分辨率、Σ - Δ型电容数字转换器,凭借其
    的头像 发表于 03-30 10:40 325次阅读

    佛瑞亚海拉与恩智浦在高分辨率雷达技术领域展开合作

    在科技盛宴CES 2026期间,佛瑞亚海拉与恩智浦半导体正式官宣在高分辨率雷达技术领域展开合作,聚焦最新一代高分辨率雷达传感器[ForWave7HD],共同为智能驾驶的未来描绘宏伟蓝图
    的头像 发表于 01-29 09:57 782次阅读

    DLP9500:高分辨率空间照明调制的理想之选

    英寸对角线微镜阵列的数字微镜器件(DMD),它可是实现高分辨率、高性能空间照明调制的得力助手。 文件下载: dlp9500.pdf 一、特性亮点 1. 微镜阵列参数 DLP9500 拥有 1920×1080 的铝阵列,微米级微镜实现
    的头像 发表于 12-15 10:30 1396次阅读

    深入解析DLP9000XUV DMD:高分辨率UV调制的理想之选

    深入解析DLP9000XUV DMD:高分辨率UV调制的理想之选 在电子工程领域,数字微镜器件(DMD)一直是实现高性能空间光调制的关键技术。今天,我们将深入探讨德州仪器(TI
    的头像 发表于 12-11 14:05 692次阅读

    DLPC7540高分辨率控制器:技术解析与设计指南

    DLPC7540高分辨率控制器:技术解析与设计指南 在当今追求高分辨率显示的时代,DLPC7540高分辨率控制器凭借其卓越的性能和丰富的功能,成为众多显示应用的理想选择。本文将深入解析
    的头像 发表于 12-11 10:40 533次阅读

    DLPC4420 DLP显示控制器:高分辨率显示的理想之选

    DLPC4420 DLP显示控制器:高分辨率显示的理想之选 在当今的显示技术领域,高分辨率、高亮度的显示需求日益增长。DLPC4420 DLP显示控制器作为一款关键的数字显示控制器,为满足这些需求
    的头像 发表于 12-11 10:00 595次阅读

    探秘DLP991UUV:高分辨率数字微镜器件的卓越应用与设计要点

    探秘DLP991UUV:高分辨率数字微镜器件的卓越应用与设计要点 在如今的电子科技领域,数字微镜器件(DMD)凭借其独特的光学控制能力,在诸多应用场景中大放异彩。德州仪器(TI)的DLP991UUV
    的头像 发表于 12-10 14:30 671次阅读

    DLPC8445、DLPC8445V和DLPC8455高分辨率控制器深度解析

    1. 高分辨率支持 DLPC84x5控制器在分辨率支持上表现出色。它能实现最高4K UHD(60Hz时)的显示效果,同时在
    的头像 发表于 12-10 14:10 1369次阅读

    分辨率对于模拟到数字转换器有什么重要性

    )、航空航天(导航、遥测)等。5. 与其他参数的协同作用采样率高分辨率ADC通常需要更长的转换时间,可能限制采样率。因此,在高速应用中需权衡分辨率
    发表于 09-18 09:31

    聚徽厂家工业液晶屏的高分辨率成像技术揭秘

    在工业生产、智能控制、精密检测等领域,对信息的精准获取与清晰展示至关重要。聚徽厂家的工业液晶屏凭借卓越的高分辨率成像技术,在众多品牌中脱颖而出,为各行业提供了清晰、细腻的视觉呈现。接下来,将深入探究聚徽工业液晶屏高分辨率成像技术背后的奥秘。
    的头像 发表于 07-11 18:08 1054次阅读

    分辨率 vs 噪声 —— ADC的挑战

    设计者常用高分辨率 ADC 以降低最低可量测单位(LSB),提高检测精度。 比如一个 16 位 ADC 在 5V 范围内, LSB ≈ 76 μV ;理想情况下可以检测到微弱电信号。 问题是: 若
    的头像 发表于 06-23 07:38 2352次阅读
    <b class='flag-5'>分辨率</b> vs 噪声 —— <b class='flag-5'>ADC</b>的挑战

    LT8722如何实现高分辨率的脉冲?

    resolution should be 333/2^(24)=0.00002 ns. 如何实现如此高分辨率的脉冲? PWM 是否由模拟比较器产生?芯片中是否有真正的 DAC 来产生比较器电压? What
    发表于 04-28 06:08