基于RFID訪問數(shù)據(jù)中間件的設(shè)計
RFID 是射頻識別技術(shù)的英文(Radio Frequency Identification ,RFID)的縮寫[ 1 ] ,又稱電子標(biāo)簽,射頻識別技術(shù)是20 世紀(jì)90 年代開始興起的一種自動識別技術(shù),射頻識別技術(shù)是一項利用射頻信號通過空間耦合(交變磁場或電磁場)實現(xiàn)無接觸信息傳遞并通過所傳遞的信息達到識別目的的技術(shù). RFID 射頻識別是一種非接觸式的自動識別技術(shù),它通過射頻信號自動識別目標(biāo)對象并獲取相關(guān)數(shù)據(jù),識別工作無須人工干預(yù),可工作于各種惡劣環(huán)境.RFID技術(shù)可識別高速運動物體并可同時識別多個標(biāo)簽,操作快捷方便[ 2 ] .
中間件是一種獨立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源.中間件位于客戶機/ 服務(wù)器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡(luò)通訊.是連接兩個獨立應(yīng)用程序或獨立系統(tǒng)的軟件.相連接的系統(tǒng),即使它們具有不同的接口,但通過中間件相互之間仍能交換信息.執(zhí)行中間件的一個關(guān)鍵途徑是信息傳遞.通過中間件,應(yīng)用程序可以工作于多平臺或OS 環(huán)境.簡單的說,中間件是位于平臺(硬件和操作系統(tǒng))和應(yīng)用之間的通用服務(wù),這些服務(wù)具有標(biāo)準(zhǔn)的程序接口和協(xié)議.針對不同的操作系統(tǒng)和硬件平臺,它們可以有符合接口和協(xié)議規(guī)范的多種實現(xiàn)[ 3 ] .
RFID是2005 年建議企業(yè)可考慮引入的10 大策略技術(shù)之一,而中間件(Middleware) 可稱為是RFID運作的中樞,因為它可以加速關(guān)鍵應(yīng)用的問世,這樣關(guān)鍵的應(yīng)用軟件(Killer Application)才能迅速推廣.本文結(jié)合‘基于RFID汽車防盜系統(tǒng)的設(shè)計與實現(xiàn)’課題,利用RFID 技術(shù)來解決汽車盜搶問題.主要是設(shè)計1 個通過上層傳達的格式信息對接收到的RFID進行解析和傳遞的中間件.
1 基于RFID 訪問數(shù)據(jù)的中間件的功能和設(shè)計
中間件是1 種可復(fù)用軟件,工作在系統(tǒng)層面和應(yīng)用層面之間,為上層的應(yīng)用程序提供統(tǒng)一的服務(wù)接口,為下層不同的硬件或軟件提供不同數(shù)據(jù)接口,從而兼容了不同的硬件和軟件,對上層屏蔽了這些差別,以便于上層進行簡單方便的應(yīng)用.可以看出,中間件是解決上述問題的最好形式.本文中設(shè)計的中間件,即是兼容了所有RFID tag 的獲取途徑,對上層屏蔽了這些不同器件的差別.同時接受上層的定制,獲得具體的RFID tag 的格式信息,包括長度,某幾位對應(yīng)的數(shù)據(jù)類型等.根據(jù)具體的定制,中間件將RFID tag 解析成一組不同數(shù)據(jù)類型的數(shù)據(jù).最后,根據(jù)需求的不同,將這組數(shù)據(jù)按不同的方式返回上層(圖1) .
圖1 基于RFID訪問數(shù)據(jù)的中間件的功能
圖1 中可以看到,獲取RFID tag 的不同途徑包括幾類.第一是不同類型的RFID讀取器,它們直接從一個RFIDLable 上讀取其tag .一般來說,在不同的應(yīng)用中,才會用到不同類型的RFID 讀取器.第二是GPRS 網(wǎng)絡(luò),或者internet 網(wǎng)絡(luò),或其他無線或有線網(wǎng)絡(luò).大部分RFID讀取器是分散的,可能無法通過有線網(wǎng)絡(luò)互連,大部分時候采用GPRS 網(wǎng)絡(luò)互相通信.網(wǎng)絡(luò)傳遞中,RFID 信息的傳遞還是以解析的RFID tag 的形式傳遞更為方便,效率高,糾錯也容易.第三種獲取途徑,包括一些其他不常用的途徑,如上層直接傳遞1 個RFID tag 要求解析等等。
中間件本身的功能是接受上層軟件的定制信息,然后將RFID tag 分解成1 組數(shù)據(jù).定制信息的內(nèi)容,包括RFID tag 的長度,其中包含字段的數(shù)目和每個字段的長度,以及每個字段應(yīng)該轉(zhuǎn)換成何種數(shù)據(jù)類型.這種可以接受定制的特性,是中間件可以復(fù)用的本質(zhì),保證了在不同的應(yīng)用當(dāng)中都可以憑借幾個簡單參數(shù)額傳遞得到需求的功能.
上層對于RFID tag 解析后的數(shù)據(jù)可能有不同的應(yīng)用,例如顯示,處理,儲存等等.這些不同的應(yīng)用,可以簡單的分為2 類.一是直接使用,例如顯示,處理,這些需求中,對于解析后的數(shù)據(jù)進行直接的操作即可.二是儲存,最常見的是寫入數(shù)據(jù)庫.總的來說,本文中設(shè)計的中間件需要有以下3個功能:
(1)兼容各種RFID tag 的獲取途徑;
(2)接受定制,解析RFID tag ;
(3)根據(jù)不同的需求對解析后的數(shù)據(jù)進行返回
2 基于RFID 技術(shù)的訪問數(shù)據(jù)的中間件的算法及其實現(xiàn)[ 4]
2 .1 RFID 的獲取
RFID tag 是一個2 進制序列.為了儲存這個2 進制序列,需要一個具體的數(shù)據(jù)類型.本文中,使用了一個unsigned long 數(shù)組來進行儲存.這個數(shù)組是不定長,動態(tài)生成的,用一個unsigned long * 指示其啟示地址,用一個int 型變量指示其長度.不同CPU 的字長不同,所以一個unsignedlong 的位數(shù)也不同.本文中,軟件取sizeof(unsigned long) * 8 來自動處理不同字長的問題.本機的CPU 是32 位字長,在XP 環(huán)境下,sizeof(unsignedlong) * 8 = 32 .
對一個n 位的RFID tag ,n 除以sizeof ( unsigned long) * 8 向上取整就得到了unsigned long 數(shù)組的長度.RFID tag 順次的放在這個數(shù)組中,如果數(shù)組最后一個unsigned long 有多出的位用0 填補.
有兩種形式來獲取RFID tag .
一是由上層傳遞.上層直接傳遞一個unsigned long * ,由此給出了RFID.這個功能也許并不常用到,大部分時間還是由下層獲取RFID tag[ 5 ] .另外就是由RFID 讀取器獲取RFID tag ,上層只告知讀取器的類型(實現(xiàn)約定好編號) .由中間件根據(jù)讀取器的類型,調(diào)用相應(yīng)的API 來獲取RFIDtag ,再轉(zhuǎn)化成統(tǒng)一的格式[ 6 ] .具體來說可以由以下如下形式的函數(shù)獲取RFID tag :
bool getid (int n ,//RFID tag 的位數(shù)
int t ,//RFID讀取器的類型
unsigned long data[]//返回地址)
具體上,針對不同類型的讀取器,也就是不同的參數(shù)t ,要分別編寫程序分支.
2 .2 RFID 的解析算法流程圖
把一個RFID tag 解析成要求的格式的流程如圖2 .
圖2 RFID 解析算法流程圖
3 中間件的應(yīng)用:基于RFID 技術(shù)的汽車監(jiān)控系統(tǒng)
汽車盜搶和監(jiān)控目前已經(jīng)成為社會關(guān)注的1 個重要議題,利用RFID 技術(shù)來解決汽車盜搶問題是當(dāng)前監(jiān)控系統(tǒng)研究的一個熱點.實際上防范汽車的盜搶,就是汽車的監(jiān)控問題,也就是能在各個地方,方便,自動化的追蹤到過往的汽車信息的問題.利用RFID技術(shù),這一設(shè)想并不難實現(xiàn).
傳統(tǒng)上,汽車的監(jiān)管是使用的車牌號系統(tǒng).實際上車牌號并不是汽車的惟一性標(biāo)識,套牌車并不少見,偽造車牌也很容易,發(fā)動機號碼才是一輛汽車的惟一標(biāo)識,但是很明顯發(fā)動機號碼不容易監(jiān)控.經(jīng)常能見到的在使用的汽車監(jiān)控系統(tǒng)有兩種.一是經(jīng)常可以看到警察使用的,基于數(shù)據(jù)庫和無線網(wǎng)絡(luò)的,通常是一個筆記本電腦通過無線上網(wǎng),使用車牌號在遠程服務(wù)器中查詢汽車的車主,外觀,交通記錄等等.這種監(jiān)管系統(tǒng)不但無法實現(xiàn)自動化,而且處理速度緩慢,需要人工操作,如果用于追蹤犯罪車輛幾乎是無法實現(xiàn),或者反映不夠快的.第二種是公路收費站的管理系統(tǒng),最早使用的是傳統(tǒng)的紙制票據(jù)業(yè)務(wù)進行的管理:入口處拿票,出口處付款;現(xiàn)在大部分公路使用了IC 卡或者射頻卡(這應(yīng)用了RFID 技術(shù),但是并沒有把ID 和汽車綁定在一起) ,通過數(shù)據(jù)庫管理,實際上這管理的不是車而是經(jīng)過收費站的每張卡.
把這兩種方式結(jié)合起來,也就是,給每個汽車1個RFID用于識別,由此可以構(gòu)成整個汽車監(jiān)控系統(tǒng).每輛汽車擁有1 個RFID,類似1 個射頻卡,其中的ID 是汽車的惟一標(biāo)識,包含簡要的車輛信息.各個需要監(jiān)控和管理的地方,安裝RFID 讀卡器,通過有線或者無線的方式連接數(shù)據(jù)庫和遠程控制系統(tǒng),同時可以執(zhí)行簡要的控制功能.這種監(jiān)控措施可以存在于各個地方:收費站,路口的紅綠燈,停車場,社區(qū)出入口,或者是手持的移動終端,可以在任何位置檢測過往車輛的信息.
毋庸置疑,這種系統(tǒng)的效率更高,幾乎實現(xiàn)了完全自動化.RFID技術(shù)的特性保證了它的可靠性,大功率的RFID讀取器,可以在幾米到幾十米的范圍內(nèi)1 次讀取數(shù)10 個RFID.在安全性上,偽造RFID比偽造車牌需要更高技術(shù),而且如果需要的話,RFID可以有1 個加密部分用來進行驗證.
4 結(jié)束語
本設(shè)計的應(yīng)用是以‘基于RFID 技術(shù)的汽車監(jiān)控系統(tǒng)’為背景的.整個系統(tǒng)利用RFID 技術(shù),給每個車輛配發(fā)一個RFID Lable ,通過在各個位置的路邊機具和手持終端的RFID 讀取器,可以隨時讀取過往車輛的信息,以此達到在任意位置對車輛進行監(jiān)控的目的.同時通過GPRS 網(wǎng)絡(luò),各個路邊機具和手持終端都可以將讀取到的RFID 信息發(fā)送給遠程的數(shù)據(jù)庫和控制系統(tǒng)做進一步處理,并且可以接收遠程控制系統(tǒng)的命令做出一定的監(jiān)控行為,整個系統(tǒng)實現(xiàn)了在一定程度上的自動化監(jiān)控.
參考文獻:
[ 1] COMWARE 株式會社.RFID 的現(xiàn)狀和發(fā)展趨勢[M] .北京:人民郵電出版社,2 00 7 .
[ 2] (德)Klaus Finkenzelle .射頻識別技術(shù).第3 版.[M] .北京:電子工業(yè)出版社,2 00 6 .
[3 ] 張云勇.中間件技術(shù)原理與應(yīng)用/高等學(xué)校教材[M] .北京:清華大學(xué)出版社,2 00 6 .
[ 4] 姜波.Windows CE .Net 程序設(shè)計[M] .北京:機械工業(yè)出版社,2 00 7 .
[ 5] 同濟大學(xué).Windows CE 嵌入式系統(tǒng)[M] .北京:北京航空航天大學(xué)出版社,20 06 .
[ 6] Richard Barnett ,Larry O’Cull and Sarah Cox . 嵌入式C編程與Atmel AVR[M] .周俊杰譯.北京:清華大學(xué)出版社,200 3 .
?。喝缧柁D(zhuǎn)載,必須注明來源和作者,保留文中圖片和內(nèi)容的完整性,違者將依法追究。