一种基于低功耗蓝牙协议的通信方法和装置与流程

文档序号:11157915阅读:409来源:国知局
一种基于低功耗蓝牙协议的通信方法和装置与制造工艺

本发明涉及通信的技术领域,特别是涉及一种基于低功耗蓝牙协议的通信方法和一种基于低功耗蓝牙协议的通信装置。



背景技术:

随着通信科技的发展,诸如手机、手环、手表等智能终端在人们的工作、学习、日常交流等各方面的使用率也越来越高。

随着可穿戴设备的逐步兴起,如手环、手表等,这些可穿戴设备一般通过蓝牙协议与用户的其他智能终端(如手机)相连接,进行通知消息的同步以及数据的上报。

蓝牙协议又分为传统蓝牙协议(又称经典蓝牙,Classic Bluetooth)和低功耗蓝牙协议(Bluetooth Low Energy,BLE)两种。

其中,低功耗蓝牙协议以其低耗电水平而广泛普及,在低功耗蓝牙协议下,一侧终端如果接收或生成消息,会实时将该消息同步或上报到另一侧终端,如果另一侧终端处于休眠状态,频繁地同步或上报消息会导致另一侧终端频繁地唤醒,导致另一侧终端的资源消耗增加。

例如,手表与手机通过低功耗蓝牙协议相连,存在两种情况:

一种情况是,手机收到通知或来电等消息时,将消息同步到手表。

另一种情况是,手表产生的运动数据、位置信息等消息,上传到手机端。

若手表处于休眠状态,手机中的某个应用每隔10秒有一个新通知,则手机就会每隔10秒通过低功耗蓝牙协议将新通知同步到手表中,即每隔10秒唤醒手表一次。

如果手机处于休眠状态,手表每1秒产生一次运动数据、位置信息,则手表就会每隔1秒通过低功耗蓝牙协议将运动数据、位置信息上报到手机,即每隔1秒唤醒手机一次。



技术实现要素:

鉴于上述问题,为了解决上述在低功耗蓝牙协议下频繁唤醒终端的问题,本发明实施例提出了一种基于低功耗蓝牙协议的通信方法和相应的一种基于低功耗蓝牙协议的通信装置。

依据本发明的一个方面,提供了一种基于低功耗蓝牙协议的通信方法,包括:

第一终端作为中心设备,在接收到消息时,检测作为外围设备的第二终端的状态标识;

第一终端在检测到所述状态标识为休眠标识时,识别所述消息的类型;第一终端根据所述类型对应的同步频率、将所述消息通过低功耗蓝牙协议发送至第二终端。

可选地,所述识别所述消息的类型的步骤包括:

确定接收到所述消息的应用;

查询所述应用对应的分类标签;

按照所述分类标签确定所述消息的类型。

可选地,所述类型包括第一类型和第二类型;

所述第一终端根据所述类型对应的同步频率、将所述消息通过低功耗蓝牙协议发送至第二终端的步骤包括:

第一终端在确定所述消息属于第一类型时,将所述消息缓存一段时间;

第一终端在超过所述时间时,将所述时间段内属于所述第一类型的消息通过低功耗蓝牙协议向发送至第二终端;

第一终端在确定所述消息属于第二类型时,将属于所述第二类型的消息通过低功耗蓝牙协议发送至第二终端。

可选地,所述第一终端在确定所述消息属于第一类型时,将所述消息缓存一段时间的步骤包括:

第一终端在确定所述消息属于第一类型时,将属于所述第一类型的消息存储至缓存队列中;

第一终端启动定时器,以计时一段时间。

可选地,所述第一终端在超过所述时间时,将所述时间段内属于所述第一类型的消息通过低功耗蓝牙协议向发送至第二终端的步骤包括:

第一终端在所述定时器计时结束时,将所述缓存队列中属于所述第一类型的消息通过低功耗蓝牙协议发送至第二终端;

第一终端取消所述定时器。

可选地,所述第一终端在确定所述消息属于第二类型时,通过低功耗蓝牙协议将所述消息发送至第二终端的步骤包括:

第一终端在确定所述消息属于第二类型时,判断是否缓存有属于所述第一类型的消息;

若是,则第一终端将属于所述第一类型的消息、属于所述第二类型的消息通过低功耗蓝牙协议一同发送至第二终端。

可选地,所述第一终端在确定所述消息属于第二类型时,判断是否存储有属于所述第一类型的消息的步骤包括:

第一终端在确定所述消息属于第二类型时,判断是否启动定时器;

若是,则确定缓存有属于所述第一类型的消息。

可选地,所述第一终端将属于所述第一类型的消息、属于所述第二类型的消息通过低功耗蓝牙协议一同发送至第二终端的步骤包括:

第一终端将缓存队列中属于所述第一类型的消息、属于所述第二类型的消息通过低功耗蓝牙协议一同发送至作为外围设备的第二终端;

第一终端取消所述定时器。

可选地,还包括:

第一终端通过低功耗蓝牙协议接收第二终端在进入休眠状态时发送的休眠标识;

第一终端将所述休眠标识记录为第二终端的状态标识;

和/或,

第一终端通过低功耗蓝牙协议接收第二终端在进入活动状态时发送的活动标识;

第一终端将所述活动标识记录为第二终端的状态标识。

可选地,还包括:

第一终端在所述状态标识为活动标识时,将所述消息通过低功耗蓝牙协议发送至第二终端。

