140 likes | 309 Views
RFID 系统中标签 ID 预测防碰撞算法. ID Prediction Algorithm for Tag Collision Arbitration in RFID System. Hyun Jun Yeo, Yong Hwan Kim, Hwa Young Lim. 摘要.
E N D
RFID系统中标签ID预测防碰撞算法 ID Prediction Algorithm for Tag Collision Arbitration in RFID System Hyun Jun Yeo, Yong Hwan Kim, Hwa Young Lim
摘要 • 在无线射频识别(RFID)系统中,阅读器需要用防碰撞算法来快速识别阅读器射频区域(interrogation zone)的所有的标签。本文提出了基于树的ID预测算法来(IPA)解决标签的碰撞。在IPA算法中,用“计数位”(count-bit)来表示ID中含1的个数,并将其加在标签ID的左边位置。阅读器通过“计数位”、碰撞位的位数、已经识别出来的位来准确预测出ID。使用IPA算法,阅读器能够一次识别多个的标签。IPA算法能够减少阅读器请求的传送次数,因此能够缩短识别所有在射频区域标签的时间。
1 引言 • RFID系统由两部分组成:阅读器和标签。每个标签都有各自的唯一的ID,阅读器通过无线的方式来识别标签。阅读器到标签的信号或者标签到阅读器的信号会发生碰撞,因为阅读器和标签共享无线通道进行通信。 • 碰撞可以分为两类:阅读器碰撞及标签碰撞。阅读器碰撞,当两个相邻阅读器同时对一个标签发请询问时发生;标签碰撞,当多于两个标签同时响应阅读器的请求时就会发生。碰撞导致阅读器不能识别任何一个标签。阅读器的碰撞可以避免,因为一个阅读器可以和相邻的阅读器通信;但标签的碰撞不容易解决,因为标签不能检测到相邻的标签。为了解决标签碰撞,阅读器检测碰撞,然后需要用防碰撞算法来解决碰撞。
2 ID预测算法 • 曼切斯特编码
计数位 (count-bit) 这时IPA算法的重要特点之一,IPA利用ID中包含1的位数来预测标签ID。为了支持这个功能,我们采用标签ID的高位来作为“计数位”。 标签ID由“ID位”和“计数位”组成。ID位存储标签的唯一标致数字。“计数位”表示“ID位中”包含1的位数。“计数位”的长度可以根据下式计算:
计数位 通过将计数位加在标签ID的高位部分,我们得到如下属性: (1)“计数位”总是在识别过程中的前面被识别出来,因为阅读器从最高有效位(MSB)到最低有效位(LSB)来识别标签ID。 (2)当阅读器识别了“计数位”后,所有响应的标签的“ID位”包含“1”的位数一样。因为“计数位”包含在前缀中作为请求命令一起发送出去。 • 识别算法 识别标签ID的时候,阅读器分析标签响应的复合信号。阅读器存储一下四个值: (1)Ncb:“计数位”的值,即“ID位”中包含1的位数; (2)Nc:碰撞位数; (3)N1:到目前为止已经识别出的“1”的个数; (3)Nr:目前为止还没有被识别出来的“1”的位数。 Nr的值可以通下式计算:
识别算法 阅读器利用Nr的值来识别标签。阅读器通过下面的方法来识别标签。 (1)Nr=0:这意味着ID位中所有的位已经被识别。即不存在碰撞,一个标签被识别; (2)Nr=1:表示没有被识别的“1”只有1个。我们可以将标签ID中的一个碰撞位用“1”代替,其余碰撞位用“0”。有Nc个碰撞位,因此有Nc个标签被识别。 (3)Nr=Nc-1:说明还有1个“0”还没有被识别。因此,我们可以将标签ID中的一个碰撞位用“0”代替,其余的碰撞位用“1”代替,总共有Nc种可能,因此能够识别Nc个标签。 例如,假设阅读器接收到标签的复合信号01110XXX1。这种情况下,“计数位”是“011”,值为3;碰撞位数Nc是3。“ID位”中已经确定的“1”的位数N1是2。因此,还没有被识别的“1”的个数Nr是1。阅读器可以识别出3个标签:011101001、011100101和011100011。
识别流程 识别过程开始的时候,作为第一步,阅读器将空前缀压入堆栈。接着阅读器从堆栈中弹出前缀作为请命令发送给标签。标签将接收到的前缀和自己的标签ID的前缀相比较,一样时发出自己的标签ID。接下来,阅读器根据接收到的信号中的最高碰撞位,判断“计数位”是否已经被识别出来。如果是,阅读器存储识别信息(Nr, Nc,N1和Nr),并判断能否识别出标签。 在“计数位”被识别出来之前,或者阅读器不能识别出标签。新的前缀将被压入堆栈,用于下一流程。新的前缀是这样形成的:第一个碰撞位分别用“0”和“1”代替。然后阅读器将新前缀压入堆栈。下一流程,阅读器重新从堆栈弹出前缀,重复上面的过程直到堆栈空为止。 阅读可以利用堆栈来检测识别过程是否可以结束。
3 性能评价 • 仿真程序用C语言编写,可以选择标签的数量、标签ID的长度及分配标签ID的方式。在试验时,标签ID的分配使用两种方法:随机分配和顺序分配。使用随机分配,所有标签ID的值在一个ID范围内均匀分布。而顺序分配将所有标签ID集中在一个指定的ID范围。 • 实验计算了不同标签数量,不同标签ID长度下,分别在随机分配ID和顺序分配ID方式下的阅读器和标签之间的请求/应答的次数。 • 在实验中用的标签ID长度为8位和16位。
(a)8位随机分配 (b)8位顺序分配 (c)16位随机分配 (d)16位顺序分配
4 结论 • 为了能够快速、完全识别所有在射频区域的标签,阅读器需要防碰撞算法。在本文里,我们提出了ID预测算法(IPA)。IPA算法通过利用ID中包含1的位数、当前请求中碰撞位的个数和已经被识别的1的个数,能够让阅读器准确预测标签ID。通过仿真评估,IPA算法性能优于其它算法。在最好的情况下,IPA算法性能比查询树算法的性能提高了约四倍,比二进制查找算法的性能提高了约两倍。继续研究改进IPA算法,以加速识别过程是很重要的。