應用

技術

物聯(lián)網世界 >> 物聯(lián)網新聞 >> 物聯(lián)網熱點新聞
企業(yè)注冊個人注冊登錄

RFID干貨專欄|13 C1Gen2空中接口數(shù)字部分

2021-12-13 11:46 物聯(lián)傳媒
關鍵詞:RFID

導讀:甘泉老師花費數(shù)年之功,撰寫的新書《物聯(lián)網UHF RFID技術、產品及應用》正式出版發(fā)布,本書對UHF RFID最新的技術、產品與市場應用進行了系統(tǒng)性的闡述,干貨滿滿!RFID世界網得到了甘泉老師獨家授權,在RFID世界網公眾號特設專欄,陸續(xù)發(fā)布本書內容。

RFID干貨專欄概述

經過20多年的努力發(fā)展,超高頻RFID技術已經成為物聯(lián)網的核心技術之一,每年的出貨量達到了200億的級別。在這個過程中,中國逐步成為超高頻RFID標簽產品的主要生產國,在國家對物聯(lián)網發(fā)展的大力支持下,行業(yè)應用和整個生態(tài)的發(fā)展十分迅猛。然而,至今國內還沒有一本全面介紹超高頻RFID技術的書籍。

為了填補這方面的空缺,甘泉老師花費數(shù)年之功,撰寫的新書《物聯(lián)網UHF RFID技術、產品及應用》正式出版發(fā)布,本書對UHF RFID最新的技術、產品與市場應用進行了系統(tǒng)性的闡述,干貨滿滿!RFID世界網得到了甘泉老師獨家授權,在RFID世界網公眾號特設專欄,陸續(xù)發(fā)布本書內容。

1.png

掃碼觀看本章節(jié)視頻講解

3.2.1 EPC C1 Gen 2空中接口數(shù)字部分

01、"Q"(Query)詢問指令

Query命令的意思是詢問命令,是針對多標簽的快速盤點而產生的,在學習這個知識點之前,首先要了解超高頻RFID協(xié)議是半雙工的通信方式,且是由閱讀器先主動發(fā)起通信,也就是說閱讀器“說一句”,Tag“應答一句”,如此往復。

首先分析一下Query命令包含哪些內容,如表3-2所示,其中:

  • Query的命令字為1000,一共4個字節(jié),是一個常用的命令字。

  • DR是與反向鏈路頻率BLF相關的配置參數(shù)。

  • M代表編碼方式:M=0代表FM0編碼;M=1代表Miller2編碼;M=10代表Miller4編碼;M=11代表Miller8編碼。

  • Sel表示選擇Select命令配置參數(shù),3.2.4節(jié)會詳細介紹;

  • Session表示會話層,3.2.3節(jié)會詳細介紹;

  • Target表示標簽的狀態(tài),一共有兩個狀態(tài)A或B;

Q是Query的簡稱,是超高頻RFID協(xié)議中最重要的參數(shù)。

2.png

表3-2Query命令

在閱讀器發(fā)Query命令的時候,會自帶一個參數(shù)Q,這個Q的大小決定了整個系統(tǒng)的清點效率。Q可以設置從0到15的整數(shù),標簽收到命令后會從0到2Q中隨機產生一個數(shù)字,作為這個標簽的應答槽。閱讀器可以通過命令讓標簽應答槽中的數(shù)字不斷變小,直到變?yōu)?,此時標簽會返回一個16位的隨機數(shù),與閱讀器通信。也可以理解為標簽有一個隨機響應概率3.png,其中Q的最大值為15,如表3-3所示為Q為0到5時對應的位置計數(shù)器大小。

4.png

表3-3Q值與位置計數(shù)器

Q設的越大,理論上可以清點的標簽數(shù)量越多。如果標簽少,Q設置過大效率就會降低(隨機響應概率p太小導致)。因為Q的最大值為15,槽計數(shù)器的最大值為215=32768,也就是說一個閱讀器可以同時讀取32768個標簽。理論上只要場內標簽數(shù)量不超過最大值的3倍,可以相對高效的完全全部識別,或者理解為在EPC C1 Gen2協(xié)議下,一個閱讀器可以同時識別的標簽數(shù)量上限為10萬個。當然實際場景中一般只有幾個或幾十個標簽在輻射場內,只有非常特殊的應用場景中會出現(xiàn)超過1000個標簽在同一個閱讀器的輻射場內,所以Query協(xié)議在設定時已經充分考慮到了這些問題。下面通過幾個例子來分析Query對應的實際場景:

  • 場景1,場內永遠只有1個標簽,那么Q直接設置成0,最快速的方式進行讀取,如果此時場內有兩個標簽,則會出現(xiàn)沖突,閱讀器會返回沖突告警,說明場內有超過一張標簽出現(xiàn)。這種應用在電子票據(jù)上很常見,因為電子票據(jù)都是一個一個通過的,不應該出現(xiàn)兩個標簽同時被識別的情況,因此設置為Q=0最合適。

  • 場景2,場內有大量標簽(如100張),Q的值如果設定太小,小于7,則會出現(xiàn)大量的沖突。假如設置為5,一共有32個槽計數(shù)器,100個標簽,那么每個槽里面有3個標簽,一定會沖突,讀取效率會降低,所以這個情況的Q一般設置為7。

  • 場景3,場內有10個標簽,Q如果設置過大,比如7,會有128個槽計數(shù)器,數(shù)了128次才清點出來這10個標簽,效率太低。

