蓝牙数据发送控制方法及装置与流程

文档序号:17850596发布日期:2019-06-11 22:10阅读:417来源:国知局

本发明涉及蓝牙通信领域,尤其涉及一种蓝牙数据发送控制方法及装置。



背景技术:

在蓝牙4.0及其之后的协议中,包含了经典(Classic)蓝牙以及低功耗(Low Energy,LE)蓝牙两部分。低功耗蓝牙协议在蓝牙4.0协议中引入,数据包中的数据长度最大为39字节(byte),使用1Mbps(兆比特每秒)速率传输。经典蓝牙数据包中的数据长度最大为1023字节,传输速率可以为1Mbps、2Mbps以及3Mbps。

经典蓝牙和低功耗蓝牙工作在不同的模式,采用时分复用的方式进行工作。当预测到存在低功耗蓝牙的连接事件(Connection Event,CE)时,为防止经典蓝牙发送多时隙数据包占用低功耗蓝牙的CE,可以预先将工作模式切换至低功耗模式。

然而,过早地切换至低功耗模式会导致时隙资源的浪费。



技术实现要素:

本发明实施例解决的问题是如何节约时隙资源。

为解决上述问题,本发明实施例提供一种蓝牙数据发送控制方法,包括:

当检测到下一次低功耗蓝牙连接事件时,获取距离下一次低功耗蓝牙连接事件的发送时隙的时长;

根据所述距离下一次低功耗蓝牙连接事件的发送时隙的时长,计算在所述下一次低功耗蓝牙连接事件的发送时隙之前的发送时隙个数N;

当N>0时,将所述下一次低功耗蓝牙连接事件的发送时隙之前的N个发送时隙作为经典蓝牙同步链路数据包发送时隙。

可选的,所述将所述下一次低功耗蓝牙连接事件的发送时隙之前的N个发送时隙作为经典蓝牙同步链路数据包发送时隙之后,包括:当存在经典蓝牙的同步链路数据包发送请求时,将所述发送请求对应的同步链路数据包发送,所述发送所述同步链路数据包占用的时隙个数小于或等于N。

可选的,所述获取距离下一次低功耗蓝牙连接事件的发送时隙的时长,包括:

获取本地时钟的当前时钟计数值以及下一次低功耗蓝牙连接事件的发送时隙的时钟计数值;

将所述下一次低功耗蓝牙连接事件的发送时隙的时钟计数值与所述当前时钟计数值相减,将得到的差值与时钟周期相乘后,得到的乘积作为所述距离下一次低功耗蓝牙连接事件的时长。

可选的,所述计算在所述下一次低功耗蓝牙连接事件的发生时隙之前的发送时隙个数N,包括:当所述得到的差值小于或等于2时,N=0;当所述得到的差值大于2且小于或等于7时,N=1;当所述得到的差值大于7且小于或等于11时,N=3。

本发明实施例还提供了一种蓝牙数据发送控制装置,包括:

获取单元,用于当检测到下一次低功耗蓝牙连接事件时,获取距离下一次低功耗蓝牙连接事件的发送时隙的时长;

计算单元,用于根据所述距离下一次低功耗蓝牙连接事件的发送时隙的时长,计算在所述下一次低功耗蓝牙连接事件的发送时隙之前的发送时隙个数N;

控制单元,用于当N>0时,将所述下一次低功耗蓝牙连接事件的发送时隙之前的N个发送时隙作为经典蓝牙同步链路数据包发送时隙。

可选的,所述控制单元用于:当存在经典蓝牙的同步链路数据包发送请求时,将所述发送请求对应的同步链路数据包发送,所述发送所述同步链路数据包占用的时隙个数小于或等于N。

可选的,所述获取单元用于:获取本地时钟的当前时钟计数值以及下一次低功耗蓝牙连接事件的发送时隙的时钟计数值;将所述下一次低功耗蓝牙连接事件的发送时隙的时钟计数值与所述当前时钟计数值相减,将得到的差值与时钟周期相乘后,得到的乘积作为所述距离下一次低功耗蓝牙连接事件的时长。

可选的,所述计算单元用于:当所述得到的差值小于或等于2时,计算得到N=0;当所述得到的差值大于2且小于或等于7时,计算得到N=1;当所述得到的差值大于7且小于或等于11时,计算得到N=3。

