作者:陈广 日期:2019-3-15
ISO15693是 13.56MHz 下的另一个协议,它的出现是为了弥补 ISO14443 通信距离不足、同时读取标签数量不足的缺陷,它的最远识读距离达到 2 米。但现在超高频标签这方面的性能更好。另一方面,ISO15693 是开放的,没有 ISO14443 的保密性,所以国内 ISO15693 的使用并不多见,但我们还是要讲讲的。
ISO15693 标签内存最大可达 8K 字节,以数据块(Block)为单位进行管理,标签内最多可以有256个数据块,每个数据块最大可以有32字节。,这里只以我手上有的标签为例,讲解内存结构。
此标签片内含 1024bit(128字节) EEPROM,共分为 32 个块,每个块 32bit(4个字节),结构如下图所示:
其中,-4 到 -1 为特殊功能块,用于存放系统参数,不可直接通过内存地址的方式访问,但里面的数据是可以特定方法拿到的。0 至 27 块总共 112 字节(896bit)为用户数据区,供用户存放数据
遵守ISO15693协议的电子标签都有一个 8 字节共 64bit 的全球唯一标识符(UID unique identifier),这个 UID 一方面可以使全球范围内的标签互相区别,更重要的是可以在多标签同时读写时用于防冲突。8 字节 UID 按权重从高到低标记为UID7--UID0,其中:
电子标签数量众多,应用范围极为广泛。为了区分不同行业中的电子标签,ISO用一个字节的AFI(Application family identifier 又称应用类型识别码)来区分不同行业中的电子标签。AFI 的高半字节表示主要行业,低半字节表示主要行业中的细分行业。其中 AFI=00H 表示所有行业。需要注意的是并不强制要求电子标签支持 AFI,电子标签是否支持AFI是可选的,在收到"Inventory"清点命令后,如果标签不支持AFI,则标签必须立刻做出应答;如果支持AFI,则只有收到的 AFI 与标签存储的 AFI 一致才做出应答。
AFI 编码表
AFI 高半字节 | AFI 低半字节 | 行业 | 举例/注释 |
---|---|---|---|
0 | 0 | 所有类型和子类型 | 无可用预选 |
X | 0 | X类型的所有子类型 | 宽可用预选 |
X | Y | X族的仅第Y个子族 | |
0 | Y | 所有的Y子类型 | |
1 | 0,Y | 运输 | 批量运输,公交,航空 |
2 | 0,Y | 金融 | IEP,银行,零售 |
3 | 0,Y | 标识 | 进入控制 |
4 | 0,Y | 无线电通讯 | 公共电话,GSM |
5 | 0,Y | 医疗 | |
6 | 0,Y | 多媒体 | 互联网服务 |
7 | 0,Y | 游戏 | |
8 | 0,Y | 数据存储 | 便携文件夹 |
9 | 0,Y | 条款管理 | |
A | 0,Y | 快递包裹 | |
B | 0,Y | 邮政服务 | |
C | 0,Y | 航空运输 | |
D | 0,Y | 保留 | |
E | 0,Y | 保留 | |
F | 0,Y | 保留 |
15693国际标准还规定了一个字节的可选的数据存储格式识别符(DSFID),用来区分标签中不同的数据存储格式。如果标签支持DSFID,在清点命令中标签将返回一个非零的 DSFID,读写器可据此判断射频场中的标签是否具有期望的数据格式。假如标签不支持 DSFID 的编程,标签将以值0
作为应答
特殊功能 EAS(Electronic Article Surveillance,电子防盗系统)主要用来防止物品被盗,标签管理者可以设置(EAS=1)和清除(EAS=0)EAS 标识。当设置有 EAS 标识的标签通过读写器的作用范围时,读写器会识别 EAS 标识,发出警报。
EAS 的数据结构如下图,EAS 的最低位写 1 代表 EAS 标识有效,写 0 代表清除 EAS 标示,其他位无效。
块 -1 是写入控制位,用于锁定指定数据块。它可以控制每个用户数据块和特殊功能块的写入。写入1
代表锁定相应数据块,且不可再修改控制位。下图是每个位所对应的数据块。