CN113625934B - 一种高效的环形缓存adc采集方法 - Google Patents
一种高效的环形缓存adc采集方法 Download PDFInfo
- Publication number
- CN113625934B CN113625934B CN202111045050.8A CN202111045050A CN113625934B CN 113625934 B CN113625934 B CN 113625934B CN 202111045050 A CN202111045050 A CN 202111045050A CN 113625934 B CN113625934 B CN 113625934B
- Authority
- CN
- China
- Prior art keywords
- adc
- conversion
- mcu
- time
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000006243 chemical reaction Methods 0.000 claims abstract description 211
- 238000005070 sampling Methods 0.000 claims description 23
- 238000001514 detection method Methods 0.000 claims description 20
- 239000013078 crystal Substances 0.000 claims description 5
- 238000012935 Averaging Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/05—Digital input using the sampling of an analogue quantity at regular intervals of time, input from a/d converter or output to d/a converter
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本发明涉及ADC转换技术领域,尤其是指一种高效的环形缓存ADC采集方法,MCU初始化后启动ADC转换,ADC转换期间,MCU可自行处理其他的任务,不需要等待ADC转换完成,ADC每次转换完成后,便将转换结果存储于缓存数组,循环进行转换以及存储的工作;MCU间隔时间T1便检测ADC转换是否完成,若是完成,则从缓存数组中获取转换结果,若是未完成转换,则MCU继续执行其他的任务,ADC转换继续进行。本发明,设置缓存数组来暂存ADC的转换结果,并且使ADC转换期间,MCU可执行其他的任务,而不需要等待ADC的转换完成,因而可以节省MCU的总工作时间,可以有效提高MCU的工作效率。
Description
技术领域
本发明涉及ADC转换技术领域,尤其是指一种高效的环形缓存ADC采集方法。
背景技术
MCU的ADC是Analog-to-Digital Converter的缩写,指模/数转换器或者模数转换器,是指将连续变化的模拟信号转换为离散的数字信号的器件。模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模/数转换器可以实现这个功能,在各种不同的产品中都可以找到它的身影。
一般在软件设计中,会采用中断或者软件触发并等待ADC采集完成。使用ADC中断可能会影响其他中断响应的实时性,而用软件触发并等待ADC完成会浪费MCU的性能,因为MCU触发ADC然后一直等转换完成,期间响应中断MCU不处理其他的任务,所以造成浪费MCU资源以及时间的问题。
发明内容
本发明针对现有技术的问题提供一种高效的环形缓存ADC采集方法,MCU启动ADC转换后,MCU处理其他的任务,ADC转换后将转换结果存储于缓存数组中,等待MCU的获取;因而在ADC转换的器件,MCU可以处理其他的任务,不需要等待ADC的转换,进而可以避免浪费MCU的资源以及工作时间。
为了解决上述技术问题,本发明第一方面公开如下技术方案:一种高效的环形缓存ADC采集方法,包括以下步骤:
A.MCU初始化后启动ADC转换;
B.间隔时间T1,MCU检测ADC转换是否完成;
C.若ADC转换完成,则ADC的转换结果存储于MCU设定的缓存数组;若ADC转换未完成,则ADC继续转换;
D.缓存数组中的ADC转换结果被获取之前,重复步骤B和步骤C;
E.MCU由缓存数组中获取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。
优选的,MCU获取ADC转换结果时,由缓存数组中获取最新的W个存储于数组元素中的ADC转换结果,并将W个ADC转换结果取平均值,作为最终MCU采用的ADC转换结果。
优选的,ADC的一次转换的时间设为Tad,步骤B中,MCU的间隔检测时间T1满足T1>Tad。
优选的,转换时间Tad=12tAD+采样时间,其中采样时间为ADC的采样时间,tAD=2tSYS,tSYS为MCU系统时钟周期;
设采样时间为xtAD,则Tad=12tAD+xtAD=(12+x)*2tSYS;
MCU的晶振设为yMHz,则频率fosc=yMHz;
配置寄存器,使fsys=fosc,则tSYS=1/fosc=1/fsys;
可以获得转换时间Tad=(12+x)*2tSYS=(12+x)*2/fsys。
优选的,所述步骤B中,检测间隔时间T1的获取方法包括:
B1.MCU获取ADC转换结果的同时,设置一个IO口翻转;
B2.通过示波器读取两个IO口翻转之间的时间间隔,则为检测间隔时间T1。
优选的,获取检测检测时间T1后,判断检测检测时间T1与转换时间Tad之间的大小;当T1大于Tad,则通过增加采样时间xtAD来增加转换时间Tad;当T1<Tad,则通过减少采样时间xtAD来减少转换时间Tad。
针对现有技术的问题,本发明第二方面公开了一种环形缓存ADC采集装置,包括MCU、ADC转换模块、缓存数组以及时间判断模块,所述缓存数组包括有多个数组元素;
所述ADC模块用于使采集的外部模拟信号转换成数字信号并将转换结果存储于所述数组元素中;
所述MCU用于将多个所述数组元素中的转换结果取平均值;
所述时间判断模块用于判断所述MCU的获取ADC转换模块的转换结果的时间与ADC转换模块的转换时间之间的大小。
针对现有技术的问题,本发明第三方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行第一方面公开的高效的环形缓存ADC采集方法。
针对现有技术的问题,本发明第四方面公开了一种电子设备,该电子设备包括:处理器以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如第一方面公开的所述的高效的环形缓存ADC采集方法。
本发明的有益效果:
本发明提供的一种高效的环形缓存ADC采集方法,MCU初始化后启动ADC转换,ADC转换期间,MCU可自行处理其他的任务,不需要等待ADC转换完成,ADC每次转换完成后,便将转换结果存储于缓存数组,循环进行转换以及存储的工作;MCU间隔时间T1便检测ADC转换是否完成,若是完成,则从缓存数组中获取转换结果,若是未完成转换,则MCU继续执行其他的任务,ADC转换继续进行。本发明,通过设置缓存数组来暂存ADC的转换结果,并且使ADC转换期间,MCU可执行其他的任务,而不需要等待ADC的转换完成,因而可以节省MCU的总工作时间,多任务同时进行,可以有效提高MCU的工作效率。
附图说明
图1为本发明的流程示意图;
图2为本发明的ADC转换结果和数组元素的关系图。
具体实施方式
为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。以下结合附图对本发明进行详细的描述。
实施例一:
本实施例提供的一种高效的环形缓存ADC采集方法,如图1所示为本实施例公开的流程示意图,其中,图1所描述的高效的环形缓存ADC采集方法可以应用于多种服务器中,即需要进行模数转换的服务器中均可以使用,本发明实施例不做限定。包括以下步骤:
A.MCU初始化后启动ADC转换;
B.间隔时间T1,MCU检测ADC转换是否完成;其中,MCU检测的工作可以是直接检测ADC是否有转换结果的产出,也可以检测ADC的工作状态,此为现有技术,本实施例不做具体限制;而间隔时间T1需要大于等于ADC完成一次转换时间,例如在第一次间隔时间T1,MCU检测发现ADC转换未完成,说明T1小于ADC的转换时间,所以需要调整间隔时间T1的大小亦或者调整ADC的转换时间,从而来使间隔时间T1和ADC的转换时间相适应,不能相差太多,并且需要调整使时间T1稍微大于ADC的转换时间,才能实现最优化的ADC转换以及采集的工作效率;
C.若ADC转换完成,则ADC的转换结果存储于MCU设定的缓存数组;若ADC转换未完成,则ADC继续转换;其中,缓存数组可以是寄存器,也可以是MCU中可以实现相同功能的存储结构,只需要能完成暂存ADC的转换结果的功能便可;
D.缓存数组中的ADC转换结果被获取之前,重复步骤B和步骤C;也就是说,在MCU获取转换结果之前,ADC转换会一直进行,转换结果会逐个暂存于缓存数组中,当缓存数组中的所有缓存地址均存储有转换结果,而MCU还未获取转换结果时,则缓存数组中的缓存地址开始迭代转换结果,从而缓存数组中保持有最新的ADC转换结果,保证MCU最终获得的ADC转换结果是最新的数据,也是最准确的数据;
E.MCU由缓存数组中获取ADC转换结果。
具体地,本实施例的MCU初始化后启动ADC转换,ADC转换期间,MCU可自行处理其他的任务,不需要等待ADC转换完成,ADC每次转换完成后,便将转换结果存储于缓存数组,循环进行转换以及存储的工作;MCU间隔时间T1便检测ADC转换是否完成,若是完成,则从缓存数组中获取转换结果,若是未完成转换,则MCU继续执行其他的任务,ADC转换继续进行。本发明,通过设置缓存数组来暂存ADC的转换结果,并且使ADC转换期间,MCU可执行其他的任务,而不需要等待ADC的转换完成,因而可以节省MCU的总工作时间,多任务同时进行,可以有效提高MCU的工作效率。
在一个可选的实施例中,步骤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。
具体地,如图2所示,为ADC转换结果和数组元素的关系图,本实施例以数组元素的数目为6个进行说明,则在本实施例中,n=6,0≤W≤6。初始化后,W=0,指针P指向数组元素[0],在第一次ADC转换完成后,转换结果存储于指针P指向的数组元素[0],接着,指针P指向下一个数组元素[1],W=1,代表着此时的缓存数组中有一个转换结果,ADC进行第二次转换后,将转换结果存储于数组元素[1],接着指针P指向数组元素[2],W=2,缓存数组中有两个转换结果。以此类推,当第六个转换结果存储于数组元素[5]中后,W=6,缓存数组6个数组元素均存满,若MCU还未获取转换结果,则接下来,指针P重新指向数组元素[0],使新的转换结果存储于数组元素[0]中,将原来的数据迭代,而W=6不变,代表着6个数组元素中均有转换结果,例如图2中的第9个图,此时转换数据已经进行迭代,数组元素[0]和数组元素[1]中都迭代了新的转换结果,若此时MCU需要获取ADC转换结果,则MCU获取的还是6个数组元素中的转换数据,这6个转换数据,数组元素[2]到数组元素[5]中为第一轮的转换结果,数组元素[0]和数组元素[1]则为第二轮的转换结果,也就是说,无论MCU何时获取数据,获取的均是最新的6个转换结果,再将6个转换结果取平均值,作为最后使用的ADC转换结果,从而可以保证得到稳定的ADC转换结果。W是代表着MCU能获取的最多的转换结果数量,所以在数据开始迭代后,W始终等于6,也就是MCU可以获取6个最新的转换结果的数据。而在MCU获取到ADC转换结果后,指针P将重新指向数组元素[0],而W的值也重新归零,开始下一轮的转换结果的存储。本实施例以6个数组元素进行说明,实际上可以根据需求增加或者减少数组元素的数量,来提高ADC采样结果的稳定性以及响应速度。
在另一个可选的实施例中,ADC的一次转换的时间设为Tad,步骤B中,MCU的间隔检测时间T1满足T1>Tad。
进一步的,转换时间Tad=12tAD+采样时间,其中采样时间为ADC的采样时间,tAD=2tSYS,tSYS为MCU系统时钟周期;本实施例以MCU的晶振为8MHz为例进行计算,实际MCU的晶振根据应用的产品、场合来定。
设采样时间为xtAD,则Tad=12tAD+xtAD=(12+x)*2tSYS;
MCU的晶振设为yMHz,则频率fosc=yMHz;
配置寄存器,使fsys=fosc,则tSYS=1/fosc=1/fsys=1.25*10-7S;
可以获得转换时间Tad=(12+x)*2tSYS=(12+x)*2/fsys。
具体地,在该可选的实施例中,采样时间可以选择2tAD到15tAD之间的时间,例如设定采样时间为8tAD,则转换时间Tad等于20tAD,所以可以计算出转换时间Tad=20tAD=20*2tSYS=40/fsys=40*1.25*10-7S=5*10-6S。可以看出,转换时间Tad是可以根据采样时间来改变的。所以在进一步判断时间T1与转换时间Tad之间的大小后,便可以通过更改采样时间来调整Tad的大小,使其与时间T1靠近。
在本可选的实施例中,步骤B还包括有间隔时间T1的获取方法,该获取方法有多种,在一种实施方式中,包括以下步骤:
B1.MCU获取ADC转换结果的同时,设置一个IO口翻转;
B2.通过示波器读取两个IO口翻转之间的时间间隔,则为检测间隔时间T1。
也就是说,每次MCU检测获取ADC转换结果时,均设置一个IO口翻转,IO口翻转为现有技术,于是在IO口翻转之后,在示波器上便可以看到翻转的波形,于是通过读取两个IO口的翻转之间的时间间隔,便可以得到间隔时间T1。
在本实施例的间隔时间T1的获取方法的另一种实施方式中,可以通过程序仿真模式,获取两次MCU检测之间的程序运行时间,则为检测间隔时间T1,其中程序仿真为现有技术。
在本实施例的间隔时间T1的获取方法的第三种实施方式中,通过程序仿真模式,查看MCU两次检测ADC转换结果之间的指令数a,根据每条指令所花的时间t来获取检测间隔时间T1=a*t。也就是说,MCU执行获取检测转换结果所执行的指令数,实际上代表着MCU执行的时间,只需要计算每条指令的执行时间,再将所有指令的执行时间相加,便可以得到时间T1。其中,程序仿真以及查看指令均为现有技术。
更进一步的,在获取到间隔时间T1后,为了优化本实施例的ADC转换以及采集工作,可通过判断检测检测时间T1与转换时间Tad之间的大小来进行优化调整;
当T1大于Tad,则通过增加采样时间xtAD来增加转换时间Tad;如上述实施例所说,转换时间Tad是可以根据采样时间来改变的,而采样时间可以选择2tAD到15tAD之间的时间,所以通过增加采样时间来增大转换时间Tad,从而使转换时间Tad接近检测检测时间T1,从而可以提高ADC转换结果的获取的响应速度。同理,当T1<Tad,则通过减少采样时间xtAD来减少转换时间Tad。
作为调整间隔时间T1和转换时间Tad的调整的另一种实施方式,本实施例还可以调整间隔时间T1,例如优化MCU执行的指令数量以及时间来优化间隔时间T1,可增加指令或者减少指令,使间隔时间T1增加或者减少,从而使得转换时间Tad接近检测检测时间T1。
实施例二:
本实施例提供的一种环形缓存ADC采集装置,可以应用于多种服务器中,即需要进行模数转换的服务器中均可以使用,本发明实施例不做限定。
环形缓存ADC采集装置包括MCU、ADC转换模块、缓存数组以及时间判断模块,所述缓存数组包括有多个数组元素;所述ADC模块用于使采集的外部模拟信号转换成数字信号并将转换结果存储于所述数组元素中;所述MCU用于将多个所述数组元素中的转换结果取平均值;所述时间判断模块用于判断所述MCU的获取ADC转换模块的转换结果的时间与ADC转换模块的转换时间之间的大小。
具体地,MCU、ADC转换模块本身均为现有技术,只需要通过改变MCU和ADC转换模块的工作执行指令,便可以使其实现本实施例的功能,缓存数组可以为MCU本身带有的寄存器,时间判断模块在获取到时间后,可以采用将时间数据回传到MCU中进行比较,通过设置比较指令进行比较,便可判断出两个时间的大小。本实施例的MCU,可以是单片机中的中央处理器等现有技术,此处不做限制。本实施例通过ADC转换模块与缓存数组之间的配合,实现在ADC转换模块工作时,MCU可以执行其他的指令工作,在需要使用ADC转换结果的时候,MCU再从缓存数组中获得转换结果便可,从而达到节省MCU工作资源以及工作时间的目的。
实施例三:
本发明实施例公开了一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,该计算机程序使得计算机执行实施例一所描述的高效的环形缓存ADC采集方法中部分或者全部的步骤。
实施例四:
本发明实施例公开的一种电子设备,其中,该电子设备包括:处理器以及被安排成存储计算机可执行指令的存储器,存储器可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器具有存储用于执行实施例一中的任何方法步骤的程序代码的存储空间。例如,用于程序代码的存储空间可以包括分别用于实现上面实施例一的方法中的各种步骤的各个程序代码。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为实施例四的计算机可读存储介质。程序代码可以例如以适当形式进行压缩。通常,存储单元存储有用于执行根据本发明的方法步骤的程序代码,即可以由诸如之类的处理器读取的程序代码,当这些程序代码由电子设备运行时,导致该电子设备执行上面所描述的方法中的各个步骤。
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
以上所述,仅是本发明较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明以较佳实施例公开如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当利用上述揭示的技术内容作出些许变更或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明技术是指对以上实施例所作的任何简单修改、等同变化与修饰,均属于本发明技术方案的范围内。
Claims (8)
1.一种高效的环形缓存ADC采集方法,其特征在于,包括以下步骤:
A.MCU初始化后启动ADC转换;
B.间隔时间T1,MCU检测ADC转换是否完成;
C.若ADC转换完成,则ADC的转换结果存储于MCU设定的缓存数组;若ADC转换未完成,则ADC继续转换;
D.缓存数组中的ADC转换结果被获取之前,重复步骤B和步骤C;
E.MCU由缓存数组中获取ADC转换结果;
其中,ADC的一次转换的时间设为Tad,步骤B中,MCU的间隔检测时间T1满足T1>Tad;
转换时间Tad=12tAD+采样时间,其中采样时间为ADC的采样时间,tAD=2tSYS,tSYS为MCU系统时钟周期;
设采样时间为xtAD,则Tad=12tAD+xtAD=(12+x)*2tSYS;
MCU的晶振设为yMHz,则频率fosc=yMHz;
配置寄存器,使fsys=fosc,则tSYS=1/fosc=1/fsys;
可以获得转换时间Tad=(12+x)*2tSYS=(12+x)*2/fsys。
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采集方法,其特征在于,所述步骤B中,检测间隔时间T1的获取方法包括:
B1.MCU获取ADC转换结果的同时,设置一个IO口翻转;
B2.通过示波器读取两个IO口翻转之间的时间间隔,则为检测间隔时间T1。
5.根据权利要求4所述一种高效的环形缓存ADC采集方法,其特征在于:获取检测检测时间T1后,判断检测检测时间T1与转换时间Tad之间的大小;当T1大于Tad,则通过增加采样时间xtAD来增加转换时间Tad;当T1<Tad,则通过减少采样时间xtAD来减少转换时间Tad。
6.一种基于权利要求1的环形缓存ADC采集装置,其特征在于:包括MCU、ADC转换模块、缓存数组以及时间判断模块,所述缓存数组包括有多个数组元素;
所述ADC转换模块用于使采集的外部模拟信号转换成数字信号并将转换结果存储于所述数组元素中;
所述MCU用于将多个所述数组元素中的转换结果取平均值;
所述时间判断模块用于判断所述MCU的获取ADC转换模块的转换结果的时间与ADC转换模块的转换时间之间的大小。
7.一种计算机存储介质,其特征在于:所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行如权利要求1-5任一项所述的高效的环形缓存ADC采集方法。
8.一种电子设备,其特征在于,该电子设备包括:处理器以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1-5任一项所述的高效的环形缓存ADC采集方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111045050.8A CN113625934B (zh) | 2021-09-07 | 2021-09-07 | 一种高效的环形缓存adc采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111045050.8A CN113625934B (zh) | 2021-09-07 | 2021-09-07 | 一种高效的环形缓存adc采集方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113625934A CN113625934A (zh) | 2021-11-09 |
CN113625934B true CN113625934B (zh) | 2024-03-26 |
Family
ID=78389308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111045050.8A Active CN113625934B (zh) | 2021-09-07 | 2021-09-07 | 一种高效的环形缓存adc采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113625934B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297055A (zh) * | 2013-03-19 | 2013-09-11 | 中国科学院声学研究所 | 一种采用fpga实现多路串行adc同步的装置 |
CN110990060A (zh) * | 2019-12-06 | 2020-04-10 | 北京瀚诺半导体科技有限公司 | 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法 |
CN111562948A (zh) * | 2020-06-29 | 2020-08-21 | 深兰人工智能芯片研究院(江苏)有限公司 | 在实时图像处理系统中实现串行任务并行化的系统及方法 |
-
2021
- 2021-09-07 CN CN202111045050.8A patent/CN113625934B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297055A (zh) * | 2013-03-19 | 2013-09-11 | 中国科学院声学研究所 | 一种采用fpga实现多路串行adc同步的装置 |
CN110990060A (zh) * | 2019-12-06 | 2020-04-10 | 北京瀚诺半导体科技有限公司 | 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法 |
CN111562948A (zh) * | 2020-06-29 | 2020-08-21 | 深兰人工智能芯片研究院(江苏)有限公司 | 在实时图像处理系统中实现串行任务并行化的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113625934A (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5026579B2 (ja) | オペレーティングシステムに依存しないネットワークイベント処理 | |
WO2019226355A1 (en) | Embedded scheduling of hardware resources for hardware acceleration | |
EP1546875A2 (en) | Booting from non-linear memory | |
US7464210B2 (en) | Data processing system having a data transfer unit for converting an integer into a floating-point number when tranferring data from a peripheral circuit to a memory | |
US20070005949A1 (en) | Method for Booting a Computer System | |
WO2023201893A1 (zh) | 一种计算任务调度方法、装置、电子设备及可读存储介质 | |
CN102073514A (zh) | 基本输入输出系统的更新方法 | |
JP4151198B2 (ja) | 割込コントローラ及びマイクロコンピュータ | |
CN113625934B (zh) | 一种高效的环形缓存adc采集方法 | |
US7376777B2 (en) | Performing an N-bit write access to an M×N-bit-only peripheral | |
US8601488B2 (en) | Controlling the task switch timing of a multitask system | |
US20200192860A1 (en) | Configurable circuit array | |
CN1752930A (zh) | 芯片程序加载方法 | |
US20050060617A1 (en) | Device for debugging and method thereof | |
US20030061529A1 (en) | Computer system | |
CN110856195B (zh) | 射频组件的配置系统及方法 | |
US9170862B2 (en) | Converting apparatus, conversion method, and information processing system | |
JP2002311095A (ja) | Lsi検査装置 | |
CN111443960A (zh) | 一种多版本加载程序系统和方法 | |
CN107632787B (zh) | 数据读取方法、装置及系统 | |
US20030188050A1 (en) | System and method to configure input/output (IO) devices to use selected pairs of port addresses | |
CN116846397A (zh) | 基于多核mcu的模数转换模块、数据读取方法及微控制单元 | |
CN113760364B (zh) | 逻辑器件的控制器 | |
JP2770743B2 (ja) | ウエイト制御方式 | |
CN115017065A (zh) | 一种rdc解算处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |