符合EPC Class1 Gen2(简称G2)协议V109版的电子标签(Tag,简称标签)和Reader(读写器),应该具有下述的特性。

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(灭活)七种状态之一。
1、Ready状态是未被灭活的标签上电以后,开始所处的状态,准备响应命令。
2、在Arbitrate状态,主要为等待响应Query等命令。
3、响应Query后,进入Reply状态,进一步将响应ACK命令就可以发回EPC号码。
4、发回EPC号码后,进入Acknowledged状态,进一步可以响应Req_RN命令。
5、Access Password不为0才可以进入Open状态,在此进行读、写操作。
6、已知Access Password才可能进入Secured状态,进行读、写、锁定等操作。
7、进入到Killed状态的标签将保持状态不变,永远不会产生调制信号以激活射频场,从而永久失效。被灭活的标签在所有环境中均应保持Killed状态,上电即进入灭活状态。灭活操作不可逆转。
要使标签进入某一状态一般需要适当次序的一组合法命令,反过来各命令也只能当标签在适当的状态下才能有效,标签响应命令后也会转到其他状态。

Q3:命令分为哪几类?
A:从命令体系架构和扩展性角度,分为Mandatory(必备的),Optional(可选的), Proprietary (专有的)和Custom(定制的)四类。
从使用功能上看,分为标签Select(选取),Inventory(盘点)和Access(存取)命令三类。
此外还为了以后命令扩展,预留了长短不同的编码待用。

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的缩写)。

Q8:选取(Select)类命令有哪些?
A:仅有一条:Select,是必备的。
标签有多种属性,基于用户设定的标准和策略,使用Select命令,改变某些属性和标志就人为选择或圈定了一个特定的标签群,可以只对它们进行盘点识别或存取操作,这样有利于减少冲突和重复识别,加快识别速度。

Q9:盘点(Inventory)类命令有哪些?
A:有五条:Query, QueryAdjust, QueryRep, ACK, NAK,都是必备的。
1、标签收到有效Query命令后,符合设定标准被选择的每个标签产生一个随机数(类似掷骰子),而随机数为零的每个标签,都将产生回响(发回临时口令RN16–一个16-bit随机数),并转移到Reply状态;符合另一些条件的标签会改变某些属性和标志,从而退出上述标签群,有利于减少重复识别。
2、标签收到有效QueryAdjust命令后,只是各标签分别新产生一个随机数(象重掷骰子),其他同Query。
3、标签收到有效QueryRep命令后,只对标签群中的每个标签原有的随机数减一,其他同Query。
4、仅单一化的标签才能收到有效ACK命令(使用上述RN16,或句柄Handle–一个临时代表标签身份的16-bit随机数。此为一种安全机制!),收到后,发回EPC区中的内容??EPC协议最基本的功能。
5、标签收到有效NAK命令后,除了处于Ready、Killed的保持原状态外,其它情况都转到Arbitrate状态。

Q10:存取(Access)类命令有哪些?
A:有五条必备的:Req_RN,Read,Write,Kill,Lock, 和三条可选的:Access,BlockWrite,BlockErase。
1、标签收到有效Req_RN(with RN16 or Handle)命令后,发回句柄,或新的RN16,视状态而不同。
2、标签收到有效Read(with Handle)命令后,发回出错类型代码,或所要求区块的内容和句柄。
3、标签收到有效Write(with RN16 & Handle)命令后,发回出错类型代码,或写成功就发回句柄。
4、标签收到有效Kill(with Kill Password,RN16 & Handle)命令后,发回出错类型代码,或灭活成功就发回句柄。
5、标签收到有效Lock(with Handle)命令后,发回出错类型代码,或锁定成功就发回句柄。
6、标签收到有效Access(with Access Password,RN16 & Handle)命令后,发回句柄。
7、标签收到有效BlockWrite(with Handle)命令后,发回出错类型代码,或块写成功就发回句柄。
8、标签收到有效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命令的话,则控制和使用起来将比较灵活和全面.

