一种蓝牙设备及蓝牙连接方法与流程

文档序号:16099403发布日期:2018-11-27 23:56阅读:426来源:国知局

本发明涉及蓝牙通信技术领域,尤其涉及一种蓝牙设备及蓝牙连接方法。



背景技术:

在现有技术中,用户一般习惯性的在移动终端的系统设置中扫描连接蓝牙设备,但移动终端的系统设置中的蓝牙连接针对的是蓝牙3.0协议,并不适用于低功耗蓝牙(BLE),如果在移动终端的系统设置中扫描链接低功耗蓝牙设备,将会导致低功耗蓝牙设备无法正常工作,从而影响用户正常使用,降低用户体验。



技术实现要素:

本发明的目的是为了解决现有技术中存在的问题,提供了一种蓝牙设备及蓝牙连接方法。

本发明提供了一种蓝牙连接方法,包括:

步骤S0、蓝牙设备判断是否收到移动终端的连接请求,是则执行步骤S1,否则继续执行步骤S0;

步骤S1、蓝牙设备与移动终端建立蓝牙连接,根据移动终端的指令完成配对过程;

步骤S2、蓝牙设备判断是否在第三预设时间内接收到应用有效数据,是则与移动终端进行正常通信;否则解除配对,断开蓝牙连接,返回步骤S0。

本发明还提供了一种蓝牙设备,包括:

接收模块,用于接收移动终端的连接请求;还用于第一判断模块没有收到移动终端的连接请求时,继续接收移动终端的连接请求;还用于接收应用有效数据;还用于断开蓝牙连接后,继续接收移动终端的连接请求;

第一判断模块,用于判断接收模块是否收到移动终端的连接请求;

连接配对模块,用于当第一判断模块判断接收模块收到移动终端的连接请求时,与移动终端建立蓝牙连接,根据移动终端的指令完成配对过程;

第二判断模块,用于判断接收模块是否在第三预设时间内接收到应用有效数据;

通信模块,用于当第二判断模块判断在第三预设时间内接收到应用有效数据时,与移动终端进行正常通信;

解除配对模块,用于当第二判断模块判断在第三预设时间内没有接收到应用有效数据时,解除配对;

断开连接模块,用于解除配对模块解除配对后,断开蓝牙连接。

本发明取得的有益效果是:采用本发明的技术方案,蓝牙设备增加了在预设时间内检测应用有效数据操作,即使用户通过移动终端的系统设置中扫描连接低功耗蓝牙设备,低功耗蓝牙设备也可正常使用。

附图说明

为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一中提供的一种蓝牙连接方法的流程图;

图2为本发明实施例二中提供的一种蓝牙连接方法的流程图;

图3为本发明实施例三中提供的一种蓝牙连接方法的流程图;

图4为本发明实施例四中提供的一种蓝牙设备的方框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本实施例提供了一种蓝牙连接方法,如图1所示,包括:

步骤S0、蓝牙设备判断是否收到移动终端的连接请求,是则执行步骤S1,否则继续执行步骤S0;

步骤S1、蓝牙设备与移动终端建立蓝牙连接,根据移动终端的指令完成配对过程;

步骤S2、蓝牙设备判断是否在第三预设时间内接收到应用有效数据,是则与移动终端进行正常通信;否则解除配对,断开蓝牙连接,返回步骤S0。

可选地,步骤S2中解除配对具体为:删除蓝牙设备配对过程中生成的身份识别码及对应的绑定信息。

可选地,步骤S2中,删除蓝牙设备配对过程中生成的身份识别码及对应的绑定信息,具体为:删除蓝牙设备配对过程中生成的身份识别码及对应的移动终端设备标识符和长密钥。

可选地,移动终端设备标识符具体为:移动终端物理地址或者身份解析密钥。

可选地,蓝牙设备与移动终端建立蓝牙连接后,还包括:获取移动终端物理地址并判断移动终端物理地址的类型,如果移动终端物理地址是静态的,则将移动终端物理地址保存为移动终端设备识别符;如果移动终端物理地址是动态的,则将移动终端传来的身份解析密钥保存为移动终端设备识别符。

可选地,根据移动终端的指令完成配对过程,具体包括:

