《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 底層讀寫(xiě)器協(xié)議淺析
底層讀寫(xiě)器協(xié)議淺析
2015年微型機(jī)與應(yīng)用第8期
劉東杰1,蔣 泰1,2,冉東梅1
(1.桂林電子科技大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,廣西 桂林 541004; 2.廣西瀚特信息產(chǎn)業(yè)股份有限公司,廣西 桂林 541004)
摘要: RFID技術(shù)在近年來(lái)得到了快速的發(fā)展。但是,RFID讀寫(xiě)器與客戶(hù)端之間的通信協(xié)議并沒(méi)有得到統(tǒng)一,它們之間的連接需要適配讀寫(xiě)器廠(chǎng)商私有的接口,不利于RFID應(yīng)用系統(tǒng)的快速構(gòu)建。因此,RFID標(biāo)準(zhǔn)化組織EPCglobal在2007年推出了底層讀寫(xiě)器協(xié)議LLRP(Low Level Reader Protocol),它為讀寫(xiě)器和其控制器提供了標(biāo)準(zhǔn)的網(wǎng)絡(luò)接口,極大地提高了RFID應(yīng)用系統(tǒng)的構(gòu)建效率。借助于開(kāi)源的RFID中間件平臺(tái)Fosstrak對(duì)LLRP協(xié)議及其實(shí)現(xiàn)進(jìn)行分析對(duì)比,會(huì)使開(kāi)發(fā)者對(duì)LLRP協(xié)議有更深入的理解,為實(shí)現(xiàn)EPCglobal系統(tǒng)打下了堅(jiān)實(shí)的基礎(chǔ)。
Abstract:
Key words :

  摘  要: RFID技術(shù)在近年來(lái)得到了快速的發(fā)展。但是,RFID讀寫(xiě)器與客戶(hù)端之間的通信協(xié)議并沒(méi)有得到統(tǒng)一,它們之間的連接需要適配讀寫(xiě)器廠(chǎng)商私有的接口,不利于RFID應(yīng)用系統(tǒng)的快速構(gòu)建。因此,RFID標(biāo)準(zhǔn)化組織EPCglobal在2007年推出了底層讀寫(xiě)器協(xié)議LLRP(Low Level Reader Protocol),它為讀寫(xiě)器和其控制器提供了標(biāo)準(zhǔn)的網(wǎng)絡(luò)接口,極大地提高了RFID應(yīng)用系統(tǒng)的構(gòu)建效率。借助于開(kāi)源的RFID中間件平臺(tái)Fosstrak對(duì)LLRP協(xié)議及其實(shí)現(xiàn)進(jìn)行分析對(duì)比,會(huì)使開(kāi)發(fā)者對(duì)LLRP協(xié)議有更深入的理解,為實(shí)現(xiàn)EPCglobal系統(tǒng)打下了堅(jiān)實(shí)的基礎(chǔ)。