UHF-RFID基础知识相关推荐

  1. 【IoT库】RFID基础知识第2期 · 历史发展

    第一期我们了解了"RFID"的基本原理, 它被认为是21世纪十大重要技术之一, "物联网"这一概念最早也发源于RFID技术. 本期小课堂我们来揭秘RFID的&q ...

  2. RFID基础知识习题

    一. 单选题(共3题,37.5分) 1. (单选题)以下哪一个属于自动识别?(   ) A.条码     B.商标C.投影仪D. 摄像机 正确答案: A 2. (单选题)以下不属于射频识别特点的是(  ...

  3. 【AIoT库】RFID基础知识第5期 · 市场应用及前景

    初识RFID的小伙伴可能认为: 就一个标签+读写器的组合, 能在日常生活掀起什么"大风浪"?! 小看RFID你就错了! 不信请看-- 一.鞋服行业 中国制造业高度发达,其中鞋服制造 ...

  4. RFID基础知识导图

    RFID前三章思维导图如下:

  5. RFID标签的基础知识(3)--了解芯片(之超高频标签芯片篇)

    RFID标签的基础知识(3)--了解芯片(之超高频标签芯片篇)) 前言 一.如何认识芯片? 1. 1 怎么找芯片资料? 1. 2 芯片资料怎么看? 二.我认识的芯片 1.Alien(美国意联科技公司( ...

  6. RFID相关知识总结(超高频UHF)

    RFID标签分类 1.LF(Low frequency) 低频 频段范围: 125 KHz-135KHz(ISO18000-2) 常见应用:该频段特点是具有良好的物体穿透能力.广泛应用于进出管理.门禁 ...

  7. 硬件安全系列 逻辑电路基础知识介绍(一)

    前言 我带着新的系列又来了,之前的自动化代码审计工具还会在之后分享实际编写的过程思路以及代码. 新的系列是硬件安全,非常庞大的知识体系,我只是分享部分我所学习到的.会包括VLSI Testing ,H ...

  8. hawk大数据基础知识总结(1)

    一.大数据概述 1.1大数据的概念 大数据一共具有三个特征:(1)全样而非抽样:(2)效率而非精确:(3)相关而非因果. (1)在过去由于缺乏获取全体样本的手段,人们发明了"随机调研数据&q ...

  9. 物联网基础知识介绍及常见的几种无线通讯方式和应用

    物联网基础知识介绍 一.物联网定义 二.物联网的特征 三.常用的无线通信方式比较 四.常用的无线通信应用开发 五.物联网体系结构 更多内容... 一.物联网定义 物联网(Internet of Thi ...

  10. Arduino基础知识复习12.18

    文章目录 前言 一. 原型技术中的编程基础(Arduino C) a. 变量和数据类型 浮点型变量 数组 String C字符串 比较和位运算 *复合运算和赋值 *字符串和数字的互相转化 b. 程序结 ...

最新文章

  1. sharepoint站点Feature的定制与开发 以及 stsadm 常用命令
  2. PPT 2016的加解密功能
  3. 关于栈的写入和延伸的方向
  4. ApiOperationSupport注解的使用
  5. 爬虫笔记8实例淘宝商品比价爬虫
  6. 二、bootstrap4基础(flex布局)
  7. “HTTPS”安全在哪里?
  8. (18)FPGA时序逻辑与组合逻辑(第4天)
  9. 完成蓝蜂浏览器的框架重构
  10. button上传替换file上传按钮,并显示图片缩略图,纯jsp操作
  11. Qt开发植物大战僵尸第一篇
  12. 大规模行人检索—PRCV2020竞赛发布
  13. SQL2012数据库还原数据的时候提示: 还原数据库时失败解决方案
  14. 关于人际关系的一些问答
  15. 中美iOS游戏市场对比 9成收入来自海外
  16. CentOS安装图形界面
  17. [刷机交流]谷歌Pixel 2手机刷入官方安卓10工厂镜像图文详细教程
  18. 商务与经济统计 | 推断统计学
  19. Unity 游戏开始UI设计
  20. HTML5期末大作业:蛋糕网页设计——蛋糕甜品6页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计

热门文章

  1. Java基本类型与类型转换咋就这么烦?
  2. 修改系统文件内容的经典错误总结
  3. python字符串转成数组_python将字符串转换成数组的方法
  4. python绘制3d动态模型_给大家介绍一个python三维动画制作库,数学作图,数据可视化建模...
  5. 限流的简单使用及学习
  6. 微软开始受到越来越多尊重 谁是幕后功臣?
  7. MDataTable属性RecordsAffected新应用:WebService与Json交互的记录总数
  8. SQLLDR载数加速,优化参数
  9. DB_RUNRECOVERY: Fatal error, run database recovery StackTrace问题的解决办法
  10. 创建显示特殊文档的视图:$FormulaClass的奥秘