中断时间的测试系统及方法与流程

文档序号:25517140发布日期:2021-06-18 20:02阅读:480来源:国知局
中断时间的测试系统及方法与流程

本发明涉及中断时间确定技术领域,尤其涉及一种中断时间的测试系统及方法。



背景技术:

目前电源模块普遍采用数字控制,数字控制的核心一般都是采用dsp(数字信号处理器)芯片,对于一些实时性要求较高的功能,比如控制环路计算、过压过流保护、动态处理策略、采样滤波等,往往使用isr(中断服务程序)来执行,dsp优先执行isr,在一个中断周期中执行完isr后才会执行主程序,所以中断时间(即isr执行时间)对于模块控制来说是一个非常重要的指标,中断时间过长就会导致中断占用率(isr执行时间在中断周期中所占的比例)过高,从而可能导致主程序没有足够的时间来执行,极端情况,比如中断溢出(中断时间超过中断周期)会导致下一个中断都无法及时执行,导致模块不能正常工作,因此,在电源模块的开发过程中准确的测试出中断时间非常重要。

现在测试中断时间主要有两种方法:

方法一:人工在isr中找出执行时间最长的分支,人工数出程序执行需要多少个系统时钟周期,这种方法需要人在复杂的代码中找出最长分支,而且要一条一条的数出来,而各指令的执行周期又可能不同,所以工作量很大,效率低,而且准确度也较差。

方法二:人工isr中找出执行时间最长的分支,更改代码保证每个判断条件都执行最长分支,在进入isr时将某个测试输出管脚电平置高,在退出isr时将其置低,然后在单板上电使用示波器测量高电平的时间,这种方法相比方法一少了人工数代码,但仍然要人工寻找最长分支,而且需要在每个判断条件中更改代码,工作量仍然较大,效率也低,对于不是代码编写者来说很难确定最长分支,也很容易出错,另外因为人为更改了很多判断条件,测试工况与实际工况可能存在较大差异,造成测试结果与真实情况偏差较大。



技术实现要素:

为克服相关技术中存在的问题,本发明提供一种中断时间的测试系统及方法,可以方便快速、高效、准确的测试出真实的中断时间,从而计算出真实的中断占用率,准确评估代码质量。

根据本发明实施例的第一方面,提供一种中断时间的测试系统,所述系统包括:

上位机、可配置输入源、可配置负载和至少一个被测试电源模块;

所述至少一个被测试电源模块并联连接在所述可配置输入源和所述可配置负载之间;

所述上位机,连接至所述可配置输入源、所述至少一个被测试电源模块和所述可配置负载,所述上位机根据被测试电源模块的数量、所有可能的输入源工况和负载工况组合成测试用例库,根据所述测试用例库中目标测试用例对应的目标输入源工况、目标负载工况和目标测试用例的编号按顺序控制所述可配置输入源和可配置负载进行工作,并下发测试命令和目标测试用例的编号至所述至少一个被测试电源模块,以控制所述至少一个被测试电源模块对于每个目标测试用例执行k次中断时间测试算法,以测试得到每个目标测试用例的中断时间。

在一个实施例中,优选地,所述目标测试用例的确定方式包括:

接收用户输入的测试用例选择命令,根据所述测试用例选择命令,将被选中的测试用例确定为所述目标测试用例。

在一个实施例中,优选地,所述中断时间测试算法包括:

接收所述测试命令和所述目标测试用例的编号,允许执行中断时间测试算法;

在进入中断服务程序时读取定时器计数t1;

在即将退出中断服务程序时读取定时器计数t2;

获取响应中断到读取t1之间的时间t3以及读取t2到退出中断之间的时间t4;

计算本次中断时间,其中,所述本次中断时间采用以下公式进行计算:

t=(t2-t1)+t3+t4。

在一个实施例中,优选地,所述至少一个被测试电源模块还用于:

将本次中断时间t与该目标测试用例的中断时间txyz进行比较,将两者中的最大值确定为该目标测试用例的新的中断时间txyz新.;

当所有目标测试用例中的每个测试用例均执行完k次中断时间测试算法后,比较所有目标测试用例的中断时间txyz新.,从中选取最大中断时间确定为最长中断时间;