步骤5-1、蓝牙设备接收移动终端的指令并判断接收到的移动终端发来的指令类型,如为配对请求则执行步骤5-2,如为加密请求则执行步骤5-5;

步骤5-2、蓝牙设备与移动终端协商出短密钥并保存;

步骤5-3、蓝牙设备生成身份识别码和长密钥,并将获取到的移动终端设备识别符、生成的长密钥和生成的身份识别码对应保存;

步骤5-4、蓝牙设备使用短密钥完成加密过程;

步骤5-5、蓝牙设备从加密请求中获取身份识别码并根据获取到的身份识别码判断是否存在与身份识别码对应的移动终端设备识别符和长密钥是否存在,是则执行步骤5-4;否则向移动终端发送申请加密请求,等待接收移动终端下发请求,返回步骤5-1。

可选地,步骤5-4具体包括:

蓝牙设备使用短密钥对移动终端传来的身份解析密钥及蓝牙设备物理地址进行加密,并将加密结果发送给移动终端。

可选地,步骤5-3,具体为:蓝牙设备生成身份识别码和长密钥,并将获取到的移动终端设备识别符、长密钥和身份识别码对应保存至绑定列表;

步骤5-5具体为:蓝牙设备从加密请求中获取身份识别码并根据获取到的身份识别码在绑定列表中检索对应的移动终端设备识别符和长密钥是否存在,是则执行步骤5-4;否则向移动终端发送申请加密请求,等待接收移动终端下发请求,返回步骤5-1。

可选地,步骤S2中蓝牙设备与移动终端建立蓝牙连接之后还包括:蓝牙设备判断是否在第一预设时间内接收到移动终端下发的符合预设条件的请求,是则根据移动终端的指令完成配对过程,否则断开蓝牙连接,返回步骤S0。

可选地,符合预设条件的请求,具体为:符合预置的蓝牙通信协议版本的请求。

可选地,配对过程中还包括:蓝牙设备接收移动终端下发的第一确认值,并与自身算出的第二确认值进行比较,如果一致,则继续执行配对过程;如果不一致,则解除配对,断开蓝牙连接。

可选地,蓝牙设备自身算出第二确认值,具体为:蓝牙设备根据获取到的移动终端物理地址和自身产生的验证口令计算出第二确认值。

可选地,蓝牙设备接收移动终端下发的第一确认值之前还包括:蓝牙设备判断是否在第二预设时间内接收到第一确认值,是则与自身算出的第二确认值进行比较;否则解除配对,断开蓝牙连接。

可选地,步骤S2之前还包括:蓝牙设备启动检测定时器;

步骤S2具体为:蓝牙设备判断是否在第三预设时间内收到应用有效数据,是则关闭检测定时器,与移动终端进行正常通信;否则关闭检测定时器,解除配对,断开蓝牙连接,返回步骤S0。

可选地,应用有效数据,具体为:具有预置特征的数据。

实施例二

本实施例提供的一种蓝牙连接方法,如图2所示,包括:

步骤101、蓝牙设备进行初始化并开启蓝牙广播;

步骤102、蓝牙设备判断是否收到移动终端的连接请求,是则与移动终端建立蓝牙连接,执行步骤103;否则继续执行步骤102;

需要说明的是,蓝牙设备接收到移动终端的连接请求即完成了蓝牙设备与移动终端的物理层连接;蓝牙设备与移动终端建立蓝牙连接即完成了蓝牙设备协议层与移动终端协议层建立蓝牙连接;

步骤103、蓝牙设备接收移动终端下发的请求,并判断接收到的请求类型,如为配对请求则执行步骤104,如为加密请求则执行步骤108;

可选地,在步骤103之前还包括:步骤B、蓝牙设备判断在预设时间内是否接收到移动终端下发的符合预设条件的请求,是则执行步骤103,否则断开蓝牙连接,返回执行步骤102;

在本实施例中,符合预设条件的请求,具体为符合预置的蓝牙通信协议版本的请求;例如,符合预置的蓝牙通信协议版本为蓝牙4.0蓝牙通信协议;

