多标签防碰撞算法主要分为三类:①基于Aloha的算法,又称为随机性算法;②基于树的算法,又称为确定性算法;③混合算法,将基于Aloha的算法和基于树的算法相结合而产生的一种算法。
无线射频识别(RadioFrequencyIDentifica-tion,RFID)是一种非接触式自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无需人工干预,可工作于各种恶劣环境,在物联网、供应链、物流等领域中有着广泛的应用。典型的RFID系统主要由阅读器、标签和后台计算机应用系统三部分组成,标签具有唯一的识别码(IDen-tificationcode,ID),被贴附到待识别的物体上。在RFID应用系统的一个阅读器的天线作用范围内,常常同时存在多个标签,当阅读器发出查询命令后,往往会引起多个标签同时响应,这些响应信息在共享的无线信道上发生碰撞,使响应信号难以被阅读器辨认,从而引起多标签碰撞。阅读器为完成对所有标签的识别,应将这些发生碰撞的标签区分开来,再与它们逐个通信,阅读器完成这些工作所使用的算法就是多标签防碰撞算法。
现有的多标签防碰撞算法主要分为三类:①基于Aloha的算法,又称为随机性算法;②基于树的算法,又称为确定性算法;③混合算法,将基于Aloha的算法和基于树的算法相结合而产生的一种算法。
基本的Aloha算法
基于Aloha的防碰撞算法的基本思想是:在阅读器发现多标签碰撞时,阅读器命令其作用范围内的所有标签随机延迟一段时间再进行响应,延迟时间的长度是以某种概率随机选择的。
早期的Aloha算法为纯Aloha算法,该算法采用“标签先发言”的方式,即标签一进入阅读器的作用区域就自动向阅读器发送其自身的信息,对同一个标签来说,其发送数据的时间是随机的。在标签发送信息的过程中,如果有其他标签也在发送数据,就会发生信号重叠,导致部分碰撞或者完全碰撞。
阅读器检测信号并进行判断,一旦发现碰撞,阅读器将发送命令让标签停止发送数据,所有标签会随机延迟一段时间再发送数据,由于延迟的随机时间不同,再次发生碰撞的概率将明显降低。如果没有碰撞,则阅读器发送一个应答信号给标签,标签从此转入休眠状态。这种算法简单,但吞吐率低,最大吞吐率仅能达到18.4%。
该算法效率低的主要原因是碰撞发生的时间是随机的,其中包括:当一个标签在与阅读器通信的过程中,有可能因其他标签的突然响应而被破坏,即存在部分碰撞问题。为此,人们提出时隙Aloha算法(SlottedAloha,SA),把时间分成多个离散时隙,标签只在每个时隙的开始时刻才能发送数据。算法的基本原理是:阅读器通过发送命令通知标签有多少时隙,标签随机选择发送信息的时隙。如果某个时隙只有一个标签响应,则阅读器可正确地识别标签;如果某个时隙有多个标签响应,则会发生碰撞,阅读器通知标签,标签便在下一轮循环中重新随机选择发送的时隙,直到所有的标签都被识别出来。在SA算法中,标签或成功识别或完全碰撞,避免了纯Aloha算法中出现的部分碰撞问题。SA算法的最大吞吐率可达36.8%。
FSA与DFSA
对于SA算法,在发生碰撞时,标签延迟的随机性范围很大,影响了其平均响应速度。为此,规定若干个时隙为一帧,标签选择的随机延迟必须是帧内的某个时隙,这就是帧时隙Aloha(FramedSlottedAloha,FSA)算法。
FSA算法的缺点是帧长固定,这样当标签数量较少时,存在时隙浪费,而当标签数较多时,碰撞解决的效果又不是很好。因此,可以考虑根据标签数量动态地调整帧长,即动态帧时隙Aloha(DynamicFramedSlottedAloha,DFSA)算法。研究结果表明,最优的帧长应该等于标签数量,因此只要知道了标签数量,就可以确定帧长,然而当前帧需识别的标签数量通常无法预知,只能对其进行估算。因此在DFSA算法中,非常重要的一项工作就是标签数量的估计,大多数方法都是根据上一帧的帧长、标签个数、冲突情况来估计当前帧中的标签数。典型方法包括:
(1)Vogt方法设碰撞时隙数为Ck,碰撞时隙内至少有2个以上的标签存在,则可以预测发生碰撞的标签数量至少为2×Ck。
(2)标签估计方法Ⅰ(TagEstimationMethodⅠ,TEMⅠ)将碰撞率Cratio定义为碰撞时隙数与帧长的比值,L为帧长,n为标签个数,则它们之间的关系为Cratio=1-(1-1/L)(1+n/(L-1))(1)由于上一帧的帧长L和碰撞率Cratio已知,可以计算出标签个数n。
(3)TEMⅡ方法设nest为估算的标签数量,Mcoll为上一帧中的碰撞时隙数,则nest=2.3922×Mcoll。
FSA的各种改进算法
在固定帧长的Aloha算法中,当标签数量太多时,冲突时隙较多;而当标签数量太少时,又会有大量的空闲时隙。基于这一点,各种改进算法被提出。
分群时隙Aloha算法
分群时隙Aloha算法根据碰撞时隙在所分配时隙中所占的比例,来确定是否分群。如果碰撞时隙的比例(发生碰撞的时隙数/分配的时隙数)大于分群因子γ,则进行分群。分群后,第一个分群内的标签响应阅读器的查询命令,另一个分群内的标签处于等待状态。当第一个分群内的所有标签识别完毕后,第二个分群内的标签再进行响应,直至所有标签识别完毕。
仿真结果表明,分群时隙Aloha算法优于固定时隙Aloha算法,且随着标签数量的增加,算法的优越性更明显。同时,分群因子的选择是影响算法的关键因素,在标签数量较多时,分群因子宜选择较小值。
自适应的动态帧时隙Aloha算法
文献考虑某些应用场合中阅读器需要对标签进行重复识别的要求,充分利用上一帧已识别标签的信息,提出自适应的动态帧时隙Aloha算法,该算法每成功识别一个标签就给标签分配一个时隙号,该时隙号规定了标签被阅读器识别的顺序。如果在下次识别过程中阅读器要重复识别这些标签,则可根据已分配的时隙号按顺序进行,从而避免标签间的冲突,减少识别时间。当离去标签和新到达标签数量较少时,系统效率较高,但是当有大量的新到达标签时,仅采用上述方法将导致冲突急剧增加。为减少冲突,阅读器应估计标签数,并根据标签数合理调整帧长。文献提出了一种最优帧长方案,使系统获得了较大的吞吐量。
Q值算法及其改进算法
DFSA算法可采用各种方法预测待识别的标签数量,然后动态调整最优帧长,与FSA相比,系统效率有明显改善,接近36.8%。但是,当标签数量较多(特别是标签数量大于500)时,采用由预测标签数量设置最优帧长的方案会使系统效率急剧下降。因此,在标签数量较多的情况下,为了使系统效率得到提高,EPCClass1Gen2标准中采用了Q值算法,该算法可以实时自适应地调整帧长。
Q值算法
在Q值算法中,阅读器首先发送Query命令,该命令中含有一个参数Q(取值范围0~15),接收到命令的标签可在[0,2Q-1]范围内(称为帧长)随机选择时隙,并将选择的值存入标签的时隙计数器中,只有计数器为0的标签才能响应,其余标签保持沉默状态。当标签接收到阅读器发送的QueryRep命令时,将其时隙计数器减1,若减为0,则给阅读器发送一个应答信号。标签被成功识别后,退出这轮盘存。当有两个以上标签的计数器都为0时,它们会同时对阅读器进行应答,造成碰撞。阅读器检测到碰撞后,发出指令将产生碰撞的标签时隙计数器设为最大值(2Q-1),继续留在这一轮盘存周期中,系统继续盘存直到所有标签都被查询过,然后阅读器发送重置命令,使碰撞过的标签生成新的随机数。
根据上一轮识别的情况,阅读器发送Query-Adjust命令来调整Q的值,当标签接收到Query-Adjust命令时,先更新Q值,然后在[0,2Q-1]范围内选择随机值。EPCClass1Gen2标准中提供了一种参考算法来确定Q值的范围.其中:Qfp为浮点数,其初值一般设为4.0,对Qfp四舍五入取整后得到的值即为Q;C为调整步长,其典型取值范围是0.1
当阅读器发送Query命令进行查询时,若应答标签数等于1,则Q值不变;若应答标签数等于0(空闲时隙),则减小Q值;若应答标签数大于1(冲突时隙),则增大Q值。
该算法在参数C的辅助下对Q值进行动态调整,但是C太大会造成Q值变化过于频繁,导致帧长调整过于频繁,C太小又不能快速地实现最优帧长的选择。因此,研究者们对Q值的调整进行了各种优化。
基于最大吞吐量调整Q值的算法
文献提出一种基于最大吞吐量对Q值进行调整的算法,其中定义了以下变量:Nt为已识别的标签个数;N为识别标签所需的总时隙数;NC为冲突时隙的个数;nu为上一轮未识别的标签个数;e为冲突时隙中的平均标签个数;PC为冲突时隙所占的比例。
这些参数之间的关系为PC=NC/N,e=nu/Nc,吞吐量=Nt/N。由于Aloha类算法的最大吞吐量为0.368(e-1)[5],该算法以此作为调整Q值的依据。当系统吞吐量达到或接近0.368时,阅读器仅需调用2Q-1次QueryRep命令,而不需要在接下来的盘存周期中调整Q值。当吞吐量小于0.368时,根据未识别的标签个数nu来调整Q值.
基于分组的位隙Aloha算法
文献提出一种基于分组的位隙Aloha算法,该算法采用位隙Aloha算法中的128位预定序列,代表128个位隙。若某个标签选择了第i个位隙,则将第i位置1,其余各位都置0。当标签数量为15时,位隙Aloha算法可获得最大吞吐率88.38%,但随着标签数量的增加,算法性能急剧下降。
因此,基于分组的位隙Aloha算法通过对标签进行分组来提高算法的性能。该算法在查询命令中设置了一个位隙计数器的参数Q(Q为整数,且0≤Q≤15),当标签收到阅读器发送的查询命令后,在[0,2Q-1]范围内生成一个随机数,即代表选择了相应的位隙,只有选择了0的标签才会立即响应。同时,该算法根据冲突位隙数动态地对Q值进行调整:当冲突位隙数小于11时,Q减1且最小为0;当冲突位隙数在11~20之间时,Q保持不变;当冲突位隙数大于20时,Q加1且最大不超过15。
综上所述,基于Aloha的防碰撞算法原理简单、容易实现,对新到达的标签具有较好的适应性,尤其对于标签持续到达的情况有较好的解决方案,但该类算法存在几个明显的缺点:①响应时间不确定,即同一批标签在不同时刻进行识别所需要消耗的时间相差很大;②个别标签可能永远无法被识别;③Aloha算法达到最佳吞吐率的条件是其帧长等于标签数量,当需要识别的标签数量较多或选择的帧长与实际待识别标签数量不符时,系统性能将明显下降。而基于树的算法则很好地解决了这些问题。
全国各地天气预报查询