CN109379730A - 一种蓝牙数据交互方法及蓝牙设备 - Google Patents

一种蓝牙数据交互方法及蓝牙设备 Download PDF

Info

Publication number
CN109379730A
CN109379730A CN201811184988.6A CN201811184988A CN109379730A CN 109379730 A CN109379730 A CN 109379730A CN 201811184988 A CN201811184988 A CN 201811184988A CN 109379730 A CN109379730 A CN 109379730A
Authority
CN
China
Prior art keywords
equipment
bluetooth
bag data
data
main equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811184988.6A
Other languages
English (en)
Inventor
范松海
龚奕宇
苏少春
刘益岑
刘小江
罗磊
马小敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Electric Power Research Institute of State Grid Sichuan Electric Power Co Ltd
Original Assignee
Electric Power Research Institute of State Grid Sichuan Electric Power Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Electric Power Research Institute of State Grid Sichuan Electric Power Co Ltd filed Critical Electric Power Research Institute of State Grid Sichuan Electric Power Co Ltd
Priority to CN201811184988.6A priority Critical patent/CN109379730A/zh
Publication of CN109379730A publication Critical patent/CN109379730A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/08Testing, supervising or monitoring using real traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/19Connection re-establishment

Abstract

本发明公开了一种蓝牙数据交互方法及蓝牙设备,其中,所述方法包括:实时检测从设备与主设备之间的蓝牙连接是否断开;若检测到从设备与主设备的蓝牙连接断开时,从设备上的蓝牙将所有包数据缓存至缓存区;所述包数据包括:待发送的包数据和未发送完的包数据;通过从设备上的蓝牙天线向断开连接前曾蓝牙连接的主设备广播从设备的识别信息;当所述从设备与所述主设备从新建立连接之后,根据缓存区中缓存的包数据继续与所述主设备进行包数据交互。在本发明实施例中,可以在蓝牙连接断开之后,实现快速重新连接,实现数据包断点续传,提升了蓝牙连接中的数据交互的可靠性。

Description