根据本发明的另一方面,提供了一种基于低功耗蓝牙协议的通信方法,包括:

第二终端作为外围设备,在生成消息时,检测作为中心设备的第一终端的状态标识;

第二终端在检测到所述状态标识为休眠标识时,将所述消息缓存一段时间;

第二终端在超过所述时间时,将所述消息通过低功耗蓝牙协议发送至第一终端。

可选地,所述将所述消息缓存一段时间的步骤包括:

将所述消息存储至缓存队列中;

启动定时器,以计时一段时间。

可选地,所述第二终端在超过所述时间时,将所述消息通过低功耗蓝牙协议发送至第一终端的步骤包括:

第二终端在所述定时器计时结束时,将所述缓存队列中的消息通过低功耗蓝牙协议发送至作为中心设备的第一终端;

第二终端取消所述定时器。

可选地,还包括:

第二终端通过低功耗蓝牙协议接收第一终端在进入休眠状态时发送的休眠标识;

第二终端将所述休眠标识记录为第一终端的状态标识;

和/或,

第二终端通过低功耗蓝牙协议接收第一终端在进入活动状态时发送的活动标识;

第二终端将所述活动标识记录为第一终端的状态标识。

可选地,还包括:

第二终端在所述状态标识为活动标识时,将所述消息通过低功耗蓝牙协议发送至第一终端。

根据本发明的另一方面,提供了一种基于低功耗蓝牙协议的通信装置,应用在第一终端中,所述装置包括:

外围状态检测模块,用于作为中心设备,在接收到消息时,检测作为外围设备的第二终端的状态标识;

消息类型识别模块,用于在检测到所述状态标识为休眠标识时,识别所述消息的类型;

外围消息休眠同步模块,用于根据所述类型对应的同步频率、将所述消息通过低功耗蓝牙协议发送至第二终端。

可选地,所述消息类型识别模块包括:

应用确定子模块,用于确定接收到所述消息的应用;

分类标签查询子模块,用于查询所述应用对应的分类标签;

消息类型确定子模块,用于按照所述分类标签确定所述消息的类型。

可选地,所述类型包括第一类型和第二类型;所述外围消息休眠同步模块包括:

中心缓存子模块,用于在确定所述消息属于第一类型时,将所述消息缓存一段时间;

中心间隔发送子模块,用于在超过所述时间时,将所述时间段内属于所述第一类型的消息通过低功耗蓝牙协议向发送至第二终端;

中心实时发送子模块,用于在确定所述消息属于第二类型时,将属于所述第二类型的消息通过低功耗蓝牙协议发送至第二终端。

可选地,所述中心缓存子模块包括:

中心缓存队列存储单元,用于第一终端在确定所述消息属于第一类型时,将属于所述第一类型的消息存储至缓存队列中;

中心定时器启动单元,用于启动定时器,以计时一段时间。

可选地,所述中心间隔发送子模块包括:

中心计时发送单元,用于在所述定时器计时结束时,将所述缓存队列中属于所述第一类型的消息通过低功耗蓝牙协议发送至第二终端;

第一中心定时器取消单元,用于取消所述定时器。

可选地,所述中心实时发送子模块包括:

缓存消息判断单元,用于在确定所述消息属于第二类型时,判断是否缓存有属于所述第一类型的消息;若是,则调用中心协同发送单元;

中心协同发送单元,用于将属于所述第一类型的消息、属于所述第二类型的消息通过低功耗蓝牙协议一同发送至第二终端。

可选地,所述缓存消息判断单元包括:

启动器启动判断子单元,用于第一终端在确定所述消息属于第二类型时,判断是否启动定时器;若是,则调用消息缓存确定子单元;

消息缓存确定子单元,用于确定缓存有属于所述第一类型的消息。

可选地,所述中心协同发送单元包括:

中心双类型发送子单元,用于将缓存队列中属于所述第一类型的消息、属于所述第二类型的消息通过低功耗蓝牙协议一同发送至第二终端;

第二中心定时器取消子单元,用于取消所述定时器。

可选地,还包括:

外围休眠标识接收模块,用于通过低功耗蓝牙协议接收第二终端在进入休眠状态时发送的休眠标识;

外围休眠状态记录模块,用于将所述休眠标识记录为第二终端的状态标识;

和/或,

外围活动标识接收模块,用于通过低功耗蓝牙协议接收第二终端在进入活动状态时发送的活动标识;

外围活动状态记录模块,用于将所述活动标识记录为第二终端的状态标识。

可选地,还包括:

外围消息活动同步模块,用于在所述状态标识为活动标识时,将所述消息通过低功耗蓝牙协议发送至第二终端。

根据本发明的另一方面,提供了一种基于低功耗蓝牙协议的通信装置,应用在第二终端中,所述装置包括:

中心状态检测模块,用于作为外围设备,在生成消息时,检测作为中心设备的第一终端的状态标识;

外围缓存模块,用于在检测到所述状态标识为休眠标识时,将所述消息缓存一段时间;

中心消息休眠上报模块,用于在超过所述时间时,将所述消息通过低功耗蓝牙协议发送至第一终端。

可选地,所述外围缓存模块包括:

外围缓存队列存储子模块,用于在所述状态标识为休眠标识时,将所述消息存储至缓存队列中;

外围定时器启动子模块,用于启动定时器,以计时一段时间。