關于Q算法有很多,在3.3節(jié)有詳細的分析,有興趣的讀者可以詳細研讀相關內容。

02、閱讀器與標簽的握手過程

從應用層看閱讀器讀取標簽,只需要一個簡單的盤點命令,很快就收到讀取的EPC號碼。但是這個讀到標簽的通信過程并非一次簡單的應答,而是通過多次的握手實現(xiàn)的。本節(jié)將詳細講解該握手的過程。通過學習這個握手的過程,讀者可以了解到Reader和Tag如何進行數(shù)據(jù)交互和身份認證,標簽傳達的數(shù)據(jù)是什么。通信握手過程如圖3-7所示。

5.png

圖3-7閱讀器與標簽的握手過程

如圖3-7所示,左邊是閱讀器天線(代表Reader),右邊是電子標簽(代表Tag)。在Gen2協(xié)議中每次的通信握手都是由閱讀器發(fā)起的,閱讀器通過清點命令(Query及其輔助命令QueryAjust QueryRep)獲得標簽的句柄(16B的隨機數(shù),代表標簽在此次清點過程中的身份)。閱讀器通過獲得的句柄,發(fā)送ACK命令(Acknowledge),可以理解為通過“暗號”來獲取標簽的電子編碼信息;標簽返回自己的PC+EPC+CRC信息給閱讀器,其中PC是決定EPC長度的標識段,EPC是閱讀器需要獲得的電子編碼信息,CRC是做校驗用的。此時閱讀器已經獲取了所需要的標簽EPC數(shù)據(jù),如果閱讀器需要對標簽的其它數(shù)據(jù)區(qū)進行操作,需要再要一次句柄Req_RN(Request Random Number),意思就是再做一次身份認證,標簽會再給一個RN16,隨后閱讀器可以繼續(xù)發(fā)送其他指令,如讀、寫、鎖、殺??梢钥吹玫匠哳lRFID的整個通信過程非常簡單,相比Wi-Fi等其他無線通信技術的數(shù)據(jù)認證要簡單很多,其特點就是快速簡單。在多數(shù)的應用中,只需要完成快速的EPC獲取,一般不需要圖3-7中最后那一次握手(Req_RN)。在實際場景中,閱讀器可以實現(xiàn)每秒幾十個甚至上百個標簽的快速識別。圖3-8和圖3-9為單標簽的通信握手過程和多標簽抗沖突的標簽通信握手過程。

6.png

圖3-8單標簽通信握手

7.png

圖3-9多標簽通信握手

關于數(shù)據(jù)區(qū)的處理本小節(jié)不做詳細講解,4.3.2節(jié)會做詳細講解。

閱讀器識別標簽EPC所需要的時間是應用項目中大家最關注的問題。項目中遇到物體快速通過的場景,這時要考慮讀取一個標簽所需的時間。這個時間是由兩部分決定的:超高頻 RFID空中接口的通信時間及閱讀器的通信時間(如網口,串口的通信時間以及閱讀器固件的通信機制,是實時返回還是定時返回等)。一般情況下空中接口部分讀取一個標簽的EPC數(shù)據(jù)的時間不會超過5ms(多標簽情況下),當然這個讀取時間與BLF等眾多空口參數(shù)相關,由于多數(shù)情況下選擇的BLF通信頻率會超過160kHz,具體的時間戳的計算方法這里就不詳細介紹了。5ms這個數(shù)字非常重要,讀者可以通過加上通信時間計算出系統(tǒng)的最快相應時間,從而優(yōu)化閱讀器的工作占空比等參數(shù)。

03、會話層

超高頻RFID空口協(xié)議中,最難理解的參數(shù)是Session(翻譯為會話層)。如表3-4所示,Session共有:S0、S1、S2、S3這四種會話層。(Session SL與這幾個不同,不放在一起介紹)。

Session

標簽進入輻射區(qū)域標簽離開輻射區(qū)域
S0無限時間持續(xù)
S1500ms – 5s500ms – 5s
S2無限時間>2s
S3無限時間>2s

表3-4Session 會話層定義

