掌桥专利:专业的专利平台
掌桥专利
首页

采样数据处理方法、装置、计算机设备和存储介质

文献发布时间:2024-04-18 20:01:55


采样数据处理方法、装置、计算机设备和存储介质

技术领域

本申请涉及计算机技术领域,特别是涉及一种采样数据处理方法、装置、计算机设备和存储介质。

背景技术

在数字控制器的ADC(模数转换器)采样应用中,如果存在多个采样通道共用同一个ADC转换器,往往使用DMA(直接存储器访问设备)将转换数据依次存放到指定内存区域,等DMA传输完成之后系统再以中断或查询的方式一次性对数据进行处理。DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须数字控制器直接控制传输,通过DMA数据可以快速地移动。这就节省了数字控制器的资源来做其他操作,效率大大提高。

但是,DMA传输过程中可能存在数据漏掉的问题,或者是ADC模块漏触发了一次转换,这样将导致数据对齐问题。

例如,以V1、V2、V3、V4、V5五个电压采样通道共用ADC1转换器为例,DMA负责将ADC转换结果保存到内存中开辟的长度为15的数组,DMA计数长度为数组长度。当DMA传输完成时,数组里面有15个AD采样数据,相当于每个电压采样通道重复采样了3遍,然后数字控制器可以做加权平均处理得到滤波后的电压采样值。如果发生ADC漏触发或DMA传输数据丢失,如图1所示,DMA往数组第7个元素存放ADC转换数据时发生了数据丢失,那么本该存放V2电压结果的数组元素存放了V3电压,后面的数组元素将依次发生错位,DMA存满15个元素后发送中断信号通知数字控制器读取,下一个DMA周期第一个数组元素会以V2开始,意味着一旦发生错位以后会一直错下去。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高模数转换器和直接存储器访问设备之间采样数据传输的对齐准确率的采样数据处理方法、装置、计算机设备和存储介质。

一种采样数据处理方法,该方法应用于采样数据处理设备,采样数据处理设备包括定时器、直接存储器访问设备、模数转换器,定时器与模数转换器连接,模数转换器与直接存储器访问设备连接,包括:

在直接存储器访问设备完成采样数据传输时,读取定时器中比较中断函数对应的第一计数值;

读取模数转换器中转换完成中断函数对应的第二计数值;

在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行初始化操作。

在其中一个实施例中,在直接存储器访问设备完成采样数据传输时,包括:获取直接存储器访问设备中的数据项寄存器中的数据项配置数目信息,在数据项配置数目信息为零时,确定直接存储器访问设备完成采样数据传输。

在其中一个实施例中, 在数据项配置数目信息为零时,确定直接存储器访问设备完成采样数据传输,包括:在定时器触发比较中断函数发生一次中断时,比较中断函数对应的第一计数值增一,模数转换器对采样数据进行转换,在模数转换器对采样数据转换完成时,转换完成中断函数对应的第二计数值增一,向直接存储器访问设备发送请求信号,响应请求信号,直接存储器访问设备读取模数转换器转换的数据,在直接存储器访问设备读取成功时,直接存储器访问设备中的数据项寄存器中数据项配置数目信息减一,当数据项寄存器减到零时,确定直接存储器访问设备完成采样数据传输。

在其中一个实施例中,在定时器触发比较中断函数发生一次中断时,包括:获取触发周期,在触发周期内,定时器中的比较中断函数发生一次中断。

在其中一个实施例中,触发周期的生成步骤包括:获取定时器对应的时钟信号,获取自动重载寄存器对应的自动重载值,根据自动重载值和时钟信号计算得到触发周期。

在其中一个实施例中,在直接存储器访问设备读取成功时,直接存储器访问设备中的数据项寄存器中数据项配置数目信息减一之后,还包括:直接存储器访问设备根据采样数据的通道数目确定存放数组长度;直接存储器访问设备根据通道数目和存放数组长度确定存放关系,直接存储器访问设备根据存放关系存放转换的数据至缓存区域。

在其中一个实施例中,当数据项寄存器减到零时,确定直接存储器访问设备完成采样数据传输,包括:当数据项寄存器减到零时,触发直接存储器访问设备传输完成中断,确定直接存储器访问设备完成采样数据传输。

在其中一个实施例中,在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行初始化操作,包括:在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行清空操作,重新配置直接存储器访问设备、定时器和模数转换器。

