引言
蓝牙技术(Bluetooth)使得移动通信设备和计算机设备,不必借助电缆就能实现数据传送, 它可以在短距离内取代电缆和双绞线连接方案。基于蓝牙技术的文件推送技术,使得设备间可以实现高速的大文件传输。但现有蓝牙设备之间进行文件传输需要较多的步骤,较为烦琐。
NFC(Near Field Communication,近距离无线通信)是一种新型的近距离无线通信技术。它工作于13.56MHz,最高速度可达424kbit/s,工作范围在10 厘米以内,与现有的RFID基础设施兼容,符合ISO/EC18902 和ECMA340 标准。NFC 将非接触读卡器、非接触卡和点对点功能整合在一起。可以满足两个设备间,简单又安全地进行信息交换、内容与服务访问。但NFC 技术的通信距离短,数据传输速度不高,而且现有的移动产品一般不具有NFC功能,不适合于较大文件的传输。
本文给出一种方法,结合蓝牙及 NFC 技术的优点,互补不足。使得不需要对现有移动设备进行改动,就能实现设备间的高速、安全、方便的文件传送。
1、蓝牙文件推送技术
1.1 OBEX 协议:
对象交换协议OBEX(Object Exchange)。是一种面向应用的会话层协议,它运行于蓝牙(Bluetooth)协议的顶部,支持文件传输(File Transfer),对象“推”操作(Object Push Profile)等多种应用,提供了设备间简单的对象交换手段,可交换的对象可以是文件、图像,也可以是应用支持的任何数据单位。本文介绍的文件推送方式,正是对“推”操作进行改进。对任意两台设备可组成主从关系,主动发起方为主设备(Client),被找到者是从设备(Server)。如图1 所示,是基于蓝牙的文件推送方法的协议层次关系。
图 1:蓝牙文件推送协议
说明:
OBEX:对象交换协议。
RFCOMM:电路替代协议。
L2CAP:逻辑链路控制及适配。
1.2 OBEX 对象模型:
OBEX 对象模型详细介绍了该协议是如何描述一个对象的。为了做到这点,OBEX 定义了Headers 的概念。一个Header 反映了对象的一个方面,例如名字、长度、描述文字或者对象本身。例如:一个文件对象test.txt 会包含它的名字,一个类型标示为“text”,长度和文件本身。Header 由和组成,简称为和。 HI 由一个字节组成,指出了Header 包含的内容以及它的格式。HV 包含了一个或者多个字节,其结构由HI 所决定。所有的 Header 都是可选的,取决于设备的类型和事务的种类。你可以使用所有的Header,或者一些,或者没有。ID 可以使Header 可解析以及与传输顺序无关,也可以使不支持的Header 被忽略掉。
OBEX 使用请求(Request)和回应(Response)作为最基本的操作。请求的每个Request 必然有一个Response,否则可认为Request 失败。
1.3 JSR‐82
JSR-82 是用于蓝牙无线技术的官方 Java API。使用这个 API 可创建以下功能的应用程序:判断和检测本地的蓝牙设备的属性;发现设备通信范围内的蓝牙设备;在远程蓝牙设备上搜索服务;创建可以与远程蓝牙服务器通信的蓝牙客户机。 JSR-82 包含两个包,
javax.bluetooth:提供Java 蓝牙通信的一些类和接口。
javax.obex:提供OBEX 协议中的一些Java 类和接口。
2、NFC 技术
2.1 NFC 概述
ECMA-340(NFCIP-1)是NFC 的物理层和数据链接层的规范标准。该标准定义了两种工作模式:主动模式和被动模式。主动模式下,通信发起方和目标方自行产生无线射频磁场进行通信。被动模式下,通信发起方提供无线射频磁场,目标设备选择发起设备的射频磁场,并做出回应。ECMA-352(NFCIP-2)规范标准详细说明了工作于13.56MHz 的无线通信设备的通信模式选择机制,使得可以不同标准的设备可以正确工作。ECMA-340, ECMA-352以及其它的通信标准的关系,如图2 所示:
图2 ECMA-340, ECMA-352 关系
NFC 的目标不是取代蓝牙、Wi-Fi 等现在无线技术,而是起着相互补充的作用。因为NFC 的数据传输速率较低,只可达424Kbps,比不上现在一些技术。由于NFC 单芯片解决方案是一个开放式的平台,它既可以进行快速的无线网络自组,同时又可作移动通信、蓝牙或无线802.11 等现有设备之虚拟连接。本文给出的方法,正是使用了NFC 技术的这些优点:
短距离通信:根据靠近作为通讯启动方式,可以保证通信的安全性防止被监听,保证通信的确定性。
与现有的 RFID 标准兼容:省电模式下的NFC 设备,相当于一张RFID 标签。
简化其它通信其它程序的连结步骤:蓝牙或者以太网的通讯协定都需要在众多的设备当中选择正确的设备。