蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备

文档序号:808237 发布日期:2021-03-26 浏览:25次 >En<

阅读说明:本技术 蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备 (Bluetooth clock calculation circuit, Bluetooth clock calculation method, medium, and device ) 是由 陈金宏 彭国杰 李蕙 于 2020-12-16 设计创作,主要内容包括:本公开涉及一种蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备,能够在任意时刻简单、快速地得到任意经典蓝牙链路的当前蓝牙时钟。包括:启动模块,用于在接收到蓝牙时钟计算指令时,启动所述蓝牙时钟计算电路;采集模块,用于采集本地蓝牙时钟的第一时钟值和第一微秒计数器的第一计数值;第一计算模块,用于确定在目标蓝牙时钟的第二微秒计数器处于0时所述第一微秒计数器对应的第二计数值;第二计算模块,用于根据所述第一计数值,确定所述目标蓝牙时钟的目标计数值;第三计算模块,用于根据所述第一时钟值、所述第二计数值、所述目标计数值,确定所述目标蓝牙时钟的目标时钟值;输出模块,用于输出所述目标计数值和所述目标时钟值。(The present disclosure relates to a bluetooth clock calculation circuit, a bluetooth clock calculation method, medium, and device, which can simply and quickly obtain a current bluetooth clock of any classic bluetooth link at any time. The method comprises the following steps: the starting module is used for starting the Bluetooth clock calculation circuit when receiving a Bluetooth clock calculation instruction; the acquisition module is used for acquiring a first clock value of a local Bluetooth clock and a first count value of a first microsecond counter; the first calculating module is used for determining a second counting value corresponding to a first microsecond counter when the second microsecond counter of a target Bluetooth clock is 0; the second calculation module is used for determining a target count value of the target Bluetooth clock according to the first count value; the third calculating module is used for determining a target clock value of the target Bluetooth clock according to the first clock value, the second counting value and the target counting value; and the output module is used for outputting the target count value and the target clock value.)

蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备

技术领域

本公开涉及蓝牙领域,具体地,涉及一种蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备。

背景技术

目前,若要获得蓝牙时钟,一般通过硬件读取和软件计算两种方式。在硬件读取方式中,通过读取硬件寄存器获得蓝牙时钟,但是,硬件读取方式中要求需要访问的蓝牙链路需要和当前基带硬件正在工作的是同一个链路,因此这种方式存在较大限制。在软件计算方式中,虽然能够实现蓝牙时钟的获取,但是由于软件无法同时读取本地蓝牙时钟和本地微秒计数器,存在读取的先后顺序,因此需要考虑值跳变的问题,计算处理过程较为复杂,耗费时间长。

发明内容

本公开的目的是提供一种蓝牙时钟计算电路、蓝牙时钟计算方法、介质及设备,便于获取任意蓝牙链路的蓝牙时钟。

为了实现上述目的,根据本公开的第一方面,提供一种蓝牙时钟计算电路,包括:

启动模块,用于在接收到蓝牙时钟计算指令时,启动所述蓝牙时钟计算电路;

采集模块,用于在所述蓝牙时钟计算电路启动的情况下,采集本地蓝牙时钟的第一时钟值和所述本地蓝牙时钟的第一微秒计数器的第一计数值;

第一计算模块,用于确定在目标蓝牙时钟的第二微秒计数器处于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为正整数;

根据第一时钟值、第二计数值、目标计数值,确定目标蓝牙时钟的目标时钟值,包括:

根据目标计数值确定对应于目标蓝牙时钟的低比特位的第一值;

根据第一时钟值和第二计数值确定对应于目标蓝牙时钟的高比特位的第二值;

根据第一值和第二值,确定目标时钟值。

关于上述实施例中的方法,其中各个步骤的具体方式已经在有关蓝牙时钟计算电路的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开任意实施例所述的蓝牙时钟计算方法的步骤。

本公开还提供一种电子设备,包括本公开任意实施例所述的蓝牙时钟计算电路。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种电力监控系统的冗余监控装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!