在其中一个实施例中,对直接存储器访问设备、定时器和模数转换器进行清空操作,重新配置直接存储器访问设备、定时器和模数转换器,包括:将直接存储器访问设备、定时器和模数转换器原本的配置信息进行删除,重新配置模数转换器对应的采样通道、采样转换时间以及转换完成中断函数,重新配置定时器的比较中断函数,重新配置直接存储器访问设备对应的数据项配置数目信息以及数据缓存区域地址。

在其中一个实施例中,重新配置定时器的比较中断函数,包括:重新配置定时器对应的输入时钟值,重新配置定时器对应的计数重载值和比较寄存器值,根据输入时钟值、计数重载值和比较寄存器值重新确定触发周期。

在其中一个实施例中,在第一计数值和第二计数值不一致时之前,还包括:比较第一计数值和第二计数值是否相同,在第一计数值和第二计数值相同时,确定第一计数值和第二计数值一致,在第一计数值和第二计数值不同时,确定第一计数值和第二计数值不一致。

在其中一个实施例中,比较第一计数值和第二计数值是否相同,包括:获取直接存储器访问设备对应的数据项配置数目信息,比较第一计数值、第二计数值和数据项配置数目信息是否相同。

一种采样数据处理装置,上述装置应用于采样数据处理设备,采样数据处理设备包括定时器、直接存储器访问设备、模数转换器,定时器与模数转换器连接,模数转换器与直接存储器访问设备连接,包括:

第一读取模块,用于在直接存储器访问设备完成采样数据传输时,读取定时器中比较中断函数对应的第一计数值;

第二读取模块,用于读取模数转换器中转换完成中断函数对应的第二计数值;

操作模块,用于在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行初始化操作。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

在直接存储器访问设备完成采样数据传输时,读取定时器中比较中断函数对应的第一计数值;

读取模数转换器中转换完成中断函数对应的第二计数值;

在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行初始化操作。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

在直接存储器访问设备完成采样数据传输时,读取定时器中比较中断函数对应的第一计数值;

读取模数转换器中转换完成中断函数对应的第二计数值;

在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行初始化操作。

上述采样数据处理方法、装置、计算机设备和存储介质,上述方法应用于采样数据处理设备,采样数据处理设备包括定时器、直接存储器访问设备、模数转换器,定时器与模数转换器连接,模数转换器与直接存储器访问设备连接,包括:在直接存储器访问设备完成采样数据传输时,读取定时器中比较中断函数对应的第一计数值,读取模数转换器中转换完成中断函数对应的第二计数值,在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行初始化操作。

因此,使用定时器中断触发模数转换器转换,并分别在定时器的比较中断函数和模数转换器的转换完成中断函数里计数,在直接存储器访问设备完成传输数据时,通过比较中断函数计数值和转换完成中断函数计数值,判断直接存储器访问设备和模数转换器是否对齐,从而提高模数转换器和直接存储器访问设备之间采样数据传输的对齐准确率。

附图说明

图1为一个实施例中采样数据发生丢失的示意图;

图2为一个实施例中采样数据处理方法的流程示意图;

图3为一个实施例中直接存储器访问设备采样数据传输完成步骤的流程示意图;

图4为一个实施例中直接存储器访问设备采样数据传输完成步骤的流程示意图;

图5为一个实施例中定时器比较中断函数触发步骤的流程示意图;

图6为一个实施例中触发周期的生成步骤的流程示意图;

图7为一个实施例中直接存储器访问设备处理步骤的流程示意图;

图8为一个实施例中清空操作步骤的流程示意图;

图9为一个实施例中定时器重新配置步骤的流程示意图;

图10为一个实施例中采样数据处理方法的流程示意图;

图11为一个实施例中采样数据处理方法的流程示意图;

图12为一个实施例中采样数据处理装置的结构框图;

图13为一个实施例中计算机设备的内部结构图;

图14为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

在一个实施例中,如图2所示,提供了一种采样数据处理方法,以该方法应用于采样数据处理设备为例进行说明,采样数据处理设备包括定时器、直接存储器访问设备、模数转换器,定时器与模数转换器连接,模数转换器与直接存储器访问设备连接,包括以下步骤:

步骤202,在直接存储器访问设备完成采样数据传输时,读取定时器中比较中断函数对应的第一计数值。