步骤104、蓝牙设备接收移动终端下发的第一确认值,并与自身算出的第二确认值进行比较,如果一致,则执行步骤105;如果不一致,则向移动终端发送配对失败,断开蓝牙连接;

在本实施例中,步骤104具体包括:蓝牙设备判断是否在预设时间内接收到第一确认值,否则解除配对,断开蓝牙连接;是则与自身算出的第二确认值进行比较,如果一致,则执行步骤105;如果不一致,则向移动终端发送配对失败,断开蓝牙连接。

具体地,步骤104之前,蓝牙设备会产生验证口令,上传至移动终端,移动终端根据自身MAC地址和口令产生第一确认值并发送至蓝牙设备;

相应的,步骤104具体为:蓝牙设备接收移动终端下发的第一确认值,根据获取到的移动终端MAC地址和自身产生的验证口令计算出第二确认值,如果第一确认值和第二确认值相同则执行步骤105;否则向移动终端发送配对失败,断开蓝牙连接;

可选地,步骤104之前还包括:蓝牙设备向移动终端发送配对响应;

具体地,配对响应中包含配对结束时会向移动终端发送的参数类型;

步骤105、蓝牙设备与移动终端协商出短密钥并保存;

优选地,在本实施例中,步骤105具体包括:

步骤105-1、蓝牙设备向移动终端返回配对响应;

步骤105-2、移动终端向蓝牙设备发送第一随机数;

步骤105-3、蓝牙设备接收第一随机数并保存,生成第二随机数并将其发送给移动终端;

步骤105-4、蓝牙设备和移动终端分别根据预设认证码、第一随机数、第二随机数计算得到短密钥(STK);

步骤106、蓝牙设备生成身份识别码和长密钥,并将获取到的移动终端设备识别符、生成的长密钥和身份识别码对应保存;

优选地,移动终端设备识别符具体为:移动终端MAC地址或身份解析密钥;

优选地,蓝牙设备与移动终端建立蓝牙连接时,获取移动终端MAC地址,判断移动终端MAC地址的类型,如果是静态MAC地址,则将移动终端MAC地址作为移动终端设备识别符;如果是动态MAC地址,蓝牙设备与移动终端协商出端密钥时,还从移动终端获取身份解析密钥,并将身份解析密钥作为移动终端设备识别符。

优选地,在本实施例中,步骤106具体包括:

步骤106-1、蓝牙设备生成LTK(长密钥),使用短密钥对长密钥进行加密并将加密结果发送给移动终端;

步骤106-2、蓝牙设备生成第三随机数,并根据第三随机数生成身份识别码,使用短密钥对第三随机数和身份识别码进行加密并将加密结果发送给移动终端,并对应保存来自移动终端设备识别符、生成的长密钥和身份识别码至绑定列表;

具体地,将移动终端MAC地址、生成的长密钥和身份识别码保存;或者,将身份解析密钥、生成的长密钥和身份识别码保存;

步骤107、蓝牙设备使用短密钥完成加密过程,执行步骤109;

优选地,步骤107包括:

步骤107-1、蓝牙设备使用短密钥对移动终端传来的身份解析密钥进行加密,并将加密结果上行发送给移动终端;

步骤107-2、蓝牙设备使用短密钥对蓝牙设备MAC地址进行加密,并将加密结果发送给移动终端;

步骤108、蓝牙设备从加密请求中获取身份识别码并根据身份识别码判断检索对应的移动终端设备识别符和长密钥是否存在,是则执行步骤107;否则向移动终端发送申请加密请求,等待接收移动终端下发请求,返回步骤103;

步骤109、蓝牙设备启动检测定时器,判断是否在规定时间内收到应用有效数据,是则关闭检测定时器,与移动终端进行正常通信;否则关闭检测定时器,删除身份识别码及其对应的信息,断开蓝牙连接,返回步骤102;

需要说明的是,蓝牙设备与移动终端完成配对过程后,启动定时器,接收应用有效数据时,已完成蓝牙设备与移动终端的应用层连接;

实施例三

本实施例提供了一种蓝牙连接方法,如图3所示,包括:

步骤200、蓝牙设备进行初始化;

步骤201、蓝牙设备开启蓝牙广播;

