首页 / 专利分类库 / 测时学 / 一种数字时钟自动校准方法及系统

一种数字时钟自动校准方法及系统

申请号 CN202311677462.2 申请日 2023-12-08 公开(公告)号 CN117389128B 公开(公告)日 2024-02-23
申请人 深圳市山海半导体科技有限公司; 发明人 张皓亮; 李明;
摘要
权利要求

1.一种数字时钟自动校准方法,其特征在于,所述方法包括:
S1、接收用户输入的需要调节的时钟调整值X1,获取一个ADC转换周期所需要的时钟周期个数Y1,设定调节精度为 ,其中,N为正整数,X1为整数,Y1为正整数;
S2、利用下述公式计算Z1和W1:
,
其中,Z1表示在所述一个ADC转换周期内需要插入的第一目标时钟个数,W1是余数,Z1和W1均为整数;
在Z1大于等于1的情况下,在所述一个ADC转换周期内均匀插入Z1个第一频率的时钟。
2.根据权利要求1所述的数字时钟自动校准方法,其特征在于,所述方法还包括:如果W1为0,则结束时钟校准流程,如果W1大于0,则继续执行步骤S3;或者,在Z1等于0且W1大于0的情况下,继续执行步骤S3;
S3、利用如下公式计算Z2和W2:
,
其中,Z2表示插入一个所述第一频率的时钟需要间隔的ADC转换周期个数,W2是余数,Z2和W2均为整数;
在Z2大于等于1的情况下,在Z2个所述ADC转换周期之后插入一个所述第一频率的时钟。
3.根据权利要求1所述的数字时钟自动校准方法,其特征在于,所述方法还包括:如果W2为0,则结束时钟校准流程,如果W2大于0,则继续执行步骤S4;或者,在Z2等于0且W2大于0的情况下,继续执行步骤S4;
S4、判断W2与X1的大小;
在W2大于等于X1的情况下,利用公式 计算Z31,其中Z31表示非整数个ADC转换周期对应的第二时钟周期数;
在W2小于X1的情况下,利用公式 计算Z32,其中Z32表示非整数个ADC转换周期对应的第三时钟周期数;
S5、在W2大于等于X1的情况下,利用公式
计算Z4,在W2小于X1的情况下,利用公式
计算Z4,其中Z4表示插入一个所述第一频率的时钟需要间隔的时
钟周期个数;在Z4个时钟周期后插入一个所述第一频率的时钟。
4.根据权利要求1所述的数字时钟自动校准方法,其特征在于,所述接收用户输入的需要调节的时钟调整值X1包括:
接收所述用户通过IO接口输入的需要调节的时钟调整值X1,其中所述IO接口包括并行接口、串行接口、直接数据传送接口。
5.根据权利要求4所述的数字时钟自动校准方法,其特征在于,所述第一频率为主时钟频率的2倍。
6.根据权利要求5所述的数字时钟自动校准方法,其特征在于,所述方法还包括:
S6、将校准后的时钟发送给滤波器,用于所述滤波器模块完成数据的采样和转换。
7.一种数字时钟自动校准系统,其特征在于,所述系统包括:用户接口通信模块,内部信号制模块,时钟调整校准模块,以及滤波器模块;所述系统用于执行权利要求1所述的数字时钟自动校准方法,包括:
所述用户接口通信模块,用于执行S1:接收用户输入的需要调节的时钟调整值X1,获取一个ADC转换周期所需要的时钟周期个数Y1,设定调节精度为 ,其中,N为正整数,X1为整数,Y1为正整数;所述时钟调整校准模块,用于执行S2,其中
S2:利用下述公式计算Z1和W1:
,其中,Z1表示在所述一个ADC转换周期内需要插入的第一目标时
钟个数,W1是余数,Z1和W1均为整数;
在Z1大于等于1的情况下,在所述一个ADC转换周期内均匀插入Z1个第一频率的时钟。
8.根据权利要求7所述的数字时钟自动校准系统,其特征在于,所述时钟调整校准模块,还用于执行如下步骤:如果W1为0,则结束时钟校准流程,如果W1大于0,则继续执行步骤S3;或者,在Z1等于0且W1大于0的情况下,继续执行步骤S3;
S3:利用如下公式计算Z2和W2:
,
其中,Z2表示插入一个所述第一频率的时钟需要间隔的ADC转换周期个数,W2是余数,Z2和W2均为整数;
在Z2大于等于1的情况下,在Z2个所述ADC转换周期之后插入一个所述第一频率的时钟。
9.根据权利要求8所述的数字时钟自动校准系统,其特征在于,所述时钟调整校准模块,还用于执行如下步骤:如果W2为0,则结束时钟校准流程,如果W2大于0,则继续执行步骤S4;或者,在Z2等于0且W2大于0的情况下,继续执行步骤S4;
S4:判断W2与X1的大小;
在W2大于等于X1的情况下,利用公式 计算Z31,其中Z31表示非整数个ADC转换周期对应的第二时钟周期数;
在W2小于X1的情况下,利用公式 计算Z32,其中Z32表示非整数个ADC转换周期对应的第三时钟周期数;
S5:在W2大于等于X1的情况下,利用公式
计算Z4,在W2小于X1的情况下,利用公式
计算Z4,其中Z4表示插入一个所述第一频率的时钟需要间隔的时
钟周期个数;在Z4个时钟周期后插入一个所述第一频率的时钟。
10.根据权利要求7所述的数字时钟自动校准系统,其特征在于,所述接收用户输入的需要调节的时钟调整值X1包括:
接收所述用户通过IO接口输入的需要调节的时钟调整值X1,其中所述IO接口包括并行接口、串行接口、直接数据传送接口。
11.根据权利要求10所述的数字时钟自动校准系统,其特征在于,所述第一频率为
16MHz。
12.根据权利要求11所述的数字时钟自动校准系统,其特征在于,所述方法还包括:
S6、将校准后的时钟发送给滤波器模块,用于所述滤波器模块完成数据的采样和转换。
13.一种电子设备,其特征在于,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1‑6中任意一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1‑6中任意一项所述的方法。