与现有技术相比,本发明实施例的技术方案具有以下优点:

当检测到存在低功耗蓝牙连接事件请求时,并不立即切换至低功耗模式,而是根据距离下一次低功耗蓝牙连接事件的发送时隙的时长,来判断是否存在可用的经典蓝牙同步链路数据包发送时隙,从而可以在切换至低功耗模式之前,进行经典蓝牙同步链路数据包的发送接收,避免因过早切换工作模式而导致的时间浪费。

附图说明

图1是现有蓝牙协议中低功耗蓝牙的工作时序图;

图2是本发明实施例中的一种蓝牙数据发送控制方法的流程图;

图3是现有的一种蓝牙数据发送时隙和接收时隙的时序图;

图4是本发明实施例中的一种蓝牙数据发送控制装置的结构示意图。

具体实施方式

在现有技术中,经典蓝牙和低功耗蓝牙采用时分复用的方式工作。当预测到存在发送低功耗蓝牙的CE时,为防止经典蓝牙发送多时隙数据包占用低功耗蓝牙的CE,可以预先将工作模式切换至低功耗模式。然而,在大部分情况下,经典蓝牙模式下发送的同步链路数据包为单时隙数据包,即经典蓝牙模式下发送的同步链路数据包只占用1个发送时隙。而若过早地切换至低功耗模式,例如,提前3个发送时隙从经典蓝牙模式切换至低功耗蓝牙模式,则在这3个发送时隙内并不进行发送和接收操作,存在时隙资源浪费的现象。

在本发明实施例中,当存在低功耗蓝牙连接事件请求时,并不立即切换至低功耗模式,而是根据距离下一次低功耗蓝牙连接事件的发送时隙的时长,来判断是否存在可用的经典蓝牙同步链路数据包发送时隙,从而可以在切换至低功耗模式之前,进行经典蓝牙同步链路数据包的发送接收,避免因过早切换工作模式而导致的时间浪费。

为使本发明实施例的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

在对本发明实施例提供的蓝牙数据发送控制方法进行描述之前,对现有的低功耗蓝牙传输过程进行简要说明。

参照图1,给出了现有蓝牙协议中,低功耗蓝牙从接收广播包(advertising,ADV)到发送第一个数据包的时序图。

在现有的蓝牙协议中规定,一个时钟周期为312.5μs,以2×312.5μs=625μs为一个时隙。本端设备在偶数时隙向对端设备发送数据包,在奇数时隙接收对端设备发送的数据包,以2×625μs=1.25ms为一个收发对,约定TIM0对应发送开始,对应发送开始时刻为0μs,TIM2对应接收开始,对应接收开始时刻为625μs。

在t0时刻,本端设备接收对端设备发送的ADV包;在t1时刻,本端设备接收完成ADV包。在经过一个间隔时长(T_IFS)后,在t2~t3时刻,向对端设备发送连接请求(connect_Req)协议数据单元(Protocol Data Unit,PDU)。在连接请求PDU发送完成后,在t4~t5时刻内,向对端设备发送第一个数据包。在第一个数据包发送完成后的一个间隔时长(T_IFS)后,在t6~t7时刻接收对端设备发送的应答数据。之后,每隔一个预设的定时发送周期(ConnInterval),定时进行数据包的发送操作,定时发送周期以1.25ms为单位。

t3~t4时刻的取值范围可以为(1.25ms+transmitWindowOffset)~(1.25ms+transmitWindowOffset+transmitWindowSize)。transmitWindowOffset为传输窗口补偿量,transmitWindowSize为传输窗口大小,二者可以根据实际需求进行设定。例如,设定transmitWindowOffset=5ms,设定transmitWindowSize=5ms。

约定所有的发送都在TIM0进行,因此,t4时刻为TIM0时刻,由于定时发送周期为1.25ms的整数倍,因此,在每个定时发送周期的第一次数据发送时刻均为TIM0,这样可以保证经典模式发送与低功耗蓝牙模式发送在蓝牙时钟的差值是4倍的关系,因此可以确保经典蓝牙模式和低功耗蓝牙模式均在TIM0发送数据。

本发明实施例提供了一种蓝牙数据发送控制方法,参照图2,以下通过具体步骤进行详细说明。

