适用于动态环境的时隙aloha防碰撞算法的制作方法

文档序号:6459377阅读:159来源:国知局
专利名称:适用于动态环境的时隙aloha防碰撞算法的制作方法
技术领域
本发明属于射频识别技术领域,具体涉及一种射频识别(RFID)中的多标签防碰撞算法, 尤其涉及一种适用于动态环境的时隙ALOHA防碰撞算法。
背景技术
射频识别是一种非接触式的自动识别技术,它以射频信号作为信息和能量传递的媒介, 完成与被测物体间的信息交互。射频识别基本系统包括电子标签(以下简称标签)和读写器。 射频识别技术由于具有非接触性、可识别高速运动物体、识别效率高、可在恶劣环境下工作、 操作快捷方便等优点,被广泛应用于门禁、物流、跟踪、监控、防伪、身份识别、安全、军 事、医疗等各个领域,具有广阔的发展前景。随着射频识别技术的应用推广,在很多场合读写器需要在很短时间内尽快识别多个标签, 例如基于RFID的机场行李跟踪系统,基于RFTD的仓库管理系统,基于RFID的生产管理系 统,基于RFID的资产管理系统等等。当读写器的天线区域中有多个电子标签到达时,由于这 些标签相互独立而且共享无线通信信道,它们返回的信号若在同一时刻发出,标签信号之间 将发生混叠,使得读写器无法识别其中的任何一个标签,称为多标签碰撞(Collision)。多标 签碰撞将使得当前一次通信完全失败,需要重新开始新一轮的通信,如果没有有效的防碰撞 技术,读写器的识别速度会随着电子标签数量的增加迅速下降。目前在国内、国际上许多学者对防碰撞算法进行了研究,以提高读写器的识别速度。已 有的防碰撞算法大体上可以分为两类基于AL0HA的随机型算法和基于二进制树的确定型算 法。其中基于时隙ALOHA的随机型算法因为阅读速度快,得到较为广泛的应用。现有的时隙 ALOHA算法大多是基于帧的算法(Frame-by-Frame, FBF),即在每帧结束后根据上一帧中标签 发生碰撞的次数(碰撞时隙)、成功识别电子标签的次数(成功时隙)和电子标签没有返回 的次数(空时隙)来估计未被识别的电子标签数量,然后据此选择最优的下一帧的长度(时 隙的个数)。图1为静态算法FBF流程图;首先进行初始化,设置初始的帧长因子Q值,发送Query 指令,然后开始数据识别过程,看是否收到随机数RN16,如果没有收到,将空时隙数量c。加 1;如果收到标签返回的信息,再判断是否发生碰撞,发生碰撞,并将碰撞时隙数量q加1;没有碰撞,则进入成功识别流程,并将成功时隙数量c,加1,
数据识别后,再判断时隙计数器counter是否等于20,如果不等于,则发送QueryR印, 时隙计数器counter加1,返回再等待下一帧数据;如果等于,则根据c。、 c, 、 q的值估算 未识别标签的数量n,并计算新的Q值,返回进行下一轮识别过程;如果^=0贝1」,程序结束。
静态算法FBF使读写器为下一帧选择更加合理的帧长,减少标签碰撞发生的几率,从而 提高识别速度。但是在动态环境中,运动的标签将穿过读写器的工作区域及能量空洞,导致 场区内标签数量的随机变化,降低帧结束时估算的标签数量的精确度。
基于时隙的算法(slot-by-slot, SBS),即读写器可以在一帧的识别过程中根据场区内标 签数量的变化而中止当前帧,并以新计算的帧长开始下一帧的识别,从而使得帧长适应标签 数量的变化。仿真结果表明,采用Bayesian SBS算法比采用Bayesian FBF算法性能提高23%。 其主要存在的问题在于l)提出的Bayesian SBS和Bayesian FBF算法流程中读写器需要预 先知道进入以及离开阅读范围的概率分布函数Pa和Pd; 2)该方法使用的两种标签估算方法 Bayesian算法和Q算法均存在一定的问题,前者算法复杂度高,而后者的系统效率不够;3) 在每个时隙(slot)之后进行标签的估算,计算量大,影响识别速度。

