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