一种高效的环形缓存ADC采集方法技术

技术编号:30770995 阅读:22 留言:0更新日期:2021-11-10 12:40
本发明专利技术涉及ADC转换技术领域,尤其是指一种高效的环形缓存ADC采集方法,MCU初始化后启动ADC转换,ADC转换期间,MCU可自行处理其他的任务,不需要等待ADC转换完成,ADC每次转换完成后,便将转换结果存储于缓存数组,循环进行转换以及存储的工作;MCU间隔时间T1便检测ADC转换是否完成,若是完成,则从缓存数组中获取转换结果,若是未完成转换,则MCU继续执行其他的任务,ADC转换继续进行。本发明专利技术,设置缓存数组来暂存ADC的转换结果,并且使ADC转换期间,MCU可执行其他的任务,而不需要等待ADC的转换完成,因而可以节省MCU的总工作时间,可以有效提高MCU的工作效率。提高MCU的工作效率。提高MCU的工作效率。

【技术实现步骤摘要】
一种高效的环形缓存ADC采集方法


[0001]本专利技术涉及ADC转换
,尤其是指一种高效的环形缓存ADC采集方法。

技术介绍

[0002]MCU的ADC是Analog

to

Digital Converter的缩写,指模/数转换器或者模数转换器,是指将连续变化的模拟信号转换为离散的数字信号的器件。模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模/数转换器可以实现这个功能,在各种不同的产品中都可以找到它的身影。
[0003]一般在软件设计中,会采用中断或者软件触发并等待ADC采集完成。使用ADC中断可能会影响其他中断响应的实时性,而用软件触发并等待ADC完成会浪费MCU的性能,因为MCU触发ADC然后一直等转换完成,期间响应中断MCU不处理其他的任务,所以造成浪费MCU资源以及时间的问题。

技术实现思路

