還記得之前一期推送,我們介紹了西克超高頻讀寫器內(nèi)部讀取邏輯么?(點(diǎn)擊藍(lán)字回顧往期文章)
我們?cè)谥暗耐扑徒榻B過,除了市面常見讀寫器讀寫功能外,西克讀寫器還配備了強(qiáng)大的標(biāo)簽和數(shù)據(jù)處理功能,用來(lái)輔助對(duì)標(biāo)簽信息進(jìn)行多次過濾和加工,從而減少上位機(jī)的工作量。

當(dāng)我們?cè)诿鎸?duì)實(shí)際的應(yīng)用時(shí)候,我們不僅可以利用這個(gè)強(qiáng)大的數(shù)據(jù)處理功能,我們也可以合理利用超高頻現(xiàn)有規(guī)范,來(lái)改善讀取效果。
今天,就讓我們開始進(jìn)行新的硬核討論:讓我們透視下EPC Class1 Gen 2,也就是我們常說(shuō)的ISO18000-6C協(xié)議規(guī)范里有哪些玄機(jī)。
在2004年EPC Global組織聯(lián)合全球數(shù)十個(gè)頂尖科技企業(yè),在經(jīng)過多次更新后發(fā)布的EPC Class1 Generation 2(簡(jiǎn)稱Gen2)空中接口協(xié)議硬件標(biāo)準(zhǔn),一年半后ISO經(jīng)過核準(zhǔn)將其寫入了ISO18000-6標(biāo)準(zhǔn),并作為C類也就是超高頻RFID標(biāo)準(zhǔn)。
該標(biāo)準(zhǔn)無(wú)論是在硬件通用性,技術(shù)性能以及成本和可拓展性上都具有較大的優(yōu)勢(shì)。既然是通用標(biāo)準(zhǔn),了解其中通訊規(guī)則會(huì)對(duì)我們實(shí)施超高頻項(xiàng)目中起到很大的“避坑”作用。
我們今天了先解下幾個(gè)關(guān)鍵信息:
盤存 Inventory
超高頻讀寫器在工作時(shí)候,會(huì)通過無(wú)線電載波向外發(fā)出訊號(hào)并開始執(zhí)行盤存過程,這一步會(huì)包含多種命令,只有當(dāng)這一步順利完成時(shí)候,射頻范圍內(nèi)的可讀標(biāo)簽才能夠被正確讀取,反之則無(wú)法正確讀取。這也是包括西克在內(nèi)大多數(shù)超高頻閱讀器開始工作的關(guān)鍵一步。
西克讀寫器在默認(rèn)出場(chǎng)時(shí)候已經(jīng)配置好適用于大多數(shù)場(chǎng)景的盤存算法設(shè)置(Inventory-algorithm),用戶也可根據(jù)實(shí)際需求直接使用可視化頁(yè)面進(jìn)行高階配置。
詢問命令 Query
該命令是6C標(biāo)準(zhǔn)中的關(guān)鍵命令,正是因?yàn)檫@個(gè)命令超高頻6C標(biāo)準(zhǔn)才能夠?qū)崿F(xiàn)多標(biāo)簽“防碰撞”的讀取效果,從而大批量讀取標(biāo)簽。在6C標(biāo)準(zhǔn)下的讀寫器使用的是半雙工通訊方式,也就是由讀寫器主動(dòng)發(fā)起通信,而后標(biāo)簽返回信息,你一句我一句往復(fù)完成通訊的。
在閱讀器發(fā)送Query命令時(shí)候,會(huì)自帶一個(gè)參數(shù)Q,這個(gè)Q的值決定了整個(gè)射頻系統(tǒng)的清點(diǎn)效率。為什么這么說(shuō)?按照協(xié)議描述,Q的值可以設(shè)定為0~15的整數(shù),標(biāo)簽收到命令后會(huì)從0~2Q隨機(jī)產(chǎn)生一個(gè)數(shù)字作為標(biāo)簽的應(yīng)答槽。
讀寫器可以讓標(biāo)簽應(yīng)答槽中的數(shù)字不斷變小直至為0,此時(shí)標(biāo)簽返回一個(gè)16位的隨機(jī)數(shù)(RN16)與讀寫器通訊。我們可以理解為標(biāo)簽會(huì)有一個(gè)隨即響應(yīng)概率,該值為