一种蓝牙数据交互方法及蓝牙设备
技术领域
本发明涉及蓝牙通信技术领域,尤其涉及一种蓝牙数据交互方法及蓝牙设备。
背景技术
低功耗蓝牙(BLE)设备在低数据率/间歇性通信,但要求高数据可靠性的场景。在该场景中,需要同时考虑以下几个限制因素:低功耗,不能明显破坏蓝牙的低功耗特性;间歇性,即蓝牙设备与蓝牙主机之间可能存在不确定的断线或丢失连接的情况;可靠性,即在不确定连接的情况下,需要保证蓝牙设备(BLE Slave)与蓝牙主机(BLE Master)之间的数据交互能在低数据率的情况下持续进行而不丢失。
但是在现有的技术基础上,往往可能因为受制于蓝牙信号传输过程中的穿透性不强等,在设备与设备在进行蓝牙连接数据传输交互过程中,容易出现蓝牙连接掉线,在掉线重新连接之后不能有效的实现数据传输交互的断点续传等。
发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种蓝牙数据交互方法及蓝牙设备,可以在蓝牙连接断开之后,实现快速重新连接,实现数据包断点续传,提升了蓝牙连接中的数据交互的可靠性。
为了解决上述技术问题,本发明实施例提供了一种蓝牙数据交互方法,应用于从设备侧,所述方法包括:
实时检测从设备与主设备之间的蓝牙连接是否断开;
若检测到从设备与主设备的蓝牙连接断开时,从设备上的蓝牙将所有包数据缓存至缓存区;所述包数据包括:待发送的包数据和未发送完的包数据;
通过从设备上的蓝牙天线向断开连接前曾蓝牙连接的主设备广播从设备的识别信息;
当所述从设备与所述主设备从新建立连接之后,根据缓存区中缓存的包数据继续与所述主设备进行包数据交互。
可选的,所述通过从设备上的蓝牙天线向断开连接前曾蓝牙连接的主设备广播从设备的识别信息,包括:
所述从设备上的蓝牙将所述从设备的识别信息作为广播信号;
将所述广播信号传输至射频功放电路进行信号增强,获取增强的广播信号;
将增强的广播信息传输至从设备上的蓝牙天线,向断开连接前曾蓝牙连接的主设备广播该增强的广播信号。
可选的,所述方法还包括:
在检测到从设备与主设备蓝牙连接断开之后,从设备的应用层在保持伪连接状态时,所述从设备与所述主设备持正常的包数据收发。
可选的,所述从设备的应用层在保持伪连接状态,为蓝牙连接实质性断开至蓝牙的协议层确认蓝牙连接断开的时间差。
另外,本发明实施例还提供了一种蓝牙数据交互方法,应用于主设备侧,所述方法包括:
实时检测到主设备与从设备之间的蓝牙连接断开时,所述主设备将所有包数据缓存至缓存区;所述包数据包括:已接收的包数据和未接收完的包数据;
所述主设备上的蓝牙在存储区上获取蓝牙连接断开前曾连接的从设备的服务/特征值,并通过所述主设备上的蓝牙天线搜索获取从设备的广播信号;
若搜索获取所述从设备的广播信号,则与所述从设备重新建立连接,与所述从设备继续进行包数据交互。
可选的,所述主设备上的蓝牙通过天线搜索获取从设备的广播信号,包括:
所述主设备上的蓝牙在应用层设置搜索为定向搜索,通过蓝牙天线定向搜索获取所述从设备的广播信号。
可选的,所述则与所述从设备重新建立连接,包括:
所述主设备不进行所述从设备的服务/特征值再次发现流程,直接与所述从设备重新建立连接。
另外,本发明实施还提供了一种蓝牙数据交互方法,所述方法包括:
主设备与从设备建立蓝牙连接,所述主设备将所述从设备的服务/特征值缓存至主设备的存储区中;
所述从设备向所述主设备发送包数据,所述主设备接收包数据,并创建缓存区缓存所述包数据;
所述主设备在接收完包数据之后,向所述从设备发送已确认收到所述包数据和希望接收的下一个包数据的指令;
所述从设备响应所述指令,向主设备发送下一个包数据;
若所述主从和与所述从设备之间的蓝牙连接断开,所述主设备将所有包数据缓存至缓存区;所述包数据包括:已接收的包数据和未接收完的包数据;所述从设备上的蓝牙将所有包数据缓存至缓存区;所述包数据包括:待发送的包数据和未发送完的包数据;
所述主设备根据已缓存的所述从设备的服务/特征值搜索从设备广播的广播信号;
在搜索获取所述从设备的广播信号之后,与所述从设备重新建立连接;
在重新建立连接之后,所述从设备将其余的包数据发送给所述主设备,所述主设备进行包数据的校验和纠错;
若所述主设备发现从设备发送的其余的包数据无法纠正错误,则所述主设备通知所述从设备重新发送当前的数据帧的所有包数据。
可选的,所述创建缓存区缓存所述包数据之后还包括:
解析所述包数据,获取需要接收的包数据的总个数,并在缓存区中缓存所述包数据的总个数;
根据所述包数据的总个数为每一个包数据创建是否接收到的标志。
可选的,所述在搜索获取所述从设备的广播信号之后,与所述从设备重新建立连接,包括:
所述主设备在定向搜索获取所述从设备的广播信号之后,所述主设备不进行所述从设备的服务/特征值再次发现流程,直接与所述从设备重新建立连接。
可选的,所述从设备将其余的包数据发送给所述主设备,所述主设备进行包数据的校验和纠错,包括:
所述从设备根据所述从设备的蓝牙上的缓存区缓存的包数据继续向所述主设备发送;
所述主设备在接收到从设备发送的续发包数据之后,对所述续发包数据进行解析,获取所述续发包数据对应的包计数;
采用所述包计数与主设备的蓝牙上的缓存区缓存的未接收完的包数据中的最小包计数进行校验匹配,判断是否相互匹配;
若匹配,则所述续发包数据无需纠错;若不匹配,则所述续发包数据需要进行纠错。
另外,本发明实施例还提供了一种蓝牙设备,所述蓝牙设备包括蓝牙芯片、射频功放电路、射频低噪放电路和蓝牙天线;
其中,所述蓝牙设备被配置用于:执行上述任意一项所述的蓝牙数据交互方法。
在本发明实施例中,在从设备与主设备之间的蓝牙连接断开之后,通过从设备上的蓝牙将所有的包数据缓存至缓存区,且通过蓝牙天线向主设备广播自身的识别信息,在与主设备重新连接之后继续进行包数据交互;可以在蓝牙连接断开之后,实现快速重新连接,实现数据包断点续传,提升了蓝牙连接中的数据交互的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例中的蓝牙数据交互方法的流程示意图;
图2是本发明另一实施例中的蓝牙数据交互方法的流程示意图;
图3是本发明又一实施例中的蓝牙数据交互方法的流程示意图;
图4是本发明实施例中的蓝牙设备的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例:
请参阅图1,图1是本发明实施例中的蓝牙数据交互方法的流程示意图。
如图1所示,一种蓝牙数据交互方法,应用于从设备侧,所述方法包括:
S11:实时检测从设备与主设备之间的蓝牙连接是否断开;
在本发明具体实施过程中,从设备上的蓝牙芯片实时监测从设备与主设备之间的蓝牙连接是否断开。
S12:若检测到从设备与主设备的蓝牙连接断开时,从设备上的蓝牙将所有包数据缓存至缓存区;所述包数据包括:待发送的包数据和未发送完的包数据;
在本发明具体实施过程中,当从设备上的蓝牙芯片检测到从设备与主设备之间的蓝牙连接断开时,从设备上的蓝牙芯片启动数据缓存程序,在从设备的蓝牙设备上的存储区内开辟一块存储空间,用于存储从设备与主设备之间的包数据,该包数据包括从设备端向主设备端的待发送的包数据和未发送完的包数据。
其中,因为低功耗蓝牙的包数据交互传输过程中,传输的每一个包数据的负荷为20个字节,这是蓝牙传输协议中,为了保障包数据传输交互过程中的数据真确性;但是在实际的应用中,一次通信交互的数据帧长度往往大于20个字节,在这种情况下,需要将该数据帧拆分为多个包数据,即一个数据帧由多个包数据组成,所以需要对20个字节的包数据进行相应的设计,保障多个包数据通信的完整性;即将20字节的包数据划分为:
帧计数(1字节)+总包数(1字节)+包计数(1字节)+负荷长度(1字节)+负荷(16字节)。
即一个数据长度为20字节的包数据由一个字节的帧计数、一个字节的总包数、一个字节的包计数、一个字节的负荷长度和16个字节的负荷组成。
其中帧计数表示当前为第几次通信,当达到最大数值0×ff后,恢复为0×0;总包数表示当前数据帧被分为总共多少个包数据,最大值为0×ff(即256个包数据);包计数表示当前交互的数据帧的第几个包数据,从0×00开始,最长支持0×ff(第256个包数据);负荷长度表示当前包数据内有效负荷长度,最大值为0×f(16个字节),最小为0×0(1个字节)。
S13:通过从设备上的蓝牙天线向断开连接前曾蓝牙连接的主设备广播从设备的识别信息;
在本发明具体实施过程中,所述通过从设备上的蓝牙天线向断开连接前曾蓝牙连接的主设备广播从设备的识别信息,包括:所述从设备上的蓝牙将所述从设备的识别信息作为广播信号;将所述广播信号传输至射频功放电路进行信号增强,获取增强的广播信号;将增强的广播信息传输至从设备上的蓝牙天线,向断开连接前曾蓝牙连接的主设备广播该增强的广播信号。
具体的,从设备的蓝牙将从设备的识别信息作为向主设备进行广播的广播信号,其中识别信息至少包括识别从设备的唯一身份标志信息;将向设备广播的广播信号传输至蓝牙中的射频功放电路,在射频功放电路中对广播信号进行信号增强处理,通过射频功放电路的信号增强处理之后获得增强的广播信号,将增强的广播信号传输至蓝牙设备的蓝牙天线上,通过蓝牙天线向断开连接前曾蓝牙连接的主设备广播该增强的广播信号;通过对广播信号的增强,在通过蓝牙天线广播出去之后,大大的增加了主设备发现该广播信号的概率,从而使得从设备和主设备之间快速重新建立蓝牙连接;在本发明实施例中,蓝牙天线为向主设备定向广播该增强的广播信号;其中,定向广播即为从设备的蓝牙天线仅仅向断开连接前曾蓝牙连接的主设备广播该增强的广播信号;这样的广播方式将加快主设备发现和搜索广播信号的过程。
在具体实施过程中,S12和S13步骤为同时进行处理的步骤。
S14:当所述从设备与所述主设备从新建立连接之后,根据缓存区中缓存的包数据继续与所述主设备进行包数据交互。
在本发明具体实施过程中,在从设备与主设备之间重新建立蓝牙连接之后,根据缓存区中缓存的包数据继续与主设备进行包数据交互,即根据包数据中的总包数和包计数和存储在缓冲区中的待发送的包数据和未发送完的包数据,向主设备继续发送包数据,使得发送的数据保持连续性和完整性。
在本发明具体实施过程中,所述方法还包括:在检测到从设备与主设备蓝牙连接断开之后,从设备的应用层在保持伪连接状态时,所述从设备与所述主设备持正常的包数据收发。
具体的,所述从设备的应用层在保持伪连接状态,为蓝牙连接实质性断开至蓝牙的协议层确认蓝牙连接断开的时间差。
其中,在检测到从设备与主设备之间的蓝牙连接断开之后,从设备上的蓝牙设备的协议层还需要一小段时间才能确认蓝牙连接已断开,在这小段时间内的从设备的蓝牙设备的协议层还处于连接状态,该连接状态称为伪连接,一般伪连接时间为30s;在这段时间内,所述从设备与所述主设备持正常的包数据收发,只是这些包数据均在蓝牙连接实质断开之后进行的,因此这些交互数据均进入了缓存区进行缓存。
在本发明实施例中,在从设备与主设备之间的蓝牙连接断开之后,通过从设备上的蓝牙将所有的包数据缓存至缓存区,且通过蓝牙天线向主设备广播自身的识别信息,在与主设备重新连接之后继续进行包数据交互;可以在蓝牙连接断开之后,实现快速重新连接,实现数据包断点续传,提升了蓝牙连接中的数据交互的可靠性。
实施例:
请参阅图2,图2是本发明另一实施例中的蓝牙数据交互方法的流程示意图。
如图2所示,一种蓝牙数据交互方法,应用于主设备侧,所述方法包括:
S21:实时检测到主设备与从设备之间的蓝牙连接断开时,所述主设备将所有包数据缓存至缓存区;所述包数据包括:已接收的包数据和未接收完的包数据;
在具体实施过程中,在主设备侧,主设备上的蓝牙芯片实时检测主设备与从设备之间的蓝牙连接是否断开,当检测到蓝牙连接断开之后,主设备上的蓝牙芯片启动存储命令,命令将所有的包数据缓存至缓存区中,其中,该包数据包括:已接收的包数据和未接收完的包数据。
S22:所述主设备上的蓝牙在存储区上获取蓝牙连接断开前曾连接的从设备的服务/特征值,并通过所述主设备上的蓝牙天线搜索获取从设备的广播信号;
在本发明具体实施过程中,所述主设备上的蓝牙通过天线搜索获取从设备的广播信号,包括:所述主设备上的蓝牙在应用层设置搜索为定向搜索,通过蓝牙天线定向搜索获取所述从设备的广播信号。
具体的,主设备上的蓝牙的蓝牙芯片从存储区上获取到蓝牙连接断开前曾连接的从设备的服务/特征值,在获取到曾连接的从设备的服务/特征值之后,该蓝牙芯片通过蓝牙天线定向搜索从设备广播的广播信号;其中定向搜索为蓝牙设备上的一种搜索模型,在该搜索模型下进行搜索,蓝牙设备只搜索预先指定的蓝牙设备的广播信号,且丢弃其他蓝牙设备的广播信号;其中,设置定向搜索是根据获取蓝牙连接断开前曾连接的从设备的服务/特征值进行设置。
通过定向搜索从设备的广播信号,可以加快主设备上的蓝牙发现从设备上的蓝牙广播的广播信号,从而加快主设备与从设备之间的重新建立蓝牙连接的速度。
S23:若搜索获取所述从设备的广播信号,则与所述从设备重新建立连接,与所述从设备继续进行包数据交互。
在本发明具体实施过程中,所述则与所述从设备重新建立连接,包括:所述主设备不进行所述从设备的服务/特征值再次发现流程,直接与所述从设备重新建立连接。
具体的,在主设备上的蓝牙天线进行定向搜索之后,在搜索获取到从设备广播的广播信号之后,将该广播信号从蓝牙天线中传输至射频低噪放电路中,对该广播信号进行处理,提高该广播信号的输出的信澡比,在对该广播信号进行相应的处理之后,传输至主设备的蓝牙芯片内,蓝牙芯片根据该广播信号与从设备重新建立蓝牙连接;其中在与从设备重新建立蓝牙连接的时候,主设备的蓝牙芯片直接根据获取的该广播信号与从设备重新建立蓝牙连接,不需要对从设备进行服务/特征值再次发现流程,从而减少重新建立蓝牙连接的步骤,节约重新建立蓝牙连接的时间;在与从设备重新建立蓝牙连接之后,与从设备继续进行包数据交互,即根据上次蓝牙断开连接之后的断点包数据交互上继续进行。
在本发明具体实施过程中,主设备侧的蓝牙设备通过对从设备侧的蓝牙设备广播的广播信号进行定向搜索,和在搜索获取到该广播信号之后无需与从设备进行服务/特征值发现流程,直接与从设备重新建立蓝牙连接,继续进行包数据交互;可以快速的发现从设备广播的广播信号和快速与从设备重新构建蓝牙连接,实现第一时间恢复与从设备进行包数据交互,且为根据上次蓝牙连接断开的断点的基础上进行的包数据交互。
实施例:
请参阅图3,图3是本发明又一实施例中的蓝牙数据交互方法的流程示意图。
如图3所示,一种蓝牙数据交互方法,所述方法包括:
S31:主设备与从设备建立蓝牙连接,所述主设备将所述从设备的服务/特征值缓存至主设备的存储区中;
在本发明具体实施过程中,在主设备与从设备建立蓝牙连接之后,主设备将从从设备上获取到从设备的服务/特征值,并将获取到的服务/特征值缓存至主设备中的蓝牙的存储区中,方便后续再主设备与从设备之间的蓝牙连接断开之后,主设备从主设备蓝牙存储区中直接获取到从设备的服务/特征值。
S32:所述从设备向所述主设备发送包数据,所述主设备接收包数据,并创建缓存区缓存所述包数据;
在本发明具体实施过程中,从设备将需要发送给主设备的数据帧进行处理,其中包括将数据帧按照蓝牙传输负荷进行拆分,拆分为n个包数据并有序排序,每个包数据为20个字节,并且在从设备的缓存区缓存该数据帧和拆分好的包数据,并记录包数据的个数;然后向主设备发送数据帧中拆分出来的第一个包数据;主设备在接收到第一个包数据之后,在主设备的蓝牙存储中创建一个缓存区,用于缓存接收的包数据,并将接收到的第一个包数据缓存进去,后续接收到的包数据按照接收顺序缓存,创建的缓存区大小至少能缓存完这个数据帧所拆分出来的包数据。
其中,所述创建缓存区缓存所述包数据之后还包括:解析所述包数据,获取需要接收的包数据的总个数,并在创建的缓存区中缓存所述包数据的总个数;根据所述包数据的总个数为每一个包数据创建是否接收到的标志。
因为低功耗蓝牙的包数据交互传输过程中,传输的每一个包数据的负荷为20个字节,这是蓝牙传输协议中,为了保障包数据传输交互过程中的数据真确性;但是在实际的应用中,一次通信交互的数据帧长度往往大于20个字节,在这种情况下,需要将该数据帧拆分为多个包数据,即一个数据帧由多个包数据组成,所以需要对20个字节的包数据进行相应的设计,保障多个包数据通信的完整性;即将20字节的包数据划分为:
帧计数(1字节)+总包数(1字节)+包计数(1字节)+负荷长度(1字节)+负荷(16字节)。
即一个数据长度为20字节的包数据由一个字节的帧计数、一个字节的总包数、一个字节的包计数、一个字节的负荷长度和16个字节的负荷组成。
其中帧计数表示当前为第几次通信,当达到最大数值0×ff后,恢复为0×0;总包数表示当前数据帧被分为总共多少个包数据,最大值为0×ff(即256个包数据);包计数表示当前交互的数据帧的第几个包数据,从0×00开始,最长支持0×ff(第256个包数据);负荷长度表示当前包数据内有效负荷长度,最大值为0×f(16个字节),最小为0×0(1个字节)。
具体的在接收到第一个包数据之后,解析第一个包数据,从而获取数据帧将分为多少个包数据而获取到需要接收的包数据总个数,并缓存所创建的缓存区中;且在缓存区中为根据包数据总个数为每一个包数据均创建“是否接收到”的标志,这样方便后续再断点续传时校验和纠错。
S33:所述主设备在接收完包数据之后,向所述从设备发送已确认收到所述包数据和希望接收的下一个包数据的指令;
在本发明具体实施过程中,主设备在接收完包数据之后,会产生一个已接收完该包数据的回传指令和希望接收下一个包数据的指令,并将该指令通过蓝牙连接发送给到从设备,从设备进入发送下一个包数据的程序并发送下一个包数据。
S34:所述从设备响应所述指令,向主设备发送下一个包数据;
在本发明具体实施过程中,在从设备接收到上述S33中的指令之后,响应该指令,向主设备发送下一个包数据。
主设备与从设备之间的包数据传输重复上述的S32-S34步骤,直至数据帧拆分出来的包数据传输完毕,或者主设备与从设备之间的蓝牙连接断开;若主设备与从设备之间的蓝牙连接断开,则进入S35-S39步骤,进行相应的处理。
S35:若所述主从和与所述从设备之间的蓝牙连接断开,所述主设备将所有包数据缓存至缓存区;所述包数据包括:已接收的包数据和未接收完的包数据;所述从设备上的蓝牙将所有包数据缓存至缓存区;所述包数据包括:待发送的包数据和未发送完的包数据;
在本发明具体实施过程中,当从设备上的蓝牙芯片检测到从设备与主设备之间的蓝牙连接断开时,从设备上的蓝牙芯片启动数据缓存程序,在从设备的蓝牙设备上的存储区内开辟一块存储空间,用于存储从设备与主设备之间的包数据,该包数据包括从设备端向主设备端的待发送的包数据和未发送完的包数据。
在主设备侧,主设备上的蓝牙芯片实时检测主设备与从设备之间的蓝牙连接是否断开,当检测到蓝牙连接断开之后,主设备上的蓝牙芯片启动存储命令,命令将所有的包数据缓存至缓存区中,其中,该包数据包括:已接收的包数据和未接收完的包数据。
其中,因为低功耗蓝牙的包数据交互传输过程中,传输的每一个包数据的负荷为20个字节,这是蓝牙传输协议中,为了保障包数据传输交互过程中的数据真确性;但是在实际的应用中,一次通信交互的数据帧长度往往大于20个字节,在这种情况下,需要将该数据帧拆分为多个包数据,即一个数据帧由多个包数据组成,所以需要对20个字节的包数据进行相应的设计,保障多个包数据通信的完整性;即将20字节的包数据划分为:
帧计数(1字节)+总包数(1字节)+包计数(1字节)+负荷长度(1字节)+负荷(16字节)。
即一个数据长度为20字节的包数据由一个字节的帧计数、一个字节的总包数、一个字节的包计数、一个字节的负荷长度和16个字节的负荷组成。
其中帧计数表示当前为第几次通信,当达到最大数值0×ff后,恢复为0×0;总包数表示当前数据帧被分为总共多少个包数据,最大值为0×ff(即256个包数据);包计数表示当前交互的数据帧的第几个包数据,从0×00开始,最长支持0×ff(第256个包数据);负荷长度表示当前包数据内有效负荷长度,最大值为0×f(16个字节),最小为0×0(1个字节)。
S36:所述主设备根据已缓存的所述从设备的服务/特征值搜索从设备广播的广播信号;
在具体实施过程中,在从设备与主设备之间的蓝牙连接断开之后,从设备侧:所述通过从设备上的蓝牙天线向断开连接前曾蓝牙连接的主设备广播从设备的识别信息,包括:所述从设备上的蓝牙将所述从设备的识别信息作为广播信号;将所述广播信号传输至射频功放电路进行信号增强,获取增强的广播信号;将增强的广播信息传输至从设备上的蓝牙天线,向断开连接前曾蓝牙连接的主设备广播该增强的广播信号。
具体的,从设备的蓝牙将从设备的识别信息作为向主设备进行广播的广播信号,其中识别信息至少包括识别从设备的唯一身份标志信息;将向设备广播的广播信号传输至蓝牙中的射频功放电路,在射频功放电路中对广播信号进行信号增强处理,通过射频功放电路的信号增强处理之后获得增强的广播信号,将增强的广播信号传输至蓝牙设备的蓝牙天线上,通过蓝牙天线向断开连接前曾蓝牙连接的主设备广播该增强的广播信号;通过对广播信号的增强,在通过蓝牙天线广播出去之后,大大的增加了主设备发现该广播信号的概率,从而使得从设备和主设备之间快速重新建立蓝牙连接;在本发明实施例中,蓝牙天线为向主设备定向广播该增强的广播信号;其中,定向广播即为从设备的蓝牙天线仅仅向断开连接前曾蓝牙连接的主设备广播该增强的广播信号;这样的广播方式将加快主设备发现和搜索广播信号的过程。
主设备侧:所述主设备上的蓝牙通过天线搜索获取从设备的广播信号,包括:所述主设备上的蓝牙在应用层设置搜索为定向搜索,通过蓝牙天线定向搜索获取所述从设备的广播信号。
具体的,主设备上的蓝牙的蓝牙芯片从存储区上获取到蓝牙连接断开前曾连接的从设备的服务/特征值,在获取到曾连接的从设备的服务/特征值之后,该蓝牙芯片通过蓝牙天线定向搜索从设备广播的广播信号;其中定向搜索为蓝牙设备上的一种搜索模型,在该搜索模型下进行搜索,蓝牙设备只搜索预先指定的蓝牙设备的广播信号,且丢弃其他蓝牙设备的广播信号;其中,设置定向搜索是根据获取蓝牙连接断开前曾连接的从设备的服务/特征值进行设置。
通过定向搜索从设备的广播信号,可以加快主设备上的蓝牙发现从设备上的蓝牙广播的广播信号,从而加快主设备与从设备之间的重新建立蓝牙连接的速度。
S37:在搜索获取所述从设备的广播信号之后,与所述从设备重新建立连接;
在本发明具体实施过程中,主设备在搜索获取到从设备广播的广播信号之后,立即与从设备重新构建蓝牙连接;其中,所述在搜索获取所述从设备的广播信号之后,与所述从设备重新建立连接,包括:所述主设备在定向搜索获取所述从设备的广播信号之后,所述主设备不进行所述从设备的服务/特征值再次发现流程,直接与所述从设备重新建立连接。
具体的,在主设备上的蓝牙天线进行定向搜索之后,在搜索获取到从设备广播的广播信号之后,将该广播信号从蓝牙天线中传输至射频低噪放电路中,对该广播信号进行处理,提高该广播信号的输出的信澡比,在对该广播信号进行相应的处理之后,传输至主设备的蓝牙芯片内,蓝牙芯片根据该广播信号与从设备重新建立蓝牙连接;其中在与从设备重新建立蓝牙连接的时候,主设备的蓝牙芯片直接根据获取的该广播信号与从设备重新建立蓝牙连接,不需要对从设备进行服务/特征值再次发现流程,从而减少重新建立蓝牙连接的步骤,节约重新建立蓝牙连接的时间。
S38:在重新建立连接之后,所述从设备将其余的包数据发送给所述主设备,所述主设备进行包数据的校验和纠错;
在本发明具体实施过程中,所述从设备将其余的包数据发送给所述主设备,所述主设备进行包数据的校验和纠错,包括:所述从设备根据所述从设备的蓝牙上的缓存区缓存的包数据继续向所述主设备发送;所述主设备在接收到从设备发送的续发包数据之后,对所述续发包数据进行解析,获取所述续发包数据对应的包计数;采用所述包计数与主设备的蓝牙上的缓存区缓存的未接收完的包数据中的最小包数据进行校验匹配,判断是否相互匹配;若匹配,则所述续发包数据无需纠错;若不匹配,则所述续发包数据需要进行纠错。
具体的,在主设备与从设备之间重新建立蓝牙连接之后,从设备向主设备续发包数据,主设备在接收到续发的包数据之后,对续发的包数据进行相应的解析,从而获取到续发包数据的包计数,即为当前传输的数据帧的第几个包数据,通过该包计数与主设备的蓝牙上的缓存区缓存的未接收完的包数据中最小包计数进行校验匹配,若能校验匹配上,则续发包数据无需纠错,若不能校验匹配上,则续发包数据需要纠错。
通过利用续发的包数据中的包计数来进行校验,可以有效的校验出续发包数据是否存在续发错误,保障主设备在断点重连之后,接收从设备发送的续发包数据与断点之前发送的包数据是连续的且无错乱的;保障了数据帧的完整性和连续性,使得主设备在接收完包数据之后,重组为数据帧时,不存在错误或乱码等问题。
S39:若所述主设备发现从设备发送的其余的包数据无法纠正错误,则所述主设备通知所述从设备重新发送当前的数据帧的所有包数据。
在本发明具体实施过程中,在上述S38中,从设备续发包数据在校验过程中发现错误,需要进行相应的纠错,因为错误较为严重,可能在解析续发包数据时,出现乱码等情况,无法在短暂的时间内进行修复,或者修复时间已大大超越了重发时间,或者无法纠错等,则主设备产生一个重发指令,将重发指令回传至从设备上,从设备收到重发指令之后,从设备重新发送当前的数据帧的所有包数据。
在本发明实施例中,在主设备与从设备之间通过蓝牙连接进行数据传输交互,在蓝牙连接断开之后,通过主设备的定向搜索从设备的广播信号,快速实现主设备与从设备之间的重建蓝牙连接,实现包数据的续传;通过改进包数据的数据结构,在续传的过程中,主设备通过解决包数据,获取包数据的包计数等信息,并根据包计数等信息进行校验和纠错,从而保障主设备与从设备之间的数据传输的连续性好而可靠性等。
实施例:
请参阅图4,图4是本发明实施例中的蓝牙设备的结构组成示意图。
如图4所示,一种蓝牙设备,所述蓝牙设备包括蓝牙芯片11、射频功放电路12、射频低噪放电路13和蓝牙天线14;其中,射频功放电路12:提高蓝牙设备(BLE Slave)的发射功率,提高通信成功率;射频低噪放电路13:以提高输出的信噪比;具体的,该射频功放电路12为可控增益放大电路,其放大增益至少包括0dBm(无放大),3dBm(放大一倍)两个等级,“无放大”等级保证了在蓝牙设备与蓝牙主机间隔相近时,能够保证足够低的发射功率;增益放大控制由蓝牙芯片11控制,可以在适宜的时刻切换,其切换的时间和工作时间长度由运行于蓝牙芯片11中的软件控制。
射频低噪放电路13设计为可控放大电路,仅针对2.54Ghz的蓝牙频率,放大带宽尽量控制在200MHz以内,保证足够的滤波效果;同样的,该射频低噪放电路13的控制由蓝牙芯片11通过软件控制,其控制功能至少包括“开启”和“关闭”两种。
该蓝牙设备被配置为:执行上述任意一项实施例中的蓝牙数据交互方法。
在本发明实施例中,在主设备与从设备之间通过蓝牙连接进行数据传输交互,在蓝牙连接断开之后,通过主设备的定向搜索从设备的广播信号,快速实现主设备与从设备之间的重建蓝牙连接,实现包数据的续传;通过改进包数据的数据结构,在续传的过程中,主设备通过解决包数据,获取包数据的包计数等信息,并根据包计数等信息进行校验和纠错,从而保障主设备与从设备之间的数据传输的连续性好而可靠性等。
在上述实施例中,服务/特征值的定义为:
服务:有关的特征值的集合,具有一系列操作来执行的特定功能,;例如,“体温计”的服务包括一个温度测量值(特征1),以及测量的时间间隔(特征2);特征值:从设备的蓝牙与主设备的蓝牙间传递的数据值,例如从设备的蓝牙的当前的电池电压,特征值可以通过蓝牙协议进行读写操作;UUID:唯一ID号,蓝牙协议中,每一个“服务”和“特征值”都有着唯一的ID号(UUID),一般为128位的数据串。
在蓝牙发现过程中,最为消耗时间的过程为master device从slave device,即获取从设备的服务/特征值的过程(由于一个slave device可能存在多个服务和特征,交互过程耗时较长);如果master device已经缓存有slave device的服务/特征值,则发现过程将极为快速。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,ReadOnly Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
另外,以上对本发明实施例所提供的一种蓝牙数据交互方法及蓝牙设备进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种蓝牙数据交互方法,应用于从设备侧,其特征在于,所述方法包括:
实时检测从设备与主设备之间的蓝牙连接是否断开;
若检测到从设备与主设备的蓝牙连接断开时,从设备上的蓝牙将所有包数据缓存至缓存区;所述包数据包括:待发送的包数据和未发送完的包数据;
通过从设备上的蓝牙天线向断开连接前曾蓝牙连接的主设备广播从设备的识别信息;
当所述从设备与所述主设备从新建立连接之后,根据缓存区中缓存的包数据继续与所述主设备进行包数据交互。
2.根据权利要求1所述的蓝牙数据交互方法,其特征在于,所述通过从设备上的蓝牙天线向断开连接前曾蓝牙连接的主设备广播从设备的识别信息,包括:
所述从设备上的蓝牙将所述从设备的识别信息作为广播信号;
将所述广播信号传输至射频功放电路进行信号增强,获取增强的广播信号;
将增强的广播信息传输至从设备上的蓝牙天线,向断开连接前曾蓝牙连接的主设备广播该增强的广播信号。
3.根据权利要求1所述的蓝牙数据交互方法,其特征在于,所述方法还包括:
在检测到从设备与主设备蓝牙连接断开之后,从设备的蓝牙协议层在保持伪连接状态时,所述从设备与所述主设备持正常的包数据收发。
4.根据权利要求3所述的蓝牙数据交互方法,其特征在于,所述从设备的蓝牙协议层在保持伪连接状态,为蓝牙连接实质性断开至蓝牙的协议层确认蓝牙连接断开的时间差。
5.一种蓝牙数据交互方法,应用于主设备侧,其特征在于,所述方法包括:
实时检测到主设备与从设备之间的蓝牙连接断开时,所述主设备将所有包数据缓存至缓存区;所述包数据包括:已接收的包数据和未接收完的包数据;
所述主设备上的蓝牙在存储区上获取蓝牙连接断开前曾连接的从设备的服务/特征值,并通过所述主设备上的蓝牙天线搜索获取从设备的广播信号;
若搜索获取所述从设备的广播信号,则与所述从设备重新建立连接,与所述从设备继续进行包数据交互。
6.根据权利要求5所述的蓝牙数据交互方法,其特征在于,所述主设备上的蓝牙通过天线搜索获取从设备的广播信号,包括:
所述主设备上的蓝牙在应用层设置搜索为定向搜索,通过蓝牙天线定向搜索获取所述从设备的广播信号。
7.根据权利要求5所述的蓝牙数据交互方法,其特征在于,所述则与所述从设备重新建立连接,包括:
所述主设备不进行所述从设备的服务/特征值再次发现流程,直接与所述从设备重新建立连接。
8.一种蓝牙数据交互方法,其特征在于,所述方法包括:
主设备与从设备建立蓝牙连接,所述主设备将所述从设备的服务/特征值缓存至主设备的存储区中;
所述从设备向所述主设备发送包数据,所述主设备接收包数据,并创建缓存区缓存所述包数据;
所述主设备在接收完包数据之后,向所述从设备发送已确认收到所述包数据和希望接收的下一个包数据的指令;
所述从设备响应所述指令,向主设备发送下一个包数据;
若所述主从和与所述从设备之间的蓝牙连接断开,所述主设备将所有包数据缓存至缓存区;所述包数据包括:已接收的包数据和未接收完的包数据;所述从设备上的蓝牙将所有包数据缓存至缓存区;所述包数据包括:待发送的包数据和未发送完的包数据;
所述主设备根据已缓存的所述从设备的服务/特征值搜索从设备广播的广播信号;
在搜索获取所述从设备的广播信号之后,与所述从设备重新建立连接;
在重新建立连接之后,所述从设备将其余的包数据发送给所述主设备,所述主设备进行包数据的校验和纠错;
若所述主设备发现从设备发送的其余的包数据无法纠正错误,则所述主设备通知所述从设备重新发送当前的数据帧的所有包数据。
9.根据权利要求8所述的蓝牙数据交互方法,其特征在于,所述创建缓存区缓存所述包数据之后还包括:
解析所述包数据,获取需要接收的包数据的总个数,并在创建的缓存区中缓存所述包数据的总个数;
根据所述包数据的总个数为每一个包数据创建是否接收到的标志。
10.根据权利要求8所述的蓝牙数据交互方法,其特征在于,所述在搜索获取所述从设备的广播信号之后,与所述从设备重新建立连接,包括:
所述主设备在定向搜索获取所述从设备的广播信号之后,所述主设备不进行所述从设备的服务/特征值再次发现流程,直接与所述从设备重新建立连接。
11.根据权利要求8所述的蓝牙数据交互方法,其特征在于,所述从设备将其余的包数据发送给所述主设备,所述主设备进行包数据的校验和纠错,包括:
所述从设备根据所述从设备的蓝牙上的缓存区缓存的包数据继续向所述主设备发送;
所述主设备在接收到从设备发送的续发包数据之后,对所述续发包数据进行解析,获取所述续发包数据对应的包计数;
采用所述包计数与主设备的蓝牙上的缓存区缓存的未接收完的包数据中的最小包计数进行校验匹配,判断是否相互匹配;
若匹配,则所述续发包数据无需纠错;若不匹配,则所述续发包数据需要进行纠错。
12.一种蓝牙设备,其特征在于,所述蓝牙设备包括蓝牙芯片、射频功放电路、射频低噪放电路和蓝牙天线;
其中,所述蓝牙设备被配置用于:执行根据权利要求1至11中任意一项所述的蓝牙数据交互方法。
CN201811184988.6A 2018-10-11 2018-10-11 一种蓝牙数据交互方法及蓝牙设备 Pending CN109379730A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811184988.6A CN109379730A (zh) 2018-10-11 2018-10-11 一种蓝牙数据交互方法及蓝牙设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811184988.6A CN109379730A (zh) 2018-10-11 2018-10-11 一种蓝牙数据交互方法及蓝牙设备

