yiffer的个人空间 https://blog.eetop.cn/edesign [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

一种用于RFID标签识别的增强型动态帧时隙ALOHA算法

已有 1254 次阅读| 2010-6-17 10:29 |个人分类:通讯技术

RFID系统中,多标签防碰撞是我们必须要解决的问题之一,因为它会降低RFID系统的效能。当待读取的标签数目比较少时,ALOHA类算法是一种普遍使用的防碰撞算法,这类算法比较简单并且在应用中展现了很好的防碰撞性能。而且随着标签数目的增长,此类算法通常需要指数增长的时隙数目来识别标签。本文提出了一种新的动态帧时隙ALOHA防碰撞算法,该算法首先估计识读区域内未识读的标签数目,然后通过调整响应标签的数目或帧长度来提高随机RFID系统的性能,最后,在本算法中,识读标签的时隙数随着标签数目的增长而线性增加。仿真结果表明,当标签数目为1000时,本文提出的算法相对于传统的防碰撞算法可以使时隙利用率提高85%~100%

1.摘要

近年来,RFIDRadio Frequency IDentification)即射频识别作为条形码的替代品在物流业、供应链和银行部门引起了越来越多的重视,这是因为RFID系统相对于条形码拥有非接触识别和数据容量大等优点。然而RFID也存在识别数据完整性问题和RFID标准制定进程缓慢等缺点,其中RFID系统最大的不足在于出现多标签碰撞时的相当低的标签数据识读率。多标签碰撞是指当多个标签同时存在于同一个射频信道内时,阅读器无法读取标签数据的现象。现有的解决多标签碰撞问题的方法主要有两种,一是通过扩展频率带宽来提高数据传输速度,二是最小化标签碰撞从而提高标签识读率。然而由于可用频带有限制,扩展频率带宽是不可行的。因此我们必须通过减少标签碰撞来提高标签识读率。到目前为止,科研人员已经提出了一些防碰撞算法,在这些算法里面应用最广泛的是帧时隙ALOHA算法和二进制搜索算法,由于简单实用,帧时隙ALOHA算法应用地更为频繁。例如ISO/IEC18000-6 Type A协议和ISM13.56MHz频段EPC Class1协议是使用的帧时隙ALOHA算法,ISO/IEC18000-6 Type B协议和900MHz频段的EPC Class 0协议是使用的二进制搜索算法。

由于大多数RFID系统使用的是被动标签,在帧时隙ALOHA算法中,帧长度是受到限制的。在该算法中,标签随机地在帧中选取一个时隙号,并用这个时隙号向阅读器回应其被选中。当标签数目很少时使用这种算法,会使标签碰撞的可能性比较低,因此识别所有标签耗费的时间就会相对较短。但是随着标签数目的增加,标签碰撞的可能性就会增加,而且识别标签耗费的时间也会迅速增长。如果在试图访问ALOHA算法固定数目时隙的标签数目增加的情况下,这个问题是不可避免的。为了解决这一问题,当同时存在大量标签时,我们提出了一种将响应的标签数目限制在识读效率最高的标签数目之内的多标签防碰撞算法,因此,这种新算法很好地提高了标签识读效率,而且即使有大量的标签同时存在,该算法也可线形地增加请求时间来识读标签信息。

本文的另外四个部分是这样安排的,第二部分介绍了一组帧时隙ALOHA算法并指出了这些算法的不足;第三部分提出并分析了一种改进型的动态帧时隙ALOHA算法(EDFSA),该算法解决了第二部分提出的问题即原有帧时隙ALOHA算法的不足;第四部分将提出的算法和现有算法进行比较;最后,第五部分给出我们的结论。

2.帧时隙ALOHA防碰撞算法

帧时隙ALOHA算法是这样一种标签识别的方法,每个标签都在一帧的时隙中向阅读器发送自身的序列号,同时阅读器只有在它接受到的标签序列号没有碰撞的时候才能识别发出请求的标签。一个时隙是指标签发送他们序列号的时间间隔,当一个时隙只被一个标签占有时阅读器就会识别出这个标签。当前的RFID系统使用了一种被称为帧时隙ALOAHA算法的时隙ALOAHA算法。一帧是指由阅读器要求的包含若干时隙的时间间隔,一个阅读周期是指由若干帧组成的标签识别过程。本部分简要地描述现有的帧时隙ALOHA防碰撞算法并比较它们的性能。

2.1基本的帧时隙ALOAHA算法(BFSA算法)

BFSA算法使用的是固定帧长度而且在标签识别过程中不改变帧长度。在BFSA算法中,阅读器将帧长度和用于选择一帧中某个时隙的随机号码的信息提供给标签,每个标签利用随机号码来选择一个时隙号并响应该帧中的这个时隙号。

