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