发明内容
本发明的目的是针对现有时隙ALOHA多标签防碰撞方法的不足,提出一种适用于动态环 境的计算效率高、识别速度快的防碰撞算法。 本发明的目的是通过如下技术方案实现的 一种适用于动态环境的时隙ALOHA防碰撞算法,包括 步骤一,设置帧长因子Q的初始值;
歩骤二,判断是否收到结束指令,如果收到结束指令,程序结束;如果未收到结束指令, 则读写器发送Query指令,初始空时隙数量c。、成功时隙数量q和碰撞时隙数量q为0,时
隙计数器counter-l,子帧长计数器k二O;
步骤三,然后等待T1时间,看是否收到16位随机数RN16,如果没有收到訓16,进入空 流程,将空时隙数量c。加l;如果收到RN16,再判断是否发生碰撞,发生碰撞,则进入碰撞
流程,并将碰撞时隙数量q加1;没有碰撞,则进入成功识别流程,并将成功时隙数量c,加1; 步骤四,再判断时隙计数器counter与子帧长m取模是否等于0,如果不等于0,则发送
QueryR印,开启新的一帧,时隙计数器counter加1;如果等于0,再判断碰撞时隙数量^是
否等于0,如果q不等于零,则先根据Q、 e。、 A、 ^的值估算kXra个时隙中的反馈信息的标签数量l,再根据下式估算整个帧长内的标签数量n,子帧长计数器k加l;如果"等于零,则设0 = 3,返回步骤二进行下一轮识别;步骤五,计算参考帧长因子Q'的值,判断Q'是否等于Q,如果Q'等于Q则发送QueryR印, 时隙计数器counter加1;如果Q'不等于Q,则n二n—c"计算新的Q值,返回步骤二进行下一轮识别过程。所述的参数m^2', q为大于等于O小于Q的整数。所述参数k为大于0小于等于2"的 整数。所述~为k个子帧长内成功识别的标签个数与估算的剩余标签个数之和,艮P,rikm 二 Cl + n km其中,c,是kXm个时隙中成功识别标签的个数,n'ki是kXm个时隙后估算的剩余标签个数。所述标签数量0、|的估算算法有最小值估算法(Lower Bound) (" = 2xcA)、泊松分布估算法(Schoute) (" = 2.39xc4)、空间点逼近估算法(Vogt)(取令c。、 & 、 C*的测试值与理论 计算值最接近的n为估算标签数)等。 本发明中有关参数定义如下Q,帧长因子,在时隙Aloha算法中,每个帧包含28 (2的Q次方)个时隙。QueryR印,盘存指令,在每一帧中,读写器在第一个时隙发送Query指令,而之后的每 一个时隙发送QueryR印指令,标志着新的时隙的开始。RN16,是16位随机数,电子标签在收到Query或者QueryR印指令时,将随机地在选择 一个时隙返回16位随机数RN16。Q',参考帧长因子,为根据动态环境下每隔km个时隙估算的标签数计算的帧长闲子参考 值,当该值与当前实际使用的帧长因子Q不符时,要对帧长因子Q进行调整。本发明适用于动态环境的时隙AL0HA防碰撞算法,与现有技术相比将动态环境的应用特 点考虑进去,并通过合理地选择标签估算方法和估算的时间点,不需要考虑标签进入或离开 读写器阅读区域的概率分布函数,标签估算采用步进的方式进行,使用了更加高效的标签估 算方法,可以提高动态环境下的防碰撞算法的计算效率,从而提高识别速度。


