ISO18000-6C 电子标签数据存储空间及数据加密说明
ISO18000-6C电子标签是指符合ISO 18000-6C空中接口协议的电子标签。与此类似,符合ISO18000-6D协议的电子标签成为ISO18000-6D电子标签。为了使客户更加灵活地使用RMU900+读写器模块,将RMU900+读写器模块应用于实际工程环境中,特将ISO18000-6C的数据存储空间及读写器与电子标签通信的数据加密过程进行简略描述,以方便客户尽快熟悉相关知识。本文描述简单,详细内容请参考ISO18000-6C协议标准。
数据存储
根据协议规定,从逻辑上将标签存储器分为四个存储体,每个存储体可以由一个或一个以上的存储器组成。如图2.1所示。这四个存储体是:
a) 保留内存
保留内存应包含杀死口令和访问口令。杀死口令应存储在00h至1Fn的存储地址内。访问口令应存储在20h至3Fn的存储地址内。
b) EPC存储器
EPC存储器应包含在00h至0Fh存储位置的CRC-16、在10h至1Fh存储地址的协议-控制(PC)位和在20h开始的EPC。PC被划分成10h至14Fh存储位置的EPC长度、15h至17Fh存储位置的RFU位和在18h至1Fh存储位置的编号系统识别(NSI),CRC-16、PC、EPC应优先存储MSB (EPC的MSB应存储在20h的存储位置)。注:
c) TID存储器
TID存储器应包含00h至07n存储位置的8位ISO15963分配类识别(对于EPCglobal为111000102)、08h至13n存储位置的12位任务掩模设计识别(EPCglobal成员免费)和14h至1Fn存储位置的12位标签型号。标签可以在1Fn以上的TID存储器中包含标签指定数据和提供商指定数据(例如,标签序号)。
d) 用户存储器
用户存储器允许存储用户指定数据。该存储器组织为用户定义。
图2.1 逻辑空间分布图
2.1 保留内存
◆ 杀死口令
保留内存的00h至1Fh存储电子标签的杀死口令,杀死口令为1 word,即2 bytes。电子标签出厂时的默认杀死指令为0000h。用户可以对杀死指令进行修改。用户可以对杀死口令进行锁存,一经锁存后,用户必须提供正确的访问口令,才能对杀死口令进行读写。
◆ 访问口令
保留内存的20h至3Fh存储电子标签的访问口令,访问口令为1 word,即2 bytes。电子标签出厂时的默认访问指令为0000h。用户可以对访问指令进行修改。用户可以对访问口令进行锁存,一经锁存后,用户必须提供正确的访问口令,才能对访问口令进行读写。
2.2 EPC存储器
◆ CRC-16(Cyclic Redundancy Check,循环冗余校验)
循环冗余校验位,16比特,上电时,标签应通过PC前五位指定的(PC+EPC)字数而不是整个EPC存储器长度计算CRC-16
◆ PC(Protocol Control,协议控制)
PC位包含标签在盘存操作期间以其EPC反向散射的物理层信息。EPC存储器10h至1Fn存储地址存储有16PC位,PC位值定义如下:
◆ 10h—14n位:标签反向散射的(PC+EPC)的长度,所有字为:
000002:一个字(EPC存储器10h—1Fn存储地址)
000012:两个字(EPC存储器10h—2Fn存储地址)
000102:两个字(EPC存储器10h—3Fn存储地址)
111112:32个字(EPC存储器10h—1FFn存储地址)
◆ 15h—17 h位:RFU(第1类标签为0002)
◆ 18h—1F h位:默认值为000000002且可以包括如ISO/IEC 15961定义的AFI在内的计数系统识别(NSI)。NSI的MSB存储在18h的存储位置。
默认(未编程)PC值应为0000h。
截断应答期间,标签用PC位代替00002。
◆ EPC(Electronic Product Code,产品电子代码)
EPC存储在以20h存储地址开始的EPC存储器内,MSB优先。询问机可以发出选择命令,包括全部或部分规范的EPC。询问机可以发出ACK命令,使标签反向散射其PC、EPC和CRC-16(在特定情况下该标签可以截断应答-参见6.3.2.10.1.1)。最后,询问机可以发出Read命令,读取整个或部分EPC。
[注]PC+EPC也称为UII
2.3 TID存储器
TID存储器应包含00h至07n存储位置的8位ISO15963分配类识别(对于EPCglobal为111000102)、08h至13n存储位置的12位任务掩模设计识别(EPCglobal成员免费)和14h至1Fh存储位置的12位标签型号。标签可以在1Fh以上的TID存储器中包含标签指定数据和提供商指定数据(例如,标签序号)。
2.4 用户存储器
用户存储器允许存储用户指定数据。
数据锁存
3.1概述
为了防止未授权的写入和杀死操作,ISO18000-6C标签提供锁存/解锁操作。32位的访问口令保护标签的锁存/解锁操作,而32位杀死口令保护标签的杀死操作。用户可以在电子标签的保留内存设定杀死口令和访问口令。
3.2数据操作的两个状态
当标签处于OPEN或SECURED状态时,可以对其进行数据操作(读、写、擦、锁存/解锁、杀死)。当标签的访问口令为全零,或用户正确输入访问口令时,标签处于SECURED状态。当标签的访问口令不为零,且用户没有输入访问口令或输入的访问口令不正确时,标签处于OPEN状态。对标签的锁存/解锁操作只能在SECURED状态下进行。
*注:当用户进行锁存/解锁操作时需要满足下列两种条件之一:
a. 标签的访问口令为全零。
b. 提供正确的访问口令。
3.3各个存储区的锁存/解锁操作
对保留内存(Reserved)区进行锁存后,用户对该存储区不能进行读写,这是为了防止未授权的用户读取标签的杀死口令和访问口令。而对其他三个存储区(EPC存储区、TID存储区和用户存储区)进行锁存后,用户对相应存储区不能进行写入,但可以进行读取操作。
3.4锁定类型
标签支持三种锁定类型:
a. 标签被锁定后只能在SECURED状态下进行写入(对保留内存时为读写),而不能在OPEN状态下进行写入(对保留内存时为读写)。
b. 标签可以在OPEN和SECURED状态下都可以进行写入(对保留内存时为读写),且锁定状态永久不能被改写。
c. 标签在任何状态下都不能进行写入(对保留内存时为读写),且永久不能被解锁。[注]此操作慎用,一旦永久锁存某个存储区,该存储区数据将不可再读写!!!
LOCK指令
本节简单描述LOCK指令
Lock命令包含如下定义的20位有效负载:
前10个有效负载位是掩模位。标签应对这些位值作如下解释:
掩模=0:忽略相关的动作字段,并保持当前锁定设置。
掩模=1:执行相关的动作字段,并重写当前锁定设置。
最后10个有效负载位是动作位。标签应对这些位值作如下解释:
动作=0:取消确认相关存储位置的锁定。
ISO18000-6C 电子标签数据存储空间及数据加密说明
动作=1:确认相关存储位置的锁定或永久锁定。
LOCK指令的有效负载和掩模位描述如图3.1所述
各个动作字段的功能如表3.1所述。
图3. 1Lock有效负载和使用
写入口令 | 永久锁定 | 描述 |
0 | 0 | 在开放状态或保护状态下可以写入相关存储体。 |
0 | 1 | 在开放状态或保护状态可以永久写入相关存储体,或者可以永远不锁定相关存储体。 |
1 | 0 | 在保护状态下可以写入相关存储体但在开放状态下不行。 |
1 | 1 | 在任何状态下都不可以写入相关存储体。 |
读取/写入口令 | 永久锁定 | 描述 |
0 | 0 | 在开放状态或保护状态下可以读取和写入相关口令位置。 |
0 | 1 | 在开放状态或保护状态下可以永久读取和写入相关口令位置,并可以永远不锁定相关口令位置。 |
1 | 0 | 在保护状态下可以读取和写入相关口令位置但在开放状态下不行。 |
1 | 1 | 在任何状态下都不可以读取或写入相关口令位置。 |
表3.1Lock 动作-字段功能