其中,采样数据处理设备包括定时器、直接存储访问设备和模数转换器,定时器是用来定时触发模数转换器进行采样数据转换的,而模数转换器ADC是一种数据转换器,用来将模拟信号转换为数字信号的,直接存储访问设备DMA用来提供外设和存储器之间,或者存储器和存储器之间的高速数据传输,定时器与模数转换器连接,模数转换器与直接存储访问设备连接,定时器在触发周期触发中断,模数转换器进行采样数据的转换,并将转换后的数据发送至直接存储访问设备存储,直接存储访问设备存储至一定的数据量后发送至内存存储。

其中,定时器中设置有比较中断函数,用来计数定时器发生中断的次数,即第一计数值,具体地,在直接存储器访问设备完成采样数据传输时,读取定时器比较中断函数记录的中断次数,即第一计数值。

步骤204,读取模数转换器中转换完成中断函数对应的第二计数值。

其中,模数转换器中设置有转换完成中断函数,用来计数模数转换器进行采样数据转换的次数,即第二计数值,具体地,模数转换器每一次完成采样数据的转换,内设的转换完成中断函数则记录一次,得到第二计数值。具体地,在直接存储器访问设备完成采样数据传输时,读取模数转换器中转换完成中断函数记录的转换次数,即第二计数值。

步骤206,在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行初始化操作。

其中,由于定时器每一次中断触发时,就会触发模数转换器进行一次采样数据转换,因此,可以通过定时器比较中断函数记录的第一计数值和模数转换器转换完成中断函数记录的第二计数值来判断模数转换器与直接存储器访问设备是否存在数据丢失。

具体地,比较第一计数值与第二计数值是否一致,如果第一计数值与第二计数值不一致时,说明整个采样数据处理过程中有数据丢失的情况出现,则需要重新进行采样数据的处理,则对直接存储器访问设备、定时器和模数转换器进行初始化操作,使得直接存储器访问设备、定时器和模数转换器重新开始新的采样,直至第一计数值与第二计数值一致。其中,如果第一计数值与第二计数值一致时,则可以说明整个采样数据处理过程中不存在数据丢失的情况出现。

上述采样数据处理方法中,应用于采样数据处理设备,采样数据处理设备包括定时器、直接存储器访问设备、模数转换器,定时器与模数转换器连接,模数转换器与直接存储器访问设备连接,包括:在直接存储器访问设备完成采样数据传输时,读取定时器中比较中断函数对应的第一计数值,读取模数转换器中转换完成中断函数对应的第二计数值,在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行初始化操作。

因此,使用定时器中断触发模数转换器转换,并分别在定时器的比较中断函数和模数转换器的转换完成中断函数里计数,在直接存储器访问设备完成传输数据时,通过比较中断函数计数值和转换完成中断函数计数值,判断直接存储器访问设备和模数转换器是否对齐,从而提高模数转换器和直接存储器访问设备之间采样数据传输的对齐准确率。

在一个实施例中,如图3所示,在直接存储器访问设备完成采样数据传输时,包括:

步骤302,获取直接存储器访问设备中的数据项寄存器中的数据项配置数目信息。

步骤304,在数据项配置数目信息为零时,确定直接存储器访问设备完成采样数据传输。

其中,数据项配置数目信息是直接存储器访问设备DMA中数据项目寄存器中配置需要传输的数据项数目,可以根据实际业务需求、实际产品需求或实际应用场景进行预先确定得到,其中,数据项配置数目信息是直接存储器访问设备最大的存储数据项数目,当直接存储器访问设备存储的数据数目达到数据项配置数目信息时,则将所有存储的数据存储至内存中。

具体地,获取直接存储器访问设备中的数据项寄存器中的数据项配置数目信息,直接存储器访问设备每转存一次数据,数据项配置数目信息就会减一,当减到零时,即数据项配置数目信息为零,则触发直接存储器访问设备传输完成中断,即可以确定直接存储器访问设备完成采样数据传输。

在一个实施例中,如图4所示,在数据项配置数目信息为零时,确定直接存储器访问设备完成采样数据传输,包括:

步骤402,在定时器触发比较中断函数发生一次中断时,比较中断函数对应的第一计数值增一,模数转换器对采样数据进行转换。

步骤404,在模数转换器对采样数据转换完成时,转换完成中断函数对应的第二计数值增一,向直接存储器访问设备发送请求信号。

步骤406,响应请求信号,直接存储器访问设备读取模数转换器转换的数据。

步骤408,在直接存储器访问设备读取成功时,直接存储器访问设备中的数据项寄存器中数据项配置数目信息减一。

步骤410,当数据项寄存器减到零时,确定直接存储器访问设备完成采样数据传输。

