今天來講Select和Mask!
先記住這張圖,我們RFU6xx系列讀寫器的工作邏輯!
首先來看Select命令,顧名思義就是中文的“選擇”。我們知道Gen2的防碰撞機制可以使得讀寫器能夠讀取大量的標簽,但同時又會降低讀寫器的工作效率,假設一個工廠內部,商品,托盤甚至包括員工衣物上都有射頻標簽,這樣我們想讀取到一個特定標簽的內容時候,不僅容易讀錯而且就算讀取到了整個讀取過程效率也會變慢。
基于此,該協議設計了Select命令。這個命令主要有兩個功能,一個是對之前講到的會話層Session進行翻轉設置,另一個就是解決上面提到的對標簽進行預“選擇”。這樣能夠使讀寫器只讓一類甚至一個標簽返回數據,而讓不相關的標簽就算讀到了也完全不響應讀寫器命令,從而大大提高處理效率。
我們看下Gen2協議中對于Select命令內容是怎么解釋的:
我們對表格稍作解釋:
Select命令描述為1010;
Target是對會話層Session的描述,指出Select命令針對的是哪個會話層(S0~S3)。這里還有個會話層是SL,是對標簽狀態A和B進行翻轉操作;
Action是執行,其功能是是通過SL對標簽狀態A和B進行翻轉,根據標簽的數據是否匹配會有8種情況,在上圖第二個表格中顯示。通過Action配置參數,能夠讓Mactching(匹配)的標簽變為A狀態,Non-Matching(不匹配)的標簽跳轉到B狀態。這樣通過使用這種功能可以讓符合條件的標簽響應讀寫器命令,同時不符合的不進行任何響應。
MemBank為儲存區,可以指定的儲存區有,保留區(RFU)、電子編碼區(EPC)、廠家編碼區(TID)和用戶區(User);
Pointer是指選擇對比的起始地址,Length是指選擇對比的數據長度,Mask即指選擇對比的區域是哪些。
上述提到的功能,可以通過RFU6xx的Sopas程序界面中,找到Select Mask選項,直接進行可視化操作,非常方便使用。
這個功能到底有啥實戰意義呢?
舉個例子,假設場之前我們提到一個工廠的場景中出現了很多用戶根本不想操作的標簽,我們可以很簡單的使用Select找到我們想操作的標簽特征值,進而只讓屬于我們項目的標簽進行響應;
反之再比如,如果環境中有大量的標簽需要寫入,且現實條件用戶無法實現一個個依次寫入,我們可以通過標記已寫入信息的標簽的某個數據位為特征值,然后篩選出來不具有特征值的標簽進行寫入操作,這樣讀寫器就可以盡可能高的效率寫入標簽,直到無標簽響應的時候則證明環境中標簽完全寫入。
(轉載:西克)