Session描述的是標簽的狀態(tài)跳轉的條件,其目的是把場內的標簽全部清點完成,針對不同的應用場景采用不同的清點方式,而選擇不同的Session。

每個標簽都有4個會話層,每個會話層都有A和B兩個狀態(tài),默認的初始狀態(tài)為A,當標簽被清點后變成狀態(tài)B,當標簽離開輻射區(qū)域或到達指定時間后狀態(tài)跳轉回A。下面通過一個挑夫數(shù)桃子的例子來解釋Session的意義。假定所有的超高頻RFID標簽都是桃子,且有四個挑夫分別是S0到S3,每個挑夫都有兩個框子,分別是A筐和B框,每個桃子只可能放在其中的一個筐內。默認狀態(tài)為A筐,可以理解為,無論選哪個挑夫任何初始的情況都是所有桃子在A筐中。當一個標簽讀取后(ACK應答后)就會從A筐放入B筐,此處討論Session的不同,就是討論的幾個挑夫的不同特點。

第一個挑夫(S0)一旦離開筐子(閱讀器場強離開標簽),所有B筐內的桃子(標簽)就都立刻(0秒的時間響應)跳回A筐;如果挑夫不離開筐子(標簽一直在場內),則桃子一直留在B筐,當挑夫在A筐內找不到新的桃子則說明所有的桃子都在B筐中;

第二個挑夫(S1)把桃子(標簽)從A筐放入B筐后開始計時,500mS到5S后自動跳回A筐中,無論挑夫在不在筐邊,這個跳回操作都會發(fā)生;

第三個挑夫(S2)和第四個挑夫(S3)的特點是,當離開筐(標簽離開場強)后開始計時,超過2秒后,桃子回到A筐內。

不同Session中的跳轉機制直接影響到標簽的清點效率。對于不同的應用場景需要選擇不同的Session,這樣才能達到Gen2協(xié)議的最佳效率。關于Session的場景使用推薦如下:

  • S0:應用于快速識別場景,如智能交通生產自動化的快速流水線等,主要針對于單個標簽或少量標簽的應用。

  • S1:應用于有一定批量多標簽場景,如一箱服裝,幾個小的貨架管理等。

  • S2、S3:應用于大量標簽場景,如倉庫管理等。

在實際的應用場景中,選擇合適的Session進行操作,才可事半功倍。不同的芯片Session的長度也不同,實際使用中必須了解清楚。比如Alien的H3芯片中S2的時間長達200秒左右。如果一直用S2來讀標簽,等了一分鐘再讀標簽發(fā)現(xiàn)標簽的狀態(tài)還在B沒有回來,如果不會使用Select命令讓標簽從B翻轉到A,只能等待200秒后再做下一次盤點。

04、Select和Mask命令的妙用

Select命令,字面意思是選擇,即在大量的標簽中選擇出所需要特定標簽進行操作。Select命令主要有兩個功能,其一是針對3.2.3節(jié)中Session會話層的A和B進行翻轉設置,另外一個功能就是針對特定類別標簽的選擇操作。

在前面的內容中,我們已經了解了超高頻 RFID的協(xié)議可以支持大批量的標簽識別,但是如果標簽的數(shù)量非常巨大,閱讀器工作量效率會變得非常低。例如在一個倉庫中有幾萬件不同貨物,貨物上裝有超高頻RFID標簽,我們需要找到一個特定的貨物,并把該物品對應標簽的數(shù)據(jù)區(qū)進行更改。試想一下,當你在倉庫里面打開閱讀器對標簽進行盤點的時候,成百上千的標簽都會返回自己的EPC,應用軟件通過EPC號碼判斷是否為所找的物品。按照這種方式需要盤點整個倉庫才有可能完成任務。由于多標簽的讀取需要時間,倉庫管理員需要慢慢對每一個區(qū)域進行詳細的盤點,人力和時間的消耗都非常的大。為了解決這個問題,Gen2協(xié)議設計了Select命令,這個命令的作用是只讓符合特定規(guī)則的一個或一類標簽返回數(shù)據(jù)而其它不符合規(guī)則的標簽完全不響應閱讀器命令,這樣的操作方式可以大大提高識別效率。當然Select命令還有許多作用,比如多標簽的防沖突識別。

如表3-5所示,為Select命令字包含內容。標簽的選擇是通過Select命令和Query命令共同實現(xiàn)的,先發(fā)Select命令再發(fā)Query命令。默認情況下Query命令的參數(shù)為Sel=00、Target=0。

8.png

表3-5Select 命令內容

如表3-5Select 命令內容所示:

Select的命令字Command是1010,是一個非常短的命令字,說明Select命令是常用命令。

Target是針對Session會話層來描述的,指出Select命令針對的是哪個會話層(S0~S3),在尋找少量標簽的時候可以使用任意的會話層。在Target中還存在一個會話層SL,其作用是對標簽的狀態(tài)A和B進行翻轉。