其中,定时器触发比较中断函数用来记录定时器触发中断的次数,在定时器触发比较中断函数发生一次中断时,比较中断函数对应的第一计数值加一,此时,触发模数转换器对采样数据进行转换,模数转换器每转换一次,则转换完成中断函数对应的第二计数值加一,并向直接存储器访问设备发送请求信号。

进一步地,直接存储器访问设备响应请求信号,并读取模数转换器转换后的数据,读取成功后,直接存储器访问设备中的数据项寄存器中的数据项配置数目信息减一,当数据项配置数目信息减到零时,则说明直接存储器访问设备已经达到最大的数据传输限度,传输完成中断,确定直接存储器访问设备完成采样数据传输。

例如,在定时器比较中断函数里面进行计数,定时器每触发一次中断计数加一,该定时器计数标记为count 1,假设直接存储器访问设备DMA中的数据项寄存器中配置要传输的数据项配置数目信息为N,那么计数过程中 count 1计数值大于N时要减去N。模数转换器ADC转换完成后也会触发一次ADC转换结束中断,在对应的转换完成中断函数里面同样进行计数,每触发一次中断计数加一,该ADC计数标记为count 2,计数过程中count 2计数值大于N时也要减去N。同时,通过使能ADC模块的DMA功能,使ADC每完成一次转换后向 DMA 控制器发送请求信号,DMA响应请求读取ADC数据寄存器的结果保存至内存中开辟的数组中。DMA每转存一次数据,其数据项寄存器中的数据项配置数目信息就会减一,当减到零时会触发DMA传输完成中断。

在一个实施例中,如图5所示,在定时器触发比较中断函数发生一次中断时,包括:

步骤502,获取触发周期。

步骤504,在触发周期内,定时器中的比较中断函数发生一次中断。

其中,触发周期是定时器触发中断的时间,触发周期可以预先设置,获取预先设置好的触发周期,在触发周期内,定时器中的比较中断函数发生一次中断。其中,触发周期可以根据实际业务需求、实际产品需求或实际应用场景进行预先设置,在触发周期内,定时器触发中断一次,比较中断函数对应的第一计数值加一。

在一个实施例中,如图6所示,触发周期的生成步骤包括:

步骤602,获取定时器对应的时钟信号。

步骤604,获取自动重载寄存器对应的自动重载值。

步骤606,根据自动重载值和时钟信号计算得到触发周期。

其中,触发周期可以通过设置定时器的时钟信号和自动重载寄存器相关的参数值来决定。具体地,获取定时器对应的时钟信号,以及获取自动重载寄存器对应的自动重载值,根据自动重载值和时钟信号计算得到触发周期,例如可以是,将自动重载值和时钟信号的比值确定为触发周期。

例如,模数转换器ADC转换使用定时器的输出比较中断触发,触发周期通过设置定时器的时钟信号fclk和自动重载寄存器对应的自动重载值ARR来决定,则触发周期可以为ARR/fclk。在一个定时器计数周期内,当计数值等于比较寄存器的值的时候触发比较中断,比较中断事件就会触发一次ADC转换,通过定时器比较中断触发ADC转换的方式时间间隔非常稳定,有利于采样周期稳定。

在一个实施例中,如图7所示,在直接存储器访问设备读取成功时,直接存储器访问设备中的数据项寄存器中数据项配置数目信息减一之后,还包括:

步骤702,直接存储器访问设备根据采样数据的通道数目确定存放数组长度。

步骤704,直接存储器访问设备根据通道数目和存放数组长度确定存放关系。

步骤706,直接存储器访问设备根据存放关系存放转换的数据至缓存区域。

其中,在直接存储器访问设备读取成功时,直接存储器访问设备中的数据项寄存器中数据项配置数目信息减一之后,直接存储器访问设备可以按照正确的存放关系进行存放。

其中,存放关系可以根据采样数据的通道数目和存放数组长度对齐确定得到,可以根据采样数据的通道数目确定存放数组长度,例如,通道数目与存放数组长度相同。进一步地,根据采样数据的通道数目和存放数组长度进行对齐,得到正确的存放关系,最后,直接存储器访问设备按照正确的存放关系存放模数转换器转换后的数据至缓存区域。

比如有5个ADC采样通道channel1、 channel2、 channel3、 channel4、channel5,存放采样结果的数组名为array,正确的数据存放关系为array[0]存放channel1, array[1]存放 channel2, array[2]存放 channel3, array[3]存放channel4, array[4]存放 channel5, array[5]存放 channel1,依次类推。

