14
RFID RFID 系系系 系系系 ID ID 系系系系系系系 系系系系系系系 Hyun Jun Yeo, Yong Hwan Kim, Hwa You ng Lim ID Prediction Algorithm for Ta ID Prediction Algorithm for Ta g Collision Arbitration in RFI g Collision Arbitration in RFI D System D System

RFID 系统中标签 ID 预测防碰撞算法

Embed Size (px)

DESCRIPTION

RFID 系统中标签 ID 预测防碰撞算法. ID Prediction Algorithm for Tag Collision Arbitration in RFID System. Hyun Jun Yeo, Yong Hwan Kim, Hwa Young Lim. 摘要. - PowerPoint PPT Presentation

Citation preview

Page 1: RFID 系统中标签 ID 预测防碰撞算法

RFIDRFID 系统中标签系统中标签 IDID 预测防碰撞算法预测防碰撞算法

Hyun Jun Yeo, Yong Hwan Kim, Hwa Young Lim

ID Prediction Algorithm for Tag Collision ID Prediction Algorithm for Tag Collision Arbitration in RFID SystemArbitration in RFID System

Page 2: RFID 系统中标签 ID 预测防碰撞算法

摘要 摘要 在无线射频识别(在无线射频识别( RFIDRFID )系统中,阅读器需要)系统中,阅读器需要用防碰撞算法来快速识别阅读器射频区域(用防碰撞算法来快速识别阅读器射频区域( interrinterrogation zoneogation zone )的所有的标签。本文提出了基于)的所有的标签。本文提出了基于树的树的 IDID 预测算法来(预测算法来( IPAIPA )解决标签的碰撞。在)解决标签的碰撞。在IPAIPA 算法中,用“算法中,用“计数位计数位”(”( count-bitcount-bit )来表示)来表示 IIDD 中含中含 11 的个数,并将其加在标签的个数,并将其加在标签 IDID 的左边位置。的左边位置。阅读器通过“计数位”、碰撞位的位数、已经识阅读器通过“计数位”、碰撞位的位数、已经识别出来的位来准确预测出别出来的位来准确预测出 IDID 。使用。使用 IPAIPA 算法,阅算法,阅读器能够读器能够一次识别多个一次识别多个的标签。的标签。 IPAIPA 算法能够减算法能够减少阅读器请求的传送次数,因此能够缩短识别所少阅读器请求的传送次数,因此能够缩短识别所有在射频区域标签的时间。 有在射频区域标签的时间。

Page 3: RFID 系统中标签 ID 预测防碰撞算法

1 1 引言 引言 RFIDRFID 系统由两部分组成:阅读器和标签。每个标系统由两部分组成:阅读器和标签。每个标签都有各自的唯一的签都有各自的唯一的 IDID ,阅读器通过无线的方式,阅读器通过无线的方式来识别标签。阅读器到标签的信号或者标签到阅来识别标签。阅读器到标签的信号或者标签到阅读器的信号会发生碰撞,因为阅读器和标签共享读器的信号会发生碰撞,因为阅读器和标签共享无线通道进行通信。无线通道进行通信。碰撞可以分为两类:碰撞可以分为两类:阅读器碰撞阅读器碰撞及及标签碰撞标签碰撞。阅。阅读器碰撞,当两个相邻阅读器同时对一个标签发读器碰撞,当两个相邻阅读器同时对一个标签发请询问时发生;标签碰撞,当多于两个标签同时请询问时发生;标签碰撞,当多于两个标签同时响应阅读器的请求时就会发生。碰撞导致阅读器响应阅读器的请求时就会发生。碰撞导致阅读器不能识别任何一个标签。阅读器的碰撞可以避免,不能识别任何一个标签。阅读器的碰撞可以避免,因为一个阅读器可以和相邻的阅读器通信;但标因为一个阅读器可以和相邻的阅读器通信;但标签的碰撞不容易解决,因为标签不能检测到相邻签的碰撞不容易解决,因为标签不能检测到相邻的标签。为了解决标签碰撞,阅读器检测碰撞,的标签。为了解决标签碰撞,阅读器检测碰撞,然后需要用防碰撞算法来解决碰撞。然后需要用防碰撞算法来解决碰撞。

Page 4: RFID 系统中标签 ID 预测防碰撞算法

2 ID2 ID 预测算法预测算法曼切斯特编码 曼切斯特编码

Page 5: RFID 系统中标签 ID 预测防碰撞算法

阅读器和标签之间的问答 阅读器和标签之间的问答

Page 6: RFID 系统中标签 ID 预测防碰撞算法