可选地,所述中心消息休眠上报模块包括:

外围计时发送子模块,用于在所述定时器计时结束时,将所述缓存队列中的消息通过低功耗蓝牙协议发送至第一终端;

外围定时器取消子模块,用于取消所述定时器。

可选地,还包括:

中心休眠标识接收模块,用于通过低功耗蓝牙协议接收第一终端在进入休眠状态时发送的休眠标识;

中心休眠状态记录模块,用于将所述休眠标识记录为第一终端的状态标识;

和/或,

中心活动标识接收模块,用于通过低功耗蓝牙协议接收第一终端在进入活动状态时发送的活动标识;

中心活动状态记录模块,用于将所述活动标识记录为第一终端的状态标识。

可选地,还包括:

中心消息活动上报模块,用于在所述状态标识为活动标识时,将所述消息通过低功耗蓝牙协议发送至第一终端。

本发明实施例包括以下优点:

本发明实施例应用低功耗蓝牙协议的通信,第一终端为中心设备、第二终端为外围设备,第一终端在接收到消息时,检测第二终端的状态标识,如果第二终端的状态标识为休眠标识时,则第一终端识别消息的类型,根据该类型对应的同步频率、将该消息通过低功耗蓝牙协议发送至第二终端,基于消息的类型灵活设置同步频率,避免了每次接收到消息就立即与处于休眠状态的第二终端进行同步,减少了同步的频次,从而减少了唤醒第二终端的频次,降低了第二终端的资源消耗。

本发明实施例应用低功耗蓝牙协议的通信,第一终端为中心设备、第二终端为外围设备,第二终端在生成消息时,检测第一终端的状态标识,如果第一终端的状态标识为休眠标识,则第二终端将消息缓存一段时间,在超过该时间时,将该消息通过低功耗蓝牙协议发送至第一终端,通过缓存消息,避免了每次生成消息就立即上报至处于休眠状态的第一终端,减少了同步的频次,从而减少了唤醒第一终端的频次,降低了第一终端的资源消耗。

附图说明

图1是本发明的一种基于低功耗蓝牙协议的通信方法实施例的步骤流程图;

图2是本发明的另一种基于低功耗蓝牙协议的通信方法实施例的步骤流程图;

图3是本发明的另一种基于低功耗蓝牙协议的通信方法实施例的步骤流程图;

图4是本发明的另一种基于低功耗蓝牙协议的通信方法实施例的步骤流程图;

图5是本发明的一种基于低功耗蓝牙协议的通信装置实施例的结构框图;

图6是本发明的另一种基于低功耗蓝牙协议的通信装置实施例的结构框图。

具体实施方式

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

在实际应用中,智能设备广泛应用蓝牙4.0标准,蓝牙4.0标准包含两个蓝牙标准,准确的说,是一个双模的标准,它包含传统蓝牙部分(也有称之为经典蓝牙)和低功耗蓝牙部分BLE。

这两个部分适用于不同的应用或者应用条件,传统蓝牙是在之前的1.0.1.2,2.0+EDR,2.1+EDR,3.0+EDR等基础上发展和完善起来的,低功耗蓝牙是在Wibree标准上发展起来的。

传统蓝牙可以用于数据量比较大的传输,如语音,音乐,较高数据量传输等。

低功耗蓝牙可以应用于实时性要求比较高,但是数据速率比较低的产品,如遥控类的鼠标、键盘、遥控鼠标(Air Mouse),传感设备的数据发送的心跳带、血压计、温度传感器等。

在BLE中,支持的角色有:

广播者(BroadCaster)——广告发送者,不是可连接的设备

观察者(Observer)——扫描广告,不能够启动连接

外围设备(Peripheral)——广告发送者,是可连接的设备,在单一链路层连接时作为一个从机

中心设备(Center)——扫描广告启动连接,在单一或者多链路层连接时作为主机,支持三个同时连接

广播者(BroadCaster)跟观察者Observer)配对使用不能建立连接。一个应用的示例为,温度传感器与温度显示器。

中心设备(Center)跟外围设备(Peripheral)可以进行连接,发起配对(Pairing),链接建立成功后,双发即可进行数据通信。一个应用的示例为,手表与手机、手环与手机。

BLE连接的过程如下:

1、外围设备(Peripheral)发送一个广告让任何中心设备(Center)知道外围设备(Peripheral)是一个可连接的设备。

广告的内容可以包含设备地址,还可以包含一些额外的额数据,比如设备名称、服务ID等。

2、中心设备(Center)接收到广告后,发送一个搜索请求给外围设备(Peripheral),外围设备(Peripheral)返回扫描响应给中央设备(Center),这样中央设备(Center)就知道这是一个可连接的设备。

3、中央设备(Center)可以发送一个建立连接的请求给外围设备(Peripheral)。进行配对连接,必要时进行绑定操作(连接可以被从机或者主机任一方终止)。

配对(Pairing):建立连接,配对完成后可以进行数据通信。

绑定(Banding):将配对信息记录下来,如设备地址,这样下次连接时就不需要再次配对的过程(快速连接)。

BLE用3个信道做广播信道,允许毫秒级快速建立连接,效率远高于传统蓝牙的32个信道方式。

传统蓝牙有79个数据信道,频道间隔是1MHz,而BLE有40个数据信道,频道间隔是2MHz。

传统蓝牙的工作峰值电流一般是35mA,睡眠状态电流是0.01mA,而BLE的工作峰值电流是小于15mA,睡眠状态电流是0.004mA。

