引言
藍牙技術(Bluetooth)使得移動通信設備和計算機設備,,不必借助電纜就能實現(xiàn)數(shù)據(jù)傳送, 它可以在短距離內(nèi)取代電纜和雙絞線連接方案,?;谒{牙技術的文件推送技術,使得設備間可以實現(xiàn)高速的大文件傳輸,。但現(xiàn)有藍牙設備之間進行文件傳輸需要較多的步驟,,較為煩瑣,。
NFC(Near Field Communication,近距離無線通信)是一種新型的近距離無線通信技術,。它工作于13.56MHz,,最高速度可達424kbit/s,工作范圍在10 厘米以內(nèi),,與現(xiàn)有的RFID基礎設施兼容,,符合ISO/EC18902 和ECMA340 標準。NFC 將非接觸讀卡器,、非接觸卡和點對點功能整合在一起,。可以滿足兩個設備間,,簡單又安全地進行信息交換,、內(nèi)容與服務訪問。但NFC 技術的通信距離短,,數(shù)據(jù)傳輸速度不高,,而且現(xiàn)有的移動產(chǎn)品一般不具有NFC功能,不適合于較大文件的傳輸,。
本文給出一種方法,,結合藍牙及 NFC 技術的優(yōu)點,互補不足,。使得不需要對現(xiàn)有移動設備進行改動,就能實現(xiàn)設備間的高速,、安全,、方便的文件傳送。
1,、藍牙文件推送技術
1.1 OBEX 協(xié)議:
對象交換協(xié)議OBEX(Object Exchange),。是一種面向應用的會話層協(xié)議,它運行于藍牙(Bluetooth)協(xié)議的頂部,,支持文件傳輸(File Transfer),,對象“推”操作(Object Push Profile)等多種應用,提供了設備間簡單的對象交換手段,,可交換的對象可以是文件,、圖像,也可以是應用支持的任何數(shù)據(jù)單位,。本文介紹的文件推送方式,,正是對“推”操作進行改進。對任意兩臺設備可組成主從關系,,主動發(fā)起方為主設備(Client),,被找到者是從設備(Server),。如圖1 所示,是基于藍牙的文件推送方法的協(xié)議層次關系,。
圖 1:藍牙文件推送協(xié)議
OBEX:對象交換協(xié)議,。
RFCOMM:電路替代協(xié)議。
L2CAP:邏輯鏈路控制及適配,。
1.2 OBEX 對象模型:
OBEX 對象模型詳細介紹了該協(xié)議是如何描述一個對象的,。為了做到這點,OBEX 定義了Headers 的概念,。一個Header 反映了對象的一個方面,,例如名字、長度,、描述文字或者對象本身,。例如:一個文件對象test.txt 會包含它的名字,一個類型標示為“text”,,長度和文件本身,。Header 由
和,。 HI 由一個字節(jié)組成,,指出了Header 包含的內(nèi)容以及它的格式。HV 包含了一個或者多個字節(jié),,其結構由HI 所決定,。所有的 Header 都是可選的,取決于設備的類型和事務的種類,。你可以使用所有的Header,,或者一些,或者沒有,。ID 可以使Header 可解析以及與傳輸順序無關,,也可以使不支持的Header 被忽略掉。
OBEX 使用請求(Request)和回應(Response)作為最基本的操作,。請求的每個Request 必然有一個Response,,否則可認為Request 失敗。
1.3 JSR‐82
JSR-82 是用于藍牙無線技術的官方 Java API,。使用這個 API 可創(chuàng)建以下功能的應用程序:判斷和檢測本地的藍牙設備的屬性,;發(fā)現(xiàn)設備通信范圍內(nèi)的藍牙設備;在遠程藍牙設備上搜索服務,;創(chuàng)建可以與遠程藍牙服務器通信的藍牙客戶機,。 JSR-82 包含兩個包,
javax.bluetooth:提供Java 藍牙通信的一些類和接口,。
javax.obex:提供OBEX 協(xié)議中的一些Java 類和接口,。
2,、NFC 技術
2.1 NFC 概述
ECMA-340(NFCIP-1)是NFC 的物理層和數(shù)據(jù)鏈接層的規(guī)范標準。該標準定義了兩種工作模式:主動模式和被動模式,。主動模式下,通信發(fā)起方和目標方自行產(chǎn)生無線射頻磁場進行通信,。被動模式下,通信發(fā)起方提供無線射頻磁場,,目標設備選擇發(fā)起設備的射頻磁場,,并做出回應。ECMA-352(NFCIP-2)規(guī)范標準詳細說明了工作于13.56MHz 的無線通信設備的通信模式選擇機制,,使得可以不同標準的設備可以正確工作,。ECMA-340, ECMA-352以及其它的通信標準的關系,如圖2 所示:
短距離通信:根據(jù)靠近作為通訊啟動方式,可以保證通信的安全性防止被監(jiān)聽,,保證通信的確定性,。
與現(xiàn)有的 RFID 標準兼容:省電模式下的NFC 設備,相當于一張RFID 標簽,。
簡化其它通信其它程序的連結步驟:藍牙或者以太網(wǎng)的通訊協(xié)定都需要在眾多的設備當中選擇正確的設備。
2.2 NFC 對于OBEX 的改進
現(xiàn)有的藍牙文件步驟:
(1)搜索藍牙設備(人工操作),。
(2)選擇設備(人工操作),。
(3)設備配對(人工操作)。
(4)OBEX 文件傳輸(自動操作),。
NFC 通信的操作步驟:
(1) NFC 設備靠近(人工操作),。
(2) NFC 數(shù)據(jù)通信(自動完成)。
基于 NFC 技術的文件推送方法的操作步驟:
(1) NFC 設備靠近(人工操作),。
(2) 交換藍牙 OBEX 傳輸?shù)膮?shù)(自動完成),。
(3) OBEX 文件傳輸(自動完成)。
從操作的步驟可知,,基于NFC 技術的對象交換方法,,借助NFC 技術的方便性,,簡化了藍牙文件推送技術。
2.3 JSR ‐257 NFC
JSR-257 是Java 語言的非接觸通信API 庫,。使用該API 庫,,配合相應的硬件,可以處理的功能有:NFC 通信,,RFID 讀寫,,智能卡讀寫,閱讀條形碼,。例如:當標簽靠近移動電話時,,可以自動觸發(fā)事件,運行相應的處理程序,,進行數(shù)據(jù)讀寫,。支持的標簽類型,如表2所示:
表 1
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 手機,使之得到相應參數(shù),。
(4):文件自動傳到普通手機中。
該方法,并不需要對現(xiàn)有的藍牙手機進行硬件的改過,,也不需要安裝任何軟件,,只需要多加一張RFID,就可以使用基于NFC 技術的藍牙文件推送方法,。
4,、結束語
本文給出一種改進的對象交換方法,并給出實用實例,。該方法使得文件推送更加方便,,安全。我們希望今后加強本方式,,使得可以商業(yè)用途,。NFC 作為一種新型的近距離無線通信技術與相關硬件相結合,還有很多新應用,,值得深入的研究,。
OBEX 使用請求(Request)和回應(Response)作為最基本的操作,。請求的每個Request 必然有一個Response,,否則可認為Request 失敗。
1.3 JSR‐82
JSR-82 是用于藍牙無線技術的官方 Java API,。使用這個 API 可創(chuàng)建以下功能的應用程序:判斷和檢測本地的藍牙設備的屬性,;發(fā)現(xiàn)設備通信范圍內(nèi)的藍牙設備;在遠程藍牙設備上搜索服務,;創(chuàng)建可以與遠程藍牙服務器通信的藍牙客戶機,。 JSR-82 包含兩個包,
javax.bluetooth:提供Java 藍牙通信的一些類和接口,。
javax.obex:提供OBEX 協(xié)議中的一些Java 類和接口,。
2,、NFC 技術
2.1 NFC 概述
ECMA-340(NFCIP-1)是NFC 的物理層和數(shù)據(jù)鏈接層的規(guī)范標準。該標準定義了兩種工作模式:主動模式和被動模式,。主動模式下,通信發(fā)起方和目標方自行產(chǎn)生無線射頻磁場進行通信,。被動模式下,通信發(fā)起方提供無線射頻磁場,,目標設備選擇發(fā)起設備的射頻磁場,,并做出回應。ECMA-352(NFCIP-2)規(guī)范標準詳細說明了工作于13.56MHz 的無線通信設備的通信模式選擇機制,,使得可以不同標準的設備可以正確工作,。ECMA-340, ECMA-352以及其它的通信標準的關系,如圖2 所示:
圖2 ECMA-340, ECMA-352 關系
短距離通信:根據(jù)靠近作為通訊啟動方式,可以保證通信的安全性防止被監(jiān)聽,,保證通信的確定性,。
與現(xiàn)有的 RFID 標準兼容:省電模式下的NFC 設備,相當于一張RFID 標簽,。
簡化其它通信其它程序的連結步驟:藍牙或者以太網(wǎng)的通訊協(xié)定都需要在眾多的設備當中選擇正確的設備。
2.2 NFC 對于OBEX 的改進
現(xiàn)有的藍牙文件步驟:
(1)搜索藍牙設備(人工操作),。
(2)選擇設備(人工操作),。
(3)設備配對(人工操作)。
(4)OBEX 文件傳輸(自動操作),。
NFC 通信的操作步驟:
(1) NFC 設備靠近(人工操作),。
(2) NFC 數(shù)據(jù)通信(自動完成)。
基于 NFC 技術的文件推送方法的操作步驟:
(1) NFC 設備靠近(人工操作),。
(2) 交換藍牙 OBEX 傳輸?shù)膮?shù)(自動完成),。
(3) OBEX 文件傳輸(自動完成)。
從操作的步驟可知,,基于NFC 技術的對象交換方法,,借助NFC 技術的方便性,,簡化了藍牙文件推送技術。
2.3 JSR ‐257 NFC
JSR-257 是Java 語言的非接觸通信API 庫,。使用該API 庫,,配合相應的硬件,可以處理的功能有:NFC 通信,,RFID 讀寫,,智能卡讀寫,閱讀條形碼,。例如:當標簽靠近移動電話時,,可以自動觸發(fā)事件,運行相應的處理程序,,進行數(shù)據(jù)讀寫,。支持的標簽類型,如表2所示:
表 1
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 手機,使之得到相應參數(shù),。
(4):文件自動傳到普通手機中。
該方法,并不需要對現(xiàn)有的藍牙手機進行硬件的改過,,也不需要安裝任何軟件,,只需要多加一張RFID,就可以使用基于NFC 技術的藍牙文件推送方法,。
4,、結束語
本文給出一種改進的對象交換方法,并給出實用實例,。該方法使得文件推送更加方便,,安全。我們希望今后加強本方式,,使得可以商業(yè)用途,。NFC 作為一種新型的近距離無線通信技術與相關硬件相結合,還有很多新應用,,值得深入的研究,。