RFID標(biāo)簽 6C EPC Class1 Gen2常見問題標(biāo)準(zhǔn)解析
符合EPC Class1 Gen2(簡稱G2)協(xié)議V109版的電子標(biāo)簽(Tag,簡稱標(biāo)簽)和Reader(讀寫器),應(yīng)該具有下述的特性。
Q1:標(biāo)簽存儲器分為哪幾個區(qū)?
A:Tag memory(標(biāo)簽內(nèi)存)分為Reserved(保留),EPC(電子產(chǎn)品代碼),TID(標(biāo)簽識別號)和User(用戶)四個獨立的存儲區(qū)塊(Bank)。
Reserved區(qū):存儲Kill Password(滅活口令)和Access Password(訪問口令)。
EPC區(qū):存儲EPC號碼等。
TID區(qū):存儲標(biāo)簽識別號碼,每個TID號碼應(yīng)該是唯一的。
User區(qū):存儲用戶定義的數(shù)據(jù)。
此外還有各區(qū)塊的Lock(鎖定)狀態(tài)位等用到的也是存儲性質(zhì)的單元。
Q2:標(biāo)簽有哪幾種狀態(tài)?
A:收到連續(xù)波(CW)照射即上電(Power-up)以后,標(biāo)簽可處于Ready(準(zhǔn)備),Arbitrate(裁斷),Reply(回令),Acknowledged(應(yīng)答),Open(公開),Secured(保護),Killed(滅活)七種狀態(tài)之一。
1、Ready狀態(tài)是未被滅活的標(biāo)簽上電以后,開始所處的狀態(tài),準(zhǔn)備響應(yīng)命令。
2、在Arbitrate狀態(tài),主要為等待響應(yīng)Query等命令。
3、響應(yīng)Query后,進(jìn)入Reply狀態(tài),進(jìn)一步將響應(yīng)ACK命令就可以發(fā)回EPC號碼。
4、發(fā)回EPC號碼后,進(jìn)入Acknowledged狀態(tài),進(jìn)一步可以響應(yīng)Req_RN命令。
5、Access Password不為0才可以進(jìn)入Open狀態(tài),在此進(jìn)行讀、寫操作。
6、已知Access Password才可能進(jìn)入Secured狀態(tài),進(jìn)行讀、寫、鎖定等操作。
7、進(jìn)入到Killed狀態(tài)的標(biāo)簽將保持狀態(tài)不變,永遠(yuǎn)不會產(chǎn)生調(diào)制信號以激活射頻場,從而永久失效。被滅活的標(biāo)簽在所有環(huán)境中均應(yīng)保持Killed狀態(tài),上電即進(jìn)入滅活狀態(tài)。滅活操作不可逆轉(zhuǎn)。
要使標(biāo)簽進(jìn)入某一狀態(tài)一般需要適當(dāng)次序的一組合法命令,反過來各命令也只能當(dāng)標(biāo)簽在適當(dāng)?shù)臓顟B(tài)下才能有效,標(biāo)簽響應(yīng)命令后也會轉(zhuǎn)到其他狀態(tài)。
Q3:命令分為哪幾類?
A:從命令體系架構(gòu)和擴展性角度,分為Mandatory(必備的),Optional(可選的), Proprietary (專有的)和Custom(定制的)四類。
從使用功能上看,分為標(biāo)簽Select(選取),Inventory(盤點)和Access(存?。┟钊悺?br/>此外還為了以后命令擴展,預(yù)留了長短不同的編碼待用。
Q4:必備的(Mandatory)命令有哪些?
A:符合G2協(xié)議的標(biāo)簽和讀寫器,應(yīng)該支持必備的命令有十一條:Select(選擇),Query(查詢), QueryAdjust(調(diào)節(jié)查詢), QueryRep(重復(fù)查詢), ACK(EPC答復(fù)), NAK(轉(zhuǎn)向裁斷), Req_RN(隨機數(shù)請求),Read(讀),Write(寫),Kill(滅活),Lock(鎖定)。
Q5:可選的(Optional)命令有哪些?
A:符合G2協(xié)議的標(biāo)簽和讀寫器,支持也可以不支持可選的命令有三條:Access(訪問),BlockWrite(塊寫),BlockErase(塊擦除)。
Q6:專有的(Proprietary)命令會是什么?
A:專有的命令一般用于制造目的,如標(biāo)簽內(nèi)部測試等,標(biāo)簽出廠后這樣的命令應(yīng)該永久失效。
Q7:定制的(Custom)命令會有哪些?
A:可以是制造商自己定義而開放給用戶使用的命令,如Philips公司提供有:BlockLock(塊鎖定),ChangeEAS(改EAS狀態(tài)),EASAlarm(EAS報警)等命令(EAS是商品電子防盜竊系統(tǒng)Electronic Article Surveillance的縮寫)。
Q8:選?。⊿elect)類命令有哪些?
A:僅有一條:Select,是必備的。
標(biāo)簽有多種屬性,基于用戶設(shè)定的標(biāo)準(zhǔn)和策略,使用Select命令,改變某些屬性和標(biāo)志就人為選擇或圈定了一個特定的標(biāo)簽群,可以只對它們進(jìn)行盤點識別或存取操作,這樣有利于減少沖突和重復(fù)識別,加快識別速度。
Q9:盤點(Inventory)類命令有哪些?
A:有五條:Query, QueryAdjust, QueryRep, ACK, NAK,都是必備的。
1、標(biāo)簽收到有效Query命令后,符合設(shè)定標(biāo)準(zhǔn)被選擇的每個標(biāo)簽產(chǎn)生一個隨機數(shù)(類似擲骰子),而隨機數(shù)為零的每個標(biāo)簽,都將產(chǎn)生回響(發(fā)回臨時口令RN16--一個16-bit隨機數(shù)),并轉(zhuǎn)移到Reply狀態(tài);符合另一些條件的標(biāo)簽會改變某些屬性和標(biāo)志,從而退出上述標(biāo)簽群,有利于減少重復(fù)識別。
2、標(biāo)簽收到有效QueryAdjust命令后,只是各標(biāo)簽分別新產(chǎn)生一個隨機數(shù)(象重擲骰子),其他同Query。
3、標(biāo)簽收到有效QueryRep命令后,只對標(biāo)簽群中的每個標(biāo)簽原有的隨機數(shù)減一,其他同Query。
4、僅單一化的標(biāo)簽才能收到有效ACK命令(使用上述RN16,或句柄Handle--一個臨時代表標(biāo)簽身份的16-bit隨機數(shù)。此為一種安全機制?。?,收到后,發(fā)回EPC區(qū)中的內(nèi)容??EPC協(xié)議最基本的功能。
5、標(biāo)簽收到有效NAK命令后,除了處于Ready、Killed的保持原狀態(tài)外,其它情況都轉(zhuǎn)到Arbitrate狀態(tài)。
Q10:存取(Access)類命令有哪些?
A:有五條必備的:Req_RN,Read,Write,Kill,Lock, 和三條可選的:Access,BlockWrite,BlockErase。
1、RFID標(biāo)簽收到有效Req_RN(with RN16 or Handle)命令后,發(fā)回句柄,或新的RN16,視狀態(tài)而不同。
2、RFID標(biāo)簽收到有效Read(with Handle)命令后,發(fā)回出錯類型代碼,或所要求區(qū)塊的內(nèi)容和句柄。
3、RFID標(biāo)簽收到有效Write(with RN16 & Handle)命令后,發(fā)回出錯類型代碼,或?qū)懗晒桶l(fā)回句柄。
4、RFID標(biāo)簽收到有效Kill(with Kill Password,RN16 & Handle)命令后,發(fā)回出錯類型代碼,或滅活成功就發(fā)回句柄。
5、RFID標(biāo)簽收到有效Lock(with Handle)命令后,發(fā)回出錯類型代碼,或鎖定成功就發(fā)回句柄。
6、RFID標(biāo)簽收到有效Access(with Access Password,RN16 & Handle)命令后,發(fā)回句柄。
7、RFID標(biāo)簽收到有效BlockWrite(with Handle)命令后,發(fā)回出錯類型代碼,或塊寫成功就發(fā)回句柄。
8、RFID標(biāo)簽收到有效BlockErase(with Handle)命令后,發(fā)回出錯類型代碼,或塊擦除成功就發(fā)回句柄。
Q11:所謂沖突(collisions)是怎么回事,怎樣抗沖突?G2用什么機制抗沖突的?
A:按上述Q9解答中提到的,當(dāng)有不止一個隨機數(shù)為零的標(biāo)簽各發(fā)回不同的RN16時,它們在接收天線上會出現(xiàn)不同RN16的波形迭加,也即所謂沖突(collisions),從而不能正確解碼。有多種抗沖突機制可以避免波形迭加變形,例如設(shè)法(時分)使某時刻只有一個標(biāo)簽“發(fā)言”,接著再單一化處理,就能識別讀寫多張標(biāo)簽中的每一張標(biāo)簽。
上述三條Q字頭的命令體現(xiàn)了G2的抗沖突機制:隨機數(shù)為零的標(biāo)簽才能發(fā)回RN16,若同時有多個標(biāo)簽隨機數(shù)為零,而不能正確解碼,就策略性地重發(fā)Q字頭的命令或組合,給被選擇的標(biāo)簽群,直到能正確解碼。
Q12:標(biāo)簽識別號(TID)應(yīng)該具有唯一性嗎?怎樣達(dá)成?
A:標(biāo)簽識別號TID(Tag identifier)是標(biāo)簽之間身份區(qū)別的標(biāo)志(可以類比于鈔票的編號)。從安全和防偽角度考慮,任何兩張G2標(biāo)簽不應(yīng)該完全相同,標(biāo)簽應(yīng)該具有唯一性;從上述Q1的解答中我們知道,標(biāo)簽四個存儲區(qū)塊各有用處,出廠后有的還能隨時改寫,只有TID應(yīng)該也可以擔(dān)當(dāng)此任,所以標(biāo)簽的TID應(yīng)該具有唯一性。
出廠前 G2芯片的生產(chǎn)廠家應(yīng)使用Lock命令或其他手段作用于TID,使之永久鎖定;并且生產(chǎn)廠家或有關(guān)組織應(yīng)該保證每個G2芯片適當(dāng)長度的TID是唯一的,任何情況下不會有第二個同樣的TID,即使某G2標(biāo)簽處于Killed狀態(tài)不會被激活再使用,它的TID(仍在此標(biāo)簽中)也不會出現(xiàn)在另一張G2標(biāo)簽中。
這樣由于TID是唯一的,雖然標(biāo)簽上的EPC碼等可以被復(fù)制到另一張標(biāo)簽上去,也能通過標(biāo)簽上的TID加以區(qū)分,從而正本清源。此種架構(gòu)和方法簡單可行,但要注意保證唯一性的邏輯鏈。
V109版的G2協(xié)議對TID的規(guī)定,必須的僅有32-bit(包括8-bit allocation class identifier,12-bit tag mask-designer identifier,12-bit tag model number);對更多位的bit,如SNR(serial number序列號),說的是“Tags may contain”,而非“should”。但由于EPC號碼被設(shè)計成會用到區(qū)分單件商品上,32-bit大概是不夠用的,應(yīng)該具有SNR。G2協(xié)議修訂或者Class 2等會考慮這些的吧。
Q13:G2協(xié)議中的滅活(Kill)命令效果怎么樣?能否重新使用已滅活的標(biāo)簽?
A:G2協(xié)議設(shè)置了Kill命令,并且用32-bit的密碼來控制,有效使用Kill命令后標(biāo)簽永遠(yuǎn)不會產(chǎn)生調(diào)制信號以激活射頻場,從而永久失效。但原來的數(shù)據(jù)可能還在標(biāo)簽中,若想讀取它們并非完全不可能,可以考慮改善Kill命令的含義--附帶擦除這些數(shù)據(jù)。果然如此的話,人們應(yīng)該可以徹底放心了。
此外在一定時期內(nèi),由于G2標(biāo)簽使用的成本或其他原因,會考慮到兼顧標(biāo)簽?zāi)苤貜?fù)使用的情況(如用戶要周轉(zhuǎn)使用帶標(biāo)簽的托盤、箱子,內(nèi)容物更換后相應(yīng)的EPC號碼、User區(qū)內(nèi)容要改寫;更換或重新貼裝標(biāo)簽所費不菲、不方便;等等),需要即使被永久鎖定了的標(biāo)簽內(nèi)容也能被改寫的命令,因為不同鎖定狀態(tài)的影響,僅用Write或BlockWrite,BlockErase命令,不一定能改寫EPC號碼、User內(nèi)容或者Password(如標(biāo)簽的EPC號碼被鎖定從而不能被改寫,或未被鎖定但忘了這個標(biāo)簽的Access Password而不能去改寫EPC號碼)。這樣就產(chǎn)生了一個需求,需要一個簡單明了的Erase命令--除了TID區(qū)及其Lock狀態(tài)位(標(biāo)簽出廠后TID不能被改寫),其他EPC號碼、Reserved區(qū)、User區(qū)的內(nèi)容和其它的Lock狀態(tài)位,即使是永久鎖定了的,也將全部被擦除以備重寫。
比較起來,改善的Kill命令和增加的Erase命令功能基本相同(包括應(yīng)該都使用Kill Password),區(qū)別僅在于前者Kill命令使不產(chǎn)生調(diào)制信號,這樣也可以統(tǒng)一歸到由Kill命令所帶參數(shù)RFU的不同值來考慮。
Q14:G2中訪問(Access)等命令是可選的,若RFID標(biāo)簽或讀寫器不支持可選的命令怎么辦?
A:若不支持BlockWrite或BlockErase命令,完全可以由Write命令(一次寫16-bit)多使用幾次代替,因為擦除可以認(rèn)為是寫0,前者塊寫、塊擦除的塊是幾倍的16-bit,其他使用條件類似。
若不支持Access命令,只有Access Password為0,才可進(jìn)入Secured狀態(tài),才能使用Lock命令。在Open或Secured狀態(tài)里都可以改變Access Password,之后再使用Lock命令鎖定或永久鎖定Access Password的話(pwd-read/write位為1,permalock位為0或1,參考附表),則標(biāo)簽再也進(jìn)不了Secured狀態(tài)了,也再不能使用Lock命令去改變?nèi)魏捂i定狀態(tài)了。
若支持Access命令,才可能使用相應(yīng)的命令自由進(jìn)入全部各種狀態(tài),除了標(biāo)簽被永久鎖定或永久不鎖而拒絕執(zhí)行某些命令和處于Killed狀態(tài)以外,也多能有效執(zhí)行各個命令。
G2協(xié)議規(guī)定的Access命令屬于Optional可選的,但日后若能讓Access命令成為必備的或者廠商生產(chǎn)對G2標(biāo)簽和讀寫器都支持Access命令的話,則控制和使用起來將比較靈活和全面。