计数位 (计数位 ( count-bitcount-bit )) 这时这时 IPAIPA 算法的重要特点之一,算法的重要特点之一, IPAIPA 利用利用 IDID 中包中包

含含 11 的位数来预测标签的位数来预测标签 IDID 。为了支持这个功能,。为了支持这个功能,我们采用标签我们采用标签 IDID 的高位来作为“计数位”。的高位来作为“计数位”。

标签标签 IDID 由“由“ IDID 位”和“计数位”组成。位”和“计数位”组成。 IDID 位存位存储标签的唯一标致数字。“计数位”表示“储标签的唯一标致数字。“计数位”表示“ IDID 位位中”包含中”包含 11 的位数。“计数位”的长度可以根据的位数。“计数位”的长度可以根据下式计算: 下式计算:

Page 7: RFID 系统中标签 ID 预测防碰撞算法

计数位计数位 通过将计数位加在标签通过将计数位加在标签 IDID 的高位部分,我们得到如下属性:的高位部分,我们得到如下属性: (( 11 )“计数位”总是在识别过程中的前面被识别出来,因为阅)“计数位”总是在识别过程中的前面被识别出来,因为阅

读器从最高有效位(读器从最高有效位( MSBMSB )到最低有效位()到最低有效位( LSBLSB )来识别标)来识别标签签 IDID 。。

(( 22 )当阅读器识别了“计数位”后,所有响应的标签的“)当阅读器识别了“计数位”后,所有响应的标签的“ IDID位”包含“位”包含“ 1”1” 的位数一样。因为“计数位”包含在前缀中作为的位数一样。因为“计数位”包含在前缀中作为请求命令一起发送出去。请求命令一起发送出去。

识别算法识别算法 识别标签识别标签 IDID 的时候,阅读器分析标签响应的复合信号。阅读器的时候,阅读器分析标签响应的复合信号。阅读器

存储一下四个值:存储一下四个值: (( 11 )) NcbNcb :“计数位”的值,即“:“计数位”的值,即“ IDID 位”中包含位”中包含 11 的位数;的位数; (( 22 )) NcNc :碰撞位数;:碰撞位数; (( 33 )) N1N1 :到目前为止已经识别出的“:到目前为止已经识别出的“ 1”1” 的个数;的个数; (( 33 )) NrNr :目前为止还没有被识别出来的“:目前为止还没有被识别出来的“ 1”1” 的位数。的位数。 NrNr 的值可以通下式计算:的值可以通下式计算:

Page 8: RFID 系统中标签 ID 预测防碰撞算法

识别算法 识别算法 阅读器利用阅读器利用 NrNr 的值来识别标签。阅读器通过下面的方法来的值来识别标签。阅读器通过下面的方法来

识别标签。识别标签。 (( 11 )) Nr=0Nr=0 :这意味着:这意味着 IDID 位中所有的位已经被识别。即不位中所有的位已经被识别。即不

存在碰撞,一个标签被识别;存在碰撞,一个标签被识别; (( 22 )) Nr=1Nr=1 :表示没有被识别的“:表示没有被识别的“ 1”1” 只有只有 11 个。我们可以个。我们可以

将标签将标签 IDID 中的一个碰撞位用“中的一个碰撞位用“ 1”1” 代替,其余碰撞位用“代替,其余碰撞位用“ 0”0” 。。有有 NcNc 个碰撞位,因此有个碰撞位,因此有 NcNc 个标签被识别。个标签被识别。

(( 33 )) Nr=Nc-1Nr=Nc-1 :说明还有:说明还有 11 个“个“ 0”0” 还没有被识别。因此,还没有被识别。因此,我们可以将标签我们可以将标签 IDID 中的一个碰撞位用“中的一个碰撞位用“ 0”0” 代替,其余的碰代替,其余的碰撞位用“撞位用“ 1”1” 代替,总共有代替,总共有 NcNc 种可能,因此能够识别种可能,因此能够识别 NcNc 个个标签。标签。

例如,假设阅读器接收到标签的复合信号例如,假设阅读器接收到标签的复合信号 01110XXX101110XXX1 。这。这种情况下,“计数位”是“种情况下,“计数位”是“ 011”011” ,值为,值为 33 ;碰撞位数;碰撞位数 NcNc 是是33 。“。“ IDID 位”中已经确定的“位”中已经确定的“ 1”1” 的位数的位数 N1N1 是是 22 。因此,还。因此,还没有被识别的“没有被识别的“ 1”1” 的个数的个数 NrNr 是是 11 。阅读器可以识别出。阅读器可以识别出 33 个个标签:标签: 011101001011101001 、、 011100101011100101 和和 011100011011100011 。。

