蓝牙数据同步操作的方法、装置及蓝牙设备
技术领域
本发明属于蓝牙通信技术领域,尤其涉及一种蓝牙数据同步操作的方法、装置及蓝牙设备。
背景技术
蓝牙耳机由于其技术成熟、传输容量大、辐射量低、无线使用自由方便、便携等优点,被人们广泛地使用。尤其是主副蓝牙耳机的出现,使得蓝牙耳机的应用不在局限于单人使用场景,更加可以扩展至多人同时使用的场景,单个主蓝牙耳机可以关联多个副蓝牙耳机,蓝牙音源设备与主蓝牙耳机通过标准蓝牙协议连接,主蓝牙耳机与副蓝牙耳机也是通过标准蓝牙协议进行连接,主耳机负责接收蓝牙音源设备的音频,本地播放的同时,把蓝牙数据通过标准蓝牙协议转发蓝牙副耳机,所有副蓝牙耳机均是通过标准蓝牙协议与主蓝牙耳机进行通信。
现有主副蓝牙耳机在播放过程中,主耳机播放的音乐需要与副耳机播放的音乐进行同步。若无音频同步,则会出现主耳机和副耳机听到的声音有延迟。根据哈斯效应对人们分辨延迟的进行一些描述,当延迟声与先导声的时间差小于17 ms时,人耳不会感觉到是两个声音,当时间差达到25~50 ms时,延迟声能被听到但不能与先导声分开,只有当超过50ms时,人们才能把两个声音分开。现有主副蓝牙耳机存在延迟声与先导声的时间差存在ms级延时,严重时会超过50ms,延迟带来了不好的用户体验。
发明内容
本发明实施例提供了一种蓝牙数据同步操作的方法、装置及蓝牙设备,旨在解决现有主副蓝牙耳机存在延迟声与先导声的时间差存在ms级延时,严重时会超过50ms,延迟带来了不好的用户体验的问题。
第一方面,提供一种蓝牙数据同步操作的方法,所述方法包括:
在蓝牙通信过程中,接收来自外部蓝牙设备的源数据;
判断所述源数据是否包括同步时钟;
如果所述源数据包括同步时钟,转发所述源数据,等待并判断所述同步时钟是否到达;
如果所述同步时钟到达,开始操作所述源数据。
优选的,在所述转发所述源数据,等待并判断所述同步时钟是否到达的步骤之前,所述方法还包括:
如果所述源数据不包括同步时钟,获取本地时钟作为同步时钟;
以所述同步时钟作为基准时钟增加到所述源数据。
优选的,所述基准时钟以蓝牙标准协议的312.5us为单位,则蓝牙蓝牙时隙为625us;
或所述基准时钟以us为单位。
优选的,所述外部蓝牙设备为数据输出设备时,所述接收来自外部蓝牙设备的源数据具体:
在所述蓝牙时隙的奇数时隙上,接收来自数据输出设备的源数据;
所述转发所述源数据具体:
在所述蓝牙时隙的偶数时隙上转发所述源数据给至少一个副蓝牙设备。
优选的,所述外部蓝牙设备为主蓝牙设备时,所述接收来自外部蓝牙设备的源数据具体:
在所述蓝牙时隙的偶数时隙上,接收来自其他蓝牙设备的源数据。
第二方面,提供一种蓝牙数据同步操作的装置,所述装置包括:
数据接收单元,用于在蓝牙通信过程中,接收来自外部蓝牙设备的源数据;
第一判断单元,用于判断所述源数据是否包括同步时钟;
数据转发单元,用于如果所述源数据包括同步时钟,转发所述源数据;
第二判断单元,用于等待并判断所述同步时钟是否到达;
数据操作单元,用于如果所述同步时钟到达,开始操作所述源数据。
优选的,所述装置还包括:
时钟获取单元,用于如果所述源数据不包括同步时钟,获取本地时钟作为同步时钟;
时钟增加单元,用于以所述同步时钟作为基准时钟增加到所述源数据。
优选的,所述基准时钟以蓝牙标准协议的312.5us为单位,则蓝牙蓝牙时隙为625us;
或所述基准时钟以us为单位。
优选的,所述数据接收单元具体用于在所述蓝牙时隙的奇数时隙上,接收来自数据输出设备的源数据;
所述数据转发单元具体用于在所述蓝牙时隙的偶数时隙上转发所述源数据给至少一个副蓝牙设备。
优选的,所述数据接收单元还具体用于在所述蓝牙时隙的偶数时隙上,接收来自其他蓝牙设备的源数据。
第三方面,提供一种蓝牙设备,所述蓝牙设备包括蓝牙通信模组、存储器以及耦合至所述蓝牙通信模组和存储器的处理器,所述存储器存储有可被所述处理器执行的指令程序,所述处理器执行所述指令程序,通过分时复用所述蓝牙通信模组以使所述蓝牙设备执行上述任一项所述的蓝牙数据同步操作的方法。
在本发明实施例,在蓝牙通信过程中,接收来自外部蓝牙设备的源数据;判断所述源数据是否包括同步时钟;如果所述源数据包括同步时钟,转发所述源数据,等待并判断所述同步时钟是否到达;如果所述同步时钟到达,开始操作所述源数据。本发明,主蓝牙设备传送给副蓝牙设备的每个数据包中均带有同步时钟,主蓝牙设备和副蓝牙设备以该同步时钟为基准对数据包进行操作,实现了音频同步,提高了用户体验。
附图说明
图1是本发明实施例一提供的蓝牙数据同步操作的***的结构框图;
图2是本发明实施例一提供的蓝牙设备的通信时隙图;
图3是本发明实施例二提供的蓝牙数据同步操作的方法的流程图;
图4是本发明实施例三提供的蓝牙数据同步操作的方法的流程图;
图5是本发明实施例四提供的蓝牙数据同步操作的装置的结构框图;
图6是本发明实施例五提供的蓝牙数据同步操作的装置的结构框图;
图7是本发明实施例六提供的蓝牙设备的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的实现进行详细描述:
需要说明的是,在蓝牙(Bluetooth)中,蓝牙设备不需要实现全部的蓝牙规范。为了支持不同的蓝牙设备之间的兼容,在蓝牙规范中定义了一些应用层协议(profile),其用以定义蓝牙设备之间如何实现一种连接或者应用。
其中,A2DP(Advenced Audio Distribution Profile蓝牙音频传输模型协定)属于上述的蓝牙协议profile中的一个子集。A2DP是专门为使用蓝牙传送立体声音频而制定。在两个蓝牙设备均支持该规范的情况下,即可使用蓝牙传送立体声音频。
蓝牙是一个点对点或者点对多点的拓扑结构,但是其之间的交互均基于一个物理信道。其中,点对多点可以共享一个物理信道。在基于同一个物理信道的微微网(piconet)中,硬件设备可以担任主设备(master)或者从设备(slave)的角色,具体的设备角色可以由设备任意选择,用以实现对应的控制功能(一个微微网中只能存在一个主设备)。当然,不同的微微网之间是可以存在交叉的,即一个微微网中的从设备可以作为另一个微微网中的主设备。
以下实施例中所述数据输出设备包括手机、平板、笔记本、蓝牙音响、蓝牙MP3、CD机或者其它智能/非智能终端设备,主蓝牙设备包括主蓝牙耳机、副蓝牙设备包括副蓝牙耳机。
实施例一
图1示出了本发明实施例一提供的蓝牙数据同步操作的***的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。在本实施例中,该蓝牙数据同步操作的***包括所述***包括数据输出设备11、主蓝牙设备12和至少一个副蓝牙设备13,其中,数据输出设备11与主蓝牙设备12、主蓝牙设备12与所有副蓝牙设备13进行蓝牙连接通信,主蓝牙设备12通过蓝牙通信模组,以蓝牙广播的方式转发数据输出设备11的源数据到至少一个副蓝牙设备13,主蓝牙设备12的蓝牙通信模组分时进行所有副蓝牙设备13的状态接收,其中,所述主蓝牙设备12用于在蓝牙通信过程中,接收来自数据输出设备11的源数据;判断所述源数据是否包括同步时钟;如果所述源数据不包括同步时钟,获取本地时钟作为同步时钟;以所述同步时钟作为基准时钟增加到所述源数据;转发所述源数据;等待并判断所述同步时钟是否到达;如果所述同步时钟到达,开始操作所述源数据。所述副蓝牙设备13还包括:接收来自主蓝牙设备12的源数据;判断所述源数据是否包括同步时钟;如果所述源数据包括同步时钟,转发所述源数据;等待并判断所述同步时钟是否到达;如果所述同步时钟到达,开始操作所述源数据。所述源数据包括音频数据包。
优选的,所述基准时钟以蓝牙标准协议的312.5us为单位,则蓝牙蓝牙时隙为625us;或所述基准时钟以us为单位。
优选的,如图2所示,主蓝牙设备12具体用于在所述蓝牙时隙的奇数时隙上,接收来自数据输出设备11的源数据;在所述蓝牙时隙的偶数时隙上转发所述源数据给至少一个副蓝牙设备。
优选的,副蓝牙设备12具体用于在所述蓝牙时隙的偶数时隙上,接收来自主蓝牙设备12的源数据。
本实施例,主蓝牙设备传送给副蓝牙设备的每个数据包中均带有同步时钟,主蓝牙设备和副蓝牙设备以该同步时钟为基准对数据包进行操作,实现了音频同步,提高了用户体验。
实施例二
图3示出了本发明实施例二提供的蓝牙数据同步操作的方法的实现流程,详述如下:
在步骤S301中,在蓝牙通信过程中,接收来自外部蓝牙设备的源数据。
在本实施例中,所述外部蓝牙设备为主蓝牙设备。
在步骤S302中,判断所述源数据是否包括同步时钟。
在本实施例中,所述同步时钟以主蓝牙设备的本地时钟作为基准时钟。所述基准时钟以蓝牙标准协议的312.5us为单位,或以us为单位的时钟。
在步骤S303中,如果所述源数据包括同步时钟,转发所述源数据,等待并判断所述同步时钟是否到达。
在本实施例中,在所述源数据包括同步时钟的情况,说明源数据来源于主蓝牙设备。
在步骤S304中,如果所述同步时钟到达,开始操作所述源数据。
优选的,所述接收来自外部蓝牙设备的源数据具体:
在所述蓝牙时隙的偶数时隙上,接收来自主蓝牙设备的源数据。
本实施例,主蓝牙设备传送给副蓝牙设备的每个数据包中均带有同步时钟,主蓝牙设备和副蓝牙设备以该同步时钟为基准对数据包进行操作,实现了音频同步,提高了用户体验。
实施例三
图4示出了本发明实施例三提供的蓝牙数据同步操作的方法的实现流程,详述如下:
在步骤S401中,在蓝牙通信过程中,接收来自外部蓝牙设备的源数据。
在本实施例中,所述外部蓝牙设备为数据输出设备。
在步骤S402中,判断所述源数据是否包括同步时钟。
在本实施例中,所述同步时钟以主蓝牙设备的本地时钟作为基准时钟。所述基准时钟以蓝牙标准协议的312.5us为单位,或以us为单位的时钟。判断所述源数据是否包括同步时钟,如果是,执行步骤S405,如果否,则执行步骤S403。
在步骤S403中,如果所述源数据不包括同步时钟,获取本地时钟作为同步时钟。
在步骤S404中,以所述同步时钟作为基准时钟增加到所述源数据。
在步骤S405中,转发所述源数据,等待并判断所述同步时钟是否到达。
在本实施例中,在所述源数据没有包括同步时钟的情况,说明源数据来源于数据输出设备。
在步骤S406中,如果所述源数据包括同步时钟,转发所述源数据,等待并判断所述同步时钟是否到达。
优选的,所述接收来自外部蓝牙设备的源数据具体:
在所述蓝牙时隙的奇数时隙上,接收来自数据输出设备的源数据;
所述转发所述源数据具体:
在所述蓝牙时隙的偶数时隙上转发所述源数据给至少一个副蓝牙设备。
本实施例,主蓝牙设备传送给副蓝牙设备的每个数据包中均带有同步时钟,主蓝牙设备和副蓝牙设备以该同步时钟为基准对数据包进行操作,实现了音频同步,提高了用户体验。
实施例四
图5示出了本发明实施例四提供的蓝牙数据同步操作的装置的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。在本实施例中,该蓝牙数据同步操作的装置包括数据接收单元51、第一判断单元52、数据转发单元53、第二判断单元54和数据操作单元55。
其中,数据接收单元51用于在蓝牙通信过程中,接收来自外部蓝牙设备的源数据,所述外部蓝牙设备包括主蓝牙设备;
第一判断单元52用于判断所述源数据是否包括同步时钟;
数据转发单元53用于如果所述源数据包括同步时钟,转发所述源数据;
第二判断单元54用于等待并判断所述同步时钟是否到达;
数据操作单元55用于如果所述同步时钟到达,开始操作所述源数据。
优选的,所述基准时钟以蓝牙标准协议的312.5us为单位,则蓝牙蓝牙时隙为625us;
或所述基准时钟以us为单位。
优选的,所述数据接收单元51还具体用于在所述蓝牙时隙的偶数时隙上,接收来自主蓝牙设备的源数据。
本发明实施例提供的蓝牙数据同步操作的装置可以应用在前述对应方法实施例二中,详情参见上述实施例二的描述,在此不再赘述。
实施例五
图6出了本发明实施例五提供的蓝牙数据同步操作的装置的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。在本实施例中,该蓝牙数据同步操作的装置包括数据接收单元61、第一判断单元62、时钟获取单元63、时钟增加单元64、数据转发单元65、第二判断单元66和数据操作单元67。
其中,数据接收单元61,用于在蓝牙通信过程中,接收来自外部蓝牙设备的源数据,所述外部蓝牙设备为数据输出设备;
第一判断单元62,用于判断所述源数据是否包括同步时钟;
时钟获取单元63,用于如果所述源数据不包括同步时钟,获取本地时钟作为同步时钟;
时钟增加单元64,用于以所述同步时钟作为基准时钟增加到所述源数据;
数据转发单元65,用于如果所述源数据包括同步时钟,转发所述源数据;
第二判断单元66,用于等待并判断所述同步时钟是否到达;
数据操作单元67,用于如果所述同步时钟到达,开始操作所述源数据。
优选的,所述基准时钟以蓝牙标准协议的312.5us为单位,则蓝牙蓝牙时隙为625us;
或所述基准时钟以us为单位。
优选的,所述数据接收单元61具体用于在所述蓝牙时隙的奇数时隙上,接收来自数据输出设备的源数据;
所述数据转发单元65具体用于在所述蓝牙时隙的偶数时隙上转发所述源数据给至少一个副蓝牙设备。
本发明实施例提供的蓝牙数据同步操作的装置可以应用在前述对应方法实施例三中,详情参见上述实施例三的描述,在此不再赘述。
实施例六
图7示出了本发明实施例六提供的蓝牙设备的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。在本实施例中,该蓝牙设备包括蓝牙通信模组71、存储器72以及耦合至所述蓝牙通信模组71和存储器72的处理器73,所述存储器72存储有可被所述处理器73执行的指令程序,所述处理器73执行所述指令程序,通过分时复用所述蓝牙通信模组71以使所述蓝牙设备执行实施例二和/或实施三所述的蓝牙数据同步操作的方法。
值得注意的是,本领域普通技术人员可以理解:实现上述方法实施例的步骤或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤,而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。