引言
蓝牙技术(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 所示:
短距离通信:根据靠近作为通讯启动方式,可以保证通信的安全性防止被监听,保证通信的确定性。
与现有的 RFID 标准兼容:省电模式下的NFC 设备,相当于一张RFID 标签。
简化其它通信其它程序的连结步骤:蓝牙或者以太网的通讯协定都需要在众多的设备当中选择正确的设备。
2.2 NFC 对于OBEX 的改进
现有的蓝牙文件步骤:
(1)搜索蓝牙设备(人工操作)。
(2)选择设备(人工操作)。
(3)设备配对(人工操作)。
(4)OBEX 文件传输(自动操作)。
NFC 通信的操作步骤:
(1) NFC 设备靠近(人工操作)。
(2) NFC 数据通信(自动完成)。
基于 NFC 技术的文件推送方法的操作步骤:
(1) NFC 设备靠近(人工操作)。
(2) 交换蓝牙 OBEX 传输的参数(自动完成)。
(3) OBEX 文件传输(自动完成)。
从操作的步骤可知,基于NFC 技术的对象交换方法,借助NFC 技术的方便性,简化了蓝牙文件推送技术。
2.3 JSR ‐257 NFC
JSR-257 是Java 语言的非接触通信API 库。使用该API 库,配合相应的硬件,可以处理的功能有:NFC 通信,RFID 读写,智能卡读写,阅读条形码。例如:当标签靠近移动电话时,可以自动触发事件,运行相应的处理程序,进行数据读写。支持的标签类型,如表2所示:
表 1
Nokia 公司提供的6131i 移动电话,是目前少数支持NFC 技术的设备。该公司提供了Nokia 6131 NFC SDK 开发环境,方便开发者开发基于NFC 技术的J2ME 程序。该库支持标准的JSR-257 功能。还提供了一些扩展功能: NFC 点对点通信,读写Sony's FeliCa 卡。该包有五部份:
javax.microedition.contactless:该API 包提供为不同的目标提供公共接口。
javax.microedition.contactless.ndef:该 API 包提供处理NFC 目标的功能
javax.microedition.contactless.rf:该 API 包提供处理RFID 目标的功能。
javax.microedition.contactless.sc:该 API 包提供处理智能卡的功能。
javax.microedition.contactless.visual:该 API 包提供处理可见的条形码的功能。
3、应用实例
通过对 OBEX 和NFC 技术的分析,以及对这两种通信方式的整合,我们给出的方法的示意图,所图3 所示:
一台具有蓝牙以及 NFC 的手机(Nokia 6131i)
一台普通的支持蓝牙 OBEX 的手机(Nokia N70)
一张 Mifare 标签。
操作步骤:
(1)读出普通手机的蓝牙地址,并写到Mifare 标签中。并将标签贴在普通手机上。
(2)运行NFC 手机上的J2ME 程序,并选择要传送的文件。
(3):把普通手机,靠近NFC 手机,使之得到相应参数。
(4):文件自动传到普通手机中。
该方法,并不需要对现有的蓝牙手机进行硬件的改过,也不需要安装任何软件,只需要多加一张RFID,就可以使用基于NFC 技术的蓝牙文件推送方法。
4、结束语
本文给出一种改进的对象交换方法,并给出实用实例。该方法使得文件推送更加方便,安全。我们希望今后加强本方式,使得可以商业用途。NFC 作为一种新型的近距离无线通信技术与相关硬件相结合,还有很多新应用,值得深入的研究。
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 关系
短距离通信:根据靠近作为通讯启动方式,可以保证通信的安全性防止被监听,保证通信的确定性。
与现有的 RFID 标准兼容:省电模式下的NFC 设备,相当于一张RFID 标签。
简化其它通信其它程序的连结步骤:蓝牙或者以太网的通讯协定都需要在众多的设备当中选择正确的设备。
2.2 NFC 对于OBEX 的改进
现有的蓝牙文件步骤:
(1)搜索蓝牙设备(人工操作)。
(2)选择设备(人工操作)。
(3)设备配对(人工操作)。
(4)OBEX 文件传输(自动操作)。
NFC 通信的操作步骤:
(1) NFC 设备靠近(人工操作)。
(2) NFC 数据通信(自动完成)。
基于 NFC 技术的文件推送方法的操作步骤:
(1) NFC 设备靠近(人工操作)。
(2) 交换蓝牙 OBEX 传输的参数(自动完成)。
(3) OBEX 文件传输(自动完成)。
从操作的步骤可知,基于NFC 技术的对象交换方法,借助NFC 技术的方便性,简化了蓝牙文件推送技术。
2.3 JSR ‐257 NFC
JSR-257 是Java 语言的非接触通信API 库。使用该API 库,配合相应的硬件,可以处理的功能有:NFC 通信,RFID 读写,智能卡读写,阅读条形码。例如:当标签靠近移动电话时,可以自动触发事件,运行相应的处理程序,进行数据读写。支持的标签类型,如表2所示:
表 1
Nokia 公司提供的6131i 移动电话,是目前少数支持NFC 技术的设备。该公司提供了Nokia 6131 NFC SDK 开发环境,方便开发者开发基于NFC 技术的J2ME 程序。该库支持标准的JSR-257 功能。还提供了一些扩展功能: NFC 点对点通信,读写Sony's FeliCa 卡。该包有五部份:
javax.microedition.contactless:该API 包提供为不同的目标提供公共接口。
javax.microedition.contactless.ndef:该 API 包提供处理NFC 目标的功能
javax.microedition.contactless.rf:该 API 包提供处理RFID 目标的功能。
javax.microedition.contactless.sc:该 API 包提供处理智能卡的功能。
javax.microedition.contactless.visual:该 API 包提供处理可见的条形码的功能。
3、应用实例
通过对 OBEX 和NFC 技术的分析,以及对这两种通信方式的整合,我们给出的方法的示意图,所图3 所示:
图-3 基于NFC 的OBEX 示意图
一台具有蓝牙以及 NFC 的手机(Nokia 6131i)
一台普通的支持蓝牙 OBEX 的手机(Nokia N70)
一张 Mifare 标签。
操作步骤:
(1)读出普通手机的蓝牙地址,并写到Mifare 标签中。并将标签贴在普通手机上。
(2)运行NFC 手机上的J2ME 程序,并选择要传送的文件。
(3):把普通手机,靠近NFC 手机,使之得到相应参数。
(4):文件自动传到普通手机中。
该方法,并不需要对现有的蓝牙手机进行硬件的改过,也不需要安装任何软件,只需要多加一张RFID,就可以使用基于NFC 技术的蓝牙文件推送方法。
4、结束语
本文给出一种改进的对象交换方法,并给出实用实例。该方法使得文件推送更加方便,安全。我们希望今后加强本方式,使得可以商业用途。NFC 作为一种新型的近距离无线通信技术与相关硬件相结合,还有很多新应用,值得深入的研究。