Page 9: RFID 系统中标签 ID 预测防碰撞算法

识别流程识别流程 识别过程开始的时候,作为第识别过程开始的时候,作为第

一步,阅读器将空前缀压入堆一步,阅读器将空前缀压入堆栈。接着阅读器从堆栈中弹出栈。接着阅读器从堆栈中弹出前缀作为请命令发送给标签。前缀作为请命令发送给标签。标签将接收到的前缀和自己的标签将接收到的前缀和自己的标签标签 IDID 的前缀相比较,一样的前缀相比较,一样时发出自己的标签时发出自己的标签 IDID 。接下。接下来,阅读器根据接收到的信号来,阅读器根据接收到的信号中的最高碰撞位,判断“计数中的最高碰撞位,判断“计数位”是否已经被识别出来。如位”是否已经被识别出来。如果是,阅读器存储识别信息果是,阅读器存储识别信息(( Nr, Nc,N1Nr, Nc,N1 和和 NrNr ),并判),并判断能否识别出标签。断能否识别出标签。

在“计数位”被识别出来之前,在“计数位”被识别出来之前,或者阅读器不能识别出标签。或者阅读器不能识别出标签。新的前缀将被压入堆栈,用于新的前缀将被压入堆栈,用于下一流程。新的前缀是这样形下一流程。新的前缀是这样形成的:成的:第一个碰撞位分别用第一个碰撞位分别用““ 0”0” 和“和“ 1”1” 代替代替。然后阅读。然后阅读器将新前缀压入堆栈。下一流器将新前缀压入堆栈。下一流程,阅读器重新从堆栈弹出前程,阅读器重新从堆栈弹出前缀,重复上面的过程直到堆栈缀,重复上面的过程直到堆栈空为止。空为止。

阅读可以利用堆栈来检测识别阅读可以利用堆栈来检测识别过程是否可以结束。 过程是否可以结束。

Page 10: RFID 系统中标签 ID 预测防碰撞算法

示例 示例

Page 11: RFID 系统中标签 ID 预测防碰撞算法

示例示例

Page 12: RFID 系统中标签 ID 预测防碰撞算法

3 3 性能评价 性能评价 仿真程序用仿真程序用 CC语言编写,可以选择标签的数量、语言编写,可以选择标签的数量、标签标签 IDID 的长度及分配标签的长度及分配标签 IDID 的方式。在试验时,的方式。在试验时,标签标签 IDID 的分配使用两种方法:随机分配和顺序分的分配使用两种方法:随机分配和顺序分配。使用随机分配,所有标签配。使用随机分配,所有标签 IDID 的值在一个的值在一个 IDID范围内均匀分布。而顺序分配将所有标签范围内均匀分布。而顺序分配将所有标签 IDID集中集中在一个指定的在一个指定的 IDID范围。范围。实验计算了不同标签数量,不同标签实验计算了不同标签数量,不同标签 IDID 长度下,长度下,分别在随机分配分别在随机分配 IDID 和顺序分配和顺序分配 IDID 方式下的阅读方式下的阅读器和标签之间的请求器和标签之间的请求 // 应答的次数。应答的次数。在实验中用的标签在实验中用的标签 IDID 长度为长度为 88 位和位和 1616 位。位。

Page 13: RFID 系统中标签 ID 预测防碰撞算法

( a ) 8 位随机分配 ( b ) 8 位顺序分配

( c ) 16 位随机分配 ( d ) 16 位顺序分配

Page 14: RFID 系统中标签 ID 预测防碰撞算法

4 4 结论 结论 为了能够快速、完全识别所有在射频区域的标签,为了能够快速、完全识别所有在射频区域的标签,阅读器需要防碰撞算法。在本文里,我们提出了阅读器需要防碰撞算法。在本文里,我们提出了 IIDD 预测算法(预测算法( IPAIPA )。)。 IPAIPA 算法通过利用算法通过利用 IDID 中包中包含含 11 的位数、当前请求中碰撞位的个数和已经被的位数、当前请求中碰撞位的个数和已经被识别的识别的 11 的个数,能够让阅读器准确预测标签的个数,能够让阅读器准确预测标签 IDID 。。通过仿真评估,通过仿真评估, IPAIPA 算法性能优于其它算法。在算法性能优于其它算法。在最好的情况下,最好的情况下, IPAIPA 算法性能比查询树算法的性算法性能比查询树算法的性能提高了约四倍,比二进制查找算法的性能提高能提高了约四倍,比二进制查找算法的性能提高了约两倍。继续研究改进了约两倍。继续研究改进 IPAIPA 算法,以加速识别算法,以加速识别过程是很重要的。过程是很重要的。