所述被测试电源模块将所有目标测试用例对应的中断时间组成一个数组,将所述数组和所述最长中断时间和对应的目标测试用例编号发送至上位机。

在一个实施例中,优选地,所述至少一个被测试电源模块还用于:

将本次中断时间t与最终中断时间tmax进行比较,将两者中的最大值确定为该目标测试用例的新的最终中断时间tmax新;

当所有目标测试用例中的每个测试用例均执行完k次中断时间测试算法后,将最终中断时间tmax新发送至上位机。

根据本发明实施例的第二方面,提供一种中断时间的测试方法,用于如第一方面实施例中任一项所述的中断时间的测试系统,所述方法包括:

根据被测试电源模块的数量、所有可能的输入源工况和负载工况组合成测试用例库;

根据所述测试用例库中目标测试用例对应的目标输入源工况、目标负载工况和目标测试用例的编号按顺序控制所述可配置输入源和可配置负载进行工作,并下发测试命令和目标测试用例的编号至所述至少一个被测试电源模块,以控制所述至少一个被测试电源模块对于每个目标测试用例执行k次中断时间测试算法,以测试得到每个目标测试用例的中断时间。

在一个实施例中,优选地,所述目标测试用例的确定方式包括:

接收用户输入的测试用例选择命令,根据所述测试用例选择命令,将被选中的测试用例确定为所述目标测试用例。

在一个实施例中,优选地,所述中断时间测试算法包括:

接收所述测试命令和所述目标测试用例的编号,允许执行中断时间测试算法;

在进入中断服务程序时读取定时器计数t1;

在即将退出中断服务程序时读取定时器计数t2;

获取响应中断到读取t1之间的时间t3以及读取t2到退出中断之间的时间t4;

计算本次中断时间,其中,所述本次中断时间采用以下公式进行计算:

t=(t2-t1)+t3+t4。

在一个实施例中,优选地,还包括:

将本次中断时间t与该目标测试用例的中断时间txyz进行比较,将两者中的最大值确定为该目标测试用例的新的中断时间txyz.新;

当所有目标测试用例中的每个测试用例均执行完k次中断时间测试算法后,比较所有目标测试用例的中断时间txyz新,从中选取最大中断时间确定为最长中断时间;

所述被测试电源模块将所有目标测试用例对应的中断时间组成一个数组,将所述数组和所述最长中断时间和对应的目标测试用例编号发送至上位机。

在一个实施例中,优选地,还包括:

将本次中断时间t与最终中断时间tmax进行比较,将两者中的最大值确定为该目标测试用例的新的最终中断时间tmax新;

当所有目标测试用例中的每个测试用例均执行完k次中断时间测试算法后,将最终中断时间tmax新发送至上位机。

本发明的实施例提供的技术方案可以包括以下有益效果:

本发明实施例中,通过上位机、可配置输入源、可配置负载和被测模块组成测试系统,使用按被测试电源模块数量、输入工况和负载工况三个参数设计组合测试用例库,并使用中断时间测试算法自动测试出模块的中断时间,与现有技术相比,非常快速高效且准确,可极大提高电源模块的开发效率和软件质量。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种中断时间的测试系统的框图。

图2是根据一示例性实施例示出的一种中断时间的测试方法的流程图。

图3是根据一示例性实施例示出的一种中断时间的测试方法的具体流程图。

图4是根据一示例性实施例示出的另一种中断时间的测试方法的具体流程图。

图5是根据一示例性实施例示出的又一种中断时间的测试方法的具体流程图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种中断时间的测试系统的框图,如图1所示,该测试系统包括:

上位机101、可配置输入源102、可配置负载104和至少一个被测试电源模块103;

所述至少一个被测试电源模块103并联连接在所述可配置输入源102和所述可配置负载104之间;

