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

一种低功耗蓝牙通信带宽动态调整方法与系统、电子设备与流程

2022-06-29 21:20:12 来源:中国专利 TAG:


1.本技术涉及蓝牙通信的技术领域,尤其是涉及一种低功耗蓝牙通信带宽动态调整方法与 系统、电子设备。


背景技术:

2.低功耗蓝牙(bluetooth low energy,ble)技术随着应用需求与使用场景的不断扩展, 特别是在智能家居、智慧商场和工业生产自动化管理中信标等领域的广泛应用,标准协议也 在不断演化发展,最新的5.2协议版本支持ble audio功能,具有更远的传输距离、更高的 传输速率和更大的广告数据传输量,所有这些新增加的特性使得ble在未来的应用范围和领 域具有无限的想象和扩展空间。蓝牙技术作为一种去中心化的piconet自组网络,可以快速 简便并安全的实现蓝牙设备间的即时通信和数据交互。
3.蓝牙ble设备相对于经典蓝牙,其核心优势在于其拥有更低的运行功耗,随着ble应用 范围的扩展,特别是ble audio在嵌入式耳机等设备中的应用,其低功耗控制和要求将会更 加严格。
4.现有的蓝牙ble连接设备是以连接间隔为单位的连接事件进行通信,每个连接事件的可 通信长度在相互连接的两个ble设备间是不透明的,正是这种不透明的机制,可能导致连接 中的ble通信设备间造成一定的通信带宽浪费。


技术实现要素:

