一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

蓝牙设备、蓝牙设备多链路快速切换方法及系统与流程

2022-10-26 18:59:10 来源:中国专利 TAG:


1.本发明属于蓝牙通信技术领域,具体涉及一种蓝牙设备、蓝牙设备多链路快速切换方法及系统。


背景技术:

2.随着蓝牙技术在音频方面的应用日益广泛,蓝牙音频设备在人们的日常生活中扮演着非常重要的角色。当经典蓝牙和ble蓝牙用于比较复杂的音频应用领域时,例如tws语音、语音广播、语音mesh等场景,处于多链路、多角色的蓝牙设备需要具备在两个蓝牙piconet网络中切换的功能。目前通常的做法是定义蓝牙主设备与源设备间建立的蓝牙连接为piconet1,定义蓝牙从设备与主设备间建立的蓝牙连接为piconet2,并且蓝牙从设备与piconet1上的源设备建立监听链路。由于监听链路存在漏包或者接收错误的情形,通常还需要蓝牙主设备对漏包或者接收错误的包进行转发给蓝牙从设备,提升通信效率。
3.目前的方案中,作为中继节点的主设备和监听节点的的从设备需要在两条链路之间进行切换运行,二者在两条链路之间切换过程的耗时将对链路的带宽有着明显的影响。
4.蓝牙设备的内部时钟分两部分计算,一部分为以半个蓝牙时隙为单位的bt_clk,单位为312.5us,另一部分为内部微秒计时器,单位为us,范围在0~1249us。根据经典蓝牙的通信协议标准,蓝牙piconet网络中的时钟以master角色的蓝牙设备的本地时钟为标准,slave角色需要不断更新以半个蓝牙时隙为基础的蓝牙时钟偏移bt_clk_offset,单位为半个蓝牙时隙312.5us,以及微秒级别的时钟偏移us_offset,单位为us,以保持与master设备时钟同步。
5.在目前的方案中,piconet1运行时,piconet1中以源设备的native clock本地时钟作为piconet1的主时钟,记为蓝牙时钟bt_clk1和微秒时钟us_n1。piconet1中的蓝牙主设备根据建立连接时获得的蓝牙时钟偏移bt_clk_offset1和微秒时钟偏移us_offset1,与源设备保持时钟同步;由于源设备的蓝牙时钟bt_clk1和微秒时钟us_n1会随着时间偏移,蓝牙主设备后续需要不断周期性更新其蓝牙时钟偏移bt_clk_offset1和微秒时钟偏移us_offset1。
6.piconet1运行时,蓝牙从设备监听源设备的音乐包,作为监听链路上的slave,从设备在与源设备建立监听时,获得蓝牙时钟偏移bt_clk_offset3和微秒时钟偏移us_offset3,开始与源设备保持同步;由于源设备的蓝牙时钟bt_clk1和微秒时钟us_n1会随着时间偏移,蓝牙从设备后续需要不断周期性更新其蓝牙时钟偏移bt_clk_offset3和微秒时钟偏移us_offset3。
7.piconet1运行结束后,切换到piconet2运行时,蓝牙主设备同时作为piconet2中的master和piconet1中的slave,其native clock本地时钟作为piconet2的主时钟,记为蓝牙时钟bt_clk2和微秒时钟us_n2。蓝牙从设备作为piconet2中的slave根据建立连接时获得的蓝牙时钟偏移bt_clk_offset2和微秒时钟偏移us_offset2,开始与蓝牙主设备保持同步;由于蓝牙主设备的蓝牙时钟bt_clk2和微秒时钟us_n2偏移的存在,后续从设备需要不
断周期性更新bt_clk_offset2和us_offset2。
8.在进行链路切换的时候,作为中继节点的蓝牙主设备需要在piconet1上的(bt_clk_offset1,us_offset1)和piconet2上的(bt_clk2,us_n2)之间做切换;作为监听节点的的蓝牙从设备在需要在piconet2上的(bt_clk_offset2,us_offset2)和监听链路上的(bt_clk_offset3,us_offset3)之间做切换。
9.目前的方案中,由于(bt_clk1,us_n1)和(bt_clk2,us_n2)是两个不同时钟系统,两者之间不存在任何关系,且随着系统时钟的漂移,这两个时钟系统的相位差也会随之变化,bt_clk_offset和us_offset将会是随机值,从而导致在每次链路切换时,都需要去更新蓝牙时钟偏移bt_clk_offset和微秒时钟偏移us_offset。同时,由于这两个时钟系统的相位差是随机变化的,在蓝牙通信时需要在前一个时隙准备下一个时隙的发送和接收,由于不是按时隙对齐的,很可能导致在一个时隙内射频和调制解调器的准备时间不足,不足以完成本次master或者slave活动。这两个问题会导致在链路切换频繁时,切换耗时占比明显增多,对带宽有显著影响,导致通信效率低下。


