180 likes | 505 Views
Adaptive k-Way Splitting and Pre-Signaling for RFID Tag Anti-Collision. RFID 标签反碰撞的自适应 K 路分裂和预信号. Abstract.
E N D
Adaptive k-Way Splitting and Pre-Signaling for RFID Tag Anti-Collision RFID 标签反碰撞的自适应K路分裂和预信号
Abstract • 在RFID系统,阅读器通过共享的无线信道通信查询标签来识别标签。当多个标签同时把它们的ID发送到阅读器,碰撞就会发生,这大大影响了标签识别的性能。因此如何去减少标签碰撞从而加快识别速度是非常重要的。现有几种协议防止标签碰撞。可以把它们分为三类:基本ALOHA、基本树型和基于计数器。其中基于计数器的协议有相对较好的性能。本文使用自适应K路分开和预信号的概念提出一个基于计数器的反碰撞算法。我们同样进行仿真实验,将该算法与ISO/IEC 18000-6B 反碰撞协议进行比较,证明该算法的先进性。 • 关键词:RFID,反碰撞, ISO/IEC 18000-6B
1.引言 • 基于ALOHA的协议比较简单,但它有标签饥饿的问题,这使得它们的应答经常相碰撞,它们很难识别。基于树型与基于计算器的协议没有标签饥饿的问题。这两类协议的基本思想是重复地把碰撞的标签分裂为几组直到组里只有一个标签。区别在于前者静态地依靠于分裂的标签ID,后者动态地依靠于变化的计数器。前者有确定性的分裂,可能有相对较长的查询时延;后者有机率性的分裂,时延较短。ISO/IEC 18000-6B 是一个采用基于计数器的反碰撞算法的标准。
2.相关工作 • 在这个部分里我们简单介绍三类反碰撞协议:基于ALOHA协议、基于树型协议、基于计数器协议。 • A.基于ALOHA的协议 • 基于ALOHA的协议比较简单,适用于只读标签。不过它们存在标签饥饿问题,致使标签因应答信号的碰撞而不能被识别。 • B.基于树型的协议 • 基于树型的协议存在一个确定性识别过程,其中一些算法假设标签有存储器,另一些没作这种假设。例如查询树型算法没有基于标签存储器,而bit-by-bit二进制树型协议通过利用标签存储器来提高识别性能。没有存储器的标签比较便宜,但会导致比较差的识别性能。
2.相关工作 • C.基于计数器的协议 • ISO/IEC 18000-6B是一个采用基于计数器反碰撞算法的标准。在ISO/IEC 18000-6B里,每个标签使用一个动态改变的计数器和一个随机位产生器。全部计数器初始化为0,计数器为0的标签可以将它们的ID发送出去,当碰撞发生后,阅读器就会通知碰撞的标签,计数器值大于0的标签就把计数值加1,而计数器为0的标签随机产生一个位0或1,并把这个位加到计数值。通过这种方法可以将发生碰撞的标签分为两种。这个过程一直执行到计数值为0的标签只有一个为止。当成功识别一个标签后,这个标签将保持沉默不再参与识别。当没有碰撞时,阅读器会通知其它标签的计数值减1。当标签数目比较小时,基于计数器的协议时延较小,当标签数目较大时,其性能也是可以接受的。
3.提出算法 • 在这个部分里,我们提出一个新的基于计数器的反碰撞算法,称为AKS,使用了自适应K路分裂和预信号这两种方法来减少标签碰撞和阅读器与标签之间的信息传输。下面我们分别介绍这两种方法。
3.提出算法 • A.自适应K路分裂 • 假设有N个标签在一个阅读器的工作域,依照ISO18000-6B标准,如果只有一个标签的计数值为0,它就会被成功地识别,但当有两个以上的标签计数值为0,它们就会再随机就分为两组。AKS不同的地方就是把它们分为K组,而不是两组,此处K为标签数目的估计值。 • 原始分裂组(PSG)对自适应K路分裂是必要的。如图1所示,把它们从上到下编号为PSG1,,PSG2,...PSG里的标签再分为带有不同计数值的小组,如图2所示。阅读器动态地跟随每个PSG的最小计数值从而使标签可以分到合适的PSG。
3.提出算法 • 自适应K路分裂的基本思想是把一个PSG组再分为K组,K等于PSG里的标签数。从参考文献[3]我们可知当PSG里有K个标签时K路分裂的性能最好。我们不知道PSG组里的标签确切数目K。可以有技巧地通过已经识别的标签数来估计K。
3.提出算法 • 在估计到K后,把PSG分为K组,PSG标签随机选择从0到K的数字然后加到计数值上,这样就可以分为K组。其它不在此PSG组的标签将它们的计数值增加K,如图3所示。当应用了自适应K路分裂法后,在一小组里只有一个标签的可能性极大。
3.提出算法 • B.预信号 • 为了提高识别的性能,我们在假设阅读器可以通过检测信号强度来监测碰撞的基础上,提出了预信号。在ISO/IEC 1 8000-6B里,只有计数值为0的标签才可以响应。而在预信号方案里每个计数值为1的标签把1发送到响应窗口的前面,这些位称为预信号位,而计数值为0的响应信号紧跟其后,预信号位的值可以有空、1个1和多个1的值Is三种情况。 • (情况1)预信号位值为空。意味着没有标签计数值为1。在所有计数值为0的标签被识别后,阅读器会通知所有未识别的标签将计数值减2。这样可以减少一个没有响应的周期。
3.提出算法 • (情况2)预信号位为1个1。意味着只有一个标签的计数值为1,这个标签在下一个周期可以成功地被识别而不会发生碰撞,这种情况阅读器按原计划运行。 • (情况3)预信号位为多个1。意味着计数值为1的标签有多个,阅读器在识别完所有计数值为0的标签后立刻通知这些标签进行分组,此时这些标签就可以随机分为计数值为0和1两组,省去了原始标准阅读器通知各标签计数值减1、等待响应、检测到碰撞、通知此组标签计数值随机加0或1而其它组标签计数值加1这几个步骤。 • 借助于预信号位,阅读器与标签间的信号传输可以大大减少。自适应K路算法和预信号方法都应用的话就可以显著地提升标签识别的性能。我们将通过下一部分的仿真表示出来。
4.仿真 • 本部分中我们对AKS进行仿真,并比较它与ISO/IEC 18000-6B采纳的反碰撞算法的标签碰撞次数、识别所有标签所需的阅读器与标签间的通信次数。仿真程序用java语言编写,小数目(小于500)和大数目(大于500)的标签识别分别执行了1000次。
4.仿真 • A.碰撞次数 • 如图4和图5所示,当标签数为500时,AKS的碰撞次数为ISO 18000-6B的30.3%。从图4和图5的里我们还可以看出标签越多AKS协议越有效。
B.阅读器发信号次数 • 当阅读器准备好去查询标签和接收标签的响应时,它就发出选择命令。计数值为0的标签把它们的ID回应到阅读器。阅读器会发出成功或失败的命令通知标签它们的响应状态。成功命令表明只有一个或没有响应,而失败命令表明有多个响应。由图6和图7,当标签数为500时,AKS阅读器发信号的次数只是ISO 18000-6B的62.9%。还可以看出标签越多,AKS的效率越高。如果我们只计算由标签碰撞和无碰撞响应产生的额外命令,而不计算标签识别成功的命令,当标签数为5000时,AKS阅读器发信号的次数只是ISO 18000-6B的41%。
4.仿真 • C.标签识别时延 • 比较AKS与ISO/IEC 18000-6B反碰撞算法的标签识别时延,即完成所有标签识别所消耗的时间Td,式(4)中各缩写的意思如表1所示,参数按ISO/IEC 18000-6B的设定(表2),设阅读器发送命令的时间为1.5ms,标签响应信号的时间为2.7ms,无响应时间为0.5ms。表3是仿真结果,从表中我们可以看出AKS只用了ISO 18000-6B 标准的60%时间来识别所有标签。
5.结论 • 本文我们提出一个新的基于计数器的反碰撞协议AKS,使用了两个方法:自适应K路分裂和预信号。通过估计PSG组的标签数目K,自适应K路分裂把标签分为K组,从而使每小组只有一个标签。这样可以有效地减少碰撞的次数。预信号法可以大大减少阅读器与标签之间的信号传输次数。我们对AKS进行仿真并与ISO/IEC 18000-6B反碰撞协议进行比较,仿真结果表明AKS协议比ISO/IEC 18000-6B反碰撞协议要好。