在一个实施例中,当数据项寄存器减到零时,确定直接存储器访问设备完成采样数据传输,包括:

当数据项寄存器减到零时,触发直接存储器访问设备传输完成中断,确定直接存储器访问设备完成采样数据传输。

其中,当直接存储器访问设备中的数据项寄存器减到零时,说明直接存储器访问设备中的数据项寄存器以达到最大数据的传输量,则直接存储器访问设备触发传输完成中断,不再进行数据传输,则可以确定直接存储器访问设备完成采样数据传输。

在一个实施例中,在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行初始化操作,包括:

在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行清空操作,重新配置直接存储器访问设备、定时器和模数转换器。

其中,对直接存储器访问设备、定时器和模数转换器进行初始化操作可以是清零操作,将直接存储器访问设备、定时器和模数转换器中原本的配置进行清零,重新配置直接存储器访问设备、定时器和模数转换器,使得定时器、直接存储器访问设备和模数转换器重新进行采样数据的处理,定时器重新触发中断,使得模数转换器重新进行采样数据转换,进而发送至直接存储器访问设备,直至第一计数值和第二计数值一致,说明整个采样数据处理过程未存在数据丢失的情况。

在一个实施例中,如图8所示,对直接存储器访问设备、定时器和模数转换器进行清空操作,重新配置直接存储器访问设备、定时器和模数转换器,包括:

步骤802,将直接存储器访问设备、定时器和模数转换器原本的配置信息进行删除。

步骤804,重新配置模数转换器对应的采样通道、采样转换时间以及转换完成中断函数。

步骤806,重新配置定时器的比较中断函数。

步骤808,重新配置直接存储器访问设备对应的数据项配置数目信息以及数据缓存区域地址。

其中,对直接存储器访问设备、定时器和模数转换器进行清空操作,重新配置直接存储器访问设备、定时器和模数转换器具体可以是,将直接存储器访问设备、定时器和模数转换器原本的配置信息进行删除,因为之前的配置信息使得采样数据处理时发生数据丢失的情况,因此,则需要将直接存储器访问设备、定时器和模数转换器原本的配置信息进行删除。

进一步地,对模数转换器的采样通、采样转换时间和转换完成中断函数重新配置,使能直接存储器访问设备传输,并配置模数转换器转换触发模式为定时器比较中断触发,使能模数转换器转换完成中断,然后模数转换器的转换完成中断函数计数清零,在模数转换器转换完成中断函数中,每一完成转换则计数加一处理。

其中,定时器的比较中断函数也需要重新配置,重新配置触发周期,根据触发周期重新触发中断,定时器每一中断则比较中断函数计数加一处理。

同时,直接存储器访问设备对应的数据项配置数目信息和数据缓存区域地址都需要重新配置,数据项配置数目信息可以根据实际业务需求、实际产品需求或实际应用场景进行配置,数据缓存区域地址是直接存储器访问设备缓存模数转换器转换后的数据的地址。

在一个实施例中,如图9所示,重新配置定时器的比较中断函数,包括:

步骤902,重新配置定时器对应的输入时钟值。

步骤904,重新配置定时器对应的计数重载值和比较寄存器值。

步骤906,根据输入时钟值、计数重载值和比较寄存器值重新确定触发周期。

其中,定时器的中断函数的重新配置可以是重新配置触发周期,触发周期可以根据输入时钟值、计数重载值和比较寄存器值重新确定得到,具体地,重新配置定时器对应的输入时钟值、计数重载值和比较寄存器值,根据重新配置后的输入时钟值、计数重载值和比较寄存器值确定触发周期,在新的触发周期内,定时器重新进行中断,从而触发模数转换器重新进行采样数据转换。

即初始化定时器具体可以是,配置其输入时钟,配置其计数重载值和比较寄存器值,使能定时器比较中断,然后将定时器比较中断函数的计数清零,在定时器比较中断函数中,每一触发中断则计数进行加一处理,最后使能定时器开启ADC转换时序。

在一个实施例中,如图10所示,在第一计数值和第二计数值不一致时之前,还包括:

步骤1002,比较第一计数值和第二计数值是否相同。

步骤1004,在第一计数值和第二计数值相同时,确定第一计数值和第二计数值一致。

步骤1006,在第一计数值和第二计数值不同时,确定第一计数值和第二计数值不一致。