步骤S201,当检测到下一次低功耗蓝牙连接事件时,获取距离下一次低功耗蓝牙连接事件的发送时隙的时长。

在具体实施中,当蓝牙设备处于经典蓝牙模式时,可以获取距离下一次低功耗蓝牙连接事件的发送时隙的时长。距离下一次低功耗蓝牙连接事件的发送时隙的时长是指:当前时刻与下一次低功耗蓝牙连接事件的发送起始时刻的间隔时长。

在本发明实施例中,可以通过获取下一次低功耗蓝牙连接事件对应的时钟计数值来获知下一次低功耗蓝牙连接事件的发送时刻,通过获取本端设备当前的时钟计数值来获知当前时刻。根据下一次低功耗蓝牙连接事件的发送时刻以及当前时刻,对二者做差,将得到的差值与时钟周期相乘后,得到的乘积即为距离下一次低功耗蓝牙连接事件的发送时隙的时长。

在本发明实施例中,在通过时钟计数值来获取当前时刻距离下一次低功耗蓝牙连接事件的发送时隙的时长时,由于每一个低功耗蓝牙连接事件的发送时隙包括两个时钟计数值(依次为i与i+1),且当时钟计数值为i时已经开始进行发送数据包的操作,因此,在将下一次低功耗蓝牙连接事件的发送时隙的时钟计数值与当前时刻的时钟计数值相减做差时,选用i与当前时刻的时钟计数值相减做差。

例如,本端设备当前时刻的时钟计数值为8,下一次低功耗蓝牙连接事件的发送时隙的时钟计数值为16、17,即在时钟计数值为16、17时进行发送数据包的操作。由于时钟计数值为16时已经开始进行发送数据包的操作,因此下一次低功耗蓝牙连接事件的发送时隙的时钟计数值与当前时刻的时钟计数值之差为(16-8)=8。由现有的蓝牙协议可知,每个时钟周期长度为312.5μs,则8×312.5μs=2.5ms,也即当前时刻距离下一次低功耗蓝牙连接事件的发送时隙的时长为2.5ms。

在获取到距离下一次低功耗蓝牙连接事件的发送时隙的时长后,可以执行步骤S202。

步骤S202,根据所述距离下一次低功耗蓝牙连接事件的发送时隙的时长,计算在所述下一次低功耗蓝牙连接事件的发送时隙之前的发送时隙个数N;

在现有蓝牙协议中规定,一个时钟周期为312.5μs,以2×312.5μs=625μs为一个时隙。本端设备在偶数时隙向对端设备发送数据包,在奇数时隙接收对端设备发送的数据包,以2×625μs=1.25ms为一个收发对。因此,在获取到距离下一次低功耗蓝牙连接事件的发送时隙的时长后,可以计算得到在下一次低功耗蓝牙连接事件的发送时隙之前的发送时隙个数。

例如,计算得到距离下一次低功耗蓝牙连接事件的发送时隙的时长为2.5ms,则可以计算得到在下一次低功耗蓝牙连接事件的发送时隙之前的发送时隙个数为N=2.5ms/1.25ms=2,即在下一次低功耗蓝牙连接事件的发送时隙之前还存在2个发送时隙。

在本发明实施例中,N为正整数。当计算得到的N为小数时,将N的取值更新为大于N的最小整数。例如,计算得到N=2.5,大于2.5的最小整数为3,即在下一次低功耗蓝牙连接事件的发送时隙之前还存在3个发送时隙。

在计算得到下一次低功耗蓝牙连接事件的发送时隙之前的发送时隙个数N后,可以执行步骤S203。

步骤S203,当N>0时,将所述下一次低功耗蓝牙连接事件的发送时隙之前的N个发送时隙作为经典蓝牙同步链路数据包发送时隙。

在本发明实施例中,当N>0时,意味着在下一次低功耗蓝牙连接事件的发送时隙之前,还存在至少一个发送时隙,可以用于进行经典蓝牙同步链路数据包的发送和接收。

当存在经典蓝牙同步链路数据包的发送请求时,则可以将发送请求对应的同步链路数据包中的数据发送,发送同步链路数据包中的数据所占用的发送时隙的个数不大于N。这是因为,若发送同步链路数据包中的数据所占用的发送时隙的个数大于N时,其所占用的发送时隙与低功耗蓝牙连接事件的发送时隙冲突,导致同步链路数据包中的数据无法完全发送。

