1.2 后退式二进制 RFID 防冲突算法

后退式二进制 RFID 防冲突算法识别 RFID 标签 的步骤如下所述。

1)RFID 读写器广播发送同步信号及请求命令, 将此命令入栈,便于下次命令的确定。各标签响应请 求,并判断自己的 ID 是否小于等于 S,S 为 RFID 读 写器的参数,表示该读写器能够读取的 RFID 标签的 最大长度。如果小于等于 S,则返回自身 ID。

2)读写器根据读回的信息,判断是否有标签产 生冲突,如果没有冲突,转到步骤 3);如果有冲突, 将读回的序列的最高冲突位置“0”,其余冲突位置 “1”,不冲突位保持读回序列的原状态。将修改后的 序列赋值给 S,返回步骤 1)。

3)如没有冲突,证明已识别出一个 RFID 标签 的 ID,可对此标签执行操作。从栈中取出请求命令, 确定下次命令的参数,返回步骤 1)。

1.3 并发执行

并发执行主要采用多线程技术实现,多线程技术 可以同步运行多个独立的程序片段,这种并行可以提 高系统的效率。RFID 中央处理器可以采用多核处理 器,采用多线程的编程方法,对 BAS 算法中生成的 2 个不相交的自己进行同步处理,既解决了冲突问题, 又解决了效率问题。

1.4 定义命令

为方便对算法进行描述,在不改变原 RFID 系统 命令的前提下,定义请求命令 Request(D,m,T) 和应答命令 Response(s)。其中 Request 命令中的 D 参数为冲突最高位的编号(设 RFID 为 8 位 ID,D 为 3 位二进制数,如 110 表示冲突的最高位为 D6 位), m 为冲突位的参数(0/1),T 为线程编号(4 线程,2 位二进制表示 00,01,10,11 这 4 个线程的编号)。

算法流程

假设 RFID 标签编码为 16 位二进制数,现有 20 个待识别的标签,见表 1。改进算法采用 4 个线程处 理该算法,树中结点表示根据最高冲突位发出的不同 请求命令。