图一展现了BFSA算法的工作过程。在第一个阅读周期内,标签1和标签3同时在时隙1中发送它们的序列号,标签2和标签5分别在时隙2中发送它们的序列号,像这样就会相互碰撞,标签1235必须在阅读器的下一个请求时才能响应。由于只有一个标签在时隙3中响应,阅读器可以在第一个阅读周期内识别标签4,在这个例子中,帧时隙被设定为3个时隙长。

由于BFSA算法的帧长度是固定的,所以它的执行过程很简单,然而,却有一个缺点会降低标签识读的性能。举个例子,假如存在特别多的标签并且所有的时隙可能都存在碰撞,那么没有一个标签在阅读周期内被识别的情况就会一直重复下去,或者在只有少量标签的情况下,大量的帧长度都被占用从而造成了时隙的浪费。

2.2动态帧时隙(DFSA)算法

DFSA算法为提高标签识读效率改变了帧长度,依据识别标签的时隙数目和产生碰撞的时隙数目等一些信息来决定帧长度,所以DFSA基本上可以解决BFSA标签识别效率低的问题。由于改变帧长度的方法不同,DFSA算法分为几个不同的版本,在此我们将简要介绍两种常用的方法【1

第一种DFSA算法依据空时隙、产生碰撞时隙以及只有一个标签时隙的数目来规定帧长度。【1】。当产生碰撞的时隙数目超过上限时,阅读器就会加长帧长度;如果产生碰撞的可能性比下限还小,阅读器就会减小帧长度。由于阅读器以最小的帧长度开始一个阅读周期,所以当标签数量很少时,阅读器可以不增加帧长度而有效的识别所有标签;而当标签数量很大时,阅读器改变帧长度以减小产生碰撞的可能性。

第二种算法以一个时隙数为二或四的起始帧长度开始一个阅读周期。如果在前一个阅读周期没有识别到标签信息,阅读器将会增加帧长度同时进入下一个阅读周期,并且一直重复这个过程直至有至少一个标签被识别。如果只有一个标签被识别,阅读器将立即停止当前的阅读周期,并且以最小的起始帧长度开始阅读另一个标签的信息。

由于阅读器根据标签的数目来规定帧长度, DFSA算法可以有效地识别标签。然而,当有大量标签同时存在时,由于该算法只是确定地去改变帧长度,所以并不能完全避免标签碰撞。在第二种方法中,当标签数目很少时,阅读器可以几乎没有碰撞地识别所有标签,但是当数量很大时,由于该算法经常在识别完一个标签后就以最小的起始帧长度开始下一个读写周期,因此阅读器就需要依照指数规律增加时隙数目来识别所有标签,而不管还有多少标签还没有识别。

