CN112558458B - 蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备 - Google Patents
蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备 Download PDFInfo
- Publication number
- CN112558458B CN112558458B CN202011492497.5A CN202011492497A CN112558458B CN 112558458 B CN112558458 B CN 112558458B CN 202011492497 A CN202011492497 A CN 202011492497A CN 112558458 B CN112558458 B CN 112558458B
- Authority
- CN
- China
- Prior art keywords
- value
- clock
- target
- bluetooth clock
- bluetooth
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G04—HOROLOGY
- G04R—RADIO-CONTROLLED TIME-PIECES
- G04R20/00—Setting the time according to the time information carried or implied by the radio signal
- G04R20/26—Setting the time according to the time information carried or implied by the radio signal the radio signal being a near-field communication signal
Abstract
本公开涉及一种蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备,能够在任意时刻简单、快速地得到任意经典蓝牙链路的当前蓝牙时钟。包括:启动模块,用于在接收到蓝牙时钟计算指令时,启动所述蓝牙时钟计算电路;采集模块,用于采集本地蓝牙时钟的第一时钟值和第一微秒计数器的第一计数值;第一计算模块,用于确定在目标蓝牙时钟的第二微秒计数器处于0时所述第一微秒计数器对应的第二计数值;第二计算模块,用于根据所述第一计数值,确定所述目标蓝牙时钟的目标计数值;第三计算模块,用于根据所述第一时钟值、所述第二计数值、所述目标计数值,确定所述目标蓝牙时钟的目标时钟值;输出模块,用于输出所述目标计数值和所述目标时钟值。
Description
技术领域
本公开涉及蓝牙领域,具体地,涉及一种蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备。
背景技术
目前,若要获得蓝牙时钟,一般通过硬件读取和软件计算两种方式。在硬件读取方式中,通过读取硬件寄存器获得蓝牙时钟,但是,硬件读取方式中要求需要访问的蓝牙链路需要和当前基带硬件正在工作的是同一个链路,因此这种方式存在较大限制。在软件计算方式中,虽然能够实现蓝牙时钟的获取,但是由于软件无法同时读取本地蓝牙时钟和本地微秒计数器,存在读取的先后顺序,因此需要考虑值跳变的问题,计算处理过程较为复杂,耗费时间长。
发明内容
本公开的目的是提供一种蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备,便于获取任意蓝牙链路的蓝牙时钟。
为了实现上述目的,根据本公开的第一方面,提供一种蓝牙时钟计算电路,包括:
启动模块,用于在接收到蓝牙时钟计算指令时,启动所述蓝牙时钟计算电路;
采集模块,用于在所述蓝牙时钟计算电路启动的情况下,采集本地蓝牙时钟的第一时钟值和所述本地蓝牙时钟的第一微秒计数器的第一计数值;
第一计算模块,用于确定在目标蓝牙时钟的第二微秒计数器处于0时所述第一微秒计数器对应的第二计数值;
第二计算模块,用于根据所述第一计数值,确定所述目标蓝牙时钟的目标计数值;
第三计算模块,用于根据所述第一时钟值、所述第二计数值、所述目标计数值,确定所述目标蓝牙时钟的目标时钟值;
输出模块,用于向所述蓝牙时钟计算指令的发送方输出所述目标计数值和所述目标时钟值。
可选地,所述蓝牙时钟计算指令携带有第一时间差信息,所述第一时间差信息用于表示所述第二微秒计数器处于0微秒时与所述第一微秒计数器处于预设微秒值时所经历的时间差,所述预设微秒值为所述第一微秒计数器计数范围中点对应的值;
所述第一计算模块包括:
第一减法器,用于计算第一预设数值减去所述第一时间差信息所指示的时间差得到的第一差值;
第一进位处理子模块,用于利用所述第一差值与第二预设数值做取余运算,获得所述第二计数值。
可选地,所述蓝牙时钟计算指令携带有第一时间差信息,所述第一时间差信息用于表示所述第二微秒计数器处于0微秒时与所述第一微秒计数器处于预设微秒值时所经历的时间差,所述预设微秒值为所述第一微秒计数器计数范围中点对应的值;
所述第二计算模块包括:
第一加法器,用于计算第三预设数值、所述第一时间差信息所指示的时间差和所述第一计数值三者的第一和值;
第二进位处理子模块,用于利用所述第一和值与第四预设数值做取余运算,获得所述目标计数值。
可选地,蓝牙时钟的时钟值通过预设数量的比特位表示,并且,所述预设数量的比特位中最低的N个比特位为低比特位,所述预设数量的比特位中除低比特位之外的其他比特位为高比特位,其中,N为正整数;
所述第三计算模块包括:
低比特位时钟值计算子模块,用于根据所述目标计数值确定对应于所述目标蓝牙时钟的低比特位的第一值;
高比特位时钟值计算子模块,用于根据所述第一时钟值和所述第二计数值确定对应于所述目标蓝牙时钟的高比特位的第二值;
目标时钟值确定子模块,用于根据所述第一值和所述第二值,确定所述目标时钟值。
可选地,所述低比特位时钟值计算子模块包括:
范围判断器,用于根据预先设置的多个数值区间,判断所述目标计数值所处的数值区间,作为目标数值区间;
第一确定子模块,用于根据预先设置的多个数值区间与多种比特值之间的对应关系,确定所述目标数值区间所对应的比特值,作为所述第一值。
可选地,所述蓝牙时钟计算指令携带有第二时间差信息,所述第二时间差信息用于表示所述第二微秒计数器处于0微秒的时刻,所述目标蓝牙时钟对应的时钟值与本地蓝牙时钟在该时刻的时钟值二者之间的时间差;
所述高比特位时钟值计算子模块包括:
比较器,用于比较所述第一计数值与所述第二计数值的大小,并根据比较结果获得输出值,其中,若所述第一计数值大于或等于所述第二计数值,所述输出值为0,若所述第一计数值小于所述第二计数值,所述输出值为1;
第二减法器,用于计算所述第一计数值中对应于高比特位的比特值与所述输出值的差值,作为第二差值;
第二加法器,用于计算所述第二差值与所述第二时间差信息所指示的时间差对应于高比特位的比特值的第二和值,并将所述第二和值作为所述第二值。
可选地,所述蓝牙时钟计算电路还包括:
关闭模块,用于在所述蓝牙时钟计算指令的发送方从所述输出模块读取所述目标计数值和所述目标时钟值后,关闭所述蓝牙时钟计算电路。
根据本公开的第二方面,提供一种蓝牙时钟计算方法,应用于蓝牙时钟计算电路,所述蓝牙时钟计算电路包括启动模块、采集模块、第一计算模块、第二计算模块、第三计算模块和输出模块,所述方法包括:
在接收到蓝牙时钟计算指令时,采集本地蓝牙时钟的第一时钟值和所述本地蓝牙时钟的第一微秒计数器的第一计数值;
确定在目标蓝牙时钟的第二微秒计数器处于0时所述第一微秒计数器对应的第二计数值;
根据所述第一计数值,确定所述目标蓝牙时钟的目标计数值;
根据所述第一时钟值、所述第二计数值、所述目标计数值,确定所述目标蓝牙时钟的目标时钟值;
向所述蓝牙时钟计算指令的发送方输出所述目标计数值和所述目标时钟值。
可选地,所述蓝牙时钟计算指令携带有第一时间差信息,所述第一时间差信息用于表示所述第二微秒计数器处于0微秒时与所述第一微秒计数器处于预设微秒值时所经历的时间差,所述预设微秒值为所述第一微秒计数器计数范围中点对应的值;
所述确定在目标蓝牙时钟的第二微秒计数器处于0时所述第一微秒计数器对应的第二计数值,包括:
计算第一预设数值减去所述第一时间差信息所指示的时间差得到的第一差值,并利用所述第一差值与第二预设数值做取余运算,获得所述第二计数值。
可选地,所述蓝牙时钟计算指令携带有第一时间差信息,所述第一时间差信息用于表示所述第二微秒计数器处于0微秒时与所述第一微秒计数器处于预设微秒值时所经历的时间差,所述预设微秒值为所述第一微秒计数器计数范围中点对应的值;
所述根据所述第一计数值,确定所述目标蓝牙时钟的目标计数值,包括:
计算第三预设数值、所述第一时间差信息所指示的时间差和所述第一计数值三者的第一和值,并利用所述第一和值与第四预设数值做取余运算,获得所述目标计数值。
可选地,蓝牙时钟的时钟值通过预设数量的比特位表示,并且,所述预设数量的比特位中最低的N个比特位为低比特位,所述预设数量的比特位中除低比特位之外的其他比特位为高比特位,其中,N为正整数;
所述根据所述第一时钟值、所述第二计数值、所述目标计数值,确定所述目标蓝牙时钟的目标时钟值,包括:
根据所述目标计数值确定对应于所述目标蓝牙时钟的低比特位的第一值;
根据所述第一时钟值和所述第二计数值确定对应于所述目标蓝牙时钟的高比特位的第二值;
根据所述第一值和所述第二值,确定所述目标时钟值。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第二方面所述方法的步骤。
根据本公开的第四方面,提供一种电子设备,包括本公开第一方面所述的蓝牙时钟计算电路。
通过上述技术方案,提供一种蓝牙时钟计算电路,包括启动模块、采集模块、第一计算模块、第二计算模块、第三计算模块和输出模块。其中,启动模块用于在接收到蓝牙时钟计算指令时,启动蓝牙时钟计算电路;采集模块用于在蓝牙时钟计算电路启动的情况下,采集本地蓝牙时钟的第一时钟值和本地蓝牙时钟的第一微秒计数器的第一计数值;第一计算模块用于确定在目标蓝牙时钟的第二微秒计数器处于0时第一微秒计数器对应的第二计数值;第二计算模块用于根据第一计数值,确定目标蓝牙时钟的目标计数值;第三计算模块用于根据第一时钟值、第二计数值、目标计数值,确定目标蓝牙时钟的目标时钟值;输出模块用于向蓝牙时钟计算指令的发送方输出目标计数值和目标时钟值。这样,通过硬件实现的蓝牙时钟计算电路,能够获取到任意时刻、任意蓝牙链路的当前蓝牙时钟,计算简单且迅速。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据本公开的一种实施方式提供的蓝牙时钟计算电路的结构示意图;
图2是根据本公开的一种实施方式提供的第一计算模块的结构示意图;
图3是根据本公开的一种实施方式提供的第二计算模块的结构示意图;
图4是根据本公开的一种实施方式提供的第三计算模块的结构示意图;
图5是根据本公开的一种实施方式提供的高比特位时钟值计算子模块的结构示意图;
图6是根据本公开的一种实施方式提供的蓝牙时钟计算方法的流程图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
如背景技术所述,目前一般通过硬件读取和软件计算两种方式获得蓝牙时钟。
在硬件读取方式中,通过读取硬件寄存器BT_CLK(BT clock,蓝牙时钟)的值,该寄存器记录的是当前经典蓝牙链路的蓝牙时钟,所以它要求需要访问的经典蓝牙链路需要和当前基带硬件正在工作的是同一个链路,否则无法使用。这样,就导致无法在基带硬件工作在经典蓝牙链路A的时候去获取经典蓝牙链路B的蓝牙时钟,因此,这种方式虽然简单,却有限制。并且,BT_CLK的时钟精度是321.5微秒,无法得到精度为1微秒的蓝牙时钟。
在软件计算方式中,软件需要先读取硬件寄存器NATIVE_BT_CLK(本地蓝牙时钟),获取当前本地蓝牙时钟,精度是312.5微秒,范围是0~0xfffffff,再读取硬件寄存器NATIVE_BITCNT(本地微秒计数器的计数值),获取当前本地蓝牙时钟微秒计数器的值,精度是1微秒,范围是0~1249。当NATIVE_BITCNT计数到312,625,937,1249时,NATIVE_BT_CLK的bit[1:0]产生跳变,分别对应b‘01’(表示二进制数“01”,其他同理)、b‘10’、b‘11’、b‘00’。当NATIVE_BT_CLK的bit[1:0]从b‘11’跳变为b‘00’时,NATIVE_BT_CLK的bit[27:2]加1。其中,蓝牙时钟可以用28个bit来表示(相当于28bit的计数器),bit[i:j]表示从第j位到第i位,因此,bit[1:0]就表示第0个bit位(最低位)到第1个bit位(次低位),bit[27:2]则表示第2个bit位到第27个bit位。由于软件在读取NATIVE_BT_CLK和NATIVE_BITCNT的时候有先后顺序,无法像硬件一样可以同时访问,所以需要考虑软件读取NATIVE_BITCNT时,NATIVE_BT_CLK的值发生跳变问题。例如,当判断到NATIVE_BITCNT的值小于312时,就怀疑可能NATIVE_BT_CLK的bit[27:2]已经发生变化,需要再重新读取NATIVE_BT_CLK和NATIVE_BITCNT的值。
另外,软件在读取NATIVE_BT_CLK时还要考虑抖动问题,需要多次获取进行去抖处理。最后再利用蓝牙时钟计算公式,算出对应经典蓝牙链路的当前蓝牙时钟。以及,采用软件方式计算蓝牙时钟,还会受到CPU频率的影响。当CPU频率越高时计算的时间越短。反之,则计算的时间越长。
因此,软件计算的方式需要复杂的数据处理,耗费时间长。
为了解决上述问题,本公开提供一种蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备,能够在任意时刻简单、快速地得到任意经典蓝牙链路的当前蓝牙时钟。
图1是根据本公开的一种实施方式提供的蓝牙时钟计算电路的结构示意图。如图1所示,该蓝牙时钟计算电路10可以包括:
启动模块11,用于在接收到蓝牙时钟计算指令时,启动蓝牙时钟计算电路;
采集模块12,用于在蓝牙时钟计算电路启动的情况下,采集本地蓝牙时钟的第一时钟值和本地蓝牙时钟的第一微秒计数器的第一计数值;
第一计算模块13,用于确定在目标蓝牙时钟的第二微秒计数器处于0时第一微秒计数器对应的第二计数值;
第二计算模块14,用于根据第一计数值,确定目标蓝牙时钟的目标计数值;
第三计算模块15,用于根据第一时钟值、第二计数值、目标计数值,确定目标蓝牙时钟的目标时钟值;
输出模块16,用于向蓝牙时钟计算指令的发送方输出目标计数值和目标时钟值。
蓝牙时钟计算指令的发送方(例如,软件)可以向蓝牙时钟计算电路发送蓝牙时钟计算指令,以触发启动模块11启动蓝牙时钟计算电路,蓝牙时钟计算电路启动后,计算开始。
在蓝牙时钟计算电路启动的情况下,采集模块会周期性地采集本地蓝牙时钟的时钟值,作为第一时钟值,同时,也会周期性地采集本地蓝牙时钟的微秒计数器(即,第一微秒计数器)的计数值,作为第一计数值。需要说明的是,后续的计算是针对同一采集周期采集的第一时钟值和第一计数值进行的,并且,可以以同样的方式对每一采集周期采集到的数据进行多次计算。
可选地,如图2所示,第一计算模块13可以包括:
第一减法器131,用于计算第一预设数值减去第一时间差信息所指示的时间差得到的第一差值;
第一进位处理子模块132,用于利用第一差值与第二预设数值做取余运算,获得第二计数值。
第一时间差信息用于表示第二微秒计数器处于0微秒时与第一微秒计数器处于预设微秒值时所经历的时间差。其中,预设微秒值为第一微秒计数器计数范围中点对应的值。示例地,预设微秒值可以为625(微秒)。示例地,第一时间差信息可以由蓝牙时钟计算指令的发送方(例如,软件)直接提供给蓝牙时钟计算电路。例如,蓝牙时钟计算指令可以携带有第一时间差信息。其中,第一时间差信息所指示的时间差范围为[0,1249],精度为1微秒。
示例地,第二计数值native_bit_cnt(bit_cnt=0)可以通过如下算式计算得到:
native_bit_cnt(bit_cnt=0)=(D1-intraslot_offset)%D2
其中,D1为第一预设数值,intraslot_offset为第一时间差信息所指示的时间差,D2为第二预设数值。其中,(D1-intraslot_offset)表征第一减法器131所做的运算,得到的是第一差值,(第一差值%D2)表征第一进位处理子模块132所做的运算。第二预设数值D2可以根据第二微秒计数器在当前精度下的计数范围确定。例如,在精度为1微秒的情况下,第二微秒计数器的计数范围为0~1249,共计1250,因此,D2可以取1250。第一预设数值D1可以根据第二预设数值D2进行取值,一般情况下,可以将第二预设数值D2的一半作为第一预设数值D1。例如,若D2为1250,则D1可以取625。另外,考虑到第一预设数值D1需要与intraslot_offset做差,而intraslot_offset可能会大于第二预设数值D2的一半,为了避免运算中出现负数,造成运算量加大,在对第一预设数值D1进行取值时,还可以令D1=3/2*D2,并且,这样对最终的结果并无影响。例如,若D2为1250,则D1可以取1875。
可选地,如图3所示,第二计算模块14可以包括:
第一加法器141,用于计算第三预设数值、第一时间差信息所指示的时间差和第一计数值三者的第一和值;
第二进位处理子模块142,用于利用第一和值与第四预设数值做取余运算,获得目标计数值。
示例地,目标计数值BIT_CNT可以通过如下算式计算得到:
BIT_CNT=(D3+intraslot_offset+native_bit_cnt)%D4
其中,D3为第三预设数值,intraslot_offset为第一时间差信息所指示的时间差,D4为第四预设数值。其中,(D3+intraslot_offset+native_bit_cnt)表征第一加法器141所做的运算,得到的是第一和值,(第一和值%D4)表征第二进位处理子模块142所做的运算。第四预设数值D4可以根据第二微秒计数器在当前精度下的计数范围确定。例如,在精度为1微秒的情况下,第二微秒计数器的计数范围为0~1249,共计1250,因此,D4可以取1250。第三预设数值D3可以根据第四预设数值D4进行取值,一般情况下,可以将第四预设数值D4的一半作为第三预设数值D3。例如,若D4为1250,则D3可以取625。
如前文所述,蓝牙时钟的时钟值通过预设数量(如,28)的比特位表示,并且,预设数量的比特位中最低的N个比特位为低比特位,预设数量的比特位中除低比特位之外的其他比特位为高比特位,其中,N为正整数。示例地,N可以为2,则低比特位就是bit[1:0],高比特位就是bit[27:2]。为了描述方便,后文给出的示例将针对N=2的情况进行举例。
可选地,如图4所示,第三计算模块15可以包括:
低比特位时钟值计算子模块151,用于根据目标计数值确定对应于目标蓝牙时钟的低比特位的第一值;
高比特位时钟值计算子模块152,用于根据第一时钟值和第二计数值确定对应于目标蓝牙时钟的高比特位的第二值;
目标时钟值确定子模块153,用于根据第一值和第二值,确定目标时钟值。
也就是说,低比特位时钟值计算子模块151确定对应于目标蓝牙时钟的低比特位的第一值,并且,高比特位时钟值计算子模块152确定对应于目标蓝牙时钟的高比特位的第二值,之后,将二者拼接,即可得到目标时钟值。
可选地,低比特位时钟值计算子模块151可以包括:
范围判断器,用于根据预先设置的多个数值区间,判断目标计数值所处的数值区间,作为目标数值区间;
第一确定子模块,用于根据预先设置的多个数值区间与多种比特值之间的对应关系,确定目标数值区间所对应的比特值,作为第一值。
示例地,可以预先设置4个数值区间,分别为:[0,312)、[312,625)、[625,937)和[937,1250),并使[0,312)对应于b‘00’,使[312,625)对应于b‘01’,使[625,937)对应于b‘10’,使[937,1250)对应于b‘11’。这样,若目标计数值为600,则经范围判断器可确定目标计数值处于[312,625)这一数值区间,即[312,625)为目标数值区间,而[312,625)对应于b‘01’,因此,可以确定第一值BT_CLK[1:0]=b‘01’,也就是说,目标时钟值的最低两位为“01”。
可选地,如图5所示,高比特位时钟值计算子模块152可以包括:
比较器1521,用于比较第一计数值与第二计数值的大小,并根据比较结果获得输出值,其中,若第一计数值大于或等于第二计数值,输出值为0,若第一计数值小于第二计数值,输出值为1;
第二减法器1522,用于计算第一计数值中对应于高比特位的比特值与输出值的差值,作为第二差值;
第二加法器1523,用于计算第二差值与第二时间差信息所指示的时间差对应于高比特位的比特值的第二和值,并将第二和值作为第二值。
比较器1521通过比较第一计数值native_bit_cnt与第二计数值native_bit_cnt(bit_cnt=0)的大小得到输出值:
若native_bit_cnt>=native_bit_cnt(bit_cnt=0),输出值为0;
若native_bit_cnt<native_bit_cnt(bit_cnt=0),输出值为1。
示例地,第二差值native_bt_clk[27:2](bit_cnt=0)可以通过如下算式计算得到:
native_bt_clk[27:2](bit_cnt=0)=native_bt_clk[27:2]-output
其中,native_bt_clk[27:2]为第一计数值中对应于高比特位的比特值,output为输出值,它可以取0或1。其中,(native_bt_clk[27:2]-output)表征第二减法器1522所做的运算,得到的是第二差值。
第二时间差信息用于表示第二微秒计数器处于0微秒的时刻,目标蓝牙时钟对应的时钟值与本地蓝牙时钟在该时刻的时钟值二者之间的时间差。示例地,第二时间差信息可以由蓝牙时钟计算指令的发送方(例如,软件)直接提供给蓝牙时钟计算电路。例如,蓝牙时钟计算指令还可以携带有第二时间差信息。
示例地,第二和值(即,第二值)BT_CLK[27:2]可以通过如下算式计算得到:
BT_CLK[27:2]=native_bt_clk[27:2](bit_cnt=0)+bt_clk_offset[27:2]
其中,native_bt_clk[27:2](bit_cnt=0)为第二差值,bt_clk_offset[27:2]为第二时间差信息所指示的时间差对应于高比特位的比特值。其中,(native_bt_clk[27:2](bit_cnt=0)+bt_clk_offset[27:2])表征第二加法器1523所做的运算,得到的是第二和值,也就是第二值。
可选地,本公开提供的蓝牙时钟计算电路10还可以包括:
关闭模块,用于在蓝牙时钟计算指令的发送方从输出模块读取目标计数值和目标时钟值后,关闭蓝牙时钟计算电路。
若蓝牙时钟计算指令的发送方从输出模块读取目标计数值和目标时钟值后,还可以关闭蓝牙时钟计算电路,以停止计算。待下一次蓝牙时钟计算电路启动后,再按照上述计算方式进行新一轮的蓝牙时钟计算。也就是说,本公开提供的蓝牙时钟计算电路会不停地采集(循环采集)本地蓝牙时钟的第一时钟值和第一计数值,然后按照上述方式计算出目标蓝牙时钟的目标计数值和目标时钟值,直到蓝牙时钟计算指令的发送方触发关闭该蓝牙时钟计算电路,才停止该循环过程。
通过上述技术方案,提供一种蓝牙时钟计算电路,包括启动模块、采集模块、第一计算模块、第二计算模块、第三计算模块和输出模块。其中,启动模块用于在接收到蓝牙时钟计算指令时,启动蓝牙时钟计算电路;采集模块用于在蓝牙时钟计算电路启动的情况下,采集本地蓝牙时钟的第一时钟值和本地蓝牙时钟的第一微秒计数器的第一计数值;第一计算模块用于确定在目标蓝牙时钟的第二微秒计数器处于0时第一微秒计数器对应的第二计数值;第二计算模块用于根据第一计数值,确定目标蓝牙时钟的目标计数值;第三计算模块用于根据第一时钟值、第二计数值、目标计数值,确定目标蓝牙时钟的目标时钟值;输出模块用于向蓝牙时钟计算指令的发送方输出目标计数值和目标时钟值。这样,通过硬件实现的蓝牙时钟计算电路,能够获取到任意时刻、任意蓝牙链路的当前蓝牙时钟,计算简单且迅速。
图6是根据本公开的一种实施方式提供的蓝牙时钟计算方法的流程图。该方法可以应用于本公开任意实施例提供的蓝牙时钟计算电路,其中,蓝牙时钟计算电路包括启动模块、采集模块、第一计算模块、第二计算模块、第三计算模块和输出模块。如图6所示,该方法可以包括以下步骤:
在步骤61中,在接收到蓝牙时钟计算指令时,采集本地蓝牙时钟的第一时钟值和本地蓝牙时钟的第一微秒计数器的第一计数值;
在步骤62中,确定在目标蓝牙时钟的第二微秒计数器处于0时第一微秒计数器对应的第二计数值;
在步骤63中,根据第一计数值,确定目标蓝牙时钟的目标计数值;
在步骤64中,根据第一时钟值、第二计数值、目标计数值,确定目标蓝牙时钟的目标时钟值;
在步骤65中,向蓝牙时钟计算指令的发送方输出目标计数值和目标时钟值。
可选地,蓝牙时钟计算指令携带有第一时间差信息,第一时间差信息用于表示第二微秒计数器处于0微秒时与第一微秒计数器处于预设微秒值时所经历的时间差,预设微秒值为第一微秒计数器计数范围中点对应的值;
确定在目标蓝牙时钟的第二微秒计数器处于0时第一微秒计数器对应的第二计数值,包括:
计算第一预设数值减去第一时间差信息所指示的时间差得到的第一差值,并利用第一差值与第二预设数值做取余运算,获得第二计数值。
可选地,蓝牙时钟计算指令携带有第一时间差信息,第一时间差信息用于表示第二微秒计数器处于0微秒时与第一微秒计数器处于预设微秒值时所经历的时间差,预设微秒值为第一微秒计数器计数范围中点对应的值;
根据第一计数值,确定目标蓝牙时钟的目标计数值,包括:
计算第三预设数值、第一时间差信息所指示的时间差和第一计数值三者的第一和值,并利用第一和值与第四预设数值做取余运算,获得目标计数值。
可选地,蓝牙时钟的时钟值通过预设数量的比特位表示,并且,预设数量的比特位中最低的N个比特位为低比特位,预设数量的比特位中除低比特位之外的其他比特位为高比特位,其中,N为正整数;
根据第一时钟值、第二计数值、目标计数值,确定目标蓝牙时钟的目标时钟值,包括:
根据目标计数值确定对应于目标蓝牙时钟的低比特位的第一值;
根据第一时钟值和第二计数值确定对应于目标蓝牙时钟的高比特位的第二值;
根据第一值和第二值,确定目标时钟值。
关于上述实施例中的方法,其中各个步骤的具体方式已经在有关蓝牙时钟计算电路的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开任意实施例所述的蓝牙时钟计算方法的步骤。
本公开还提供一种电子设备,包括本公开任意实施例所述的蓝牙时钟计算电路。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (7)
1.一种蓝牙时钟计算电路,其特征在于,包括:
启动模块,用于在接收到蓝牙时钟计算指令时,启动所述蓝牙时钟计算电路;
采集模块,用于在所述蓝牙时钟计算电路启动的情况下,采集本地蓝牙时钟的第一时钟值和所述本地蓝牙时钟的第一微秒计数器的第一计数值;
第一计算模块,用于确定在目标蓝牙时钟的第二微秒计数器处于0时所述第一微秒计数器对应的第二计数值;
第二计算模块,用于根据所述第一计数值,确定所述目标蓝牙时钟的目标计数值;
第三计算模块,用于根据所述第一时钟值、所述第二计数值、所述目标计数值,确定所述目标蓝牙时钟的目标时钟值;
输出模块,用于向所述蓝牙时钟计算指令的发送方输出所述目标计数值和所述目标时钟值;
其中,所述蓝牙时钟计算指令携带有第一时间差信息,所述第一时间差信息用于表示所述第二微秒计数器处于0微秒时与所述第一微秒计数器处于预设微秒值时所经历的时间差,所述预设微秒值为所述第一微秒计数器计数范围中点对应的值;
所述第一计算模块包括:
第一减法器,用于计算第一预设数值减去所述第一时间差信息所指示的时间差得到的第一差值;
第一进位处理子模块,用于利用所述第一差值与第二预设数值做取余运算,获得所述第二计数值;
所述第二计算模块包括:
第一加法器,用于计算第三预设数值、所述第一时间差信息所指示的时间差和所述第一计数值三者的第一和值;
第二进位处理子模块,用于利用所述第一和值与第四预设数值做取余运算,获得所述目标计数值;
其中,蓝牙时钟的时钟值通过预设数量的比特位表示,并且,所述预设数量的比特位中最低的N个比特位为低比特位,所述预设数量的比特位中除低比特位之外的其他比特位为高比特位,其中,N为正整数;
所述第三计算模块包括:
低比特位时钟值计算子模块,用于根据所述目标计数值确定对应于所述目标蓝牙时钟的低比特位的第一值;
高比特位时钟值计算子模块,用于根据所述第一时钟值和所述第二计数值确定对应于所述目标蓝牙时钟的高比特位的第二值;
目标时钟值确定子模块,用于根据所述第一值和所述第二值,确定所述目标时钟值。
2.根据权利要求1所述的蓝牙时钟计算电路,其特征在于,所述低比特位时钟值计算子模块包括:
范围判断器,用于根据预先设置的多个数值区间,判断所述目标计数值所处的数值区间,作为目标数值区间;
第一确定子模块,用于根据预先设置的多个数值区间与多种比特值之间的对应关系,确定所述目标数值区间所对应的比特值,作为所述第一值。
3.根据权利要求1所述的蓝牙时钟计算电路,其特征在于,所述蓝牙时钟计算指令携带有第二时间差信息,所述第二时间差信息用于表示所述第二微秒计数器处于0微秒的时刻,所述目标蓝牙时钟对应的时钟值与本地蓝牙时钟在该时刻的时钟值二者之间的时间差;
所述高比特位时钟值计算子模块包括:
比较器,用于比较所述第一计数值与所述第二计数值的大小,并根据比较结果获得输出值,其中,若所述第一计数值大于或等于所述第二计数值,所述输出值为0,若所述第一计数值小于所述第二计数值,所述输出值为1;
第二减法器,用于计算所述第一计数值中对应于高比特位的比特值与所述输出值的差值,作为第二差值;
第二加法器,用于计算所述第二差值与所述第二时间差信息所指示的时间差对应于高比特位的比特值的第二和值,并将所述第二和值作为所述第二值。
4.根据权利要求1所述的蓝牙时钟计算电路,其特征在于,所述蓝牙时钟计算电路还包括:
关闭模块,用于在所述蓝牙时钟计算指令的发送方从所述输出模块读取所述目标计数值和所述目标时钟值后,关闭所述蓝牙时钟计算电路。
5.一种蓝牙时钟计算方法,其特征在于,应用于蓝牙时钟计算电路,所述蓝牙时钟计算电路包括启动模块、采集模块、第一计算模块、第二计算模块、第三计算模块和输出模块,所述方法包括:
在接收到蓝牙时钟计算指令时,采集本地蓝牙时钟的第一时钟值和所述本地蓝牙时钟的第一微秒计数器的第一计数值;
确定在目标蓝牙时钟的第二微秒计数器处于0时所述第一微秒计数器对应的第二计数值;
根据所述第一计数值,确定所述目标蓝牙时钟的目标计数值;
根据所述第一时钟值、所述第二计数值、所述目标计数值,确定所述目标蓝牙时钟的目标时钟值;
向所述蓝牙时钟计算指令的发送方输出所述目标计数值和所述目标时钟值;
其中,所述蓝牙时钟计算指令携带有第一时间差信息,所述第一时间差信息用于表示所述第二微秒计数器处于0微秒时与所述第一微秒计数器处于预设微秒值时所经历的时间差,所述预设微秒值为所述第一微秒计数器计数范围中点对应的值;
所述确定在目标蓝牙时钟的第二微秒计数器处于0时所述第一微秒计数器对应的第二计数值,包括:
计算第一预设数值减去所述第一时间差信息所指示的时间差得到的第一差值,并利用所述第一差值与第二预设数值做取余运算,获得所述第二计数值;
所述根据所述第一计数值,确定所述目标蓝牙时钟的目标计数值,包括:
计算第三预设数值、所述第一时间差信息所指示的时间差和所述第一计数值三者的第一和值,并利用所述第一和值与第四预设数值做取余运算,获得所述目标计数值;
其中,蓝牙时钟的时钟值通过预设数量的比特位表示,并且,所述预设数量的比特位中最低的N个比特位为低比特位,所述预设数量的比特位中除低比特位之外的其他比特位为高比特位,其中,N为正整数;
所述根据所述第一时钟值、所述第二计数值、所述目标计数值,确定所述目标蓝牙时钟的目标时钟值,包括:
根据所述目标计数值确定对应于所述目标蓝牙时钟的低比特位的第一值;
根据所述第一时钟值和所述第二计数值确定对应于所述目标蓝牙时钟的高比特位的第二值;
根据所述第一值和所述第二值,确定所述目标时钟值。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求5所述方法的步骤。
7.一种电子设备,其特征在于,包括权利要求1-4任一项所述的蓝牙时钟计算电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011492497.5A CN112558458B (zh) | 2020-12-16 | 2020-12-16 | 蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011492497.5A CN112558458B (zh) | 2020-12-16 | 2020-12-16 | 蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112558458A CN112558458A (zh) | 2021-03-26 |
CN112558458B true CN112558458B (zh) | 2021-09-28 |
Family
ID=75064475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011492497.5A Active CN112558458B (zh) | 2020-12-16 | 2020-12-16 | 蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112558458B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3249475A1 (en) * | 2016-05-27 | 2017-11-29 | Casio Computer Co., Ltd. | Communication device, electronic timepiece, and time correcting method |
CN107623904A (zh) * | 2016-07-14 | 2018-01-23 | 卡西欧计算机株式会社 | 通信装置、电子时钟、时刻校正方法、以及计算机可读存储介质 |
WO2020021271A1 (en) * | 2018-07-27 | 2020-01-30 | Mclaren Applied Technologies Limited | Time synchronisation |
CN111831056A (zh) * | 2020-07-29 | 2020-10-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种实时时钟校准模块、方法及一种实时时钟芯片 |
CN111918261A (zh) * | 2020-08-13 | 2020-11-10 | 南京中感微电子有限公司 | 蓝牙音频设备同步播放方法、系统及蓝牙音频主、从设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2364203B (en) * | 2000-06-27 | 2004-03-17 | Nokia Mobile Phones Ltd | Synchronisation |
US7653017B2 (en) * | 2004-01-30 | 2010-01-26 | Stmicroelectronics N.V. | Bluetooth sniff mode power saving |
EP3644661B1 (en) * | 2018-10-26 | 2022-08-17 | Google LLC | A synchronization method for synchronizing clocks of a bluetooth device |
CN111865306B (zh) * | 2020-07-14 | 2022-07-05 | 广芯微电子(广州)股份有限公司 | 一种实时时钟时基分频器及实时时钟调校方法 |
-
2020
- 2020-12-16 CN CN202011492497.5A patent/CN112558458B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3249475A1 (en) * | 2016-05-27 | 2017-11-29 | Casio Computer Co., Ltd. | Communication device, electronic timepiece, and time correcting method |
CN107623904A (zh) * | 2016-07-14 | 2018-01-23 | 卡西欧计算机株式会社 | 通信装置、电子时钟、时刻校正方法、以及计算机可读存储介质 |
WO2020021271A1 (en) * | 2018-07-27 | 2020-01-30 | Mclaren Applied Technologies Limited | Time synchronisation |
CN111831056A (zh) * | 2020-07-29 | 2020-10-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种实时时钟校准模块、方法及一种实时时钟芯片 |
CN111918261A (zh) * | 2020-08-13 | 2020-11-10 | 南京中感微电子有限公司 | 蓝牙音频设备同步播放方法、系统及蓝牙音频主、从设备 |
Non-Patent Citations (1)
Title |
---|
蓝牙基带IP实现技术研究;周正伟;《中国博士学位论文全文数据库(信息科技辑)》;20030315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112558458A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7479908B2 (en) | Semiconductor device including A/D converter | |
CN115686961A (zh) | 处理器测试方法、装置及电子设备 | |
CN112558458B (zh) | 蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备 | |
CN117150988B (zh) | 一种验证环境的高精度时钟产生方法、装置、设备及介质 | |
CN109782841B (zh) | 基于rtc芯片的实时时钟的实现方法、终端设备及存储介质 | |
CN112838865B (zh) | 直流偏置校准方法、装置和存储介质 | |
CN116542190B (zh) | 用户设计综合方法、装置、设备、介质及产品 | |
CN115146769A (zh) | 一种基于范围可寻址查找表计算tanh函数的数字电路模块 | |
JP2016212574A (ja) | デバッグ回路、半導体装置及びデバッグ方法 | |
CN115495153A (zh) | 一种计算加速方法、系统、设备以及存储介质 | |
CN114186519A (zh) | 时序瓶颈探查方法、装置、终端设备及存储介质 | |
CN114201869A (zh) | 模型量化方法、装置及存储介质 | |
CN112187935A (zh) | 信息识别方法与只读内存 | |
CN112312475A (zh) | 语音长时间连续丢包补偿方法和装置 | |
CN113391787B (zh) | 一种除法器及除法处理方法 | |
CN113031914B (zh) | 浮点舍入模式的控制方法、装置、设备及存储介质 | |
CN116298930B (zh) | 电池包健康度的测量方法、装置及服务器 | |
CN116542196B (zh) | 基于有效时钟路径的集成电路时序分析方法、系统及介质 | |
CN113434113B (zh) | 基于静态配置数字电路的浮点数乘累加控制方法及系统 | |
CN113125980B (zh) | 一种电池直流内阻的检测方法、装置及终端设备 | |
CN117784156B (zh) | 直方图噪声抑制寻峰测距实现方法及其应用 | |
CN117787160A (zh) | 一种生成数字电路的硬件描述语言的方法及装置 | |
CN117215519A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN116050439A (zh) | 一种基于积分模型的adc采样消抖方法及装置 | |
CN116127889A (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 |