關(guān)鍵詞射頻識(shí)別;EPCglobal;底層讀寫(xiě)器協(xié)議;Fosstrak

  0 引言

  射頻識(shí)別(Radio Frequency Identification,RFID)是一種非接觸式的自動(dòng)識(shí)別技術(shù),它利用無(wú)線(xiàn)射頻方式進(jìn)行雙向通信并交換數(shù)據(jù),以達(dá)到識(shí)別目標(biāo)的目的。由于其具有標(biāo)簽容量大、數(shù)據(jù)保密性好、傳輸可靠性高,以及非可視識(shí)別、移動(dòng)識(shí)別、多目標(biāo)識(shí)別、定位及長(zhǎng)期跟蹤管理等特點(diǎn),RFID技術(shù)在2005年入選“建議企業(yè)引入的十大策略技術(shù)”,并被公認(rèn)為本世紀(jì)十大重要技術(shù)之一[1]。

  目前,RFID技術(shù)被廣泛應(yīng)用于生產(chǎn)、防偽、產(chǎn)品跟蹤、交通、物流、資產(chǎn)管理等眾多領(lǐng)域,射頻識(shí)別技術(shù)已經(jīng)成為企業(yè)提高供應(yīng)鏈管理水平,降低生產(chǎn)成本,實(shí)現(xiàn)企業(yè)信息化管理,增強(qiáng)企業(yè)競(jìng)爭(zhēng)能力的有力技術(shù)手段和工具。

  但是,在傳統(tǒng)的RFID應(yīng)用與開(kāi)發(fā)中,RFID讀寫(xiě)器與其控制器的客戶(hù)端之間的通信協(xié)議并沒(méi)有統(tǒng)一,它們之間的連接需要適配讀寫(xiě)器廠(chǎng)商私有的接口。因此,當(dāng)RFID讀寫(xiě)器在硬件或軟件上稍有變動(dòng),則客戶(hù)端的軟件就必須隨之一起改動(dòng)。當(dāng)用戶(hù)采用不同供應(yīng)商提供的產(chǎn)品時(shí),其維護(hù)成本也隨之提高,這就造成了開(kāi)發(fā)工作的重復(fù)性以及系統(tǒng)之間的不兼容性和維護(hù)的復(fù)雜性,同時(shí)也影響了RFID技術(shù)的發(fā)展和普及。

  為了解決RFID技術(shù)在相關(guān)領(lǐng)域缺乏統(tǒng)一標(biāo)準(zhǔn)的問(wèn)題,全球電子產(chǎn)品編碼協(xié)會(huì)(Electronic Product Code global,EPCglobal)于2007年發(fā)布了底層讀寫(xiě)器協(xié)議(LLRP)[2]。該協(xié)議定義了RFID讀寫(xiě)器與其控制器客戶(hù)端的接口規(guī)范,使得軟件開(kāi)發(fā)者能夠更加專(zhuān)注于客戶(hù)的需求,極大地提高了RFID應(yīng)用系統(tǒng)的構(gòu)建效率。本文將通過(guò)Fosstrak平臺(tái)對(duì)LLRP進(jìn)行分析,以深入理解LLRP的數(shù)據(jù)結(jié)構(gòu)、工作流程及實(shí)現(xiàn)方式等,更好地掌握LLRP的使用方法。

1 Fosstrak平臺(tái)簡(jiǎn)介

  Fosstrak是一個(gè)實(shí)現(xiàn)了EPC網(wǎng)絡(luò)規(guī)范的開(kāi)源的RFID軟件平臺(tái)。它提供了軟件的核心組件,旨在為應(yīng)用程序開(kāi)發(fā)人員和集成商提供一些支持。Fosstrak由EPCIS Repository、Tag Data Translation(TDT)Library、Filtering& Collection Middleware with ALE and LLRP Support和LLRP Commander四個(gè)模塊組成。本文中主要使用到Fosstrak的LLRP Commander模塊。

  LLRP Commander是Fosstrak以Eclipse插件的形式對(duì)LLRP讀寫(xiě)器控制器(客戶(hù)端)的實(shí)現(xiàn)。通過(guò)它可以對(duì)兼容LLRP協(xié)議的RFID讀寫(xiě)器進(jìn)行配置與管理操作。

  LLRP Commander提供了XML、binary、graphical三種不同的編輯視圖,使開(kāi)發(fā)者可以方便地檢查和修改LLRP消息。圖1展示了LLRP Commander的XML編輯視圖。

001.jpg

2 LLRP標(biāo)準(zhǔn)的分析

  LLRP應(yīng)用于RFID讀寫(xiě)器與控制器之間,它負(fù)責(zé)讀寫(xiě)器與控制器之間的連接,且可與讀寫(xiě)器與標(biāo)簽通信的空中接口協(xié)議進(jìn)行互動(dòng)[3-4],如圖2所示。它將低層讀寫(xiě)器的射頻協(xié)議屏蔽掉,而暴露給客戶(hù)端的是統(tǒng)一的協(xié)議接口,使得客戶(hù)端可以無(wú)差別地對(duì)低層的讀寫(xiě)器進(jìn)行控制和管理。

