1 引言
在RFID技術(shù)迅速發(fā)展并得到越來(lái)越廣泛的應(yīng)該的同時(shí),也伴隨著出現(xiàn)了兩個(gè)問(wèn)題:第一,在一個(gè)如此大的市場(chǎng)里,存在著眾多協(xié)議,還存在著各種使用和操作不同的形形色色的閱讀器,這嚴(yán)重阻礙了RFID技術(shù)的大規(guī)模應(yīng)用;第二,如何整合、過(guò)濾和傳輸這些數(shù)據(jù)使企業(yè)不會(huì)被大量的數(shù)據(jù)淹沒(méi)而得不到RFID技術(shù)帶來(lái)的好處是另一個(gè)急待解決的重要問(wèn)題。
在這種情況下,RFID中間件運(yùn)因而生,并得到了快速的發(fā)展,RFID中間件可以屏蔽各種不同規(guī)格型號(hào)的閱讀器和各種不同協(xié)議標(biāo)準(zhǔn)的標(biāo)簽,讓上層應(yīng)用軟件得到統(tǒng)一、不變的接口;另外,它還負(fù)責(zé)整合和過(guò)濾數(shù)據(jù),產(chǎn)生報(bào)表,使海量數(shù)據(jù)的傳輸和應(yīng)用成為可能。
目前,國(guó)內(nèi)外的RFID中間件體積大,所設(shè)計(jì)只適用于PC機(jī),不能直接移植到嵌入式閱讀器中,本文實(shí)現(xiàn)了一種可移植,可直接運(yùn)行于嵌入式閱讀器設(shè)備上,基于ALE標(biāo)準(zhǔn)的嵌入式RFID中間件。
2 EPCglobal ALE標(biāo)準(zhǔn)
EPC是 Electronic Product Code (產(chǎn)品電子代碼)的縮寫(xiě),是美國(guó)麻省理工學(xué)院的自動(dòng)識(shí)別中心(Auto-ID 中心)提出的,其主要思想是為每一個(gè)參加物聯(lián)網(wǎng)的產(chǎn)品分配一個(gè)電子標(biāo)簽,該標(biāo)簽存儲(chǔ)了一個(gè)世界唯一的EPC碼,當(dāng)產(chǎn)品通過(guò)閱讀器時(shí),由RFID技術(shù)來(lái)讀取數(shù)據(jù),得到對(duì)應(yīng)的EPC碼,最后通過(guò)與互聯(lián)網(wǎng)相連的服務(wù)器來(lái)完成相應(yīng)的EPC碼的解析。
EPC系統(tǒng)主要由EPC編碼, EPC 標(biāo)簽,EPC 讀寫(xiě)器, EPC 中間件, PML (物理標(biāo)記語(yǔ)言) 服務(wù)器,ONS (對(duì)象名解析服務(wù)) 服務(wù)器等組成。系統(tǒng)協(xié)議主要由RFID通信協(xié)議,應(yīng)用事件管理(ALE)協(xié)議等組成。
EPC ALE 協(xié)議是EPC 中間件與閱讀器模塊和客戶應(yīng)用程序之間的接口協(xié)議。 該協(xié)議定義了客戶可以如何過(guò)慮和整合來(lái)自多個(gè)閱讀器的EPC標(biāo)簽,并面向不同的企業(yè)應(yīng)用程序和閱讀器定義了統(tǒng)一的接口,這樣即使后端應(yīng)用程序增加或改由其他軟件取代,或者RFID讀寫(xiě)器的種類有所改變、增加等情況發(fā)生時(shí),其它部件不需要做修改。ALE所包含的處理過(guò)程有: 接收來(lái)自一個(gè)或多個(gè)數(shù)據(jù)源的EPC 標(biāo)簽碼; 根據(jù)客戶端(企業(yè)應(yīng)用程序)要求以一定的時(shí)間間隔整合數(shù)據(jù), 過(guò)濾重復(fù)和不感興趣的EPC 碼;根據(jù)客戶端要求以不同的形式打包發(fā)送報(bào)告。ALE協(xié)議是基于事件的,工作方式可為同步模式或異步模式,對(duì)實(shí)時(shí)性有較高的要求,而對(duì)接收到的EPC數(shù)據(jù)的存儲(chǔ)時(shí)間不要求很長(zhǎng),當(dāng)收到的EPC數(shù)據(jù)已經(jīng)被相關(guān)所有事件處理且發(fā)送后,該數(shù)據(jù)將可以被刪除。發(fā)送數(shù)據(jù)包的文件格式是XML格式,所有要發(fā)送給客戶或者其他閱讀器的數(shù)據(jù)封裝成為XML文件,客戶端將收到的數(shù)據(jù)文件后根據(jù)對(duì)應(yīng)規(guī)定的XML格式解析出相應(yīng)的數(shù)據(jù)信息。ALE在EPCglobal中的位置如圖1,位于原始EPC檢測(cè)事件層(RFID標(biāo)簽閱讀層)和應(yīng)用商業(yè)邏輯層之間。
3 基于EPCglobal ALE標(biāo)準(zhǔn)的嵌入式RFID中間件實(shí)現(xiàn)方案
3.1 本文設(shè)計(jì)的RFID中間件主要實(shí)現(xiàn)特點(diǎn)
該中間件構(gòu)架于嵌入式系統(tǒng)中,它有別于運(yùn)行在一般計(jì)算機(jī)上的中間件,在嵌入式系統(tǒng)上實(shí)現(xiàn)RFID中間件功能,使中間件可以集成在閱讀器上。這樣一方面增強(qiáng)了閱讀器的性能,使傳統(tǒng)“啞”閱讀器成為名副其實(shí)的“聰明”閱讀器,另一方面,使RFID中間件和閱讀器形成一個(gè)整體,體現(xiàn)了“All in a box”思想,這樣既方便了RFID系統(tǒng)的安裝,又降低了成本。該中間件同時(shí)支持EPCglobal ALE標(biāo)準(zhǔn),該標(biāo)準(zhǔn)應(yīng)用廣泛,可以應(yīng)用于不同規(guī)格型號(hào)的閱讀器,支持多種標(biāo)簽標(biāo)準(zhǔn),為上層應(yīng)用提供統(tǒng)一不變的標(biāo)準(zhǔn)接口,具有很強(qiáng)的通用性和兼容性。該中間件還具有網(wǎng)絡(luò)功能,具有普通的web服務(wù)器和數(shù)據(jù)庫(kù)功能,這實(shí)現(xiàn)了閱讀器與閱讀器,閱讀器與客戶端的網(wǎng)絡(luò)通信和數(shù)據(jù)緩沖,且網(wǎng)絡(luò)之間的數(shù)據(jù)都是封裝成為標(biāo)準(zhǔn)的XML格式傳輸。
3.2 嵌入式RFID閱讀器硬件系統(tǒng)平臺(tái)
該嵌入式RFID閱讀器有三個(gè)基本的硬件模塊:天線和射頻模塊,DSP基帶板模塊,主控系統(tǒng)模塊。天線和射頻模塊負(fù)責(zé)射頻信號(hào)的發(fā)射和接收,DSP基帶模塊負(fù)責(zé)對(duì)射頻模塊接收到的信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),進(jìn)行CRC校驗(yàn),并把數(shù)據(jù)通過(guò)HPI接口傳給主控系統(tǒng)模塊,同時(shí)也負(fù)責(zé)對(duì)主控系統(tǒng)模塊發(fā)出的控制命令進(jìn)行解析和實(shí)現(xiàn)。主控系統(tǒng)模塊主要負(fù)責(zé)整個(gè)系統(tǒng)的控制和標(biāo)簽的處理,和客戶服務(wù)響應(yīng)。
主控系統(tǒng)模塊主要由ARM(AT91RM9200)和周邊器件組成,操作系統(tǒng)為arm-linux2.4.19。中間件將運(yùn)行于該模塊中。
3.3 嵌入式RFID中間件軟件體系結(jié)構(gòu)
本系統(tǒng)采用分層的軟件體系結(jié)構(gòu),低層是Linux操作系統(tǒng)和各外設(shè)接口的驅(qū)動(dòng)模塊,包括DSP驅(qū)動(dòng)、網(wǎng)口驅(qū)動(dòng)和串口驅(qū)動(dòng)。中間層是GoAhead Web服務(wù)器和嵌入式數(shù)據(jù)庫(kù)SQLite,上層是閱讀器管理,ReadProtocol和ALE層,如圖2所示。
操作系統(tǒng)是中間件的基礎(chǔ),采用嵌入式Linux作為本嵌入式RFID中間件的操作系統(tǒng),Linux支持TCP/IP,HTTP等多種協(xié)議,省去了協(xié)議移植等復(fù)雜工作,降低了中間件的開(kāi)發(fā)難度,縮短了開(kāi)發(fā)周期。DSP驅(qū)動(dòng)、網(wǎng)口驅(qū)動(dòng)、串口驅(qū)動(dòng),是為RFID閱讀器開(kāi)發(fā)的驅(qū)動(dòng)模塊,只需在linux的支持上作些修改。Linux 移植技術(shù)已經(jīng)成熟, 本文不作詳細(xì)的闡述。
GoAhead Web 服務(wù)器是一款主要面向嵌入式系統(tǒng)的 Web 服務(wù)器,主要功能模塊有安全模塊,GoForm模塊,CGI模塊,SSL(Secure Sockets Layer)模塊。其中安全模塊中又包含內(nèi)存數(shù)據(jù)庫(kù)模塊,主要負(fù)責(zé)存儲(chǔ)用戶信息,以及提供保密安全機(jī)制。GoForm模塊主要負(fù)責(zé)處理客戶提交的表單數(shù)據(jù),并以web頁(yè)面的形式返回相應(yīng)的處理結(jié)果。CGI模塊主要處理客戶的CGI請(qǐng)求。SSL模塊在GoAhead中實(shí)現(xiàn)了SSL協(xié)議。它是本文設(shè)計(jì)嵌入式中間件的基本軟件架構(gòu),系統(tǒng)的所有網(wǎng)絡(luò)開(kāi)發(fā)都是在這個(gè)架構(gòu)上進(jìn)行,GoAhead web服務(wù)器作為中間件的一個(gè)數(shù)據(jù)轉(zhuǎn)發(fā)平臺(tái)和模塊承載平臺(tái),閱讀器與客戶端之間,閱讀器與閱讀器之間的數(shù)據(jù)通信都是由GoAhead Web服務(wù)器來(lái)完成,ALE協(xié)議實(shí)現(xiàn)模塊(ALE模塊),數(shù)據(jù)庫(kù)管理模塊,閱讀器管理模塊,ReaderProtocol Server模塊等的開(kāi)發(fā)也是建立在GoAhead的基礎(chǔ)上的。
數(shù)據(jù)庫(kù)采用SQLite,SQLite是一種小巧、免費(fèi)、開(kāi)源的嵌入式數(shù)據(jù)庫(kù)應(yīng)用軟件,它提供了標(biāo)準(zhǔn)SQL語(yǔ)言,并且由于其工作速度較快,滿足了數(shù)據(jù)的實(shí)時(shí)要求。它可以集成在應(yīng)用軟件中,也可以獨(dú)立運(yùn)行,本系統(tǒng)選用它主要是對(duì)原始數(shù)據(jù)進(jìn)行平滑、過(guò)濾以及根據(jù)客戶端的命令篩選出數(shù)據(jù)。
Reader Management是閱讀器管理模塊,負(fù)責(zé)設(shè)置本閱讀器的工作狀態(tài)和工作模式。
Reader Protocol是閱讀器協(xié)議服務(wù)器,它負(fù)責(zé)管理所有與該中間件閱讀器相連的閱讀器,是Reader Protocol協(xié)議在中間件上的實(shí)現(xiàn)。
ALE Server是ALE協(xié)議服務(wù)器,它是該系統(tǒng)的核心,負(fù)責(zé)向上層應(yīng)用程序提供標(biāo)準(zhǔn)的ALE接口,實(shí)現(xiàn)各個(gè)ALE接口。
3.4 ALE標(biāo)準(zhǔn)在該嵌入式中間件系統(tǒng)中的實(shí)現(xiàn)
如何在RFID中間件的軟件系統(tǒng)中實(shí)現(xiàn)EPCglobal ALE規(guī)范,是本系統(tǒng)開(kāi)發(fā)的核心。在系統(tǒng)中,我們開(kāi)發(fā)了ALE模塊用以實(shí)現(xiàn)了EPCglobal ALE標(biāo)準(zhǔn),由于中間件采用的基本軟件架構(gòu)是GoAhead Web服務(wù)器,它作了一個(gè)模塊承載平臺(tái),在上面可以很好地嵌入ALE模塊。ALE模塊在GoAhead中的位置以及ALE模塊的處理流程如圖3所示。
客戶端用http協(xié)議發(fā)送一個(gè)ALE命令的XML文件給服務(wù)器端,服務(wù)器端在GoAhead進(jìn)程中接收該xml文件,然后將該文件封裝成消息,根據(jù)不同的接口函數(shù)填充上具體消息類型,然后用命令消息隊(duì)列傳給ALE進(jìn)程,在ALE進(jìn)程中從命令消息隊(duì)列把消息取出,根據(jù)消息的類型把XML文件交給相應(yīng)的函數(shù)去解析和做相應(yīng)的操作。
在ALE模塊中,對(duì)于每個(gè)用戶定義的ECSpec(它是一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)類型,規(guī)定了如何處理和完成一個(gè)事件周期),系統(tǒng)實(shí)現(xiàn)了四個(gè)狀態(tài):Undefine,Unrequested,Requested,Active。Undefine表示該ECSpec現(xiàn)在已不能再使用,即將被釋放;Unrequested表示該ECSpec現(xiàn)在處于沒(méi)有用戶訂閱狀態(tài);Requested 表示該ECSpec現(xiàn)在處于有用戶訂閱狀態(tài);Active表示該ECSpec現(xiàn)在正要觸發(fā)線程來(lái)制作和發(fā)送報(bào)表的狀態(tài)。每個(gè)不處于Undefine的ECSpec將對(duì)應(yīng)一專有的子線程(在ALE進(jìn)程中創(chuàng)建),該子線程處理該ECSpec所規(guī)定的具體數(shù)據(jù)提取,報(bào)表制作和發(fā)送。各個(gè)ECSpec對(duì)應(yīng)的子線程將互不干擾,子線程只跟主線程(ALE進(jìn)程原線程)有聯(lián)系,通過(guò)條件變量機(jī)制實(shí)現(xiàn)主線程對(duì)子線程的觸發(fā)和控制。
系統(tǒng)在根據(jù)對(duì)應(yīng)的ECSpec要求進(jìn)行數(shù)據(jù)提取、過(guò)濾、整合時(shí),將與數(shù)據(jù)庫(kù)系統(tǒng)模塊相互結(jié)合。數(shù)據(jù)庫(kù)系統(tǒng)模塊首先把從閱讀器讀到的原始數(shù)據(jù)進(jìn)行濾除重復(fù)多余的EPC碼,并屏蔽各種不同閱讀器數(shù)據(jù)格式的差異,統(tǒng)一數(shù)據(jù)格式后將數(shù)據(jù)送入到數(shù)據(jù)庫(kù)SQLite中,成為數(shù)據(jù)庫(kù)操作的數(shù)據(jù)源。系統(tǒng)的數(shù)據(jù)提取等操作就是在該數(shù)據(jù)源中進(jìn)行的,這些操作是通過(guò)應(yīng)用SQLite自身標(biāo)準(zhǔn)SQL語(yǔ)言來(lái)實(shí)現(xiàn)的。在相應(yīng)的數(shù)據(jù)操作完成后,必須把數(shù)據(jù)源中的過(guò)期數(shù)據(jù)進(jìn)行刪除。
在完成了數(shù)據(jù)的提取和整合后,系統(tǒng)將把數(shù)據(jù)根據(jù)對(duì)應(yīng)ECSpec的具體要求封裝成為XML格式,并以TCP方式發(fā)送給所訂閱的用戶。
4 結(jié)束語(yǔ)
本文作者研究的創(chuàng)新點(diǎn)是在基于EPCglobal ALE標(biāo)準(zhǔn),如何設(shè)計(jì)構(gòu)架于嵌入式系統(tǒng)中的RFID中間件方面上,提出了比較清晰的思路,并按照該思路實(shí)現(xiàn)了基于EPCglobal ALE標(biāo)準(zhǔn)的嵌入式RFID中間件,經(jīng)編譯運(yùn)行測(cè)試,該系統(tǒng)體積小、穩(wěn)定可靠、實(shí)時(shí)性好、并行處理速度高,可廣泛應(yīng)用于嵌入式RFID閱讀器系統(tǒng)中。
責(zé)任編輯:gt
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19126瀏覽量
305201 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9160瀏覽量
85421 -
閱讀器
+關(guān)注
關(guān)注
0文章
301瀏覽量
27921
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論