CN110489292A - 时序测量的方法及装置 - Google Patents
时序测量的方法及装置 Download PDFInfo
- Publication number
- CN110489292A CN110489292A CN201910781153.7A CN201910781153A CN110489292A CN 110489292 A CN110489292 A CN 110489292A CN 201910781153 A CN201910781153 A CN 201910781153A CN 110489292 A CN110489292 A CN 110489292A
- Authority
- CN
- China
- Prior art keywords
- value
- bit register
- timing
- tested
- timer
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2231—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test interrupt circuits
-
- 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)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明提供了一种时序测量的方法及装置,包括:设置定时器预设时间中断一次;若待测试时序的测试触发条件产生,则判断待测试时序的配置状态;如果已配置,则对定时器的中断标志清零,对定时器记录的定时中断次数清零,备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;获取完成测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时中断次数;基于上述数值计算待测试时序。本发明通过软件即可实现对待测试时序进行自动测量的目的,操作简单,测试效率高。
Description
技术领域
本发明涉及测量的技术领域,尤其是涉及一种时序测量的方法及装置。
背景技术
适用于光模块产品的MSA协议(multi-source agreement,多来源协议)中,定义了很多时序要求,如SFF-8472协议中分别定义了TX_DISABLE、RX_LOS信号的assert time(宣称时间)和deassert time(解除时间),TX_FAULT信号的assert time(宣称时间)。另外,如SFF_8431协议也定义了SFP+内存信息保存时间(Twr),出厂的模块必须满足这些要求。
目前,对这些时序的测量主要通过给出触发条件,然后通过固件配置测试引脚输出不同电平,焊接引线将测试引脚连接到示波器探针,或用示波器探针连接测试点,进而借助示波器对相应的电平进行测量得出上述时序。
现有的时序测量方法需要借助示波器,并且需要焊接测试引线或拆壳测试,另外,固件还需要配置测试引脚以进行电平的输出。操作繁琐,测试效率低,测试引线的焊接可能会给电路板带来连锡短路隐患,测试完成后,固件配置的测试引脚若没有正确屏蔽,还会给光模块本身或外部电路带来不确定性影响(如,增加功耗),进而烧坏元器件。
综上,现有的时序测量方法存在操作繁琐,测试效率低,甚至损坏元器件的技术问题。
发明内容
本发明的目的在于提供一种时序测量的方法及装置,以缓解现有的时序测量方法操作繁琐、测试效率低、甚至损坏元器件的技术问题。
本发明提供的一种时序测量的方法,应用于微控制单元,包括:
设置定时器预设时间中断一次;
完成设置后,若待测试时序的测试触发条件产生,则判断所述待测试时序的配置状态;
如果所述配置状态为已配置,则对所述定时器的中断标志清零,对所述定时器记录的定时中断次数清零,并备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;
获取完成所述测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和所述定时器记录的定时中断次数;
基于所述16位寄存器高8位的第一值、所述16位寄存器低8位的第一值、所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时中断次数计算所述待测试时序。
进一步的,所述方法还包括:
如果所述配置状态为未配置,则不对所述定时器记录的定时中断次数清零,且不备份当前时刻所述16位寄存器高8位的第一值、所述16位寄存器低8位的第一值,不进行所述待测试时序的计算。
进一步的,获取完成所述测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和所述定时器记录的定时中断次数包括:
完成所述测试触发条件对应的应用程序时,再次判断所述待测试时序的配置状态;
如果所述配置状态为已配置,则获取当前时刻所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时器记录的定时中断次数。
进一步的,所述方法还包括:
如果所述配置状态为未配置,则不执行获取当前时刻所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时器记录的定时中断次数的动作,且不进行所述待测试时序的计算。
进一步的,基于所述16位寄存器高8位的第一值、所述16位寄存器低8位的第一值、所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时中断次数计算所述待测试时序包括:
根据第一计算算式T_Buf=TH_Buf*256+TL_Buf计算16位寄存器的第一值;其中,T_Buf表示所述16位寄存器的第一值,TH_Buf表示所述16位寄存器高8位的第一值,TL_Buf表示所述16位寄存器低8位的第一值;
根据第二计算算式T_Cur=TH_Cur*256+TL_Cur计算16位寄存器的第二值;其中,T_Cur表示所述16位寄存器的第二值,TH_Cur表示所述16位寄存器高8位的第二值,TL_Cur表示所述16位寄存器低8位的第二值;
如果所述16位寄存器的第一值不大于所述16位寄存器的第二值,则根据第一时序计算算式Timer=Cnt*T+(T_Cur-T_Buf)*UNIT*10-6计算所述待测试时序;其中,Timer表示所述待测试时序,Cnt表示所述定时中断次数,T表示所述预设时间,T_Buf表示所述16位寄存器的第一值,T_Cur表示所述16位寄存器的第二值,UNIT表示所述定时器的精度;
如果所述16位寄存器的第一值大于所述16位寄存器的第二值,则根据第二时序计算算式Timer=Cnt*T-(T_Buf-T_Cur)*UNIT*10-6计算所述待测试时序;其中,Timer表示所述待测试时序,Cnt表示所述定时中断次数,T表示所述预设时间,T_Buf表示所述16位寄存器的第一值,T_Cur表示所述16位寄存器的第二值,UNIT表示所述定时器的精度。
进一步的,在计算所述待测试时序之后,所述方法还包括:
将计算得到的所述待测试时序写入与所述待测试时序对应的字段,以使上位机通过读取所述字段中的信息得到所述待测试时序。
本发明还提供了一种时序测量的装置,应用于微控制单元,包括:
设置模块,用于设置定时器预设时间中断一次;
判断模块,用于完成设置后,若待测试时序的测试触发条件产生,则判断所述待测试时序的配置状态;
备份模块,用于如果所述配置状态为已配置,则对所述定时器的中断标志清零,对所述定时器记录的定时中断次数清零,并备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;
获取模块,用于获取完成所述测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和所述定时器记录的定时中断次数;
计算模块,用于基于所述16位寄存器高8位的第一值、所述16位寄存器低8位的第一值、所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时中断次数计算所述待测试时序。
进一步的,所述装置还包括:
设定模块,用于如果所述配置状态为未配置,则不对所述定时器记录的定时中断次数清零,且不备份当前时刻所述16位寄存器高8位的第一值、所述16位寄存器低8位的第一值,不进行所述待测试时序的计算。
进一步的,所述获取模块还用于:
完成所述测试触发条件对应的应用程序时,再次判断所述待测试时序的配置状态;
如果所述配置状态为已配置,则获取当前时刻所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时器记录的定时中断次数。
在本发明实施例中,先设置定时器预设时间中断一次,完成设置后,若待测试时序的测试触发条件产生,则判断待测试时序的配置状态;如果配置状态为已配置,则对定时器的中断标志清零,对定时器记录的定时中断次数清零,并备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;进而,获取完成测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时器中断次数;最后,基于16位寄存器高8位的第一值、16位寄存器低8位的第一值、16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时中断次数计算待测试时序。通过上述描述可知,本发明的时序测量方法在对待测试时序进行测量时,不需要借助示波器,也不需要焊接测试引线,固件也无需配置测试引脚,通过微控制单元上的软件即可实现对待测试时序进行自动测量的目的,操作简单,测试效率高,避免了损坏元器件的风险,缓解了现有的时序测量方法操作繁琐、测试效率低、甚至损坏元器件的技术问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种时序测量的方法的流程图;
图2为本发明实施例提供的另一种时序测量的方法的流程图;
图3为本发明实施例提供的获取完成测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时中断次数的方法流程图;
图4为本发明实施例提供的一种时序测量的装置的示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种时序测量的方法进行详细介绍。
实施例一:
根据本发明实施例,提供了一种时序测量的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种时序测量的方法的流程图,该方法应用于微控制单元,如图1所示,该方法包括如下步骤:
步骤S102,设置定时器预设时间中断一次;
在本发明实施例中,MCU系统时钟为72M,48倍分频给到定时器,定时器为16位且为向上计数模式,定时器一旦使能后,就一直在运行,具体表现为寄存器的值逐渐递增。
在进行时序测量时,先进行程序初始化,其中包括设置定时器预设时间中断一次,在本发明实施例上述预设时间可以为10ms,这样也就是设置定时器10ms中断一次,即设置TH=0XC5,TL=0X68,其中,TH表示16位寄存器(即定时器16位计数寄存器)的高8位,TL表示16位寄存器(即定时器16位计数寄存器)的低8位,当然,本发明实施例对上述预设时间不进行具体限制,还可以为其它数值。
另外,当上述预设时间为10ms时,可以计算得到该定时器的精度:UNTI=10ms/(65536-50536)=666.667ns。
步骤S104,完成设置后,若待测试时序的测试触发条件产生,则判断待测试时序的配置状态;
在完成上述设置后,使能定时器,若待测试时序的测试触发条件产生,则判断待测试时序的配置状态。
步骤S106,如果配置状态为已配置,则对定时器的中断标志清零,对定时器记录的定时中断次数清零,并备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;
步骤S108,获取完成测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时中断次数;
步骤S110,基于16位寄存器高8位的第一值、16位寄存器低8位的第一值、16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时中断次数计算待测试时序。
下文中再对计算待测试时序的过程进行具体介绍,在此不再赘述。
在本发明实施例中,先设置定时器预设时间中断一次,完成设置后,若待测试时序的测试触发条件产生,则判断待测试时序的配置状态;如果配置状态为已配置,则对定时器的中断标志清零,对定时器记录的定时中断次数清零,并备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;进而,获取完成测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时器中断次数;最后,基于16位寄存器高8位的第一值、16位寄存器低8位的第一值、16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时中断次数计算待测试时序。通过上述描述可知,本发明的时序测量方法在对待测试时序进行测量时,不需要借助示波器,也不需要焊接测试引线,固件也无需配置测试引脚,通过微控制单元上的软件即可实现对待测试时序进行自动测量的目的,操作简单,测试效率高,避免了损坏元器件的风险,缓解了现有的时序测量方法操作繁琐、测试效率低、甚至损坏元器件的技术问题。
上述内容对本发明的时序测量的方法进行了简要介绍,下面对其中涉及到的内容进行详细描述。
在本发明的一个可选实施例中,参考图2,步骤S112,若待测试时序的测试触发条件产生,但待测试时序的配置状态为未配置,则不对定时器记录的定时中断次数清零,且不备份当前时刻16位寄存器高8位的第一值、16位寄存器低8位的第一值,不进行待测试时序的计算。
也就是此时,并不把当前时刻16位寄存器高8位的值作为16位寄存器高8位的第一值,也不把16位寄存器低8位的值作为16位寄存器低8位的第一值,另外,也不对定时器的中断标志TF清零。
在完成上述过程后,执行测试触发条件对应的应用程序,并获取完成测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时中断次数,参考图3,具体包括如下步骤:
步骤S301,完成测试触发条件对应的应用程序时,再次判断待测试时序的配置状态;
步骤S302,如果配置状态为已配置,则获取当前时刻16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时中断次数;
也就是,如果配置状态为已配置,则将当前时刻16位寄存器高8位的值作为16位寄存器高8位的第二值;并将当前时刻16位寄存器低8位的值作为16位寄存器低8位的第二值。
步骤S303,如果配置状态为未配置,则不执行获取当前时刻16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时中断次数的动作,且不进行待测试时序的计算。
下面对计算待测试时序的过程进行具体介绍,在本发明的一个可选实施例中,基于16位寄存器高8位的第一值、16位寄存器低8位的第一值、16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时中断次数计算待测试时序包括:
根据第一计算算式T_Buf=TH_Buf*256+TL_Buf计算16位寄存器的第一值;其中,T_Buf表示16位寄存器的第一值,TH_Buf表示16位寄存器高8位的第一值,TL_Buf表示16位寄存器低8位的第一值;
根据第二计算算式T_Cur=TH_Cur*256+TL_Cur计算16位寄存器的第二值;其中,T_Cur表示16位寄存器的第二值,TH_Cur表示16位寄存器高8位的第二值,TL_Cur表示16位寄存器低8位的第二值;
如果16位寄存器的第一值不大于16位寄存器的第二值,则根据第一时序计算算式Timer=Cnt*T+(T_Cur-T_Buf)*UNIT*10-6计算待测试时序;其中,Timer表示待测试时序,Cnt表示定时中断次数,T表示预设时间,T_Buf表示16位寄存器的第一值,T_Cur表示16位寄存器的第二值,UNIT表示定时器的精度;
如果16位寄存器的第一值大于16位寄存器的第二值,则根据第二时序计算算式Timer=Cnt*T-(T_Buf-T_Cur)*UNIT*10-6计算待测试时序;其中,Timer表示待测试时序,Cnt表示定时中断次数,T表示预设时间,T_Buf表示16位寄存器的第一值,T_Cur表示16位寄存器的第二值,UNIT表示定时器的精度。
需要说明的是,最后得到的Timer的单位为ms。
另外,在MCU程序中开放了一个对外接口,里面包括各种测量结果字段,一次触发后将测量结果Timer值写入对应的字段,上位机通过读取该字段就能得到测量结果。
也就是,在计算得到待测试时序之后,将计算得到的待测试时序写入与待测试时序对应的字段,以使上位机通过读取字段中的信息得到待测试时序。
为了便于对本发明的时序测量的方法更好的理解,下面以三个具体实施例对本发明的时序测量的方法的过程进行详细介绍。
当待测试时序为TX_DISABLE信号的assert time(宣称时间)时:若TX_DISABLE信号的控制位置1(表示TX_DISABLE信号的assert time的测试触发条件产生),判断是否配置了对TX_DISABLE信号assert time的测量(即判断待测试时序的配置状态)。如果配置了,则对TF(即定时器中断标志)清零,Cnt(即定时器记录的定时中断次数)清零,备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;如果没配置,则不对TF清零,不对Cnt清零,不备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值,不进行待测试时序的计算。然后执行关闭发射,完成后再次判断是否配置了对TX_DISABLE信号assert time的测量(即判断待测试时序的配置状态)。如果配置了,则获取当前时刻16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时中断次数;如果没有配置,则不执行读取操作,且不进行待测试时序的计算。接下来进行计算,按照上述内容中的第一计算算式、第二计算算式计算得到16位寄存器的第一值和16位寄存器的第二值,如果16位寄存器的第一值不大于16位寄存器的第二值,则TX_DISABLE信号的assert time为:Timer=(Cnt*T+(T_Cur-T_Buf)*UNIT*10-6)ms;如果16位寄存器的第一值大于16位寄存器的第二值,则TX_DISABLE信号的assert time为:Timer=(Cnt*T-(T_Buf-T_Cur)*UNIT*10-6)ms,其中,各参量的含义可参考上述内容中的描述。
当待测试时序为TX_DISABLE信号的deassert time(解除时间)时:若TX_DISABLE信号的控制位清零(表示TX_DISABLE信号的deassert time的测试触发条件产生),判断是否配置了对TX_DISABLE信号deassert time的测量(即判断待测试时序的配置状态)。如果配置了,则对TF(即定时器中断标志)清零,Cnt(即定时器记录的定时中断次数)清零,备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;如果没配置,则不对TF清零,不对Cnt清零,不备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值,不进行待测试时序的计算。然后执行打开发射,完成后再次判断是否配置了对TX_DISABLE信号deassert time的测量(即判断待测试时序的配置状态)。如果配置了,则获取当前时刻16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时中断次数;如果没有配置,则不执行读取操作,且不进行待测试时序的计算。接下来进行计算,按照上述内容中的第一计算算式、第二计算算式计算得到16位寄存器的第一值和16位寄存器的第二值,如果16位寄存器的第一值不大于16位寄存器的第二值,则TX_DISABLE信号的deassert time为:Timer=(Cnt*T+(T_Cur-T_Buf)*UNIT*10-6)ms;如果16位寄存器的第一值大于16位寄存器的第二值,则TX_DISABLE信号的deassert time为:Timer=(Cnt*T-(T_Buf-T_Cur)*UNIT*10-6)ms,其中,各参量的含义可参考上述内容中的描述。
当光模块处于主机对其User Writable EEPROM区写入一帧数据时,一旦接收到STOP信号(表示内存信息保存时间Twr的测试触发条件产生),判断是否配置了对内存信息保存时间Twr的测量(即判断待测试时序的配置状态)。如果配置了,则对TF(即定时器中断标志)清零,Cnt(即定时器记录的定时中断次数)清零,备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;如果没配置,则不对TF清零,不对Cnt清零,不备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值,不进行待测试时序的计算。然后执行信息保存,完成后再次判断是否配置了对内存信息保存时间Twr的测量(即判断待测试时序的配置状态)。如果配置了,则获取当前时刻16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时中断次数;如果没有配置,则不执行读取操作,且不进行待测试时序的计算。接下来进行计算,按照上述内容中的第一计算算式、第二计算算式计算得到16位寄存器的第一值和16位寄存器的第二值,如果16位寄存器的第一值不大于16位寄存器的第二值,则内存信息保存时间Twr为:Timer=(Cnt*T+(T_Cur-T_Buf)*UNIT*10-6)ms;如果16位寄存器的第一值大于16位寄存器的第二值,则内存信息保存时间Twr为:Timer=(Cnt*T-(T_Buf-T_Cur)*UNIT*10-6)ms,其中,各参量的含义可参考上述内容中的描述。
实施例二:
本发明实施例还提供了一种时序测量的装置,该时序测量的装置应用于微控制单元,主要用于执行本发明实施例上述内容所提供的时序测量的方法,以下对本发明实施例提供的时序测量的装置做具体介绍。
图4是根据本发明实施例的一种时序测量的装置的示意图,如图4所示,该时序测量的装置主要包括设置模块10,判断模块20,备份模块30,获取模块40和计算模块50,其中:
设置模块,用于设置定时器预设时间中断一次;
判断模块,用于完成设置后,若待测试时序的测试触发条件产生,则判断待测试时序的配置状态;
备份模块,用于如果配置状态为已配置,则对定时器的中断标志清零,对定时器记录的定时中断次数清零,并备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;
获取模块,用于获取完成测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时中断次数;
计算模块,用于基于16位寄存器高8位的第一值、16位寄存器低8位的第一值、16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时中断次数计算待测试时序。
在本发明实施例中,先设置定时器预设时间中断一次,完成设置后,若待测试时序的测试触发条件产生,则判断待测试时序的配置状态;如果配置状态为已配置,则对定时器的中断标志清零,对定时器记录的定时中断次数清零,并备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;进而,获取完成测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时器中断次数;最后,基于16位寄存器高8位的第一值、16位寄存器低8位的第一值、16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时中断次数计算待测试时序。通过上述描述可知,本发明的时序测量方法在对待测试时序进行测量时,不需要借助示波器,也不需要焊接测试引线,固件也无需配置测试引脚,通过微控制单元上的软件即可实现对待测试时序进行自动测量的目的,操作简单,测试效率高,避免了损坏元器件的风险,缓解了现有的时序测量方法操作繁琐、测试效率低、甚至损坏元器件的技术问题。
可选地,该装置还包括:
设定模块,用于如果配置状态为未配置,则不对定时器记录的定时中断次数清零,且不备份当前时刻16位寄存器高8位的第一值、16位寄存器低8位的第一值,不进行待测试时序的计算。
可选地,获取模块还用于:
完成测试触发条件对应的应用程序时,再次判断待测试时序的配置状态;
如果配置状态为已配置,则获取当前时刻16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时中断次数。
可选地,获取模块还用于:
如果配置状态为未配置,则不执行获取当前时刻16位寄存器高8位的第二值、16位寄存器低8位的第二值和定时器记录的定时中断次数的动作,且不进行待测试时序的计算。
可选地,计算模块还用于:
根据第一计算算式T_Buf=TH_Buf*256+TL_Buf计算16位寄存器的第一值;其中,T_Buf表示16位寄存器的第一值,TH_Buf表示16位寄存器高8位的第一值,TL_Buf表示16位寄存器低8位的第一值;
根据第二计算算式T_Cur=TH_Cur*256+TL_Cur计算16位寄存器的第二值;其中,T_Cur表示16位寄存器的第二值,TH_Cur表示16位寄存器高8位的第二值,TL_Cur表示16位寄存器低8位的第二值;
如果16位寄存器的第一值不大于16位寄存器的第二值,则根据第一时序计算算式Timer=Cnt*T+(T_Cur-T_Buf)*UNIT*10-6计算待测试时序;其中,Timer表示待测试时序,Cnt表示定时中断次数,T表示预设时间,T_Buf表示16位寄存器的第一值,T_Cur表示16位寄存器的第二值,UNIT表示定时器的精度;
如果16位寄存器的第一值大于16位寄存器的第二值,则根据第二时序计算算式Timer=Cnt*T-(T_Buf-T_Cur)*UNIT*10-6计算待测试时序;其中,Timer表示待测试时序,Cnt表示定时中断次数,T表示预设时间,T_Buf表示16位寄存器的第一值,T_Cur表示16位寄存器的第二值,UNIT表示定时器的精度。
可选地,该装置还用于:
将计算得到的待测试时序写入与待测试时序对应的字段,以使上位机通过读取字段中的信息得到待测试时序。
该实施例二中的具体内容可以参考上述实施例一中的相关描述,在此不再赘述。
本发明实施例所提供的时序测量的方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种时序测量的方法,其特征在于,应用于微控制单元,包括:
设置定时器预设时间中断一次;
若待测试时序的测试触发条件产生,则判断所述待测试时序的配置状态;
如果所述配置状态为已配置,则对所述定时器的中断标志清零,对所述定时器记录的定时中断次数清零,并备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;
获取完成所述测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和所述定时器记录的定时中断次数;
基于所述16位寄存器高8位的第一值、所述16位寄存器低8位的第一值、所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时中断次数计算所述待测试时序。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述配置状态为未配置,则不对所述定时器记录的定时中断次数清零,且不备份当前时刻所述16位寄存器高8位的第一值、所述16位寄存器低8位的第一值,不进行所述待测试时序的计算。
3.根据权利要求1所述的方法,其特征在于,获取完成所述测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和所述定时器记录的定时中断次数包括:
完成所述测试触发条件对应的应用程序时,再次判断所述待测试时序的配置状态;
如果所述配置状态为已配置,则获取当前时刻所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时器记录的定时中断次数。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果所述配置状态为未配置,则不执行获取当前时刻所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时器记录的定时中断次数的动作,且不进行所述待测试时序的计算。
5.根据权利要求1所述的方法,其特征在于,基于所述16位寄存器高8位的第一值、所述16位寄存器低8位的第一值、所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时中断次数计算所述待测试时序包括:
根据第一计算算式T_Buf=TH_Buf*256+TL_Buf计算16位寄存器的第一值;其中,T_Buf表示所述16位寄存器的第一值,TH_Buf表示所述16位寄存器高8位的第一值,TL_Buf表示所述16位寄存器低8位的第一值;
根据第二计算算式T_Cur=TH_Cur*256+TL_Cur计算16位寄存器的第二值;其中,T_Cur表示所述16位寄存器的第二值,TH_Cur表示所述16位寄存器高8位的第二值,TL_Cur表示所述16位寄存器低8位的第二值;
如果所述16位寄存器的第一值不大于所述16位寄存器的第二值,则根据第一时序计算算式Timer=Cnt*T+(T_Cur-T_Buf)*UNIT*10-6计算所述待测试时序;其中,Timer表示所述待测试时序,Cnt表示所述定时中断次数,T表示所述预设时间,T_Buf表示所述16位寄存器的第一值,T_Cur表示所述16位寄存器的第二值,UNIT表示所述定时器的精度;
如果所述16位寄存器的第一值大于所述16位寄存器的第二值,则根据第二时序计算算式Timer=Cnt*T-(T_Buf-T_Cur)*UNIT*10-6计算所述待测试时序;其中,Timer表示所述待测试时序,Cnt表示所述定时中断次数,T表示所述预设时间,T_Buf表示所述16位寄存器的第一值,T_Cur表示所述16位寄存器的第二值,UNIT表示所述定时器的精度。
6.根据权利要求1所述的方法,其特征在于,在计算所述待测试时序之后,所述方法还包括:
将计算得到的所述待测试时序写入与所述待测试时序对应的字段,以使上位机通过读取所述字段中的信息得到所述待测试时序。
7.一种时序测量的装置,其特征在于,应用于微控制单元,包括:
设置模块,用于设置定时器预设时间中断一次;
判断模块,用于若待测试时序的测试触发条件产生,则判断所述待测试时序的配置状态;
备份模块,用于如果所述配置状态为已配置,则对所述定时器的中断标志清零,对所述定时器记录的定时中断次数清零,并备份当前时刻16位寄存器高8位的第一值和16位寄存器低8位的第一值;
获取模块,用于获取完成所述测试触发条件对应的应用程序时,16位寄存器高8位的第二值、16位寄存器低8位的第二值和所述定时器记录的定时中断次数;
计算模块,用于基于所述16位寄存器高8位的第一值、所述16位寄存器低8位的第一值、所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时中断次数计算所述待测试时序。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
设定模块,用于如果所述配置状态为未配置,则不对所述定时器记录的定时中断次数清零,且不备份当前时刻所述16位寄存器高8位的第一值、所述16位寄存器低8位的第一值,不进行所述待测试时序的计算。
9.根据权利要求7所述的装置,其特征在于,所述获取模块还用于:
完成所述测试触发条件对应的应用程序时,再次判断所述待测试时序的配置状态;
如果所述配置状态为已配置,则获取当前时刻所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时器记录的定时中断次数。
10.根据权利要求9所述的装置,其特征在于,所述装置还用于:
如果所述配置状态为未配置,则不执行获取当前时刻所述16位寄存器高8位的第二值、所述16位寄存器低8位的第二值和所述定时器记录的定时中断次数的动作,且不进行所述待测试时序的计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910781153.7A CN110489292B (zh) | 2019-08-22 | 2019-08-22 | 时序测量的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910781153.7A CN110489292B (zh) | 2019-08-22 | 2019-08-22 | 时序测量的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489292A true CN110489292A (zh) | 2019-11-22 |
CN110489292B CN110489292B (zh) | 2023-04-25 |
Family
ID=68553050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910781153.7A Active CN110489292B (zh) | 2019-08-22 | 2019-08-22 | 时序测量的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110489292B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882531A (zh) * | 2021-01-18 | 2021-06-01 | 深圳市国微电子有限公司 | 基于双计数器实现的时序拉偏方法及系统、设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379390A (en) * | 1990-08-22 | 1995-01-03 | Eaton Corporation | Rate/ratio determining apparatus |
US20080052580A1 (en) * | 2006-08-09 | 2008-02-28 | Advantest Corporation | Signal output circuit, and test apparatus |
CN101221200A (zh) * | 2008-01-30 | 2008-07-16 | 北京英华达电力电子工程科技有限公司 | 一种频率测量方法和装置 |
CN104090830A (zh) * | 2014-07-02 | 2014-10-08 | 西安航空动力控制科技有限公司 | 用测周法测量频率时定时器时序交错问题的处理方法 |
CN104714871A (zh) * | 2013-12-13 | 2015-06-17 | 上海华虹集成电路有限责任公司 | 基于fpga的可编程并口时序测试电路 |
CN106093567A (zh) * | 2016-06-01 | 2016-11-09 | 深圳先进技术研究院 | 一种高精度宽频域频率测量系统及频率测量方法 |
-
2019
- 2019-08-22 CN CN201910781153.7A patent/CN110489292B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379390A (en) * | 1990-08-22 | 1995-01-03 | Eaton Corporation | Rate/ratio determining apparatus |
US20080052580A1 (en) * | 2006-08-09 | 2008-02-28 | Advantest Corporation | Signal output circuit, and test apparatus |
CN101221200A (zh) * | 2008-01-30 | 2008-07-16 | 北京英华达电力电子工程科技有限公司 | 一种频率测量方法和装置 |
CN104714871A (zh) * | 2013-12-13 | 2015-06-17 | 上海华虹集成电路有限责任公司 | 基于fpga的可编程并口时序测试电路 |
CN104090830A (zh) * | 2014-07-02 | 2014-10-08 | 西安航空动力控制科技有限公司 | 用测周法测量频率时定时器时序交错问题的处理方法 |
CN106093567A (zh) * | 2016-06-01 | 2016-11-09 | 深圳先进技术研究院 | 一种高精度宽频域频率测量系统及频率测量方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882531A (zh) * | 2021-01-18 | 2021-06-01 | 深圳市国微电子有限公司 | 基于双计数器实现的时序拉偏方法及系统、设备 |
CN112882531B (zh) * | 2021-01-18 | 2024-04-05 | 深圳市国微电子有限公司 | 基于双计数器实现的时序拉偏方法及系统、设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110489292B (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102542110B (zh) | 一种应用于移动存储soc芯片的仿真验证方法 | |
CN105425201B (zh) | 用于智能电能表软件可靠性检测的计量芯片模拟测试方法 | |
CN107505932B (zh) | 一种基于串行通信的dsp远程调试装置及方法 | |
CN105738854A (zh) | 智能电表嵌入式应用的模拟存储器测试板系统及测试方法 | |
CN109117518A (zh) | 一种寄存器读写访问验证系统及方法 | |
CN107037352A (zh) | 一种电容式触控按键芯片检测标定系统及方法 | |
CN113157508B (zh) | 嵌入式系统的测试方法、系统、装置、设备及存储介质 | |
CN106569166B (zh) | 一种双芯电能表法制计量部的测试方法 | |
CN105741879B (zh) | 一种模拟智能电能表存储器测试板系统及其测试方法 | |
CN110244256A (zh) | 一种智能电能表故障识别方法、装置及设备 | |
CN109375151B (zh) | 电能表计量误差在线监测技术的监测通道调度方法及装置 | |
CN109557460B (zh) | 一种基于fpga的卷积神经网络算法的测试方法及设备 | |
CN109490751A (zh) | 一种emmc测试方法及测试电路 | |
CN103853648A (zh) | 嵌入式软件性能评测硬件辅助测试装置和方法 | |
CN104299316B (zh) | 一种金融终端自动检测卡片类型的方法 | |
CN110489292A (zh) | 时序测量的方法及装置 | |
CN106326046B (zh) | 存储器控制器的验证环境平台 | |
CN105791042B (zh) | Etc系统中的通信质量测试方法 | |
CN108628734A (zh) | 一种功能程序调试方法和终端 | |
CN109684149A (zh) | 一种NVMe硬盘的硬件信息监控方法、装置及设备 | |
CN107765202A (zh) | 集成电路测试系统中交流测量单元的在线校准系统及方法 | |
CN107515806A (zh) | 一种sas信号参数在线调试的方法与装置 | |
CN109522263A (zh) | 一种i2c链路监控系统 | |
CN108627797A (zh) | 定位装置及定位方法 | |
CN112214339A (zh) | 一种用于对芯片使用寿命进行测试的方法及系统 |
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 |