Publications (1)

Publication Number Publication Date
CN109379730A true CN109379730A (zh) 2019-02-22

Family

ID=65403100

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811184988.6A Pending CN109379730A (zh) 2018-10-11 2018-10-11 一种蓝牙数据交互方法及蓝牙设备

Country Status (1)

Country Link
CN (1) CN109379730A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235806A (zh) * 2020-10-20 2021-01-15 Tcl通讯(宁波)有限公司 蓝牙参数配置方法、装置、存储介质及移动终端
CN113179505A (zh) * 2021-03-10 2021-07-27 歌尔科技有限公司 蓝牙播放装置重启回连方法、蓝牙播放装置和电子设备
CN114173426A (zh) * 2021-11-30 2022-03-11 广州番禺巨大汽车音响设备有限公司 基于无线音频传输的无线音箱播放控制方法、装置及系统
CN117250482A (zh) * 2023-11-16 2023-12-19 巨翊医疗科技(苏州)有限公司 一种基于蓝牙交互的pcba测试方法、系统及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101416510A (zh) * 2006-03-29 2009-04-22 索尼爱立信移动通讯有限公司 管理音频数据的方法和系统
CN104834617A (zh) * 2015-04-01 2015-08-12 深圳市金立通信设备有限公司 一种数据传输方法
CN105282338A (zh) * 2015-10-30 2016-01-27 东莞酷派软件技术有限公司 一种移动终端的消息提醒方法及系统
CN106571894A (zh) * 2016-11-10 2017-04-19 深圳市民德电子科技股份有限公司 蓝牙信息发送及接收方法
CN106658661A (zh) * 2016-11-10 2017-05-10 江苏惠通集团有限责任公司 主设备、从设备及重新建立连接的方法
CN108419226A (zh) * 2012-09-27 2018-08-17 华为终端(东莞)有限公司 一种蓝牙设备之间连接的方法及蓝牙设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101416510A (zh) * 2006-03-29 2009-04-22 索尼爱立信移动通讯有限公司 管理音频数据的方法和系统
CN108419226A (zh) * 2012-09-27 2018-08-17 华为终端(东莞)有限公司 一种蓝牙设备之间连接的方法及蓝牙设备
CN104834617A (zh) * 2015-04-01 2015-08-12 深圳市金立通信设备有限公司 一种数据传输方法
CN105282338A (zh) * 2015-10-30 2016-01-27 东莞酷派软件技术有限公司 一种移动终端的消息提醒方法及系统
CN106571894A (zh) * 2016-11-10 2017-04-19 深圳市民德电子科技股份有限公司 蓝牙信息发送及接收方法
CN106658661A (zh) * 2016-11-10 2017-05-10 江苏惠通集团有限责任公司 主设备、从设备及重新建立连接的方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235806A (zh) * 2020-10-20 2021-01-15 Tcl通讯(宁波)有限公司 蓝牙参数配置方法、装置、存储介质及移动终端
CN112235806B (zh) * 2020-10-20 2023-08-18 深圳市智创一切科技有限公司 蓝牙参数配置方法、装置、存储介质及移动终端
CN113179505A (zh) * 2021-03-10 2021-07-27 歌尔科技有限公司 蓝牙播放装置重启回连方法、蓝牙播放装置和电子设备
CN114173426A (zh) * 2021-11-30 2022-03-11 广州番禺巨大汽车音响设备有限公司 基于无线音频传输的无线音箱播放控制方法、装置及系统
CN114173426B (zh) * 2021-11-30 2023-09-29 广州番禺巨大汽车音响设备有限公司 基于无线音频传输的无线音箱播放控制方法、装置及系统
CN117250482A (zh) * 2023-11-16 2023-12-19 巨翊医疗科技(苏州)有限公司 一种基于蓝牙交互的pcba测试方法、系统及装置
CN117250482B (zh) * 2023-11-16 2024-03-15 巨翊医疗科技(苏州)有限公司 一种基于蓝牙交互的pcba测试方法、系统及装置

