Computer Science and Application
Vol. 09  No. 07 ( 2019 ), Article ID: 31218 , 9 pages
10.12677/CSA.2019.97137

A Method of Bluetooth Large File Transfer Based on BlueSolei + FTP

Shanshan Huang1, Wuqi Gao2, Kaiyi Zhang2

1School of Electronic Information Engineering, Xi’an Technological University, Xi’an Shaanxi

2School of Computer Science and Engineering, Xi’an Technological University, Xi’an Shaanxi

Received: Jun. 24th, 2019; accepted: Jul. 4th, 2019; published: Jul. 11th, 2019

ABSTRACT

At present, there is a serious instability problem in Bluetooth-based text information transmission for mobile phones and computers, especially in the large file transmission. In order to solve this problem, after the analysis of Bluetooth underlying protocol, by adopting BlueSoleil SDK, this paper proposed a file transfer method based on FTP, and designed a large file transmission mechanism based on Bluetooth to solve the problem of instability of large file transmission efficiency. The experimental results show that compared with the method by calling Obex protocol directly, the transmission speed of the proposed method based on BlueSoleil + FTP can increase by one time, reaching a speed of 141.51 k/s.

Keywords:Bluetooth, OBEX, FTP, Large Files

一种基于BlueSolei + FTP的蓝牙大文件传输 方法

黄闪闪1,高武奇2,张凯屹2

1西安工业大学电子信息工程学院,陕西 西安

2西安工业大学计算机科学与工程学院,陕西 西安

收稿日期:2019年6月24日;录用日期:2019年7月4日;发布日期:2019年7月11日

摘 要

目前,基于蓝牙的手机和计算机文本信息传输,尤其是大文件传输存在着严重的传输不稳定的问题。针对这一问题,本文在分析了蓝牙底层协议基础上,采用了BlueSoleil SDK,提出了一种基于FTP的文件传输方法,设计了蓝牙大文件重传机制,解决了蓝牙传输大文件效率不稳定问题。实验结果表明,相比于直接调用Obex协议,采用BlueSoleil + FTP这种方法传输速度提高了1倍,达到141.51 k/s。

关键词 :蓝牙,OBEX,FTP,大文件

Copyright © 2019 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

1. 引言

在全球通信网络技术快速发展的今天,平板电脑和智能手机等新型无线设备的出现已经逐渐取代了电脑、打印机、传真机和移动电话等设备传统的有线链接 [1] 。现在市场上已有的无线通信技术,比如像3G、4G、Bluetooth、HomeRF、UWB等无线通信链接技术,都有其各自的优势和应用定位 [2] 。爱立信公司在1998年提出了一种低成本、低功耗的无线链接技术——蓝牙(Bluetooth)技术。它也是短距离的无线通信技术,工作在2.4 GHz~2.485 GHz的ISM频段 [3] ,是基于数据包、有着f主从架构的协议,采用跳频技术,将要传输的数据分割成数据包,再进行传输,数据传输可以随时在主设备和其他设备之间进行。蓝牙技术也具有很强的可移植性,可以应用于很多通信场合 [4] 。比如像耳机、名片交换、无线拨号上网等。蓝牙可以构成固定设备和移动设备在通信信息传递中的资源共用 [5] 。它集成的电路也非常简单,容易实现,易于推广,方便应用于全球范围内的无线通信链接。

针对基于蓝牙的手机和计算机直接的通信,市场上产品很多,但大多是商家提供的基于硬件的产品 [6] ,比如车载电话、蓝牙耳机、蓝牙音箱等,用蓝牙实现手机和计算机文本信息和大文件的资料却很少。移动通信技术的发展越来越迅速,推动了信息时代的发展,在移动通讯技术中,蓝牙技术成为一项重要技术,蓝牙技术为移动技术的发展提供了广阔的前景,蓝牙技术在手机中的应用,能够实现手机在无线连接的方式下传输文件,实现了无线通信。

目前基于蓝牙的手机和计算机文本信息传输,尤其是大文件传输存在着严重的传输不稳定的问题,大文件传输主要采用直接调用Obex协议的方法,用这种方法传输大文件速率不高,效率也不稳定。论文致力于解决蓝牙传输大文件效率不稳定的问题,在分析复杂的蓝牙底层协议基础上,自行开发了相对应的通信程序。设计了蓝牙大文件重传机制,解决了蓝牙传输大文件效率不稳定问题。蓝牙的传输速率为1 Mb/s,传输大文件容易产生丢包现象,需要在传输过程中采取重传机制保证传输质量。