2.3 改进的动态帧时隙ALOHA算法(AFSA

AFSA算法首先估计识读范围内的标签数目,然后根据估计的标签数目选择一个合适的帧长度去识别标签,所以AFSA算法要比BFSA算法能够更有效地减少碰撞。

AFSA算法利用一个阅读周期中空时隙、只有一个标签的时隙和产生碰撞的时隙数目来估计标签的数目,并且使用一个方程形式的函数来估计标签数目。Chebyshev不等式告诉我们,一次随机实验的结果中包含的那个随机变化的X值往往在某一方面最接近于X的理想值,对标签数目的估计函数正是利用了这个性质。因此,估计函数正是通过测量真实值和预期值之间的差别来估计标签的数目从而使这种差距变得最小。

对标签数目的估计使用了阅读周期中的帧长度以及前一个阅读周期的结果(c0c1c2)之间的等式关系,其中c0,c1,c2分别代表空时隙、只有一个标签的时隙和产生碰撞的时隙的数目。在这个等式中,<aNn0aNn1aNn2>分别是预期空时隙、只有一个标签的时隙和产生碰撞的时隙的数目,其中Nn分别表示帧长度和标签数目。

AFSA算法假设标签已经在其他的阅读周期中产生了阅读响应,并且计算出需要多少时隙来阅读99%的标签从而来改变帧长度,然后算法选择一个需要最少时隙数的帧长度。由于AFSA算法估计了标签数目并且选择一个能最小化产生碰撞可能性的帧长度,所以要比其他的防碰撞算法更为有效。然而AFSA算法也有一个同样的问题,那就是不能随着标签数目的增加而随机地增加帧长度,因此,该算法在标签数目比较少的时候效果比较好,但是,当标签数目很大时,就会变的不那麽有效果。另外,这种方法不适用于一次性标签。

3.增强型动态帧时隙ALOHA算法(EDFSA)的提出

之前的帧时隙ALOHA算法通过改变来提高标签识读率,然而随着标签数目变得大过帧长度时,标签碰撞的可能性就会急剧增加。如果不把响应的标签数目限制在近似等于我们即将在接下来的文章中解释的帧长度时,这个问题很难得以解决,在第三部分中,我们提出了一种增强型动态帧时隙ALOHA算法来解决这个问题。

3.1 EDFSA算法的描述

如果我们能够估计出未读标签的数目,那么就可以最大化系统效率,或者说使标签碰撞的可能性降至最低。通常来讲,当标签数量很大时,我们可以增加帧长度来降低标签碰撞的几率。当未读标签数目太大以至于不能达到较高的系统效率时,由于我们不能随机地增加帧长度,就必须限制未读标签的数目从而选择最佳的标签数目来响应已规定好的帧长度。当标签数目太小从而不能达到理想的系统效率时,我们又必须减小帧长度。在这里,系统效率的定义是只有一个标签的时隙数目在当前帧长度中占的比例,并且是使用EDFSA算法中的估计标签数目和帧长度计算得来的。另外,估计的未读标签数目可以通过方程(1)中的估计函数来获得。

EDFSA算法首先估计未读标签的数目,相比于给定的最大帧长度,假如算法确定未读标签的数目远远大于可以获得最佳系统效率的数目,那么就利用最大帧长度将未读的标签分成几个部分,并且只允许一组标签在同一个阅读周期中响应。在该算法中,一旦应该响应的标签数目确定以后,我们就可以计算响应的标签数目在所有未识别标签中占有的比例。利用这个比例,阅读器请求对按模数操作余数为0的所有未读标签进行响应。在每个阅读周期中,阅读器都对未读的标签数目进行估计并且计算可以在下一个产生最大吞吐量分组数目。

如果当前帧长度大于可以给系统带来最佳效率的帧长度时,阅读器就会开始减小帧长度以使系统在识读估计的未读标签数目时达到最佳状态。

BFSA算法一样,当阅读器限制了相应标签的数目时,阅读器在广播请求信息中会向标签发送标签的组数及一个随机数字。标签接受到请求后根据接收到的随机数字和自身的序列号产生一个新的数字,并且将新产生的数和字标签的组数将进行相除,只有余数为零的标签可以对阅读器的请求响应。当估计标签的数目低于一个极限的时候,阅读器便不会对未读标签进行分组,并且调整帧长度。这就意味着阅读器以一个帧长度、一个随机数字和标签组数来广播一个阅读请求,在每一个阅读周期结束后,阅读器估计未读标签的数目并且调整自己的帧长度,这个过程一直持续到所有的标签都被识别。

3.2 EDFSA算法的分析

在这一部分我们将给出当响应的标签数目增加并且帧长度固定的时候系统效率怎样进行改变,然后引出一种可以使系统效率最大化的情况。

一般来讲,在帧时隙ALOHA防碰撞算法中,当响应标签的数目变得越来越大时,系统效率就会开始降低,假设阅读器使用的帧长度是N,响应标签的数目为nr个标签存在于一个给定时隙的几率遵循一个如下的二项式分布:

然而,一个阅读周期中预期读取的标签数目可以由下面的式子求出:

其中a1Nn表示r个标签在帧长度为N,未读标签数为n时占用的时隙数,这样系统效率就可以由以下的式子计算得出:

2给出了帧长度为256时系统效率和标签数目之间的关系【3】【7

我们可以利用对式(3)取微分生成的方程式得到使系统效率最高的标签数目。

对以上的方程式求解,就可以得到一个当帧长度为N时的理想响应标签数目。

当标签数目为n时,最佳帧长度的值可以由下式得出:

n的值很大的时候,可以使用泰勒级数简化上式如下所示:

由上式可看到,当标签数目和帧长度基本相同时,可以的到最高的系统效率【3】。

从图2和式8可以d得到这样一个结论,如果我们将响应的标签数目限制在和帧长度相接近的时候,就可以达到最高的系统效率。如果未读标签的数目非常大(也就是说,大于帧长度),我们可以通过对标签分组来限制标签响应,并且运用求模运算,只允许一组标签进行响应,分组数和模数可以由下式求得:

本文中,考虑到执行过程的复杂性,我们假设EDFSA算法使用2的幂数(248……)来对标签进行分组,这样求模运算就可以简单地由移位寄存器来完成。图3给出了当帧长度设定为N=256时,系统效率随着标签数目增加的变化关系。在图3中我们可以看到,当未读标签的数目和帧长度比较接近的时候,系统效率可以达到最大值36.8%

根据图3可以选定一个能够得到更高系统效率的具体的标签组数。

当未读标签的数目接近于或是小于帧长度时,即便不使用求模运算,不减小帧长度,也可以得到较高的系统效率。图4给出了当帧长度变化时系统效率的变化情况。

EDFSA算法选择的帧长度和模数要比其它任意两个量的组合都能够提供更高的系统效率。比如,由图3可知,不管我们采用的是模2运算还是模1运算,产生相同系统效率的标签数目是相同的,该值可由下式得出:

也可以将上式写成下面的这种形式:

因此,我们可以得出:

当未读标签数目略大于354时,为了达到最佳的系统效率,我们就需要将这些标签分为两组;而当未读标签的数目略小于354时,我们就必须使每个未读标签都进行响应。这样做,就可以一直使系统效率保持在34.6%36.8之间,规律总结如表1所示:

4.EDFSA算法的性能分析

这一部分给出了当标签数目从0变化到1000EDFSA算法性能的变化。因此,根据未读标签的数目,EDFSA算法不是改变帧长度就是将标签分组并且只让一组标签响应,下面我们将仔细地观察当标签数目从0变化到200EDFSA算法性能的变化.

我们将EDFSA算法同BFSA算法以及采用第一种增加帧长度方法的DFSA算法进行比较。下文中,采用第一种增加帧长度方法的DFSA算法简称为“增值方法”,并且假设每种算法的最大帧长度为256,然后BFSA算法使用256个时隙的固定帧长度,增值方法则在16256个时隙之间增加帧长度。在增值方法中,在产生碰撞的时隙数大于当前帧长度的70%时,假设帧长度将加倍。同时,当空时隙数大于当前帧长度的30%时,假设阅读器会将当前的帧长度减半。在EDFSA算法中,假设初始帧长度为128个时隙。当一个阅读周期中没有标签时,我们假设所有的标签已经被识读并结束仿真。为了得到结果,仿真程序将运行1000次,并且对这1000个结果取平均值。

4.1算法只需要改变帧长度的情况

5显示了当标签数目从0变化到200的过程中每个算法的性能。由于上一个阅读周期用于确定所有标签已经被识读,因此BFSA需要重复至少两个阅读周期,故BFSA算法在这种情况下比其它两种算法要使用更多的时隙。

在增值方法中,阅读标签所需的时隙数随着标签的增加而线性增长。这是因为该算法在产生碰撞的几率较高时会增加帧长度,较低时会减小帧长度。由于初始帧长度被设置为128,当标签数目很小时,EDFSA算法读取标签所需的时隙数要多于增值方法。然而,当标签数目大于120的时候,EDFSA算法将开始展现较强的性能,这是因为相对于增值方法,EDFSA算法可以较快地调整其帧长度。

4.2算法需要使用求模运算的情况

EDFSA需要进行求模运算时,我们来比较每个算法的性能。图6展示了标签从0增长到1000时每种算法的性能。从图中可以观察到,随着标签数目的增加,BFSA算法和增值算法识读标签所需的时隙数都会成指数规律增加,而EDFSA算法只是成线性规律增加,并且,同帧长度相比,由于太多的标签在进入时隙,大部分的时隙都被标签碰撞所浪费了。

由于增值方法可以在未读标签数目变小的时候减小帧长度,而BFSA算法则不管未读标签的数目怎样变化都保持同样的帧长度,增值方法表现出来比BFSA算法更好的性能。

EDFSA算法识读标签所用的时隙数随着标签数目的增长而成线性关系增加,这是因为不管未读标签的数目为多少,EDFSA算法都可以将系统效率保持在34.6%36.8之间的一个平均数上。从图6中我们可以观察到,当标签数是1000的时候,EDFSA算法的性能分别比BFSA算法和增值方法改进了100%85%,由于本算法所需的时隙数是线性增长的,而其它两种方法则是按指数规律增长,所以如果标签数目更大些的话,就可以发现本算法的性能会更好。

5.结论

鉴于传统RFID防碰撞算法识读标签时需要的时隙数随着标签数目的增加将会成指数规律增加,本文提出了一种增强型的动态帧时隙ALOHA算法(EDFSA),解决了这一问题。该算法首先估计未读标签的数目,并且只允许一部分标签响应从而来产生最佳的系统效率,当标签数目相对于给定的最大帧长度太大时,可以用求模运算来完成,而当标签数目相对于给定的帧长度太小时,系统的效率便不是最佳,从而需要减小帧长度使得系统效率保持在最佳状态。

为了执行过程的简单化,帧长度和模数都使用的是2的幂数。尽管在选择帧长度和幂数上还有一些限制,系统效率还是可以保持在34.6%36.8%之间。这就意味着随着标签数目的增加,识读标签所需的时隙数一直是线性增加的。使用帧时隙ALOHA算法时系统的理论效率是36.8%,为了证明本文提出算法的有效性,我们进行计算机仿真并且发现当标签数为1000


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 3

    粉丝
  • 0

    好友
  • 20

    获赞
  • 69

    评论
  • 3705

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-25 19:53 , Processed in 0.025274 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部