dongxl

EPC电子标签的FAQ

0
阅读(2497)

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

Q1:标签存储器分为哪几个区? 

ATag 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(重复查询), ACKEPC答复), NAK(转向裁断), Req_RN(随机数请求),Read(读),Write(写),Kill(灭活),Lock(锁定)。

Q5:可选的(Optional)命令有哪些? 
A
:符合G2协议的标签和读写器,支持也可以不支持可选的命令有三条:Access(访问),BlockWrite(块写),BlockErase(块擦除)。

Q6:专有的(Proprietary)命令会是什么? 

A:专有的命令一般用于制造目的,如标签内部测试等,标签出厂后这样的命令应该永久失效。 

Q7:定制的(Custom)命令会有哪些? 

A:可以是制造商自己定义而开放给用户使用的命令,如Philips公司提供有:BlockLock(块锁定),ChangeEAS(改EAS状态),EASAlarmEAS报警)等命令(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命令后,除了处于ReadyKilled的保持原状态外,其它情况都转到Arbitrate状态。 


Q10
:存取(Access)类命令有哪些? 
A
:有五条必备的:Req_RNReadWriteKillLock 和三条可选的:AccessBlockWriteBlockErase 
1
、标签收到有效Req_RNwith RN16 or Handle)命令后,发回句柄,或新的RN16,视状态而不同。 
2
、标签收到有效Readwith Handle)命令后,发回出错类型代码,或所要求区块的内容和句柄。 
3
、标签收到有效Writewith RN16 & Handle)命令后,发回出错类型代码,或写成功就发回句柄。 
4
、标签收到有效Killwith Kill PasswordRN16 & Handle)命令后,发回出错类型代码,或灭活成功就发回句柄。 
5
、标签收到有效Lockwith Handle)命令后,发回出错类型代码,或锁定成功就发回句柄。 
6
、标签收到有效Accesswith Access PasswordRN16 & Handle)命令后,发回句柄。 
7
、标签收到有效BlockWritewith Handle)命令后,发回出错类型代码,或块写成功就发回句柄。 
8
、标签收到有效BlockErasewith Handle)命令后,发回出错类型代码,或块擦除成功就发回句柄。 

Q11:所谓冲突(collisions)是怎么回事,怎样抗冲突?G2用什么机制抗冲突的? 
A
:按上述Q9解答中提到的,当有不止一个随机数为零的标签各发回不同的RN16时,它们在接收天线上会出现不同RN16的波形迭加,也即所谓冲突(collisions),从而不能正确解码。有多种抗冲突机制可以避免波形迭加变形,例如设法(时分)使某时刻只有一个标签发言,接着再单一化处理,就能识别读写多张标签中的每一张标签。 
上述三条Q字头的命令体现了G2的抗冲突机制:随机数为零的标签才能发回RN16,若同时有多个标签随机数为零,而不能正确解码,就策略性地重发Q字头的命令或组合,给被选择的标签群,直到能正确解码。

Q12:标签识别号(TID)应该具有唯一性吗?怎样达成? 
A
:标签识别号TIDTag 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 identifier12-bit tag mask-designer identifier12-bit tag model number);对更多位的bit,如SNRserial number序列号),说的是“Tags may contain”,而非“should”。但由于EPC号码被设计成会用到区分单件商品上,32-bit大概是不够用的,应该具有SNRG2协议修订或者Class 2等会考虑这些的吧。