




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于STM32的过采样技术研究与实现吴家平1,沈建华2 (华东师范大学计算机科学与技术系,上海 200241)摘 要 针对微控制器自带ADC精度较低的情况,介绍了过采样技术提高微控制器ADC精度的基本原理,给出了在ARM Cortex-M3内核微控制器STM32上的实现方法,并测试、分析了其性能和处理器负荷情况。实验证明,在STM32微控制器上使用过采样技术,能够以很小的处理器负荷、有效地提高其自带ADC的精度。关键字 量化 过采样 抽取 DMASTUDY AND INPLEMENTATION OF OVERSAMPLING TECHNOLOGY ON STM32 WU JIA-PING1, SHEN JJIA-HUA2 (Department of Information Science and Technology,East China Normal University,Shanghai 200241,China)Abstract Due to low resolution of ADC in the present MCU and increase of cost if external ADC of high resolution is used, the oversampling technology is introduced to improve the resolution of ADC.A specific realizing method is given on STM32,with the affect to processor analyzed . The practical experiment and the results approve that the oversampling technology can effectively improve the resolution of ADC in STM32,while not increasing the load of processor.Key words quantization oversampling decimation DMA1 引言由于数据采样的广泛需求,当前市场上的大多数微控制器都在内部集成了ADC用来采样数据。但是在很多情况下,这些自带的ADC往往达不到应用所需要的精度,而使用外部专用的ADC通常会使得成本有所增加。过采样技术无须添加额外的硬件,仅仅通过软件的方法就能够实现ADC精度的提高,从而使得片上自带的ADC能够实现昂贵的片外ADC的精度指标。STM32系列32位微控制器使用ARM公司的Cortex-M3处理器,该处理器专门设计于满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求。但是其自带的ADC只有12位精度,在某些场合满足不了要求,通过引入过采样技术,能够有效的增加数据采样精度,解决了使用外部专用ADC带来的成本问题。2 过采样技术原理2.1 量化噪声分析ADC采样过程其实是一个将连续的模拟信号量化成有限的数字的过程,每个数字代表一次采样所获得的信号。量化时,根据数据位把整个幅度划分为量化级,例如12位数据位则表示212个量化级,16位数据则表示216个量化级,把落入同一级的样本值归为一类,并给定一个量化值。由于模拟信号的是连续的,量化结果和被实际模拟量的之间会存在差值,该差值被称作量化误差(eq),也称量化噪声。根据参考电压(Vref)和量化的数字的位数(N),能够确定最小的分辨率: = (1)N越大, 就越小,量化误差也就越小。在没有其它能造成误差的因素例如热噪声、杂色噪声、参考电压变化的理想情况,量化误差应该在0.5之内,即0.5。假设输入信号的变化大于,并且在间随机分布,可以将量化噪声看成白噪声,其总功率为一个常数,平分分布在0fs的频带内,如图1所示。 图1 噪声功率分布(fs = 2fm)上图中fm为输入信号的频率,fs 为采样频率。根据Nyquist定理,采样频率必需至少是信号频率的两倍,否则高频部分将有损失,所以fs2fm 。此时的信噪比可以通过下面公式来得到:SNRdB = 6.02R + 1.76 (2)式中R为ADC的精度。由于噪声总功率一定,所以fs越大,叠加在有效信号部分的量化噪声就越小,图2显示了将采样率提高到N倍进行过采样时量化噪声的分布。图2噪声功率分布(fs = 2Nfm)此时得到的信噪比如下:SNRovs = 6.02 R + 1.76 + l0 log(N) (3)可以推算,每将采样频率提高4倍,便会增加1位精度。需要得到额外p位精度,ADC的过采样率Fovs必须满足:Fovs = 4p Fs (4)2.3过采样数据的抽取 以过4p过采样率得到的采样值通过求和、平均的方法进行处理。但是不能将这4p个采样值相加后简单的除以4p,这样只能起到一个低通滤波的作用,R位的采样值经过这样平均后精度仍旧是R位,并不能实现采样精度的提高。数据抽取方法首先将4p个采样值相加,得到一个R+2p位的数值,然后将该数值右移p位,得到一个R+p位的数值,这个数值才是最终提高了p位精度的采样结果。 2.4 进行过采样的前提条件过采样技术并不是在任何情况下都能很好的发挥作用的,如果要使用过采样来增加采样精度,必须满下面两个条件:(1)输入信号里必须存在一些噪音,这些噪音必须是白噪音,功率平均分配在整个有用的频带内。(2)噪声的幅度必须能够对输入信号产生足够大的影响,以使得ADC转换的结果能随机的翻转至少1位,否则的话所有的输入信号将会转换出同样的值,对这些值进行的抽取操作将不会带来精度的提高。 在大多数应用中,内部ADC的热噪声以及输入信号本身的变化足以使得以上条件成立。如果热噪声不足以使输入信号随机的翻转1位,那么必须人为的在输入信号中引入一定的噪声。引 入的噪声不应和输入信号线性相关,并且必须能使得ADC转换结果随机的在相邻的量化值之间翻转。3 过采样技术在STM32上的实现3.1 STM32片上ADC的特性STM32内部自带12位的ADC。该ADC具有16个输入信号通道,通过配置采样序列寄存器,这些通道能以任意的顺序轮流进行采样。该ADC还具有自动校验功能,可以显著的减小采样的误差。STM32上ADC的结构见图3:DMA请求ADCCLK A/D转换器MUXADC_IN0ADC_IN15ADC_DRVREF+VREF-VDDAVSSA图3 STM32内部ADC框图图中ADCCLK为ADC时钟,在CPU时钟为56MHz的情况下,ADCCLK可达14MHz。在最高速转换的情况下,只需要14个ADC时钟周期就能完成一次采样,因此可达到1Msps的采样速度。STM32内部具有2个DMA控制器,共有12个通道,用于外设和存储器以及存储器和存储器之间的快速数据传输。ADC每完成一次采样,就可以产生一次DMA请求,如果相应的DMA通道被使能,采样值就可以通过DMA直接传输到SRAM,不需要CPU的干预,使得大部分时间里,CPU和数据传输处于并行操作,因此可以使整个系统的效率大大提高。STM32内嵌了8个16位的定时器,具有捕获比较、输入/输出比较、PWM和单脉冲等工作模式。定时器时钟可以设置为和CPU时钟一样大小,从而能够精确的产生us级的定时。设计中使用了STM32系列中的STM32F103C。3.2 STM32上过采样条件检测为了确保过采样技术使用的正确性,在正式设计软件代码之前对系统是否满足过采样条件进行了检验。实验过程中输入信号的频率为50Hz,根据Nyquis定律,采样率至少为100Hz。在100Hz的采样率下,分别向系统ADC提供0.0000V、1.7000V和3.4000V输入信号,采样值不经过处理直接送到PC机上,通过Excel软件观看得到的数据,图4为信号为1.7000V时采样值中的200个数据。图4 采样数据图 (输入信号=1.7000V)从图中可以看到,系统中的噪声能够使得输入信号翻转12位,并且噪声的分布近似是随机的,从而可以将其看成白噪声。所以在该系统上,已经满足了进行过采样所需要的条件,无须再人为的给输入信号引入白噪声。3.3 软件设计软件系统主要包括系统初始化和中断处理两大模块。3.3.1系统初始化模块该部分主要对STM32的CPU时钟、ADC、DMA、定时器进行初始化。为了将精度提高4位,50Hz的输入信号需要至少50*2*44=25.6KHz的采样频率。通过将CPU时钟设为56MHz,ADC时钟分频系数设置为8,转换时间设为242个ADC时钟周期,使得ADC的采样率为29KHz,即能满足采样频率的要求,又不会占用CPU时间。定时器设置为每10ms产生一次中断,在定时器中断中启动一次DMA传输,DMA传输源设置为ADC数据寄存器,传输目的为一块256半字的缓存,传输量为256个半字(每个采样值为一个半字),这样使得实际的采样值获取频率为25.6KHz。3.3.2中断处理模块在DMA传输完成中断处理程序中对获得的256个采样值进行求和,得到的和进行以下处理:(1) 右移8位,得到一个12位的采样值,该值作为经过一个经过均值滤波的采样结果,将用于过采样结果的参照。(2) 右移4位,得到一个16位的采样值,该值作为最终的过采样结果。3.4 测试结果实验中所使用的标准信号源为VICTOR11+,输出分辨率0.0001V,实验对不同范围的输入信号进行测量,得到的数据如表1:表1 采样结果输入信号单位:V普通采样过采样理论值(12位)实际采样值(12位)理论值(16位)实际采样值(16位)0.11111331342141214921500.41114954957924792779290.81119779781563415642156451.2111145914602334423355233581.6111194019413105431064310682.1111254325444069240713407182.7111326632685225752281522863.111137473749599675998659992由采样结果可以看到,使用过采样技术采集的数据能够基本达到14位的精度。4 处理器负荷分析在该软件系统中,处理器主要的时间花在DMA的传输完成中断处理上, 其中最占时间的是256个数据的循环累加。由于STM32系列微控制器采用了Cortex-M3处理器,而Cortex-M3处理器的核心是基于哈佛架构的3级流水线内核,该内核集成了分支预测技术,所以达到了1.25 DMIPS/MHz的优越性能。在56MHz的系统时钟下,指令周期=1/(1.2556)=0.01423us。通过反汇编可以看到,每次累加需要6条指令(虽然其中包含了LDR和BCC指令,但由于指令顺序经过编译器调整,内核又使用了分支预测,所以流水线能保证每个机器周期吐出一条指令),256次累加总共用到2566 = 1536 条指令,执行时间=15360.0142321.857 us。 也就是说在10ms的采样间隔时间内,处理器只需要花费21.857us去处理数据,由此可计算处理器使用率0.021857/10 0.22% 。由此可见处理器并不会因为过采样数据的处理而受到很大的影响。5 STM32上过采样对输入信号频率的限制根据Nyquis定律,采样频率必须是输入信号的2倍才能将信号还原,当需要提高p位采样精度的时候,频率又得提高4p倍。STM32上的ADC能达到的最高采样率为1MHz,如果要达到16位的精度,那么输入信号的频率就不能够超过1M/2/256 = 2KHz 。6 结束语过采样技术的应用,能够有效的利用低精度的ADC获得高精度的采样结果,这使得本来需要使用昂贵的外部专用ADC的微控制器仅使用自带的ADC就能够达到应用要求,在一定程度上节约了成本。当然,过采样技术的使用必须具备一定的前提条件,并且使用过采样技术后对输入信号频率具有一定局限性。过采样技术的对CPU的负荷也是有一定的影响的,但是由于STM32采用了高性能的Cortex-M3处理,并且采用了DMA在外设和SRAM之间进行直接数据传输,使得过采样技术不会给STM32处理器增加太大负荷。本文作者创新点:研究了一种提高数据采集精度的算法,在采用了最新Cortex-M3内核的STM32系列微控制器上实现了该算法,并对算法给处理器带来的负荷进行了分析。参考文献1 Schafer R. Discrete2time signal processing M . New Jersey : Prentice Hall ,1999.2 J.C.Candy and G. C. Temes. Oversampling methods for A/D and D/A conversionJ. IEEE transactions on circuits and Systems, June 1987.3 Andrew N.Sloss,Dominic Symes 著,沈建华等译,ARM嵌入式系统开发软件设计与优化M,北京航空航天大学出版社,2005 4 张俊. 匠人手记M, 北京:北京航空航天出版社,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级语文下册 第三单元 12巍巍中山陵教学设计1 苏教版
- 高中语文培训课程大纲
- 七年级语文下册 第五单元 20录音新闻教学设计1 苏教版
- 人教版小学数学四年级上册教学教案设计归纳总结7
- 九年级化学上册 第五单元 定量研究化学反应 第一节 化学反应中的质量守恒同步教学设计 (新版)鲁教版
- 七年级道德与法治下册 第三单元 在集体中成长 第七课 共奏和谐乐章 第二框《节奏与旋律》教学设计 新人教版
- 电池检测方法培训总结
- 人教版地理八年级下册教学设计第九章第一节青藏地区的自然特征与农业河北省石家庄市栾城县马家庄第二中学
- 店铺执行力培训
- 人教版道德与法治八年级上册 10.1 关心国家发展 教学设计
- 家族办公室公司章程
- 2024年度保密教育线上培训考试题库新版
- 【9道三模】2024年安徽省合肥市蜀山区中考三模道德与法治试题(含解析)
- 敲墙搬运合同范本
- (高清版)JTGT 5190-2019 农村公路养护技术规范
- 小学生必背古诗“飞花令”200句
- 2024年3月青少年软件编程Scratch图形化等级考试试卷一级真题(含答案)
- 浙江省强基联盟联考2023-2024学年高一下学期5月联考语文试题(含答案)
- 2024年福建省漳州市中考二模化学试题
- 华为绿色运营管理与可持续发展
- 2024年辅警招聘考试试题库含完整答案(各地真题)
评论
0/150
提交评论