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.读取方向及环境
标签与天线极化方向与相对角度的配合度,方向一致配合度高,读写距离就远,反之,不配合的话读距近
RFID相关知识总结(超高频UHF)的更多相关文章
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- 移动WEB像素相关知识
了解移动web像素的知识,主要是为了切图时心中有数.本文主要围绕一个问题:怎样根据设备厂商提供的屏幕尺寸和物理像素得到我们切图需要的逻辑像素?围绕这个问题以iphone5为例讲解涉及到的web像素相关 ...
- listener监听器的相关知识
从别人的博客上我学习了listener的相关知识现在分享给大家 1.概念: 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上 ...
- UIViewController相关知识
title: UIViewController 相关知识date: 2015-12-13 11:50categories: IOS tags: UIViewController 小小程序猿我的博客:h ...
- 【转】java NIO 相关知识
原文地址:http://www.iteye.com/magazines/132-Java-NIO Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的 ...
- NSString使用stringWithFormat拼接的相关知识
NSString使用stringWithFormat拼接的相关知识 保留2位小数点 1 2 3 4 //.2代表小数点后面保留2位(2代表保留的数量) NSString *string = [NSSt ...
- iOS网络相关知识总结
iOS网络相关知识总结 1.关于请求NSURLRequest? 我们经常讲的GET/POST/PUT等请求是指我们要向服务器发出的NSMutableURLRequest的类型; 我们可以设置Reque ...
- 电路相关知识--读<<继电器是如何成为CPU的>>
电路相关知识–读<<继电器是如何成为CPU的>> */--> *///--> *///--> 电路相关知识–读<<继电器是如何成为CPU的> ...
- 地址标记,SpringMVC转发与调用相关知识存档
1.mytest_mavenprj1中,index的 <a href="login/login.html">点击登录</a> 与 <a href=&q ...
随机推荐
- STM32F4 串口IAP程序要点
1. IAP(bootloader)程序 1.1 内部Flash地址分配 /* Start of the Flash address */ #define STM32_FLASH_BASE 0x080 ...
- ajax的一些知识
一.关于XMLHttpRequest的实例的属性和方法 实例的属性: 1.xhr.response 响应主体内容 2.xhr.responseText 响应主体内容字符串(JSON或者XML格式字符串 ...
- IOI 2020 集训队作业胡扯
首先安慰自己:做的没集训队快很正常-- 很正常-- 做不完也很正常-- 很正常-- 全都不会做也很正常-- 很正常-- 表格 试题一 完成情况 试题二 完成情况 试题三 完成情况 cf549E cf6 ...
- 第13节-BLE协议L2CAP层
学习资料:官方手册 Vol 3: Core System Package [Host volume] Part A: Logical Link Control and Adaptation Proto ...
- 201871010136-赵艳强《面向对象程序设计(java)》第十二周学习总结
201871010136-赵艳强<面向对象程序设计(java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh ...
- oracle查看被锁的表及解除锁
-- 查看被锁对象 select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session ...
- 每天一道Rust-LeetCode(2019-06-04)
每天一道Rust-LeetCode(2019-06-04) 最长回文子串 坚持每天一道题,刷题学习Rust. 原题 题目描述 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度 ...
- [HNOI2002] Kathy 函数
数位 DP 套路题,求二进制下区间内回文串个数. 设 dp[][][] 表示到第几位时,是否为回文数,去掉前导零后共几位.之后到边界时判断是否为回文数计入贡献. 一开始不知道答案统计要高精,于是后来就 ...
- Codeforces Global Round 4 题解
技不如人,肝败吓疯…… 开场差点被 A 题意杀了,幸好仔细再仔细看,终于在第 7 分钟过掉了. 跟榜.wtf 怎么一群人跳题/倒序开题? 立刻紧张,把 BC 迅速切掉,翻到了 100+. 开 D.感觉 ...
- Linux性能优化实战学习笔记:第四十九讲
一.上节回顾 上一期,我们一起梳理了,网络时不时丢包的分析定位和优化方法.先简单回顾一下.网络丢包,通常会带来严重的性能下降,特别是对 TCP 来说,丢包通常意味着网络拥塞和重传,进而会导致网络延迟增 ...