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

BLE设备控制方法、装置、BLE设备、芯片及存储介质与流程

2022-02-20 19:32:44 来源:中国专利 TAG:

ble设备控制方法、装置、ble设备、芯片及存储介质
技术领域
1.本发明涉及无线通信领域,尤其涉及基于ble(bluetooth low energy,低功耗蓝牙)技术的ble设备控制方法、装置、ble设备、芯片及存储介质。


背景技术:

2.目前无线类的电子设备越来越受到人们的关注,它给人们带来了更多的便捷体验,比如电脑办公应用中的无线鼠标键盘以及可穿戴式电子设备,此类设备通常需要进行短距离通信且保持较长时间的续航能力,一般采用小型纽扣电池或者其他容量的干电池,因此,对功耗的要求会比较高。ble通信技术是低成本、短距离、可互操作的鲁棒性无线技术,正好符合这样的需求。
3.由于ble采用的是连接间隔时间可变的方式进行通信的,两个连接事件之间的时间间隔可以通过控制命令来改变,范围可以在几毫秒到几秒,而且还可以采用latency(允许从机不和主机通信的连续事件数,即时延)的方式。所以ble实际真正通信的时间占比很小,完全可以在空闲时间进入更低功耗的睡眠模式以延长设备电池的使用时间。睡眠模式目前常见的有两种方式:一种是将睡眠前所有的状态信息存放到一块不掉电的ram中,ble模块在睡眠时掉电,在醒来的时候通过读取这块不掉电的ram中的状态信息来恢复蓝牙状态信息,这种方式在掉电的情况下会将蓝牙的所有状态信息全部清掉,醒来需要恢复这些信息需要从外部ram中读取,再恢复,整个恢复需要花费很长时间,响应速度很慢,而ble设备通常要求快速响应,并且,此种方式下醒来也只能恢复掉电前的信息,无法准确进入当前的状态与主机通信;另一种就是让芯片处于低电模式,这种方式下蓝牙的状态信息会保持住,不会被清除,恢复时响应速度可以更快,但是在醒来的时候如何准确进入当前蓝牙的状态,以准确快速地恢复与主机的正常通信状态,仍然是一个需要解决的问题。


技术实现要素:

4.基于上述现状,本发明的主要目的在于提供一种ble设备控制方法、装置、ble设备、芯片及存储介质,能够在空闲时间进入睡眠模式以降低ble设备的功耗,同时在醒来时能够快速准确地响应,实现快速唤醒。
5.为实现上述目的,本发明采用的技术方案如下:
6.一种ble设备控制方法,应用于作为网络从设备的ble设备,所述ble设备与作为网络主设备的ble主设备进行通信,所述方法包括以下步骤:
7.s100,连接状态下,依据蓝牙状态参数判断所述ble设备是否处于可睡眠区域,若是,进入步骤s200,若否,继续步骤s100;
8.s200,启动睡眠模式,锁存当前蓝牙状态参数以确定睡眠参数;
9.s300,检测是否存在唤醒点,若是,进入步骤s400,若否,继续步骤s300;
10.s400,关闭睡眠模式,获取实际睡眠时间;
11.s500,以所述睡眠参数为新的计数起点,计算经过所述实际睡眠时间时长的计数
后新的参数以得到补偿参数;
12.s600,依据所述补偿参数更新所述ble设备的蓝牙状态参数,按所述更新后的蓝牙状态参数与ble主设备进行通信。
13.优选地,所述睡眠参数包括睡眠计数值、睡眠起始频点、睡眠起始事件号以及连接参数,所述补偿参数包括计数补偿值、补偿频点以及补偿事件号,s500包括:
14.s510,以所述睡眠计数值为起点,计算所述实际睡眠时间内新的计数增量以得到所述计数补偿值;
15.s520,以所述睡眠起始频点和所述睡眠起始事件号为初始参数,根据所述连接参数计算经所述实际睡眠时间后的所述补偿频点和所述补偿事件号;
16.其中,所述睡眠计数值为进入睡眠模式时预设计数器的实时计数值,所述预设器的实时计数值用于确定所述ble设备所处的实时通信位置。
17.优选地,s520包括:
18.s521,根据所述计数补偿值确定所述唤醒点所处的第一位置;
19.s522,判断所述第一位置是否落入所述ble主设备发送数据包的范围内,若不落入,执行步骤s523,若落入,执行步骤s524;
20.s523,以所述睡眠起始频点和所述睡眠起始事件号为初始参数,根据所述实际睡眠时间和所述连接参数,按第一补偿公式计算得到所述补偿频点和所述补偿事件号;
21.s524,以所述睡眠起始频点和所述睡眠起始事件号为初始参数,根据所述实际睡眠时间和所述连接参数,将按所述第一补偿公式计算得到的频点的下一跳频点作为所述补偿频点,将按所述第一补偿公式计算得到的事件号的下一事件号为所述补偿事件号。
22.优选地,所述睡眠计数值包括第一计数值和第二计数值,所述预设计数器包括第一计数器和第二计数器,所述第一计数值为进入睡眠模式时所述第一计数器的所述计数值,所述第二计数值为进入睡眠模式时第二计数器的实时计数值,所述第一计数器的计数容量为n1,计数单位为m1,所述第二计数器的计数容量为n2,计数单位为m2,其中,n2*m2为625μs的整数倍,且m2=n1*m1。
23.优选地,所述连接参数包括连接间隔interval,所述第一计数器为加法计数器,计数容量为625,计数单位为1μs,所述第二计数器为减法计数器,计数容量为2*interval,计数单位为625μs。
24.优选地,所述计数补偿值包括第一计数补偿值和第二计数补偿值,s510包括:
25.s511,依据公式1计算第一计数补偿值;所述公式1为:
[0026][0027]
s512,依据公式2、公式3和公式4计算第二计数补偿值,所述公式2为:
[0028][0029]
所述公式3为:
[0030]
所述公式4为:
[0031]
其中,c0为所述第一计数值,c1为所述第一计数补偿值,t为所述实际睡眠时间,d0为所述第二计数值,d1为所述第二计数补偿值,为向下取整。
[0032]
优选地,所述连接参数还包括跳频步长hopstep,其特征在于,所述第一补偿公式为:
[0033][0034]
其中,f为所述补偿频点,a为所述补偿事件号,f0为所述睡眠起始频点,a0为所述睡眠起始事件号。
[0035]
优选地,s300包括:
[0036]
s310,侦测是否存在外部唤醒操作,若是,判断存在所述唤醒点;若否,进入步骤s320;
[0037]
s320,判断预存睡眠时间是否计时结束,若是,判断存在所述唤醒点,以计时时刻为唤醒点;若否,返回步骤s310。
[0038]
s300,检测是否存在唤醒点。
[0039]
本发明实施例进一步提供一种ble设备控制装置,应用于作为网络从设备的ble设备,所述ble设备与作为网络主设备的ble主设备进行通信,所述ble设备控制装置包括:
[0040]
睡眠判断模块,用于在连接状态下,依据蓝牙状态参数判断所述ble设备是否处于可睡眠区域;
[0041]
睡眠控制模块,用于在处于可睡眠区域时启动睡眠模式,锁存当前蓝牙状态参数以确定睡眠参数;
[0042]
唤醒侦测模块,用于检测是否存在唤醒点;
[0043]
所述睡眠控制模块还用于在检测到所述唤醒点时关闭睡眠模式,获取实际睡眠时间;
[0044]
补偿计算模块,用于以所述睡眠参数为新的计数起点,计算经过所述实际睡眠时间时长的计数后新的参数以得到补偿参数;
[0045]
恢复控制模块,用于依据所述补偿参数更新所述ble设备的蓝牙状态参数,按所述更新后的蓝牙状态参数与ble主设备进行通信。
[0046]
优选地,所述睡眠参数包括睡眠计数值、睡眠起始频点、睡眠起始事件号以及连接参数,所述补偿参数包括计数补偿值、补偿频点以及补偿事件号,所述恢复控制模块包括:
[0047]
计数补偿单元,用于以所述睡眠计数值为起点,计算所述实际睡眠时间内新的计数增量以得到所述计数补偿值;
[0048]
事件补偿单元,用于以所述睡眠起始频点和所述睡眠起始事件号为初始参数,根据所述连接参数计算经所述实际睡眠时间后的所述补偿频点和所述补偿事件号;
[0049]
其中,所述睡眠计数值为进入睡眠模式时预设计数器的实时计数值,所述预设器的实时计数值用于确定所述ble设备所处的实时通信位置。
[0050]
优选地,所述事件补偿单元包括:
[0051]
位置计算子单元,用于:
[0052]
根据所述计数补偿值确定所述唤醒点所处的第一位置;
[0053]
判断所述第一位置是否落入所述ble主设备发送数据包的范围内;
[0054]
补偿计算子单元,用于:
[0055]
以所述睡眠起始频点和所述睡眠起始事件号为初始参数,根据所述实际睡眠时间和所述连接参数,按第一补偿公式计算得到所述补偿频点和所述补偿事件号;以及
[0056]
以所述睡眠起始频点和所述睡眠起始事件号为初始参数,根据所述实际睡眠时间和所述连接参数,将按所述第一补偿公式计算得到的频点的下一跳频点作为所述补偿频点,将按所述第一补偿公式计算得到的事件号的下一事件号为所述补偿事件号。
[0057]
优选地,所述睡眠计数值包括第一计数值和第二计数值,所述预设计数器包括第一计数器和第二计数器,所述第一计数值为进入睡眠模式时所述第一计数器的所述计数值,所述第二计数值为进入睡眠模式时第二计数器的实时计数值,所述第一计数器的计数容量为n1,计数单位为m1,所述第二计数器的计数容量为n2,计数单位为m2,其中,n2*m2为625μs的整数倍,且m2=n1*m1。
[0058]
优选地,所述连接参数包括连接间隔interval,所述第一计数器为加法计数器,计数容量为625,计数单位为1μs,所述第二计数器为减法计数器,计数容量为2*interval,计数单位为625μs。
[0059]
优选地,所述计数补偿值包括第一计数补偿值和第二计数补偿值,所述计数补偿单元包括:
[0060]
第一计数补偿子单元,用于依据公式1计算第一计数补偿值;所述公式1为:
[0061][0062]
第二计数补偿子单元,用于依据公式2、公式3和公式4计算第二计数补偿值,所述公式2为:
[0063][0064]
所述公式3为:
[0065]
所述公式4为:
[0066]
其中,c0为所述第一计数值,c1为所述第一计数补偿值,t为所述实际睡眠时间,d0为所述第二计数值,d1为所述第二计数补偿值,为向下取整。
[0067]
优选地,所述连接参数还包括跳频步长hopstep,所述第一补偿公式为:
[0068][0069]
其中,f为所述补偿频点,a为所述补偿事件号,f0为所述睡眠起始频点,ao为所述睡眠起始事件号。
[0070]
优选地,所述唤醒侦测模块包括:
[0071]
被动侦测单元,用于在预存睡眠时间计时未结束时,侦测是否存在外部唤醒操作,若存在,则判断存在所述唤醒点;
[0072]
主动侦测单元,用于在不存在外部唤醒操作时,判断预存睡眠时间是否计时结束,若是,判断存在所述唤醒点,以计时时刻为唤醒点。
[0073]
本发明实施例还提供一种用于实现如前所述的ble设备控制方法。
[0074]
本发明实施例还提供一种ble设备,所述ble设备作为网络从设备与作为网络主设备的ble主设备进行通信,所述ble设备包括:处理器,用于实现如前所述的ble设备控制方法。
[0075]
本发明实施例还提供一种存储介质,所述存储介质存有计算机程序,其特征在于,所述计算机程序被处理器运行时,执行如前所述的ble设备控制方法。
[0076]
有益效果:
[0077]
本发明ble设备控制方法、装置、ble设备、芯片及存储介质,在进入睡眠模式时锁存蓝牙状态参数,从而可以在退出睡眠模式时迅速恢复睡眠前的蓝牙状态参数。同时,在退出睡眠模式后,根据实际睡眠时间对睡眠前的睡眠参数进行补偿得到补偿参数,由此对蓝牙状态参数进行更新,可以使ble设备退出睡眠模式后能够迅速恢复与ble主设备的正常通信,避免通信出错。整体上提高了ble设备的唤醒速度以及响应准确度。
[0078]
本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。
附图说明
[0079]
以下将参照附图对根据本发明的优选实施方式进行描述。图中:
[0080]
图1所示是本发明第一实施例中ble设备控制方法的流程示意图;
[0081]
图2所示是本发明一实施例一具体场景中ble设备的通信时序示意图;
[0082]
图3所示是本发明一实施例另一具体场景中ble设备的通信时序示意图;
[0083]
图4所示是一种优选实施方式中ble设备控制装置的功能模块示意图。
具体实施方式
[0084]
为了对本发明的技术方案进行更详细的说明,以促进对本发明的进一步理解,下面结合附图描述本发明的具体实施方式。但应当理解,所有示意性实施例及其说明用于解释本发明,并不构成对本发明的唯一限定。
[0085]
本发明应用于各种ble设备,可以是移动设备例如可穿戴设备、手机、键盘、鼠标等,也可以是数据收集设备例如传感器、智能锁等,还可以是各种智能家居,例如,带有ble模块的智能空调、智能冰箱、智能电视或是遥控器等,本发明对此不作限制。
[0086]
在本发明中,ble设备作为网络从设备与作为网络主设备的ble主设备进行通信。
[0087]
以下对本发明中涉及的名词进行说明:
[0088]
连接事件:在一个ble连接中,主设备会在每个连接事件里向从设备发送数据包。一个连接事件是指主设备和从设备之间相互发送数据包的过程,连接事件的进行始终位于同一个频点。
[0089]
连接间隔时间:两个连续的连接事件的开始点之间的时间间隔,可以是7.5ms~4s内的任意值,但必须为1.25ms的整数倍,通常以conninterval=interval*1.25ms的形式给出,interval通常称为连接间隔interval,本发明中也采用连接间隔interval*1.25ms表示连接间隔时间,在ble规范中,interval的取值范围为6-3200。
[0090]
从设备延迟:主设备允许从设备忽略一定数量的连续连接事件,该数量为latency,在响应一个连接事件后,从设备可以连续忽略latency个连接事件,也称为connslavelatency,connslavelatency=latency,本发明中以latency表示从设备延迟,在ble规范中,latency的取值范围为0-499。
[0091]
跳频步长:跳频的跳跃步长,通常用hop或hopstep表示,本发明中以hopstep表示。在数据信道选择时使用,数据信道共37个,每次跳频后,当前信道编号加hop并模37为下一次使用的信道编号。在ble规范中,hopstep取值范围为5-16。
[0092]
事件号:对每一个连接事件的计数值,连接建立后第一个连接事件的事件号为0,之后每一个连接事件发生时,事件号加1。在ble规范中,当事件号达到65536时,会从零开始重新计数。
[0093]
瞬时:连接更新的开始时刻,通常指连接事件的起点。表示主设备和从设备在瞬时时刻切换新的连接参数,此处连接参数包括但不限于连接间隔interval、从设备延迟latency以及超时时间timeout等。瞬时通常用instant表示,例如,instant为100,表示在事件号为100的连接事件起点开始切换新的连接参数。
[0094]
第一实施例组:
[0095]
请参考图1,所示是本发明第一实施例中ble设备控制方法的流程示意图,在本实施例中,ble设备控制方法包括如下步骤:
[0096]
s100,连接状态下,依据蓝牙状态参数判断所述ble设备是否处于可睡眠区域,若是,进入步骤s200,若否,继续步骤s100;
[0097]
在本实施例中,ble从设备与ble主设备建立连接后,在连接间隔时间中大部分时间或者在多个连续连接事件中,并不需要与ble主设备通信,也即处于可睡眠区域,根据当前时刻距离上一个需要响应的连接事件的时间,可以确认当前是否处于可睡眠区域,当前时刻距离上一个需要响应的连接事件的时间可以根据蓝牙状态参数确定,此处,蓝牙状态参数包括但不限于上述提及的interval、latency以及用于计时的其他计数值。在接收到ble主设备发送的数据包,确认后续无新的数据包并响应ble主设备后,ble设备即判断进入可睡眠区域,可睡眠区域的时长由interval、latency决定。假设latency为0时,表示每一个连接事件都需要反馈,则空闲时间都处于一个连接间隔时间中,假设interval为6,计时时以1.25ms为计时单位,连接事件起点所处的第一个1.25ms区域,计数值为5,第二个1.25ms区域,计数值为4,以此类推,则4-0区域都可以作为可睡眠区域,可睡眠区域的长度可以依据interval设定,优选为interval-2,以便留出第一个1.25ms与ble主设备通信,并在下一个连接事件起点前1.25ms处于唤醒状态,可以理解,当需要与ble主设备通信的时间较长时,也可以在连接事件起点后留出更多时间,缩小可睡眠区域。假设latency为1,interval为6,计时仍以1.25ms为计时单位,在事件号为2的连接事件里ble从设备响应了主设备,则在事件号为2连接事件的区域4-0直至事件号为3的连接事件的区域5-0都可以作为可睡眠区域,长度总共11,可睡眠区域的长度可以依据interval设定,优选为interval*(latency 1)-2,以便留出第一个1.25ms用于与ble主设备通信,并在下一个连接事件起点前1.25ms处于唤醒状态。
[0098]
可以理解,ble从设备在响应ble主设备并确认后续无新的数据包需要接收后,即判断进入可睡眠区域,无需预留1.25ms,同理,在最后一个1.25ms也可以部分划为可睡眠区
域,可睡眠区域的设置只要保证ble设备可以在下一个连接事件起点前醒来即可,不必是1.25ms的整数倍,但睡眠区域的整体时长取决于interval和latency参数。
[0099]
s200,启动睡眠模式,锁存当前蓝牙状态参数以确定睡眠参数;
[0100]
在本发明实施例中,当处于可睡眠区域时,ble设备启动睡眠模式,锁存当前蓝牙状态参数。ble设备通常包括蓝牙模块、cpu以及电源管理单元pmu,蓝牙模块的蓝牙状态参数通常由寄存器存储,在低电状态下,寄存器的值可以锁存保留而不丢失,在恢复正常供电后,cpu可以通过总线直接读出锁存的值。睡眠模式下,ble设备整体处于低电状态,大部分模块和电路都处于关闭状态,仅必须的模块低电压供电以保证蓝牙状态参数锁存,pmu在低电状态下保持工作用于控制供电,低频时钟在低电状态下用于睡眠计时。在本实施例中,睡眠模式下,cpu备份运行信息,然后pmu停止对高频时钟供电,接着停止蓝牙模块的模拟电路的供电,包括adc/dac单元,功率放大单元、射频收发单元等,然后停止蓝牙模块的锁相环电路pll、晶振以及其他不需要的模块的供电,最后,pmu控制vdd降电压,ble设备进入低电状态,仅保留需要锁存蓝牙状态参数的模块处的供电,cpu、pmu、低频时钟处于低电状态。可以理解,以上列出的各模块的供电情况仅为帮助理解而不用于限制本发明的实施,在实际应用中,ble设备的各组成模块有所差异,因此,供电情况也有所不同。
[0101]
在本实施例中,进入睡眠模式后,ble主设备的对应参数依旧在变化,而作为从设别的ble设备由于处于低电状态,蓝牙状态参数已经锁存不变化,因此,在睡眠模式结束后,需要对这些参数进行补偿,才能与ble主设备正常通信,而这些蓝牙状态参数的变化通常与主从设备间的其他蓝牙状态参数相关例如连接参数,因此,睡眠参数是指ble设备作为从设备需要与ble主设备同步的蓝牙状态参数以及补偿这些需要同步的蓝牙状态参数所需要的其他蓝牙状态参数,在本实施例中,这些蓝牙状态参数包括但不限于预设计数器的实时计数值、频点、事件号、频点、连接参数等,对应的,睡眠参数是指进入睡眠模式时这些蓝牙状态参数的锁存值,可以在睡眠模式结束后,直接获取锁存的寄存器的值得到,包括睡眠计数值、睡眠起始频点、睡眠起始事件号以及连接参数。
[0102]
s300,检测是否存在唤醒点,若是,进入步骤s400,若否,继续步骤s300;
[0103]
在本发明实施例中,唤醒点是指ble设备需要退出睡眠模式回到正常模式的某一个时刻,也即从低电状态醒来的时刻。ble设备可以是在睡眠模式时长到达预设睡眠时间,在预设时刻主动醒来,也可以是在侦测到外界唤醒操作后醒来,对应的唤醒时刻分别为主动唤醒点和被动唤醒点。
[0104]
进一步地,在一优选实施例中,步骤s300包括:
[0105]
s310,侦测是否存在外部唤醒操作,若是,判断存在所述唤醒点;若否,进入步骤s320;
[0106]
s320,判断预存睡眠时间是否计时结束,若是,判断存在所述唤醒点,以计时时刻为唤醒点;若否,返回步骤s310。
[0107]
s300,检测是否存在唤醒点。
[0108]
在本实施例中,ble设备进入睡眠模式前,根据锁存的蓝牙状态参数可以预先计算在无外界干扰时可以睡眠的时间,得到一个预存睡眠时间,在预存睡眠时间结束的时刻在下一个连接事件起点开始前预设时长,以便留出时间使ble设备恢复至可以与ble主设备正常通信的状态。例如,假设latency为0时,interval为6,计时时以1.25ms为计时单位,若设
定可睡眠区域的为区域4-1,由于在设定睡眠区域时预留了最后一个1.25ms,则预存睡眠时间可以为整个可睡眠区域的时长,即1.25ms*4=5ms,若设定可睡眠区域为区域4-0,未预留时间用于ble设备醒来后恢复,则预存睡眠时间需要小于可睡眠区域的时长,可以是小于1.25ms*5=6.25ms的其他时长,例如,5.5ms,需要预留的时间取决于ble设备醒来需要的反应时长,在不同实施例中可以根据实际情况设置,以保证ble设备正常通信。
[0109]
需要注意的是,当进入睡眠模式前的蓝牙状态参数中存在instant时,预存睡眠时间需要确保唤醒点在instant-1的连接事件前醒来,以确保在instant连接事件ble设备可以正常切换至新的连接参数。
[0110]
s400,关闭睡眠模式,获取实际睡眠时间;
[0111]
在本发明实施例中,关闭睡眠模式后,ble设备恢复正常供电,睡眠参数可以从锁存的蓝牙状态参数中直接得到。
[0112]
实际睡眠时间是指进入睡眠模式到退出睡眠模式的时长,在睡眠模式下,可以由计时器和低频时钟,结合锁存的高低频时钟相位差得到该时长。进入睡眠模式后,在高频时钟的上升沿时启动一个计时器,在低频时钟的上升沿到来前,高频时钟驱动该计时器计时,低频时钟上升沿到来后,锁存该计时器的值得到高低频时钟的相位时差t
phase
,同时停止高频时钟,此时cpu停止运行,低频时钟上升沿到来后,pmu启动另一个计时器,由低频时钟驱动,在关闭睡眠模式后,得到实际的低电时间t
pmu
。睡眠模式结束后,根据pmu反馈的t
pmu
以及锁存的t
phase
,即可以得到实际睡眠时间t=t
phase
t
pmu