2. 蓝牙通信数据交换模块设计

OBEX为Object Exchange,用于在蓝牙设备间传数据对象,来源于红外定义的协议,后被蓝牙采用 [7] 。OBEX在蓝牙协议层中的位置如图1所示(在之前的OBEX版本中,OBEX是通过RFCOMM挂在L2CAP上的)。

2.1. 蓝牙Object Model

OBEX定义了Object model来进行数据的交换,形式为Request-Response。OBEX定义了Headers来描述数据,结构如下:

1byte

n byte

由HI和HV两部分组成。HI的最高两位表示这个Header的编码形式,低6位表示header的类型,HV表示数据实体。

高两位的编码如图2所示。

Figure 1. Position of OBEX in the bluetooth protocol layer

图1. OBEX在蓝牙协议层中的位置

Figure 2. Object model high two-bit encoding

图2. Object model高两位编码

0x00和0x40两种后面会跟上2字节的length(length prefixed),表示的是整个Header的长度,包括HI和HV [8] 。

低6位的定义类型如图3所示。

提一下End-Of-Body,用来表示数据传输的最后一个data chunk。

2.2. 蓝牙通信Request和Response

在OBEX的规定中,Client和Server通过request-response的形式来进行对话,交换的数据包含在这两种包中 [9] ,分别定义如下:

参数opcode表示该request的类型,length表示整个request的字节数,最后跟着的是第2节中定义的各种Headers

[10] 。

Figure 3. Definition of low 6 bits

图3. 低6位的定义

1) Opcode有如下几种形式,如图4所示。

Figure 4. Several forms of opcode

图4. Opcode的几种形式

2) Opcode的最高位称为Final bit,用来表示某一个request的最后一个packrt,这个在下面的例子中说明。

Response format

参数response code表示该response的类型,length表示整个request的字节数,最后跟着的是第2节中定义的各种Headers。

3) response code的最高位称为Final bit,用来表示可以继续传输数据 [11] ,这个在下面的例子中说明,其有如下几种,如图5所示。

Figure 5. Response code figure

图5. Response code图

3. 基于BlueSolei的蓝牙设备二次开发

利用OBEX协议自行开发的蓝牙传输系统传输速度为15 s/M,而采用BlueSolei的商业蓝牙产品,速度可以达到7 s/M。但这些设备需要手动操作完成文件传输等功能。因此,需要对商业蓝牙适配器进行二次开发,实现由程序控制文件等信息的处理。

论文采用基于BlueSolei的商业千月QY015蓝牙适配器4.0进行二次开发,实现文件传输原理是在手机端开启文件传输协议(Ftp)服务,计算机端访问Ftp服务。

3.1. 流程图设计

基于BlueSolei的蓝牙设备二次开发的流程图如图6所示。

Figure 6. Flowchart of two development of Bluetooth devices based on BlueSolei

图6. 基于BlueSolei的蓝牙设备二次开发的流程图

第一步,下载BlueSolei PC平台SDK,网址为: http://www.bluesoleil.com/products/S000120140708-0001.html

第二步,开发文件传输功能模块,产生独立可执行文件;

第三步,在手机端安装BlueToothFTP服务软件http://www.medieval.it/blueftp-pc/menu-id-70.html;

第四步,手机端开启ftp服务,pc端通过ftp功能完成文件的传输。

3.2. 文件传送与接收程序设计

@Override

//获取远程FTP服务器文件

public String pull(String localDoc, String androidDoc) { cu.runConsole(new String[]{BLEFTP 4 F +path+localDoc+ + androidDoc});

logger.info(pull BLEFTP 4 F +path+localDoc+ + androidDoc);

return cu.input;

}

//传送本地文件到远程FTP服务器

@Override

public String push(String localDoc, String androidDoc) {

cu.runConsole(new String[]{BLEFTP 5 F +path+localDoc+ + androidDoc});

logger.info(push BLEFTP 5 F +path+localDoc+ + androidDoc);

return cu.input;

}

4. 重传机制

手机端每次只能向计算机发20字节数据,如果要连续发送几百字节,如果不进行流量控制,就会丢包。根据规范,每次向SDK层写一包数据,SDK发送成功后,会有一个接口通知应用层。但在实际测试发现,某些手机采用这种方式控制流量,还是会丢包,只能在两包数据之间认为延迟50ms左右。在用蓝牙传输大文件,更容易产生丢包现象,为提高传输质量,设计了重传机制。