在实际应用中,当蓝牙设备处于经典蓝牙模式时,同步链路数据包中的数据格式可以包括HV3、EV3、2-EV3等格式。

在本发明一实施例中,设定当前时刻的时钟计数值为current_clk,下一次低功耗蓝牙连接事件的发送时隙的时钟计数值为next_ce_time。参照图3,给出了现有的一种蓝牙数据发送时隙和接收时隙的时序图,t11~t21、t31~t41、t51~t61、t71~t81为发送时隙,t21~t31、t41~t51、t61~t71为接收时隙,t00为当前时刻,每个发送时隙占用2个时钟周期,每个接收时隙占用2个时钟周期,t00~t11的时长不大于625μs,即t11对应的时钟计数值与t00对应的时钟计数值之差小于等于2。

当next_ce_time-current_clk≤2时,例如,下一次低功耗蓝牙的连接事件的发送时刻为t11,则可以获知t00~t11之间的发送时隙的个数N=0。

当2<next_ce_time-current_clk≤7时,例如,下一次低功耗蓝牙的连接事件的发送时刻为t31,则可以获知t00~t31之间的发送时隙的个数N=1。此时,若存在同步链路数据包发送请求,则可以进行最多为1个发送时隙的同步链路数据包的发送。

当7<next_ce_time-current_clk≤11时,例如,下一次低功耗蓝牙的连接事件的发送时刻为t71,则可以获知t00~t71之间的发送时隙的个数N=3。此时,若存在同步链路数据包发送请求,则可以进行最多为3个发送时隙的同步链路数据包的发送。

在现有技术中,若过早地切换至低功耗模式,例如,提前3个发送时隙从经典蓝牙模式切换至低功耗蓝牙模式,则在这3个发送时隙内并不进行发送和接收操作,存在时隙资源浪费的现象。

而在本发明实施例中,通过判断距离下一次低功耗蓝牙连接事件的发送时隙的时长,来获知下一个发送时隙发送的数据包的类型。当在下一次低功耗蓝牙连接事件的发送时隙之前的发送时隙个数N>0时,则可以判定下一个发送时隙的发送数据包的类型为同步链路数据包;当N=0时,则可以判定下一个发送时隙的发送数据包的类型为低功耗蓝牙的连接事件。

例如,当检测到在3个发送时隙后存在低功耗蓝牙的连接事件时,若存在1时隙或3时隙的同步链路数据包的发送请求时,则继续处于经典模式并进行相应的同步链路数据包的发送,而不是切换至低功耗蓝牙模式等待3个发送时隙,从而可以高效地利用时隙资源,避免时隙资源的浪费。

参照图4,给出了本发明实施例中的一种蓝牙数据发送控制装置40,包括:获取单元401、计算单元402以及控制单元403,其中:

获取单元401,用于当检测到下一次低功耗蓝牙连接事件时,获取距离下一次低功耗蓝牙连接事件的发送时隙的时长;

计算单元402,用于根据所述距离下一次低功耗蓝牙连接事件的发送时隙的时长,计算在所述下一次低功耗蓝牙连接事件的发送时隙之前的发送时隙个数N;

控制单元403,用于当N大于0时,将所述下一次低功耗蓝牙连接事件的发送时隙之前的N个发送时隙作为经典蓝牙同步链路数据包发送时隙。

在具体实施中,所述控制单元403可以用于:当存在经典蓝牙的同步链路数据包发送请求时,将所述发送请求对应的同步链路数据包发送,所述发送所述同步链路数据包占用的时隙个数小于或等于N。

在具体实施中,所述获取单元401可以用于:获取本地时钟的当前时钟计数值以及下一次低功耗蓝牙连接事件的发送时隙的时钟计数值;将所述下一次低功耗蓝牙连接事件的发送时隙的时钟计数值与所述当前时钟计数值相减,将得到的差值与时钟周期相乘后,得到的乘积作为所述距离下一次低功耗蓝牙连接事件的时长。

在具体实施中,所述计算单元402可以用于:当所述得到的差值小于或等于2时,计算得到N=0;当所述得到的差值大于2且小于或等于7时,计算得到N=1;当所述得到的差值大于7且小于或等于11时,计算得到N=3。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1