步骤202、蓝牙设备判断是否收到移动终端的连接请求,是则与移动终端建立蓝牙连接,从连接请求中获取移动终端的MAC地址(物理地址)并保存,执行步骤203;否则继续执行步骤202;

具体的,在本实施例中,蓝牙设备接收到移动终端下发的连接请求后会产生一个蓝牙连接事件实现与移动终端建立蓝牙连接;

例如,在本实施例中,移动终端下发的连接请求为:0x1b 0x06 0x35 0x01 0x34 0x11 0x06 0x0a 0x01 0x26 0x2f 0x00 0x00 0x97 0x00 0x00 0x00 0xd6 0xbe 0x89 0x8e 0x85 0x22 0xa1 0x06 0x15 0xd0 0x9e 0x78 0xad 0x99 0xa4 0xbc 0x55 0xc0 0xe0 0x5c 0x65 0x50 0x28 0xb0 0xf0 0x03 0x19 0x00 0x27 0x00 0x00 0x00 0xbc 0x02 0xff 0xff 0xff 0xff 0x1f 0xa8 0xf2 0x61 0xda;根据连接请求的第24字节到第29字节获取到移动终端MAC地址为:0xa1 0x06 0x15 0xd0 0x9e 0x78;

需要说明的是,蓝牙设备获取移动终端的MAC地址后,根据移动终端MAC地址的前两个字节判断MAC地址的类型。

具体地,MAC地址的类型包括:动态MAC地址和静态MAC地址。

还需要说明的是,蓝牙设备接收到移动终端的连接请求即完成了蓝牙设备与移动终端的物理层连接;蓝牙设备与移动终端建立蓝牙连接即完成了蓝牙设备协议层与移动终端协议层建立蓝牙连接;

步骤203、蓝牙设备判断在预设时间内是否接收到移动终端下发的符合预设条件的请求,是则执行步骤205,否则断开蓝牙连接返回步骤201;

在本实施例中,符合预设条件的请求具体为:符合预置的蓝牙通信协议版本的请求;例如,符合预置的蓝牙通信协议版本为蓝牙4.0蓝牙通信协议;

例如,预设时间为3秒;

步骤204、蓝牙设备向移动终端发送申请加密请求,等待接收移动终端下发请求,返回执行步骤203;

具体的,在本实施例中,蓝牙设备根据访问地址、数据包头、L2CAP层数据长度、加密层协议CID、加密请求操作码、默认配对方式和包CRC校验码生成申请加密请求,并将其发送给移动终端;

例如,本实施例中的访问地址为0xe4 0x62 0x65 0x50,数据包头为0x0a 0x06,L2CAP层数据长度为0x02 0x00,加密层协议CID为0x06 0x00,加密请求操作码为0x0b,默认配对方式为0x01,包CRC校验为0x95 0x0a 0xf9;生成的申请加密请求为0x13 0x06 0x19 0x01 0xca 0x02 0x06 0x0a 0x03 0x09 0x2c 0x17 0x00 0xe0 0x74 0x00 0x00 0xe4 0x62 0x65 0x50 0x0a 0x06 0x02 0x00 0x06 0x00 0x0b 0x01 0x95 0x0a 0xf9;

步骤205、蓝牙设备判断接收到的请求的类型,如为配对请求则执行步骤206,如为加密请求则执行步骤213;

具体的,在本实施例中,蓝牙设备判断接收到的请求中第二十八个字节数据(OPCPDE),如为第一数据则为配对请求,如为第二数据则为加密请求;例如,第一数据为0x03,第二数据为0x00;

在本实施例中,如蓝牙设备接收到的请求为0x1b 0x06 0x28 0x01 0x70 0x11 0x06 0x0a 0x03 0x12 0x2f 0x1d 0x00 0xe0 0xbc 0x00 0x00 0xe0 0x5c 0x65 0x50 0x0e 0x15 0x11 0x00 0x06 0x00 0x03 0x38 0x82 0xd7 0xf6 0x90 0x56 0xfa 0x2f 0x89 0xf5 0x39 0x30 0x89 0x16 0x5f 0xe0 0xa1 0xc9 0x95则为配对请求;如蓝牙设备接收到的请求为0x1b 0x06 0x2a 0x01 0x78 0x11 0x06 0x0a 0x03 0x0d 0x2f 0x21 0x00 0x8f 0xbc 0x00 0x00 0xe0 0x5c 0x65 0x50 0x0f 0x17 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xdf 0xde 0xd8 0x67 0x5f 0x08 0xdc 0xe2 0xda 0x2d 0xe1 0xdb 0x94 0xad 0x0f则为加密请求;