在介绍BLE的通信方式之前,先介绍BLE中的技术规范:

1、Profile

Profile可以理解为一种规范,一个标准的通信协议,Profile存在于外围设备(Peripheral)中,蓝牙组织规定了一系列的标准Profile,例如,HID OVERGATT、防丢器、心率计等,每个Profile中会包含多个Service,每个Service代表外围设备(Peripheral)的一种能力。

2、Service

Service可以理解为一个服务,在外围设备(Peripheral)中,通常有多个Service,例如,电量信息服务、系统信息服务等,每个Service里面又包含多个Characteristic特征值。每个Characteristic特征值,是BLE通信的主体,比如,当前的电量是80%,通过将电量的Characteristic特征值存储在外围设备(Peripheral)的Profile里,这样中心设备(Center)就可以通过这个Characteristic特征值来读取80%这个数据。

3、Characteristic

Characteristic特征值可以理解为一个标签,通过这个标签可以获取或者写入想要的内容,中心设备(Center)与外围设备(Peripheral)的通信通过Characteristic特征值来实现。

4、UUID

UUID是统一识别码,Service和Characteristic都需要一个唯一的UUID来标识。

在BLE协议栈中定义了GAP(Generic Access Profile)和GATT(Generic Attribute)两个基本配置文件。

协议栈中的GAP层负责设备访问模式和进程,包括设备发现,建立连接,终止连接,初始化安全特征和设备配置。

协议栈中的GATT层用于已连接的设备之间的数据通信。

在BLE协议栈中的数据通信分为两个方面,一个是GATT的client(客户端,从服务器读/写数据的设备)主动向server(服务器,包含客户端需要读/写的数据的设备)发送数据,另外一个是GATT的server主动向client发送数据。

中心设备(Center)与外围设备(Peripheral)之间的通信:

1、中心设备(Center)向外围设备(Peripheral)发送数据:

中心设备(Center)可以调用GATT_WwrtiCharValue函数向外围设备(Peripheral)发送数据,这种情况下中心设备(Center)扮演client的角色。

该GATT_WwrtiCharValue函数会调用协议栈里面与硬件相关的函数最终将数据通过天线发送出去,这里面涉及对射频模块的操作,例如,打开发射机,调整发射机的发送功率等内容,这些操作已经在协议栈中实现了。

在GATT_WwrtiCharValue函数中,需要发送的数据填充到value中,数据长度填充到len中。

2、外围设备(Peripheral)接收中心设备(Center)发送的数据:

外围设备(Peripheral)接收中心设备(Center)发送的数据,这种情况下外围设备(Peripheral)扮演server的角色。

外围设备(Peripheral)会产生一个GATT Profile Callback调用,这个Callback是外围设备(Peripheral)初始化时像Profile注册的,在这个Callback中接收中心设备(Center)发送的数据。

3、外围设备(Peripheral)向中心设备(Center)发送数据:

外围设备(Peripheral)可以调用GATT_Notification函数向中心设备(Center)发送数据,这种情况下外围设备(Peripheral)扮演server的角色。

在GATT_Notification函数中,需要发送的数据填充到value中,数据长度填充到len中。

4、中心设备(Center)接收外围设备(Peripheral)发送的数据:

中心设备(Center)接收外围设备(Peripheral)发送的数据,这种情况下中心设备(Center)扮演client的角色。

中心设备(Center)通过GATT_MSG_EVENT事件触发任读取gattMsgEvent_t结构体中的msg对应的Indication and Notification messages实现数据接收。

参照图1,示出了本发明的一种基于低功耗蓝牙协议的通信方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,第一终端作为中心设备,在接收到消息时,检测作为外围设备的第二终端的状态标识。

在本发明实施例中,第一终端(如手机、平板电脑等)与第二终端(如手环、手表等)可以通过BLE连接。

在BLE中,第一终端为中心设备(Center),第二终端为外围设备(Peripheral)。

在第一终端与第二终端中安装有同一应用,如即时通讯工具、短信应用、电话应用、邮箱客户端等,该应用可能因为终端不同导致版本不同,但是,该应用可以在第一终端和第二终端中登录同一账号,如即时通讯账号、电话号码、邮箱账号等。

第一终端中的应用为主要的应用,一般与外部服务器直接交互,接收相应的消息,如即时通讯消息、来电、短信、电子邮件,等等,而第二终端中的应用为从属的应用,一般不与外部服务器直接交互,因此,若用户启用第二终端,则可以将第一终端中接收到的消息,同步至第二终端。

在实际应用中,可以在第一终端中启动一个后台服务service,当第一终端中的应用接收到应用通知、来电、短信等消息时,该应用会通过广播的形式告知系统其他应用,该后台服务service可以接收此广播,获知接收到的消息。

若第一终端在接收到新的消息,则可以检测第二终端的状态标识,即标识第二终端所处状态的信息,获知第二终端当前所处的状态。

步骤102,第一终端在检测到所述状态标识为休眠标识时,识别所述消息的类型。

休眠标识,指标识第二终端处于休眠状态的信息,如“sleep”。

如果第一终端查询到第二终端的状态标识为休眠标识,表示第二终端处于休眠状态,为避免频繁地唤醒第二终端,则可以依据接收到的消息的类型进行相应的同步处理。