其中,在判定第一计数值和第二计数值不一致时之前,需要比较第一计数值和第二计数值是否相同,因为定时器每一次触发中断,则模数转换器则进行一次数据转换,所以如果未发生数据丢失的情况下,定时器中比较中断函数的第一计数值和模数转换器中转换完成中断函数的第二计数值应该是一致的,如果不一致,则说明定时器和模数转换器不同步,可能发生数据丢失。

具体地,在获得第一计数值和第二计数值后,比较第一计数值和第二计数值是否相同,如果第一计数值和第二计数值相同时,说明定时器和模数转换器同步,未发生采样数据的丢失,则可以确定第一计数值和第二计数值一致,反之,如果第一计数值和第二计数值不同时,说明定时器和模数转换器不同步,则可能发生采样数据的丢失,则可以确定第一计数值和第二计数值不一致。

在一个实施例中,如图11所示,比较第一计数值和第二计数值是否相同,包括:

步骤1102,获取直接存储器访问设备对应的数据项配置数目信息。

步骤1104,比较第一计数值、第二计数值和数据项配置数目信息是否相同。

其中,直接存储器访问设备中预先配置有需要传输的数据项数目,即数据项配置数目信息,当定时器每一触发中断,模数转换器则触发一次转换,转换成功后,则发送触发直接存储器访问设备进行保存,则当直接存储器访问设备完成采样数据传输时,则定时器记录的第一计数值、模数转换器记录的第二计数值应该与直接存储器访问设备预先设置的数据项配置数目信息相同,才能确定采样数据传输未存在数据丢失的情况,反之,如果不相同,说明采样数据传输可能存在数据丢失的情况。

具体地,获取直接存储器访问设备对应的数据项配置数目信息,比较第一计数值、第二计数值和数据项配置数目信息是否相同。例如,直接存储器访问设备预先配置的数据项配置数目信息为15,定时器记录的第一计数值为15,模数转换器记录的第二计数值为15。

在一个实施例中,可以通过以下步骤详细说说明采样数据处理方法,其中,ADC为模数转换器,DMA为直接存储器访问设备,包括:

ADC转换使用定时器的输出比较中断触发,触发周期通过设置定时器的时钟fclk和自动重载寄存器ARR来决定,则触发周期为ARR/fclk。在一个定时器计数周期内,当计数值等于比较寄存器的值的时候触发比较中断,比较中断事件就会触发一次ADC转换,通过定时器比较中断触发ADC转换的方式时间间隔非常稳定,有利于采样周期稳定。

然后在定时器比较中断函数里面进行计数,每触发一次中断计数加一,该定时器计数标记为count1,假设DMA数据项寄存器中配置要传输的数据项数目为N,那么计数过程中 count1计数值大于N时要减去N。ADC转换完成后也会触发一次ADC转换结束中断,在该中断函数里面同样进行计数,每触发一次中断计数加一,该ADC计数标记为count2,计数过程中count2计数值大于N时也要减去N。同时,通过使能ADC模块的DMA功能,使ADC每完成一次转换后向 DMA 控制器发送请求信号,DMA响应请求读取ADC数据寄存器的结果保存至内存中开辟的数组中。DMA每转存一次数据数据项寄存器就会减一,当减到零时会触发DMA传输完成中断。在DMA传输中断完成函数中读取 count1和 count2,并与N进行比较,如果count1和 count2不等于N说明整个过程中有数据丢失的情况出现。

当检测到数据丢失情况后,意味着DMA和ADC数据无法对齐,如前,假如存在多通道ADC采样,数据无法对齐意味着通道采样值与DMA转存结果无法对应,导致结果错误。比如有5个ADC采样通道channel1、 channel2、 channel3、 channel4、 channel5,存放采样结果的数组名为array,正确的数据存放关系为array[0]存放 channel1, array[1]存放channel2, array[2]存放 channel3, array[3]存放 channel4, array[4]存放channel5, array[5]存放 channel1,依次类推。

但是发生数据丢失情况后,会打破这种数组与采样通道的数据存放关系,导致DMA和ADC数据不对齐的问题发生,并且这种不对齐情况在无干预的条件下不会主动消失,因为该过程是循环往复过程,因此需要对采样数据进行重新对齐。