Similar Documents

Publication Publication Date Title
CN109379730A (zh) 一种蓝牙数据交互方法及蓝牙设备
US11337274B2 (en) Method, apparatus and device for controlling dual-mode communication, and computer readable storage medium
US9730146B2 (en) System and method for reliable communications over multiple packet RF networks
CN108476457A (zh) 在时隙化信道跳变网络中的分布式反应性资源和调度管理
CN106330414A (zh) 一种报文传输方法及装置
CN107172572B (zh) 基于低功耗蓝牙的虚连接方法及利用该方法的无线充电协议
CN102291318B (zh) 一种最大传输单元协商的方法和路由器
US9270529B2 (en) Distributed data transmission in data networks
US8774130B2 (en) Access point, L2 switch and method of supporting multicast handover using the access point and L2 switch
CN100469002C (zh) 数据分块传输方法及装置
US11206183B2 (en) Network protocol method for mesh capability in narrow-band wireless networks
CN102027711A (zh) 多播组管理的方法与设备
CN108494610A (zh) 基于6LoBLE的低功耗蓝牙IPv6地址自动配置方法
CN108768507B (zh) 一种rru环形组网的链路切换方法及系统
CN102292942B (zh) 一种路由处理方法、系统和路由器
US20090003295A1 (en) Ad-hoc network device with reduced data loss
CN104519022A (zh) 一种建立连接通道的方法及装置
CN109525305A (zh) 基于LoRa技术的通信方法、通信系统及通信设备
CN111542030A (zh) 蓝牙Mesh的最优TTL值计算方法及其系统、计算机可读存储介质
CN104079485B (zh) 一种传递指定转发者信息的方法及装置
CN102394824B (zh) 一种在双机环形堆叠系统中发送报文的方法及设备
CN102088738A (zh) 请求发送方法和系统、初始节点、中间节点和目的节点
CN106790639A (zh) 数据传输方法及系统
CN111132260A (zh) 一种多路由自组网的Lora通信方法及系统
CN104427553A (zh) 一种组播组优化方法及锚点

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
AD01 Patent right deemed abandoned

Effective date of abandoning: 20221018