由此可見合適的Q值對(duì)于多標(biāo)簽的讀取效率有很大關(guān)系。
例如Q為0時(shí)候,那么隨機(jī)數(shù)只能為1,如果出現(xiàn)多標(biāo)簽的時(shí)候就會(huì)發(fā)生沖突,多標(biāo)簽就無(wú)法讀取;又如環(huán)境中有5個(gè)標(biāo)簽,Q值設(shè)置為10,則會(huì)有1024個(gè)槽計(jì)數(shù)器,理論上需要數(shù)1024次才能盤存出這5個(gè)標(biāo)簽,效率就又太低。阿杰也會(huì)在后續(xù)文章和大家討論Q算法。
但是需要記住,西克讀寫器可以直接在可視化界面對(duì)Q值進(jìn)行定義。
讀寫器與標(biāo)簽響應(yīng)過程
我們參考協(xié)議中單標(biāo)簽響應(yīng)過程:

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

阿杰嘗試多次在實(shí)戰(zhàn)中反復(fù)理解這段話,總結(jié)下就是:Session就是標(biāo)簽讀寫時(shí)候的跳轉(zhuǎn)條件,目標(biāo)是將射頻覆蓋區(qū)域內(nèi)所有標(biāo)簽全部盤存到,用戶可以針對(duì)不同場(chǎng)景選用不同會(huì)話層來(lái)實(shí)現(xiàn)不同盤存方式進(jìn)而高效率盤存。需要注意的是這里的Session和后續(xù)的Session SL是兩個(gè)不同概念。
我們看下協(xié)議中的這個(gè)圖:

每個(gè)標(biāo)簽進(jìn)入射頻區(qū)域后都會(huì)有4個(gè)會(huì)話層,每個(gè)會(huì)話層都有兩個(gè)狀態(tài)A和B,默認(rèn)初始狀態(tài)為A,在標(biāo)簽響應(yīng)ACK命令后狀態(tài)會(huì)被更改為B,當(dāng)標(biāo)簽離開射頻區(qū)域后,或按照IC種類不同達(dá)到一定時(shí)間后狀態(tài)又會(huì)變?yōu)锳。
首先假設(shè)標(biāo)簽已經(jīng)被放入了射頻區(qū)域內(nèi),那么此時(shí)狀態(tài)一定是A,我們先在舉例幾個(gè)場(chǎng)景:
S0條件下,所有標(biāo)簽一旦離開射頻區(qū)域內(nèi),狀態(tài)則會(huì)立刻變?yōu)锳;如果標(biāo)簽不離開射頻區(qū)域,則標(biāo)簽一定會(huì)是B狀態(tài),如果讀寫器一直找不到A狀態(tài)標(biāo)簽,則可以理解為標(biāo)簽均為B狀態(tài),也就是讀寫器完成了本盤存。
S1條件下,標(biāo)簽從A狀態(tài)變?yōu)锽狀態(tài)開始計(jì)時(shí),500ms~5s后狀態(tài)會(huì)自動(dòng)轉(zhuǎn)變?yōu)锳,無(wú)論標(biāo)簽是不是在射頻場(chǎng)內(nèi)這個(gè)狀態(tài)更改必定會(huì)發(fā)生。
S2和S3條件下,當(dāng)標(biāo)簽離開射頻區(qū)域內(nèi)開始計(jì)時(shí),至少2s后標(biāo)簽返回A狀態(tài)。這里的時(shí)間取決于IC廠家設(shè)計(jì)的不同。
可見不同的條件標(biāo)簽的盤存效率會(huì)有不同,需要針對(duì)不同場(chǎng)景進(jìn)行優(yōu)化以達(dá)到可靠的讀取效果,例如S2和S3就是用于超大量標(biāo)簽盤存,S0就比較適合單標(biāo)簽應(yīng)用等。


歡迎您在評(píng)論區(qū)留言
告訴我們您對(duì)本次推文的看法
|