002.jpg

  LLRP協(xié)議為客戶(hù)端與讀寫(xiě)器之間提供了通信的格式和過(guò)程。這些交互過(guò)程以L(fǎng)LRP消息為基本的數(shù)據(jù)單元進(jìn)行通信,主要包括客戶(hù)端-讀寫(xiě)器消息和讀寫(xiě)器-客戶(hù)端消息。

  2.1 LLRP的基本數(shù)據(jù)類(lèi)型

  LLRP的基本數(shù)據(jù)類(lèi)型包括消息(Messages)、參數(shù)(Parameters)和域(Fields)[2]。其中消息可以包含一個(gè)或多個(gè)參數(shù)或域,而一個(gè)參數(shù)也可以包含一個(gè)或多個(gè)參數(shù)(子參數(shù))或域。

  從客戶(hù)端到讀寫(xiě)器的消息包括:獲取和設(shè)置讀寫(xiě)器的配置信息;讀寫(xiě)器的能力發(fā)現(xiàn)(包括讀寫(xiě)器的天線(xiàn)數(shù)、通用輸入/輸出端口數(shù)等);管理讀寫(xiě)器的清點(diǎn)和訪(fǎng)問(wèn)操作。從讀寫(xiě)器到客戶(hù)端的信息包括:讀寫(xiě)器的狀態(tài)報(bào)告、射頻監(jiān)測(cè)的信息、清點(diǎn)和訪(fǎng)問(wèn)操作的結(jié)果報(bào)告。

  LLRP消息中定義了兩個(gè)基本的操作規(guī)格即讀寫(xiě)器操作規(guī)格(Reader Operations Specification,ROSpec)和訪(fǎng)問(wèn)規(guī)格(Access Specification)。

  ROSpec負(fù)責(zé)處理讀寫(xiě)器的操作(Reader Operation,RO)。在一個(gè)RO中至少包含了一個(gè)規(guī)格AISpec或者RFSurveySpec。其中AISpec負(fù)責(zé)標(biāo)簽的盤(pán)點(diǎn)作業(yè),RFSurveySpec負(fù)責(zé)獲取讀寫(xiě)器操作天線(xiàn)的射頻功率的信息。除此之外,在ROSpec中還可以根據(jù)實(shí)際情況加入其他的規(guī)格,比如ROReportSpec(它描述了一個(gè)報(bào)告的發(fā)送時(shí)機(jī)以及報(bào)告中包含的內(nèi)容等信息),或者一些自定義的規(guī)格(LLRP靈活的可擴(kuò)展性允許供應(yīng)商按照一定的規(guī)則對(duì)其進(jìn)行擴(kuò)展,有利于產(chǎn)品的創(chuàng)新與競(jìng)爭(zhēng))。

  Access Specification描述了對(duì)標(biāo)簽內(nèi)存中非EPC信息的操作。

  2.2 LLRP的工作流程

  典型的LLRP客戶(hù)端與讀寫(xiě)器之間的交互過(guò)程如圖3所示。