[0004]本专利技术针对现有技术的问题提供一种高效的环形缓存ADC采集方法,MCU启动ADC转换后,MCU处理其他的任务,ADC转换后将转换结果存储于缓存数组中,等待MCU的获取;因而在ADC转换的器件,MCU可以处理其他的任务,不需要等待ADC的转换,进而可以避免浪费MCU的资源以及工作时间。
[0005]为了解决上述技术问题,本专利技术第一方面公开如下技术方案:一种高效的环形缓存ADC采集方法,包括以下步骤:
[0006]A.MCU初始化后启动ADC转换;
[0007]B.间隔时间T1,MCU检测ADC转换是否完成;
[0008]C.若ADC转换完成,则ADC的转换结果存储于MCU设定的缓存数组;若ADC转换未完成,则ADC继续转换;
[0009]D.缓存数组中的ADC转换结果被获取之前,重复步骤B和步骤C;
[0010]E.MCU由缓存数组中获取ADC转换结果。
[0011]优选的,所述步骤C中,ADC转换结果的存储方式包括:
[0012]C1.缓存数组设置n个数组元素[i],数组元素用于存储ADC转换结果;每个数组元素的地址指针设为P,其中已存储的数组元素的数量为设为W,其中i<n,0≤W≤n;
[0013]C2.ADC转换启动后,指针P指向第一个数组元素[0],W=0;
[0014]第一次ADC转换结果完成后,第一个转换结果存储于指针指向的数组元素[0],接着指针P指向下一个地址数组元素[1],W=1;
[0015]第二次ADC转换结果完成后,第二个转换结果存储于指针指向的数组元素[1],接着指针P指向下一个地址数组元素[2],W=2;
[0016]C3.第m次ADC转换结果完成后,第m个转换结果存储于指针指向的数组元素[i],接着指针P指向下一个地址数组元素[i+1],W=m;
[0017]C4.当ADC转换结果存储于数组元素[n

1]后,指针P重新指向数组元素[0],接着重复步骤C3,此时W=n不再变化;
[0018]C5.在MCU获取ADC转换结果之前,重复步骤C3和步骤C4;
[0019]MCU获取ADC转换结果后,重新执行步骤C2、步骤C3和步骤C4。
[0020]优选的,MCU获取ADC转换结果时,由缓存数组中获取最新的W个存储于数组元素中的ADC转换结果,并将W个ADC转换结果取平均值,作为最终MCU采用的ADC转换结果。
[0021]优选的,ADC的一次转换的时间设为Tad,步骤B中,MCU的间隔检测时间T1满足T1>Tad。
[0022]优选的,转换时间Tad=12tAD+采样时间,其中采样时间为ADC的采样时间,tAD=2tSYS,tSYS为MCU系统时钟周期;
[0023]设采样时间为xtAD,则Tad=12tAD+xtAD=(12+x)*2tSYS;
[0024]MCU的晶振设为yMHz,则频率fosc=yMHz;
[0025]配置寄存器,使fsys=fosc,则tSYS=1/fosc=1/fsys;
[0026]可以获得转换时间Tad=(12+x)*2tSYS=(12+x)*2/fsys。
[0027]优选的,所述步骤B中,检测间隔时间T1的获取方法包括:
[0028]B1.MCU获取ADC转换结果的同时,设置一个IO口翻转;
[0029]B2.通过示波器读取两个IO口翻转之间的时间间隔,则为检测间隔时间T1。
[0030]优选的,获取检测检测时间T1后,判断检测检测时间T1与转换时间Tad之间的大小;当T1大于Tad,则通过增加采样时间xtAD来增加转换时间Tad;当T1<Tad,则通过减少采样时间xtAD来减少转换时间Tad。
[0031]针对现有技术的问题,本专利技术第二方面公开了一种环形缓存ADC采集装置,包括MCU、ADC转换模块、缓存数组以及时间判断模块,所述缓存数组包括有多个数组元素;
[0032]所述ADC模块用于使采集的外部模拟信号转换成数字信号并将转换结果存储于所述数组元素中;
[0033]所述MCU用于将多个所述数组元素中的转换结果取平均值;
[0034]所述时间判断模块用于判断所述MCU的获取ADC转换模块的转换结果的时间与ADC转换模块的转换时间之间的大小。
[0035]针对现有技术的问题,本专利技术第三方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行第一方面公开的高效的环形缓存ADC采集方法。
[0036]针对现有技术的问题,本专利技术第四方面公开了一种电子设备,该电子设备包括:处理器以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如第一方面公开的所述的高效的环形缓存ADC采集方法。
[0037]本专利技术的有益效果:
[0038]本专利技术提供的一种高效的环形缓存ADC采集方法,MCU初始化后启动ADC转换,ADC转换期间,MCU可自行处理其他的任务,不需要等待ADC转换完成,ADC每次转换完成后,便将转换结果存储于缓存数组,循环进行转换以及存储的工作;MCU间隔时间T1便检测ADC转换是否完成,若是完成,则从缓存数组中获取转换结果,若是未完成转换,则MCU继续执行其他的任务,ADC转换继续进行。本专利技术,通过设置缓存数组来暂存ADC的转换结果,并且使ADC转
换期间,MCU可执行其他的任务,而不需要等待ADC的转换完成,因而可以节省MCU的总工作时间,多任务同时进行,可以有效提高MCU的工作效率。
附图说明
[0039]图1为本专利技术的流程示意图;
[0040]图2为本专利技术的ADC转换结果和数组元素的关系图。
具体实施方式
[0041]为了便于本领域技术人员的理解,下面结合实施例与附图对本专利技术作进一步的说明,实施方式提及的内容并非对本专利技术的限定。以下结合附图对本专利技术进行详细的描述。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高效的环形缓存ADC采集方法,其特征在于,包括以下步骤:A.MCU初始化后启动ADC转换;B.间隔时间T1,MCU检测ADC转换是否完成;C.若ADC转换完成,则ADC的转换结果存储于MCU设定的缓存数组;若ADC转换未完成,则ADC继续转换;D.缓存数组中的ADC转换结果被获取之前,重复步骤B和步骤C;E.MCU由缓存数组中获取ADC转换结果。2.根据权利要求1所述一种高效的环形缓存ADC采集方法,其特征在于,所述步骤C中,ADC转换结果的存储方式包括:C1.缓存数组设置n个数组元素[i],数组元素用于存储ADC转换结果;每个数组元素的地址指针设为P,其中已存储的数组元素的数量为设为W,其中i<n,0≤W≤n;C2.ADC转换启动后,指针P指向第一个数组元素[0],W=0;第一次ADC转换结果完成后,第一个转换结果存储于指针指向的数组元素[0],接着指针P指向下一个地址数组元素[1],W=1;第二次ADC转换结果完成后,第二个转换结果存储于指针指向的数组元素[1],接着指针P指向下一个地址数组元素[2],W=2;C3.第m次ADC转换结果完成后,第m个转换结果存储于指针指向的数组元素[i],接着指针P指向下一个地址数组元素[i+1],W=m;C4.当ADC转换结果存储于数组元素[n

1]后,指针P重新指向数组元素[0],接着重复步骤C3,此时W=n不再变化;C5.在MCU获取ADC转换结果之前,重复步骤C3和步骤C4;MCU获取ADC转换结果后,重新执行步骤C2、步骤C3和步骤C4。3.根据权利要求2所述一种高效的环形缓存ADC采集方法,其特征在于:MCU获取ADC转换结果时,由缓存数组中获取最新的W个存储于数组元素中的ADC转换结果,并将W个ADC转换结果取平均值,作为最终MCU采用的ADC转换结果。4.根据权利要求1所述一种高效的环形缓存ADC采集方法,其特征在于:ADC的一次转换的时间设为Tad,步骤B中,MCU的间隔检测时间T1满足T1>Tad。5.根据权利要求4所述一种高效的环形缓存ADC采集...

【专利技术属性】
技术研发人员:刘华张昱
申请(专利权)人:东莞市盈聚电源有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1