西克真科技係列!深度刨析超高頻Gen2協議!
還記得之前一期推送,我們介紹了西克超高頻讀寫器內部讀取邏輯麼?(點擊藍字回顧往期文章)
我wo們men在zai之zhi前qian的de推tui送song介jie紹shao過guo,除chu了le市shi麵mian常chang見jian讀du寫xie器qi讀du寫xie功gong能neng外wai,西xi克ke讀du寫xie器qi還hai配pei備bei了le強qiang大da的de標biao簽qian和he數shu據ju處chu理li功gong能neng,用yong來lai輔fu助zhu對dui標biao簽qian信xin息xi進jin行xing多duo次ci過guo濾lv和he加jia工gong,從cong而er減jian少shao上shang位wei機ji的de工gong作zuo量liang。

當我們在麵對實際的應用時候,我們不僅可以利用這個強大的數據處理功能,我們也可以合理利用超高頻現有規範,來改善讀取效果。
今天,就讓我們開始進行新的硬核討論:讓我們透視下EPC Class1 Gen 2,也就是我們常說的ISO18000-6C協議規範裏有哪些玄機。
在2004年EPC Global組織聯合全球數十個頂尖科技企業,在經過多次更新後發布的EPC Class1 Generation 2(簡稱Gen2)空中接口協議硬件標準,一年半後ISO經過核準將其寫入了ISO18000-6標準,並作為C類也就是超高頻RFID標準。
gaibiaozhunwulunshizaiyingjiantongyongxing,jishuxingnengyijichengbenheketuozhanxingshangdoujuyoujiaodadeyoushi。jiranshitongyongbiaozhun,lejieqizhongtongxunguizehuiduiwomenshishichaogaopinxiangmuzhongqidaohendade“避坑”作用。
我們今天了先解下幾個關鍵信息:
盤存 Inventory
超chao高gao頻pin讀du寫xie器qi在zai工gong作zuo時shi候hou,會hui通tong過guo無wu線xian電dian載zai波bo向xiang外wai發fa出chu訊xun號hao並bing開kai始shi執zhi行xing盤pan存cun過guo程cheng,這zhe一yi步bu會hui包bao含han多duo種zhong命ming令ling,隻zhi有you當dang這zhe一yi步bu順shun利li完wan成cheng時shi候hou,射she頻pin範fan圍wei內nei的de可ke讀du標biao簽qian才cai能neng夠gou被bei正zheng確que讀du取qu,反fan之zhi則ze無wu法fa正zheng確que讀du取qu。這zhe也ye是shi包bao括kuo西xi克ke在zai內nei大da多duo數shu超chao高gao頻pin閱yue讀du器qi開kai始shi工gong作zuo的de關guan鍵jian一yi步bu。
西克讀寫器在默認出場時候已經配置好適用於大多數場景的盤存算法設置(Inventory-algorithm),用戶也可根據實際需求直接使用可視化頁麵進行高階配置。
詢問命令 Query
該命令是6C標準中的關鍵命令,正是因為這個命令超高頻6C標準才能夠實現多標簽“防碰撞”的讀取效果,從而大批量讀取標簽。在6C標準下的讀寫器使用的是半雙工通訊方式,也就是由讀寫器主動發起通信,而後標簽返回信息,你一句我一句往複完成通訊的。
在閱讀器發送Query命令時候,會自帶一個參數Q,這個Q的值決定了整個射頻係統的清點效率。為什麼這麼說?按照協議描述,Q的值可以設定為0~15的整數,標簽收到命令後會從0~2Q隨機產生一個數字作為標簽的應答槽。
讀寫器可以讓標簽應答槽中的數字不斷變小直至為0,此時標簽返回一個16位的隨機數(RN16)與讀寫器通訊。我們可以理解為標簽會有一個隨即響應概率,該值為

由此可見合適的Q值對於多標簽的讀取效率有很大關係。
例如Q為0時候,那麼隨機數隻能為1,如果出現多標簽的時候就會發生衝突,多標簽就無法讀取;又如環境中有5個標簽,Q值設置為10,則會有1024個槽計數器,理論上需要數1024次才能盤存出這5個標簽,效率就又太低。阿傑也會在後續文章和大家討論Q算法。
但是需要記住,西克讀寫器可以直接在可視化界麵對Q值進行定義。
讀寫器與標簽響應過程
我們參考協議中單標簽響應過程:

在讀寫過程中每次均為讀寫器發出清點命令(Query/QueryAjust/QueryReq)獲取標簽的16位隨機數(RN16),此數值代表了標簽在此次清點過程中的身份信息,讀寫器獲得該隨機數後發送ACK命令(Acknowledge)進而獲取標簽的編碼信息,包括PC,常用的EPC和CRC值。
到此為止,讀寫器獲取的EPC信息已經可以滿足用戶進行使用,如果用戶需要對標簽的其他數據區進行操作,讀寫器會再發送一次Req_RN(Request Random Number)指令,也就是再做身份信息獲取動作,然後標簽再返回RN16,然後讀寫器再進行讀寫或者鎖殺等操作。
這也是為什麼我們建議通常進行托盤追溯或非大容量應用中,我們建議使用EPC作為被標記物的信息儲存區,因為這樣可以大大加快讀取速度。
會話層 Session
這是一個非常有趣的參數,我們首先看下協議中對於這個參數的解釋是什麼:

阿傑嚐試多次在實戰中反複理解這段話,總結下就是:Sessionjiushibiaoqianduxieshihoudetiaozhuantiaojian,mubiaoshijiangshepinfugaiquyuneisuoyoubiaoqianquanbupancundao,yonghukeyizhenduibutongchangjingxuanyongbutonghuihuacenglaishixianbutongpancunfangshijinergaoxiaolvpancun。xuyaozhuyideshizhelideSession和後續的Session SL是兩個不同概念。
我們看下協議中的這個圖:

每個標簽進入射頻區域後都會有4個會話層,每個會話層都有兩個狀態A和B,默認初始狀態為A,在標簽響應ACK命令後狀態會被更改為B,當標簽離開射頻區域後,或按照IC種類不同達到一定時間後狀態又會變為A。
首先假設標簽已經被放入了射頻區域內,那麼此時狀態一定是A,我們先在舉例幾個場景:
S0條件下,所有標簽一旦離開射頻區域內,狀態則會立刻變為A;如果標簽不離開射頻區域,則標簽一定會是B狀態,如果讀寫器一直找不到A狀態標簽,則可以理解為標簽均為B狀態,也就是讀寫器完成了本盤存。
S1條件下,標簽從A狀態變為B狀態開始計時,500ms~5s後狀態會自動轉變為A,無論標簽是不是在射頻場內這個狀態更改必定會發生。
S2和S3條件下,當標簽離開射頻區域內開始計時,至少2s後標簽返回A狀態。這裏的時間取決於IC廠家設計的不同。
可見不同的條件標簽的盤存效率會有不同,需要針對不同場景進行優化以達到可靠的讀取效果,例如S2和S3就是用於超大量標簽盤存,S0就比較適合單標簽應用等。


歡迎您在評論區留言
告訴我們您對本次推文的看法







