本发明涉及无线通信领域,特别是一种蓝牙音频主设备、从设备、蓝牙通信方法及系统。
背景技术:
目前,以蓝牙耳机、蓝牙音箱、蓝牙车载系统为代表的蓝牙音频设备和相关的蓝牙音频技术正在改变我们消费媒体的方式。
在支持空间分布的立体声蓝牙音频设备系统中,或者在左右耳分离式蓝牙耳机中,需要两个或多个蓝牙音频设备接收音频流进行播放。现阶段主流的蓝牙音频播放方式主要为转发方式或监听方式。
转发方式通常只能由若干蓝牙音频设备中的一个作为蓝牙音频主设备(简称为主设备),另一或另几个作为蓝牙音频从设备(简称为从设备),蓝牙通信的时机和速率由蓝牙音频主设备决定,同时蓝牙音频主设备在从音源设备接收音频报文时,蓝牙音频主设备又被用作音源设备的从设备。但音源设备(智能手机或pc等提供音源的设备)通常还需要处理wifi等无线通信数据或者其它更加复杂的任务,导致蓝牙通信效率低下;并且蓝牙音频主设备收到音频报文后,必须将每个报文都转发给其它蓝牙音频从设备。这就导致了蓝牙音频主设备的功耗较高且主、从设备的功耗不平衡,从而带来易用性方面的问题。
监听方式通常是蓝牙音频主设备和蓝牙音频从设备都收听所述音源设备发送的音频报文,但是只有其中一个蓝牙音频设备(即蓝牙音频主设备)与手机建立真实的连接,另外一个或几个蓝牙音频设备(即蓝牙音频从设备)处于监听模式。因为大大减少了蓝牙音频主设备向蓝牙音频从设备的报文转发,这种方式能降低主设备的功耗;但是,如果只使用监听方式,会导致主、从设备之间通信困难,从而很难实现主、从设备之间的音频播放同步、音量同步等功能;如果主、从设备之间增加通信流程,则在主、从设备通信期间,又无法监听到音源设备的发包,从而导致丢包,触发重传,在重传较多的情况下会引起通信效率下降或者卡顿。
因此,业界通常的做法是将监听方式与转发方式相结合,监听方式丢失的报文通过转发方式来获取,从而充分利用这两种方式的优势。按照这种方案,在主、从设备同步播放的场景下,同步播放的时延将由转发方式收到的音乐报文的时延来决定。
根据蓝牙技术规范的规定,蓝牙技术体系架构通常包括主机、控制器和hci接口(主机控制接口)三大部分。其中,所述控制器是整个协议栈的底层,包括蓝牙基带模块(bluetoothbaseband)、蓝牙射频模块(bluetoothrf),实现无线电信号的接收和发送;所述hci接口提供基带和链路管理器的命令接口,以及对硬件配置参数的访问接口,并具有hci缓存队列,所述主机则位于hci接口的上层,包含逻辑链路控制和适配协议(l2cap)、音频视频分发传输协议(avdtp)、加密/解密协议(可选的)、编码/解码协议等等,从而基于这些协议实现蓝牙设备的复杂功能。
如图1所示,为现有技术中,音源设备和蓝牙音频主设备(或蓝牙音频从设备)的原理框图,以此说明蓝牙音频报文传输和处理过程;音源设备发出的音频报文,在上层的主机控制及协议处理单元中,依次经编码协议、加密协议、音频视频分发传输协议、逻辑链路控制和适配协议,通过所述hci接口交由蓝牙基带模块、蓝牙射频模块向外发送,相应的,蓝牙音频主设备(或蓝牙音频从设备)接收音频报文,则采用上述过程的逆行过程,并在上层协议解析报文后,将解析出的音频报文存入缓存单元。并且,蓝牙音频从设备还通过计算缓存单元中,两个连续音频报文之间的序列号是否连续,来判断是否丢失报文、丢失报文个数以及丢失报文的序列号,然后对丢失报文发出转发请求,请求所述音源设备或蓝牙音频主设备向从设备转发其丢失的音频报文。
对于蓝牙音频从设备,由于音频报文经过了上述hci缓存队列、上层协议解码后的缓存单元两次缓存过程,整个音频报文传输过程存在较大延时,导致对音频报文的播放延时比较大,并且从设备每发现一个丢包都会发送一次转发请求,以至于转发交互的通信量比较大,极大影响了音源设备、蓝牙音频主设备及蓝牙音频从设备之间的通信效率。
技术实现要素:
本发明克服了上述至少一项缺点,提供了一种蓝牙音频主设备、从设备、蓝牙通信方法及系统。
本发明解决其技术问题所采取的技术方案是:
一种蓝牙通信方法,主设备具有与从设备同步切换的第一工作周期和第二工作周期,其中:
在所述第一工作周期内,主设备基于第一微微网接收来自音源设备的音频报文;
在所述第二工作周期内:
主设备基于第二微微网接收从设备发出的转发请求,所述转发请求为所述从设备根据其在所述第一工作周期内统计的音频报文的丢失情况而生成的;
主设备基于所述转发请求,确定待转发的音频报文,
将所述待转发的音频报文转发给所述从设备。
进一步的,所述转发请求可包含第一类参数和/或第二类参数,
所述第一类参数至少包括从设备请求转发报文的信息;
所述第二类参数至少包括所述从设备所接收到的最后一个音频报文的信息;
在所述第二工作周期内,所述主设备基于所述转发请求,确定待转发的音频报文,包括:所述主设备根据所述第一类参数获取从设备请求转发报文的序列号,和/或,所述主设备根据所述第二类参数,获取主设备补发报文的序列号;所述主设备根据所述从设备请求转发报文的序列号和/或所述主设备补发报文的序列号,确定所述待转发的音频报文。
进一步的,所述第一类参数可包括从设备请求转发报文的序列号;
所述第二类参数包括所述从设备所接收到的最后一个音频报文的序列号;
在所述第二工作周期内,所述主设备根据所述第二类参数,获取主设备补发报文的序列号,包括:根据所述第二类参数中的从设备收到的最后一个音频报文的序列号,以及所述主设备中已接收到的音频报文的序列号,确定在所述从设备最后一次收到的音频报文之后,是否还存在从设备丢失的一个或多个音频报文,如果存在,则将所述一个或多个音频报文的序列号作为所述主设备补发报文的序列号。
进一步的,所述主设备接收到来自音源设备的音频报文后,还可包括,基于预先确定的报文结构信息,解析音频报文以获得所接收到的音频报文的序列号;
在所述第二工作周期内,所述主设备根据所述从设备请求转发报文的序列号和/或所述主设备补发报文的序列号,确定待转发报文的序列号;根据所述待转发报文的序列号和已接收到的音频报文的序列号,获取相应的音频报文作为待转发的音频报文,并转发。
进一步的,所述主设备中可存储有已转发音频报文的序列号表;所述主设备根据所述从设备请求转发报文的序列号确定待转发报文的序列号,具体为
当所述转发请求中包括第一类参数时,主设备查询所述从设备请求转发报文的序列号是否在所述已转发音频报文的序列号表中,若不在,则确定其为待转发报文的序列号;
当所述转发请求中包括第二类参数时,逐一查询所述最后一个音频报文的序列号之后的n个序列号是否在所述已转发音频报文的序列号表中,若不在,则确定其为待转发报文的序列号;
所述主设备确定待转发报文的序列号后,将其添加至所述已转发的音频报文序列号表中;
n取正整数。
进一步的,所述主设备基于所述转发请求,确定待转发的音频报文,还可包括:所述主设备调整所述第二工作周期的工作时长;具体的,
所述主设备基于所述转发请求,确定待转发报文数据量,并根据所确定的报文数据量调整第二工作周期的工作时长;或者,
所述主设备基于所述转发请求中的第一类参数和/或第二类参数,确定从设备请求转发报文数据量和/或主设备补发报文数据量,并根据所确定的报文数据量调整第二工作周期的工作时长。
进一步的,所述主设备可基于预设的策略表,根据所确定的报文数据量,调整第二工作周期的工作时长;
所述策略表内存储有若干组报文数据量与第二工作周期的计划工作时长的对应关系,所述主设备根据所确定的报文数据量,自所述策略表中查询与之对应的计划工作时长,并将所述第二工作周期的当前工作时长调整至所述计划工作时长。
进一步的,所述主设备将所述待转发的音频报文转发给所述从设备,还可包括,所述主设备生成第三类参数,并发送给从设备,所述第三类参数用于指示所述主设备确定的主设备补发报文信息或待转发的音频报文信息的。
进一步的,所述主设备可具有与从设备一致的参考时钟,并以所述参考时钟计时所述第一工作周期和第二工作周期的切换时间点,以在切换时间点到达时,在第一微微网和第二微微网之间切换;
第一类参数还可包括从设备请求转发报文的个数和/或请求转发报文数据量;
第三类参数可包括与所述主设备补发的音频报文或待转发的音频报文相关的报文序列号、报文个数、报文数据量中的至少一种;
报文结构信息可包括音频报文的报文结构和各项参数在报文中的位置信息;
所述主设备可将所述第三类参数加载在预定的转发报文的数据头部;
报文数据量可根据报文个数、报文长度和通信带宽计算获得;
已转发音频报文的序列号表具有固定长度,所述主设备可以先入先出方式更新所述序列号表,且主设备更新所述序列号表时将新增的待转发报文的序列号添加至所述序列号表的表尾。
一种蓝牙通信方法,从设备具有与主设备同步切换的第一工作周期和第二工作周期,其中:
在所述第一工作周期内,所述从设备统计其所接收的音频报文的丢失情况;
在所述第二工作周期内:
所述从设备根据其在所述第一工作周期内统计的音频报文的丢失情况生成转发请求,并基于第二微微网发送给所述主设备;
基于第二微微网接收所述主设备转发的音频报文。
进一步的,在所述第一工作周期内,所述从设备可基于第一微微网接收音源设备发送给主设备的音频报文,并统计其在该第一工作周期内所接收的音频报文的丢失情况;或者,
在所述第一工作周期内,所述从设备可统计其在前一个第二工作周期内,基于第二微微网所接收的来自所述主设备的音频报文的丢失情况。
进一步的,在所述第一工作周期内,所述从设备统计其所接收的音频报文的丢失情况,可包括:
所述从设备基于预先确定的报文结构信息,自所接收到的包含序列号的音频报文中解析出序列号;基于所述序列号,判断是否丢失报文,并在丢失报文时统计丢失报文的序列号;
在所述第二工作周期内,所述从设备根据其在所述第一工作周期内统计的音频报文的丢失情况生成转发请求,包括:
所述从设备在丢失报文时,将所述丢失报文的信息作为从设备请求转发报文的序列号加载到第一类参数,将从设备接收的最后一个音频报文的信息加载到第二类参数,生成包含所述第一类参数和第二类参数的转发请求;
在未丢失报文时,将从设备接收的最后一个音频报文的信息加载到第二类参数,生成包含第二类参数的转发请求。
进一步的,在所述第二工作周期内,所述从设备还可调整所述第二工作周期的工作时长;其中:
所述从设备根据请求转发的报文数据量调整第二工作周期的工作时长,使所述从设备在调整后的所述第二工作周期的工作时长内,至少可以完成自所述主设备接收的、从设备请求转发的音频报文;和/或,
所述从设备根据来自主设备的第三类参数,获取主设备补发报文数据量或主设备待转发报文数据量,以调整所述第二工作周期的工作时长,使所述从设备在调整后的第二工作周期的工作时长内,至少可以完成接收主设备转发的所有音频报文;
所述第三类参数用于指示所述主设备确定的主设备补发报文信息或待转发的音频报文信息。
进一步的,所述从设备可基于预设的策略表,根据获取的报文数据量,调整第二工作周期的工作时长;
所述策略表内存储有若干组报文数据量与第二工作周期的计划工作时长的对应关系,所述从设备在获取报文数据量后,自所述策略表中查询与之对应的计划工作时长,并将所述第二工作周期的当前工作时长调整至所述计划工作时长。
进一步的,所述第一工作周期内,所述从设备统计其所接收的音频报文的丢失情况,及
在所述第二工作周期内,根据其在所述第一工作周期内统计的音频报文的丢失情况生成转发请求,和/或解析来自所述主设备的报文以获取所述第三类参数,
可以是基于所述从设备用于进行蓝牙音频底层控制的控制器模组实现;
所述报文数据量可根据报文个数、报文长度和通信带宽计算获得;
请求转发的报文数据量可以是所述从设备在统计其接收音频报文的情况时计算获得;
所述第一类参数可包括从设备请求转发报文的序列号、从设备请求转发报文的个数,和/或请求转发报文数据量;
所述第二类参数可包括所述从设备所接收到的最后一个音频报文的序列号;
所述第三类参数可包括与主设备补发的音频报文或待转发的音频报文相关的报文序列号、报文个数、报文数据量中的至少一种;
所述报文结构信息可包括音频报文的报文结构和各项参数在报文中的位置信息。
一种蓝牙音频从设备,包括用于实现蓝牙音频上层控制的主机模组和用于进行蓝牙音频底层控制并基于蓝牙无线通信协议实现无线电信号收发的控制器模组,
所述蓝牙音频从设备具有与蓝牙音频主设备同步切换的第一工作周期和第二工作周期;
所述控制器模组还用于在所述第一工作周期内统计其接收音频报文的丢失情况;
所述控制器模组还用于在所述第二工作周期内,根据其在所述第一工作周期内统计的接收音频报文的丢失情况生成转发请求,并发送给所述蓝牙音频主设备;以及,接收所述蓝牙音频主设备转发的音频报文。
进一步的,所述控制器模组可包括蓝牙音频报文解析单元,
所述蓝牙音频报文解析单元,用于基于预先确定的报文结构信息,自所述控制器模组接收到的包含序列号的音频报文中解析出序列号,基于所述序列号,判断是否丢失报文,并在丢失报文时统计丢失报文的序列号;
所述控制器模组在发生丢失报文时,将所述丢失报文的信息作为从设备请求转发报文的信息加载到第一类参数,将蓝牙音频报文解析单元解析获得的最后一个音频报文的信息加载到第二类参数,生成包含所述第一类参数和第二类参数的转发请求;在未丢失报文时,将所述最后一个音频报文的信息加载到第二类参数,生成包含第二类参数的转发请求。
进一步的,所述主机模组可用于预先与通信对端协商确定蓝牙音频报文的报文结构信息;
所述蓝牙音频报文解析单元自所述主机模组获取所述报文结构信息;
所述蓝牙音频报文解析单元可被设置在所述控制器模组中的蓝牙基带模块内。
一种蓝牙音频主设备,包括用于实现蓝牙音频上层控制的主机模组和用于进行蓝牙音频底层控制并基于蓝牙无线通信协议实现无线电信号收发的控制器模组,具有与从设备同步切换的第一工作周期和第二工作周期,其中:
在所述第一工作周期内,所述蓝牙音频主设备基于第一微微网接收来自音源设备的音频报文;
在所述第二工作周期内,
所述蓝牙音频主设备基于第二微微网接收蓝牙音频从设备发出的转发请求,所述转发请求为所述蓝牙音频从设备基于其在所述第一工作周期内统计的蓝牙音频从设备接收音频报文的丢失情况而产生;
所述蓝牙音频主设备基于所述转发请求,确定待转发的音频报文,并将所述待转发的音频报文转发给所述蓝牙音频从设备。
一种蓝牙通信系统,包括如上所述的蓝牙音频从设备和蓝牙音频主设备,所述蓝牙音频从设备和蓝牙音频主设备基于上述的蓝牙通信方法通信。
本申请提供的蓝牙通信方法、设备及系统,及实施例提供的技术方案带来的有益效果至少包括:使从设备在第一工作周期统计丢失报文情况,在第二工作周期时基于统计的丢失报文情况发送一次转发请求,而主设备在第二工作周期可以根据所述转发请求获知实际丢包情况,并完成所有报文转发,避免了多次发起转发请求导致的通信量增加,减少了不可用时间段,使得丢包转发交互的时间较短,降低了通信延时,从而提高了实际可用通信带宽。
附图说明
图1为音源设备和蓝牙音频设备之间的原理框图;
图2为本发明所应用的蓝牙系统的拓扑图;
图3为本发明实施例一的蓝牙通信信令图;
图4为本发明实施例二的蓝牙通信信令图;
图5为本发明实施例的第一种通信的时隙图;
图6为本发明实施例的第二种通信的时隙图;
图7为本发明实施例的第三种通信的时隙图;
图8为本发明实施例的第四种通信的时隙图;
图9为本发明实施例四的蓝牙音频从设备的结构原理框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例的附图,对本申请实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于所描述的本申请的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请的保护范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
此外,下面所描述的本申请不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明申请提供一种蓝牙通信方法,其中主设备与从设备均具有同步切换的第一工作周期和第二工作周期。在所述第一工作周期内,主设备基于第一微微网接收来自音源设备的音频报文,从设备统计其接收音频报文的丢失情况;在所述第二工作周期内,从设备根据其在所述第一工作周期内统计的接收音频报文的丢失情况生成转发请求并基于第二微微网发送给所述主设备;主设备接收从设备发出的转发请求,确定待转发的音频报文,并将所述待转发的音频报文基于第二微微网转发给所述从设备。可以理解的是,本文中所述的音频报文,可以是不限于音乐数据报文和语音数据报文。
本发明申请中,由于从设备在第一工作周期(即主设备与音源设备基于第一微微网通信的工作周期)内统计其报文丢失情况,其转发请求是基于统计而产生,因此主从设备仅需根据一次转发请求即可完成音频报文的转发,可有效减少转发交互的通信量,提高通信效率。当然,本发明申请相对现有技术同时还具有其它技术优越性,为了便于说明,以下将分别结合现有技术中较典型的监听方式和转发方式的具体应用场景详述本发明申请的技术思想和有益效果。
应用场景一:监听方式
在一些具体实施方式中,本发明的实施例可以应用于如图2所述的监听方式的蓝牙系统构架,包括音源设备、主设备、从设备,所述音源设备和主设备之间建立蓝牙链路,形成第一微微网(或称:微微网1,piconet1),音源设备开始播放音频后,所述主设备在微微网1接收音源设备发送的音频报文并回复,形成交互通信。主设备与从设备之间建立蓝牙链路,形成第二微微网(或称:微微网2,piconet2),所述主设备通过微微网2(piconet2)的蓝牙链路,将微微网1(piconet1)的链路信息转发给从设备,所述链路信息包括:音源设备的蓝牙地址、加密过程中使用的随机数、自适应跳频表参数(afhmap)、相位差(intraslotoffset)、蓝牙时钟信息(btclock)等;所述从设备基于所述链路信息,建立与音源设备的影子蓝牙链路,基于音源设备的蓝牙时钟信息和传输该信息的固定时间间隔,生成该蓝牙链路的蓝牙时钟,并依据音源设备的链路信息产生加解密参数、产生蓝牙跳频表、产生相位差;这样所述从设备就可以在微微网1正常接收到音源设备发送给所述主设备的音频报文,监听所述用户终端与主设备的通信,也可替代主设备发送报文给音源设备。
实施例一:
本实施例为一种蓝牙通信方法,具有循环往复的第一工作周期和第二工作周期:主从设备在微微网1工作于第一工作周期t1,在微微网2工作于第二工作周期t2,主设备、从设备每执行完微微网1的第一工作时钟周期t1,就从微微网1切换到微微网2;每执行完一个微微网2的第二工作时钟周期t2,就从微微网2切换到微微网1。所述主设备在微微网1和微微网2之间交替切换,所述从设备也在微微网1与微微网2之间交替切换。主设备和从设备都预先设定相同的参考时钟,如都取微微网1或微微网2的时钟信息作为参考时钟,并以该参考时钟计时所述第一工作周期和第二工作周期的切换时间点,确保主设备、从设备同步切换微微网。在初始状态下,可以设置所述第一工作周期和第二工作周期的初始工作时长分别为t10和t20,其中t10和t20的值可以因需设置。t20也可以设置成比较短的时长,如可以设置t20小于t10,或者可以设置t20为略大于从设备向主设备发送一次转发请求,并接收一次来自主设备的报文的时间长度,在具体实施例中,可以设置t10=30ms,t20=20ms。
如图3中所示,为本实施例的信令图。
在初始工作时长为t10的第一工作周期t1中,音源设备与主设备之间基于微微网1进行通信、从设备基于微微网1监听所述音源设备与主设备的通信。
s101:在t1中,主设备接收来自音源设备的音频报文;
s102:在t1中,从设备监听并接收来自音源设备的音频报文;
s103:主设备基于预先确定的报文结构信息解析接收到的音频报文,获取音频报文的序列号;
具体的,所述主设备在第一工作周期内接收到来自音源设备的音频报文后,可以缓存所述音频报文,并基于预先确定的报文结构信息,解析音频报文以获得所接收到的音频报文的序列号。
本领域内经常采用序列号标识音频报文,以区分不同报文。因此本实施例中获取序列号可以用于后续步骤中进行报文丢失分析、主从设备相互沟通报文丢失情况和报文转发情况等。可以理解的是,在其它的实施例中,也可以设置其它信息来替代所述的序列号实现相应功能。
s104、从设备统计其在t1中所接收的音频报文的丢失情况;
在一种具体实施例中,所述从设备基于预先确定的报文结构信息,解析所接收到的所有的音频报文,获取音频报文的序列号;
在另一种具体实施例中,所述从设备基于预先确定的报文结构信息,自所接收到的包含序列号的音频报文中解析出音频报文的序列号。
所述的报文结构信息可以包括音频报文的报文结构和各项参数在报文中的位置信息。
所述从设备可以根据报文结构信息获得序列号在各条报文中的位置。如果音频报文被分片传输,则从设备可以据此判断当前分片中是否包含序列号,并获得序列号在各分片报文中的位置。所述从设备根据报文结构信息对音频报文进行以获取音频报文序列号为目的的有限解析,则只需解析出序列号即可,而无需解析所有音频报文。
进一步的,从设备基于所述序列号判断是否发生丢失报文,如果发生丢失报文,统计丢失报文的序列号。在一种具体实施方式中,从设备还可以统计丢失报文的个数和/或请求转发的报文数据量,其中,报文数据量可以根据报文的个数、报文长度和通信带宽计算获得。例如,所述请求转发的报文数据量=丢失报文的个数*报文长度/通信带宽。
在通常的报文传输过程中,用于标识发送报文的序列号是连续的,每发送一个报文,序列号增1,因此,通过逐一查看所述序列号是否连续,就可以判断是否发生丢失报文,以及发生丢失报文的序列号。当主设备和从设备计时到预先设定好的第一工作周期t10的30ms切换时间点时,主从设备均同步切换到微微网2进行通信,此时主设备、从设备开始进入第二工作周期t20的计时。
s105,在t2中,从设备根据其在所述第一工作周期内统计的音频报文的丢失情况生成转发请求,并基于微微网2发送给主设备。主设备接收该转发请求。
从设备根据统计的音频报文的丢失情况,生成包含从设备请求转发报文的信息的第一类参数,和/或包含从设备所接收到的最后一个音频报文的信息的第二类参数。
在一些具体实施例中,所述从设备在丢失报文时,至少将所述丢失报文的序列号作为从设备请求转发报文的序列号加载到第一类参数以生成包含第一类参数的转发请求,从而向主设备请求转发从设备统计获知的丢失报文。在另一些具体实施例中,还可以将从设备接收的最后一个音频报文的序列号加载到第二类参数,从而生成包含所述第一类参数和第二类参数的转发请求,以在请求转发报文的同时,使得主设备可以帮助检查最后一个音频报文之后是否存在丢失,并在丢失时可以补发报文。。
从设备在未丢失报文时,将从设备接收的最后一个音频报文的序列号加载到第二类参数,生成包含第二类参数的转发请求。
在一种具体实施例中,所述第一类参数还可以包括请求转发报文的个数、请求转发报文的数据量等信息。
在一种具体实施例中,所述从设备可以基于其用于进行蓝牙音频底层控制的控制器模组实现所述s104步骤的在所述第一工作周期内统计其所接收的音频报文的丢失情况,并实现s105的在所述第二工作周期内根据其在所述第一工作周期内统计的音频报文的丢失情况生成转发请求。
s106,从设备根据请求转发的报文数据量,调整第二工作周期t2的当前工作时长;
如果所述从设备在第一工作周期t1内发生报文丢失,则所述从设备根据所述请求转发的报文数据量调整第二工作周期的工作时长,使所述从设备在调整后的所述第二工作周期的工作时长内至少可以完成接收来自所述主设备的所述请求转发的音频报文。在一种具体实施例中,如果将t20设置成较短时长,则主要以延长工作时长的方式调整t2的当前时长,例如将第二工作周期的当前工作时长t20延长至t21。
如果所述从设备确认在第一工作周期t1内未发生报文丢失,则本步骤中从设备可以不调整第二工作周期的当前工作时长。
s107,所述主设备基于所述转发请求,确定待转发的音频报文,调整第二工作周期t2的当前工作时长。
在具体实施时,转发请求中可能包含第一类参数和第二类参数,也可能仅包含第二类参数或第一类参数。所述主设备根据所述第一类参数获取从设备请求转发报文的信息(如序列号),从而可以获知从设备已知的丢失报文信息;根据所述第二类参数,获取主设备补发报文的信息,则可以用于确定从设备未知的丢失报文信息。具体来说,主设备根据所述第二类参数中的从设备收到的最后一个音频报文的序列号,以及所述主设备中已接收到的音频报文的序列号,确定在所述从设备最后一次收到的音频报文之后,是否还存在的从设备丢失的一个或多个音频报文,如果存在,则将所述一个或多个音频报文的序列号作为所述主设备补发报文的序列号。
主设备根据所述从设备请求转发报文的序列号和/或所述主设备补发报文的序列号,确定所述待转发的音频报文。
在一种具体实施例中,主设备可以将所述从设备请求转发报文的序列号和/或所述主设备补发报文的序列号,作为待转发报文的序列号,并根据待转发报文的序列号和自己已接收到的音频报文的序列号,从其缓存的音频报文队列中获取相应的音频报文作为待转发的音频报文进行转发。
在另一种具体实施例中,所述主设备中可以存储有已转发音频报文的序列号表。该序列号表可以具有固定长度,所述主设备可以以先入先出方式更新所述序列号表。
当所述转发请求中包括第一类参数时,主设备查询所述从设备请求转发报文的序列号是否在所述已转发音频报文的序列号表中,即查询从设备请求转发的报文是否已经被转发,若在,则忽略该序列号;若不在,则将其作为待转发报文的序列号;
当所述转发请求中包括第二类参数时,逐一查询所述最后一个音频报文的序列号之后的n(n取正整数)个序列号是否在所述已转发音频报文的序列号表中,即查询从设备收到的最后一个音频报文之后是否还存在主设备未转发过的报文,若在,则忽略该序列号,若不在,则将其作为待转发报文的序列号。在一些具体实施例中,可以查找从设备收到的最后一个音频报文的序列号之后的序列号 1、序列号 2、序列号 3、序列号 4、序列号 5的5个音频报文是否已经转发。
所述主设备确定待转发报文的序列号后,可以将其添加至所述已转发的音频报文序列号表中,如添加至序列号表的表尾,以备下次提供查询。
所述主设备可以根据待转发报文的序列号和自己已接收到的音频报文的序列号,自其缓存的音频报文队列中获取相应的音频报文作为待转发的音频报文,从而实现音频报文转发。
在调整第二工作周期t2的当前工作时长时,所述主设备也依据所述转发请求来调整。
在一种具体实施例中,主设备可以根据转发请求的以下情况调整t2的当前工作时长:
a.当所述转发请求中包括第一类参数和第二类参数时,
a1.根据第二类参数确定从设备最后一个音频报文之后不存在其它丢失报文时,根据第一类参数确定从设备请求转发报文数据量,进而依据该报文数据量将第二工作周期的t20调整至t21。
a2.根据第二类参数确定从设备最后一个音频报文之后存在一个或多个丢失报文时,获取主设备补发报文数据量;并根据第一类参数确定从设备请求转发报文数据量,根据从设备请求转发报文数据量和主设备补发报文数据量,将第二工作周期t20调整至t22。
b.当所述转发请求中只包括第二类参数时,
b1.根据第二类参数确定从设备最后一个音频报文之后不存在其它丢失报文时,则忽略该转发请求,即本次不转发音频报文,也不调整第二工作周期的时长,在第二工作周期的t20计时到达后,直接进入下一个第一工作周期t1;
b2.根据第二类参数确定从设备最后一个音频报文之后存在一个或多个丢失报文时,获取主设备补发报文数据量,根据主设备补发报文数据量,将第二工作周期t20调整至t23。
作为一种具体实施方式,所述主设备和从设备上都可以预设有策略表,所述策略表内记录了若干组报文数据量与第二工作周期的计划工作时长的对应关系。所述主设备和从设备均可以基于该策略表,根据所确定的报文数据量获取计划工作时长,从而调整第二工作周期的当前工作时长至所述计划工作时长。具体的,所述主设备、从设备根据所确定的报文数据量,从策略表中查找对应的第二工作周期的计划工作时长,然后以计划工作时长减去当前在微微网2中已经工作的时间,即可得出还需要在微微网2的工作时间,并将该值更新到微微网切换定时器中,就实现了延长或缩短微微网2上第二工作周期的当前工作时长的功能。
s108,所述主设备基于微微网2向从设备转发所述待转发的音频报文,直至第二工作周期结束。
当主设备根据转发请求确认不存在待转发的音频报文时,主设备在当前的第二工作周期内不进行报文转发。当主设备确认存在待转发的音频报文时,则在当前的第二工作周期内依次将待转发的音频报文发送出去。
当主设备根据所述第二参数确认从设备在其接收到的最后一个报文之后还存在一个或多个丢包时,即主设备确定还存在从设备未知的丢失报文时,主设备转发的报文数据量可能会大于从设备请求转发报文的数据量,因此,在一种具体实施例中,主设备生成用于指示所述主设备确定的主设备补发报文信息的第三类参数,并发送给从设备,以使得从设备可以做好相应的接收准备,并将第二工作周期的工作时长调整至与主设备一致。
具体地,所述第三类参数包括与所述主设备补发的音频报文相关的报文序列号、报文个数、报文数据量中的至少一种。例如,主设备依据第二类参数确认从设备最后接收的音频报文sn2后还存在sn3和sn4丢失,则可在第三类参数中加载序列号3和4,或者加载序列号4和报文个数2。
作为一种具体实施方式,主设备在向从设备转发报文时,可以在预定的一个转发报文(如转发的第一个音频报文)的数据头部携带第三类参数,从而可提高通信效率。
主设备在第二工作周期内,基于从设备发送的一次转发请求,通过微微网2完成所有需转发的音频报文的转发。在切换时间点到来时,再切换至微微网1,进入下一个第一工作周期t1。
s109,从设备在第二工作周期内接收主设备转发的音频报文;
所述从设备在发送转发请求后,即进入等待接收音频报文的状态。
在一种具体实施例中,所述从设备接收到主设备转发的音频报文后,解析报文以用于播放。此时从设备解析报文可以利用其实现蓝牙音频上层控制的主机模组进行报文的全部解析,解析方法可参照现有的技术方案实现。
在一种具体实施例中,所述从设备基于其用于进行蓝牙音频底层控制的控制器模组实现解析来自所述主设备的报文以获取所述第三类参数;此时,可以仅解析出第三类参数,而不需要对报文进行全部解析,因而可降低通信延时。
从设备接收到主设备转发的音频报文后进行解析,并检查预定的一个转发报文(如第一个转发报文)的数据头部是否被附带第三类参数。
如果包含所述第三类参数,则根据该第三类参数获取主设备确定的主设备补发报文信息,进而获取主设备补发报文数据量,并据此进一步调整当前第二工作周期的工作时长。具体的,可以基于主设备补发报文数据量与请求转发的报文数据量之和,自所述策略表中查询相应的计划工作时长,进而调整第二工作周期的当前工作时长至t22或t23。
如此,从设备在第二工作周期内接收所有主设备转发的报文。直至第二工作周期的工作时长t22或t23计时到达后,切换至微微网1,进入下一第一工作周期t1;
如果不包含所述第三类参数,则不再调整所述第二工作周期的工作时长,而是在t2或t21工作时长内接收所有主设备转发的报文。直至第二工作周期的工作时间t2或t21结束,切换至微微网1,进入下一第一工作周期t1。
下面列举实际的通信过程,对本实施例加以阐述。
如图5中所示,主设备和从设备在第一工作周期t1中,分别接收来自音源设备的音频报文。其中,从设备在第一工作周期t1中仅接收到音频报文sn1、sn2,但未收到音频报文sn3。切换到第二工作周期t2后,所述从设备识别到之前收到的音频报文的序列号是连续的,认为不存在报文丢失,因此仅向主设备发送第二类参数。所述主设备根据第二类参数中,确认从设备最后一次接收到的音频报文sn2之后还存在从设备丢失音频报文sn3,从而向从设备中继转发报文sn3。
如图6中所示,主设备和从设备在第一工作周期t1中,分别接收来自音源设备的音频报文。其中,从设备在第一工作周期t1中仅接收到音频报文sn3,但未收到音频报文sn1、sn2。切换到第二工作周期t2后,所述从设备识别到第一工作周期t1内发生报文丢失,因此向主设备发送的转发请求中包括第一类参数和第二类参数,所述主设备根据第一类参数,了解到所述从设备丢失音频报文sn1、sn2,再根据第二类参数确认从设备没有丢失音频报文sn3,从而向从设备转发报文sn1、sn2。
如图7中所示,主设备和从设备在第一工作周期t1中,分别接收来自音源设备的音频报文。其中,从设备在第一工作周期t1中仅接收到音频报文sn1,但未收到音频报文sn2、sn3。切换到第二工作周期t2后,所述从设备认为不存在报文丢失,因此仅向主设备发送第二类参数。所述主设备根据第二类参数确认从设备丢失音频报文sn2、sn3,从而向从设备中继报文sn2、sn3。
从上面三个例子得出,本发明方法利用在一次转发请求中包含第一类参数和第二类参数,可以便于主设备准确的确认从设备实际丢失报文的情况。
如图8中所示,主设备和从设备在第一工作周期t1中,分别接收来自音源设备的音频报文。其中,从设备在第一工作周期t1中仅接收到音频报文sn2,但未收到音频报文sn1、sn3,主设备在第一工作周期t1中也未接收到音频报文sn3。切换到第二工作周期t2后,所述从设备识别到第一工作周期t1内发生报文丢失,因此向主设备发送的转发请求中包括第一类参数和第二类参数,所述主设备根据第一类参数,了解到所述从设备丢失音频报文sn1,再根据第二类参数确认从设备相较于主设备仅丢失了音频报文sn1,从而由主设备向从设备转发报文sn1。至于报文sn3,主设备可以依照现有技术中的方法,因未收到报文sn3而未向音源设备反馈确认信息ack,而使得音源设备在下一个第一工作周期t1内重新发送报文sn3,如此主、从设备均可在下一个t1内接收到sn3。
实施例二:
本实施例为一种蓝牙通信方法,与实施例一大体相同,主要区别在于从设备延长所述第二工作周期的工作时长的方式,具体的可如图4信令图所示:
s201:主设备接收来自音源设备的音频报文;
s202:从设备监听并接收来自音源设备的音频报文;
s203:主设备基于预先确定的报文结构信息解析接收到的音频报文,获取音频报文的序列号;
s204、从设备统计其在t1中所接收的音频报文的丢失情况;
s205,从设备根据其在所述第一工作周期内统计的音频报文的丢失情况生成转发请求,并基于微微网2发送给主设备。主设备接收该转发请求。步骤s201~s205与实施例一的s101~s105基本相同,不再赘述;
s206,所述主设备基于所述转发请求,确定待转发的音频报文,调整第二工作周期t2的当前工作时长。
其中,所述主设备基于所述转发请求确定待转发的音频报文与实施例一的s107基本相同,不再赘述。
不同之处在于:s206中,所述主设备是依据待转发的音频报文的数据量,调整所述t2的当前工作时长,从而使所述主设备在调整后的所述第二工作周期的工作时长内可以完成转发所述待转发的音频报文。其中在确定待转发的音频报文或报文序列号后,可以参照前述方法计算出相应的报文数据量,进而在策略表中查询获得计划工作时长,使t2的当前工作时长t20调整为t2’。
s207,所述主设备基于微微网2向从设备转发所述待转发的音频报文,直至第二工作周期结束。
主设备还生成用于指示所述主设备确定的待转发的音频报文信息的第三类参数,并发送给从设备,以使得从设备可以做好相应的接收准备,并将第二工作周期的工作时长调整至与主设备一致。
第三类参数包括与所述待转发的音频报文相关的报文序列号、报文个数、报文数据量中的至少一种。
作为一种具体实施方式,主设备在向从设备转发报文时,可以在预定的一个转发报文(如转发的第一个音频报文)的数据头部携带第三类参数。作为另一种具体实施方式,所述主设备可以先向从设备发送包含第三类参数的数据报文,再向从设备发送待转发的音频报文。
s208,从设备在第二工作周期内接收主设备转发的音频报文,并调整第二工作周期的工作时长;
从设备在接收到来自主设备的第三类参数时,根据该第三类参数获取主设备待转发音频报文的信息,进而获取待转发的报文数据量,并据此调整当前第二工作周期的工作时长t20至t2’。
从设备在第二工作周期内接收所有主设备转发的报文,直至t2’计时到达后,切换到微微网1,进入下一个第一工作周期t1。
当然,主设备确定从设备不存在丢失报文时,将不调整t20。相应的,也可以不生成第三类参数。从设备因为未收到第三类参数,或者根据第三类参数获知主设备在当前t2内不转发报文,则也不调整t2的工作时长。主从设备均计时到t20到达后同步切换到微微网1。
应用场景二:转发方式
在一些具体实施方式中,本发明的实施例可以应用于传统的纯转发方式的蓝牙系统构架,与图2相似的,包括音源设备、主设备、从设备,所述音源设备和主设备之间建立蓝牙链路,形成第一微微网(微微网1,piconet1),音源设备开始播放音频后,所述主设备在微微网1接收音源设备发送的音频报文并回复,形成交互通信。主设备与从设备之间建立蓝牙链路,形成第二微微网(微微网2,piconet2),与图2不同的是,从设备仅从主设备处接收音频报文。因此,仅主设备需要在微微网1和微微网2之间交替切换。
实施例三:
本实施例为一种蓝牙通信方法,其在初始状态下,具有循环往复的第一工作周期和第二工作周期:主设备在微微网1工作于第一工作周期t1,在微微网2工作于第二工作周期t2,主设备每执行完微微网1的第一工作时钟周期t1,就从微微网1切换到微微网2;每执行完一个微微网2的第二工作时钟周期t2,就从微微网2切换到微微网1。所述主设备在微微网1和微微网2之间循环交替切换。从设备仅工作于微微网2,但其也具有与主设备同步切换的第一工作周期和第二工作周期。主设备和从设备都预先设定相同的参考时钟,如都取微微网1或微微网2的时钟信息作为参考时钟,并以该参考时钟计时所述第一工作周期和第二工作周期的切换时间点,确保主设备、从设备同步。
在本实施例的蓝牙通信方法中,主设备的工作过程与前述实施例基本相同。从设备的工作过程与前述实施例不同的是,在所述第一工作周期t1内,从设备统计其在前一个第二工作周期内所接收到的来自所述主设备的音频报文的丢失情况。进而通过转发请求,使得主设备可以依据第一类参数获知从设备已知的在前一个第二工作周期内发生丢失的报文,也可以依据第二类参数进一步确定从设备未知的在前一个第二工作周期内丢失的报文,从而弥补从设备在前一个第二工作周期的丢包损失。另外,主设备还可以依据其缓存的音频报文队列和已转发音频报文的序列号表,将主设备在第一工作周期内新接收的音频报文作为待转发报文,在当前第二工作周期内转发给从设备,实现纯转发方式的蓝牙通信。
本实施例的其它详细实施步骤可参照前述实施例实现,因此不再赘述。
上述实施例中,所述主设备、从设备可以具体为立体声蓝牙耳机中的主耳机、从耳机,所述音源设备可以为手机、电脑等支持蓝牙a2dp协议或bleaudio的音频源设备。此外,所述主设备、从设备也可以具体为两种或以上不同种类的蓝牙音频设备,如一个蓝牙音箱作为主设备、多个蓝牙耳机作为从设备;也可以是两个或以上同种类的蓝牙音频设备,如多个蓝牙音箱,其中一个音箱为主设备,其余各音箱为从设备。
实施例四:
本实施例为一种蓝牙音频从设备,如图9中所示,为本实施例的原理框图,包括用于实现蓝牙音频上层控制的主机模组和用于进行蓝牙音频底层控制并基于蓝牙无线通信协议实现无线电信号收发的的控制器模组。
所述主机模组负责蓝牙音频从设备的协议处理、语音编解码、加密/解密等上层控制,并可向从设备的音频播放单元(图中未示出)输出处理后的声音信号,实现音频播放。其中包括:
主机控制及协议处理单元:用于实现上层协议处理和对主机模组中其余各单元的控制;
hci接口:用于提供主机控制及协议处理单元的命令接口,以及对硬件配置参数的访问接口;
解码单元:用于基于主机控制及协议处理单元预先与通信对端协商确定的音频报文的报文结构信息及相关解码规则,对经主机控制及协议处理单元处理后的蓝牙音频报文进行解码,获得音频报文;
缓存单元:用于缓存解码单元解码获得的音频报文队列。
所述控制器模组进一步包括蓝牙射频模块、hci模块和蓝牙基带模块,其中:
蓝牙射频模块,用于进行射频信号的收发,
蓝牙基带模块,用于进行蓝牙通信的底层数据处理和链接控制;
hci接口,用于向上层的所述主机模组提供访问所述控制器模组的命令接口。
所述蓝牙音频从设备可用于实现前述实施例中的蓝牙通信方法。其中,所述蓝牙音频从设备具有与蓝牙音频主设备同步切换的第一工作周期和第二工作周期;所述控制器模组用于在所述第一工作周期内统计其接收音频报文的丢失情况;所述控制器模组还用于在所述第二工作周期内,根据其在所述第一工作周期内统计的接收音频报文的丢失情况生成转发请求并发送给所述蓝牙音频主设备;以及,接收所述蓝牙音频主设备转发的音频报文。
本实施例中,所述控制器模组内设置有蓝牙音频报文解析单元。
所述蓝牙音频报文解析单元,用于基于蓝牙音频报文结构信息,自所述控制器模组接收到的包含序列号的音频报文中解析出序列号;基于所述序列号,判断是否丢失报文,并在丢失报文时统计丢失报文的序列号;
所述控制器模组在发生丢失报文时,将所述丢失报文的信息,如序列号等,作为从设备请求转发报文的信息加载到第一类参数,将蓝牙音频报文解析单元解析获得的最后一个音频报文的信息,如序列号,加载到第二类参数,生成包含所述第一类参数和第二类参数的转发请求;在未丢失报文时,将所述最后一个音频报文的信息,如序列号加载到第二类参数,生成包含第二类参数的转发请求。
所述蓝牙音频报文解析单元在进行序列号解析时,预先自所述主机模组获取所述报文结构信息,如通过hci接口自解码单元获取报文结构信息,或者解码单元在获得新的报文结构信息后通过hci接口更新蓝牙音频报文解析单元的报文结构信息。
在一些具体实施例中,所述控制模组还可以包括存储单元,用于存储蓝牙音频报文解析单元解析获得的序列号、预置的策略表、报文结构信息等。
在一些具体实施例中,所述蓝牙音频报文解析单元和存储单元均可以被设置在所述蓝牙基带模块中。即:所述蓝牙基带模块包括基带及链路控制单元(linkcontroller)、链路管理层单元(linkmanagerprotocol)、蓝牙调制解调单元(bluetoothmodem),还包括所述的蓝牙音频报文解析单元和存储单元。
蓝牙音频报文解析单元对蓝牙调制解调单元和基带及链路控制单元解析出来的蓝牙数据块,进行有效性判断,如果判断是有效的音频数据,则根据序列号在报文中的位置、报文是否分片等报文结构信息,进行报文序列号的解析,解析后将该序列号存储在存储单元中;在下次收包后重复该过程,将序列号与上一次解析出的序列号进行比较和去翻转等处理,获得是否丢包、被丢失报文的序列号这两个参数。进而,基带及链路控制单元在第二工作周期t2内,基于蓝牙音频报文解析单元,获得最后一个接收报文的序列号、是否丢包参数和被丢失报文的序列号,产生转发请求,并通过蓝牙射频模块发送。
本实施例中的蓝牙音频从设备,直接在设备的底层控制器中,如蓝牙音频报文解析单元中解析出的音频报文序列号,并基于解析出的音频报文序列号进行丢包判断,则既不必如现有技术一般必须经过两次报文缓存并等待主机模块进行丢包判断,也不必解析整个音频报文,节省了hci接口访问和解码单元报文解析2次缓存过程的时间,及时性得到了保障;同时,在第一工作周期统计报文丢失情况,在第二工作周期发送一次转发请求并接收所有丢失报文的转发,在使得丢包探测和转发交互的时间较短,降低了通信延时。
实施例五:
本实施例为一种蓝牙音频主设备,包括用于实现蓝牙音频上层控制的主机模组和用于进行蓝牙音频底层控制并基于蓝牙无线通信协议实现无线电信号收发的控制器模组,其具有与从设备同步切换的第一工作周期和第二工作周期,其中:
在所述第一工作周期内,所述蓝牙音频主设备基于第一微微网接收来自音源设备的音频报文;
在所述第二工作周期内,
所述蓝牙音频主设备基于第二微微网接收蓝牙音频从设备发出的转发请求,所述转发请求为所述蓝牙音频从设备基于其在所述第一工作周期内统计的蓝牙音频从设备接收音频报文的丢失情况而产生;
所述蓝牙音频主设备基于所述转发请求,确定待转发的音频报文,并将所述待转发的音频报文转发给所述蓝牙音频从设备。
所述蓝牙音频主设备中预置有报文序列号表、策略表等。
蓝牙音频主设备的其它工作原理与前述实施例相似,此处不再赘述。
实施例六:
本实施例提供一种蓝牙通信系统,包括如实施例四所述的蓝牙音频从设备,和实施例五所述的蓝牙音频主设备,所述蓝牙音频从设备和蓝牙音频主设备前述实施例中的蓝牙通信方法通信。
从上述描述可知,本申请提供的蓝牙通信方法、设备及系统,避免了多次发起转发请求导致的通信量增加,减少了不可用时间段,使得丢包转发交互的时间较短,降低了通信延时,从而提高了实际可用通信带宽。
进一步的,主设备、从设备可以同步动态调整第二工作周期的时间,进而动态增加了不利条件下实际通信带宽,减少丢包可能性。
进一步的,从设备利用蓝牙底层模块实现序列号的有限解析、丢包判断和发送包含第一类参数和第二类参数的转发请求,使得丢包探测耗时短,延迟小。
采用本申请的技术方案,可以在常见干扰环境或稍远通信距离的情况下,仍然具有较低的丢包率和较低的通信时延,从而具有较低的播放延时和更好的播放效果。在对声音播放延时较为敏感的视频应用和游戏应用场景,本申请技术方案比现有技术方案具有较为明显的优势。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本申请创造的保护范围之中。
1.一种蓝牙通信方法,其特征在于:主设备具有与从设备同步切换的第一工作周期和第二工作周期,其中:
在所述第一工作周期内,主设备基于第一微微网接收来自音源设备的音频报文;
在所述第二工作周期内:
主设备基于第二微微网接收从设备发出的转发请求,所述转发请求为所述从设备根据其在所述第一工作周期内统计的音频报文的丢失情况而生成的;
主设备基于所述转发请求,确定待转发的音频报文,
将所述待转发的音频报文转发给所述从设备。
2.根据权利要求1所述的蓝牙通信方法,其特征在于:所述转发请求包含第一类参数和/或第二类参数,
所述第一类参数至少包括从设备请求转发报文的信息;
所述第二类参数至少包括所述从设备所接收到的最后一个音频报文的信息;
在所述第二工作周期内,所述主设备基于所述转发请求,确定待转发的音频报文,包括:所述主设备根据所述第一类参数获取从设备请求转发报文的序列号,和/或,所述主设备根据所述第二类参数,获取主设备补发报文的序列号;所述主设备根据所述从设备请求转发报文的序列号和/或所述主设备补发报文的序列号,确定所述待转发的音频报文。
3.根据权利要求2所述的蓝牙通信方法,其特征在于,所述第一类参数包括从设备请求转发报文的序列号;
所述第二类参数包括所述从设备所接收到的最后一个音频报文的序列号;
在所述第二工作周期内,所述主设备根据所述第二类参数,获取主设备补发报文的序列号,包括:根据所述第二类参数中的从设备收到的最后一个音频报文的序列号,以及所述主设备中已接收到的音频报文的序列号,确定在所述从设备最后一次收到的音频报文之后,是否还存在从设备丢失的一个或多个音频报文,如果存在,则将所述一个或多个音频报文的序列号作为所述主设备补发报文的序列号。
4.根据权利要求3所述的蓝牙通信方法,其特征在于:所述主设备接收到来自音源设备的音频报文后,还包括,基于预先确定的报文结构信息,解析音频报文以获得所接收到的音频报文的序列号;
在所述第二工作周期内,所述主设备根据所述从设备请求转发报文的序列号和/或所述主设备补发报文的序列号,确定待转发报文的序列号;根据所述待转发报文的序列号和已接收到的音频报文的序列号,获取相应的音频报文作为待转发的音频报文,并转发。
5.根据权利要求4所述的蓝牙通信方法,其特征在于:所述主设备中存储有已转发音频报文的序列号表;所述主设备根据所述从设备请求转发报文的序列号确定待转发报文的序列号,具体为
当所述转发请求中包括第一类参数时,主设备查询所述从设备请求转发报文的序列号是否在所述已转发音频报文的序列号表中,若不在,则确定其为待转发报文的序列号;
当所述转发请求中包括第二类参数时,逐一查询所述最后一个音频报文的序列号之后的n个序列号是否在所述已转发音频报文的序列号表中,若不在,则确定其为待转发报文的序列号;
所述主设备确定待转发报文的序列号后,将其添加至所述已转发的音频报文序列号表中;
n取正整数。
6.根据权利要求2至5中之一所述的蓝牙通信方法,其特征在于:所述主设备基于所述转发请求,确定待转发的音频报文,还包括:所述主设备调整所述第二工作周期的工作时长;具体的,
所述主设备基于所述转发请求,确定待转发报文数据量,并根据所确定的报文数据量调整第二工作周期的工作时长;或者,
所述主设备基于所述转发请求中的第一类参数和/或第二类参数,确定从设备请求转发报文数据量和/或主设备补发报文数据量,并根据所确定的报文数据量调整第二工作周期的工作时长。
7.根据权利要求6所述的蓝牙通信方法,其特征在于:所述主设备基于预设的策略表,根据所确定的报文数据量,调整第二工作周期的工作时长;
所述策略表内存储有若干组报文数据量与第二工作周期的计划工作时长的对应关系,所述主设备根据所确定的报文数据量,自所述策略表中查询与之对应的计划工作时长,并将所述第二工作周期的当前工作时长调整至所述计划工作时长。
8.根据权利要求1至5中之一所述的蓝牙通信方法,其特征在于:所述主设备将所述待转发的音频报文转发给所述从设备,还包括,所述主设备生成第三类参数,并发送给从设备,所述第三类参数用于指示所述主设备确定的主设备补发报文信息或待转发的音频报文信息的。
9.根据权利要求8中所述的蓝牙通信方法,其特征在于:
所述主设备具有与从设备一致的参考时钟,并以所述参考时钟计时所述第一工作周期和第二工作周期的切换时间点,以在切换时间点到达时,在第一微微网和第二微微网之间切换;
第一类参数还包括从设备请求转发报文的个数和/或请求转发报文数据量;
第三类参数包括与所述主设备补发的音频报文或待转发的音频报文相关的报文序列号、报文个数、报文数据量中的至少一种;
报文结构信息包括音频报文的报文结构和各项参数在报文中的位置信息;
所述主设备将所述第三类参数加载在预定的转发报文的数据头部;
报文数据量根据报文个数、报文长度和通信带宽计算获得;
已转发音频报文的序列号表具有固定长度,所述主设备以先入先出方式更新所述序列号表,且主设备更新所述序列号表时将新增的待转发报文的序列号添加至所述序列号表的表尾。
10.一种蓝牙通信方法,其特征在于:从设备具有与主设备同步切换的第一工作周期和第二工作周期,其中:
在所述第一工作周期内,所述从设备统计其所接收的音频报文的丢失情况;
在所述第二工作周期内:
所述从设备根据其在所述第一工作周期内统计的音频报文的丢失情况生成转发请求,并基于第二微微网发送给所述主设备;
基于第二微微网接收所述主设备转发的音频报文。
11.根据权利要求10所述的蓝牙通信方法,其特征在于:在所述第一工作周期内,所述从设备基于第一微微网接收音源设备发送给主设备的音频报文,并统计其在该第一工作周期内所接收的音频报文的丢失情况;或者,
在所述第一工作周期内,所述从设备统计其在前一个第二工作周期内,基于第二微微网所接收的来自所述主设备的音频报文的丢失情况。
12.根据权利要求10所述的蓝牙通信方法,其特征在于:在所述第一工作周期内,所述从设备统计其所接收的音频报文的丢失情况,包括:
所述从设备基于预先确定的报文结构信息,自所接收到的包含序列号的音频报文中解析出序列号;基于所述序列号,判断是否丢失报文,并在丢失报文时统计丢失报文的序列号;
在所述第二工作周期内,所述从设备根据其在所述第一工作周期内统计的音频报文的丢失情况生成转发请求,包括:
所述从设备在丢失报文时,将所述丢失报文的信息作为从设备请求转发报文的序列号加载到第一类参数,将从设备接收的最后一个音频报文的信息加载到第二类参数,生成包含所述第一类参数和第二类参数的转发请求;
在未丢失报文时,将从设备接收的最后一个音频报文的信息加载到第二类参数,生成包含第二类参数的转发请求。
13.根据权利要求10所述的蓝牙通信方法,其特征在于:在所述第二工作周期内,所述从设备还调整所述第二工作周期的工作时长;其中:
所述从设备根据请求转发的报文数据量调整第二工作周期的工作时长,使所述从设备在调整后的所述第二工作周期的工作时长内,至少可以完成自所述主设备接收的、从设备请求转发的音频报文;和/或,
所述从设备根据来自主设备的第三类参数,获取主设备补发报文数据量或主设备待转发报文数据量,以调整所述第二工作周期的工作时长,使所述从设备在调整后的第二工作周期的工作时长内,至少可以完成接收主设备转发的所有音频报文;
所述第三类参数用于指示所述主设备确定的主设备补发报文信息或待转发的音频报文信息。
14.根据权利要求13所述的蓝牙通信方法,其特征在于:所述从设备基于预设的策略表,根据获取的报文数据量,调整第二工作周期的工作时长;
所述策略表内存储有若干组报文数据量与第二工作周期的计划工作时长的对应关系,所述从设备在获取报文数据量后,自所述策略表中查询与之对应的计划工作时长,并将所述第二工作周期的当前工作时长调整至所述计划工作时长。
15.根据权利要求13、14中之一所述的蓝牙通信方法,其特征在于:
所述第一工作周期内,所述从设备统计其所接收的音频报文的丢失情况,及
在所述第二工作周期内,根据其在所述第一工作周期内统计的音频报文的丢失情况生成转发请求,和/或解析来自所述主设备的报文以获取所述第三类参数,
是基于所述从设备用于进行蓝牙音频底层控制的控制器模组实现;
所述报文数据量根据报文个数、报文长度和通信带宽计算获得;
请求转发的报文数据量是所述从设备在统计其接收音频报文的情况时计算获得;
所述第一类参数包括从设备请求转发报文的序列号、从设备请求转发报文的个数,和/或请求转发报文数据量;
所述第二类参数包括所述从设备所接收到的最后一个音频报文的序列号;
所述第三类参数包括与主设备补发的音频报文或待转发的音频报文相关的报文序列号、报文个数、报文数据量中的至少一种;
所述报文结构信息包括音频报文的报文结构和各项参数在报文中的位置信息。
16.一种蓝牙音频从设备,包括用于实现蓝牙音频上层控制的主机模组和用于进行蓝牙音频底层控制并基于蓝牙无线通信协议实现无线电信号收发的控制器模组,其特征在于:
所述蓝牙音频从设备具有与蓝牙音频主设备同步切换的第一工作周期和第二工作周期;
所述控制器模组还用于在所述第一工作周期内统计其接收音频报文的丢失情况;
所述控制器模组还用于在所述第二工作周期内,根据其在所述第一工作周期内统计的接收音频报文的丢失情况生成转发请求,并发送给所述蓝牙音频主设备;以及,接收所述蓝牙音频主设备转发的音频报文。
17.如权利要求16所述蓝牙音频从设备,其特征在于:所述控制器模组包括蓝牙音频报文解析单元,
所述蓝牙音频报文解析单元,用于基于预先确定的报文结构信息,自所述控制器模组接收到的包含序列号的音频报文中解析出序列号,基于所述序列号,判断是否丢失报文,并在丢失报文时统计丢失报文的序列号;
所述控制器模组在发生丢失报文时,将所述丢失报文的信息作为从设备请求转发报文的信息加载到第一类参数,将蓝牙音频报文解析单元解析获得的最后一个音频报文的信息加载到第二类参数,生成包含所述第一类参数和第二类参数的转发请求;在未丢失报文时,将所述最后一个音频报文的信息加载到第二类参数,生成包含第二类参数的转发请求。
18.根据权利要求17所述蓝牙音频从设备,其特征在于:所述主机模组用于预先与通信对端协商确定蓝牙音频报文的报文结构信息;
所述蓝牙音频报文解析单元自所述主机模组获取所述报文结构信息;
所述蓝牙音频报文解析单元被设置在所述控制器模组中的蓝牙基带模块内。
19.一种蓝牙音频主设备,包括用于实现蓝牙音频上层控制的主机模组和用于进行蓝牙音频底层控制并基于蓝牙无线通信协议实现无线电信号收发的控制器模组,其特征在于:具有与从设备同步切换的第一工作周期和第二工作周期,其中:
在所述第一工作周期内,所述蓝牙音频主设备基于第一微微网接收来自音源设备的音频报文;
在所述第二工作周期内,
所述蓝牙音频主设备基于第二微微网接收蓝牙音频从设备发出的转发请求,所述转发请求为所述蓝牙音频从设备基于其在所述第一工作周期内统计的蓝牙音频从设备接收音频报文的丢失情况而产生;
所述蓝牙音频主设备基于所述转发请求,确定待转发的音频报文,并将所述待转发的音频报文转发给所述蓝牙音频从设备。
20.一种蓝牙通信系统,其特征在于:包括如权利要求16至18中之一所述的蓝牙音频从设备,和如权利要求19所述的蓝牙音频主设备,所述蓝牙音频从设备和蓝牙音频主设备基于如权利要求1至15中之一所述的蓝牙通信方法通信。
技术总结