发明内容
本发明实施例主要解决的技术问题是蓝牙设备集成过多Profile功能导致设备功能误解及连接交互信息量大的问题。
为解决上述技术问题,本发明实施例提供了多功能蓝牙设备的连接方法。该方法包括:设置若干虚拟设备;所述虚拟设备具有独立的设备信息,与至少一个蓝牙功能对应;在设备搜索过程中,分时切换所述设备信息以提供给主设备;建立所述虚拟设备与所述主设备的连接;执行与所述虚拟设备对应的蓝牙功能。
可选地,所述在设备搜索过程中,分时切换所述设备信息以提供给主设备,具体包括:
分时切换所述设备信息以应答主设备的搜索请求。
可选地,所述建立所述虚拟设备与所述主设备的连接,具体包括:
获取主设备的连接请求并确定与所述连接请求对应的虚拟设备;保存与所述虚拟设备对应的蓝牙功能;停止其余虚拟设备的可发现功能。
可选地,所述在设备搜索过程中,分时切换所述设备信息以提供给主设备,具体包括:
分时切换所述设备信息进行广播。
可选地,所述设备信息包括:设备地址、设备名称以及设备属性。
为解决上述技术问题,本发明实施例还提供了一种多功能蓝牙设备。该多功能蓝牙设备包括:分配模块,用于设置若干虚拟设备;所述虚拟设备具有独立的设备信息,与至少一个蓝牙功能对应;定时模块,用于在设备搜索过程中,分时切换所述设备信息以提供给主设备;连接模块,用于建立所述虚拟设备与所述主设备的连接;以及操作模块,用于执行与所述虚拟设备对应的蓝牙功能。
可选地,所述定时模块具体用于:分时切换所述设备信息以应答主设备的搜索请求。
可选地,所述连接模块具体用于:获取主设备的连接请求并确定与所述连接请求对应的虚拟设备;保存与所述虚拟设备对应的蓝牙功能;停止其余虚拟设备的可发现功能。
可选地,所述定时模块具体用于:分时切换所述设备信息进行广播。
可选地,所述设备信息包括:设备地址、设备名称以及设备属性。
为解决上述技术问题,本发明实施例还提供了一种多功能蓝牙设备。该多功能蓝牙设备包括:存储器,用于存储与蓝牙功能对应的配置文件;定时器,用于提供预定的时间周期;处理器,用于设置若干虚拟设备;所述虚拟设备具有独立的设备信息,支持至少一个所述配置文件;在设备搜索过程中,根据所述定时器提供的时间周期,分时切换所述设备信息以提供给主设备;建立所述虚拟设备与所述主设备的连接并执行与所述虚拟设备对应的蓝牙功能。
可选地,所述处理器具体用于:接收所述主设备发送的ID包;与主设备的时隙对齐;向主设备发送虚拟设备的FHS包,不同虚拟设备的FHS包根据所述定时器提供的时间周期分时切换。
可选地,所述处理器具体用于:在建立所述虚拟设备与所述主设备的连接后,停止其余虚拟设备的可发现功能。
本发明实施例中提供的多功能蓝牙设备及其连接方法,通过将多种蓝牙功能分配到各个虚拟生成的虚拟设备中,然后由主设备分别与多个虚拟设备进行连接,从而可以降低主设备与从设备之间的连接交互和通信量,并且在一个蓝牙设备集成多个Profile的情况具有良好的设备连接稳定性和兼容性。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
蓝牙标准协议规定在一个蓝牙设备中,可以支持多个配置文件(Profile)。一般的,配置文件(Profile)可以理解为一个蓝牙功能,定义了可能的应用。例如支持蓝牙立体声传输规范(A2DP)的两个蓝牙设备之间可以执行立体声音乐的蓝牙无线传输功能。
图1为本发明实施例提供的多功能蓝牙设备的应用环境。如图1所示,包括:用户10、多功能蓝牙设备20、主设备30以及网络40。
用户10可以为任意数量的,具有相同或者相近操作行为的群体,例如家庭、工作组或者个人。用户10可以通过任何合适的类型的,一种或者多种用户交互设备与多功能蓝牙设备20交互,例如鼠标、按键、遥控器、触摸屏、体感摄像头或者智能可穿戴设备,输入指令或者控制多功能蓝牙设备20执行一种或者多种操作,如音频播放操作、接听电话、播放下一首歌曲等。
多功能蓝牙设备20可以是各种类型的,集成有多种不同Profile的多功能电子设备,例如智能手机、平板电脑、蓝牙耳机、个人电脑、手提电脑、蓝牙音响、蓝牙连接的自拍杆或者其它智能/非智能终端设备。
多功能蓝牙设备20可以根据用户指令,与主设备30之间建立蓝牙连接,通过各种不同的Profile连接传输不同类型的数据或者指令。例如,该多功能蓝牙设备20可以为蓝牙耳机,集成有A2DP、HID、HSP、HFP等配置文件,主设备30为智能手机。用户10可以通过控制蓝牙耳机上的按键,实现对于智能手机的控制,控制歌曲的播放、暂停等,或者通过智能手机和蓝牙耳机之间的蓝牙通信连接,传输立体声音频数据或者通过蓝牙耳机接听电话。
一个蓝牙网络可以由一个主设备(Master)和多个从设备(Server)组成(每个独立同步的蓝牙网络称为一个微微网)。在图1所示的应用环境的蓝牙网络中,主设备30可以是任何合适类型的,支持蓝牙无线传输的硬件设备,例如智能手机、个人电脑、手提电脑、平板电脑、可穿戴智能设备等。主设备30能够与多个不同的从设备在一个微微网中建立连接。
相对于主设备30,多功能蓝牙设备20在蓝牙网络中担任从设备的角色,通过本发明实施例提供的多功能蓝牙设备连接方法,提供多个不同的虚拟设备作为从设备,与主设备30完成设备连接。
在此使用的“主设备”和“从设备”仅用以表示在蓝牙网络中硬件设备担任的角色。在实际运行过程中,设备角色可以根据实际需求进行转换,例如在存在多个多功能蓝牙设备20的情况下,其中一个多功能蓝牙设备20也可以作为主设备。
网络40可以是任何合适的,用以实现两个电子设备之间通信连接的有线或者无线网络,例如因特网、局域网或者有线线缆。多功能蓝牙设备20或者主设备30可以具有至少一个网络接口,与网络40建立通信连接,从网络40获取相应的数据或者指令。当然,多功能蓝牙设备20或者主设备30还可以具有至少一个本地存储装置,从本地存储装置获取相应的数据或者程序指令。
在另一些实施例中,可以根据实际情况,增加或者减省一些设备,例如可以减省网络40或者添加额外的用户交互设备。虽然图1中仅显示了2个多功能蓝牙设备20和1个主设备30,在一些实施例中,所述应用环境还可以包括任意数量的多功能蓝牙设备20、主设备30或者用户10。
图2为本发明实施例提供的,在图1所示的应用环境中使用的多功能蓝牙设备。如图2所示,该多功能蓝牙设备可以包括:存储器100、定时器200以及处理器300。
所述存储器100、定时器200以及处理器300之间可以通过任何合适的,有线或者无线连接方式实现通信连接,传输数据或者程序指令。在图2中,以总线连接为例。
存储器100可以是任何合适类型的非易失性计算机可读存储介质,用于存储与蓝牙功能对应的配置文件,提供给处理器使用。所述存储器100还可以存储其它的计算机软件程序指令,以使处理器300运行所述计算机软件程序指令,从而执行相应的功能步骤。
定时器200可以是基于硬件或者软件或者软件硬件结合实现的计时功能模块。定时器200用于向处理器300提供一个随机或者固定的时间周期,例如1s。在另一些实施例中,定时器200还可以是集成在处理器300中的其中一个功能模块。
处理器300具体可以是任何类型的,具有一定逻辑运算能力的集成芯片或者分立式电子电路,例如多核心或者单核心的中央处理器。其可以调用存储器100和定时器200提供的数据,在一个多功能蓝牙设备中虚拟出多个不同的虚拟设备。
其中,每个虚拟设备都具有自己独立的设备信息,支持至少一个所述配置文件。例如,对于一个集成有蓝牙立体声传输规范(A2DP),蓝牙耳机规范(HSP)以及人机界面规范(HID)三种Profile的多功能蓝牙设备,处理器300可以分别为其配置三个不同的虚拟设备1、虚拟设备2以及虚拟设备3,分别与三个不同的Profile对应。
在另一些实施例中,不同的虚拟设备还可以支持相同的Profile,或者支持多于一个的Profile。具体的虚拟设备与支持的Profile之间的对应关系可以由技术人员根据实际情况所决定或者调整。
在主设备进行设备搜索过程中,在经典蓝牙协议中,如图3所示,主设备30为查找设备,会不断广播一个固定的ID包。多功能蓝牙设备20接收到该ID包后,会调整自己的时隙与主设备30对齐。并在下一个时隙中,发送FHS包给主设备,对主设备进行应答。
在蓝牙协议中,FHS包是一个特别的控制包,其包含了蓝牙设备地址、发送者时钟等的设备信息,图4为一个典型的FHS包的数据格式。
在本发明实施例中,由于一个多功能蓝牙设备中配置了多个不同的虚拟设备。因此,处理器300可以根据所述定时器提供的时间周期,分时切换所述设备信息对主设备30进行应答。
例如,如图3所示,处理器300可以在第一个时间周期T1,发送与虚拟设备1对应的FHS包至主设备30,然后在第二个时间周期T2,发送与虚拟设备2对应的FHS包至主设备30。在第三个时间周期T3发送与虚拟设备3对应的FHS包至主设备30。
该用于切换设备信息的时间周期由定时器200所产生。如图3所示,两个虚拟设备之间进行切换的间隔可以是任意的时间,亦即定时器产生的时间周期既可以是随机时间,也可以是固定的时间周期,具体可以根据实际情况所决定。
如图3所示,通过这样的方式,在主设备30的角度来看,其将会搜索到虚拟设备1、虚拟设备2以及虚拟设备3三个设备。在一个微微网内,主设备30可以分别与虚拟设备1、虚拟设备2以及虚拟设备3三个设备之间建立蓝牙通信连接,进行数据通信。
在图1所示的应用环境中,主设备30根据搜索到的多个虚拟设备的设备信息(如设备地址、设备名称),可以发起对应的设备连接请求。
由于主设备30发起的设备连接请求是针对其中一个虚拟设备的ID包。因此,多功能蓝牙设备20可以根据获取的ID包,确定具体的虚拟设备及对应的Profile(或者功能),并完成后续的一些操作(如协议发现、设备Profile连接过程)建立与主设备30的连接。
在主设备30与虚拟设备之间的连接完成后,主设备30每次与虚拟设备之间进行的蓝牙通信均可以由该多功能蓝牙设备根据虚拟设备的具体配置情况,执行对应的蓝牙功能。
当主设备30与其中一个虚拟设备(如虚拟设备1)连接完成后,根据实际的使用情况,多功能蓝牙设备20可以选择停止其它虚拟设备的可检索,可发现功能,使得主设备30在设备搜索过程中,不能搜索到由多功能蓝牙设备虚拟的其它虚拟设备。这样的,调度状态会减少,设备更为简单。
在另一些实施例中,当主设备30与其中一个虚拟设备(如虚拟设备1)连接完成后,多功能蓝牙设备也可以继续保持其它虚拟设备在可发现、可检索功能。主设备30仍然可以搜索到其它的虚拟设备(如虚拟设备2,虚拟设备3)。
在本发明实施例中,通过处理器300执行的设备信息切换操作,可以在一个多功能蓝牙设备20中虚拟出多个不同的虚拟设备(如虚拟设备1,虚拟设备2以及虚拟设备3)。一方面,在多功能蓝牙设备20内部,可以通过处理器300设置虚拟设备时的设备地址等设备信息,对实际的多功能蓝牙设备的功能属性进行管理。
另一方面,对于主设备30而言,其分别与集成了较少数量Profile的从设备建立设备连接,并支持相应的蓝牙功能(如蓝牙立体声传输、蓝牙通话等)。与惯常直接与集成多个Profile的多功能蓝牙设备建立连接的方式相比,该多功能蓝牙设备20与主设备30之间连接可以被认为是多个从设备与主设备之间的连接,(如主设备分别与支持A2DP的从设备和支持HID的从设备连接)。因此,连接的兼容性和稳定性明显提高,出错率较小,不会导致功能上的误解。而且,由于从设备(即虚拟设备)集成的Profile数量少,从设备与主设备的Profile连接交互和通信量降低。
在本发明另一实施例中,上述处理器300在一个物理蓝牙设备上虚拟出多个虚拟蓝牙设备作为从设备具体可以由其它一个或者多个功能模块实现,该功能模块可以是通过硬件、软件或者软件硬件结合的方式实现。图5为本发明实施例提供的多功能蓝牙设备的功能框图。
如图5所示,该多功能蓝牙设备可以包括:分配模块100,定时模块200、连接模块300以及操作模块400。
其中,所述分配模块100用于设置若干虚拟设备;所述虚拟设备具有独立的设备信息,与至少一个蓝牙功能对应。定时模块200用于在设备搜索过程中,分时切换所述设备信息以提供给主设备。连接模块300用于建立所述虚拟设备与所述主设备的连接。操作模块400用于执行与所述虚拟设备对应的蓝牙功能。
首先,多功能蓝牙设备通过分配模块100,将不同的蓝牙功能分别分配至多个虚拟设备中。
其中,各个虚拟设备都具有自己独立的设备信息,用以区分不同的虚拟设备和确定虚拟设备对应的蓝牙功能(如Profile)。例如,该设备信息可以包括设备地址、设备名称以及设备属性等信息。
而在设备搜索阶段,定时模块200根据定时器或者其它方式提供的固定或者随机时间周期,分时切换提供给主设备的设备信息。由于向主设备分时应答了不同的设备信息。因此,主设备将搜索到多个不同的设备(由多功能蓝牙设备虚拟生成)。
在完成设备搜索后,连接模块300根据主设备30的连接请求,执行相应的一些操作,建立对应的虚拟设备与主设备之间的设备连接。
最后,由操作模块400对多功能蓝牙设备的设备功能或者属性进行管理,执行与虚拟设备对应的蓝牙功能。例如,根据虚拟设备1的设备地址,在虚拟设备1与主设备的通信过程中,进行立体声音频的蓝牙传输。
图6为本发明实施例提供的多功能蓝牙设备的连接方法的方法流程图。如图6所示,所述方法包括如下步骤:
100:设置若干虚拟设备;所述虚拟设备具有独立的设备信息,与至少一个蓝牙功能对应。
在本发明实施例中,该蓝牙功能可以指实现某种应用或者某种连接。一个配置文件(profile)可以认为描述了一个蓝牙功能。
200:在设备搜索过程中,分时切换所述设备信息以提供给主设备。
蓝牙标准规范中定义了设备搜索、连接和通信等标准流程。其中,在设备所述过程中,主设备会根据从设备反馈的设备信息发现这些设备。在本实施例中,多功能蓝牙设备通过分时向主设备反馈多个虚拟设备的设备信息的方式,可以令主设备在设备搜索过程中发现这些虚拟设备。
300:建立所述虚拟设备与所述主设备的连接。虚拟设备与主设备之间的连接可以根据使用的蓝牙协议的定义进行相应的调整后完成。
在建立了其中一个虚拟设备与所述主设备的连接后,多功能蓝牙设备可以选择停止其它虚拟设备的可发现,可搜索功能。当然,在另一些实施例中,多功能蓝牙设备也可以不停止可发现,可搜索功能。
400:执行与所述虚拟设备对应的蓝牙功能。每个虚拟设备均可以采用相类似的方式,通过标准的操作流程与主设备分别建立连接(作为从设备)。多功能蓝牙设备根据虚拟设备的设置情况,对这些蓝牙功能(即Profile)进行管理。
图3为在经典蓝牙协议规范下的设备搜索过程。如图3所示,在步骤200中,多功能蓝牙设备20根据主设备发送的ID包,分时切换所述设备信息以应答主设备,使主设备能够搜索到多个不同的虚拟设备。
在设备搜索完成后,根据经典蓝牙协议对于设备连接、通信过程的定义,为实现虚拟设备与主设备之间完整的通信过程,步骤300具体可以包括:
首先,获取主设备的连接请求并确定与所述连接请求对应的虚拟设备。主设备在发起设备连接时,会发送一个针对该虚拟设备的ID包(或者其它类型的数据包)。多功能蓝牙设备可以根据这个ID包确定对应的虚拟设备。
然后,保存与所述虚拟设备对应的蓝牙功能。确定了虚拟设备后,多功能蓝牙设备可以据此确定此时主设备需要连接的蓝牙功能(如A2DP)。多功能蓝牙设备可以保存记录该虚拟设备对应的蓝牙功能(如Profile),以便于后续的操作。在虚拟设备与主设备连接完成后,每次主设备与虚拟设备的通信均为连接时对多功能蓝牙设备对应的设备功能属性的操作。
在本实施例中,一个多功能蓝牙设备可以虚拟出多个虚拟设备,并且根据虚拟设备设置的设备信息管理多功能蓝牙设备的设备功能和属性。而且,多功能蓝牙设备可以在连接过程中,获知主设备当前需要处于何种应用的工作模式下(根据连接的虚拟设备对应的蓝牙功能可以获知)。
例如,在主设备30为智能手机,多功能蓝牙设备20为蓝牙耳机时,多功能蓝牙设备可以根据智能手机发起设备连接的目标虚拟设备(如虚拟设备2),确定智能手机此时需要的处于无线蓝牙通话的工作模式中。这样的,可以令多功能蓝牙设备据此作出一些差异化的人机交互,例如特别的提示音、调整音频的音量或者改变音频播放的模式。
在另一些实施例中,多功能蓝牙设备20还可能支持除经典蓝牙协议规范外的其它协议,例如BLE低功耗蓝牙。由于在BLE协议规范中,定义设备搜索过程采用设备主动广播设备地址、名称以及属性等设备信息的方式。因此,步骤200可以相应的调整为:多功能蓝牙设备20分时广播的不同虚拟设备的设备信息,从而使主设备能够搜索到多个不同的虚拟设备。当然,该切换的时间周期可以是随机周期,也可以是一个固定的时间周期。
完成设备搜索后,与上述经典蓝牙协议规范中的操作相类似,后续的连接和通信过程均可以根据BLE协议规范中的定义,对主设备和虚拟设备之间的连接和通信进行相应的调整,从而实现一个多功能蓝牙设备在BLE低功耗蓝牙协议中,虚拟出多个虚拟设备与主设备进行连接的目标。
需要说明的是,由于上述方法实施例与装置实施例基于相同的申请构思,因此,装置实施例中的相应内容同样适用于方法实施例,方法实施例中的相应内容也可以由装置实施例中的各个功能模块执行,此处不再详述。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的示例性的蓝牙通信步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所述的计算机软件可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。