算法的流程如下所述。
1)RFID 读写器向可读标签发送同步信号,标签 返回自身 ID。RFID 读回 1??1?0??的二进制序列,判 断 D6,D5,D3,D1,D0 发生冲突。RFID 读写器将 产生冲突的位置发送给 RFID 标签。
2)根据最高冲突位和次高冲突位进行分类, RFID 标签根据自身 ID 的序列和产生冲突的位置,判 断应进入哪个分类,由哪个线程进行处理。例如,可 用最高冲突位 D6 与次高冲突位 D5 对标签进行分类, 共分为 4 类,每类对应进入相应的线程中进行下一步 处理,详细分类情况见表 2。下面以线程 1 的流程说 明算法的整个流程。
3)RFID 读写器发送 Request(011,0,00)。其 中,参数“011”表示标签的最高冲突位为 D3 位;参数 “0”表示将最高冲突位置“0”;参数“00”表示上述标签 所属线程的标号为“00”,即线程 1。满足上述条件的 RFID 标签(Tag1,Tag11)返回信息,发送命令 Response(D1D0),D1D0 为其余冲突位的标签信息,即 Tag1 发送 Response(01),Tag11 发送 Response (10)。RFID 读写器就收到 Tag1 与 Tag11 返回的叠 加后的信息“??”,说明仍在 D1 与 D0 位存在冲突。 将 Request(011,0,00)命令入栈。
4)RFID 读写器发送 Request(001,0,00),此 时满足其条件的标签只有 Tag1,该标签发送命令 Response(1)。RFID 读写器收到“1”的信息,表示此 时无冲突,表示识别了一个标签(Tag1)。Request (001,0,00)命令入栈。