需要说明的是,在步骤203之前需要启动检测定时器,相应地,执行步骤205之前还包括关闭检测定时器;

在本实施例中,检测定时器可以为一个,也可为多个。

步骤206、蓝牙设备向移动终端发送配对响应;

步骤207、蓝牙设备接收移动终端下发的第一确认值,并与自身算出的第二确认值进行比较,如果一致,则执行步骤208;如果不一致,则向移动终端发送配对失败响应,断开蓝牙连接;

在本实施例中,步骤207之前还包括:蓝牙设备判断是否在预设时间内接收到第一确认值,是则与自身算出的第二确认值进行比较;否则解除配对,断开蓝牙连接。

需要说明的是,在步骤207之前需要启动检测定时器,相应地,执行步骤208之前还包括关闭检测定时器;

步骤208、蓝牙设备与移动终端协商出短密钥并保存;

具体的,在本实施例中,步骤208中的蓝牙设备与移动终端协商出短密钥包括:

步骤208-1、蓝牙设备向移动终端返回配对响应;

步骤208-2、移动终端向蓝牙设备发送第一随机数;

例如,本实施例中,第一随机数为:0x4b 0xac 0xe7 0x3b 0xcb 0xd2 0x8b 0x5c 0x96 0x86 0x2d 0x5c 0x76 0xea 0x87 0x75;移动终端给蓝牙设备发送数据为:0x1b 0x06 0x28 0x01 0x74 0x11 0x06 0x0a 0x03 0x22 0x2f 0x1f 0x00 0x8f 0xbc 0x00 0x00 0xe0 0x5c 0x65 0x50 0x0e 0x15 0x11 0x00 0x06 0x00 0x04 0x4b 0xac 0xe7 0x3b 0xcb 0xd2 0x8b 0x5c 0x96 0x86 0x2d 0x5c 0x76 0xea 0x87 0x75 0x2d 0xb7 0x14;

步骤208-3、蓝牙设备接收第一随机数并保存,生成第二随机数并将其发送给移动终端;

例如,本实施例中,生成的第二随机数为:0x34 0xbb 0x92 0x07 0x99 0x42 0x26 0xcf 0xcf 0xa6 0x7e 0x20 0x95 0x5d 0xec 0x87,蓝牙设备给移动终端发送的数据为:0x1b 0x06 0x28 0x01 0x74 0x11 0x06 0x0a 0x03 0x22 0x2f 0x1f 0x00 0x8f 0xbc 0x00 0x00 0xe0 0x5c 0x65 0x50 0x0e 0x15 0x11 0x00 0x06 0x00 0x04 0x4b 0xac 0xe7 0x3b 0xcb 0xd2 0x8b 0x5c 0x96 0x86 0x2d 0x5c 0x76 0xea 0x87 0x75 0x2d 0xb7 0x14;

在步骤208-3中,蓝牙设备接收到第一随机数并保存后,向移动终端发送保存响应,移动终端根据保存响应确认蓝牙设备接收并保存的第一随机数是否正确,是则执行步骤208-4,否则报错;

步骤208-4、蓝牙设备和移动终端分别根据预设认证码、第一随机数、第二随机数计算得到短密钥(STK);

在本实施例中,第一随机数和第二随机数均为128bit的数据,蓝牙设备将第一随机数和第二随机数中的低64bit数据进行首尾拼接,然后根据预设认证码和拼接结果进行计算得到短密钥,其中根据预设认证码和拼接结果进行计算得到短密钥所使用的公式为s1(k,r1,r2)=e(k,r’),e()为aes128算法,r1为第一随机数,r2为第二随机数,k为预设认证码,r’为拼接结果;例如,预设认证码为0x00000000000000000000000000000000,第一随机数为0x000F0E0D0C0B0A091122334455667788,第二随机数为0x020203040506070899AABBCCDDEEFF00,拼接结果为0x112233445566778899AABBCCDDEEFF00,计算得到的短密钥为:0x9a1fe1f0e8b0f49b5b4216ae796da062;蓝牙设备与移动终端在后续的数据通讯中,使用短密钥对传输的数据进行加密;