图1为现有技术静态算法FBF流程图。
图2为本发明适用于动态环境的时隙ALOHA防碰撞算法流程图。 图3为实施例1的仿真结果图。 图4为实施例2的仿真结果图。
具体实施例方式
以下结合附图具体描述本发明的实施方式。
动态环境中标签数量是动态变化的,选择合适的标签估算时间点,可以提高计算效率, 提高识别速度。设置子帧长m,参数m二2、 q为大于等于O小于Q的整数。设置子帧长计数 器k,参数k为大于0小于等于2^。的整数。当识别了 kXm个时隙之后,计算是否需要更改Q 的值,不需要更改则继续识别,需要更改则计算新的Q值,返回进行下一轮识别过程。每隔 m个slot之后,估算一次标签个数,考虑新进入和离开读写器区域内的标签,及时调整Q值。
图2为本发明适用于动态环境的时隙AL0HA防碰撞算法流程图,
步骤一,初始化,设置帧长因子Q的初始值;
步骤二,判断是否收到结朿指令,如果收到结束指令,程序结束;如果未收到结束指令, 则读写器发送Query指令,初始空时隙数量c。、成功时隙数量q和碰撞时隙数量=0,时隙
讣数器counter=l, 了帧长计数器k = 0;
所述结束指令是由读写器的上位机程序根据用户指令发出的。
步骤三,然后等待T1时间,看是否收到随机数RN16,如果没有收到RN16,进入空流程, 将空时隙数量c。加l;如果收到RN16,再判断是否发生碰撞,发生碰撞,则进入碰撞流程, 并将碰撞时隙数量^加1;没有碰撞,则进入成功识别流程,并将成功时隙数量q加1;
步骤四,再判断时隙计数器counter与子帧长m取模是否等于O,如果不等于0,则发送
QueryR印,开启新的一帧,时隙计数器counter加1;如果等于0,再判断碰撞时隙数量&是
否等于0,如果^不等于零,则先根据Q、 、ei、 ^的值根据公式(1)估算k細个时隙中 的反馈信息的标签数量nk ,再根据公式(2)估算整个帧长内的标签数量n,
"=^^ (1)
nkm= q+ n'km (2) 其中,l为k个子帧长内成功识别的标签个数与估算的剩余标签个数之和,c,是kXm 个时隙中成功识别标签的个数,n、是k袖个时隙后估算的剩余标签个数,标签数量ti、的估算算法有最小值估算法Lower Bound ( " = 2xq )、泊松分布估算法Schoute ( " = 2.39xq )、空间点逼近估算法Vogt (取令"、A、 q的测试值与理论计算值最接近的n为估算标签数) 等。然后,子帧长计数器k加l;如果q等于零,则设Q二3,返回步骤二进行下一轮识别;通常在静态环境下,&等于零则认为所有标签都被识别,识别过程可以结束,但在动态环境卜一,当^等于零并不能说明标签己经都被识别完毕,可能有新的标签正在进入读写器的工作 范围。所以,设置Q为较小值3,可以使得读写器继续工作,如果发生碰撞,Q值将动态调整。 步骤五,根据估算的整个帧长内的标签数量n,计算估算参考帧长因子Q'的值,判断Q' 是否等于Q,如果等于Q说明当前Q值是合适的,无需调整,继续发送QueirR印,时隙计数 器counter加l;如果Q'不等于Q,说明需要调整,调整方法如下n = n—Cl,计算新的Q值,返回步骤二进行下一轮识别过程。参考帧长因子Q'和帧长因子Q的值用常规的计算方法 得到。图3为实施例1的仿真效果图,其中标签的运动速度为l历/s。实施例1的具体操作步骤如下步骤一,设置9初始值=8, m=4 (即9 = 2);步骤二,判断是否收到用户通过上位机程序发出的结束指令,如果收到结束指令,程序 结束;如果未收到结束指令,则读写器发送Query指令,初始空时隙数量c。、成功时隙数量q和碰撞时隙数量^=0,时隙计数器countcr二l,子帧长计数器k二0;歩骤三,然后等待T1时间,看是否收到RN16,如果没有收到RN16,进入空流程,将空 时隙数量c。加l;如果收到RN16,再判断是否发生碰撞,发生碰撞,则进入碰撞流程,并将 碰撞时隙数量c^加l;没有碰撞,则进入成功识别流程,并将成功时隙数量c,加1;步骤四,再判断时隙计数器counter与子帧长4取模是否等于0,如果不等于0,则发送QueryR印,开启新的一帧,时隙计数器counter加1;如果等于0,再判断碰撞时隙数量^是否等于O,如果q不等于零,则先根据Q、 ^、 A、 ^的值估算4k个时隙中的反馈信息的标 签数量l,再根据公式(3)估算整个帧长内的标签数量n,<formula>formula see original document page 7</formula>其中,= 即k个子帧长内成功识别的标签个数与估算的剩余标签个数之和, q是4k个时隙中成功识别标签的个数,n' ^是4k个时隙后估算的剩余标签个数,标签数量n' km 的估算算法为Lower Bound算法,艮口,
q (4)
然后,子帧长计数器k加l;如果q等于零,则设Q二3,返回步骤二进行下一轮识别。 步骤五,根据估算的整个帧长内的标签数量n,计算估算参考帧长因子Q',
Q^四舍五入(log2") (5) 判断Q'是否等于Q,如果等于Q说明当前Q值是合适的,无需调整,继续发送QucryR印, 时隙计数器counter加1;如果Q'不等于Q,说明需要调整,计算新的Q值,
Q^四舍五入(log2(" —(6) 然后返回步骤二进行下一轮识别过程。
图3的仿真结果表明,当标签个数为300 800个,标签运动速度为l瓜/s时,采用本发 明的方法,每隔4个时隙估算标签个数,并据此判断是否更新Q值,其多标签识别速度均高 于改进前的算法。所述改进前的算法仅在每个帧(26个时隙)结束后估算标签个数并更新Q 值。
图4的是实施例2的仿真效果图,其中标签的运动速度为lffl/s, Q初始值二8, m=8 (即 q二3),标签数量n的估算方法为Lower Bound,算法步骤与实施例一相同。
图4的仿真结果表明,当标签个数为300 800个,标签运动速度为l历/ 时,采用本发 明的方法,每隔8个时隙估算标签个数,并据此判断是否更新Q值,其多标签识别速度均高 于改进前的算法。所述改进前的算法仅在每个帧(2^个时隙)结束后估算标签个数并更新Q 值。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳 实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方 案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的 权利要求范围当中。
权利要求
1. 一种适用于动态环境的时隙ALOHA防碰撞算法,其特征在于,包括步骤一,初始化,设置帧长因子Q的初始值;步骤二,判断是否收到结束指令,如果收到结束指令,程序结束;如果未收到结束指令,则读写器发送Query指令,初始空时隙数量c0、成功时隙数量c1和碰撞时隙数量ck为0,时隙计数器counter=1,子帧长计数器k=0;步骤三,然后等待T1时间,看是否收到16位随机数RN16,如果没有收到RN16,进入空流程,将空时隙数量c0加1;如果收到RN16,再判断是否发生碰撞,发生碰撞,则进入碰撞流程,并将碰撞时隙数量ck加1;没有碰撞,则进入成功识别流程,并将成功时隙数量c1加1;步骤四,再判断时隙计数器counter与子帧长m取模是否等于0,如果不等于0,则发送QueryRep,开启新的一帧,时隙计数器counter加1;如果等于0,再判断碰撞时隙数量ck是否等于0,如果ck不等于零,则先根据Q、c0、c1、ck的值估算k*m个时隙中的反馈信息的标签数量nkm,再根据下式估算整个帧长内的标签数量n,<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><mi>n</mi><mo>=</mo><mfrac> <mrow><msub> <mi>n</mi> <mi>km</mi></msub><mo>&times;</mo><msup> <mn>2</mn> <mi>Q</mi></msup> </mrow> <mrow><mi>k</mi><mo>&times;</mo><mi>m</mi> </mrow></mfrac> </mrow>]]></math></maths>其中,nkm=c1+n′km,c1是k*m个时隙中成功识别标签的个数,n′km是k*m个时隙后估算的剩余标签个数;子帧长计数器k加1;如果ck等于零,则设Q=3,返回步骤二进行下一轮识别;步骤五,计算参考帧长因子Q′,判断Q′是否等于Q,如果等于Q则发送QueryRep,时隙计数器counter加1;如果Q′不等于Q,则n=n-c1,计算新的Q值,返回步骤二进行下一轮识别过程。
2. 根据权利要求1所述的适用于动态环境的时隙AL0HA防碰撞算法,其特征在于所述的 子帧长m二2、 q为大于等于O小于Q的整数。
3. 根据权利要求1所述的适用于动态环境的时隙AL0HA防碰撞算法,其特征在于所述子 帧长计数器k为大于0小于等于2s—。的整数。
4. 根据权利要求1所述的适用于动态环境的时隙AL0HA防碰撞算法,其特征在于,所述 标签数量n人的估算算法有最小值估算法、泊松分布估算法或空间点逼近估算法。
全文摘要
本发明属于射频识别技术领域,具体为一种适用于动态环境的时隙ALOHA防碰撞算法。该算法包括,首先进行初始化,并检测是否收到上位机发出的中止指令;如果收到终止指令,算法结束;否则开始接收数据,并分别统计空时隙,碰撞时隙和成功时隙的数量;再判断时隙计数器counter与2<sup>q</sup>取模是否等于0,如果等于0,则估算标签数量n,计算Q′,判断Q′是否等于Q,如果等于则开启新的一帧;如果不等于,则计算新的Q值,返回进行下一轮识别过程。本发明考虑了动态环境下标签个数变化的因素,通过在当前帧的识别过程中计算场区内标签的个数并判别当前帧长是否合适,使得读写器可以尽早中止不合适的帧,并为下一帧选择更加合理的帧长,减少标签碰撞发生的几率,提高读写器在动态环境下的识别速度。
文档编号G06K7/00GK101286192SQ20081003857
公开日2008年10月15日 申请日期2008年6月5日 优先权日2008年6月5日
发明者丹 刘, 王中祥, 王俊宇, 杰 谭, 昊 闵, 鹏 魏 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1