5.为此,本技术的实施例提供了一种低功耗蓝牙通信带宽动态调整方法与系统、电子设备, 能够解决现有ble通信设备的通信带宽浪费的技术问题,具体技术方案内容如下:
6.第一方面,本技术的实施例提供一种低功耗蓝牙通信带宽动态调整方法,所述方法包括:
7.在建立ble连接之后,实时监测当前连接事件的通信双方的数据传输量;
8.根据当前的数据传输量、当前的通信速率、使用的phy及单次可以发送的最大数据包长 度动态计算得出通信带宽,并调整当前蓝牙设备的通信带宽。
9.优选的,所述实时监测当前连接事件的通信双方的数据传输量包括:
10.统计连续发送的完整数据包的长度和接收的完整数据包的长度,计算当前发送和接收的 完整数据包的总长度为数据传输量。
11.优选的,所述完整数据包包含至少一个子数据包,以子数据包的id标识连续发送和/或 接收的完整数据包的起始包和/或结束包。
12.优选的,以id为第一id的子数据包为连续传输的完整数据包的内容数据包,以id为 第二id的数据包标识连续传输的完整数据包的起始包和/或结束包。
13.优选的,当接收到id为第一标识的子数据包,当该子数据包为空包时,该子数据包为 当前连续发送和/或接收的完整数据包的结束包。
14.优选的,所述统计连续发送的完整数据包的长度和接收的完整数据包的长度,计
算当前 发送和接收的完整数据包的总长度为数据传输量包括:
15.当接收到id为第二标识对应的子数据包,开始统计连接发送和/或接收的id为第一id 的子数据包个数,直至接收到结束包,统计结束。
16.优选的,若当前发送和接收的子数据包一直为空包,则数据传输量为0。
17.优选的,预设初始通信带宽;
18.若数据传输量为0,则当前通信带宽设置为初始通信带宽。
19.优选的,所述根据当前的数据传输量、当前的通信速率、使用的phy及单次可以发送的 最大数据包长度动态计算得出通信带宽,并调整当前蓝牙设备的通信带宽包括:
20.根据当前的数据传输量、当前的通信速率、使用的phy及单次可以发送的最大数据包长 度动态计算得出通信带宽;
21.判断当前计算得出的通信带宽与当前连接事件的通信带宽是否相同;
22.若不同,调整当前连接事件的通信带宽为计算得出的通信带宽。
23.优选的,连接事件内蓝牙设备包括主设备和从设备;
24.对于主设备,初始通信带宽设为最小连接事件长度与最大连接事件长度之间的任意一个 值;
25.对于从设备,初始通信带宽为连接间隔时间段内任意的一个值。
26.优选的,初始通信带宽至少为一个时隙长度。
27.优选的,所述方法还包括:
28.检测连接事件的关闭情况;
29.根据当前应用的通信带宽以及连接事件的关闭情况计算在当前连接事件内的数据发送 情况,并依据数据发送情况动态调整当前蓝牙的通信带宽。
30.优选的,所述根据当前应用的通信带宽以及连接事件的关闭情况计算在当前连接事件内 的数据发送情况,并依据数据发送情况动态调整当前蓝牙的通信带宽包括:
31.根据连接事件的关闭情况以及当前应用的通信带宽,计算当前连接事件的数据传输量在 当前连接事件内正常传输所需的通信带宽;
32.判断该数据传输量所需的传输时间与当前应用的通信带宽的大小;
33.如果所需的传输时间等于当前应用的通信带宽,无需调整当前应用的通信带宽;
34.如果所需的传输时间大于当前应用的通信带宽,则增大当前应用的通信带宽;
35.如果所需的传输时间小于当前应用的通信带宽,则减小当前应用的通信带宽。
36.优选的,在应用计算得出的通信带宽为当前的通信带宽后,再根据当前应用的通信带宽 以及连接事件的关闭情况计算在当前连接事件内的数据发送情况,并依据数据发送情况动态 调整当前蓝牙的通信带宽。
37.第二方面,本技术的实施例提供一种低功耗蓝牙通信带宽动态调整系统,所述系统包括:
38.检测模块,用于在建立ble连接之后,实时监测当前连接事件的通信双方的数据传输量;
39.调整模块,用于根据当前的数据传输量、当前的通信速率、使用的phy及单次可以发送 的最大数据包长度动态计算得出通信带宽,并调整当前蓝牙设备的通信带宽。
40.第三方面,本技术的实施例提供一种电子设备,包括存储器、处理器以及存储在所
述存 储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述任 意一项所述的低功耗蓝牙通信带宽动态调整方法的步骤。
41.第四方面,本技术的实施例提供一种计算机可读存储介质,所述计算机可读存储介质存 储有计算机程序,所述计算机程序被处理器执行时实现前述任意一项所述的低功耗蓝牙通信 带宽动态调整方法的步骤。
42.综上所述,与现有技术相比,本技术实施例提供的技术方案带来的有益效果至少包括:
43.1、通过实时监测低功耗蓝牙连接设备间的通信数据量,并根据通信数据量、当前的通 信速率、使用的phy及单次可以发送的最大数据包长度动态计算通信带宽,实时调节通信带 宽,从而有效提高了蓝牙ble设备的通信传输效率,为降低蓝牙ble设备的运行功耗提供了 有利的条件;
44.2、通过综合动态计算的通信带宽和蓝牙ble连接事件关闭的情况动态确定本地蓝牙ble 设备的通信带宽,从而进一步有效提高了蓝牙ble设备的通信传输效率。
附图说明
45.图1是本技术其中一实施例提供的一种低功耗蓝牙通信带宽动态调整方法的流程示意 图。
46.图2是ble非编码phy空中数据包结构。
47.图3是ble编码phy空中数据包结构。
48.图4是本技术另一实施例提供的一种低功耗蓝牙通信带宽动态调整方法的流程示意图之 一。
49.图5是本技术另一实施例提供的一种低功耗蓝牙通信带宽动态调整方法的流程示意图之 二。
50.图6是本技术另一实施例提供的一种低功耗蓝牙通信带宽动态调整方法的流程示意图之 三。
51.图7是本技术一个具体例子的流程图。
52.图8是本技术一个具体例子中通信带宽设置合理时连接事件正常关闭与通信带宽的关 系。
53.图9是本技术一个具体例子中通信带宽设置过大时连接事件正常关闭与通信带宽的关 系。
54.图10是本技术一个具体例子中通信带宽设置过小时连接事件正常关闭与通信带宽的关 系。
具体实施方式
55.本具体实施例仅仅是对本技术的解释,其并不是对本技术的限制,本领域技术人员在阅 读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本技术的权 利要求范围内都受到专利法的保护。
56.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附 图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本技术 一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有 作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
57.另外,本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三 种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情 况。另外,本技术中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
58.本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进 行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数 量和执行顺序进行限定。
59.下面结合说明书附图对本技术实施例作进一步详细描述。
60.蓝牙设备,即具有蓝牙功能的设备。蓝牙ble连接设备是以连接间隔为单位的连接事件 进行通信,每个连接事件的可通信长度在相互连接的两个ble设备间是不透明的,正是这种 不透明的机制,可能导致连接中的ble通信设备间造成一定的通信带宽浪费。
61.对于master(主)角色的蓝牙设备,在向对方ble设备发起连接时,hci指令可以指 定最小和最大的连接事件长度。对于slave(从)角色的蓝牙设备,在ble连接建立时,并 不能确定连接事件的长度大小和范围,通信带宽的大小设置具有一定的随机性。
62.因此对于每个连接事件的通信带宽,ble连接设备之间就存在较大的不确定性,通信带 宽设置过长可能导致带宽资源的浪费,通信带宽设置过短可能导致通信效率不高,这都可能 增加ble设备的运行功耗。
63.参照图1,在本技术的一个实施例中,提供一种低功耗蓝牙通信带宽动态调整方法,所 述方法的主要步骤描述如下:
64.s1:在建立ble连接之后,实时监测当前连接事件的通信双方的数据传输量;
65.s2:根据当前的数据传输量、当前的通信速率、使用的phy及单次可以发送的最大数据 包长度动态计算得出通信带宽,并调整当前蓝牙设备的通信带宽。
66.通信双方建立ble连接之后,通信双方的蓝牙设备均检测当前连接事件的通信双方的数 据传输量,在本实施例中,检测数据传输量的方式可以为:建立通信连接的主设备将即将发 送的数据量预先发送至从设备和/或从设备将即将发送的数据量预先发送至主设备,主设备 将即将发送的数据量与从设备即将发送的数据量叠加,即为当前传输的数据传输量,以使通 信双方获知数据传输量。在本实施方式中,可以通过统计需要发送和/或接收的有效数据的 数据包长度来统计数据传输量,在其他实施方式中,也可以统计需要发送和/或接收的完整 数据的数据包长度来统计数据传输量,在此不作赘述。
67.本实施方式以统计需要发送和/或接收有效数据的数据包长度来举例,发送和/或接收的 数据的数据包格式中预设开始标识位,该标识位表示有效数据的起始位置,在数据包的结尾 预设结束标识位,表示有效数据的结束位置,通过本实施方式的方法,在发送和/或接收数 据的时候,可以筛除无效数据,减少数据冗余。
68.本实施例方法适用于通信双方任意一蓝牙设备,即可应用于主设备,也可应用于从设备。
69.在本实施例中,通信带宽由当前的数据传输量、当前的通信速率、使用的phy及单次可 以发送的最大数据包长度计算获得,计算公式如下:
[0070][0071]
公式中datalentotal为当前动态统计到的发送与接收的数据包总长度(即数据传输 量),payloadlen为单个数据包payload的最大长度,txtime为发送一个数据包所需要的时 间,根据通信速率、使用的phy以及单次可发送数据包的最大长度可以确定,t_ifs是收发 包的帧间隔时间,对于ble是固定的150μs,timeslot是一个时隙时间长度,[]表示向上 取整操作,bc即表示动态计算出来的通信带宽。
[0072]
bi为预设的初始通信带宽,即蓝牙设备之间建立ble连接时的通信带宽,当 datalentotal为0,即当前统计收发的都是空包,当前蓝牙设备的通信带宽为bi。
[0073]
由数据传输量、当前的通信速率、使用的phy及单次可以发送的最大数据包长度计算获 得的带宽,具有良好的实时性,考虑到蓝牙设备本身的性能且兼顾了数据发送的情况,计算 结果也较为准确。
[0074]
本技术能够实时监测低功耗蓝牙连接设备间的数据传输量,并根据数据传输量、当前的 通信速率、使用的phy及单次可以发送的最大数据包长度动态计算通信带宽,从而有效提高 了蓝牙ble设备的通信传输效率,为降低蓝牙ble设备的运行功耗提供了有利的条件。
[0075]
本技术实施例方案中,通过实时监测通信双方的数据传输量,根据实时计算的数据传输 量、当前的通信速率、使用的phy及单次可以发送的最大数据包长度,动态计算当前实现信 息完整传输以及提高宽带利用率的通信带宽,通过应用当前动态计算获得的通信带宽,实现 提高通信双发信息传输的可靠性以及节省资源的效果。
[0076]
可选的,在另一实施方式中,实时监测当前连接事件的通信双方的数据传输量包括:
[0077]
统计连续发送的完整数据包的长度和接收的完整数据包的长度,计算当前发送和接收的 完整数据包的总长度为数据传输量。
[0078]
对于ble通信连接事件,计算数据传输量可由统计发送和接收的完整数据包长度实现。
[0079]
通过统计接收和发送的完整数据包的长度,可以较为准确的获知实际传输的数据量,不 易造成数据溢出,且计算的通信宽带较为合理。
[0080]
可选的,在另一实施方式中,完整数据包包含至少一个子数据包,以子数据包的id标 识连续发送和/或接收的完整数据包的起始包和/或结束包。
[0081]
具体的,本技术连续发送和/或连续接收完整的数据包,即完整数据包分割为多个子数 据包后,连续接收和/或发送属于同一完整数据包的子数据包的过程。在本实施方式中,将 完整数据包切割为多个子数据包,且分开发送和/或接收,减少ble连接突然中断,导致完 整数据包接受失败而需要重新发送的情况。将完整数据包分段发送之后,当ble连接突然中 断,则下次重新连接的时候,可由上次发送失败的子数据包重新发送,提高数据发送速率。
[0082]
本实施方式中,以子数据包内的id标识子数据包的类型,比如说起始包、内容数据包、 结束包,起始包为完整数据包的起始标识,结束包为该完整数据包的结束标识,内容数据包 为该完整数据包传输的数据内容,通过id区分子数据包的类型,接收方在读取信息
时,可 根据数据包的不同采取对应的处理方式。
[0083]
在本实施方式中,以id标识区分子数据包可以为在子数据包内标识不同的id,标识数 据包的类型以及数据包的顺序,在本技术的其他实施方式中,id标识可以为其他的实现标识 数据包类型的方式,在此不作赘述。
[0084]
可选的,在另一实施方式中,以id为第一id的子数据包为连续传输的完整数据包的内 容数据包,以id为第二id的数据包标识连续传输的完整数据包的起始包和/或结束包。
[0085]
具体的,在本实施方式中,id为llid,该统计以llid的值为标记开始统计。如果当前 数据包为空包,则数据包的payload长度为0;如果当前为起始包,则统计到结束包,作为 当前该数据包的总长度。空中数据包的格式为低功耗蓝牙标准协议定义的标准格式,见图2 和图3,图2是ble非编码phy空中数据包结构,图3是ble编码phy空中数据包结构。
[0086]
统计连续发送的完整数据包的长度和接收的完整数据包的长度,计算当前发送和接收的 完整数据包的总长度为数据传输量包括:
[0087]
当接收到id为第二标识对应的子数据包,开始统计连接发送和/或接收的id为第一id 的子数据包个数,直至接收到结束包,统计结束。
[0088]
在本实施方式中,以id为第一id的子数据包为连续传输的完整数据包的内容数据包, 以id为第二id的数据包标识连续传输的完整数据包的起始包和/或结束包;即起始包与结 束包的标识相同,当检测到起始包时,统计开始;直到检测到下一个起始包,统计结束。
[0089]
本实施方式通过两个不同的id标识了数据包的类型,简化数据包识别的逻辑,简化程 序。
[0090]
以数据包上的标识来判断统计的起始时间,可以使统计的数据传输量更为准确,且减少 收到的无用数据,减少数据冗余。
[0091]
可选的,在另一实施方式中,当接收到id为第一标识的子数据包,当该子数据包为空 包时,该子数据包为当前连续发送和/或接收的完整数据包的结束包。
[0092]
在本实施方式中,以空包对完整数据包进行分割,可以进一步有效减少数据冗余,避免 接收无用数据。
[0093]
可选的,若当前发送和接收的子数据包一直为空包,则数据传输量为0。
[0094]
通过本实施方式的蓝牙设备,在接收到的数据为空包的时候,可以不启动统计,节省资 源,将当前通信带宽应用为初始通信带宽。
[0095]
参照图4,可选的,步骤s1包括:
[0096]
s11:根据当前的数据传输量、当前的通信速率、使用的phy及单次可以发送的最大数 据包长度动态计算得出通信带宽;
[0097]
s12:判断当前计算得出的通信带宽与当前连接事件的通信带宽是否相同;
[0098]
s13:若不同,调整当前连接事件的通信带宽为计算得出的通信带宽。
[0099]
具体的,在本实施方式中,增加判断当前通信带宽与动态计算得到的通信带宽是否相同 的步骤,以避免出现当前通信带宽与动态计算得到的通信带宽相同,而又重新调整当前通信 带宽的情况,占用了较多的资源,且为无用设置。
[0100]
若当前的通信带宽与动态计算得到的通信带宽不同,若动态计算得到的通信带宽
大于当 前的通信带宽,则调节蓝牙设备当前的通信带宽增大;若动态计算得到的通信带宽小于当前 的通信带宽,则调节蓝牙设备当前的通信带宽减小。
[0101]
可选的,在另一实施方式中,连接事件内蓝牙设备包括主设备和从设备;
[0102]
对于主设备,初始通信带宽设为最小连接事件长度与最大连接事件长度之间的任意一个 值;
[0103]
对于从设备,初始通信带宽为连接间隔时间段内任意的一个值。
[0104]
初始通信带宽至少为一个时隙长度。
[0105]
参照图5,可选的,在另一实施方式中,所方法还包括:
[0106]
s3:检测连接事件的关闭情况;
[0107]
s4:根据当前应用的通信带宽以及连接事件的关闭情况计算在当前连接事件内的数据发 送情况,并依据数据发送情况动态调整当前蓝牙的通信带宽。
[0108]
具体的,在动态计算的通信带宽被应用之后,需要检测连接事件正常关闭时,所统计的 完整数据包在一个连接事件间隔内是否能够正常发送完成,即可知道当前应用的通信带宽 合理,以及获知当前数据传输的可靠性。
[0109]
蓝牙ble连接设备是以连接间隔为单位的连接事件进行通信,即在建立连接后,每次连 接事件的持续时间均可知,即可以知道连接事件的关闭时间。
[0110]
照图6,可选的,在另一实施方式中,步骤s4包括:
[0111]
参s41:根据连接事件的关闭情况以及当前应用的通信带宽,计算当前连接事件的数据 传输量在当前连接事件内正常传输所需的通信带宽;
[0112]
s42:判断该数据传输量所需的传输时间与当前应用的通信带宽的大小;
[0113]
s43:如果所需的传输时间等于当前应用的通信带宽,无需调整当前应用的通信带宽;
[0114]
s44:如果所需的传输时间大于当前应用的通信带宽,则增大当前应用的通信带宽;
[0115]
s45:如果所需的传输时间小于当前应用的通信带宽,则减小当前应用的通信带宽。
[0116]
以当前应用的通信带宽以及连接事件的关闭情况计算在当前连接事件内的数据发送情 况,若发现数据在连接事件的持续时间内无法发送完全,则需要增大当前的通信带宽;若发 现连接实际的持续时间大于数据所需的发送时间,则当前应用的通信带宽过大,需要减小当 前的通信带宽。
[0117]
本实施方式的设置,动态调节当前连接事件的通信带宽,使当前应用的通信带宽适用于 当前的通信情况,对于蓝牙智能锁等通信数据量随时间变化而变化的应用场景,具有重要的 现实工程意义。
[0118]
可选的,在另一实施方式中,在应用计算得出的通信带宽为当前的通信带宽后,再根据 当前应用的通信带宽以及连接事件的关闭情况计算在当前连接事件内的数据发送情况,并依 据数据发送情况动态调整当前蓝牙的通信带宽。
[0119]
本实施方式中,根据当前应用的通信带宽以及连接事件的关闭情况计算在当前连接事件 内的数据发送情况,并依据数据发送情况动态调整当前蓝牙的通信带宽这样看步骤发生在动 态计算获得通信带宽,并且应用动态计算得到的通信带宽应用之后,若当前的
通信带宽不变, 仍为初始通信带宽,则不进行检测连接事件的关闭情况,不进行根据当前应用的通信带宽以 及连接事件的关闭情况计算在当前连接事件内的数据发送情况,并依据数据发送情况动态调 整当前蓝牙的通信带宽,节省蓝牙通信所需资源,提供通信速率。
[0120]
参照图7,本实施例的一个具体例子如下:
[0121]
1、建立ble连接;
[0122]
2、设置默认带宽bi(即初始通信带宽bi)。在ble通信连接初始建立时,对连接事件 可以设置一个较小的初始通信带宽bi。对于主设备,可以在最小和最大连接事件长度之间取 一个合适的带宽初始值;对于从设备,可以在连接间隔时间段内选取一个合适的通信带宽初 始值。通信带宽初始值至少应该为1个时隙长度,1个时隙为0.625ms,一般设置尽可能小 一点。
[0123]
1≤bi≤2*conninterval
[0124]
conninterval表示连接事件间隔,单位为1.25ms。
[0125]
3、实时统计通信数据量的变化。对于ble连接事件,统计连续发送和/或接收的完整数 据包长度。该统计以llid的值为标记开始统计。llid值为1(即第一id)时,如果子数据 包payload长度为0,则当前子数据包为空包,如果payload长度为非0,则该子数据包为 一个l2cap包的接续包;llid值为2(即第二id)时,表示当前子数据包为一个l2cap包的 起始包或一个完整的l2cap包,在统计到出现下一个起始包或下一个空包时,为当前该l2cap 完整数据包的总长度。
[0126]
比如,当发送的子数据包llid为2时,payload长度为n1,接下来出现若干个llid为 1且payload长度为非零的子数据包,记为ni,则该发送完整数据包的总长度为:
[0127][0128]
datalentotal
send
统计到下一个llid为2或为1且为空包时为止,k为当前l2cap 包非空包的个数。接收完整数据包的总长度用datalentotal
receive
表示,计算方式和发 送完整数据包一样。
[0129]
如果本地发送的一直是空包,则datalentotal
send
为0;如果本地接收的一直是空 包,则datalentotal
receive
为0。
[0130]
当前发送和接收完整数据包的总长度表示为:
[0131]
datalentotal=datalentotal
send
datalentotal
receive
[0132]
4、判断通信数据量(即数据传输量)是否大于0,若通信数据量等于0,则返回第2歩。
[0133]
5、若通信数据量大于0,计算通信带宽。在统计完成当前发送和接收数据包的总长度之 后,根据当前的通信速率、使用的phy以及单次可以发送的最大空中数据包payload长度计 算需要使用的通信带宽。计算方法如下所示:
[0134][0135]
公式(1)中datalentotal为当前动态统计到的发送与接收的数据包总长度,payloadlen 为单个数据包payload的最大长度,txtime为发送一个数据包所需要的时间,根据通信速率、 使用的phy以及单次可发送数据包的最大payload长度可以确定,比如,对
于1msps的非编 码phy,单次发送的最大payload为27个字节的非加密链路,txtime为296us。t_ifs是收 发包的帧间隔时间,对于ble是固定的150μs,timeslot是一个时隙时间长度0.625ms,[] 表示向上取整操作,bc即表示动态计算出来的通信带宽。
[0136]
公式中如果当前统计收发的都是空包,则datalentotal为0,此时bc设置为初始通信 带宽bi。
[0137]
比较一般的情形,如果datalentotal
receive
为0,datalentotal
send
为非0,则 表示本地发送了长度为非0的数据包,对方发送的是空包,(1)计算的通信带宽实际是单边 带宽,要计算双边带宽,可以利用(2)公式的方法。
[0138]
bc=(([datalentotal/payloadlen])*(txtime rxtime t_ifs)-t_ifs)/timeslot ;(2)
[0139]
其中,公式中txtime表示发送单个空中数据包的时间长度,rxtime表示接收单个空包 的时间长度,对于1msps的非编码phy,其长度固定为80us。对于datalentotal
receive
为非0,datalentotal
send
为0的情形,亦可以利用公式前述进行通信带宽计算。
[0140]
6、判断通信带宽是否变化,若动态计算得到的通信带宽等于初始通信带宽,即通讯带 宽无变化,则不用更新通信带宽;返回第3歩。
[0141]
7、若计算得到的通信带宽不等于初始通信带宽,则进行通信带宽的更新,应用计算得 到的通信带宽。
[0142]
8、根据连接事件关闭情况调整通信带宽。在动态计算的通信带宽被应用之后,需要检 测连接事件正常关闭时,所统计的l2cap数据包在一个连接事件间隔内是否能够正常发送完 成或者达到通信带宽最大值。
[0143]
如果在所设定的通信带宽时间内正常发送完成,并且实际的接收和发送完成时间占据了 当前连接事件的整个通信带宽,则说明当前的通信带宽设置是合理的,见图8;如果实际的 接收和发送完成时间小于当前连接事件设置的通信带宽,则可以相应适当减少通信带宽,见 图9;如果实际的接收和发送完成时间由于当前连接事件设置的通信带宽过窄导致事件关闭, 则可以相应增大通信带宽,见图10。直至动态调整的通信带宽在合理的范围值为止。这个通 信带宽调整的过程只是微调,一般在1~3个时隙以内。
[0144]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行 顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0145]
在本技术的一个实施例中,提供一种低功耗蓝牙通信带宽动态调整系统,该低功耗蓝牙 通信带宽动态调整系统与上述实施例中的低功耗蓝牙通信带宽动态调整方法一一对应。该低 功耗蓝牙通信带宽动态调整系统包括;
[0146]
检测模块,用于在建立ble连接之后,实时监测当前连接事件的通信双方的数据传输量;
[0147]
调整模块,用于根据当前的数据传输量、当前的通信速率、使用的phy及单次可以发送 的最大数据包长度动态计算得出通信带宽,并调整当前蓝牙设备的通信带宽。
[0148]
可选的,在另一实施方式中,所述实时监测当前连接事件的通信双方的数据传输量包括: 统计连续发送的完整数据包的长度和接收的完整数据包的长度,计算当前发送和接收的完整 数据包的总长度为数据传输量。
[0149]
可选的,在另一实施方式中,所述完整数据包包含至少一个子数据包,以子数据包的id 标识连续发送和/或接收的完整数据包的起始包和/或结束包。
[0150]
可选的,在另一实施方式中,以id为第一id的子数据包为连续传输的完整数据包的内 容数据包,以id为第二id的数据包标识连续传输的完整数据包的起始包和/或结束包。
[0151]
可选的,在另一实施方式中,当接收到id为第一标识的子数据包,当该子数据包为空 包时,该子数据包为当前连续发送和/或接收的完整数据包的结束包。
[0152]
可选的,在另一实施方式中,所述统计连续发送的完整数据包的长度和接收的完整数据 包的长度,计算当前发送和接收的完整数据包的总长度为数据传输量包括:当接收到id为 第二标识对应的子数据包,开始统计连接发送和/或接收的id为第一id的子数据包个数, 直至接收到结束包,统计结束。
[0153]
可选的,在另一实施方式中,若当前发送和接收的子数据包一直为空包,则数据传输量 为0。
[0154]
可选的,在另一实施方式中,还包括初始带宽设置模块。
[0155]
所述初始带宽设置模块,用于预设初始通信带宽;若数据传输量为0,则当前通信带宽 设置为初始通信带宽
[0156]
可选的,在另一实施方式中,调整模块还用于,根据当前的数据传输量、当前的通信速 率、使用的phy及单次可以发送的最大数据包长度动态计算得出通信带宽;判断当前计算得 出的通信带宽与当前连接事件的通信带宽是否相同;若不同,调整当前连接事件的通信带宽 为计算得出的通信带宽。
[0157]
可选的,在另一实施方式中,连接事件内蓝牙设备包括主设备和从设备;对于主设备, 初始通信带宽设为最小连接事件长度与最大连接事件长度之间的任意一个值;对于从设备, 初始通信带宽为连接间隔时间段内任意的一个值。
[0158]
可选的,在另一实施方式中,初始通信带宽至少为一个时隙长度。
[0159]
可选的,在另一实施方式中,还包括检测模块、动态计算模块。
[0160]
检测模块,用于检测连接事件的关闭情况;
[0161]
动态计算模块,用于根据当前应用的通信带宽以及连接事件的关闭情况计算在当前连接 事件内的数据发送情况,并依据数据发送情况动态调整当前蓝牙的通信带宽。
[0162]
可选的,在另一实施方式中,动态计算模块,还用于根据连接事件的关闭情况以及当前 应用的通信带宽,计算当前连接事件的数据传输量在当前连接事件内正常传输所需的通信带 宽;判断该数据传输量所需的传输时间与当前应用的通信带宽的大小;如果所需的传输时间 等于当前应用的通信带宽,无需调整当前应用的通信带宽;如果所需的传输时间大于当前应 用的通信带宽,则增大当前应用的通信带宽;如果所需的传输时间小于当前应用的通信带宽, 则减小当前应用的通信带宽。
[0163]
可选的,在另一实施方式中,在应用计算得出的通信带宽为当前的通信带宽后,再根据 当前应用的通信带宽以及连接事件的关闭情况计算在当前连接事件内的数据发送情况,并依 据数据发送情况动态调整当前蓝牙的通信带宽。
[0164]
上述的低功耗蓝牙通信带宽动态调整系统各个模块可全部或部分通过软件、硬件及其组 合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可
以以软件 形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0165]
在本技术实施例的一个实施例中,提供一种电子设备,该电子设备可以是服务器。该电 子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用 于提供计算和控制能力。该电子设备的存储器可以由任何类型的易失性或非易失性存储设备 或者它们的组合实现,易失性或非易失性存储设备包括但不限于:磁盘,光盘,eeprom (electrically-erasable programmable read only memory,电可擦除可编程只读存储 器),eprom(erasable programmable read only memory,可擦除可编程只读存储器),sram (static random access memory,静态随时存取存储器),rom(read-only memory,只读 存储器),磁存储器,快闪存储器,prom(programmable read-only memory,可编程只读 存储器)。该电子设备的存储器为存储于其内部的操作系统和计算机程序的运行提供环境。 该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时 实现上述实施例所述的低功耗蓝牙通信带宽动态调整方法步骤。
[0166]
在本技术的一个实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质 存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例所述的低功耗蓝牙通信 带宽动态调整方法步骤。所述计算机可读存储介质包括rom(read-only memory,只读存储 器)、ram(random-access memory,随机存取存储器)、cd-rom(compact disc read
‑ꢀ
only memory,只读光盘)、磁盘、软盘等。
[0167]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、 模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、 模块完成,即将本技术所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述 的全部或者部分功能。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献