步骤209、蓝牙设备生成LTK(长密钥),使用短密钥对长密钥进行加密并将加密结果发送给移动终端;

在本实施例中,蓝牙设备生成LTK是根据密钥传输协议生成的,具体为:LTK=d1(ER,DIV,0),函数d1为多元函数,该函数基于AES-128加密,DIV(Diversifying)为分散器,将一些数据分散然后通过计算将数据还原,是16位的变化符,ER是本实施例中的第二随机数,优选的为128位的伪随机数;

步骤210、蓝牙设备生成第三随机数,并根据第三随机数生成身份识别码,使用短密钥对第三随机数和身份识别码进行加密并将加密结果发送给移动终端,并对应保存移动终端MAC地址、生成的长密钥和身份识别码至绑定列表;

需要说明的是,如果移动终端MAC地址是动态的,对应保存移动终端传来的身份解析密钥、生成的长密钥和身份识别码;

具体的,根据第三随机数生成身份识别码包括:蓝牙设备根据自身的DIV(识别码,例如可以为蓝牙设备生产期间生成的私钥)和第三随机数据计算得到mask(具体为蓝牙设备用私钥和第三随机数据做AES128算法取2的16次方的余数得到mask(加密识别码)),然后根据mask和自身的DIV进行异或计算得到EDIV(身份识别码);

具体的,将身份识别码和长密钥、移动终端MAC(或者身份解析密钥)对应保存包括但不限于如下实现方式:

(1)蓝牙设备更新绑定计数值,根据绑定计数值计算存储位置地址,并将长密钥、身份识别码和移动终端MAC保存在绑定列表中与存储位置地址对应的位置;

具体的,绑定计数值的初始值为0,更新绑定计数值具体为:绑定计数值自加1;根据绑定计数值计算存储位置地址具体为:将绑定计数值除以4取余的结果作为存储位置地址;

(2)蓝牙设备判断绑定列表中是否有空闲的存储位置,是则将长密钥、身份识别码、移动终端MAC和当前的存储时刻顺序存储到绑定列表中空闲的存储位置,否则将长密钥、身份识别码、移动终端MAC和当前的存储时刻存储到绑定列表中与最早的存储时间相对应的存储位置;

(3)蓝牙设备显示与其连接的移动终端信息,提示用户进行选择替换的移动终端;当蓝牙设备接收到用户选择的替换移动终端信息时,将长密钥、身份识别码和移动终端MAC保存到绑定列表中与替换移动终端信息相对应的存储位置;

例如,本实施例中,移动终端的信息包括移动终端型号、名称、MAC值等等;

在本实施例中,将身份识别码和长密钥、移动终端MAC对应保存的上述实现方式中的移动终端MAC可以替换为身份解析密钥。

步骤211、蓝牙设备获取移动终端传来的IRK(英文全称:Identity Resolving Key,中文全称:身份解析密钥),并使用短密钥对IRK进行加密,并将加密结果上行发送给移动终端;

在本实施例中,步骤209之前还包括:移动终端下发IRK;移动终端向蓝牙设备发送一个身份认证地址信息;移动终端下发一个签名值;

步骤212、蓝牙设备使用短密钥对蓝牙设备MAC地址进行加密,并将加密结果发送给移动终端,执行步骤214;

步骤212之后的正常通信过程中使用短密钥对传输的数据进行加密;

可选地,蓝牙设备使用短密钥对移动终端传来的IRK和蓝牙设备自身的蓝牙设备MAC地址进行加密后,将两次加密结果统一发送给移动终端。

步骤213、蓝牙设备获取绑定列表,从加密请求中获取身份识别码并判断根据身份识别码能否在绑定列表中找到对应的移动终端MAC地址和长密钥,是则执行步骤211;否则执行步骤204;