首先在DMA传输完成中断函数里面暂停定时器,定时器停止工作后不再产生比较中断,因此也将不会触发ADC转换和DMA传输。然后重新初始化ADC模块和DMA模块,使ADC转换目标对准第一个采样通道,DMA模块传输目标地址对准数组的第一个元素。最后将count1和 count2清零,并使能定时器开始新的采样流程。新的采样流程确保第一次ADC采样值(即通道1采样结果)被DMA转存到数组的第一个元素,从而实现DMA和ADC数据对齐。

应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图12所示,提供了一种采样数据处理装置1200,上述装置应用于采样数据处理设备,采样数据处理设备包括定时器、直接存储器访问设备、模数转换器,定时器与模数转换器连接,模数转换器与直接存储器访问设备连接,包括:第一读取模块1202、第二读取模块1204和操作模块1206,其中:

第一读取模块1202,用于在直接存储器访问设备完成采样数据传输时,读取定时器中比较中断函数对应的第一计数值。

第二读取模块1204,用于读取模数转换器中转换完成中断函数对应的第二计数值。

操作模块1206,用于在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行初始化操作。

在一个实施例中,第一读取模块1202获取直接存储器访问设备中的数据项寄存器中的数据项配置数目信息,在数据项配置数目信息为零时,确定直接存储器访问设备完成采样数据传输。

在一个实施例中,第一读取模块1202在定时器触发比较中断函数发生一次中断时,比较中断函数对应的第一计数值增一,模数转换器对采样数据进行转换,在模数转换器对采样数据转换完成时,转换完成中断函数对应的第二计数值增一,向直接存储器访问设备发送请求信号,响应请求信号,直接存储器访问设备读取模数转换器转换的数据,在直接存储器访问设备读取成功时,直接存储器访问设备中的数据项寄存器中数据项配置数目信息减一,当数据项寄存器减到零时,确定直接存储器访问设备完成采样数据传输。

在一个实施例中,第一读取模块1202获取触发周期,在触发周期内,定时器中的比较中断函数发生一次中断。

在一个实施例中,第一读取模块1202获取定时器对应的时钟信号,获取自动重载寄存器对应的自动重载值,根据自动重载值和时钟信号计算得到触发周期。

在一个实施例中,第一读取模块1202当数据项寄存器减到零时,触发直接存储器访问设备传输完成中断,确定直接存储器访问设备完成采样数据传输。

在一个实施例中,操作模块1206在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行清空操作,重新配置直接存储器访问设备、定时器和模数转换器。

在一个实施例中,操作模块1206将直接存储器访问设备、定时器和模数转换器原本的配置信息进行删除,重新配置模数转换器对应的采样通道、采样转换时间以及转换完成中断函数,重新配置定时器的比较中断函数,重新配置直接存储器访问设备对应的数据项配置数目信息以及数据缓存区域地址。

在一个实施例中,操作模块1206重新配置定时器对应的输入时钟值,重新配置定时器对应的计数重载值和比较寄存器值,根据输入时钟值、计数重载值和比较寄存器值重新确定触发周期。

在一个实施例中,采样数据处理装置1200比较第一计数值和第二计数值是否相同,在第一计数值和第二计数值相同时,确定第一计数值和第二计数值一致,在第一计数值和第二计数值不同时,确定第一计数值和第二计数值不一致。

在一个实施例中,采样数据处理装置1200获取直接存储器访问设备对应的数据项配置数目信息,比较第一计数值、第二计数值和数据项配置数目信息是否相同。

关于采样数据处理装置的具体限定可以参见上文中对于采样数据处理方法的限定,在此不再赘述。上述采样数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储第一计数值和第二计数值。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种采样数据处理方法。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图14所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种采样数据处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图13或14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:在直接存储器访问设备完成采样数据传输时,读取定时器中比较中断函数对应的第一计数值,读取模数转换器中转换完成中断函数对应的第二计数值,在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行初始化操作。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取直接存储器访问设备中的数据项寄存器中的数据项配置数目信息,在数据项配置数目信息为零时,确定直接存储器访问设备完成采样数据传输。

在一个实施例中, 处理器执行计算机程序时还实现以下步骤:在定时器触发比较中断函数发生一次中断时,比较中断函数对应的第一计数值增一,模数转换器对采样数据进行转换,在模数转换器对采样数据转换完成时,转换完成中断函数对应的第二计数值增一,向直接存储器访问设备发送请求信号,响应请求信号,直接存储器访问设备读取模数转换器转换的数据,在直接存储器访问设备读取成功时,直接存储器访问设备中的数据项寄存器中数据项配置数目信息减一,当数据项寄存器减到零时,确定直接存储器访问设备完成采样数据传输。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取触发周期,在触发周期内,定时器中的比较中断函数发生一次中断。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取定时器对应的时钟信号,获取自动重载寄存器对应的自动重载值,根据自动重载值和时钟信号计算得到触发周期。