003.jpg

  從圖3可以看出,LLRP的工作流程主要包括以下幾個(gè)階段[5]:

  (1)客戶(hù)端將向讀寫(xiě)器發(fā)送配置命令。這些配置可以包括讀寫(xiě)器的能力發(fā)現(xiàn)、配置和查詢(xún)讀寫(xiě)器的設(shè)置。讀寫(xiě)器能力發(fā)現(xiàn)包括讀寫(xiě)器的天線(xiàn)數(shù)、天線(xiàn)接收靈敏度、天線(xiàn)支持的空中協(xié)議、通用輸入輸出端口(GPIO)數(shù)等。在配置讀寫(xiě)器設(shè)置時(shí),除了可以設(shè)置天線(xiàn)的模式、GPIO的狀態(tài)等,還可以設(shè)置ROReportSpec、AccessReportSpec等作為默認(rèn)的報(bào)告規(guī)格。在客戶(hù)端發(fā)送配置消息后,讀寫(xiě)器在完成了相關(guān)的設(shè)置之后會(huì)向客戶(hù)端發(fā)送相應(yīng)的響應(yīng)消息。

 ?。?)讀寫(xiě)器配置階段執(zhí)行完畢后,客戶(hù)端向讀寫(xiě)器發(fā)送LLRP所定義的ROSpec和AccessSpec等操作命令集,對(duì)讀寫(xiě)器標(biāo)簽的存取操作進(jìn)行設(shè)置與更新。在該階段,如果在ROSpec規(guī)格中沒(méi)有設(shè)置相關(guān)的報(bào)告規(guī)格(如ROReportSpec),則會(huì)使用在讀寫(xiě)器配置階段所設(shè)置的默認(rèn)報(bào)告規(guī)格;如果在ROSpec中設(shè)置了相關(guān)的報(bào)告規(guī)格,則將覆蓋默認(rèn)的報(bào)告規(guī)格。

  (3)在相關(guān)配置工作完成之后,對(duì)發(fā)生的符合條件的事件,將開(kāi)始執(zhí)行讀寫(xiě)器操作并向客戶(hù)端返回相應(yīng)的信息報(bào)告。讀寫(xiě)器操作包括標(biāo)簽的盤(pán)點(diǎn)、存取和對(duì)讀寫(xiě)器的射頻監(jiān)測(cè)等。

3 LLRP消息的實(shí)現(xiàn)

  LLRP的兩個(gè)端點(diǎn)(客戶(hù)端與讀寫(xiě)器端)之間是通過(guò)TCP/IP進(jìn)行通信的[2],同時(shí)LLRP消息以二進(jìn)制編碼的格式在它們之間進(jìn)行傳輸。這種方式是高效、快速的。LLRP規(guī)范中定義了LLRP消息的二進(jìn)制編碼格式,如圖4所示。如果開(kāi)發(fā)者直接以二進(jìn)制的形式實(shí)現(xiàn)LLRP消息的話(huà),將是困難的、低效的。因此,根據(jù)以上對(duì)LLRP的分析,以及LLRP Commander中的實(shí)現(xiàn)方式,并考慮到編程語(yǔ)言的效率,一般采用“面向文檔”和“面向?qū)ο蟆眱煞N方式對(duì)LLRP消息進(jìn)行實(shí)現(xiàn)。

004.jpg

  面向文檔的實(shí)現(xiàn)方式是基于XML的方式[6]。由于LLRP消息是嵌套的,即消息可以包含一個(gè)或多個(gè)參數(shù)或域,而一個(gè)參數(shù)也可以包含一個(gè)或多個(gè)參數(shù)或域,因此XML標(biāo)簽的可嵌套性和可擴(kuò)展性的特點(diǎn)非常適合于LLRP消息的實(shí)現(xiàn)。利用官方提供的llrp.xsd文檔,開(kāi)發(fā)人員可以方便地構(gòu)造出一個(gè)面向文檔的LLRP消息。在LLRP Commander中提供了一些LLRP消息的例子,其中ADD_ROSPEC消息的XML描述見(jiàn)圖1。

  在圖1中,根節(jié)點(diǎn)ADD_ROSPEC是LLRP中的消息,子節(jié)點(diǎn)ROSpec、ROBoundarySpec、OSpecStartTrigger、ROSpecStopTrigger、AISpec、AISpecStopTrigger、InventoryParameterSpec是LLRP中的參數(shù),而ROSpecID、Priority、CurrentState、ROSpecStartTriggerType等其他的子節(jié)點(diǎn)則為L(zhǎng)LRP中的域。

  面向?qū)ο蟮膶?shí)現(xiàn)方式就是將特定的消息和面向?qū)ο笾卸x的對(duì)象一一對(duì)應(yīng)[7]。在以面向?qū)ο蟮姆绞綄?shí)現(xiàn)LLRP消息時(shí),LLRP規(guī)范中每一個(gè)特定的消息都對(duì)應(yīng)一個(gè)類(lèi),每一個(gè)特定的參數(shù)也都對(duì)應(yīng)一個(gè)類(lèi),而域則是作為消息類(lèi)與參數(shù)類(lèi)的成員變量。如果在LLRP的定義中某個(gè)消息包含某個(gè)參數(shù),則此參數(shù)也將作為該消息的一個(gè)成員變量。該消息類(lèi)與其所包含的參數(shù)類(lèi)之間構(gòu)成了一種組合關(guān)系。這里,同樣以ADD_ROSPEC消息的面向?qū)ο髮?shí)現(xiàn)方式的UML類(lèi)圖為例來(lái)進(jìn)行說(shuō)明,如圖5所示。

