发明内容
有鉴于此,本申请提供一种芯片时钟频率测试芯片和其时钟测试方法以及芯片时钟测试系统,在不占用新的引脚的情况下,能够检测芯片的晶振时钟频率。
为了实现上述目的,现提出的方案如下:
一种芯片时钟频率测试芯片,包括:
计数单元,用于通过I2C接口获取频率测试指令,并在获取到所述频率测试指令后当I2C接口输出信号处于上升沿时,时钟信号开始计数,在I2C接口输出信号处于第N个上升沿时,时钟信号停止计数,检测并输出时钟信号开始至停止计数时间段内检测到的时钟总计数,其中所述N为不小于2的正整数。
优选的,上述芯片时钟频率测试芯片中,还包括:
地址确认单元,用于当获取到第一或第二START指令后返回确认指令。
一种芯片时钟频率测试方法,包括:
通过目标芯片的I2C接口向目标芯片发送频率检测指令,用于控制目标芯片在I2C接口输出信号处于上升沿时,时钟信号开始计数,在I2C接口输出信号处于第N个上升沿时,时钟信号停止计数,检测并输出时钟信号开始至停止计数时间段内检测到的时钟总计数,其中所述N为不小于2的正整数;
通过目标芯片的I2C接口向所述目标芯片发送用于读取所述时钟总计数的读取指令;
依据所述时钟总计数、I2C接口输出信号周期和N计算目标芯片内部时钟频率。
优选的,上述方法中,通过目标芯片的I2C接口向目标芯片发送频率检测指令之前,还包括:
获取所述目标芯片的设备地址;
依据所述设备地址发送向目标芯片发送第一START指令;
判断是否获取到确认信号,如果是,继续执行。
优选的,上述方法中,所述向目标芯片发送读取指令之后和计算目标芯片内部时钟频率之间,还包括:
判断是否获取到所述时钟总计数,如果是,向目标芯片发送不确认信号,继续执行,否则,向所述目标芯片发送确认信号,继续读取下一个数据。
优选的,上述方法中,在向目标芯片发送频率检测指令和读取指令之间,还包括:
向所述目标芯片发送第一STOP指令。
优选的,上述方法中,在向所述目标芯片发送第一STOP指令之后和向目标芯片发送读取指令之前,还包括:
依据设备地址向目标芯片发送第二START指令;
判断是否获取到确认信号,如果是,继续执行。
优选的,上述方法中,向所述目标芯片发送不确认信号之后在计算目标芯片内部时钟频率之前,还包括:
向所述目标芯片发送第二STOP指令。
一种芯片时钟频率测试系统,包括:指令发送单元和M个芯片时钟频率测试芯片,其中M为不小于1的整数;
所述指令发送单元,用于选取一个或多个芯片时钟频率测试芯片作为目标芯片,依据目标芯片的设备地址向目标芯片发送频率检测指令,并依据获取到的时钟总计数计算目标芯片内部时钟频率;
所述目标芯片,通过I2C接口与指令发送单元相连,用于当通过I2C接口获取到所述依据所述频率检测指令后,当I2C接口输出信号处于上升沿时,时钟信号开始计数,在I2C接口输出信号处于第N个上升沿时,时钟信号停止计数,检测并输出时钟信号开始至停止计数时间段内检测到的时钟总计数,其中所述N为不小于2的正整数。
优选的上述系统中,所述指令发送单元还包括:
芯片状态确认单元,用于依据目标芯片确认地址向所述目标芯片发送第一和第二START指令;
所述芯片时钟频率测试芯片还包括:确认单元,用于当获取到所述第一或第二START指令后向芯片状态确认单元,返回确认信息。
从上述的技术方案可以看出,本申请公开的所述芯片时钟频率测试芯片可以通过I2C接口,获取频率测试指令,在获取所述频率测试指令后,检测在I2C接口输出信号连续N个上升沿的时间段内,获取到的时钟信号的时钟总计数,本领域技术人员即可依据时钟总计数,I2C接口输出信号周期和N计算得到芯片的内部时钟频率,可见本申请提供的芯片可以通过芯片的原有功能接口I2C接口获取到用于计算时钟周期的时钟总计数,从而得出芯片的时钟周期,不必占用新的芯片引脚,从而提高了所述芯片引脚的利用效率。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了在不占用芯片的新的功能引脚的情况下,依然能够检测芯片的晶振时钟频率,本申请提供了一种芯片和其时钟测试方法以及芯片时钟测试系统。
图1为本申请实施例公开的一种芯片时钟频率测试芯片的结构图。
参见图1本申请实施例公开的芯片1设置有计数单元101,所述计数单元101用于通过所属芯片的I2C接口获取频率测试指令,并在获取到所述频率测试指令后,判断所述芯片的I2C接口输出信号的状态,当所述I2C接口输出信号处于上升沿时,时钟信号开始计数,在I2C接口输出信号处于第N个上升沿时,时钟信号停止计数,检测并输出时钟信号开始至停止计数时间段内检测到的时钟总计数,其中所述N为不小于2的正整数,本领域技术人员既可以根据所述时钟总计数,I2C接口输出信号周期和N计算得到芯片的内部时钟频率。
其中所述I2C接口输出信号周期为已知值,所述N可以为固定值。
可见本申请上述实施例公开的芯片中的计数单元可以通过所属芯片的I2C接口,获取频率测试指令,在获取所述频率测试指令后,检测在I2C接口输出信号连续N个上升沿的时间段内,获取到的时钟信号的时钟总计数,本领域技术人员即可依据时钟总计数,I2C接口输出信号周期和N计算得到芯片的内部时钟频率,可见本申请提供的芯片可以通过芯片的原有功能接口I2C接口获取到用于计算时钟周期的时钟总计数,从而得出芯片的时钟周期,不必占用新的芯片引脚,从而提高了所述芯片引脚的利用效率。
当然,所述N可以是设置在所述内部计数芯片中的一个默认数值。
可以理解的是,所述N的大小可以根据用户需要自行设定,例如,所述N可以等于10。
可以理解的是,所述频率测试指令可以是预先预定好的、所述计数单元能够识别的读内部时钟计数指令编码。
图2为本申请另一实施例公开的一种芯片的结构图。
可以理解的是,当所述芯片在获取到所述频率测试指令之前还可能获取到用于判断所述芯片的好坏、判断芯片的设备地址是否正确的第一或第二START指令,所以参见图2,本申请上述实施例公开的芯片中还可以包括:
地址确认单元102,所述地址确认单元102,用于当获取到START指令后返回确认指令,以向目标对象表示其所发送的地址信息正确和所述芯片处于正常工作状态。
其中所述第一START指令包括:STARTbit+设备地址+写bit。
当然可以理解的是,本申请上述实施例中的所述上升沿只是表示的检测点在I2C接口输出信号上的位置,例如I2C接口输出信号真实的上升沿或真实的下降沿。
当然可以理解的是,所述芯片内部时钟频率=时钟总计数/(N*I2C接口输出信号周期T)。
当然可以理解的是,本申请中的提到的各种信号的传递都可以通过所述I2C接口获得。
图3为本申请提实施例公开的芯片的时钟频率测试方法的流程图。
对应于上述实施例中公开的芯片,本申请还提供了一种芯片时钟频率测试方法,参见图3,所述方法包括:
步骤S301:向目标芯片发送获取频率检测指令;
所述频率检测指令通过所述目标芯片的I2C接口发送至所述目标芯片,用于控制目标芯片在I2C接口输出信号处于上升沿时,时钟信号开始计数,在I2C接口输出信号处于第N个上升沿时,时钟信号停止计数,检测并输出时钟信号开始至停止计数时间段内检测到的时钟总计数,其中所述N为不小于2的正整数;
步骤S302:向所述目标芯片发送用于读取所述时钟总计数的读取指令;
向所述目标芯片发送读取指令后,读取所述目标芯片中的时钟总计数;
步骤S303:依据时钟总计数、I2C接口输出信号周期和N计算目标芯片内部时钟频率。
可见,本申请提供的所述芯片时钟频率测试方法通过目标芯片的I2C接口向目标芯片发送获取频率检测指令和读取指令,并根据读取指令读取到的时钟总计数和已知的I2C接口输出信号周期和N计算得到目标芯片内部时钟频率,可见本申请提供的方法中并不将所述芯片的内部时钟引出,并且其占用的是I2C接口,不必占用新的芯片引脚,从而提高了所述芯片引脚的利用效率。
图4为本申请另一实施例公开的种芯片的时钟频率测试方法的流程图。
可以理解的是,上述方法中,还可以包括,预先判断所述目标芯片的设备是否正确和所述目标芯片是否处于正常运行状态,所以在执行步骤S301之前还可以包括:
步骤S401:获取所述目标芯片的设备地址;
步骤S402:向目标芯片发送第一START指令;
包括:依据所述设备地址发送向目标芯片发送第一START指令;
步骤S403:判断是否获取到确认信号,如果是,继续执行;
步骤S404:向目标芯片发送频率检测指令;
步骤S405:向目标芯片发送读取指令:向所述目标芯片发送用于读取所述时钟总计数的读取指令读取计数数据;
步骤S406:计算目标芯片内部时钟频率;依据所述时钟总计数、I2C接口输出信号周期和N计算目标芯片内部时钟频率。
在获取到所述确认信号后,证明所述目标设备的地址正确,且所述目标设备处于正常工作状态,可以继续执行后续动作,当未获取到所述确认信号时,则表明目标芯片的设备地址错误或所述目标芯片处于故障状态,则停止执行后续动作。
图5为本申请提供的又一芯片时钟频率测试方法的流程图。
可以理解的是为了保证全部读取到所述计数时间和所述N,上述方法中在所述向目标芯片发送读取指令之后和计算目标芯片内部时钟频率之间,还可以包括:
步骤S501:获取所述目标芯片的设备地址;
步骤S502:向目标芯片发送第一START指令
包括:依据所述设备地址发送向目标芯片发送第一START指令;
步骤S503:判断是否获取到确认信号,如果是,继续执行;
步骤S504:向目标芯片发送频率检测指令;
步骤S505:向目标芯片发送读取指令:向所述目标芯片发送用于读取所述时钟总计数的读取指令读取计数数据;
步骤S506:读取所述时钟总计数;
步骤S507:判断是否获取完时钟总计数,如果是,执行步骤S508,否则执行步骤S509;
步骤S508:向目标芯片发送不确认信号,继续执行;
步骤S509:向所述目标芯片发送确认信号,执行步骤S510;
步骤S5010:计算芯片内部时钟频率。
可以理解的,为了方便所述目标芯片判断所述频率检测指令发送完毕,本申请上述方法中在向目标芯片发送频率检测指令和读取指令之间,还包括:
向所述目标芯片发送第一STOP指令。
可以理解的是上述方法中还可以包括判断是否能够读取目标芯片的计数时间和N,本申请上述方法中在向所述目标芯片发送第一STOP指令之后和向目标芯片发送读取指令之前,还可以包括:
依据设备地址向目标芯片发送第二START指令;判断是否获取到确认信号,如果是,继续执行。
可以理解的是所述为了方便所述目标芯片判断所述读取指令是否发送完毕,上述方法中向所述目标芯片发送不确认信号之后在计算目标芯片内部时钟频率之前,还包括:
向所述目标芯片发送第二STOP指令。
其中所述第一START指令可以包括STARTbit+设备地址+写bit;
其中“STARTbit+设备地址+写bit”表示以STARTbit开头以写bit结尾,中间设置有设备地址的指令串;
所述第二START指令可以包括STARTbit+设备地址+读bit;
其中“STARTbit+设备地址+度bit”表示以STARTbit开头以读bit结尾,中间设置有设备地址的指令串;
图6为本申请实施例公开的芯片时钟频率测试系统的结构图。
对应于上述芯片时钟频率测试方法,本申请还提供了一种芯片时钟频率测试系统,参见图6,所述系统包括:
所述指令发送单元2,和M个芯片时钟频率测试芯片3;
所述指令发送单元2,用于选取一个或多个芯片时钟频率测试芯片3作为目标芯片,依据目标芯片的设备地址向目标芯片发送频率检测指令,并依据由所述I2C接口获取到的时钟总计数计算目标芯片内部时钟频率;
所述目标芯片3通过I2C接口与指令发送单元相连,包括计数单元301,内部技术单元301用于当通过I2C接口获取到所述依据所述检测指令后,当I2C接口输出信号处于上升沿时,时钟信号开始计数,在I2C接口输出信号处于第N个上升沿时,时钟信号停止计数,检测并输出时钟信号开始至停止计数时间段内检测到的时钟总计数,其中所述N为不小于2的正整数。
可见本申请上述实施例公开的芯片时钟频率测试系统中的指令发送单元通过芯片的I2C接口向芯片发送频率检测指令,所述芯片在获取所述频率测试指令后,检测并输出I2C接口输出信号连续N个上升沿的时间段内,获取到的时钟信号的时钟总计数,本领域技术人员即可时钟总计数,I2C接口输出信号周期和N计算得到芯片的内部时钟频率,可见本申请提供的芯片可以通过芯片的原有功能接口I2C接口获取到用于计算时钟周期的时钟总计数,从而得出芯片的时钟周期,不必占用新的芯片引脚,从而提高了所述芯片引脚的利用效率。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。