在本实施例中,需要说明的是,如果移动终端MAC地址为动态的,则根据身份识别码判断对应的身份解析密钥和长密钥是否在绑定列表中;如果移动终端MAC地址为静态的,则根据身份识别码判断对应的移动终端MAC地址和长密钥是否在绑定列表中。

步骤214、蓝牙设备启动检测定时器;

需要说明的是,本实施例中,不仅限于启动定时检测器的方式规定时间,还可以是在固定的某一时间或某一时间段判断是否收到应用有效数据;

步骤215、蓝牙设备判断是否在规定时间内收到应用有效数据,是则关闭检测定时器,与移动终端进行正常通信;否则执行步骤216;

在本实施例中,应用有效数据是指移动终端向蓝牙设备发送的具有预置特征的数据;

可选地,蓝牙设备可在步骤214之前的任意时刻启动检测定时器,相应地,在步骤216之前需将检测定时器清零。

需要说明的是,蓝牙设备与移动终端完成配对过程后,启动定时器,接收应用有效数据时,已完成蓝牙设备与移动终端的应用层连接;

步骤216、蓝牙设备关闭检测定时器,删除自身保存的身份识别码及对应的移动终端MAC地址和生成的长密钥,断开蓝牙连接,返回步骤201。

在本实施例中,如果移动终端MAC地址为动态的,则步骤216为:蓝牙设备关闭检测定时器,删除自身保存的身份识别码对应的身份解析密钥和长密钥,断开蓝牙连接,返回步骤201。

实施例四

本实施例提供了一种蓝牙设备,如图4所示,包括:

接收模块401,用于接收移动终端的连接请求;还用于第一判断模块402没有收到移动终端的连接请求时,继续接收移动终端的连接请求;还用于接收应用有效数据;还用于断开连接模块407断开蓝牙连接后,继续接收移动终端的连接请求;

第一判断模块402,用于判断接收模块401是否收到移动终端的连接请求;

连接配对模块403,用于当第一判断模块402判断接收模块401收到移动终端的连接请求时,与移动终端建立蓝牙连接,根据移动终端的指令完成配对过程;

第二判断模块404,用于判断接收模块401是否在第三预设时间内接收到应用有效数据;

通信模块405,用于当第二判断模块404判断在第三预设时间内接收到应用有效数据时,与移动终端进行正常通信;

解除配对模块406,用于当第二判断模块404判断在第三预设时间内没有接收到应用有效数据时,解除配对;

断开连接模块407,用于解除配对模块406解除配对后,断开蓝牙连接。

可选地,解除配对模块406,具体包括删除单元;

删除单元,具体用于删除蓝牙设备配对过程中生成的身份识别码及对应的绑定信息。

可选地,删除单元具体用于:删除蓝牙设备配对过程中生成的身份识别码及对应的移动终端设备标识符和长密钥。

可选地,删除单元删除的对应的移动终端设备标识符具体为:移动终端物理地址或者身份解析密钥。

可选地,设备还包括:获取模块、第三判断模块和保存模块;

获取模块,用于获取移动终端物理地址;

第三判断模块,用于判断获取模块获取到的移动终端物理地址的类型;

保存模块,用于当第三判断模块判断移动终端物理地址是静态的,则将移动终端物理地址保存为移动终端设备识别符;用于当第三判断模块判断移动终端物理地址是动态的,则将移动终端传来的身份解析密钥保存为移动终端设备识别符。

可选地,连接配对模块403包括:第一接收单元、第一判断单元、协商单元、保存单元、加密单元、第二判断单元及发送单元;

第一接收单元,用于接收移动终端的指令;还用于当发送单元等待接收移动终端下发请求时,接收移动终端的指令;

第一判断单元,用于判断第一接收单元接收到的移动终端的指令类型;

协商单元,用于当第一判断单元判断接收到的移动终端的指令类型为配对请求时,与移动终端协商出短密钥并保存;

保存单元,用于生成身份识别码和长密钥,并将获取到的移动终端设备识别符、生成的长密钥和生成的身份识别码对应保存;

加密单元,用于使用协商单元协商出来的短密钥完成加密过程;还用于当第二判断单元判断与身份识别码对应的移动终端设备识别符和长密钥存在时,使用协商单元协商出来的短密钥完成加密过程;