说明书全文

一种数字时钟自动校准方法及系统

技术领域

[0001] 本申请属于时钟校准技术领域,特别涉及一种数字时钟自动校准方法及系统。

背景技术

[0002] 在当今的互联网社会的大环境下,对数据的传输量,传输速率的需求和要求也日益增加。传统的数据传输方式为并行,可以实现数据的多路传输,但是同时也需要对时钟进行传输,此外类似码间干扰、信号偏移以及数据间的时钟偏移等现象都对并行远距离传输的效果产生影响。在此背景影响下,时钟的准确性就愈发重要,必须保证时钟的准确才能使各个器件的通信能够快速准确的进行。
[0003] 目前,数字时钟调整功能在模拟 数  字  转  换器  (Analog to Digital Converter, ADC)、 时 钟 数 据 恢 复 电 路 (Clock Data Recovery,CDR)和片上系统 (System On Chip,SOC)中均得到多方面的应用,在现有ADC等设计中,对时钟的调整大多使用硬件电路去实现;通过硬件设计的方法来对时钟进行调整的方法的复用性较差,且调节范围较小,灵活性也不够。
[0004] 针对上述问题,需要提出本申请的一种数字时钟自动校准方法及系统。发明内容
[0005] 为了解决所述现有技术的不足,本申请提供了一种数字时钟自动校准方法数字时钟自动校准方法及设备,解决现有技术中的通过硬件设计的方法来对时钟进行调整的方法的复用性较差,且调节范围较小,灵活性也不够的技术问题。
[0006] 本申请所要达到的技术效果通过以下方案实现:
[0007] 第一方面,本申请提供一种数字时钟自动校准方法,所述方法包括:
[0008] S1、接收用户输入的需要调节的时钟调整值X1,获取一个ADC转换周期所需要的时钟周期个数Y1,设定调节精度为 ,其中,N为正整数,X1为整数,Y1为正整数;S2、利用下述公式计算Z1和W1:
[0009] ,
[0010] 其中,Z1表示在所述一个ADC转换周期内需要插入的第一目标时钟个数,W1是余数,Z1和W1均为整数;
[0011] 在Z1大于等于1的情况下,在所述一个ADC转换周期内均匀插入Z1个第一频率的时钟。
[0012] 在一些实施例中,所述方法还包括:如果W1为0,则结束时钟校准流程,如果W1大于0,则继续执行步骤S3;或者,在Z1等于0且W1大于0的情况下,继续执行步骤S3;
[0013] S3、利用如下公式计算Z2和W2:
[0014] ,
[0015] 其中,Z2表示插入一个所述第一频率的时钟需要间隔的ADC转换周期个数,W2是余数,Z2和W2均为整数;
[0016] 在Z2大于等于1的情况下,在Z2个所述ADC转换周期之后插入一个所述第一频率的时钟。
[0017] 在一些实施例中,所述方法还包括:如果W2为0,则结束时钟校准流程,如果W2大于0,则继续执行步骤S4;或者,在Z2等于0且W2大于0的情况下,继续执行步骤S4;
[0018] S4、判断W2与X1的大小;
[0019] 在W2大于等于X1的情况下,利用公式 计算Z31,其中Z31表示非整数个ADC转换周期对应的第二时钟周期数;
[0020] 在W2小于X1的情况下,利用公式 计算Z32,其中Z32表示非整数个ADC转换周期对应的第三时钟周期数;
[0021] S5、在W2大于等于X1的情况下,利用公式
[0022] 计算Z4,在W2小于X1的情况下,利用公式
[0023] 计算Z4,其中Z4表示插入一个所述第一频率的时钟需要间隔的时钟周期个数;在Z4个时钟周期后插入一个所述第一频率的时钟。
[0024] 在一些实施例中,所述接收用户输入的需要调节的时钟调整值X1包括:
[0025] 接收所述用户通过IO接口输入的需要调节的时钟调整值X1,其中所述IO接口包括并行接口、串行接口、直接数据传送接口。
[0026] 在一些实施例中,所述第一频率为主时钟频率的2倍。
[0027] 在一些实施例中,所述方法还包括:
[0028] 在一些实施例中,用于所述滤波器完成数据的采样和转换。
[0029] 第二方面,本申请提供一种数字时钟自动校准系统,所述系统包括:用户接口通信模块,内部信号控制模块,时钟调整校准模块,以及滤波器模块;所述系统用于上述的数字时钟自动校准方法,包括:
[0030] 所述用户接口通信模块,用于执行S1:接收用户输入的需要调节的时钟调整值X1,获取一个ADC转换周期所需要的时钟周期个数Y1,设定调节精度为
[0031] ,其中,N为正整数,X1为整数,Y1为正整数;
[0032] 所述时钟调整校准模块,用于执行S2‑S5,其中
[0033] S2:利用下述公式计算Z1和W1: ,
[0034] 其中,Z1表示在所述一个ADC转换周期内需要插入的第一目标时钟个数,W1是余数,Z1和W1均为整数;
[0035] 在Z1大于等于1的情况下,在所述一个ADC转换周期内均匀插入Z1个第一频率的时钟。
[0036] 在一些实施例中,所述时钟调整校准模块,还用于执行如下步骤:如果W1为0,则结束时钟校准流程,如果W1大于0,则继续执行步骤S3;或者,在Z1等于0且W1大于0的情况下,继续执行步骤S3;
[0037] S3:利用如下公式计算Z2和W2:
[0038] ,其中,Z2表示插入一个所述第一频率的时钟需要间隔的ADC转换周期个数,W2是余数,Z2和W2均为整数;
[0039] 在Z2大于等于1的情况下,在Z2个所述ADC转换周期之后插入一个所述第一频率的时钟。
[0040] 在一些实施例中,所述时钟调整校准模块,还用于执行如下步骤:如果W2为0,则结束时钟校准流程,如果W2大于0,则继续执行步骤S4;或者,在Z2等于0且W2大于0的情况下,继续执行步骤S4;
[0041] S4:判断W2与X1的大小;
[0042] 在W2大于等于X1的情况下,利用公式 计算Z31,其中Z31表示非整数个ADC转换周期对应的第二时钟周期数;
[0043] 在W2小于X1的情况下,利用公式 计算Z32,其中Z32表示非整数个ADC转换周期对应的第三时钟周期数;
[0044] S5:在W2大于等于X1的情况下,利用公式 计算Z4,在W2小于X1的情况下,利用公式
[0045] 计算Z4,其中Z4表示插入一个所述第一频率的时钟需要间隔的时钟周期个数;在Z4个时钟周期后插入一个所述第一频率的时钟。
[0046] 在一些实施例中,所述接收用户输入的需要调节的时钟调整值X1包括:
[0047] 接收所述用户通过IO接口输入的需要调节的时钟调整值X1,其中所述IO接口包括并行接口、串行接口、直接数据传送接口。
[0048] 在一些实施例中,所述第一频率为主时钟频率的2倍。
[0049] 在一些实施例中,所述方法还包括:
[0050] S6、将校准后的时钟发送给滤波器模块,用于所述滤波器模块完成数据的采样和转换。
[0051] 第三方面,本申请提供一种电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述任意一项所述的方法。
[0052] 第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一项所述的方法。
[0053] 通过本申请实施例提供的数字时钟自动校准方法及系统,采用该数字时钟自动校准方法的设计来实现时钟调节,不仅能够节省电路面积,对时钟的调节也更加灵活,范围更广,精度更高,而且复用性也较好。附图说明
[0054] 为了更清楚地说明本申请实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0055] 图1为本申请一实施例中的数字时钟自动校准方法的示意图;
[0056] 图2为本申请一实施例中的数字时钟自动校准系统的示意图;
[0057] 图3为本申请另一实施例中的数字时钟自动校准方法的示意图;
[0058] 图4为本申请一实施例中的电子设备的示意框图

