技术科普

当前位置:首页>技术与支持>技术科普
全部 850 方案下载 1 技术科普 14 协议标准 7 开发包下载 1 行业资讯 827

ISO15693协议RFID芯片的防冲突与常用参数

时间:2015-10-06   访问量:1496
{79}{80}

8字节UID:ISO15693标签的身份结构

随着信息技术的发展,RFID 芯片种类越来越多、应用范围越来越广。拿到一枚 RFID 电子标签,怎么判断它是什么、能不能用?对工作在 13.56MHz、遵循 ISO15693 协议的芯片来说,答案藏在它的 8 字节共 64bit 的全球唯一序列号(UID)里。这个 ID 号既保证每枚芯片全球唯一、不会重复,也在多标签同时读取时用于防冲突。8 字节按权重从高到低标记为 ID7 到 ID0:其中 ID7 固定为十六进制的 E0H,这是 ISO15693 标签的特征字节;ID6 是标签制造商的编码,例如 NXP 为 04H、TI 为 07H;ID5 是产品类别代码,例如 ICODE SL2 ICS20 为 01H、Tag-it HF-I Plus Chip 为 80H、Tag-it HF-I Plus Inlay 为 00H;剩下的 ID4 到 ID0 是制造商内部分配的流水码。掌握这套结构,就能从 UID 直接读出标签的厂商与产品类别,这对采购验收与来料核对很实用。

ISO15693协议高频RFID电子标签结构

AFI:用行业标识筛选标签

为了区分不同行业中的 RFID 电子标签,ISO 用一个字节的 AFI(应用族标识)来标记行业属性。AFI 的高半字节表示主要行业,低半字节表示该主要行业中的细分行业,其中 AFI=00H 表示所有行业。使用 AFI 的价值在于筛选:当读写器只关心某一类物品时,可以只让属于该类别的标签应答,其他标签保持沉默,从而减少无效应答、加快清点速度。需要特别注意的是,标准并不强制要求 RFID 芯片支持 AFI——是否支持是可选的。在收到 Inventory(清点)命令后,如果标签不支持 AFI,必须立刻做出应答;如果支持 AFI,则只有收到的 AFI 与标签内部存储的 AFI 一致时才做出应答,不一致则不应答。这一差异在写上层软件时容易造成误判——若假设所有标签都会应答,遇到支持 AFI 的标签就会出现"怎么都读不到"的现象。

DSFID:数据存储格式识别

ISO15693 国际标准还规定了一个字节的可选数据存储格式识别符(DSFID),用来区分标签中不同的数据存储格式。如果标签支持 DSFID,在清点命令中它会返回一个非零的 DSFID 值,读写器据此即可判断射频场中的标签是否具有自己期望的数据格式。与 AFI 类似,DSFID 也是可选项,标准不强制支持。两者配合使用时,AFI 解决"这是不是我要管理的那类物品",DSFID 解决"它的数据是不是我认得的那种格式"——在混合使用多供应商标签的项目里,这两项检查能避免把不兼容的标签纳入系统。

ISO15693高频RFID电子标签用于图书盘点与层叠读取

内存组织:数据块与锁定

ISO15693 芯片的内存最大可达 8K 字节,以数据块(Block)为单位进行管理。标签内最多可以有 256 个数据块,每个数据块最大可以有 32 字节。这种按块划分的结构对使用方式有直接影响:读取和写入可以按单块进行,也可以一次读写多个连续块,后者能显著提高批量操作的效率。数据块的内容可以锁定以防止修改——锁定后的块通常不可再解锁,因此这一操作不可逆。工程上的做法是:出厂信息、设备编号这类终身不变的数据在初始化阶段写入并锁定;需要后期频繁更新的运行数据则保留在未锁定的块中。若把两者放反了,要么运行数据改不了,要么关键信息随时可能被改写。

命令与应答的帧结构

读写器与标签之间的数据交流采用"命令—应答"方式。命令帧的构成是:标志(Flags)、命令码(Command code)、参数(parameters)、数据(Application data)、校验(CRC16)。应答帧的构成是:标志(Flags)、参数(parameters)、数据(Application data)、校验(CRC16)——可以看到,应答除了没有命令码之外,结构与命令帧类似。每条命令及其应答都使用 CRC 校验以保证数据完整性。寻址方式上有两种模式:读写器可以发出一条请求后让射频场内的所有 RFID 芯片同时应答,这称为 Addressed mode;也可以指定某一枚芯片应答,这称为 Non-addressed mode。在 Non-addressed 模式下有两种方式指定芯片:一种是在命令中直接给出该芯片的唯一序列号,另一种是命令中不给 ID 号,而是在之前的步骤中先选中一枚标签使其处于 select(选中)状态,然后命令中指明仅要求处于选中状态的标签做出应答。第二种方式的好处是后续命令不必重复携带长 ID,帧更短、速度更快。

ISO15693高频RFID电子标签用于会议签到通道

防冲突与命令分类

防冲突原理与强制命令

