RFID相關知識總結(超高頻UHF)


RFID標簽分類

1.LF(Low frequency) 低頻

頻段范圍: 125 KHz~135KHz(ISO18000-2)
常見應用:該頻段特點是具有良好的物體穿透能力。廣泛應用於進出管理、門禁管理、考勤、車輛管理、
巡更、汽車鑰匙、動物晶片、固定設備等。

2.HF(High Frequency) 高頻

頻段范圍: 13.56MHz(ISO18000-3)
常見應用:供應鏈、生產管理與產品跟蹤、貨架、智慧卡(身份證、醫保卡與交通卡等)、運輸、門禁、票>>務(門票、電子票務)、圖書和旅游卡等。

3.UHF(Ultra High Frequency) 超高頻

頻段范圍:860MHz~960MHz(ISO18000-6)
常見應用:國土安全、供應鏈、物流、移動商務、防偽、電子牌照、倉庫管理、機場行李管理等

4.MW(Micro Wave) 微波

頻段范圍:2.45 GHz(ISO18000-4)與5.8GHz(ISO18000-5)
常見應用:定位跟蹤、自動收費系統、移動車輛識別


UHF RFID存儲區簡介

1.TID區

RFID標簽的唯一識別碼區、TID號碼唯一且不重復, 相當於芯片的 "身份證"

2.EPC區

存儲用戶的EPC信息、16進制數據。不同廠商的RFID芯片可寫入的位數有所不同,常見EPC存儲16/24位。

3.User區

存儲用戶的自定義數據, 不同廠商該區不一樣。impinj G2則沒有用戶區, Philips則有28字節。

4.Reserved區

存儲Kill Password(銷毀)與Access Password(訪問)密碼。前兩個字節銷毀密碼、后兩個字節訪問密碼。

以上4個存儲區均可寫保護。意味着保護后該區永不可寫或非安全模式下不可寫。讀取保護則只對密碼區設置有效, 即需要在安全模式下進行訪問。TID與EPC則無法設置讀取保護。