第二判断单元,用于当第一判断单元判断接收到的移动终端的指令类型为加密请求时,从加密请求中获取身份识别码并根据获取到的身份识别码判断是否存在与身份识别码对应的移动终端设备识别符和长密钥是否存在;

发送单元,用于当第二判断单元判断与身份识别码对应的移动终端设备识别符和长密钥不存在时,向移动终端发送申请加密请求,等待接收移动终端下发请求。

可选地,加密单元具体包括:加密子单元和发送子单元;

加密子单元,用于使用短密钥对移动终端传来的身份解析密钥及蓝牙设备物理地址进行加密;

发送子单元,用于将加密子单元得到的加密结果发送给移动终端。

可选地,保存单元具体用于:蓝牙设备生成身份识别码和长密钥,并将获取到的移动终端设备识别符、长密钥和身份识别码对应保存至绑定列表;

第二判断单元,具体用于当第一判断单元判断接收到的移动终端的指令类型为加密请求时,从加密请求中获取身份识别码并根据获取到的身份识别码在绑定列表中检索对应的移动终端设备识别符和长密钥是否存在;

发送单元,用于当第二判断单元判断与身份识别码对应的移动终端设备识别符和长密钥不存在时,向移动终端发送申请加密请求,等待接收移动终端下发请求;

加密单元,用于当第二判断单元判断与身份识别码对应的移动终端设备识别符和长密钥存在时,使用协商单元协商出来的短密钥完成加密过程。

可选地,连接配对模块403中还包括:第三判断单元;

第三判断单元,用于当第一判断模块402判断接收模块401收到移动终端的连接请求时,与移动终端建立蓝牙连接后,判断是否在第一预设时间内接收到移动终端下发的符合预设条件的请求,是则根据移动终端的指令完成配对过程;

断开连接模块407,还用于第三判断单元在第一预设时间内没有接收到移动终端下发的符合预设条件的请求时,断开蓝牙连接;

接收模块401,还用于断开连接模块407断开蓝牙连接后,继续接收移动终端的连接请求。

可选地,第三判断单元判断是否在第一预设时间内接收到移动终端下发的符合预设条件的请求中的符合预设条件的请求,具体为:符合预置的蓝牙通信协议版本的请求。

可选地,连接配对模块403还包括:第二接收单元、计算单元和比较单元;

第二接收单元,用于接收移动终端下发的第一确认值;

计算单元,用于计算第二确认值;

比较单元,用于将第二接收单元接收到的移动终端下发的第一确认值与计算单元算出的第二确认值进行比较,如果一致,则继续执行配对过程;

解除配对模块406,用于当比较单元比较第二接收单元接收到的移动终端下发的第一确认值与自身算出的第二确认值不一致时,解除配对;

断开连接模块407,用于解除配对模块406解除配对后,断开蓝牙连接。

可选地,计算单元具体用于:蓝牙设备根据获取到的移动终端物理地址和自身产生的验证口令计算出第二确认值。

可选地,连接配对模块403还包括:第四判断单元;

第四判断单元,用于判断是否在第二预设时间内接收到第一确认值,是则与自身算出的第二确认值进行比较;

解除配对模块406,还用于第四判断单元判断没有在第二预设时间内接收到第一确认值时,解除配对;

断开连接模块407,用于解除配对模块406解除配对后,断开蓝牙连接。

可选地,设备还包括:启动模块和关闭模块;

启动模块,用于启动检测定时器;

第二判断模块404,用于判断接收模块401是否在第三预设时间内接收到应用有效数据;

关闭模块,用于当第二判断模块404判断在第三预设时间内没有接收到应用有效数据时,关闭检测定时器,触发通信模块405;还用于当第二判断模块404判断在第三预设时间内接收到应用有效数据时,关闭检测定时器;

通信模块405,用于关闭模块关闭检测定时器后,与移动终端进行正常通信;

解除配对模块406,用于关闭模块关闭检测定时器后,解除配对;

断开连接模块407,用于解除配对模块406解除配对后,断开蓝牙连接。

可选地,接收模块401接收的应用有效数据,具体为:具有预置特征的数据。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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