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.读取方向及环境

标签与天线极化方向与相对角度的配合度,方向一致配合度高,读写距离就远,反之,不配合的话读距近

原文地址:https://www.cnblogs.com/zh7791/p/11194437.html

时间: 2024-10-11 13:08:48

RFID相关知识总结(超高频UHF)的相关文章

python的list相关知识

关于list的相关知识 list01 = ['alex',12,65,'xiaodong',100,'chen',5] list02 = [67,7,'jinjiao_dawang','relax1949',53] #打印list01.list02 print(list01) print(list02) #列表截取.切片 print(list01[1]) print(list01[-2]) print(list01[1:3]) #列表重复 print(list01 * 3) #列表组合 prin

三层交换机相关知识

三层交换机相关知识 这次的作死之路又要开始了.这次的对象主要是交换机:还是三层的: 这是这次实验的总体用图: 现在现根据图上的标志:将所有的主机配置好:目前没有做任何vlan:所以PC1和PC3是能够互通的: 接下来:我想先去探索下三层交换机关闭portswitch会怎么样: 第一步:先关闭了再说: 因为按照图中的设计:PC1的帧如果想要到达PC2,那么就必然要经过LSW1.但是现在我关闭了g0/0/1端口的portswitch:现在pc1并不能ping通pc2: 通过百度:三层交换机的端口不仅

php学习day7--函数的相关知识

今天我们主要学了函数的相关知识,是个比较基础的知识,但也是很重要的. 一.函数 函数就类似于一个工具,我们写好函数之后可以直接进行调用,可以很大的减少代码的从用性,提高页面性能和可读性. 1.函数的定义 在php中函数的定义方式为: function  name($形参1,$形参2.....){ 要执行的代码 return  123: } 在上方的函数定义式中,name代表函数名,小括号内是形参,是用来传递参数,花括号中的就是调用时需要执行的代码. 函数的调用方式: name(实参1,实参2,.

svn常规操作与相关知识

Svn常规操作与相关知识 一.何谓版本控制 它是一种软件工程籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,它透过文档控制记录程序各个模块的改动,并为每次改动编上序号,并且编辑错误之后还可以回溯到以前的版本 二.可供我们选择的版本控制系统 1.VCS  (本地版本控制) 2.VSS.CVS(集中版本控制) 3.ClearCase.SVN.Perforce.TFS(集中版本控制) 4.Mercurial(水银/水星).Git(分布式版本控制) 差异: 1.Git和其他版本控制系统的主要

黑马程序员---Objective-C基础学习---类、对象、方法相关知识笔记

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 类.对象.方法相关知识笔记 Objective-C相对于C语言有了面向对象的特性,但是ObjC又没有其他面向对象语言那么多语法特性,ObjC本身对面向对象进行了精简.下面是一些相关知识笔记. 类定义 成员变量 方法和属性 self关键字 类定义 在C#.Java等其他高级语言中定义一个类是相当简单点的,直接一个关键字class加一对大括号基本就完成了,但是在ObjC中类的定义相对变化比较大.现

深入浅出安卓学习相关知识,如何从零学好移动开发

原文发表自我的个人主页,欢迎大家访问 http://purplesword.info/mobile-develop 由于近几年来互联网的飞速发展,安卓和iOS平台的大量普及推广,移动开发在当前是非常热门的一个方向. 有不少同学问我如何学习安卓,要学些什么,难不难学.之前一直没有想好应该怎么回答这个问题,只是简单的说安卓自身门槛不高,并不难学.因为我觉得准确回答一个类似这样的问题往往需要灵感.现在根据我的学习体验,做个大概的总结. 1.我为什么学安卓 我从刚开始接触安卓开发到现在也有两三年的时间了

linux 服务器分区格式化相关知识 -mount

关于linux 系统mount和mkfs 的相关知识: 使用mount 1)  Mount的相关格式:mount [-t 文件类型][-o  选项] devicedir 详解: -t 文件类型,通常默认mount会自动选择正确的类型,通常类型ext2/ext3/ext4之类的. 常用的类型有:                  光盘或光盘镜像:iso9660 DOS fat16文件系统:msdos Windows 9x fat32文件系统:vfat Windows NT ntfs文件系统:ntf

【转载】前端面试“http全过程”将所有HTTP相关知识抛出来了...

原文:前端面试“http全过程”将所有HTTP相关知识抛出来了... 来一篇串通,一个http全过程的问题,把所有HTTP相关知识点都带过一遍 http全过程 输入域名(url)-->DNS映射为IP-->TCP三次握手-->HTTP请求-->HTTP响应-->(浏览器跟踪重定向地址)-->服务器处理请求-->服务器返回一个html响应-->(视情况决定释放TCP连接)-->客户端解析HTML-->获取嵌入在HTML中的对象重新发起http请求

Java的File类相关知识

Java的File 目录: 1.创建File的文件或者目录的方法.... 2.创建File对象的构造器的三种形式... 3.关于分割符的相关知识...................... 4.file简单Api介绍................................... 1.再说File的时候就不得不先说一下创建文件和目录的三个方法. <1>createNewFile()必须有已经创建好的路径,才能创建一个文件.返回值:如果指定的文件不存在并成功地创建,则返回 true:如果指