技术实现要素:

10.针对上述问题,本发明提出一种蓝牙设备、蓝牙设备多链路快速切换方法及系统,可以显著减少链路切换过程中的时间消耗,提高通信效率和蓝牙通信带宽。
11.为了实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
12.第一方面,本发明提供了一种蓝牙设备多链路快速切换方法,包括:
13.计算出用于与源设备通信的各链路中作为slave角色的设备收到源设备发包时前后两次的syncword时间差;
14.基于所述syncword时间差调整所述各链路中作为slave角色的设备的本地时钟中的微秒时钟,使所述各链路中作为slave角色的设备的微秒时钟偏移保持不变,以及所述各链路上作为slave角色的设备的本地时钟与源设备的时钟保持同步。
15.可选地,当包含通信相连的源设备和蓝牙主设备的蓝牙链路piconet1运行时,源设备在蓝牙链路piconet1中作为master角色,蓝牙主设备在蓝牙链路piconet1中作为slave角色;
16.响应于蓝牙主设备在蓝牙链路piconet1中收到源设备发包,计算出蓝牙主设备收到源设备发包时前后两次的syncword时间差,并基于所述syncword时间差调整蓝牙主设备本地时钟中的微秒时钟us1,使得蓝牙主设备的本地时钟与源设备的时钟保持同步,并保持微秒时钟偏移us_offset1不变。
17.可选地,当包括通信相连的蓝牙主设备和蓝牙从设备的蓝牙链路piconet2运行时,蓝牙主设备在蓝牙链路piconet2中作为master角色,蓝牙从设备在蓝牙链路piconet2中作为slave角色;
18.在蓝牙链路piconet2运行时,同时调整蓝牙主设备和蓝牙从设备的本地时钟中的微秒时钟,使蓝牙主设备和蓝牙从设备之间、蓝牙主设备与源设备之间,以及蓝牙从设备与蓝牙源设备之间的时钟相位差均为625us。
19.可选地,在蓝牙链路piconet1运行时,利用蓝牙主设备计算获得其微秒时钟偏移us_offset1与625us之间的差值clk_adj_us;
20.在蓝牙链路piconet2上,同时调整蓝牙主设备和蓝牙从设备的本地时钟中的微秒时钟,调整值为clk_adj_us,使微秒时钟偏移us_offset1在之后保持为625us。
21.可选地,当蓝牙链路piconet1运行时,源设备向蓝牙主设备发包,蓝牙从设备与源设备建立监听链路,蓝牙从设备在监听链路上作为slave角色;
22.响应于蓝牙从设备在监听链路上收到源设备发包,计算出蓝牙从设备收到源设备发包时前后两次的syncword时间差,并基于所述syncword时间差调整蓝牙从设备本地时钟中的微秒时钟us3,使得蓝牙从设备的本地时钟与源设备的时钟保持同步,并保持微秒时钟偏移us_offset3不变。
23.可选地,当包括通信相连的蓝牙主设备和蓝牙从设备的蓝牙链路piconet2运行时,蓝牙主设备在蓝牙链路piconet2中作为master角色,蓝牙从设备在蓝牙链路piconet2中作为slave角色;
24.在蓝牙链路piconet1运行结束时,响应于蓝牙从设备从监听链路切换到蓝牙链路piconet2,使用在蓝牙链路piconet1上利用syncword时间差调整本地时钟中的微秒时钟调整后的本地时钟,作为蓝牙链路piconet2的系统时钟,蓝牙从设备和蓝牙主设备的本地时钟保持同步,不调整蓝牙链路piconet2的本地时钟中的微秒时钟us2,保持微秒时钟偏移us_offset2不变。
25.可选地,当蓝牙从设备从蓝牙链路piconet2切换到监听链路时,保持微秒时钟偏移us_offset3不变,当蓝牙从设备再次从监听链路切换到蓝牙链路piconet2时,保持微秒时钟偏移us_offset2不变,达到蓝牙主设备与源设备,蓝牙主设备与蓝牙从设备,蓝牙从设备与源设备的相位差均为625us,微秒时钟偏移us_offset1、us_offset2和us_offset3均为625us,按照蓝牙时隙对齐。
26.可选地,所述蓝牙主设备和蓝牙从设备同时进入蓝牙收发工作状态和同时退出蓝牙收发工作状态,蓝牙链路切换发生在蓝牙非工作状态的空闲时间。
27.第二方面,本发明提供了一种蓝牙设备,用于执行如第一方面中之一所述蓝牙设备多链路快速切换方法中的步骤,当所述蓝牙设备在与源设备通信的链路中作为slave角色时,基于收到源设备发包时前后两次的syncword时间差调整其本地时钟中的微秒时钟,使其微秒时钟偏移保持不变,以及其本地时钟与源设备的时钟保持同步。
28.第二方面,本发明提供了一种蓝牙音频设备多链路快速切换系统,包括:源设备、蓝牙主设备和蓝牙从设备;
29.所述源设备与蓝牙主设备建立蓝牙链路piconet1,源设备与蓝牙从设备之间建立监听链路,蓝牙主设备和蓝牙从设备建立蓝牙链路piconet2;
30.在蓝牙链路piconet1运行时,作为slave角色的蓝牙主设备,计算出其收到源设备发包时前后两次的syncword时间差,并基于所述syncword时间差调整本地时钟中的微秒时钟,使得蓝牙主设备的本地时钟与源设备的时钟保持同步,且保持微秒时钟偏移us_offset1不变;
31.在监听链路运行时,作为slave角色的蓝牙从设备,计算出其收到源设备发包时前后两次的syncword时间差,并基于所述syncword时间差调整本地时钟中的微秒时钟,使得蓝牙从设备的本地时钟与源设备的时钟保持同步,且保持微秒时钟偏移us_offset3不变。
32.可选地,当蓝牙链路piconet2运行时,蓝牙主设备在蓝牙链路piconet2中作为
master角色,蓝牙从设备在蓝牙链路piconet2中作为slave角色;
33.在蓝牙链路piconet2运行时,同时调整蓝牙主设备和蓝牙从设备的本地时钟中的微秒时钟,使蓝牙主设备和蓝牙从设备之间、蓝牙主设备与源设备之间,以及蓝牙从设备与蓝牙源设备之间的时钟相位差均为625us。
34.可选地,在蓝牙链路piconet1运行时,蓝牙主设备计算获得其微秒时钟偏移us_offset1与625us之间的差值clk_adj_us;
35.在蓝牙链路piconet2运行时,蓝牙主设备和蓝牙从设备同时调整各自的本地时钟中的微秒时钟,调整值为clk_adj_us,使微秒时钟偏移us_offset1在之后保持为625us。
36.可选地,当包括通信相连的蓝牙主设备和蓝牙从设备的蓝牙链路piconet2运行时,蓝牙主设备在蓝牙链路piconet2中作为master角色,蓝牙从设备在蓝牙链路piconet2中作为slave角色;
37.当蓝牙链路piconet1运行结束时,蓝牙从设备从监听链路切换到蓝牙链路piconet2,使用在蓝牙链路piconet1上经过利用syncword时间差调整本地时钟中的微秒时钟调整后的本地时钟,作为蓝牙链路piconet2的系统时钟,蓝牙从设备和蓝牙主设备的本地时钟保持同步,不调整蓝牙链路piconet2的本地时钟中的微秒时钟us2,保持微秒时钟偏移us_offset2不变。
38.可选地,当蓝牙从设备从蓝牙链路piconet2切换到监听链路时,保持微秒时钟偏移us_offset3不变;当蓝牙从设备再次从监听链路切换到蓝牙链路piconet2时,保持微秒时钟偏移us_offset2不变,达到蓝牙主设备与源设备,蓝牙主与蓝牙从设备,蓝牙从设备与源设备的相位差均为625us,微秒时钟偏移us_offset1、us_offset2和us_offset3均为625us,按照蓝牙时隙对齐。
39.可选地,所述蓝牙主设备和蓝牙从设备同时进入蓝牙收发工作状态和同时退出蓝牙收发工作状态,蓝牙链路切换发生在蓝牙非工作状态的空闲时间。
40.与现有技术相比,本发明的有益效果:
41.本发明中提出在与源设备通信的链路中用作slave角色的设备,基于收包时的syncword时间差,对源设备的本地时钟的微秒级漂移进行实时跟随,实时调整自身本地时钟的微秒时钟部分,并保持微秒时钟偏移值us_offset不变,从而可以显著减少链路切换过程中的时间消耗,提高通信效率和蓝牙通信带宽。
附图说明
42.为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对本发明作进一步详细的说明,其中:
43.图1为本发明一种实施例的蓝牙设备多链路快速切换的流程示意图;
44.图2为本发明一种实施例的蓝牙设备多链路快速装置的结构示意图。
具体实施方式
45.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明的保护范围。
46.下面结合附图对本发明的应用原理作详细的描述。
47.实施例1
48.本发明实施例中提供了一种蓝牙设备多链路快速切换方法,如图1所示,具体包括以下步骤:
49.步骤(1)计算出用于与源设备通信的各链路中作为slave角色的设备收到源设备发包时前后两次的syncword时间差;所述的syncword指的是同步字;
50.步骤(2)基于所述syncword时间差调整所述各链路中作为slave角色的设备的本地时钟中的微秒时钟,使所述各链路中作为slave角色的设备的微秒时钟偏移保持不变,以及所述各链路上作为slave角色的设备的本地时钟与源设备的时钟保持同步。
51.基于本发明实施例中的方法,将蓝牙链路piconet上的作为slave角色的设备相对于作为master角色的源设备,从原来的仅能通过不断调整链路上获得的微秒时钟偏移值us_offset使其本地时钟与源设备的时钟保持同步,修改为根据作为slave角色的设备收包时的前后两次syncword时间差调整其本地时钟中的微秒时钟部分,使得作为slave角色的设备的本地时钟与源设备的时钟保持同步,且保持微秒时钟偏移值us_offset不变。由于各链路上的slave角色的设备在与源设备通信时,均对源设备的本地时钟的微秒级漂移进行实时跟随,并实时调整自身的本地时钟的微秒级数值,而不调整其相对于源设备的微秒时钟偏移值,这就使得作为slave角色的设备在与源设备通信的链路,和与其它slave角色的设备通信的链路之间切换时,各链路的时钟系统相位差保持不变,在链路切换过程中相位差保持同步,从而可以显著减少链路切换过程中的时间消耗,提高通信效率和蓝牙通信带宽。
52.在本发明实施例的一种具体方式中,在链路中作为slave角色的设备,可以是根据相邻的前后两次接收到源设备的发包,计算所述syncword时间差,也可以是根据不相邻的前后两次接收到源设备的发包,计算所述syncword时间差。
53.在本发明实施例的一种具体方式中,在链路中作为slave角色的设备(以下简称:slave设备)可以采用以下方式计算所述syncword时间差:
54.s001、获取slave设备收到第n个源设备发包中同步字syncword的时间点t0;n为自然数。
55.s002、获取slave设备收到第n i个源设备发包中同步字syncword的时间点t1;i为正整数。
56.s003、计算t1与t0的差值,并将t1与t0的差值与slave设备一个收发包的工作周期进行取模运算,获得所述syncword时间差。
57.通常情况下,蓝牙设备的一个收发包的工作周期为1250us。因此可将t1与t0的差值除以1250us,并将其余数作为所述syncword时间差。
58.在本发明实施例的一种具体实施方式中,当包含通信相连的源设备和蓝牙主设备的蓝牙链路piconet1运行时,源设备在蓝牙链路piconet1中作为master角色,蓝牙主设备在蓝牙链路piconet1中作为slave角色;
59.响应于蓝牙主设备在蓝牙链路piconet1中收到源设备发包,计算出蓝牙主设备收到源设备发包时前后两次的syncword时间差,并基于所述syncword时间差调整蓝牙主设备本地时钟中的微秒时钟us1,使得蓝牙主设备的本地时钟与源设备的时钟保持同步,并保持
微秒时钟偏移us_offset1不变。
60.当蓝牙链路piconet1运行时,源设备向蓝牙主设备发包,如发送音频数据包、语音数据包等。蓝牙从设备与源设备建立监听链路,蓝牙从设备在监听链路上作为slave角色;响应于蓝牙从设备在监听链路上收到源设备发包,计算出蓝牙从设备收到源设备发包时前后两次的syncword时间差,并基于所述syncword时间差调整蓝牙从设备本地时钟中的微秒时钟us3,使得蓝牙从设备的本地时钟与源设备的时钟保持同步,并保持微秒时钟偏移us_offset3不变。
61.在本发明实施例的一种具体实施方式中,当包括通信相连的蓝牙主设备和蓝牙从设备的蓝牙链路piconet2运行时,蓝牙主设备在蓝牙链路piconet2中作为master角色,蓝牙从设备在蓝牙链路piconet2中作为slave角色;
62.响应于蓝牙链路piconet1运行结束后蓝牙主设备和蓝牙从设备切换到蓝牙链路piconet2,使用在蓝牙链路piconet1上利用syncword时间差调整本地时钟中的微秒时钟调整后的本地时钟,作为蓝牙链路piconet2的系统时钟,由于在蓝牙链路piconet1上蓝牙主设备经过了微秒时钟us1的调整,监听链路上蓝牙从设备经过微秒时钟us3的调整,蓝牙从设备和蓝牙主设备已经都与源设备的时钟保持同步,在蓝牙链路piconet2上蓝牙从设备不需要再调整蓝牙链路piconet2上的本地时钟中的微秒时钟us2调整,就能保持微秒时钟偏移us_offset2不变。
63.进一步的,本发明实施例中的方法,还在蓝牙链路piconet2上同时调整蓝牙主设备和蓝牙从设备的本地时钟native clk的微秒时钟的us值,使蓝牙主设备和蓝牙从设备之间、蓝牙主设备与源设备之间,以及蓝牙从设备与蓝牙源设备之间的时钟相位差均为625us,即蓝牙链路运行的slot单位625us。
64.在一种具体实施例中,在蓝牙链路piconet1上,利用蓝牙主设备计算获得其微秒时钟偏移us_offset1与625us之间的差值clk_adj_us;在蓝牙链路piconet2上,同时调整蓝牙主设备和蓝牙从设备的本地时钟中的微秒时钟,调整值为clk_adj_us,使us_offset1在之后保持为625us。所述同时调整蓝牙主设备和蓝牙从设备的本地时钟中的微秒时钟,可以基于蓝牙协议规范定义的标准流程实现。
65.当蓝牙从设备再切换到监听链路时,保持微秒时钟偏移us_offset3不变,当蓝牙从设备再切换到蓝牙链路piconet2时,保持微秒时钟偏移us_offset2不变,达到蓝牙主设备与源设备之间,蓝牙主从设备之间,蓝牙从设备与源设备之间的相位差均为625us,此时us_offset1、us_offset2和us_offset3均为625us,按照蓝牙时隙对齐。由此,本发明的方法中,源设备与蓝牙主设备、蓝牙主设备与蓝牙从设备之间、源设备与蓝牙从设备的本地时钟的相位差保持固定不变,并能按照时隙对齐,可以显著减少链路切换过程中的时间消耗,以及多链路不同步切换造成的时间消耗,提高通信效率和蓝牙通信带宽。
66.下面结合一具体实施方式对本发明实施例中的方法进行详细说明。
67.如图2所示,将本发明实施例中的方法应用至蓝牙音频设备多链路快速切换系统,该系统包括:源设备、蓝牙主设备和蓝牙从设备。所述蓝牙主设备和蓝牙从设备均可以选择蓝牙音频设备。
68.蓝牙链路piconet1运行时,源设备在蓝牙链路piconet1中作为master角色,蓝牙主设备(中继点)在蓝牙链路piconet1中作为slave角色,蓝牙主设备在蓝牙链路piconet1
中收包时,通常会提前一段时间开启接收硬件配置。基于本发明实施例中的方法,在蓝牙链路piconet1上通过前后两次的syncword时间差调整蓝牙主设备本地时钟中的微秒时钟us1,即每次调整的是蓝牙主设备本地时钟的微秒单位值,微秒时钟偏移us_offset1保持不变。
69.当蓝牙主设备在蓝牙链路piconet1上运行结束后,切换到蓝牙链路piconet2时,蓝牙主设备作为蓝牙链路piconet2的master,蓝牙从设备在蓝牙链路piconet2中作为slave角色,将使用在蓝牙链路piconet1上经过本地时钟中的微秒时钟调整后的本地时钟作为蓝牙链路piconet2的系统时钟,当蓝牙主设备再切换到蓝牙链路piconet1时,蓝牙主设备的微秒时钟偏移us_offset1的值将保持不变,这样蓝牙主设备能省去在链路切换过程中每次去配置更新微秒时钟偏移us_offset1的过程,实现省去部分的切换耗时占比,达到快速切换的目的。
70.蓝牙链路piconet1运行时,且音源设备播放音乐,蓝牙主设备接收音源设备发送的音频数据包,从设备与蓝牙音源设备建立监听链路,蓝牙从设备(监听节点)在监听链路上作为slave角色,通过监听链路接收音源设备发送的音频数据包。其在监听链路上收包时,通常会提前一段时间开启接收硬件配置。基于本发明实施例中的方法,在监听链路上通过前后两次收包的syncword时间差,调整蓝牙从设备本地时钟中的微秒时钟us3,即每次调整的是蓝牙从设备本地时钟的微秒单位值,微秒时钟偏移us_offset3保持不变。
71.当蓝牙链路piconet2中的slave与监听链路上的蓝牙从设备是同一个设备时,蓝牙主设备在蓝牙链路piconet1上运行结束后,切换到蓝牙链路piconet2时,蓝牙主设备作为蓝牙链路piconet2的master,蓝牙从设备在蓝牙链路piconet1运行结束后,切换到蓝牙链路piconet2时,作为蓝牙链路piconet2的slave。
72.由于蓝牙主设备在蓝牙链路piconet1上已经做了本地时钟的微秒时钟us1调整,且其在蓝牙链路piconet1上经过本地时钟中的微秒时钟调整后的本地时钟作为蓝牙链路piconet2的系统时钟,而蓝牙从设备在蓝牙链路piconet1上监听时同样做了本地时钟微秒单位的us3调整,us1的调整和us3的调整都是基于源设备时钟的调整,使得蓝牙主设备和蓝牙从设备都跟随源设备的时钟同步,那么在切换到蓝牙链路piconet2上时,蓝牙主设备和蓝牙从设备的时钟就已经保持了同步,不需要再进行蓝牙链路piconet2的us2调整,就达到了微秒时钟偏移us_offset2不变的效果。
73.进一步的,本发明实施例中的方法,在保证微秒时钟偏移us_offset不变的前提下,基于蓝牙协议规范定义的标准流程,在蓝牙链路piconet2上同时调整蓝牙主设备和蓝牙从设备的本地时钟native clk的微秒时钟的us值,使蓝牙主设备和蓝牙从设备之间、蓝牙主设备与源设备之间,以及蓝牙从设备与蓝牙源设备之间的时钟相位差均为625us,即蓝牙链路运行的slot单位625us。
74.在一些具体实施例中,在蓝牙链路piconet1上,蓝牙主设备计算获得其微秒时钟偏移us_offset1与625us之间的差值clk_adj_us;在蓝牙链路piconet2上,基于蓝牙协议规范定义的标准流程,同时调整蓝牙主设备和蓝牙从设备的本地时钟中的微秒时钟,调整值为clk_adj_us,使us_offset1在之后保持为625us。
75.当蓝牙从设备从蓝牙链路piconet2再切换到监听链路时,蓝牙从设备的微秒时钟偏移us_offset3的值将保持不变;从监听链路再切换到蓝牙链路piconet2时,微秒时钟偏
移us_offset2的值将保持不变。这时us_offset1、us_offset2和us_offset3相同,均为625us,链路按时隙单位slot对齐,与bt_clk_offset的单位312.5us成整数倍的关系,由于此时各链路上slave的微秒偏移保持不变,这时蓝牙链路piconet1上的蓝牙主设备相对于源设备的时钟偏移bt_clk_offset1,和蓝牙从设备相对于源设备的时钟偏移bt_clk_offset3保持不变,同时蓝牙链路piconet2上的蓝牙从设备相对于蓝牙主设备的时钟偏移bt_clk_offset2也保持不变。
76.当链路按时隙单位slot对齐,us_offset1、us_offset2和us_offset3均为625us时,蓝牙从设备在监听链路和蓝牙链路piconet2之间切换时,只需要更新bt_clk_offest值bt_clk_offset3和bt_clk_offset2,软件中能省去更新us_offset的这个动作,将能省去部分的切换耗时占比,达到快速切换的目的。
77.当链路按时隙单位slot对齐,us_offset1、us_offset2和us_offset3均为625us时,且在发生链路切换前的蓝牙空闲时间内,软件中按照蓝牙标准提前计算出蓝牙主设备切换后的第一次tx或rx起始点,并提前配置好硬件tx/rx收发所需的参数,则可让切换后链路快速进行通信,通信效率将得到大幅提升,基本不浪费任何时间,做到无耗时的piconet切换。
78.在具体实施过程中,蓝牙链路piconet1和蓝牙链路piconet2的链路类型可以是以下两种情况:(1)蓝牙链路piconet1和蓝牙链路piconet2均为经典蓝牙链路。(2)其中一路为经典蓝牙,另一路为ble链路。
79.实施例2
80.本发明实施例中提供了一种蓝牙设备,所述蓝牙设备可以是蓝牙主设备或蓝牙从设备;当所述蓝牙主设备和蓝牙从设备在与源设备通信的链路中作为slave角色时,基于收到源设备发包时前后两次的syncword时间差调整其本地时钟中的微秒时钟,使得其微秒时钟偏移保持不变,以及其本地时钟与源设备的时钟保持同步。
81.所述蓝牙设备可以用于执行实施1中的蓝牙设备多链路快速切换方法,其具体过程参照本说明书其它部分的描述,此处不再赘述。
82.实施例3
83.本发明实施例中提供了一种蓝牙音频设备多链路快速切换系统,如图2所示,包括:源设备、蓝牙主设备和蓝牙从设备;
84.所述源设备与蓝牙主设备建立蓝牙链路piconet1,源设备与蓝牙从设备之间建立监听链路,蓝牙主设备和蓝牙从设备建立蓝牙链路piconet2;
85.在蓝牙链路piconet1运行时,作为slave角色的蓝牙主设备,计算出其收到源设备发包时前后两次的syncword时间差,并基于所述syncword时间差调整本地时钟中的微秒时钟,使得蓝牙主设备的本地时钟与源设备的时钟保持同步,且保持微秒时钟偏移us_offset1不变;
86.在监听链路运行时,作为slave角色的蓝牙从设备,计算出其收到源设备发包时前后两次的syncword时间差,并基于所述syncword时间差调整本地时钟中的微秒时钟,使得蓝牙从设备的本地时钟与源设备的时钟保持同步,且保持微秒时钟偏移us_offset3不变。
87.在本发明实施例的一种具体实施方式中,当蓝牙链路piconet2运行时,蓝牙主设备在蓝牙链路piconet2中作为master角色,蓝牙从设备在蓝牙链路piconet2中作为slave
角色;
88.在蓝牙链路piconet2运行时,同时调整蓝牙主设备和蓝牙从设备的本地时钟中的微秒时钟,使蓝牙主设备和蓝牙从设备之间、蓝牙主设备与源设备之间,以及蓝牙从设备与蓝牙源设备之间的时钟相位差均为625us。
89.在本发明实施例的一种具体实施方式中,在蓝牙链路piconet1运行时,蓝牙主设备计算获得其微秒时钟偏移us_offset1与625us之间的差值clk_adj_us;
90.在蓝牙链路piconet2运行时,蓝牙主设备和蓝牙从设备同时调整各自的本地时钟中的微秒时钟,调整值为clk_adj_us,使us_offset1在之后保持为625us。
91.在本发明实施例的一种具体实施方式中,当包括通信相连的蓝牙主设备和蓝牙从设备的蓝牙链路piconet2运行时,蓝牙主设备在蓝牙链路piconet2中作为master角色,蓝牙从设备在蓝牙链路piconet2中作为slave角色;
92.当蓝牙链路piconet1运行结束时,蓝牙从设备从监听链路切换到蓝牙链路piconet2,使用在蓝牙链路piconet1上经过利用syncword时间差调整本地时钟中的微秒时钟调整后的本地时钟,作为蓝牙链路piconet2的系统时钟,蓝牙从设备和蓝牙主设备的本地时钟保持同步,不调整蓝牙链路piconet2的本地时钟中的微秒时钟us2,保持微秒时钟偏移us_offset2不变。
93.在本发明实施例的一种具体实施方式中,当蓝牙从设备从蓝牙链路piconet2切换到监听链路时,保持微秒时钟偏移us_offset3不变;当蓝牙从设备再次从监听链路切换到蓝牙链路piconet2时,保持微秒时钟偏移us_offset2不变,达到主设备与源设备,主从设备,蓝牙从设备与源设备的相位差均为625us,微秒时钟偏移us_offset1、us_offset2和us_offset3均为625us,按照蓝牙时隙对齐。
94.在本发明实施例的一种具体实施方式中,所述蓝牙主设备和蓝牙从设备同时进入蓝牙收发工作状态和同时退出蓝牙收发工作状态,蓝牙链路切换发生在蓝牙非工作状态的空闲时间。
95.下面结合一具体实施方式对本发明实施例中的系统的工作过程进行详细说明。
96.蓝牙链路piconet1运行时,源设备在蓝牙链路piconet1中作为master角色,蓝牙主设备(中继点)在蓝牙链路piconet1中作为slave角色,蓝牙主设备在蓝牙链路piconet1中收包时,通常会提前一段时间开启接收硬件配置。基于本发明实施例中的方法,在蓝牙链路piconet1上通过前后两次的syncword时间差调整蓝牙主设备本地时钟中的微秒时钟us1,即每次调整的是蓝牙主设备本地时钟的微秒单位值,微秒时钟偏移us_offset1保持不变。
97.当蓝牙主设备在蓝牙链路piconet1上运行结束后,切换到蓝牙链路piconet2时,蓝牙主设备作为蓝牙链路piconet2的master,蓝牙从设备在蓝牙链路piconet2中作为slave角色,将使用在蓝牙链路piconet1上经过本地时钟中的微秒时钟调整后的本地时钟作为蓝牙链路piconet2的系统时钟,当蓝牙主设备再切换到蓝牙链路piconet1时,蓝牙主设备的微秒时钟偏移us_offset1的值将保持不变,这样蓝牙主设备能省去在链路切换过程中每次去配置更新微秒时钟偏移us_offset1的过程,实现省去部分的切换耗时占比,达到快速切换的目的。
98.蓝牙链路piconet1运行时,且音源设备播放音乐,蓝牙主设备接收音源设备发送
的音频数据包,从设备与蓝牙音源设备建立监听链路,蓝牙从设备(监听节点)在监听链路上作为slave角色,通过监听链路接收音源设备发送的音频数据包。其在监听链路上收包时,通常会提前一段时间开启接收硬件配置。基于本发明实施例中的方法,在监听链路上通过前后两次收包的syncword时间差,调整蓝牙从设备本地时钟中的微秒时钟us3,即每次调整的是蓝牙从设备本地时钟的微秒单位值,微秒时钟偏移us_offset3保持不变。
99.当蓝牙链路piconet2中的slave与监听链路上的蓝牙从设备是同一个设备时,蓝牙主设备在蓝牙链路piconet1上运行结束后,切换到蓝牙链路piconet2时,蓝牙主设备作为蓝牙链路piconet2的master,蓝牙从设备在蓝牙链路piconet1运行结束后,切换到蓝牙链路piconet2时,作为蓝牙链路piconet2的slave。
100.由于蓝牙主设备在蓝牙链路piconet1上已经做了本地时钟的微秒时钟us1调整,且其在蓝牙链路piconet1上经过本地时钟中的微秒时钟调整后的本地时钟作为蓝牙链路piconet2的系统时钟,而蓝牙从设备在蓝牙链路piconet1上监听时同样做了本地时钟微秒单位的us3调整,us1的调整和us3的调整都是基于源设备时钟的调整,使得蓝牙主设备和蓝牙从设备都跟随源设备的时钟同步,那么在切换到蓝牙链路piconet2上时,蓝牙主设备和蓝牙从设备的时钟就已经保持了同步,不需要再进行蓝牙链路piconet2的us2调整,就达到了微秒时钟偏移us_offset2不变的效果。
101.进一步的,本发明实施例中的方法,在保证微秒时钟偏移us_offset不变的前提下,基于蓝牙协议规范定义的标准流程,在蓝牙链路piconet2上同时调整蓝牙主设备和蓝牙从设备的本地时钟native clk的微秒时钟的us值,使蓝牙主设备和蓝牙从设备之间、蓝牙主设备与源设备之间,以及蓝牙从设备与蓝牙源设备之间的时钟相位差均为625us,即蓝牙链路运行的slot单位625us。
102.在一些具体实施例中,在蓝牙链路piconet1上,蓝牙主设备计算获得其微秒时钟偏移us_offset1与625us之间的差值clk_adj_us;在蓝牙链路piconet2上,基于蓝牙协议规范定义的标准流程,同时调整蓝牙主设备和蓝牙从设备的本地时钟中的微秒时钟,调整值为clk_adj_us,使us_offset1在之后保持为625us。
103.当蓝牙从设备从蓝牙链路piconet2再切换到监听链路时,蓝牙从设备的微秒时钟偏移us_offset3的值将保持不变;从监听链路再切换到蓝牙链路piconet2时,微秒时钟偏移us_offset2的值将保持不变。这时us_offset1、us_offset2和us_offset3相同,均为625us,链路按时隙单位slot对齐,与bt_clk_offset的单位312.5us成整数倍的关系,由于此时各链路上slave的微秒偏移保持不变,这时蓝牙链路piconet1上的蓝牙主设备相对于源设备的时钟偏移bt_clk_offset1,和蓝牙从设备相对于源设备的时钟偏移bt_clk_offset3保持不变,同时蓝牙链路piconet2上的蓝牙从设备相对于蓝牙主设备的时钟偏移bt_clk_offset2也保持不变。
104.当链路按时隙单位slot对齐,us_offset1、us_offset2和us_offset3均为625us时,蓝牙从设备在监听链路和蓝牙链路piconet2之间切换时,只需要更新bt_clk_offest值bt_clk_offset3和bt_clk_offset2,软件中能省去更新us_offset的这个动作,将能省去部分的切换耗时占比,达到快速切换的目的。
105.当链路按时隙单位slot对齐,us_offset1、us_offset2和us_offset3均为625us时,且在发生链路切换前的蓝牙空闲时间内,软件中按照蓝牙标准提前计算出蓝牙主设备
切换后的第一次tx或rx起始点,并提前配置好硬件tx/rx收发所需的参数,则可让切换后链路快速进行通信,通信效率将得到大幅提升,基本不浪费任何时间,做到无耗时的piconet切换。
106.在具体实施过程中,蓝牙链路piconet1和蓝牙链路piconet2的链路类型可以是以下两种情况:(1)蓝牙链路piconet1和蓝牙链路piconet2均为经典蓝牙链路。(2)其中一路为经典蓝牙,另一路为ble链路。
107.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
108.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
109.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
110.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
111.以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
112.以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献