UHF RFID閱讀器操作[ Impinj SDK C#示例 ]

不同閱讀器只會有SDK的調用方式有所不同, 功能都相同

1.EPC寫入 [ 代碼示例 ]
常見的EPC寫入、SDK需要先鎖定需要操作的RFID標簽。
TID鎖定: TID唯一碼改寫,適用於批量更新,准確
EPC鎖定: EPC可能存在重復的情況, 影響更新性能

static void ProgramEpc(string tid, string currentEpc,ushort currentPcBits, string newEpc)   
        {   
            // 檢查指定的 EPCs 是否有效長度
            if ((currentEpc.Length % 4 != 0) || (newEpc.Length % 4 != 0))
                throw new Exception("EPCs must be a multiple of 16 bits (4 hex chars)");
            //創建標簽操作序列
            TagOpSequence seq = new TagOpSequence();
            seq.TargetTag.MemoryBank = MemoryBank.Tid; 
            seq.TargetTag.Data = tid;
            TagWriteOp writeEpc = new TagWriteOp();
            writeEpc.Id = EPC_OP_ID;
            writeEpc.MemoryBank = MemoryBank.Epc;
            writeEpc.Data = TagData.FromHexString(newEpc);
            writeEpc.WordPointer = WordPointers.Epc;
            //標簽訪問密碼,未加密前默認8個0
            writeEpc.AccessPassword = TagData.FromHexString("00000000"); 
            seq.Ops.Add(writeEpc);
            if (currentEpc.Length != newEpc.Length)
            {
                ushort newEpcLenWords = (ushort)(newEpc.Length / 4);
                ushort newPcBits = PcBits.AdjustPcBits(currentPcBits, newEpcLenWords);
                TagWriteOp writePc = new TagWriteOp();
                writePc.Id = PC_BITS_OP_ID;
                writePc.MemoryBank = MemoryBank.Epc;
                writePc.Data = TagData.FromWord(newPcBits);
                writePc.WordPointer = WordPointers.PcBits;
                //標簽訪問密碼,未加密前默認8個0
                writeEpc.AccessPassword = TagData.FromHexString("00000000"); 
                seq.Ops.Add(writePc);
            }
            reader.AddOpSequence(seq); //操作序列添加進入閱讀器中
        }

2.EPC寫保護 [代碼示例]

防止標簽進行初始化后, 其他人員惡意進行非法更新或銷毀操作, 使得芯片無法在流程及應用中發揮其作用, 一般標簽在初始化后需要進行加密保護或標簽供應商出廠前進行加密保護, 加密保護主要包含銷毀與訪問密碼保護。

                    TagWriteOp writeOp = new TagWriteOp();
                    writeOp.Id = pcid;
                    writeOp.AccessPassword = null;
                    writeOp.MemoryBank = MemoryBank.Reserved;
                    writeOp.WordPointer = WordPointers.AccessPassword;
                    writeOp.Data = TagData.FromHexString("00000000"); 
                    seq.Ops.Add(writeOp);
                    //EPC 標簽鎖定操作
                    TagLockOp lockOp = new TagLockOp();
                    lockOp.Id = pcid;
                    lockOp.AccessPasswordLockType = TagLockState.Lock;
                    lockOp.UserLockType = TagLockState.Lock;
                    seq.Ops.Add(lockOp);

3.User區寫入 [ 代碼示例 ]

                // Create a tag write operation.
                TagWriteOp writeOp = new TagWriteOp();
                // Write to user memory
                writeOp.MemoryBank = MemoryBank.User;
                // Write two (16-bit) words
                writeOp.Data = TagData.FromHexString("00000000");
                // Starting at word 0
                writeOp.WordPointer = 0;
                // Add this tag write op to the tag operation sequence.
                seq.Ops.Add(writeOp);
                // Add the tag operation sequence to the reader.
                // The reader supports multiple sequences.
                reader.AddOpSequence(seq);

4.Kill Tag銷毀標簽 [ 代碼示例 ]
未加密的標簽銷毀密碼同訪問密碼為8個0組成, 銷毀密碼的過程中, 需要單獨給其設定一個銷毀密碼, 如已設置銷毀密碼則按設置后的密碼, 標簽一旦銷毀, 則滅活無法正常讀取。

        static void SequenceWriteTag(string epc)
        {
            TagOpSequence seq = new TagOpSequence();
            var target = new TargetTag();
            target.MemoryBank = MemoryBank.Epc;
            target.BitPointer = BitPointers.Epc;
            target.Data = epc;
            seq.TargetTag = target;
            TagWriteOp writeOp = new TagWriteOp();
            writeOp.AccessPassword = null;
            writeOp.MemoryBank = MemoryBank.Reserved;
            writeOp.WordPointer = WordPointers.KillPassword;
            writeOp.Data = TagData.FromHexString(KILL_PW);
            seq.Ops.Add(writeOp);

            // Define a tag kill operation.
            TagKillOp killOp = new TagKillOp();
            // Specify the kill password for this tag. 
            // The kill password cannot be zero.
            killOp.KillPassword = TagData.FromHexString(KILL_PW);
            // Add this tag write op to the tag operation sequence.
            seq.Ops.Add(killOp);
            reader.AddOpSequence(seq);
        }

UHF RFID讀寫器讀取性能影響分析

1.閱讀器功率

直接影響到讀取標簽的性能, 距離。 功率↑性能↑ 功率↓性能↓

2.閱讀器頻率

不同的RFID標簽,頻率不同、讀取設定的頻段也會受到影響

3.閱讀器

各種閱讀器之間有差異,主要體現在: 讀寫性能、設備穩定性、可擴展、及成熟的算法等方面。

4.天線的增益及饋線的衰減

通常來講、RFID天線增益上調對應的距離、性能會更好。

5.RFID標簽種類

不同種類的RFID標簽、型號、不同的廠家生產設計。標簽性能都會有所不同。

6.讀取方向及環境

標簽與天線極化方向與相對角度的配合度,方向一致配合度高,讀寫距離就遠,反之,不配合的話讀距近


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM