一种基于蓝牙4.0的设备间大数据通信方法

文档序号:9892175阅读:436来源:国知局
一种基于蓝牙4.0的设备间大数据通信方法
【技术领域】
[0001]本发明涉及一种设备间大数据通信方法,更具体的涉及一种基于蓝牙4.0的设备间大数据通信方法,属于通信协议扩展技术领域。
【背景技术】
[0002]蓝牙4.0641'1'技术的诞生,特别是81^(811^切0他Low Energy)的普及,在物联网应用领域产生了不可估量的作用。利用蓝牙BLE进行物联网络组建,具有射频频段免许可(2,.4GHz频段)、功耗低、实时性强等优势。但是蓝牙4.0 BLE在传输数据帧长度方面同样具有一定的限制,其局限性具体表现为:数据长度限制,每帧不大于20字节,每秒不大于2000字节;可靠性较差,受到蓝牙外设与主机连接稳定性影响,在实际应用中易出现连接断开、数据丢失等问题;数据无校验,虽然蓝牙4.0规范中提供比较多的服务(Service)与配置(Profile)支持,但是在物联网领域自定义数据方面它仍然是一种不可靠传输。

【发明内容】

[0003]发明目的:本发明目的在于针对现有技术的不足,提供一种可靠性强、承载数据量大的基于蓝牙4.0的设备间大数据通信方法。
[0004]技术方案:本发明所述一种基于蓝牙4.0的设备间大数据通信方法,在物理链路层采用蓝牙4.0协议建立蓝牙主机与蓝牙外设之间的连接,在传输层采用全双工通信方式,并对传输的数据进行分片重组,其分片重组的数据结构为:
分片数据为20字节的数据帧,其结构从前向后依次为:2字节代表有效载荷,I字节代表分片编号,16字节代表有效载荷数据,I字节代表校验值;
分片确认数据为20字节的数据帧,其结构从前向后依次为:I字节代表数据类型,I字节代表响应类型,18字节代表响应数据。
[0005]本发明技术方案的进一步限定为,所述全双工通信方式具体按如下步骤进行:
51、蓝牙主机将要发送的用户层数据进行长度计算,并提交至传输层;传输层采用16字节分片原则对数据进行分片,并将分片的数据通过下行通道传输给等待接收的蓝牙外设;
52、蓝牙外设接收分片数据,校验分片数据中的有效载荷和分片编号,如果正确,则将接收的分片数据进行重组保存并发送响应类型为“成功”的分片确认数据;如果不正确,则发送响应类型为“失败”的分片确认数据;
53、蓝牙主机通过传输层的上行通道接收蓝牙外设发送的分片确认数据,通过分片确认数据中携带的数据类型判定接收的本条信息为分片确认数据,再通过分片确认数据的响应类型判定数据传送是否成功,如果成功,则蓝牙主机根据分片确认数据中携带的响应数据继续发送下一片分片;
54、重复执行步骤SI和S2,直到蓝牙外设接收到的有效载荷等于应用数据长度,视为应用数据传输成功,蓝牙外设发送“接收成功”的分片确认数据至蓝牙主机,蓝牙主机结束传输。
[0006]蓝牙传输最大的问题就是可靠性差,本发明为了保证其可靠性,避免数据在传输过程中可能存在丢失或者误码,需要在传输过程中加入如下机制:
第一种机制,在步骤SI中,蓝牙主机发送数据之后,进入阻塞等待状态,如果在超时时间内没有接收到来自蓝牙外设的分片确认数据,认为分片传输失败,进而重传当前分片,直到正确收到来自蓝牙外设的分片确认数据或者超出重传次数上限。
[0007]第二种机制,如果超出重传次数上限或者物理链路层的连接断开,则视为传输事务未完成,可启用断点续传,具体为:
Xl、确认物理链路层的连接是否正常,如果不正常,重新建立物理链路层的连接;
X2、确定上一次发送成功的分片数据的分片编号N,开始发送分片编号为N+1的分片数据,直到蓝牙外设接收到的有效载荷等于应用数据长度,视为应用数据传输成功,蓝牙外设发送“接收成功”的分片确认数据至蓝牙主机,蓝牙主机结束传输。
[0008]第三种机制,如果超出重传次数上限或者物理链路层的连接断开,则视为传输事务未完成,可重新启动进行数据传送,具体为:
Cl、确认物理链路层的连接是否正常,如果不正常,重新建立物理链路层的连接;
C2、蓝牙主机发送分片编号为O的分片数据,蓝牙外设接收到此分片数据后,采用状态复位机制,丢弃之前接收并重组的分片数据,并回滚传输事务,传输重新开始。
[0009]第四种机制,步骤S2中,如果蓝牙外设校验分片编号时,发现分片编号不是期望的编号,则发送响应类型为“失败”的分片确认数据,同时,响应数据为期望的分片编号;
步骤S3中,蓝牙主机接到此分片确认数据后,根据响应数据表示的期望分片编号开始发送分片数据。
[0010]第五种机制,步骤S2中,如果蓝牙外设接收处理时发生异常,则直接丢弃本次分片,并发送响应类型为“失败”的分片确认数据,同时,响应数据为当前的分片编号;
步骤S3中,蓝牙主机接到此分片确认数据后,根据响应数据表示的期望分片编号开始发送分片数据。
[0011 ]在本发明中,蓝牙连接是非持续的,即在应用层面,只有当每次有外部数据传输请求到来时,此传输系统的主机才会发起对特定从机的连接;而当传输结束之后,主机或者从机判定是否需要将连接切断,因此,本发明中所述物理链路层采用蓝牙4.0协议建立蓝牙主机与蓝牙外设之间的连接的方法具体分为如下两种类型:
主机请求发送:主机在扫描到外设MAC或者名称之后,如果判定为目标设备,则发起连接,连接过程中根据指定的Characteristic UUID,建立至少两条逻辑信道,并使用GATTCharacteristic fcite和notify方式进行全双工通信,外设根据主机主动传输的数据进行帧ACK和应用层ACK,直到数据传输结束,主机断开连接;
主机请求接收:主机在扫描到外设MAC或者名称之后,如果判定为目标设备,则发起连接,连接过程中根据指定的Characteristic UUID,建立至少两条逻辑信道,并进行全双工通信,夕卜设不主动以notify方式向主机发送数据,主机采用GATT Characteristic Read方式获取数据,直到数据传输结束,主机断开连接。
[0012]有益效果:本发明提出一种基于蓝牙4.0的设备间大数据通信方法,是基于蓝牙4.0物理连接基础上的应用层传输机制,在保持蓝牙4.0传输距离、功耗的基础上,传输数据量可以突破20字节每帧的限制,并具有传输确认机制,有效避免传输过程中的帧丢弃及帧错误;本发明具有Connect on demand特性,在应用场景中蓝牙主机能做到按需求连接蓝牙外设;同时,断点续传的功能:基于Connect on demand特性的数据续传方法,避免物理连接断开带来的逻辑传输失败。
【附图说明】
[0013]图1为本发明提供的物理链路层建立蓝牙4.0协议连接的流程图;
图2为本发明提供的物理链路层建立蓝牙4.0过程中主机与外设之间的状态迀移图;
图3为本发明提供的传输层分片重组数据的结构示意图;
图4为本发明提供的传输
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1