RFID UHF(EPC)標籤使用常識

文章複製來的,原做者原文點擊這裏

如今作UHF應用的愈來愈多了,如何根據實際應用設計系統以達到更佳的使用效果,其中對UHF標籤相關內容的瞭解相當重要,不少朋友對標籤的瞭解很少,在此不才,整理了一些資料,供你們參考,有出入的地方歡迎各位鞋童多拍磚頭,你們一塊兒來探討,最後達到你好,我好,你們都好的效果。      符合EPC Class1 Gen2(簡稱G2)協議V109版的電子標籤(Tag,簡稱標籤)和Reader(讀寫器),應該具備下述的特性。html

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(滅活)七種狀態之一。
一、Ready狀態是未被滅活的標籤上電之後,開始所處的狀態,準備響應命令。
二、在Arbitrate狀態,主要爲等待響應Query等命令。
三、響應Query後,進入Reply狀態,進一步將響應ACK命令就能夠發回EPC號碼。
四、發回EPC號碼後,進入Acknowledged狀態,進一步能夠響應Req_RN命令。
五、Access Password不爲0才能夠進入Open狀態,在此進行讀、寫操做。
六、已知Access Password纔可能進入Secured狀態,進行讀、寫、鎖定等操做。
七、進入到Killed狀態的標籤將保持狀態不變,永遠不會產生調製信號以激活射頻場,從而永久失效。被滅活的標籤在全部環境中均應保持Killed狀態,上電即進入滅活狀態。滅活操做不可逆轉。
要使標籤進入某一狀態通常須要適當次序的一組合法命令,反過來各命令也只能當標籤在適當的狀態下才能有效,標籤響應命令後也會轉到其餘狀態。架構

Q3:命令分爲哪幾類?


A:從命令體系架構和擴展性角度,分爲Mandatory(必備的),Optional(可選的), Proprietary (專有的)和Custom(定製的)四類。
從使用功能上看,分爲標籤Select(選取),Inventory(盤點)和Access(存取)命令三類。
此外還爲了之後命令擴展,預留了長短不一樣的編碼待用。ide

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的縮寫)。htm

Q8:選取(Select)類命令有哪些?


A:僅有一條:Select,是必備的。
標籤有多種屬性,基於用戶設定的標準和策略,使用Select命令,改變某些屬性和標誌就人爲選擇或圈定了一個特定的標籤羣,能夠只對它們進行盤點識別或存取操做,這樣有利於減小衝突和重複識別,加快識別速度。blog

Q9:盤點(Inventory)類命令有哪些?


A:有五條:Query, QueryAdjust, QueryRep, ACK, NAK,都是必備的。
一、標籤收到有效Query命令後,符合設定標準被選擇的每一個標籤產生一個隨機數(相似擲骰子),隨機數位數爲Q,而隨機數爲零的每一個標籤,都將產生迴響(發回臨時口令RN16--一個16-bit隨機數),並轉移到Reply狀態;符合另外一些條件的標籤會改變某些屬性和標誌,從而退出上述標籤羣,有利於減小重複識別。
二、標籤收到有效QueryAdjust命令後,Q值加1或減1後從新新產生一個隨機數(象重擲骰子),其餘同Query。
三、標籤收到有效QueryRep命令後,只對標籤羣中的每一個標籤原有的隨機數減一,其餘同Query。
四、僅單一化的標籤才能收到有效ACK命令(使用上述RN16,或句柄Handle--一個臨時表明標籤身份的16-bit隨機數。此爲一種安全機制!),收到後,發回EPC區中的內容??EPC協議最基本的功能。
五、標籤收到有效NAK命令後,除了處於Ready、Killed的保持原狀態外,其它狀況都轉到Arbitrate狀態。ip

Q10:存取(Access)類命令有哪些?


A:有五條必備的:Req_RN,Read,Write,Kill,Lock, 和三條可選的:Access,BlockWrite,BlockErase。
一、標籤收到有效Req_RN(with RN16 or Handle)命令後,發回句柄,或新的RN16,視狀態而不一樣。
二、標籤收到有效Read(with Handle)命令後,發回出錯類型代碼,或所要求區塊的內容和句柄。
三、標籤收到有效Write(with RN16 & Handle)命令後,發回出錯類型代碼,或寫成功就發回句柄。
四、標籤收到有效Kill(with Kill Password,RN16 & Handle)命令後,發回出錯類型代碼,或滅活成功就發回句柄。
五、標籤收到有效Lock(with Handle)命令後,發回出錯類型代碼,或鎖定成功就發回句柄。
六、標籤收到有效Access(with Access Password,RN16 & Handle)命令後,發回句柄。
七、標籤收到有效BlockWrite(with Handle)命令後,發回出錯類型代碼,或塊寫成功就發回句柄。
八、標籤收到有效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命令的話,則控制和使用起來將比較靈活和全面.

Q15:G2中Immediate Tag reply、Delayed Tag reply、in-process reply ?

A:

An immediate Tag reply is a reply that meets T1 specified in Table 6.16.

對於多數指令,閱讀器發送指令後標籤在馬上回應(對應時間控制參數T1)
A delayed Tag reply is a reply that meets T5 specified in Table 6.16.

對於某些指令,閱讀器發送命令後,標籤須要必定的時間才能完成操做並回應,標籤可能會延長必定的時間再回應(對應時間控制參數T5)
當閱讀器發送一個delayed reply指令後,閱讀器應該要發送一段時間長度至少爲Min(Treply,T5(max))的CW波,閱讀器可能會觀測到如下三種狀況

  • Tag成功執行該命令:標籤在T5(max)時間之內回覆Table6.13的內容
  • Tag發生錯誤:標籤在Min(Treply,T5(max))時間段內迴應一個錯誤代碼
  • Tag不迴應:在T5(max)內沒有迴應,此時閱讀器應該發送Req_RN來驗證標籤是否還在本身的識讀範圍內,而後看狀況發送其餘命令

An in-process reply allows a Tag to spend longer than T5(max) executing a command

對於某些指令,Tag須要必定時間作計算處理,所以採用in-process reply 方式迴應(對應時間控制參數T6,T7)
當閱讀器發送一個in-process reply命令後,容許標籤在長於T5(max)時間後再回應,並週期性的通知閱讀器本身正在計算處理中;in-process reply指令發送後標籤可能會前後反射多個信號,第一個反射信號應該知足T6參數指標(見Table 6.16),接下來的其餘反射信號應知足T7參數指標;標籤在處理計算中應該至少每隔T7(max)時間反射一次信號;閱讀器會指定在每個使用in-process reply的access命令(除AuthComm外),標籤在完成處理計算後是返回最終結果仍是把結果保存在標籤的ResponseBuff中,對於AuthComm命令,標籤必定是不保存處理結果,直接將其反射回來給閱讀器。 閱讀器發送in-process reply命令後可能會觀察到如下三種狀況:

  • Tag成功執行該命令:Tag至少沒T7(max)時間迴應一個Table6.14定義的信號。對於中間信號 Done 、header 應該全爲0, response爲null, 若是迴應包含length則length=0000h.當Tag完成計算處理後發送的final reply中done=1, header=0。若是閱讀器收到header=0則表示該命令成功完成。
  • Tag發生錯誤:...
  • Tag不迴應:...

對於in-process reply命令,不管TRext值爲多少,Tag都按照TRext=1迴應

Q16:G2中閱讀器什麼編碼方式?


A:G2中閱讀器使用PIE編碼方式,使用以下圖兩種PIE符號表明0和1。

image

PIE(Pulse interval encoding)編碼的全稱爲脈衝寬度編碼,經過定義脈衝降低沿之間的不一樣時間寬度來表示數據。

規定中,由閱讀器發往標籤的數據幀由SOF(幀開始信號)、EOF(幀結束信號)、數據0和1組成。在GEN2標準中定義了一個名稱爲Tari的時間間隔,也稱爲基準時間間隔,該時間爲碼0時間寬度,取值爲6.25到25微妙之間。

Q17:G2中標籤使用什麼編碼方式?


A:G2中標籤使用FM0、Miller二、Miller四、Miller8編碼方式。

標籤應該要具有以上四種編碼方式的能力,具體使用哪種有閱讀器發送的Query命令指定

Q18:G2中閱讀器使用什麼調製方式?


A:G2中閱讀器使用DSB-ASK, SSB-ASK, 或PR-ASK調製,協議規定標籤應該具有解調全部三種調製方式的能力。

相關文章
相關標籤/搜索