Computer Science and Application 计算机科学与应用, 2019, 9(7), 1223-1231
Published Online July 2019 in Hans. /journal/csa
/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 pa-per proposed a file transfer method based on FTP, and designed a large file transmission mechan-ism 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
方法
黄闪闪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).
/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来描述数据,结构如下:
黄闪闪等<HI, the header ID> 1byte
<HV, the header value> 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,网址为:
www.bluesoleil/products/S000120140708-0001.html
第二步,开发文件传输功能模块,产生独立可执行文件;
第三步,在手机端安装BlueToothFTP服务软件dieval.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;
}
发布评论