劉東杰,蔣 泰,2,冉東梅(.桂林電子科技大學(xué) 計算機科學(xué)與工程學(xué)院,廣西 桂林 54004;2.廣西瀚特信息產(chǎn)業(yè)股份有限公司,廣西 桂林 54004)
底層讀寫器協(xié)議淺析
劉東杰1,蔣泰1,2,冉東梅1
(1.桂林電子科技大學(xué)計算機科學(xué)與工程學(xué)院,廣西桂林541004;2.廣西瀚特信息產(chǎn)業(yè)股份有限公司,廣西桂林541004)
RFID技術(shù)在近年來得到了快速的發(fā)展。但是,RFID讀寫器與客戶端之間的通信協(xié)議并沒有得到統(tǒng)一,它們之間的連接需要適配讀寫器廠商私有的接口,不利于RFID應(yīng)用系統(tǒng)的快速構(gòu)建。因此,RFID標(biāo)準(zhǔn)化組織EPCglobal在2007年推出了底層讀寫器協(xié)議LLRP(Low Level Reader Protocol),它為讀寫器和其控制器提供了標(biāo)準(zhǔn)的網(wǎng)絡(luò)接口,極大地提高了RFID應(yīng)用系統(tǒng)的構(gòu)建效率。借助于開源的RFID中間件平臺Fosstrak對LLRP協(xié)議及其實現(xiàn)進行分析對比,會使開發(fā)者對LLRP協(xié)議有更深入的理解,為實現(xiàn)EPCglobal系統(tǒng)打下了堅實的基礎(chǔ)。
射頻識別;EPCglobal;底層讀寫器協(xié)議;Fosstrak
射頻識別(Radio Frequency Identification,RFID)是一種非接觸式的自動識別技術(shù),它利用無線射頻方式進行雙向通信并交換數(shù)據(jù),以達到識別目標(biāo)的目的。由于其具有標(biāo)簽容量大、數(shù)據(jù)保密性好、傳輸可靠性高,以及非可視識別、移動識別、多目標(biāo)識別、定位及長期跟蹤管理等特點,RFID技術(shù)在2005年入選“建議企業(yè)引入的十大策略技術(shù)”,并被公認(rèn)為本世紀(jì)十大重要技術(shù)之一[1]。
目前,RFID技術(shù)被廣泛應(yīng)用于生產(chǎn)、防偽、產(chǎn)品跟蹤、交通、物流、資產(chǎn)管理等眾多領(lǐng)域,射頻識別技術(shù)已經(jīng)成為企業(yè)提高供應(yīng)鏈管理水平,降低生產(chǎn)成本,實現(xiàn)企業(yè)信息化管理,增強企業(yè)競爭能力的有力技術(shù)手段和工具。
但是,在傳統(tǒng)的RFID應(yīng)用與開發(fā)中,RFID讀寫器與其控制器的客戶端之間的通信協(xié)議并沒有統(tǒng)一,它們之間的連接需要適配讀寫器廠商私有的接口。因此,當(dāng)RFID讀寫器在硬件或軟件上稍有變動,則客戶端的軟件就必須隨之一起改動。當(dāng)用戶采用不同供應(yīng)商提供的產(chǎn)品時,其維護成本也隨之提高,這就造成了開發(fā)工作的重復(fù)性以及系統(tǒng)之間的不兼容性和維護的復(fù)雜性,同時也影響了RFID技術(shù)的發(fā)展和普及。
為了解決RFID技術(shù)在相關(guān)領(lǐng)域缺乏統(tǒng)一標(biāo)準(zhǔn)的問題,全球電子產(chǎn)品編碼協(xié)會(Electronic Product Code global,EPCglobal)于2007年發(fā)布了底層讀寫器協(xié)議(LLRP)[2]。該協(xié)議定義了 RFID讀寫器與其控制器客戶端的接口規(guī)范,使得軟件開發(fā)者能夠更加專注于客戶的需求,極大地提高了RFID應(yīng)用系統(tǒng)的構(gòu)建效率。本文將通過Fosstrak平臺對LLRP進行分析,以深入理解LLRP的數(shù)據(jù)結(jié)構(gòu)、工作流程及實現(xiàn)方式等,更好地掌握LLRP的使用方法。
Fosstrak是一個實現(xiàn)了EPC網(wǎng)絡(luò)規(guī)范的開源的RFID軟件平臺。它提供了軟件的核心組件,旨在為應(yīng)用程序開發(fā)人員和集成商提供一些支持。Fosstrak由EPCIS Repository、Tag Data Translation(TDT)Library、Filtering&Collection Middleware with ALE and LLRP Support和LLRP Commander四個模塊組成。本文中主要使用到Fosstrak的LLRP Commander模塊。
LLRP Commander是Fosstrak以Eclipse插件的形式對LLRP讀寫器控制器(客戶端)的實現(xiàn)。通過它可以對兼容LLRP協(xié)議的RFID讀寫器進行配置與管理操作。
LLRP Commander提供了XML、binary、graphical三種不同的編輯視圖,使開發(fā)者可以方便地檢查和修改LLRP消息。圖1展示了LLRP Commander的XML編輯視圖。
圖1 LLRP Commander的XML編輯視圖
LLRP應(yīng)用于RFID讀寫器與控制器之間,它負(fù)責(zé)讀寫器與控制器之間的連接,且可與讀寫器與標(biāo)簽通信的空中接口協(xié)議進行互動[3-4],如圖2所示。它將低層讀寫器的射頻協(xié)議屏蔽掉,而暴露給客戶端的是統(tǒng)一的協(xié)議接口,使得客戶端可以無差別地對低層的讀寫器進行控制和管理。
圖2 處于讀寫器與客戶端之間的LLRP
LLRP協(xié)議為客戶端與讀寫器之間提供了通信的格式和過程。這些交互過程以LLRP消息為基本的數(shù)據(jù)單元進行通信,主要包括客戶端-讀寫器消息和讀寫器-客戶端消息。
2.1LLRP的基本數(shù)據(jù)類型
LLRP的基本數(shù)據(jù)類型包括消息(Messages)、參數(shù)(Parameters)和域(Fields)[2]。其中消息可以包含一個或多個參數(shù)或域,而一個參數(shù)也可以包含一個或多個參數(shù)(子參數(shù))或域。
從客戶端到讀寫器的消息包括:獲取和設(shè)置讀寫器的配置信息;讀寫器的能力發(fā)現(xiàn)(包括讀寫器的天線數(shù)、通用輸入/輸出端口數(shù)等);管理讀寫器的清點和訪問操作。從讀寫器到客戶端的信息包括:讀寫器的狀態(tài)報告、射頻監(jiān)測的信息、清點和訪問操作的結(jié)果報告。
LLRP消息中定義了兩個基本的操作規(guī)格即讀寫器操作規(guī)格(Reader Operations Specification,ROSpec)和訪問規(guī)格(Access Specification)。
ROSpec負(fù)責(zé)處理讀寫器的操作(Reader Operation,RO)。在一個RO中至少包含了一個規(guī)格AISpec或者RFSurveySpec。其中AISpec負(fù)責(zé)標(biāo)簽的盤點作業(yè),RFSurveySpec負(fù)責(zé)獲取讀寫器操作天線的射頻功率的信息。除此之外,在ROSpec中還可以根據(jù)實際情況加入其他的規(guī)格,比如ROReportSpec(它描述了一個報告的發(fā)送時機以及報告中包含的內(nèi)容等信息),或者一些自定義的規(guī)格(LLRP靈活的可擴展性允許供應(yīng)商按照一定的規(guī)則對其進行擴展,有利于產(chǎn)品的創(chuàng)新與競爭)。
Access Specification描述了對標(biāo)簽內(nèi)存中非EPC信息的操作。
2.2LLRP的工作流程
典型的LLRP客戶端與讀寫器之間的交互過程如圖3所示。
圖3 典型的LLRP客戶端與讀寫器之間的交互過程
從圖3可以看出,LLRP的工作流程主要包括以下幾個階段[5]:
(1)客戶端將向讀寫器發(fā)送配置命令。這些配置可以包括讀寫器的能力發(fā)現(xiàn)、配置和查詢讀寫器的設(shè)置。讀寫器能力發(fā)現(xiàn)包括讀寫器的天線數(shù)、天線接收靈敏度、天線支持的空中協(xié)議、通用輸入輸出端口(GPIO)數(shù)等。在配置讀寫器設(shè)置時,除了可以設(shè)置天線的模式、GPIO的狀態(tài)等,還可以設(shè)置ROReportSpec、AccessReportSpec等作為默認(rèn)的報告規(guī)格。在客戶端發(fā)送配置消息后,讀寫器在完成了相關(guān)的設(shè)置之后會向客戶端發(fā)送相應(yīng)的響應(yīng)消息。
(2)讀寫器配置階段執(zhí)行完畢后,客戶端向讀寫器發(fā)送LLRP所定義的ROSpec和AccessSpec等操作命令集,對讀寫器標(biāo)簽的存取操作進行設(shè)置與更新。在該階段,如果在ROSpec規(guī)格中沒有設(shè)置相關(guān)的報告規(guī)格(如ROReportSpec),則會使用在讀寫器配置階段所設(shè)置的默認(rèn)報告規(guī)格;如果在ROSpec中設(shè)置了相關(guān)的報告規(guī)格,則將覆蓋默認(rèn)的報告規(guī)格。
(3)在相關(guān)配置工作完成之后,對發(fā)生的符合條件的事件,將開始執(zhí)行讀寫器操作并向客戶端返回相應(yīng)的信息報告。讀寫器操作包括標(biāo)簽的盤點、存取和對讀寫器的射頻監(jiān)測等。
LLRP的兩個端點(客戶端與讀寫器端)之間是通過TCP/IP進行通信的[2],同時LLRP消息以二進制編碼的格式在它們之間進行傳輸。這種方式是高效、快速的。LLRP規(guī)范中定義了LLRP消息的二進制編碼格式,如圖4所示。如果開發(fā)者直接以二進制的形式實現(xiàn)LLRP消息的話,將是困難的、低效的。因此,根據(jù)以上對LLRP的分析,以及LLRP Commander中的實現(xiàn)方式,并考慮到編程語言的效率,一般采用“面向文檔”和“面向?qū)ο蟆眱煞N方式對LLRP消息進行實現(xiàn)。
圖4 LLRP消息的二進制編碼格式
面向文檔的實現(xiàn)方式是基于XML的方式[6]。由于LLRP消息是嵌套的,即消息可以包含一個或多個參數(shù)或域,而一個參數(shù)也可以包含一個或多個參數(shù)或域,因此XML標(biāo)簽的可嵌套性和可擴展性的特點非常適合于LLRP消息的實現(xiàn)。利用官方提供的llrp.xsd文檔,開發(fā)人員可以方便地構(gòu)造出一個面向文檔的LLRP消息。在LLRP Commander中提供了一些LLRP消息的例子,其中ADD_ROSPEC消息的XML描述見圖1。
在圖1中,根節(jié)點ADD_ROSPEC是LLRP中的消息,子節(jié)點ROSpec、ROBoundarySpec、OSpecStartTrigger、ROSpec-StopTrigger、AISpec、AISpecStopTrigger、InventoryParameterSpec是LLRP中的參數(shù),而ROSpecID、Priority、CurrentState、ROSpecStartTriggerType等其他的子節(jié)點則為LLRP中的域。
面向?qū)ο蟮膶崿F(xiàn)方式就是將特定的消息和面向?qū)ο笾卸x的對象一一對應(yīng)[7]。在以面向?qū)ο蟮姆绞綄崿F(xiàn)LLRP消息時,LLRP規(guī)范中每一個特定的消息都對應(yīng)一個類,每一個特定的參數(shù)也都對應(yīng)一個類,而域則是作為消息類與參數(shù)類的成員變量。如果在LLRP的定義中某個消息包含某個參數(shù),則此參數(shù)也將作為該消息的一個成員變量。該消息類與其所包含的參數(shù)類之間構(gòu)成了一種組合關(guān)系。這里,同樣以ADD_ROSPEC消息的面向?qū)ο髮崿F(xiàn)方式的UML類圖為例來進行說明,如圖5所示。
圖5 面向?qū)ο蠓绞綄崿F(xiàn)的ADD_ROSPEC消息的UML類圖
在圖5中,ADD_ROSPEC就是一個消息類,它對應(yīng)于LLRP中的一個消息,而該消息類的一個成員變量ROSpec則是ROSPEC參數(shù)類的對象,它對應(yīng)于LLRP中的一個參數(shù)。同時,在參數(shù)類ROSPEC中也包含參數(shù)類ROBoundarySpec等。
LLRP作為讀寫器與客戶端之間的一個接口標(biāo)準(zhǔn),它不需要去適配各個讀寫器廠商私有的接口,而是提供了標(biāo)準(zhǔn)的接口來接入不同廠商的讀寫器,極大地提高了RFID應(yīng)用系統(tǒng)的構(gòu)建效率。通過對LLRP數(shù)據(jù)結(jié)構(gòu)、工作流程的分析,以及對其實現(xiàn)方式的比較,使開發(fā)者能夠?qū)ζ溆懈钊氲恼J(rèn)知,提高應(yīng)用效率,為實現(xiàn)相關(guān)應(yīng)用系統(tǒng)奠定了堅實的基礎(chǔ)。
[1]武君勝,李瑞賢.射頻識別系統(tǒng)底層協(xié)議開發(fā)工具包設(shè)計[J].計算機測量與控制,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的可擴展的RFID中間件[D].北京:北京郵電大學(xué),2011.
[4]林強,趙辰,羅艷.底層識讀器協(xié)議規(guī)范與測試淺析[J].條碼與信息系統(tǒng),2009(6):21-23.
[5]張益,楊國.基于低級別讀寫器協(xié)議的無線射頻識別中間件系統(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.
Analysis on low level reader protocol
Liu Dongjie1,Jiang Tai1,2,Ran Dongmei1
(1.School of Computer Science and Engineering,Guilin University of Electronic Technology,Guilin 541004,China;2.Guangxi Hunter Information Industry Co.,Ltd.,Guilin 541004,China)
RFID technology in recent years has made great strides.However,the communication protocol between RFID reader and the client has not been uniform,the connection between them needs to fit reader manufacturers proprietary interfaces,which are not conducive to build RFID applications quickly.Therefore,in 2007,EPCglobal——an RFID standardization organization announced ratification of the Low Level Reader Protocol(LLRP)standard,a specification for the network interface between the reader and its controller,which greatly improves the efficiency to build RFID applications.By means of Fosstrak,——an open source RFID middleware platform to analyze the LLRP,developers will have a deeper understanding of it,which lays a solid foundation for the realization of EPCglobal system.
radio frequency identification;EPCglobal;low level reader protocol;Fosstrak
TP311
A
1674-7720(2015)10-0007-03
2014-12-33)
劉東杰(1988-),通信作者,男,碩士研究生,主要研究方向:RFID、企業(yè)信息管理。E-mail:liudj001@foxmail.com。
蔣泰(1960-),男,教授,主要研究方向:物聯(lián)網(wǎng)、企業(yè)信息管理、嵌入式系統(tǒng)。
冉東梅(1988-),女,碩士研究生,主要研究方向:無線室內(nèi)定位。