具体实施方式

[0059] 为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0060] 需要说明的是,除非另外定义,本申请一个或多个实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0061] 本申请的数字时钟自动校准方法包括一个接收和保存调整量的接口,用于用接收户对时钟的调整设置。本申请提供控制调整算法运行的控制逻辑,以及一个根据设定实现时钟调整的算法。该设计不仅能整数倍的调整时钟的频率,还可以通过参数去实现微调。
[0062] 对于使用数字设计时钟校准功能的设计来说,设计所需要的逻辑资源总数也是个不容忽视的问题,如何在使用最少逻辑资源的情况下,设计出调节范围广,精度高的校准模块是本设计的重点。
[0063] 在现有ADC等设计中,对时钟的调整大多使用硬件电路去实现。但通过硬件设计的方法复用性较差,且调节范围较小,灵活性也不够。而通过本申请的数字设计来实现时钟调节,不仅能够节省电路面积,对时钟的调节也更加灵活,范围更广,精度更高,而且复用性也极好。
[0064] 下面结合附图,详细说明本申请的各种非限制性实施方式。
[0065] 图1为本申请一实施例中的数字时钟自动校准方法,所述方法包括:
[0066] S1、接收用户输入的需要调节的时钟调整值X1,获取一个ADC转换周期所需要的时钟周期个数Y1,设定调节精度为 ,其中, N为正整数,X1为整数,Y1为正整数;S2、利用下述公式计算Z1和W1:
[0067] 。
[0068] 其中,Z1表示在所述一个ADC转换周期内需要插入的第一目标时钟个数,W1是余数,Z1和W1均为整数;
[0069] 在Z1大于等于1的情况下,在所述一个ADC转换周期内均匀插入Z1个第一频率的时钟。
[0070] 在一些实施例中,所述方法还包括:如果W1为0,则结束时钟校准流程,如果W1大于0,则继续执行步骤S3;或者,在Z1等于0且W1大于0的情况下,继续执行步骤S3;
[0071] S3、利用如下公式计算Z2和W2:
[0072] ,其中,Z2表示插入一个所述第一频率的时钟需要间隔的ADC转换周期个数,W2是余数,Z2和W2均为整数;
[0073] 在Z2大于等于1的情况下,在Z2个所述ADC转换周期之后插入一个所述第一频率的时钟。
[0074] 在一些实施例中,所述方法还包括:如果W2为0,则结束时钟校准流程,如果W2大于0,则继续执行步骤S4;或者,在Z2等于0且W2大于0的情况下,继续执行步骤S4;
[0075] S4、判断W2与X1的大小;
[0076] 在W2大于等于X1的情况下,利用向下取整公式 计算Z31,其中Z31表示非整数个ADC转换周期对应的第二时钟周期数;
[0077] 在W2小于X1的情况下,利用公式 计算Z32,其中Z32表示非整数个ADC转换周期对应的第三时钟周期数;
[0078] S5、在W2大于等于X1的情况下,利用公式 计算Z4,在W2小于X1的情况下,利用公式
[0079] 计算Z4,其中Z4表示插入一个所述第一频率的时钟需要间隔的时钟周期个数;在Z4个时钟周期后插入一个所述第一频率的时钟。
[0080] 在一些实施例中,在Z2个所述ADC转换周期之后插入一个所述第一频率的时钟;如果第一频率为主时钟频率的2倍,例如也可以是插入一个第一频率的时钟之后,继续插入一个第一频率的时钟,即第一频率为主时钟频率的2倍的情况下,在Z2个所述ADC转换周期之后插入两个所述第一频率的时钟。
[0081] 在一些实施例中,在Z4个时钟周期后插入一个所述第一频率的时钟;如果第一频率为主时钟频率的2倍,例如也可以是插入一个第一频率的时钟之后,继续插入一个第一频率的时钟,即第一频率为主时钟频率的2倍的情况下,在在Z4个时钟周期后插入两个所述第一频率的时钟;也就是说插入的时钟个数和插入时钟与主时钟的频率存在对应关系。
[0082] 在一些实施例中,所述接收用户输入的需要调节的时钟调整值X1包括:
[0083] 接收所述用户通过IO接口输入的需要调节的时钟调整值X1,其中所述IO接口包括并行接口、串行接口、直接数据传送接口。
[0084] 在一些实施例中,所述第一频率为主时钟频率的2倍,例如主时钟频率为8MHz,第一时钟频率为16MHz。
[0085] 在一些实施例中,所述方法还包括:
[0086] 在一些实施例中,用于所述滤波器模块完成数据的采样和转换。
[0087] 通过本申请提供的数字时钟自动校准方法及系统,采用该数字时钟自动校准方法的设计来实现时钟调节,不仅能够节省电路面积,对时钟的调节也更加灵活,范围更广,精度更高,而且复用性也较好。
[0088] 本申请提供一种数字时钟自动校准系统,所述系统包括:用户接口通信模块,内部信号控制模块,时钟调整校准模块,以及滤波器模块;
[0089] 示例性地,本申请的数字时钟自动校准系统,包括一个接收和保存调整量的用户接口通信模块,用于用户对时钟的调整和设置。
[0090] 本申请提供控制调整算法运行的控制逻辑,以及一个根据设定实现时钟调整的算法;该设计不仅能整数倍的调整时钟的频率,还可以通过参数去实现微调。
[0091] 图2是本申请的数字时钟自动校准系统的示意图,如图所示,该系统包括:以一个输入/输出速率可调ADC芯片的数字滤波器结构为例,该设计共有用户接口通信模块,内部信号控制模块,时钟调整校准模块(包括时钟输入),以及输出即调整后的时钟,以及滤波器模块(比如数字滤波器,包括数字输入和数字输出)。用户通过IO接口去设置时钟调整模块的范围和精度,以及滤波器的各项工作参数。调整时钟到需要的目标频率和相位后传送给滤波器模块,配合滤波器模块完成数据的采样和转换。时钟调整校准模块是本申请的核心模块,下面将详细对数字时钟自动校准方法,即时钟调整校准模块进行说明。
[0092] 该数字时钟自动校准方法主要是通过在一段时间内,在原有的时钟内插入一个频率改变的时钟(频率增大或者减小)来调节时钟个数,从而调节时钟频率。
[0093] 在整个数字时钟自动校准方法的计算过程中,会多次用到乘法器和除法器。在设计中采用过了分时复用的方式,使整个设计中,仅使用一组乘法器和除法器就能够满足需求,即每一次乘法/除法运算使用的都是同一组乘法器/除法器。
[0094] 下面以一个ADC芯片系统为例,参照图3的流程图,进行示例说明:
[0095] 需要说明的是图中的各个参数的含义如下:
[0096] X1表示需要调整时钟值,精度可以表示为 ;Y1表示一个ADC转换周期所需要的时钟周期个数;X1为整数,Y1为正整数;
[0097] Z1表示在所述一个ADC转换周期内需要插入的第一目标时钟个数,W1是余数,Z1和W1均为整数;
[0098] Z2表示插入一个所述第一频率的时钟需要间隔的ADC转换周期个数,W2是余数,Z2和W2均为整数;
[0099] Z31表示非整数个ADC转换周期对应的第二时钟周期数;
[0100] Z32表示非整数个ADC转换周期对应的第三时钟周期数;
[0101] Z4表示插入一个所述第一频率的时钟需要间隔的时钟周期个数。
[0102] 1、首先根据用户需要调节的值,计算出每个ADC转换周期内需要调节的时钟周期个数。如果调节个数大于等于1则在ADC转换周期内均匀的插入改变频率的时钟。
[0103] 2、判断①中除法是否能够整除。如果可以整除,则算法直接结束,调整完成;否则进行下一步计算。
[0104] 3、如果需要调节的时钟偏移小于1,ADC转换周期不足以调节一个时钟周期,或者①中需要调节的时钟数不是整数。则重新按照需要调节的时钟偏移值W1来计算需要多少个ADC转换周期调节一个时钟,算出调节一个时钟需要间隔的总的ADC转换周期数。然后等到ADC转换周期计数器计数到要求的个数时,插入一个改变频率的时钟。
[0105] 4、判断③中的计算是否能够整除,如果可以的话,则算法结束,调整完成;否则继续执行后续步骤。
[0106] 5、用③中剩余的余数W2和时钟的调节值X1做对比,根据不同的对比结果来选择计算方式。
[0107] 6、据⑤中的判断的结果去选择不同的计算方式⑥,从而得到非整数个ADC转换周期的时钟个数。
[0108] 例如,在W2大于等于X1的情况下,W2/X1=Z31,该情况下Z3=Z31,进一步利用公式=Z4=Z4计算得到Z4(即⑦);在W2小于X1的情况下, X1/W2=Z32,该情况下Z3=Z32,进一步利用公式=Z4=Z4计算得到Z4(即⑦)。
[0109] 7、根据上一步的ADC转换周期的时钟个数进行时钟周期的调整,得到系统需要运行总的时钟个数。
[0110] 下面通过一个具体的示例1和示例2做进一步说明。
[0111] 需要说明的是本申请中的z1和Z1、Y1和y1等表示相同的含义,不区分大小写。
[0112] 示例1:
[0113] 1、在一个主时钟频率是8MHz的ADC系统中,数字滤波器的输出数据率为250Hz,转换一个数据需要的时间是16384个时钟周期。设置x1值为1340 ,N为27(将输出的数据率正向调节1340*(7.45)ppb),其中ppb可以表示精度单位,表示10亿分之1,当N为27的时候,上述公式中的1/(2^27)的结果就是0.00000000745,也就是7.45ppb,此处为示例性的,本领域技术人员可以根据实际的情况,来选择具体的精度以及精度算法,不做限制;y1的值为16384,执行算法步骤①计算得到结果为z1为0,w1为21954560。
[0114] 2、执行算法步骤③得到z2为6,w2为2490368;得到z2后,需要每6转换周期调节一个时钟,示例性地,具体调节的值,可以是当系统达到6次循环(即过了6个转换周期)后,在最后一个时钟周期的时候,将时钟变为一个clk*2=16MHz(clk表示主时钟的频率8MHz)的时钟来达到目的。
[0115] 3、执行算法步骤⑥得到z31为1858。
[0116] 4、执行算法步骤⑦得到z4为100162。即系统每执行100162时钟周期时,插入两个16MHz频率的时钟进行调节,调节时钟的频率为主时钟频率的2倍,因为主时钟是8MHz,所以这个调节时钟的频率就是16MHz,这里插入的数量为两个,是因为插入的时钟频率是主时钟的2倍,所以插入时钟的周期刚好是主时钟的二分之一,所以需要2个16MHz频率的时钟周期才能替代原本的一个8MHz的主时钟周期。
[0117] 5、按照以上的步骤执行下来即可完成250Hz数据率调节1340*(7.45)ppb的目标,新的数据率为250*(1+1340*(7.45)/1000000000)Hz,因为按照前面的计算结果,对时钟的调节为1340*(7.45)ppb,也就是说,新的时钟频为8*(1+1340*(7.45)ppb)MHz。而滤波器原本的数据率为250Hz,所以在使用调节后时钟得到新的数据率为250*(1+1340*(7.45)/1000000000)Hz。
[0118] 示例2:
[0119] 假设ADC系统中的主时钟频率是8MHz,数字滤波器的输出数据率为250Hz。
[0120] 1、设定X1=24120,Y1=16384,N=27,则根据步骤①计算得到:
[0121] X1*Y1/2N=24120*16384/227=395182080/134217728=2(Z1)……126746624(W1);在一个ADC数据转换周期内插入2个(即Z1个)目标时钟,该目标时钟的频率是主时钟的频率的2倍(即16MHz)。
[0122] 2、根据步骤②判断W1大于0。
[0123] 3、因此,根据步骤③可得到:
[0124] (2^N)/W1=134217728/126746624=1(Z2)……7471104(W2);需要每1个(Z2个)转换周期调节一个时钟,示例性地,具体调节的值,可以是当系统达到1次循环(即过了1个转换周期)的最后一个时钟周期,插入两个频率是主时钟频率的2倍的时钟。
[0125] 4、根据步骤④和步骤⑤依次判断W2大于0且大于24120(X1)。
[0126] 5、因此执行步骤⑥可得到:W2/X1=7471104/24120=310(Z31)。
[0127] 6、执行步骤⑦得到:Z2*Y1+Z3=1*16384+310=16694(Z4),其中Z3表示Z31或者Z32,即系统每执行16694时钟周期时,插入若干个时钟进行调节,该若干个时钟可以根据是本领域技术人员根据主时钟频率计算获得的;
[0128] 示例性地, X1可以为正整数,也可以为负整数。
[0129] 在一些实施例中,如果X1为负整数,则将X1的绝对值带入各个公式中进行计算,在所有的需要插入时钟的步骤中,将插入时钟的频率调整为小于主时钟频率,例如,如果X1为负整数,主时钟频率为8MHz则插入的时钟频率为4MHz。
[0130] 在一些实施例中,当X1为正整数时,调节后的时钟频率变大;当X1为负整数时,调节后的时钟频率变小。例如,在X1为正整数时,插入的时钟频率可以为主时钟频率的2倍,这时调整的时钟频率时比主时钟频率大;在X1为负整数时,插入的时钟频率可以为主时钟频率的1/2,这时调整后的时钟频率比主时钟频率小。
[0131] 具体地,如果X1为负整数则在按照上述方式进行时钟调节时,调整后的时钟频率(插入的时钟频率)比主时钟频率小,具体的调整后的时钟频率可以是本领域技术人员根据实际的情况进行确定,比如X1为负整数,主时钟频率是8MHz,则插入的时钟频率是4MHz。
[0132] 示例性地,按照上述计算的结果可知当系统时钟计数到16694(Z4)‑1时,改变输出时钟为系统时钟X2=8*2=16MHz两个周期,如此便可得到新的时钟频率为8*(1+24120*(7.45)ppb)MHz(与示例1关于ppb的解释相同)。新的时钟用于滤波器便可得到数据率为250*(1+24120*(7.45)/1000000000)Hz。
[0133] 通过本申请的数字设计来实现时钟调节,不仅能够节省电路面积,对时钟的调节也更加灵活,范围更广,精度更高,而且复用性也极好。
[0134] 在一些实施例中,所述系统用于上述的数字时钟自动校准方法,包括:
[0135] 所述数字时钟自动校准系统用户接口通信模块,用于执行S1:接收用户输入的需要调节的时钟调整值X1,获取一个ADC转换周期所需要的时钟周期个数Y1,设定调节精度为,其中,N为正整数,X1为整数,Y1为正整数;
[0136] 所述时钟调整校准模块,用于执行S2‑S5,其中
[0137] S2:利用下述公式计算Z1和W1: ,其中,Z1表示在所述一个ADC转换周期内需要插入的第一目标时钟个数,W1是余数,Z1和W1均为整数;
[0138] 在Z1大于等于1的情况下,在所述一个ADC转换周期内均匀插入Z1个第一频率的时钟。
[0139] 在一些实施例中,所述时钟调整校准模块,还用于执行如下步骤:如果W1为0,则结束时钟校准流程,如果W1大于0,则继续执行步骤S3;或者,在Z1等于0且W1大于0的情况下,继续执行步骤S3;
[0140] S3:利用如下公式计算Z2和W2:
[0141] ,
[0142] 其中,Z2表示插入一个所述第一频率的时钟需要间隔的ADC转换周期个数,W2是余数,Z2和W2均为整数;
[0143] 在Z2大于等于1的情况下,在Z2个所述ADC转换周期之后插入一个所述第一频率的时钟。
[0144] 在一些实施例中,所述时钟调整校准模块,还用于执行如下步骤:如果W2为0,则结束时钟校准流程,如果W2大于0,则继续执行步骤S4;或者,在Z2等于0且W2大于0的情况下,继续执行步骤S4;
[0145] S4:判断W2与X1的大小;
[0146] 在W2大于等于X1的情况下,利用公式
[0147] 计算Z31,其中Z31表示非整数个ADC转换周期对应的第二时钟周期数;
[0148] 在W2小于X1的情况下,利用公式 计算Z32,其中Z32表示非整数个ADC转换周期对应的第三时钟周期数;
[0149] S5:在W2大于等于X1的情况下,利用公式 计算Z4,在W2小于X1的情况下,利用公式
[0150] 计算Z4,其中Z4表示插入一个所述第一频率的时钟需要间隔的时钟周期个数;在Z4个时钟周期后插入一个所述第一频率的时钟。
[0151] 在一些实施例中,所述接收用户输入的需要调节的时钟调整值X1包括:
[0152] 接收所述用户通过IO接口输入的需要调节的时钟调整值X1,其中所述IO接口包括并行接口、串行接口、直接数据传送接口。
[0153] 在一些实施例中,所述第一频率为主时钟频率的2倍。
[0154] 在一些实施例中,所述方法还包括:
[0155] S6、将校准后的时钟发送给滤波器模块,用于所述滤波器模块完成数据的采样和转换。
[0156] 通过本申请实施例提供的数字时钟自动校准方法及系统,采用该数字时钟自动校准方法的设计来实现时钟调节,不仅能够节省电路面积,对时钟的调节也更加灵活,范围更广,精度更高,而且复用性也较好。
[0157] 需要说明的是,本申请一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
[0158] 需要说明的是,上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0159] 基于同一发明构思,与上述任意实施例方法相对应的,本申请还公开一种电子设备;
[0160] 具体地,图4示出了本实施例所提供的一种数字时钟自动校准方法的电子设备的硬件结构示意图,该设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线 450。其中,处理器410、存储器420、输入/输出接口430和通信接口440通过总线
450实现彼此之间在设备内部的通信连接。
[0161] 处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案。
[0162] 存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作系统和其他应用程序,在通过软件或者固件来实现本申请实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
[0163] 输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘鼠标触摸屏、麦克、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0164] 通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如,USB、网线等)实现通信,也可以通过无线方式 (例如,移动网络、WIFI、蓝牙等)实现通信。
[0165] 总线450包括一通路,在设备的各个组件(例如,处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
[0166] 需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线450,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0167] 上述实施例的电子设备用于实现前述任一实施例中相应的数字时钟自动校准方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0168] 基于同一发明构思,与上述任意实施例方法相对应的,本申请一个或多个实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的数字时钟自动校准方法。
[0169] 本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0170] 上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的数字时钟自动校准方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0171] 所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0172] 另外,为简化说明和讨论,并且为了不会使本申请一个或多个实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以避免使本申请一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。
[0173] 尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
[0174] 本申请一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
QQ群二维码
意见反馈