在本发明的一个实施例中,步骤102可以包括如下子步骤:

子步骤S11,确定接收到所述消息的应用;

子步骤S12,查询所述应用对应的分类标签;

子步骤S13,按照所述分类标签确定所述消息的类型。

在具体实现中,某个应用的消息所属的类型,可以是系统设定的,也可以是用户设置的,本发明实施例对此不加以限制。

在本发明实施例中,可以对应用(可以以包名package name标识)进行分类标记,记录其分类标签,如果截取到某个应用的消息,则可以查询该应用的分类标签,对该消息进行相应的同步处理。

步骤103,第一终端根据所述类型对应的同步频率、将所述消息通过低功耗蓝牙协议发送至第二终端。

在具体实现中,第一终端可以依据消息不同的类型,查询不同的同步频率,作为中心设备(Center)通过BLE的相关规范,将该消息发送至作为外围设备(Peripheral)的第二终端。

第二终端可以依据消息不同的类型,对消息进行相应的展示。

在本发明的一个实施例中,类型包括第一类型和第二类型。

其中,第一类型为消息实时性要求较低的类型,如电子邮件等,同步频率较低,如一段时间同步一次,第二终端可以将该消息作为类似短信方式提示,用户可以选择看或不看;第二类型为消息实时性要求较高的类型,如来电、短信等,同步频率较高,如实时同步,第二终端可以将该消息跳至前台,用户通常先处理此消息,然后进行其他操作。

则在本发明实施例中,步骤103可以包括如下子步骤:

子步骤S21,第一终端在确定所述消息属于第一类型时,将所述消息缓存一段时间;

如果第一终端接收到的消息属于实时性要求较低的第一类型,为了避免频繁地唤醒第二终端,则可以间隔一段时间与第二终端进行一次同步。

需要说明的是,该一段时间为从第一条消息开始缓存到同步之间的时间,对这段时间内接收到的消息进行缓存,再将全部的消息一次性进行同步,并非每条消息都需要缓存这段时间。

例如,第一终端间隔10分钟同步一次第一类型的消息,假设在12:00接收到第一条消息,则开始计时,在12:00-12:10这段时间共接收到20条消息并进行了缓存,则在12:10将这20条消息同步至第二终端。

在具体实现中,第一终端在确定消息属于第一类型时,将属于第一类型的消息存储至缓存队列中。

此外,第一终端启动定时器,以计时一段时间。

即第一终端接收到第一类型的消息后,除了将该第一类型的消息存储至缓存队列之外,还可以检测是否启动定时器,如果没有启动,则启动定时器。

子步骤S22,第一终端在超过所述时间时,将所述时间段内属于所述第一类型的消息通过低功耗蓝牙协议向发送至第二终端;

在具体实现中,第一终端在定时器计时结束时,作为中心设备(Center),通过低功耗蓝牙协议将缓存队列中属于第一类型的消息发送至作为外围设备(Peripheral)的第二终端。

此外,第一终端取消定时器,以便于下一次进行计时。

子步骤S23,第一终端在确定所述消息属于第二类型时,将属于所述第二类型的消息通过低功耗蓝牙协议发送至第二终端。

如果第一终端接收到的消息属于实时性要求较高的第二类型,为了及时提醒用户,则可以直接与第二终端进行一次同步。

在本发明的一个实施例中,子步骤S23进一步可以包括如下子步骤:

子步骤S231,第一终端在确定所述消息属于第二类型时,判断是否缓存有属于所述第一类型的消息;若是,则执行子步骤S232;

在具体实现中,第一终端在确定消息属于第二类型时,判断是否启动定时器;若是,则确定缓存有属于第一类型的消息。

由于定时器用于对缓存的时间进行计时,因此,如果定时器启动,则表示缓存有属于第一类型的消息。

子步骤S232,第一终端将属于所述第一类型的消息、属于所述第二类型的消息通过低功耗蓝牙协议一同发送至第二终端。

在实际应用中,第一终端作为中心设备(Center)、通过低功耗蓝牙协议将缓存队列中属于第一类型的消息、属于第二类型的消息一同发送至作为外围设备(Peripheral)的第二终端。

此外,第一终端取消定时器,以便于下一次进行计时。

在本发明实施例中,为了减少唤醒第二终端的频次,第一终端在同步第二类型的消息时,可以检测是否缓存有第一类型的消息。

如果有,则将这两种类型的消息一次性进行同步,避免在同步第二类型的消息之后,再次同步第一类型的消息。

如果没有,则直接同步第二类型的消息。

当然,上述消息的类型只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他消息的类型,如第三类型,该第三类型的消息禁止同步至第二终端,等等,本发明实施例对此不加以限制。另外,除了上述消息的类型外,本领域技术人员还可以根据实际需要采用其它消息的类型,本发明实施例对此也不加以限制。

本发明实施例应用低功耗蓝牙协议的通信,第一终端为中心设备、第二终端为外围设备,第一终端在接收到消息时,检测第二终端的状态标识,如果第二终端的状态标识为休眠标识时,则第一终端识别消息的类型,根据该类型对应的同步频率、将该消息通过低功耗蓝牙协议发送至第二终端,基于消息的类型灵活设置同步频率,避免了每次接收到消息就立即与处于休眠状态的第二终端进行同步,减少了同步的频次,从而减少了唤醒第二终端的频次,降低了第二终端的资源消耗。

