本发明涉及集成电路领域,特别涉及一种微控制器模数转换器微分非线性和积分非线性的测试方法。
背景技术:
微控制器内置模数转换器,是目前微控制器为了提升集成度和产品竞争力,将模数转换器设计在微控制器内部,用于拓展微控制器的应用领域,提高产品的集成化程度、降低成本、提高可靠性和产品的竞争力。
现有技术中,在使用动态测试法对微控制器内置模数转换器进行微分非线性和积分非线性的性能测试时,需要将大量连续的采样数据保存到计算机端,采用码密度直方图法分析采样数据得到测试结果。由于模数采样频率过高,采集数据量较大,且需要保证采样数据的连续性,内部高速内存无法保存足够多的数据,也难以连续通过低速的外部接口发送给计算机。在微控制器具有高速外部接口时,也需采用昂贵的数据采集仪器来接驳微控制器和计算机。而在微控制器没有高速外部接口时,难以保存大量连续高速采样数据的保存和转发,基本无法完成测试,仅采用仿真结果作为性能指标。
技术实现要素:
本发明的目的在于提供一种微控制器模数转换器微分非线性和积分非线性的测试方法,以解决在微控制器没有高速外部接口时,内置模数转换器微分非线性和积分非线性的性能无法测试的问题,以及在微控制器有高速外部接口时,需采用昂贵仪器来接驳微控制器和计算机的问题。
为实现上述目的,本发明提供了一种微控制器模数转换器微分非线性和积分非线性的测试方法,包括以下步骤:
s1:信号发生器产生预设频率的正弦波作为测试信号;
s2:微控制器采用预设速率的模数转换采样频率对所述测试信号进行采样;
s3:所述微控制器采用串口进行采样数据的发送;
s4:计算机端接收所述采样数据并保存成文件;
s5:计算机采用码密度直方图法分析所述文件的数据得到测试结果。
较佳地,步骤s3包括:所述微控制器采用双dma方式进行数据搬运,再由串口进行数据发送。
较佳地,所述微控制器采用双dma方式完成数据搬运的过程包括以下步骤:
s31:首先由第一dma负责采样后数据的搬运,并将数据存入内存缓存中;
s32:当所述第一dma完成预设数量的数据搬运后,第二dma开始搬运所述内存缓中的数据至串口发送寄存器;
s33:待所述第二dma完成串口发送寄存器的数据搬运后,返回步骤s31进入下一轮第一dma的数据搬运。
较佳地,所述步骤s1之前还包括:首先确定所述串口的工作速率,包括:
确定当前微控制器的串口所支持的最大工作速率;
确定所述串口的工作速率为小于所述最大工作速率预设范围的任意一值。
较佳地,确定所述串口的工作速率后,还包括:
确定所述预设速率的模数转换采样频率为:当前微控制器的串口所确定的工作速率的0.5倍至1.0倍之间的任意一值。
较佳地,确定所述预设速率的模数转换采样频率后,还包括:
确定所述正弦波的预设频率为:小于所述模数转换采样频率的1/10的任意一值。
较佳地,所述步骤s4中,所述计算机端的程序采用大缓存串口接收所述采样数据。
较佳地,所述步骤s5中,所述计算机采用脚本程序用码密度直方图法分析所述文件的数据得到微分非线性和积分非线性的性能参数测试结果。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时用于控制实现上述所涉及的方法。
本发明提供的微控制器内置模数转换器微分非线性和积分非线性的性能测试方法,能够用低成本、便捷的方式,在微控制器只有低速输入输出接口的情况下,完成内置模数转换器的重要参数微分非线性和积分非线性的性能测试。
本发明则可通过使用低频率的正弦信号作为测试信号,在满足串口通信速度的前提下降低模数转换器的采样速率,通过低速的方式将转换数据发送到计算机端保存,且能保证数据的连续和完整性,满足微分非线性和积分非线性的性能分析。
附图说明
图1为本发明优选实施例中微控制器模数转换器微分非线性和积分非线性的测试方法流程总示意图;
图2是本发明优选实施例中微控制器内部模数转换数据搬运流向的示意图;
图3是本发明优选实施例中微控制器内部模数转换数据dma搬运逻辑判断的流程示意图;
图4是本发明优选实施例中确定微控制器内部串口速率、模数转换频率和确定信号发生器产生正弦波频率的流程示意图;
图5是本发明优选实施例中计算机端脚本程序用码密度直方图法分析数据文件得到微分非线性和积分非线性的性能参数结果的流程示意图。
具体实施方式
以下将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整的描述和讨论,显然,这里所描述的仅仅是本发明的一部分实例,并不是全部的实例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
为了便于对本发明实施例的理解,下面将结合附图以具体实施例为例作进一步的解释说明,且各个实施例不构成对本发明实施例的限定。
如图1所示,本实施例提供了一种微控制器模数转换器微分非线性和积分非线性的测试方法,包括以下步骤:
s11:信号发生器产生正弦波信号;
信号发生器用以产生待测信号,该信号必须为正弦波,这里的信号发生器产生预设的低频率的正弦波并作为测试信号。正弦波信号的幅值需要略微大于待测的微控制器内置模数转换器的输入幅值范围,以产生轻微削顶的输入幅值。
s12:微控制器模数转换和数据发送;
本步骤在微控制器内完成,微控制器采用预设速率的模数转换采样频率对上述的正弦波测试信号进行数字采样,从而完成测试信号的模数转换;采样后微控制器对采样数据进行缓存,再通过串口进行采样数据的发送;
s13:计算机接收数据和保存数据
计算机端的程序控制接收来自微控制器串口的采样数据,并写入文件,保存在计算机的磁盘中;
s14:计算机码密度直方图法分析数据;
计算机采用码密度直方图法分析磁盘内文件中的采样数据得到模数转换器微分非线性和积分非线性的性能参数的测试结果。
本实施例中,微控制器采用预设速率的模数转换采样频率对正弦波测试信号进行数字采样后,将采样数据存入模数转换器寄存器中。
上述的步骤s3进一步包括:微控制器采用双dma方式进行数据搬运(缓存),再由串口进行数据发送。本发明中提及的dma,指的是直接存储器访问。
在优选实施例中,结合图2所示,本发明的微控制器采用双dma方式完成数据搬运的数据流向为:
201:模数转换器寄存器;
dma1:dma控制器1;
202:数据缓存;
dma2:dma控制器2;
203:串口发送寄存器。
以上是微控制器内模数转换数据的产生和流向位置。模数转换产生的数据保存在201寄存器中,dma1负责将201寄存器中数据搬运至202数据缓存中,dma2负责将202数据缓存内的数据搬运至203串口发送寄存器中,以完成微控制器向计算机的数据发送过程。
进一步参考图3所示,实施例中微控制器内部模数转换数据dma搬运逻辑判断的流程如下:
s301:由dma1负责模数转换器寄存器中采样数据的搬运,并将数据存入内存缓存(即数据缓存)中;
s302:判断dma1搬运数量是否达到预设的n值;
当dma1完成预设数量的数据搬运后,进入下一步。
s303:dma2开始搬运缓存中的数据至串口发送寄存器;
s304:判断dma2是否完成串口发送寄存器的数据搬运;
如否,继续执行s303;如是返回步骤s201进入下一轮dma1的数据搬运。
综上,为优选实施例中的微控制器内部模数转换数据dma搬运逻辑判断的流程。首先步骤301为dma1开始将模数转换器寄存器内数据搬运到数据缓存,当搬运数据量达到n值时(步骤302,这里n值一般超过数据缓存长度的一半且小于数据缓存长度),步骤303开启dma2开始将数据缓存的数据搬运至串口发送寄存器,dma2搬运的总长度为数据缓存的总长度,然后步骤304等待dma2搬运完成,接下来循环进入步骤301,直至计算机接收端保存文件得到足够长度的转换数据。
进另一优选的实施例中,参考图4所示,上述的步骤s1之前还包括以下步骤:
s401:确定微控制器串口的工作速率。
首先,确定当前微控制器的串口所支持的最大工作速率;
然后,确定当前串口的工作速率为小于最大工作速率预设范围的任意一值。本实施例中,确定的串口工作速率应稍微低于串口设计的最大速率,以确保工作稳定性。
再次参考图4所示,本实施例还包括以下步骤:
s402:确定微控制器的模数转换采样频率。
本实施例中,微控制器的模数转换采样频率设置为当前微控制器的串口所确定的工作速率的0.5倍至1.0倍之间的任意一值。以确保串口数据发送时不会丢失模数转换的数据。模数转换器是按照固定的转换速率进行的,串口发送数据速率应比模数转换速度快,否则会造成模数转换数据溢出而丢失。因数据缓存设计为一个区域,模数转换采样速率不应小于串口速率的一半,以免造成串口取数据追尾的情况。
再次参考图4所示,本实施例还包括以下步骤:
s403:确定信号发生器正弦波频率.
本实施例中,正弦波的频率设置为:小于上述模数转换采样频率的1/10的任意一值。该频率的测试信号可以确保模数转换的采样精度。单个正弦波周期采样点达到10个点以上,可以保证采样的精度。
综上,在执行步骤s1之前,通过上述的步骤s401~s403可以确定微控制器的内部串口速率、模数转换频率以及信号发生器所产生正弦波的频率三个参数。
进一步优选的实施例中,上述的步骤s4中,计算机端通过应用程序控制采用大缓存串口接收来自微控制器的采样数据,并存储为数据文件。
进一步优选的实施例中,上述的步骤s5中,计算机采用脚本程序用码密度直方图法分析所述文件的数据得到微分非线性和积分非线性的性能参数测试结果。参考图5,步骤s5具体包括以下步骤:
501:读取文件数据装入码箱生成直方图;
502:生成理想正弦波直方图;
503:将数据直方图和理想正弦波直方图相减得到微分非线性参数;
504:将微分非线性数据逐步累加得到积分非线性参数。
以上是计算机端脚本程序数据分析的过程,步骤501读取数据,按照数据值分布装入码箱,生成码密度直方图;步骤502生成理想正弦波数据,将数据装入码箱生成理想正弦波码密度直方图;步骤503先将步骤501得到的数据码密度直方图归一化,然后和步骤502生成的理想正弦波码密度直方图相减,得到微分非线性参数数据;步骤504,将步骤503得到微分非线性参数数据逐位累加得到积分非线性数据。
至此完成本发明方法所有步骤,获得微分非线性和积分非线性参数数据。因微分非线性和积分非线性为模数转换的静态性能特性,本实施例使用码密度直方图测试法测试相关性能时,只需保证足够数据量即可保证测试结果的置信度,故在无高速接口和大空间缓存的微控制器内置模数转换器测试中,可降低采样速率,采集足够数量的采样数据也可完成微分非线性和积分非线性的性能测试。
在另一优选实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上所涉及的方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟、可移动存储设备或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何本领域的技术人员在本发明揭露的技术范围内,对本发明所做的变形或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述的权利要求的保护范围为准。