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 ...
随机推荐
- lua脚本之钉钉免密登录
nginx.conf worker_processes ; error_log logs/error.log; events { worker_connections ; } http { resol ...
- DV型、OV型、EV型证书的主要区别
DV型和OV型证书的区别 DV和OV型证书最大的差别是:DV型证书不包含企业名称信息:而OV型证书包含企业名称信息,以下是两者差别对比表: DV OV 包含企业名称信息 否 是 验证公司名称 ...
- 16、基于状态的iptable+高级路由(重点)
-- 基于状态的iptables 如果按照tcp/ip来划分连接状态,有12种之多 但iptables里只有4种状态:ESTABLISHED.NEW.RELATED及INVALID 这两个 ...
- opencv使用cv::Mat_和push_back
cv::Mat left_image; right_image.push_back(cv::Mat((cv::Mat_<float>(1, 3) << ori.x, ori.y ...
- Vue (表单、斗篷、条件、循环指令,分隔符成员、计算属性成员、属性的监听、vue组件、子组件、各个常见的钩子函数)
表单指令 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF- ...
- maven warnning 'build.plugins.plugin.version' is missing
裝完maven后,package或clean时出错:[WARN] [WARN] Some problems were encountered while building the effective ...
- [LeetCode] 888. Fair Candy Swap 公平糖果交换
Alice and Bob have candy bars of different sizes: A[i] is the size of the i-th bar of candy that Ali ...
- [LeetCode] 189. Rotate Array 旋转数组
Given an array, rotate the array to the right by k steps, where k is non-negative. Example 1: Input: ...
- [LeetCode] 20. Valid Parentheses 验证括号
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...
- Kubernetes Dashboard 安装与认证
1.安装dashboard $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/ ...