一种二进制树位检测的标签防碰撞算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Computer Engineering and Applications 计算机工程与应用
2010, 46 (20)
245
一种二进制树位检测的标签防碰撞算法
夏志国, 何怡刚, 侯周国 XIA Zhi-guo, HE Yi-gang, HOU Zhou-guo
湖南大学 电气与信息工程学院, 长沙 410082 School of Electrical and Information Engineering, Hunan University, Changsha 410082, China E-mail: xiazgjay@163.com XIA Zhi-guo, HE Yi-gang, HOU Zhou-guo.Binary-tree bit-detecting RFID tag anti-collision algorithm.Computer Engineering and Applications, 2010, 46 (20) : 245-248. Abstract: Against the tag collision problem in Radio Frequency Identification ( RFID ) system, this paper proposes a new RFID anti-collision algorithm based on bit-detecting, and the procedure of the algorithm is introduced in detail.By setting a counter in the tag, the closest node tags at the tree can be activated when backing research.The reader send command only need detect the certain bit is“0”or“1”of the tag’ s ID and the tags transmit the part of ID below the detected bit, which can reduce the quantity of the data communication efficiently between tags and reader.Finally, the results of simulation also show that the new algorithm has better performance in comparison with the existed binary algorithm, and can improve the speed of the tag identification obviously. Key words:Radio Frequency Identification (RFID) ; tag anti-collision; binary-tree algorithm; bit-detecting 摘 要: 针对 RFID (radio frequency identification) 系统中标签的碰撞问题, 提出了一种基于二进制树位检测的 RFID 标签防碰撞 算法, 设计了算法实现的详细流程。该算法通过在标签内设置一个计数器, 实现后退搜索时相邻树节点标签的激活。读写器发 送命令只需检测标签 ID 的某个比特的电平, 标签返回检测位以下的部分 ID, 可以大幅减少读写器与标签之间的通信量。仿真结 果表明此算法比现有的二进制树算法更具优势, 能显著提高标签识别的速度。 关键词: 射频识别; 标签防碰撞; 二进制树算法; 位检测 DOI: 10.3778/j.issn.1002-8331.2010.20.067 文章编号: 1002-8331 (2010) 20-0245-04 文献标识码: A 中图分类号: TP301.6
开始
2
二进制树位检测算法
算法具有二进制树算法的以下特性: (1) 采用 Manchester 编码, 检测数据碰撞位的位置。 (2) 保留了二进制树形搜索算法的后退机理[6]。 (3) 当读写器只检测到 1 位碰撞位时, 直接识别两个标签。 算法中引入以下 4 条命令: 假设标签 ID 的长度为 L, 表示为 q L - 1q L - 2...q 2 q1q0 , 其中
读写器发送 Detect (ς x j ) , 满足条件标签 返回 q j q j - 1q1q0 读写器接收标签返回的数据
是否检测到大 于 1 位的碰撞 否 成功识别标签

将 perfix 和命令参数 ξi 、 ς x j 存入堆栈
地址指针 cnt