所述上位机101,连接至所述可配置输入源102、所述至少一个被测试电源模块103和所述可配置负载104,所述上位机101根据被测试电源模块的数量、所有可能的输入源工况和负载工况组合成测试用例库,根据所述测试用例库中目标测试用例对应的目标输入源工况、目标负载工况和目标测试用例的编号按顺序控制所述可配置输入源和可配置负载进行工作,并下发测试命令和目标测试用例的编号至所述至少一个被测试电源模块103,以控制所述至少一个被测试电源模块对于每个目标测试用例执行k次中断时间测试算法,以测试得到每个目标测试用例的中断时间。

在该实施例中,上位机根据被测试电源模块的数量,将所有可能的输入源工况(比如模块规格书中允许的各种不同输入电压、不同输入频率、交流或直流、各种源跳变…等等)和负载工况(比如空载、半载、满载、各种负载跳变,短路…等等)组合成测试用例库,进而根据所述测试用例库中目标测试用例对应的目标输入源工况和目标负载工况控制所述可配置输入源和可配置负载进行工作,并控制所述至少一个被测试电源模块执行中断时间测试算法,以测试得到每个目标测试用例的中断时间,从而提高电源模块的开发效率和软件质量,高效且准确的得到中断时间。

在一个实施例中,优选地,所述目标测试用例的确定方式包括:

接收用户输入的测试用例选择命令,根据所述测试用例选择命令,将被选中的测试用例确定为所述目标测试用例。

在一个实施例中,优选地,所述中断时间测试算法包括:

接收所述测试命令和所述目标测试用例的编号,允许执行中断时间测试算法;

在进入中断服务程序时读取定时器计数t1;

在即将退出中断服务程序时读取定时器计数t2;

获取响应中断到读取t1之间的时间t3以及读取t2到退出中断之间的时间t4;

计算本次中断时间,其中,所述本次中断时间采用以下公式进行计算:

t=(t2-t1)+t3+t4。

在一个实施例中,优选地,所述至少一个被测试电源模块还用于:

将本次中断时间t与该目标测试用例的中断时间txyz进行比较,将两者中的最大值确定为该目标测试用例的新的中断时间txyz新.;

当所有目标测试用例中的每个测试用例均执行完k次中断时间测试算法后,比较所有目标测试用例的中断时间txyz新,从中选取最大中断时间确定为最长中断时间;

所述被测试电源模块将所有目标测试用例对应的中断时间组成一个数组,将所述数组和所述最长中断时间和对应的目标测试用例编号发送至上位机。

在一个实施例中,优选地,所述至少一个被测试电源模块还用于:

将本次中断时间t与最终中断时间tmax进行比较,将两者中的最大值确定为该目标测试用例的新的最终中断时间tmax新;

当所有目标测试用例中的每个测试用例均执行完k次中断时间测试算法后,将最终中断时间tmax新发送至上位机。

图2是根据一示例性实施例示出的一种中断时间的测试方法的流程图,如图2所示,该测试方法包括:

步骤s201,根据被测试电源模块的数量、所有可能的输入源工况和负载工况组合成测试用例库;

步骤s202,根据所述测试用例库中目标测试用例对应的目标输入源工况和目标负载工况控制可配置输入源和可配置负载进行工作,并控制至少一个被测试电源模块执行中断时间测试算法,以测试得到每个目标测试用例的中断时间。

在一个实施例中,优选地,所述目标测试用例的确定方式包括:

接收用户输入的测试用例选择命令,根据所述测试用例选择命令,将被选中的测试用例确定为所述目标测试用例。

在该实施例中,用户可以根据个人需要选择目标测试用例,用户可以选择全部用例进行完整测试,也可以选择部分测试用例,上位机可以根据用户的选择顺序自动为测试用例进行编号。

具体在执行中断时间测试算法时,根据需要的不同,可以实施为多种实施方式,下面以集中实施例为例,详细说明本发明的上述技术方案。

实施例一

如图3所示,当需要测试得到所有工况的中断时间以及最长的中断时间及其工况时,可以实施为以下步骤:

步骤s301,上位机以模块数量、输入工况和负载工况三个参数组合成测试用例库,每个测试用例编号exyz;

步骤s302,上位机按照测试用例编号的顺序执行所选的目标测试用例,控制输入源和负载按照测试用例的配置工作,给被测试电源下发测试命令和测试用例编号,对每个目标测试用例执行k遍中断时间测试算法;

