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