堆栈为空? 是 结束
Stack (0) Stack (1) Stack (2) … Stack (L-2) Stack (L-1)
搜索深度 深度 1 深度 2 深度 3 … 000 L-1 位 00 001 010 … … … 0 01 011 100 10 101 110 … 111 … 11 1 11 111
(1) 前向搜索 读写器发送 Active (ξi) 命令, 读写器识别域内所有标签应 答, 进入激活状态。然后读写器发送 Detect (ς x j) 命令, 读写器 识别域内处于激活状态的标签, 若标签 ID 中的q j 为 x, 标签应 答, cnt 加 1, 并返回数据 q j q j - 1...q1q0。读写器经 Manchester 解 码后检测碰撞位: ①若有多于 1 位的碰撞发生, 假设最高碰撞 位为q k , 将ς x j = ς1 k 、 ξi = ξ cnt 和 perfix = q L - 1q L - 2...q k + 2 q k + 1作为树 节点信息保存, 保存地址空间为 Stack (cnt) ; 同时将ς x j = ς0 k 作 为下一次前向搜索 Detect 命令的参数, 继续前向搜索; ②当无 碰撞或只有 1 位碰撞发生时, 读写器成功识别标签。 (2) 后退搜索 当有标签被成功识别后, 从 Stack (cnt-1) 中取出上一个树
基金项目: 国家高技术研究发展计划 (863) (the National High-Tech Research and Development Plan of China under Grant No.2006AA04A104) ; 湖南省科技计划项目 (No.06JJ2024, No.2008Gk2022) 。 作者简介: 夏志国 (1985-) , 男, 硕士研究生, 研究领域为 RFID 防碰撞算法和安全性; 何怡刚 (1966-) , 男, 博士, 博导, 研究领域为 RFID 测试技术; 侯周国 (1979-) , 男, 博士研究生, 研究领域为 RFID 测试技术。 收稿日期: 2009-03-15 修回日期: 2009-05-12
246
2010, 46 (20)
Computer Engineering and Applications 计算机工程与应用 2.2.1.2 算法的执行过程 二进制树位检测算法保持了二进制树算法的后退机理, 当发生大于 1 位的碰撞时, 根据碰撞的最高位, 跳跃式前向搜 索; 无碰撞或只有 1 位碰撞时, 采取后退搜索。搜索过程包括 前向搜索和后退搜索。算法实现流程图, 如图 2 所示, 其中 Stack 表示存储节点信息的堆栈, 深度为 L, 目前所处搜索深度 下的标签内计数器值 cnt 作为地址指针, Stack (cnt) 表示地址为 cnt 的堆栈存储空间。
器发送命令给识别域内的标签, 如果标签内 cnt 与命令参数ξi 相匹配, 则标签进入激活状态。 (2) Detect (ς x j) —位检测命令: 只有进入激活状态的标签 才响应 Detect 命令。命令参数ς x j的最高位是 x (x 为 0 或 1) , 低 位是值为 j 的二进制数。显然ς x j的长度为lb L + 1。 读写器发送命令, 检测处于激活状态的标签, 如果标签 ID 的第 j 位的电平为 x, 标签返回数据q j q j - 1...q 2 q1q0, 保持激活状 态, cnt 加 1; 否则, 标签不返回数据, cnt 保持原值, 且标签进入 等待状态。例如, 标签 ID 值为 11001010, ID 长度为 8, 读写器 发送命令 Detect (ς1 3) =Detect (1011) , 检测到标签 ID 的 011 位 即第 3 位为 1, 标签返回数据 1010, 并保持激活状态, cnt 加 1。 (3) Read-Write (ID) —读写命令, 对指定标签进行读写操作。 (4) Quiet (ID) —静默命令, 标签进入静默状态, 不响应任 何命令。
Stack
图 2 二进制树位检测算法流程图
2.2 算法要点和实现
2.2.1 2.2.1.1 算法要点 算法中参数说明 将所有标签映射至一个标签树, 如图 1 所示。标签树划分 为 L 个搜索深度。该算法采用基于 1 位碰撞时直接识别两个 标签, 例如, 读写器接收到数据为 00101?10, 则可以确定存在 ID 为 00101010 和 0010110 的两个标签。当搜索在深度 L-1 时, 显然任何一个树节点下最多只有两个标签, 且这两个标签的 ID 只有 1 位不同, 当发生碰撞时可以直接识别这两个标签。 所以, 在本算法中最大搜索深度为 L-1。当搜索到深度 L-1 时, 标签内部计算器最多执行 L-1 次加 1, 则计数器的最大值为 L-1, 所以标签内部计数器长度 N = lb L。
1
引言
射频识别 (Radio Frequency Identification, RFID) 是利用
多址法、 时分多址法, 其中以时分多址法应用最为广泛。时分 多址法使每个标签在单独的某个时隙内占用信道与读写器进 行通信, 防止碰撞产生。时分多址防碰撞算法主要分为 ALOHA 算法和二进制树算法。 ALOHA 算法 [1-Fra Baidu bibliotek] 对于大规模标签识别 时, 算法性能不稳定, 存在标签饥渴等问题。二进制树算法能 达到 100%的正确识别率, 适应大规模标签的应用场合。目前 已有很多文献提出了二进制树及改进算法 [3-6], 这些算法都需 要发送标签全部 ID 或部分 ID 进行搜索, 对于标签 ID 位数较 多的情况, 存在标签与读写器之间的通信量过大的问题。 本文在此基础上提出了一种二进制树的位检测算法, 该 算法在标签内设置一个计数器, 记录标签搜索深度信息, 读写 器发送长度更短的位检测的命令, 标签返回检测位以下的数 据。仿真表明该算法可以显著减小标签与读写器之间的通 信量。
无线信道实现双向通信的一种自动识别技术。因为其具有识 别速度快、 距离远, 抗干扰能力强等优点, 被广泛应用于供应 链管理、 物流和生产控制等领域。 RFID 系统主要由读写器和标签组成, 读写器通过发送无 线射频信号与识别域内的标签进行通信。当读写器识别域内 存在多个标签, 同时有两个或以上的标签向读写器发送消息 时, 将发生数据碰撞, 这种现象称之为标签碰撞。解决标签碰 撞的方法称为标签防碰撞算法。标签防碰撞算法可以实现多 个标签与读写器之间的正确通信。防碰撞算法的性能决定了 标签的识别速度和效率, 因此, 标签防碰撞算法是 RFID 系统 中的关键技术之一。 标签防碰撞算法主要分为空分多址法、 频分多址法、 码分
2.1 算法约定
q L - 1 q L - 2 ..., q 2 q1 q0为 0 或 1。标签内部设置了一个初始值为
0 的二进制计数器, 用 cnt 表示计数器值。
ξi表示值为 i 的二进制数。读写 (1) Active (ξi) —激活命令:
读写器发送 Active (ξi ) , 满足条件标签被激活
相关文档
最新文档