步骤s303,被测试电源模块接收测试命令和用例编号exyz,允许执行中断时间测试算法f。

步骤s304,在进入中断服务程序时读取定时器计数t1;

步骤s305,在即将退出中断服务程序时读取定时器计数t2;

步骤s306,获取响应中断到读取t1之间的时间t3以及读取t2到退出中断之间的时间t4,计算本次中断时间,其中,所述本次中断时间采用以下公式进行计算:

t=(t2-t1)+t3+t4;

步骤s307,将本次中断时间t与之前确定的当前中断时间tmax进行比较,将两者中的最大值确定为新的当前中断时间tmax新。

步骤s308,判断所选测试用例是否执行完k遍;

步骤s309,比较所有测试用例的中断时间tmax新,取最大值作为最长中断时间tmax新;

步骤s310,将所有测试用例的中断时间组成数组,并确定最长中断时间tmax新和对应的用例编号,并将上述测试结果上传给上位机。

这样,既得到了所有工况的中断时间,也得到了最长中断时间和工况,整个测试过程可以自动完成,快速且准确。

实施例二

如图4所示,当不需要详细的每个工况的中断时间,只需要最长的中断时间时,可以实施为以下步骤:

步骤s401,上位机以模块数量、输入工况和负载工况三个参数组合成测试用例库,每个测试用例编号exyz;

步骤s402,上位机按照测试用例编号的顺序执行所选的目标测试用例,控制输入源和负载按照测试用例的配置工作,给被测试电源下发测试命令和测试用例编号,对每个目标测试用例执行k遍中断时间测试算法;

步骤s403,被测试电源模块接收测试命令和用例编号exyz,允许执行中断时间测试算法f。

步骤s404,在进入中断服务程序时读取定时器计数t1;

步骤s405,在即将退出中断服务程序时读取定时器计数t2;

步骤s406,获取响应中断到读取t1之间的时间t3以及读取t2到退出中断之间的时间t4,计算本次中断时间,其中,所述本次中断时间采用以下公式进行计算:

t=(t2-t1)+t3+t4;

步骤s407,将本次中断时间t与之前确定的当前中断时间tmax进行比较,将两者中的最大值确定为新的当前中断时间tmax新。

步骤s408,判断所选测试用例是否执行完k遍;

步骤s409,比较所有测试用例的中断时间tmax新,取最大值作为最长中断时间tmax新;

步骤s410,将最长中断时间tmax新上传给上位机。

实施例三

在实施例二的基础上,也可以上位机不下发测试命令给被测电源模块,模块的中断时间测试算法上电自动执行,得到的中断时间结果自动保存在模块eeprom里,在需要的时候读出,或者得到的中断时间与设定的最大允许值比较,如果超过则模块亮告警指示灯,不超过则不亮灯,具体如图5所示,包括:

步骤s501,上位机以模块数量、输入工况和负载工况三个参数组合成测试用例库,每个测试用例编号exyz;

步骤s502,上位机按照测试用例编号的顺序执行所选的目标测试用例,控制输入源和负载按照测试用例的配置工作,给被测试电源下发测试命令和测试用例编号,对每个目标测试用例执行k遍中断时间测试算法;

步骤s503,在进入中断服务程序时读取定时器计数t1;

步骤s504,在即将退出中断服务程序时读取定时器计数t2;

步骤s505,获取响应中断到读取t1之间的时间t3以及读取t2到退出中断之间的时间t4,计算本次中断时间,其中,所述本次中断时间采用以下公式进行计算:

t=(t2-t1)+t3+t4;

步骤s506,将本次中断时间t与之前确定的当前中断时间tmax进行比较,将两者中的最大值确定为新的当前中断时间tmax新。

步骤s507,定时将中断时间tmax新保存在eeprom,实时将tmax与允许的最大中断时间值比较,如果超过则亮灯警告,不超过则不警告。

进一步可以理解的是,本发明中“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

进一步可以理解的是,术语“第一”、“第二”等用于描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开,并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。

进一步可以理解的是,本发明实施例中尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1