[0113]
s500,以所述睡眠参数为新的计数起点,计算经过所述实际睡眠时间时长的计数后新的参数以得到补偿参数;
[0114]
本实施例中,根据实际睡眠时间t,可以计算在ble设备在睡眠模式醒来后,ble设备当前的所处的实时通信位置,从而确定ble设备中需要与ble主设备同步的蓝牙状态参数的实时值,对睡眠参数中的这些参数进行补偿,得到补偿后的补偿参数,ble设备根据补偿参数更新按锁存值恢复的蓝牙状态参数后,就可以补偿睡眠模式下参数停止带来的影响,得到正确的蓝牙状态参数。此处,实时通信位置是指以某一个连接事件起点为定位点,当前时刻距离该定位点的相对位置,例如,interval为6时,以事件号0的连接事件起点为定位点,经过9ms,此时的实时通信位置是事件号为1的连接事件后,第1个1.25ms后的250us处,由此可见,实时通信位置可以通过预设计数器的实时计数值来确认。预设计数器可以是多个,也可以是一个,可以理解,由于连接间隔时间是1.25ms的整数倍,因此,预设计数器的计数设置应当至少能实现对1.25ms的整倍计数以及实现对1.25ms内的计数。而在实际睡眠时间确定后,以所述睡眠参数为新的计数起点,按预设计数器的计数规则进行计算,就可以得到睡眠参数经过实际睡眠时间后的正确值,由此,得到补偿参数。
[0115]
s600,依据所述补偿参数更新所述ble设备的蓝牙状态参数,按所述更新后的蓝牙状态参数与ble主设备进行通信。
[0116]
本发明实施例中,ble设备在退出睡眠模式后,恢复正常工作,高频时钟工作,此时,寄存器中锁存的蓝牙状态参数可以直接恢复,同时,需要补偿的参数可以根据补偿参数更新,更新后的蓝牙状态参数为正确无误的参数,ble设备可以在正确的频点和事件号上与ble主设备正常进行通信。
[0117]
在本实施例中,ble设备在进入睡眠模式时锁存蓝牙状态参数,从而可以在退出睡
眠模式时迅速恢复睡眠前的蓝牙状态参数。同时,在退出睡眠模式后,根据实际睡眠时间对睡眠前的睡眠参数进行补偿得到补偿参数,由此对蓝牙状态参数进行更新,可以使ble设备退出睡眠模式后能够迅速恢复与ble主设备的正常通信,避免通信出错。整体上提高了ble设备的唤醒速度以及响应准确度。
[0118]
进一步地,在一优选实施例中,步骤s500包括:
[0119]
s510,以所述睡眠计数值为起点,计算所述实际睡眠时间内新的计数增量以得到所述计数补偿值;
[0120]
s520,以所述睡眠起始频点和所述睡眠起始事件号为初始参数,根据所述连接参数计算经所述实际睡眠时间后的所述补偿频点和所述补偿事件号;
[0121]
本实施例中,睡眠参数中需要补偿的参数为睡眠计数值、睡眠起始频点、睡眠起始事件号,对应的,补偿得到的补偿参数包括计数补偿值、补偿频点以及补偿事件号。计数补偿值可以确定ble设备退出睡眠模式时的通信位置,也即唤醒点所处的位置,在确定进入睡眠模式的睡眠计数值、实际睡眠时间和连接参数中latency以及interval后,可以以睡眠计数值为起点,由cpu重新根据latency以及interval计算实际睡眠时间内睡眠计数值实际应当增加的计数差值也即计数增量,在睡眠计数值上加上计数增量后得到计数补偿值。同样,补偿频点和补偿事件号也可以根据计数差值、连接参数中的hopstep、latency以及interval计算,由此得到退出睡眠模式时实际的补偿频点和补偿事件号。
[0122]
进一步地,在本实施例中,步骤s520包括:
[0123]
s521,根据所述计数补偿值确定所述唤醒点所处的第一位置;
[0124]
s522,判断所述第一位置是否落入所述ble主设备发送数据包的范围内,若不落入,执行步骤s523,若落入,执行步骤s524;
[0125]
s523,以所述睡眠起始频点和所述睡眠起始事件号为初始参数,根据所述实际睡眠时间和所述连接参数,按第一补偿公式计算得到所述补偿频点和所述补偿事件号;
[0126]
s524,以所述睡眠起始频点和所述睡眠起始事件号为初始参数,根据所述实际睡眠时间和所述连接参数,将按所述第一补偿公式计算得到的频点的下一跳频点作为所述补偿频点,将按所述第一补偿公式计算得到的事件号的下一事件号为所述补偿事件号。
[0127]
本实施例中,计数补偿值可以确定ble设备退出睡眠模式时的通信位置,也即唤醒点所处的第一位置。ble设备的频点跳变和事件号变化都是在连接事件开始前完成,若退出睡眠模式时不在ble主设备发送数据包时,则此时可以正常计算补偿频点和补偿事件号,假设计数差值为δn,则此时补偿频点和补偿事件号的第一补偿公式为:
[0128][0129]
其中,f为所述补偿频点,a为所述补偿事件号,f0为所述睡眠起始频点,a0为所述睡眠起始事件号,为向下取整。
[0130]
补偿过后,ble设备蓝牙状态参数为正确值,在下一个事件起点前,预设计数器继续计数,频点和事件号变化。
[0131]
如果退出睡眠模式时刚好落入ble主设备发送数据包范围内即ble主设备的发送窗口内,则此时ble设备还未完全恢复正常,频点和事件号变化刚好错过了跳频和事件号增加的时间,该频点和事件号需要由软件补偿,因此,需要额外对频点和事件号进行加1补偿,
以补偿此时ble设备刚好错过了频点和事件号增加。此时,此时补偿频点和补偿事件号的补偿公式为:
[0132][0133]
其中,f为所述补偿频点,a为所述补偿事件号,f0为所述睡眠起始频点,a0为所述睡眠起始事件号。
[0134]
在本实施例中,在计算补偿参数时,对于退出时刚好落在发包位置的情况进行了额外补偿,由此,避免了ble设备按正常情况补偿时仍无法与ble主设备正常通信的情况出现,确保了准确度。
[0135]
进一步地,在一优选实施例中,预设计数器包括第一计数器和第二计数器,睡眠计数值包括第一计数值和第二计数值,第一计数值为进入睡眠模式时第一计数器的所述计数值,第二计数值为进入睡眠模式第二计数器的实时计数值,第一计数器的计数容量为n1,计数单位为m1,第二计数器的计数容量为n2,计数单位为m2,其中,n2*m2为625μs的整数倍,且m2=n1*m1。
[0136]
进一步地,在一优选实施例中,当采用两个计数器来确定通信位置时,第二计数器用于确定ble设备当前处于interval个1.25ms中的哪一个,因此,优选可以采用减法计数器,计数容量为2*interval,计数单位为625μs。当计数器为0时,说明interval计数结束,下一个计数即为新的连接事件,计数器复位为2*interval-1。第一计数器可以用于确定ble设备当前位于1.25ms中的哪一个时刻,因此,优选可以采用加法计数器,计数单位为1μs,计数容量为625,当计数到624时,则复位为0。
[0137]
优选地,在一优选实施例中,当预设计数器采用上述第一计数器和第二计数器时,计数补偿值包括第一计数补偿值和第二计数补偿值,s510包括:
[0138]
s511,依据公式1计算第一计数补偿值;所述公式1为:
[0139][0140]
s512,依据公式2、公式3和公式4计算第二计数补偿值,所述公式2为:
[0141][0142]
所述公式3为:
[0143]
所述公式4为:
[0144]
其中,c0为所述第一计数值,c1为所述第一计数补偿值,t为所述实际睡眠时间,d0为所述第二计数值,d1为所述第二计数补偿值,为向下取整。
[0145]
本实施例中,可以计算睡眠期间经过多少个625μs,与1.25ms换算后可以监控已经经过几个interval个间隔,也即经过多少个连接事件,t mod 625计算出睡眠时长中不满625μs的部分,加上睡眠前的第一计数值,可以确认精确位置,如果超过625μs,则第二计数值还需要补偿1,由于本实施例中,第二计数器为减法计数器,此处补偿1为减1操作。
[0146]
进一步地,在本实施例中,得到计数差值n1后,可以进一步计算补偿事件号和补偿频点好,此时,所述第一补偿公式为:
[0147][0148]
可以理解,计数器的设置以能确定通信位置为原则,并不限定于以上列举的实施方式。在其他实施例中,第一计数器也可以采用减法计数器,其他计数单位如2μs、3μs,计数容量也可以为其他值。第二计数器也可以采用加法计数器,其他计数单位如1.25ms以及其他计数容量,本发明对此不作限定。当计数器设置变化时,则计数差值的计算会有所变化,公式1-公式4会依据计数器的计数单元、计数容量的变化而有所调整,本领域技术人员依据本发明的记载可以得到变化后的公式,本发明不做详细描述。
[0149]
在本实施例中,通过两个计数器分别计数来实现对ble设备通信位置的确认,使位置的确认更为精确,从而在进行补偿计算时可以更为快速准确。
[0150]
以下给出本发明实施例中的几个具体场景进行举例说明。
[0151]
假设连接事件间隔interval为6,跳频hopstep为5,时延latency为0,则频点的计数区间为[0,39],连接间隔时第二计数器实时计数值d的取值区间为[0,11];第一计数器实时计数值c的取值区为:[0,624]。进入睡眠模式时,第一计数值c0=300;第二标记值d0为10;睡眠起始频点f0为7,睡眠起始事件号a0为1。
[0152]
场景一:
[0153]
如图2所示,唤醒点为主动唤醒时,t1时刻进入睡眠模式,实际睡眠时间t为6075μs,则按公式1-4正常计算补偿的第一标记值、补偿的第二标记值、频点和事件号;由于c0 t mod 625=300 450>625,c1=300 450-625=125,同时,第二计数补偿值需要补偿1,同时n
1 mod(2*interval)=9;此时d0-n
1 mod(2*interval) 2*interval-n0=10-9-1=0>0,所以d1=0。
[0154]
由于c1=125,d1=0;唤醒点不落入ble主设备发送数据包的范围内,因此,按第一补偿公式计算补偿频点和补偿事件号:
[0155][0156][0157]
场景二:
[0158]
如图3所示,时延latency为3,t1时刻为睡眠起始点,t2时刻为被动唤醒点,实际睡眠时间t为21650μs,且唤醒点t2落在ble主设备(主机)正在发数据包时,则放弃当前收包,等待下一连接事件主机发包,并计算补偿计数值,且补偿频点和补偿事件号需要补1,以在下一连接事件能够调整到ble主设备发送数据包对应的频点和事件号上。此时:
[0159]
由于c0 t mod 625=300 400>625,c1=300 400-625=75,同时,第二计数补偿值需要补偿1,同时n
1 mod(2*interval)=10;此时d0-n
1 mod(2*interval) 2*interval-n0=10-10-1=0<0,所以d1=10-10-1 12=11。
[0160]
由于c1=75,d1=11,唤醒点落入ble主设备发送数据包的范围内,因此,按第一补偿公式计算补偿频点和补偿事件号:
[0161][0162][0163]
第二实施例组:
[0164]
本发明第二实施例组进一步提供一种ble设备控制装置。请参考图4,在本实施例中,ble设备控制装置应用于作为网络从设备的ble设备,所述ble设备与作为网络主设备的ble主设备进行通信ble设备控制装置包括:
[0165]
睡眠判断模块100,用于在连接状态下,依据蓝牙状态参数判断所述ble设备是否处于可睡眠区域;
[0166]
睡眠控制模块200,用于在处于可睡眠区域时启动睡眠模式,锁存当前蓝牙状态参数以确定睡眠参数;
[0167]
唤醒侦测模块300,用于检测是否存在唤醒点;
[0168]
睡眠控制模块200还用于在检测到所述唤醒点时关闭睡眠模式,获取实际睡眠时间;
[0169]
补偿计算模块400,用于以所述睡眠参数新的计数起点,计算经过所述实际睡眠时间时长的计数后新的参数以得到补偿参数;
[0170]
恢复控制模块500,用于依据所述补偿参数更新所述ble设备的蓝牙状态参数,按所述更新后的蓝牙状态参数与ble主设备进行通信。
[0171]
在一优选实施例中,恢复控制模块500包括:
[0172]
计数补偿单元510,用于以所述睡眠计数值为起点,计算所述实际睡眠时间内新的计数增量以得到所述计数补偿值;
[0173]
事件补偿单元520用于以所述睡眠起始频点和所述睡眠起始事件号为初始参数,根据所述连接参数计算经所述实际睡眠时间后的所述补偿频点和所述补偿事件号。
[0174]
事件补偿单元520包括:
[0175]
位置计算子单元9521,用于:
[0176]
根据所述计数补偿值确定所述唤醒点所处的第一位置;
[0177]
判断所述第一位置是否落入所述ble主设备发送数据包的范围内;
[0178]
补偿计算子单元522,用于:
[0179]
以所述睡眠起始频点和所述睡眠起始事件号为初始参数,根据所述实际睡眠时间和所述连接参数,按第一补偿公式计算得到所述补偿频点和所述补偿事件号;以及
[0180]
以所述睡眠起始频点和所述睡眠起始事件号为初始参数,根据所述实际睡眠时间和所述连接参数,将按所述第一补偿公式计算得到的频点的下一跳频点作为所述补偿频点,将按所述第一补偿公式计算得到的事件号的下一事件号为所述补偿事件号。
[0181]
在一优选实施例中,所述睡眠计数值包括第一计数值和第二计数值,所述预设计数器包括第一计数器和第二计数器,所述第一计数值为进入睡眠模式时所述第一计数器的所述计数值,所述第二计数值为进入睡眠模式时第二计数器的实时计数值,所述第一计数器的计数容量为n1,计数单位为m1,所述第二计数器的计数容量为n2,计数单位为m2,其中,n2*m2为625μs的整数倍,且m2=n1*m1。
[0182]
在一优选实施例中,所述连接参数包括连接间隔interval,所述第一计数器为加法计数器,计数容量为625,计数单位为1μs,所述第二计数器为减法计数器,计数容量为2*
interval,计数单位为625μs。
[0183]
在一优选实施例中,所述计数补偿值包括第一计数补偿值和第二计数补偿值,计数补偿单元510包括:
[0184]
第一计数补偿子单元511,用于依据公式1计算第一计数补偿值;所述公式1为:
[0185][0186]
第二计数补偿子单元512,用于依据公式2、公式3和公式4计算第二计数补偿值,所述公式2为:
[0187][0188]
所述公式3为:
[0189]
所述公式4为:
[0190]
其中,c0为所述第一计数值,c1为所述第一计数补偿值,t为所述实际睡眠时间,d0为所述第二计数值,d1为所述第二计数补偿值,为向下取整。
[0191]
在一优选实施例中,所述连接参数还包括跳频步长hopstep,所述第一补偿公式为:
[0192][0193]
其中,f为所述补偿频点,a为所述补偿事件号,f0为所述睡眠起始频点,a0为所述睡眠起始事件号。
[0194]
以上实施例中,ble设备控制装置实现ble设备控制控制方法的详细过程,请参考第一实施例组中的描述。
[0195]
本发明第三实施例进一步一种ble设备,所述ble设备作为网络从设备与作为网络主设备的ble主设备进行通信,所述ble设备包括处理器,用于实现如第一实施例组所述的ble设备控制方法。
[0196]
本发明第四实施例进一步提供用于ble设备的芯片,其上具有集成电路,所述集成电路被设计成用于实现如第一实施例组所述的ble设备控制方法。
[0197]
本发明第五实施例进一步提供一种存储介质,所述存储介质存有计算机程序,所述计算机程序被处理器运行时,执行如前第一实施例组述的ble设备控制方法。
[0198]
本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。
[0199]
应当理解,上述的实施方式仅是示例性的,而非限制性的,在不偏离本发明的基本原理的情况下,本领域的技术人员可以针对上述细节做出的各种明显的或等同的修改或替换,都将包含于本发明的权利要求范围内。
再多了解一些

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

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

相关文献