一种提高iOS设备蓝牙传输速度的方法与流程

文档序号:21084711发布日期:2020-06-12 16:49阅读:2586来源:国知局
一种提高iOS设备蓝牙传输速度的方法与流程

本发明涉及蓝牙无线通讯技术领域,特别涉及一种提高ios设备蓝牙传输速度的方法。



背景技术:

ios数据传输可以通过蓝牙低功耗技术(bluetoothlowenergy,简称ble)或者传统蓝牙来实现,但ble的传输速度较低。为了实现较高的传输速度,苹果在iap(ipodaccessoryprotocol)协议中支持了通过传统蓝牙连接ios设备,该协议中规定使用传统蓝牙中的rfcomm协议来传输iap数据包。iap协议中约定,发送方的每个包都有一个序列号(简称seq),接收方需要对接收到的数据包进行确认,确认时需要带上接收到的数据包的seq,确认后接受方回复确认包ack。接收方在以下三种情况下回复确认ack:一、累积收到累计确认包最大个数时没有ack的数据包;二、距离上一个没有ack数据包的时间超过累计确认超时时间;三、接收方主动回复ack。如果在重传超时时间内接收方没有给发送方回复ack,将视为超时,发送方会重传数据。以上是iap的流控机制,用于保证数据完整性。同时,因为iap使用的rfcomm协议也有其流控机制。rfcomm连接建立后,双方会交换初始传输信用数(credit),每次发送一个数据,credit的值便会减1,当credit的值为0时不会再进行数据发送,直到接收方在重新返回给credit值。credit有效的控制了数据的收发,让宏观概念上的缓冲区(简称buf)不会溢出。因为iap和rfcomm协议都有其自身的流控机制,所以在通信过程中,需要传输rfcomm的credit,也需要传输iap的ack,导致速度降低。



技术实现要素:

本发明所要解决的技术问题是:提供一种提高ios设备蓝牙传输速度的方法,减少rfcomm协议的数据交互次数,提高传输速度。

为了实现上述目的,本发明采用的一个技术方案是:提供一种提高ios设备蓝牙传输速度的方法,包括:ios设备和外围设备建立rfcomm连接,并交换传输信用数;ios设备和外围设备建立iap协议通信,并交换协议参数;ios设备发送第一iap数据包,将第一iap数据包拆解为一个或多个rfcomm数据包,其中第一iap数据包为通讯数据根据iap协议生成的iap数据包;外围设备将接收到的rfcomm数据包组合为符合iap协议的第二iap数据包,并将接收到的rfcomm数据包的个数累加到外围设备的上一次传输信用数中;外围设备根据rfcomm数据包接收情况或协议参数,判断是否向ios设备回复确认包;若接收的rfcomm数据包达到预设阈值或达到协议参数的数值,则回复确认包,将确认包和外围设备累加的传输信用数合并后发送给ios设备。

本发明的有益效果在于:将iap的确认包和外围设备累加的传输信用数合并发送,减少空中交互次数,从而提高数据传输速度。

附图说明

图1为本发明提高ios设备蓝牙传输速度的方法的过程示意图。

具体实施方式

为了使本发明的上述特征和优点更加易懂,下面结合附图和具体实施方式对本发明做进一步详细说明。该详细说明仅仅是为了帮助理解本发明,本发明的保护范围不仅仅限于具体实施方式中的具体说明。

图1示出了本发明一种提高ios设备蓝牙传输速度的方法的具体实施方式,在该具体实施方式中,主要包括以下步骤:

步骤s101:ios设备和外围设备建立rfcomm连接,并交换传输信用数;

在本发明的一个具体实施例中,ios设备包括mac,iphone,ipad等。外围设备包括血压计、温度计、手环、蓝牙遥控器等。

ios设备和外围设备首先建立rfcomm连接,ios设备从外围设备获得传输信用数credit的初始值,在连接建立后,ios设备向外围设备传输rfcomm数据包,同时将自身的传输信用包的个数减一。

步骤s102:ios设备和外围设备建立iap协议通信,并交换协议参数;

在本发明的一个具体实施例中,协议参数主要包括:累计确认包最大个数、累计确认包超时时间、未兑现数据包最大个数和重传超时时间。

iap协议通信中数据的发送使用循环冗余码crc校验,保证数据传输的正确性。iap协议主要由文件传输开启,数据传输和文件传输结束三部分组成。iap协议具有快速,稳定传输的优点。

步骤s103:ios设备发送第一iap数据包,将第一iap数据包拆解为一个或多个rfcomm数据包,其中第一iap数据包为通讯数据根据iap协议生成的iap数据包;

在本发明的一个具体实施例中,ios设备将通讯数据编译成符合iap协议的iap数据包,其中iap数据包可以为一个或多个,多个iap数据包时将一个一个进行发送,使传输过程不间断。然后将iap数据包拆解为一个或多个rfcomm数据包进行传输。

步骤s104:外围设备将接收到的全部rfcomm数据包组合为符合iap协议的第二iap数据包,并将rfcomm数据包个数计算累加到外围设备上一次的传输信用数中(定义为to_give_credit);

步骤s105:外围设备根据rfcomm数据包接收情况或协议参数,判断是否向ios设备回复确认包;若接收的rfcomm数据包达到预设阈值或达到协议参数的数值,则回复确认包,此时外围设备将确认包和外围设备累加的传输信用数合并后发送给ios设备。

在本发明的一个具体实施例中,预设阈值是根据外围设备自身的接收能力而确定的,预设阈值可以为外围设备接收能力达到100%,也可以是外围设备达到自身接收能力的一部分。假设外围设备可以接收100个rfcomm数据包,则rfcomm数据包达到预设阈值=100时,外围设备将回复确认包,或者达到了协议参数的最大值,也就是达到累计确认包最大个数、累计确认包超时时间、未兑现数据包最大个数等,外围设备也将回复确认包。

在本发明的一个具体实施例中,外围设备回复确认包时,将确认包添加到rfcomm协议的负荷中,同时将外围设备累加的传输信用数添加到rfcomm协议字段中。外围设备对步骤s104中接收到的数据包进行确认,使得ios设备不会因为缺少传输信用数而停止发送数据。

下面以一个具体的实施例进一步说明本发明一种提高ios设备蓝牙传输速度的方法。

一个ios设备和一个外围设备传输数据的步骤:假定一个通讯数据包可以根据iap协议将其分解为2个iap数据包,每个iap数据包又拆分为2个rfcomm数据包,则外围设备收到4个rfcomm数据包后会回复确认包。

现有技术中rfcomm的credit和iap的ack会分开发送,ios设备与外围设备建立连接后,外围设备每收到两个数据则向ios设备发送credit,ios设备接收到新credit后,继续向外围设备发送数据,当4个rfcomm数据包接收完毕,外围设备需要回复确认包,同时也需要发送credit。

而在本发明的例子中,ios设备与外围设备建立连接后,外围设备每接收到1个rfcomm数据包会将其个数累加到外围设备的上一次credit中,当4个rfcomm数据包接收完毕后,外围设备需要回复credit,同时也需要回复确认包,此时外围设备会将确认包添加到rfcomm协议的负荷中,同时和将累加的credit个数添加到rfcomm协议的字段中,此时为确认包和累加的credit个数合并发送给ios设备,在这个过程中减少了空中交换,提高了数据传输速度。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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