在一个实施例中,在处理器执行计算机程序时还实现以下步骤:直接存储器访问设备根据采样数据的通道数目确定存放数组长度;直接存储器访问设备根据通道数目和存放数组长度确定存放关系,直接存储器访问设备根据存放关系存放转换的数据至缓存区域。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当数据项寄存器减到零时,触发直接存储器访问设备传输完成中断,确定直接存储器访问设备完成采样数据传输。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行清空操作,重新配置直接存储器访问设备、定时器和模数转换器。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:将直接存储器访问设备、定时器和模数转换器原本的配置信息进行删除,重新配置模数转换器对应的采样通道、采样转换时间以及转换完成中断函数,重新配置定时器的比较中断函数,重新配置直接存储器访问设备对应的数据项配置数目信息以及数据缓存区域地址。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:重新配置定时器对应的输入时钟值,重新配置定时器对应的计数重载值和比较寄存器值,根据输入时钟值、计数重载值和比较寄存器值重新确定触发周期。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:比较第一计数值和第二计数值是否相同,在第一计数值和第二计数值相同时,确定第一计数值和第二计数值一致,在第一计数值和第二计数值不同时,确定第一计数值和第二计数值不一致。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取直接存储器访问设备对应的数据项配置数目信息,比较第一计数值、第二计数值和数据项配置数目信息是否相同。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:在直接存储器访问设备完成采样数据传输时,读取定时器中比较中断函数对应的第一计数值,读取模数转换器中转换完成中断函数对应的第二计数值,在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行初始化操作。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取直接存储器访问设备中的数据项寄存器中的数据项配置数目信息,在数据项配置数目信息为零时,确定直接存储器访问设备完成采样数据传输。

在一个实施例中, 处理器执行计算机程序时还实现以下步骤:在定时器触发比较中断函数发生一次中断时,比较中断函数对应的第一计数值增一,模数转换器对采样数据进行转换,在模数转换器对采样数据转换完成时,转换完成中断函数对应的第二计数值增一,向直接存储器访问设备发送请求信号,响应请求信号,直接存储器访问设备读取模数转换器转换的数据,在直接存储器访问设备读取成功时,直接存储器访问设备中的数据项寄存器中数据项配置数目信息减一,当数据项寄存器减到零时,确定直接存储器访问设备完成采样数据传输。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取触发周期,在触发周期内,定时器中的比较中断函数发生一次中断。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取定时器对应的时钟信号,获取自动重载寄存器对应的自动重载值,根据自动重载值和时钟信号计算得到触发周期。

在一个实施例中,在处理器执行计算机程序时还实现以下步骤:直接存储器访问设备根据采样数据的通道数目确定存放数组长度;直接存储器访问设备根据通道数目和存放数组长度确定存放关系,直接存储器访问设备根据存放关系存放转换的数据至缓存区域。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当数据项寄存器减到零时,触发直接存储器访问设备传输完成中断,确定直接存储器访问设备完成采样数据传输。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:在第一计数值和第二计数值不一致时,对直接存储器访问设备、定时器和模数转换器进行清空操作,重新配置直接存储器访问设备、定时器和模数转换器。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:将直接存储器访问设备、定时器和模数转换器原本的配置信息进行删除,重新配置模数转换器对应的采样通道、采样转换时间以及转换完成中断函数,重新配置定时器的比较中断函数,重新配置直接存储器访问设备对应的数据项配置数目信息以及数据缓存区域地址。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:重新配置定时器对应的输入时钟值,重新配置定时器对应的计数重载值和比较寄存器值,根据输入时钟值、计数重载值和比较寄存器值重新确定触发周期。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:比较第一计数值和第二计数值是否相同,在第一计数值和第二计数值相同时,确定第一计数值和第二计数值一致,在第一计数值和第二计数值不同时,确定第一计数值和第二计数值不一致。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取直接存储器访问设备对应的数据项配置数目信息,比较第一计数值、第二计数值和数据项配置数目信息是否相同。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 混合动力汽车热管理系统及控制方法以及混合动力汽车
  • 插电式混合动力汽车的热管理系统及插电式混合动力汽车
  • 混合动力汽车的热管理系统、混合动力汽车及热管理方法
技术分类

06120116574734