ISO15693 芯片的防冲突与 ISO14443A 中基于位的防冲突类似,最根本的一点都是基于标签拥有一个全球唯一的序列号。因为序列号唯一,任意两枚标签的 64bit 序列号中总有一个 bit 取值不同;防冲突过程既可以 1 位 1 位地进行,也可以 4 位 4 位地进行,具体原理即前面讲过的位和时隙相结合的防冲突机制。就命令而言,ISO15693 芯片支持的命令分为强制(Mandatory)、可选(Optional)和用户(Custom)三类:强制命令与可选命令的功能和格式在标准中都有明确详细的定义,用户命令则由标签制造商自行制定。强制命令有两个——清点(Inventory)和保持静默(Stay quiet),标签必须支持。这两个命令配合起来就实现了最基本的清点功能:若磁场中有多枚标签,先用清点命令得到一枚标签的 ID,再用保持静默命令让它休眠;然后再次清点得到下一枚标签的 ID,依次类推,即可完成对射频场内所有标签的轮询。

可选命令的四个类别

可选命令是否支持由标签制造商决定,按操作对象可以分为四类。第一类是对整个标签操作:选择(Select)、复位(Reset to ready)、读取系统信息(Get system information)。第二类是对标签数据块操作:读单块、写单块、锁数据块、读多块、写多块、读多块安全状态。第三类是对 AFI 操作:写 AFI、锁定 AFI。第四类是对 DSFID 操作:写 DSFID、锁定 DSFID。从这份清单可以看出一个规律——凡是可以写入的项,通常都配套一个锁定命令(锁定 AFI、锁定 DSFID、锁数据块),这正是 ISO15693 在数据安全上的设计思路:写入是一次性的配置动作,配置完成即锁死,防止后续被篡改。选型时如果业务需要写入 AFI 或 DSFID,必须先确认目标标签支持对应的写命令,否则功能无法实现。

ISO15693高频电子标签用于试剂与药品批量管理

小结

ISO15693 的核心可以概括为"一个身份、两个标识、一套命令"。一个身份指 8 字节全球唯一 UID,它既保证标签不重复,也是防冲突的基础;两个标识指可选的 AFI 与 DSFID,前者解决行业筛选、后者解决数据格式识别,两者都需按标签实际支持情况处理;一套命令指强制命令与可选命令构成的体系,其中清点与保持静默这两条强制命令配合即可完成多标签轮询,而所有可写入项都配有对应的锁定命令,构成数据防篡改的基本保障。理解这三层,就能看懂大部分 ISO15693 标签的规格书,也能判断某项业务需求在给定标签上是否可实现。

常见问题

UID的第一个字节为什么固定是E0H?

E0H 是 ISO15693 标签的标识字节,放在 8 字节 UID 的最高位(ID7)。它的作用相当于协议指纹——看到 E0H 即可判断这是一枚遵循 ISO15693 的标签。其余字段中,ID6 表示制造商(NXP 为 04H、TI 为 07H),ID5 表示产品类别,后 5 字节为制造商自行分配的流水码。据此可以快速核对来料标签的厂商与型号。

AFI=00H是什么意思?

表示所有行业。AFI 一个字节中,高半字节为主要行业、低半字节为细分行业,00H 是通配值,读写器以 AFI=00H 发出清点命令时,任何行业的标签都可以应答。实际项目中使用具体 AFI 值,可以在混合标签共存的环境中只让目标类别的标签应答,减少无效应答、提升清点效率。

标签不支持AFI会怎样?

不影响标签本身,但会影响读写器软件的逻辑。标准中 AFI 是可选功能:不支持 AFI 的标签在收到清点命令后必须立刻应答;支持 AFI 的标签则只有收到的 AFI 与自身存储值一致时才应答。如果上层软件假设"所有标签都会应答",遇到支持 AFI 且值不匹配的标签就会读不到,容易被误判为标签损坏。上海营信信息在混合标签环境中调试时,通常先用 AFI=00H 做一次全量清点,确认射频场内的标签是否都支持 AFI,再决定筛选策略。

数据块锁定后能解锁吗?

通常不能。ISO15693 的锁数据块操作设计为不可逆,锁定后的块只能读取、不能写入。因此初始化阶段要区分两类数据:设备编号、出厂信息这类终身不变的内容写入后锁定;需要频繁更新的运行数据则保留在未锁定的块中。把需要更新的数据写进已锁定的块,后期将无法修改,只能更换标签。

为什么标准要求每条命令都带CRC校验?

因为非接触通信的链路质量不像有线连接那样稳定。射频信号在空气中传输,容易受环境电磁噪声、金属反射、多径干扰影响,个别比特出错并不罕见。命令帧与应答帧都携带 CRC16 校验,接收方即可逐帧验证数据完整性,发现错误即丢弃或重发,避免把错误数据当作有效信息处理。这是非接触智能卡协议普遍采用 CRC 的原因。

上一篇:TI公司的TRF7960芯片开发电子标签读写器的探讨

下一篇:RFID电子标签读写器到底能读多远?有哪些耦合方式?