4.1. 重传机制流程图设计

重传机制流程图,如图7所示。

Figure 7. Flowchart of retransmission mechanism

图7. 重传机制流程图

第一步:传输

计算机通过蓝牙传输文件给手机,等待手机确认。

第二步:确认

计算机远程确认手机是否存在要传输的文件,如果存在,则告诉计算机传输结束,如果不存在,再进入重传过程。

第三步:重传

找到没有传输成功的文件,进入第一步。如果三次重传都没有成功,则提示传输失败。

4.2. 重传机制程序设计

int isok = 0; //定义isok为重传标志

int isdownloadAllTeskXMLok = 0;

//定义isdownloadAllTeskXMLok为文件存在标志

do{

isok++;

isdownloadAllTeskXMLok = xs.downloadAllTeskXML();

if(isdownloadAllTeskXMLok != 0 ){ //判断是否传输成功

isok=5;

}

Thread.sleep(1000);

}while(isok<=3);//三次重传

5. 性能测试

实测表明,用BlueSoleil + FTP这种方法比直接调用Obex协议传输速度提高了1倍,达到141.51 k/s。具体性能测试结果如表1所示:

Table 1. Performance test result

表1. 性能测试结果

表1性能测试结果可知,针对大文件的传输,采用直接调用Obex协议的方法传输时间较长,而采用BlueSoleil + FTP这种方法传输时间缩短了一半。实验结果表明,相比于直接调用Obex协议,采用BlueSoleil + FTP这种方法传输速度提高了1倍,达到141.51 k/s。

6. 结束语

Bluetooth是近年来发展迅速的无线通信技术,它具有低成本、低功耗、简单方便的特点。文章首先分析了蓝牙OBEX传输协议,针对大文件传输问题,提出了BlueSoleil + FTP的大文件传输方法,并且设计三次重传机制保证了传输的稳定性。企业实际应用表明该方法性能优良,解决了蓝牙大文件传输问题。

基金项目

陕西省科技厅资助项目(编号:2017GY-070),陕西省教育厅资助项目(编号:17JK0377)西安市科技局资助项目(编号:2017075CG)。

文章引用

黄闪闪,高武奇,张凯屹. 一种基于BlueSolei + FTP的蓝牙大文件传输方法
A Method of Bluetooth Large File Transfer Based on BlueSolei + FTP[J]. 计算机科学与应用, 2019, 09(07): 1223-1231. https://doi.org/10.12677/CSA.2019.97137

参考文献

  1. 1. 郝浩. FTP原理解析[J]. 计算机与网络, 2016, 42(14): 40-41.

  2. 2. 王庆胜. 蓝牙无线通信技术在工程中的应用与实现[J]. 电子世界, 2019(2): 191-193.

  3. 3. 马建辉, 吕梦兴, 王知学, 刘媛. OBEX在蓝牙开发中的应用[J]. 通信技术, 2010, 43(1): 162-163.

  4. 4. 张琪琪. 探究蓝牙技术的原理及应用[J]. 中国新通信, 2018, 20(23): 98-99.

  5. 5. 迟有鹏. 蓝牙技术在智能传感器中应用研究[J]. 电子世界, 2019(8): 192-193.

  6. 6. 王欣. Android平台NFC技术的研究及其实现[J]. 自动化与仪器仪表, 2016(2): 39-40.

  7. 7. 陈欣仲. 计算机信息传输安全及防护技术探讨[J]. 信息与电脑(理论版), 2016(18): 205-206.

  8. 8. 官腾飞. 蓝牙协议及其应用的研究与实现[D]: [硕士学位论文]. 北京: 北京交通大学, 2007.

  9. 9. 刘廷龙. OBEX协议的研究及在Android蓝牙系统上的实现[J]. 计算机应用与软件, 2013, 30(2): 317-319+323.

  10. 10. 蒋纲, 周敬利, 余胜生, 马彦明, 查辉. 基于Bluetooth OBEX协议的文件传输技术的研究[J]. 小型微型计算机系统, 2003, 24(4): 687-690.

  11. 11. 潘卫东. 基于Bluetooth OBEX协议的文件传输应用的研究[J]. 广东自动化与信息工程, 2003, 24(3): 31-33+45.

期刊菜单