参照图2,示出了本发明的另一种基于低功耗蓝牙协议的通信方法实施例的步骤流程图,具体可以包括如下步骤:

步骤201,第一终端通过低功耗蓝牙协议接收第二终端在进入休眠状态时发送的休眠标识。

步骤202,第一终端将所述休眠标识记录为第二终端的状态标识。

在本发明实施例中,如果第二终端即将进入休眠状态,则可以作为外围设备(Peripheral),通过BLE的规范将休眠标识(如“sleep”)发送至作为中心设备(Center)的第一终端。

第一终端作为中心设备(Center),通过BLE的规范接收到作为外围设备(Peripheral)的第二终端发送的休眠标识(如“sleep”),则可以存储该休眠标识(如“sleep”)作为第二终端当前的状态标识。

需要说明的是,休眠状态一般是指将运行的实时数据存储到内存(媒介)上,并且尽可能关闭不必要的硬件以求省电,对于不同类型、不同系统的终端,该休眠状态具有不同的含义,本发明实施例对此不加以限制。

例如,在Linux系统中,休眠(suspend)主要分三个主要的步骤:

1、冻结用户态进程和内核态任务

2、调用注册的设备的suspend的回调函数,顺序是按照注册顺序

3、休眠核心设备和使CPU(Central Processing Unit,中央处理器)进入休眠态,冻结进程,即内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程的上下文。

步骤203,第一终端通过低功耗蓝牙协议接收第二终端在进入活动状态时发送的活动标识。

步骤204,第一终端将所述活动标识记录为第二终端的状态标识。

在本发明实施例中,如果第二终端在休眠状态中被中断或唤醒,则进入活动状态。

此时,第二终端可以作为外围设备(Peripheral),通过BLE的规范将活动标识(指标识第二终端处于正常状态的信息,如“active”)发送至作为中心设备(Center)的第一终端。

第一终端作为中心设备(Center),通过BLE的规范接收到作为外围设备(Peripheral)发送的活动标识(如“active”),则可以存储该休眠标识(如“sleep”)作为第二终端当前的状态标识。

需要说明的是,活动状态一般是指将终端正常运行的状态,对于不同类型、不同系统的终端,该活动状态具有不同的含义,本发明实施例对此不加以限制。

例如,在Linux系统中,如果系统在休眠(suspend)中被中断或者其他事件唤醒,这个唤醒的顺序是和休眠的循序一般是相反的,所以系统设备和总线会首先唤醒,使能系统中断,使能休眠时候停止掉的非启动CPU,以及调用suspend_ops的finish()函数,而且在suspend_devices_and_enter()函数中也会继续唤醒每个终端,使能虚拟终端,最后调用suspend_ops的end()函数。

在返回到enter_state()函数中的,当suspend_devices_and_enter()函数返回以后,外设已经唤醒了,但是进程和任务都还是冻结状态,这里会调用suspend_finish()来解冻这些进程和任务,而且发出Notify来表示系统已经从suspend状态退出,唤醒终端,系统继续运行。

步骤205,第一终端作为中心设备,在接收到消息时,检测作为外围设备的第二终端的状态标识。

步骤206,第一终端在检测到所述状态标识为休眠标识时,识别所述消息的类型。

步骤207,第一终端根据所述类型对应的同步频率、将所述消息通过低功耗蓝牙协议发送至第二终端。

步骤208,第一终端在所述状态标识为活动标识时,将所述消息通过低功耗蓝牙协议发送至第二终端。

如果第一终端查询到第二终端的状态标识为活动标识,表示第二终端处于活动状态,正常运行,则第一终端可以作为中心设备(Center),通过BLE的相关规范,直接将该消息发送至作为外围设备(Peripheral)的第二终端。

参照图3,示出了本发明的另一种基于低功耗蓝牙协议的通信方法实施例的步骤流程图,具体可以包括如下步骤:

步骤301,第二终端作为外围设备,在生成消息时,检测作为中心设备的第一终端的状态标识。

在本发明实施例中,第一终端(如手机、平板电脑等)与第二终端(如手环、手表等)可以通过BLE连接。

在BLE中,第一终端为中心设备(Center),第二终端为外围设备(Peripheral)。

在第二终端中配置有传感器,如温度传感器、GPS(Global Positioning System,全球定位系统)模块、加速度传感器等,用户在携带第二终端进行运动的过程中,通常会产生传感器数据,这些传感器数据一般需要上报至第一终端进行后续的处理,如测量步数、测量跑步距离、测量消耗的卡路里、统计睡觉时间等等。

若第二终端在生成新的消息,则可以检测第一终端的状态标识,即标识第一终端所处状态的信息,获知第一终端当前所处的状态。

步骤302,第二终端在检测到所述状态标识为休眠标识时,将所述消息缓存一段时间。

休眠标识,指标识第一终端处于休眠状态的信息,如“sleep”。

如果第二终端查询到第一终端的状态标识为休眠标识,表示第一终端处于休眠状态,由于第二终端生成的消息实时性要求一般较低,为避免频繁地唤醒第一终端,则可以间隔一段时间上报一次第一终端。

需要说明的是,该一段时间为从第一条消息开始缓存到同步之间的时间,对这段时间内接收到的消息进行缓存,再将全部的消息一次性进行同步,并非每条消息都需要缓存这段时间。