Action是執(zhí)行、動作的意思,其功能是通過SL對標簽狀態(tài)A和B進行翻轉。根據(jù)標簽的數(shù)據(jù)是否匹配,共有8種不同的翻轉情況,如表3-6所示??赡芎芏嘧x者不理解為什么只是翻轉A和B有這么多的可能性呢?這是Gen2協(xié)議的發(fā)明人考慮到了一些復雜的應用場景,并通過Select指令為之提供更高效的多標簽解決方案。最常見的Action配置參數(shù)為000,它的功能是讓匹配(Matching)的標簽變成A狀態(tài),不匹配(Non-Matching)的標簽跳轉到B狀態(tài)。當閱讀器在多標簽盤點時使用該命令,則符合條件的標簽響應閱讀器命令,不符合條件的標簽不做任何應答。

表3-6Select 命令中Action內容

Action匹配不匹配
000保持SL或盤點→A不保持SL或盤點→B
001保持SL或盤點→A無動作
010無動作不保持SL或盤點→B
011取消SL或(A→B,B→A)無動作
100不保持SL或盤點→B保持SL或盤點→A
101不保持SL或盤點→B無動作
110無動作保持SL或盤點→A
111無動作取消SL或(A→B,B→A)

MemBank是英文Memory Bank的簡寫,意思為數(shù)據(jù)存儲區(qū),在Select命令中指對比的數(shù)據(jù)區(qū)。根據(jù)EPC協(xié)議規(guī)范,其數(shù)據(jù)區(qū)一共有四個,分別是密碼區(qū)(RFU)、電子編碼區(qū)(EPC)、廠商編碼區(qū)(TID)、用戶區(qū)(User)。

Pointer是指選擇對比的起始地址;Length是指選擇對比的數(shù)據(jù)長度;Mask是指選擇對比的數(shù)據(jù)內容,由于只有8b協(xié)議長度,最多可以Mask的數(shù)據(jù)內容為256b。當使用Select命令時,需要根據(jù)需求設置存儲區(qū)、指向起始地址、選擇對比數(shù)據(jù)長度。

例如,在一個倉庫中需要盤點EPC前32b是0A/0B/19/29這組數(shù)據(jù)的所有標簽。此時需要使用Select命令,其命令字配置如下:Target=000(S0速度最快);Action=000;MemBank=01;Pointer=2(EPC區(qū)有效其實地址是從2開始);Length=00010000(32b)。通過上述的設置就可以快速的盤點所這批次的標簽了

關于Select和Mask的使用特別多,本節(jié)再介紹兩種高效的使用方法,給它們命名為“排除異己法”“一休哥數(shù)樹法”。

在一些項目中,有競爭對手把他們的標簽攙在了我們的標簽中,我們必須將這些標簽剔除出去,這時使用“排除異己法”。但是這些標簽的EPC數(shù)據(jù)與原有的標簽數(shù)據(jù)是一樣的(EPC可以由客戶改寫)??梢酝ㄟ^對廠商編碼區(qū)TID區(qū)進行Select-Mask,只留下自己的標簽進行操作。一般情況下,自己提供的同一批次同種標簽的TID為相同字段,即使競爭對手使用同樣型號的芯片也無法替代?!芭懦惣悍ā痹趪鴥葢梅浅6?,特別是在智能交通領域,一般電子車牌標簽的TID都是由芯片廠家訂制的,可以輕松的通過Select命令選擇本項目的標簽。

“一休哥數(shù)樹法”主要針對離線環(huán)境中需要對標簽的數(shù)據(jù)區(qū)進行改寫的案例。由于離線操作沒有數(shù)據(jù)庫的認證,對大批量的標簽進行數(shù)據(jù)改寫,會帶來大量的重復操作,同時也無法發(fā)現(xiàn)未執(zhí)行改寫操作的標簽。因此需要Select-Mask命令的幫助,如果一個標簽數(shù)據(jù)區(qū)改寫完成后在它的RFU區(qū)的首位寫入1(默認值為0),然后通過Select命令選擇該存儲位置是0的標簽繼續(xù)進行操作,直到全部的標簽的RFU區(qū)的首位寫入1,所有標簽停止響應(之所以選擇RFU區(qū)的首位,是因為這部分的數(shù)據(jù)一般沒有人使用)。至于為什么叫“一休哥數(shù)樹法”,是小時候看《聰明的一休》得到的創(chuàng)意:一次將軍出了一個難題,要一休把樹林里有多少棵樹統(tǒng)計出來,一休的方法就是用繩子系在樹上,把樹林中的樹都系上繩子,最后計算繩子的數(shù)量就知道有多少棵樹,與這個方法異曲同工。

9.png