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