例如,第二终端间隔10分钟上报一次生成的消息,假设在12:00生成第一条传感器的数据,则开始计时,在12:00-12:10这段时间共生成到20条传感器的数据并进行了缓存,则在12:10将这20条传感器的数据上报至第一终端。

在具体实现中,第二终端在检测到状态标识为休眠标识时,将消息存储至缓存队列中。

此外,第二终端启动定时器,以计时一段时间。

即第二终端在状态标识为休眠标识后,除了将生成的消息存储至缓存队列之外,还可以检测是否启动定时器,如果没有启动,则启动定时器。

步骤303,第二终端在超过所述时间时,将所述消息通过低功耗蓝牙协议发送至第一终端。

如果超过缓存的时间,第二终端可以作为外围设备(Peripheral)通过BLE的相关规范,将该消息发送至作为中心设备(Center)的第一终端。

在具体实现中,第二终端在定时器计时结束时,作为外围设备(Peripheral),将缓存队列中的消息发送通过低功耗蓝牙协议至作为中心设备(Center)的第一终端。

此外,第二终端取消定时器,以便于下一次进行计时。

本发明实施例应用低功耗蓝牙协议的通信,第一终端为中心设备、第二终端为外围设备,第二终端在生成消息时,检测第一终端的状态标识,如果第一终端的状态标识为休眠标识,则第二终端将消息缓存一段时间,在超过该时间时,将该消息通过低功耗蓝牙协议发送至第一终端,通过缓存消息,避免了每次生成消息就立即上报至处于休眠状态的第一终端,减少了同步的频次,从而减少了唤醒第一终端的频次,降低了第一终端的资源消耗。

参照图4,示出了本发明的另一种基于低功耗蓝牙协议的通信方法实施例的步骤流程图,具体可以包括如下步骤:

步骤401,第二终端通过低功耗蓝牙协议接收第一终端在进入休眠状态时发送的休眠标识。

步骤402,第二终端将所述休眠标识记录为第一终端的状态标识。

在本发明实施例中,如果第一终端即将进入休眠状态,则可以作为中心设备(Center),通过BLE的规范将休眠标识(如“sleep”)发送至作为外围设备(Peripheral)的第二终端。

第二终端作为外围设备(Peripheral),通过BLE的规范接收到作为中心设备(Center)的第一终端发送的休眠标识(如“sleep”),则可以存储该休眠标识(如“sleep”)作为第一终端当前的状态标识。

需要说明的是,休眠状态一般是指将运行的实时数据存储到内存(媒介)上,并且尽可能关闭不必要的硬件以求省电,对于不同类型、不同系统的终端,该休眠状态具有不同的含义,本发明实施例对此不加以限制。

例如,在Linux系统中,休眠(suspend)主要分三个主要的步骤:

1、冻结用户态进程和内核态任务

2、调用注册的设备的suspend的回调函数,顺序是按照注册顺序

3、休眠核心设备和使CPU(Central Processing Unit,中央处理器)进入休眠态,冻结进程,即内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程的上下文。

步骤403,第二终端通过低功耗蓝牙协议接收第一终端在进入活动状态时发送的活动标识。

步骤404,第二终端将所述活动标识记录为第一终端的状态标识。

在本发明实施例中,如果第一终端在休眠状态中被中断或唤醒,则进入活动状态。

此时,第一终端可以作为中心设备(Center),通过BLE的规范将活动标识(指标识第一终端处于正常状态的信息,如“active”)发送至作为外围设备(Peripheral)的第二终端。

第二终端作为外围设备(Peripheral),通过BLE的规范接收到作为中心设备(Center)发送的活动标识(如“active”),则可以存储该休眠标识(如“sleep”)作为第一终端当前的状态标识。

需要说明的是,活动状态一般是指将终端正常运行的状态,对于不同类型、不同系统的终端,该活动状态具有不同的含义,本发明实施例对此不加以限制。

例如,在Linux系统中,如果系统在休眠(suspend)中被中断或者其他事件唤醒,这个唤醒的顺序是和休眠的循序一般是相反的,所以系统设备和总线会首先唤醒,使能系统中断,使能休眠时候停止掉的非启动CPU,以及调用suspend_ops的finish()函数,而且在suspend_devices_and_enter()函数中也会继续唤醒每个终端,使能虚拟终端,最后调用suspend_ops的end()函数。

在返回到enter_state()函数中的,当suspend_devices_and_enter()函数返回以后,外设已经唤醒了,但是进程和任务都还是冻结状态,这里会调用suspend_finish()来解冻这些进程和任务,而且发出Notify来表示系统已经从suspend状态退出,唤醒终端,系统继续运行。

步骤405,第二终端作为外围设备,在生成消息时,检测作为中心设备的第一终端的状态标识。

步骤406,第二终端在检测到所述状态标识为休眠标识时,将所述消息缓存一段时间。

步骤407,第二终端在超过所述时间时,将所述消息通过低功耗蓝牙协议发送至第一终端。

步骤408,第二终端在所述状态标识为活动标识时,将所述消息通过低功耗蓝牙协议发送至第一终端。

如果第二终端查询到第一终端的状态标识为活动标识,表示第一终端处于活动状态,正常运行,则第二终端可以作为外围设备(Peripheral),通过BLE的相关规范,直接将该消息发送至作为中心设备(Center)的第一终端。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图5,示出了本发明的一种基于低功耗蓝牙协议的通信装置实施例的结构框图,应用在第一终端500中,该装置具体可以包括如下模块:

外围状态检测模块501,用于作为中心设备,在接收到消息时,检测作为外围设备的第二终端的状态标识;

消息类型识别模块502,用于在检测到所述状态标识为休眠标识时,识别所述消息的类型;

外围消息休眠同步模块503,用于根据所述类型对应的同步频率、将所述消息通过低功耗蓝牙协议发送至第二终端。

在本发明的一个实施例中,所述消息类型识别模块502可以包括如下子模块:

应用确定子模块,用于确定接收到所述消息的应用;

分类标签查询子模块,用于查询所述应用对应的分类标签;

消息类型确定子模块,用于按照所述分类标签确定所述消息的类型。

在本发明的一个实施例中,所述类型包括第一类型和第二类型;

所述外围消息休眠同步模块503可以包括如下子模块:

中心缓存子模块,用于在确定所述消息属于第一类型时,将所述消息缓存一段时间;

中心间隔发送子模块,用于在超过所述时间时,将所述时间段内属于所述第一类型的消息通过低功耗蓝牙协议向发送至第二终端;

中心实时发送子模块,用于在确定所述消息属于第二类型时,将属于所述第二类型的消息通过低功耗蓝牙协议发送至第二终端。

在本发明的一个实施例中,所述中心缓存子模块可以包括如下单元:

中心缓存队列存储单元,用于第一终端在确定所述消息属于第一类型时,将属于所述第一类型的消息存储至缓存队列中;

中心定时器启动单元,用于启动定时器,以计时一段时间;

所述中心间隔发送子模块可以包括如下模块:

中心计时发送单元,用于在所述定时器计时结束时,将所述缓存队列中属于所述第一类型的消息通过低功耗蓝牙协议发送至第二终端;

第一中心定时器取消单元,用于取消所述定时器。

在本发明的一个实施例中,所述中心实时发送子模块可以包括如下单元:

缓存消息判断单元,用于在确定所述消息属于第二类型时,判断是否缓存有属于所述第一类型的消息;若是,则调用中心协同发送单元;

中心协同发送单元,用于将属于所述第一类型的消息、属于所述第二类型的消息通过低功耗蓝牙协议一同发送至第二终端。

在本发明的一个实施例中,所述缓存消息判断单元可以包括如下子单元:

启动器启动判断子单元,用于第一终端在确定所述消息属于第二类型时,判断是否启动定时器;若是,则调用消息缓存确定子单元;

消息缓存确定子单元,用于确定缓存有属于所述第一类型的消息;

所述中心协同发送单元可以包括如下子单元:

中心双类型发送子单元,用于将缓存队列中属于所述第一类型的消息、属于所述第二类型的消息通过低功耗蓝牙协议一同发送至第二终端;

第二中心定时器取消子单元,用于取消所述定时器。

在本发明的一个实施例中,该装置还可以包括如下模块:

外围休眠标识接收模块,用于通过低功耗蓝牙协议接收第二终端在进入休眠状态时发送的休眠标识;

外围休眠状态记录模块,用于将所述休眠标识记录为第二终端的状态标识;

和/或,

外围活动标识接收模块,用于通过低功耗蓝牙协议接收第二终端在进入活动状态时发送的活动标识;

外围活动状态记录模块,用于将所述活动标识记录为第二终端的状态标识。

在本发明的一个实施例中,该装置还可以包括如下模块:

外围消息活动同步模块,用于在所述状态标识为活动标识时,将所述消息通过低功耗蓝牙协议发送至第二终端。

参照图6,示出了本发明的另一种基于低功耗蓝牙协议的通信装置实施例的结构框图,应用在第二终端600中,该装置具体可以包括如下模块:

中心状态检测模块601,用于作为外围设备,在生成消息时,检测作为中心设备的第一终端的状态标识;

外围缓存模块602,用于在检测到所述状态标识为休眠标识时,将所述消息缓存一段时间;

中心消息休眠上报模块603,用于在超过所述时间时,作为外围设备、将所述消息通过低功耗蓝牙协议发送至第一终端。

在本发明的一个实施例中,所述外围缓存模块602可以包括如下子模块:

外围缓存队列存储子模块,用于在所述状态标识为休眠标识时,将所述消息存储至缓存队列中;

外围定时器启动子模块,用于启动定时器,以计时一段时间。

在本发明的一个实施例中,所述中心消息休眠上报模块603可以包括如下子模块:

外围计时发送子模块,用于在所述定时器计时结束时,将所述缓存队列中的消息通过低功耗蓝牙协议发送至第一终端;

外围定时器取消子模块,用于取消所述定时器。

在本发明的一个实施例中,该装置还可以包括如下模块:

中心休眠标识接收模块,用于通过低功耗蓝牙协议接收第一终端在进入休眠状态时发送的休眠标识;

中心休眠状态记录模块,用于将所述休眠标识记录为第一终端的状态标识;

和/或,

中心活动标识接收模块,用于通过低功耗蓝牙协议接收第一终端在进入活动状态时发送的活动标识;

中心活动状态记录模块,用于将所述活动标识记录为第一终端的状态标识。

在本发明的一个实施例中,该装置还可以包括如下模块:

中心消息活动上报模块,用于在所述状态标识为活动标识时,将所述消息通过低功耗蓝牙协议发送至第一终端。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种基于低功耗蓝牙协议的通信方法和一种基于低功耗蓝牙协议的通信装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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