005.jpg

  在圖5中,ADD_ROSPEC就是一個(gè)消息類(lèi),它對(duì)應(yīng)于LLRP中的一個(gè)消息,而該消息類(lèi)的一個(gè)成員變量ROSpec則是ROSPEC參數(shù)類(lèi)的對(duì)象,它對(duì)應(yīng)于LLRP中的一個(gè)參數(shù)。同時(shí),在參數(shù)類(lèi)ROSPEC中也包含參數(shù)類(lèi)ROBoundarySpec等。

4 結(jié)論

  LLRP作為讀寫(xiě)器與客戶(hù)端之間的一個(gè)接口標(biāo)準(zhǔn),它不需要去適配各個(gè)讀寫(xiě)器廠(chǎng)商私有的接口,而是提供了標(biāo)準(zhǔn)的接口來(lái)接入不同廠(chǎng)商的讀寫(xiě)器,極大地提高了RFID應(yīng)用系統(tǒng)的構(gòu)建效率。通過(guò)對(duì)LLRP數(shù)據(jù)結(jié)構(gòu)、工作流程的分析,以及對(duì)其實(shí)現(xiàn)方式的比較,使開(kāi)發(fā)者能夠?qū)ζ溆懈钊氲恼J(rèn)知,提高應(yīng)用效率,為實(shí)現(xiàn)相關(guān)應(yīng)用系統(tǒng)奠定了堅(jiān)實(shí)的基礎(chǔ)。

  參考文獻(xiàn)

  [1] 武君勝,李瑞賢.射頻識(shí)別系統(tǒng)底層協(xié)議開(kāi)發(fā)工具包設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(1):179-182.

  [2] EPCglobal Inc. llrp_1_1-standard-20101013 [EB/OL]. http://www.gs1.org/gsmp/kc/epcglobal/llrp/llrp_1_1-standard-20101013.pdf.

  [3] 宋林.構(gòu)建基于LLRP的可擴(kuò)展的RFID中間件[D].北京:北京郵電大學(xué),2011.

  [4] 林強(qiáng),趙辰,羅艷.底層識(shí)讀器協(xié)議規(guī)范與測(cè)試淺析[J].條碼與信息系統(tǒng),2009(6):21-23.

  [5] 張益,楊國(guó).基于低級(jí)別讀寫(xiě)器協(xié)議的無(wú)線(xiàn)射頻識(shí)別中間件系統(tǒng)[J].中興通訊技術(shù),2010,16(2):42-45.

  [6] POULOPOULOS D. A generalized binding framework for the low level reader protocol(LLRP)[D]. Cambridge: Massachusetts Institute of Technology, 2008.

  [7] CONSTANTINOU F. An object-oriented implementation of a low level reader protocol(LLRP) library[D]. Cambridge: Massachusetts Institute of Technology, 2008.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。