一种射频识别系统中标签防碰撞方法

文档序号:6614366阅读:101来源:国知局
专利名称:一种射频识别系统中标签防碰撞方法
技术领域
本发明涉及无线通信领域,特别是射频识别(RFID )领域二叉树标签
防石並4i的方法。
背景技术
在RFID实际应用中,很多情况下是在射频场中存在一个阅读器对应多 个电子标签。当阅读器同时清点多个标签时,就会出现信道争用,发生碰撞, 标签无法将信息正确发送给阅读器。因此,需要采取一定的机制避免碰撞或 减少碰撞。
现有的RFID国际标准ISO 18000-6中,A类和C类釆用时隙ALOHA 算法,而B类采用Binary Tree ( 二叉树)算法解决碰撞问题。时隙ALOHA 和Binary Tree都是基于时分多路访问方式。
时隙ALOHA算法,是把时间分成若千离散时隙,要求标签随机选择其 中一个时隙,在时隙的分界处发送数据。在ISO 18000-6A类和C类协议中, 使用时隙ALOHA算法实现防碰撞的过程为在每次清点过程开始,阅读器 通知所有标签一个可选时隙的范围,标签从中随机选择一个时隙回复,标签 或成功发送或完全碰撞,若发生碰撞则重新选择并发送,直至所有标签全部 成功发送。
Binary Tree方法的基本思想与二叉树的深度优先遍历类似,它将处于碰 撞的标签分裂成左右两个子集O和1,先查询子集O,若没有冲突,则正确 识别标签,若仍有冲突则再分裂,把子集0分为00和01两个子集,依次类 推,直到识别出子集0中的所有标签,再按此步骤查询子集l。 Binary Tree 算法图如图1。在ISO 18000-6 B类协议中,Binary Tree算法的基本特征是, 每个标签有一个随机数发生器,生成O或l,每个标签有一个计数器,当计 数器的值为0时,标签回复;使用Binary Tree算法实现防碰撞的过程为
5阅读器发送开始清点指令,使所有标签开始回复,标签在收到指令后,由随 机数发生器生成0或1,这样就将标签分成随机数为0和随机数为1的两个
子集,与二叉树对应,这里我们称之为左分支(0分支)和右分支(l分支); 随机数为0的标签,即处在左分支的标签,立即回复,占了优先回复的先天 优势,而随机数为1的标签,即处在右分支的标签,将计数器值设为1,必 须等待左分支回复完才能执行分裂回复;若没有碰撞并回复成功,则阅读器 发送指令确认,并使得标签计数器值减l;若标签碰撞,阅读器发送指令, 使计数器为0的标签,即左分支的标签重新分裂,计数器非0的标签,即右 分支的标签计数器值加1;如此循环直到所有标签全部成功回复。
从对ISO 18000-6 B类协议防碰撞过程的描述,我们可以看出,此过程 总是首先致力于解决0分支的碰撞,让其分裂,直到0分支只剩下一个标签, 也就是二叉树的叶子节点,将其清点出来之后,才开始处理l分支的标签, 处理完1分支之后依次处理2, 3, n分支,即总是从左到右顺序进行分 裂清点。0分支分裂时,非O分支的多个标签始终不分裂, 一直在等待0分 支标签清点完成。这样在0分支清点完成之后,后续分支会浪费很多时间执 行和0分支类似的分裂过程。

发明内容
本发明要解决的技术问题是提供一种射频识别系统中标签防碰撞方法, 减少标签回复碰撞次数,提高多标签的清点效率。
为了解决上述技术问题,本发明提供了一种射频识别系统中标签防碰撞 方法,其特征在于,记录标签回复时的连续碰撞信息,根据该连续碰撞信息 确定预先分裂规则,具体通过如下步骤实现
(a) 阅读器发送指令开始清点标签,同时开始在规定的时隙上接收来 自标签的信号;
(b) 标签收到指令后,所有标签开始回复;
(c) 若阅读器在规定的时隙内正确接收标签的回复信息,判断所有标 签是否清点完毕,如果是,结束;否则,向标签发送成功确认指令,进入下
6一个时隙进行接收,转入步骤(d);若阅读器在规定的时隙内错误接收标
签的回复信息,向标签发送失败确认指令,进入下一个时隙进行接收,转入
步骤(e);
(d) 标签收到成功确认指令后,正确回复信息给阅读器的标签清点完 毕,离开清点过程,转入步骤(f);
(e) 标签收到失败确认指令后,满足所述预先分裂规则的所有标签或 标签分支分裂为两个子集,将其中任一子集称为左分支标签,另一子集称为 右分支标签,右分支标签必须等待左分支标签清点完毕才能回复,转入步骤
(f);
(f) 标签按照回复顺序继续回复阅读器,返回步骤(c)。
进一步地,上述方法还可具有以下特点,所述步骤(e)中,所述标签 启动随机数发生器进行分裂,产生指定随机数的标签属于左分支标签或右分 支标签。
进一步地,上述方法还可具有以下特点,产生随机数O的标签属于左分 支标签,产生随机数l的标签属于右分支标签。
进一步地,上述方法还可具有以下特点,为每个标签设置计数器,计数 器值指示该标签回复阅读器的顺序。
进一步地,上述方法还可具有以下特点,所述步骤(b)中,所述标签 计数器清0,所述步骤(c)中,若阅读器在规定的时隙内正确接收标签的 回复信息或未收到标签回复信息,计数器值减1,所述步骤(e)中,标签 计数器值按指定分裂规则进行变化,所述步骤(f)中,计数器值为0的标 签回复阅读器。
进一步地,上述方法还可具有以下特点,在阅读器端设置碰撞计数器, 所述步骤(a)中,初始化碰撞计数器Collision_count为0;所述步骤(c) 中,若阅读器在规定的时隙内正确的接收标签的回复信息,碰撞计数器 Collision—count清0,若阅读器在规定的时隙内错误接收标签的回复信息, 向标签发送失败确认指令,将碰撞计数器Collision—count加1,阅读器将所 述碰撞计数器Collision_count值发送给标签,所述步骤(e)中,标签接收
7所述碰撞计数器Collision—count,根据所述Collision—count值确定预先分裂 规则。
进一步地,上述方法还可具有以下特点,所述步骤(e)中,如果碰撞 计数器Collision—count值为m的倍数,m为预先指定的值,m〉l,计数器 值r^0的标签进行分裂,左分支标签计数器不变,右分支标签计数器加l; 计数器值n<2*Collison—count/m的标签,计数器值加1 ,计数器值 n=2*Collision—count/m+i(i-0,…,m+l)的标签,进行分裂,左分支标签计数器 值加i+l,右分支标签计数器值加i+2;其他的标签,计数器值加m+3;如 果碰撞计数器不是m的倍数,计数器值n-O的标签,进行分裂,左分支标 签计数器不变,右分支标签计数器加l;其他的标签计数器加l。
进一步地,上述方法还可具有以下特点,在标签端设置碰撞计数器,所 述步骤(b)中,标签端初始化碰撞计数器Col_count_tag为0;所述步骤(d) 中,标签收到成功确认指令后,碰撞计数器Col—count—tag清0,所述步骤(e) 中,标签收到失败确认指令后,将碰撞计数器Col—count—tag加1,标签根据 碰撞计数器Col—count—tag值确定预先分裂规则。
进一步地,上述方法还可具有以下特点,所述步骤(e)中,如果碰撞 计数器Col—count—tag值为m的倍数,m为预先指定的值,m>l,计数器值 n-0的标签进行分裂,左分支标签计数器不变,右分支标签计数器加1;计 数器值n<2*Col—count—tag的标签,计数器值加1 ; 计数器值 n=2*Col—count—tag+i(i^,…,m+l)的标签,进行分裂,左分支标签计数器值加 i+l,右分支标签计数器值加i+2;其他的标签,计数器值加m+3;如果碰撞 计数器不是m的倍数,计数器值n=0的标签,进行分裂,左分支标签计数 器不变,右分支标签计数器加l;其他的标签计数器加l。
进一步地,上述方法还可具有以下特点,所述m取值为3。
本发明所述的根据连续碰撞情况进行预先分裂的二叉树标签防碰撞方 法通过对Binary Tree标签防碰撞方法进行改进,实现了较好地非0分支动 态预先分裂,大大提高了标签清点效率。


8图1是Binary Tree算法示意图2是ISO 18000-6中多标签清点时阅读器与标签交互流程图; 图3是本发明中多标签清点时阅读器与标签交互流程图; 图4(a)是本发明与ISO 18000-6清点效率对比; 图4(b)是在大量标签情况下,本发明的清点效率。
具体实施例方式
本发明提出的预先分裂二叉树标签防碰撞方法,是在分裂0分支标签的 同时,保存清点过程中的碰撞情况,根据碰撞的次数,预测需要预先分裂的 非0分支,来提高清点效率。
比如,我们可以采用如下一个实例方法来实现根据碰撞情况预先分裂非 O分支的二叉树标签防碰撞方法。在清点过程中,如果连续碰撞次数为mt (cGN,c>l, m〉l) , m为预先指定的数值,典型取值为3,那么计数器值 为2*c+i(i=0,l,..., m+l)的标签进行预先分裂。也就是每发生m次碰撞就让 间隔一个的标签和其后的m+l个标签进行分裂,采用这种预先分裂方法的 理由在于,计数器为0的标签连续m*c (ceN,c>l)次碰撞,可以初步估 计与计数器值为0的标签间隔2*c-l的标签有多个,进行预先分裂,计数器 值为2*c标签后面的连续m+l个标签也同时进行分裂,是根据实际仿真实 验比较得到的,当后面m+l个同时分裂时,清点效率大大提高,并且无论 标签数目多或少,m=3时清点效率都会稳定在40.5%左右。通过理论的指导 和仿真验证,这种预先分裂的二叉树防碰撞方法可以大大降低碰撞时隙,提 高清点效率。
图3为本发明中多标签清点时阅读器与标签交互流程,记录标签回复碰 撞信息,根据该碰撞信息确定预先分裂规则,具体如下
步骤301,阅读器选择处于有效射频场区域的标签。
阅读器发送选择指令,所有标签收到选择指令后进行条件匹配,满足条 件的标签进入清点过程。
步骤302,阅读器发送开始清点指令,同时开始在规定的时隙上接收来自标签的信号。
步骤303,标签收到开始清点指令后,初始化自身信息,计数器设置为 0,计数器值为0的标签回复阅读器。
步骤304,判断阅读器在规定时隙内是正确接收标签的回复信息或无标 签回复信息或者是碰撞错误信息(即错误接收标签回复信息),如果是正确 回复信息或者无回复信息,转入步骤305,如果是碰撞错误信息,转入步骤 307;
步骤305,判断是否所有标签已成功回复,如果是,结束,否则,转入 步骤306。
步骤306,阅读器向标签发送成功确认指令,并进入下一个时隙接收。
步骤307,当标签收到成功确认指令时,ID (标签标识)符合success 命令参数的标签(即正确发送回复信息的标签)回复确认成功后离开清点过 程,并不再响应与清点相关的指令,ID不符合success命令参数的标签(即 计数器值不为O的标签或未成功发送回复信息的标签),计数器值减l,执 行步骤310;
如果步骤304中未收到标签回复信息,则此时没有成功确认的标签,所 有标签计数器值都减1。
步骤308,若阅读器在规定时隙内错误接收标签的回复信息,则认为多 个标签回复,发生碰撞,向标签发送失败确认指令,并进入下一个时隙接收。
步骤309,标签收到失败确认指令时,计数器值为O的标签,重新选择 随机数,进行分裂,其他计数器值非O的标签,如果满足预先分裂规则,则 进行分裂,否则根据碰撞情况和自身信息来修改计数器值,所有计数器值修 改时保证计数器值和标签的回复顺序一致,执行步骤310;
步骤310:计数器值为O的标签回复阅读器,转入步骤304。
其中,记录标签回复碰撞信息,根据该碰撞信息确定预先分裂规则的一 种实现方式为,在阅读器端记录连续碰撞信息,进一步包含如下步骤
步骤302中,在阅读器增加碰撞计数器Collision—count,并初始化为0; 步骤306中,阅读器增加碰撞计数器清0操作;
10步骤308中,阅读器在规定时隙内错误接收标签回复信息,将碰撞计数 器加1,同时将碰撞计数器Collision—count值作为参数一起发送;
步骤309中,标签收到失败确认指令时,如果碰撞计数器Collision—count 是3的倍数,计数器值『0的标签,重新选择0/l随机数,进行分裂,选择 0的标签计数器不变,选择1的标签计数器加1 ;计数器值 n<2*Collision—count/3 的标签,计数器值加 1 , 计数器值 n=2*Collison—count/3+i(i-0,l,2,3,4)的标签,重新选择0/l随机数,选择进行 分裂,选择0的标签计数器值加i+l,选择1的标签计数器值加i+2;其他 的标签,计数器值加6。如果碰撞计数器不是3的倍数,计数器值『0的标 签,重新选择0/l随机数,选择进行分裂,选择0的标签计数器不变,选择 l的标签计数器加l;其他的标签计数器加l。
在本发明另一实施例中,记录标签回复碰撞信息,根据该碰撞信息确定 预先分裂规则的另一种实现方式为,通过标签自身实现,在标签端设置碰撞 计数器,具体如下
步骤303中,在标签端增加一个碰撞计数器Col—count—tag,初始值为0;
步骤307中,当标签收到成功确认指令时,碰撞计数器Col—count—tag
清0;
步骤309中,标签收到失败确认指令时,碰撞计数器加l,标签根据碰 撞计数器确定预先分裂规则,同上述在阅读器端设置碰撞计数器的情况下, 具体如下,如果碰撞计数器Col—count—tag是3的倍数,计数器值n=0的标 签,重新选择0/l随机数,进行分裂,选择0的标签计数器不变,选择l的 标签计数器加l;计数器值11<2*(:01—count—tag/3的标签,计数器值加1,计 数器值n=2* Col—count—tag/3+i(i^,l,2,3,4)的标签,重新选择0/l随机数,选 择进行分裂,选择0的标签计数器值加i+l,选择1的标签计数器值加i+2; 其他的标签,计数器值加6。如果碰撞计数器不是3的倍数,计数器值n-0 的标签,重新选择0/l随机数,选择进行分裂,选择0的标签计数器不变, 选择1的标签计数器加1;其他的标签计数器加1。
ii上述连续碰撞次数不限于3次,也可以是其他预先指定的值m,步骤 308中,如果碰撞计数器Collision—count是m的倍数,计数器值n=0的标签, 重新选择0/l随机数,进行分裂,选择0的标签计数器不变,选择l的标签 计数器加1;计数器值iK2《Collision—count/m的标签,计数器值加1,计数 器值11=2*0)1&1011—count/m+i(i-0,…,m+l)的标签,重新选择0/l随机数,选 择进行分裂,选择0的标签计数器值加i+l,选择l的标签计数器值加i+2; 其他的标签,计数器值加m+3。如果碰撞计数器不是m的倍数,计数器值 11=0的标签,重新选择0/l随机数,选择进行分裂,选择0的标签计数器不 变,选择l的标签计数器加1;其他的标签计数器加1。上述Collision—count 也可为Col一count—tag。
在标签端实现,主要是为了不改变空中接口(空中接口指的是原来 ISOl8000-6中的命令),而在阅读器端实现,主要是为了简化标签的设计。
上述清点过程中,每个分支进行分裂时,也可以不使用随机数产生器产 生0、 1的方式进行分裂,使用其他分裂方式,将所述分支分成两个分支即 可,如产生其他指定的随机数,或产生随机数l的标签计数器值比产生随机 数0的标签的计数器值大1。另一方面,所述标签计数器的值也不限于上述 数值,计数器值实际上代表标签的回复顺序,在同一时刻,计数器值最小的 标签进行回复,只要计数器的值能保证标签的回复顺序即可。也可以不使用 计数器,使用其他方式能指示标签的回复顺序即可。
根据连续碰撞情况进行预先分裂的二叉树标签防碰撞方法通过对 Binary Tree标签防碰撞方法进行改进,实现了较好地非0分支动态预先分裂, 大大提高了标签清点效率,具体参见图4,通过对不同标签数目进行仿真, 仿真1000次,得到清点效率曲线。图4(a)表明,在标签数目较少的情况 下,本发明清点效率与ISO18000-6清点效率相比,提高了 5%左右,子图(b) 表明,在大量标签情况下,本发明的清点效率依然能稳定保持在40.5%左右, 且有上升的趋势。
本发明所述方法与ISO 18000-6相比,清点效率大大提高,并且标签数 目较大的时候,清点效率仍然保持在40.5%,并且有上升的趋势,当然,还 有其他的根据碰撞情况确定非0分支预先分裂的方法,并且清点效率还可能
12更好,因此,本发明提出的根据碰撞情况决定预先分裂规则的二叉树标签防 碰撞方法是一种清点效率高并且可行的方法。
当然,本发明提出的是根据碰撞情况决定预先分裂分支的方法,不限于 上述实施例中所述的方式,其他的根据碰撞情况确定预先分裂分支的方法, 都是本发明的特例情况。
权利要求
1、一种射频识别系统中标签防碰撞方法,其特征在于,记录标签回复时的连续碰撞信息,根据该连续碰撞信息确定预先分裂规则,具体通过如下步骤实现(a)阅读器发送指令开始清点标签,同时开始在规定的时隙上接收来自标签的信号;(b)标签收到指令后,所有标签开始回复;(c)若阅读器在规定的时隙内正确接收标签的回复信息,判断所有标签是否清点完毕,如果是,结束;否则,向标签发送成功确认指令,进入下一个时隙进行接收,转入步骤(d);若阅读器在规定的时隙内错误接收标签的回复信息,向标签发送失败确认指令,进入下一个时隙进行接收,转入步骤(e);(d)标签收到成功确认指令后,正确回复信息给阅读器的标签清点完毕,离开清点过程,转入步骤(f);(e)标签收到失败确认指令后,满足所述预先分裂规则的所有标签或标签分支分裂为两个子集,将其中任一子集称为左分支标签,另一子集称为右分支标签,右分支标签必须等待左分支标签清点完毕才能回复,转入步骤(f);(f)标签按照回复顺序继续回复阅读器,返回步骤(c)。
2、 如权利要求l所述的方法,其特征在于,所述步骤(e)中,所述 标签启动随机数发生器进行分裂,产生指定随机数的标签属于左分支标签或 右分支标签。
3、 如权利要求2所述的方法,其特征在于,产生随机数0的标签属 于左分支标签,产生随机数1的标签属于右分支标签。
4、 如权利要求l或2或3所述的方法,其特征在于,为每个标签设 置计数器,计数器值指示该标签回复阅读器的顺序。
5、 如权利要求4所述的方法,其特征在于,所述步骤(b)中,所述标签计数器清0,所述步骤(C)中,若阅读器在规定的时隙内正确接收标签的回复信息或未收到标签回复信息,计数器值减1,所述步骤(e)中, 标签计数器值按指定分裂规则进行变化,所述步骤(f)中,计数器值为0 的标签回复阅读器。
6、 如权利要求1或5所述的方法,其特征在于,在阅读器端设置碰 撞计数器,所述步骤(a)中,初始化碰撞计数器Collision—count为0;所述 步骤(c)中,若阅读器在规定的时隙内正确的接收标签的回复信息,碰撞 计数器Collision—count清0,若阅读器在规定的时隙内错误接收标签的回复 信息,向标签发送失败确认指令,将碰撞计数器Collision—count加1,阅读 器将所述碰撞计数器Collision—count值发送给标签,所述步骤(e )中,标 签接收所述碰撞计数器Collision—count,根据所述Collision—count值确定预 先分裂规则。
7、 如权利要求6所述的方法,其特征在于,所述步骤(e)中,如果 碰撞计数器Collision—count值为m的倍数,m为预先指定的值,m>l,计 数器值11=0的标签进行分裂,左分支标签计数器不变,右分支标签计数器加 1;计数器值n<2*Collison—count/m的标签,计数器值加1,计数器值 n=2*Collision—count/m+i(i^,…,m+l)的标签,进行分裂,左分支标签计数器 值加i+l,右分支标签计数器值加i+2;其他的标签,计数器值加m+3;如 果碰撞计数器不是m的倍数,计数器值n=0的标签,进行分裂,左分支标 签计数器不变,右分支标签计数器加l;其他的标签计数器加l。
8、 如权利要求1或5所述的方法,其特征在于,在标签端设置碰撞 计数器,所述步骤(b)中,标签端初始化碰撞计数器Col—count—tag为0; 所述步骤(d)中,标签收到成功确认指令后,碰撞计数器Col—count—tag清 0,所述步骤(e)中,标签收到失败确认指令后,将碰撞计数器Col—ccniht—tag 加1,标签根据碰撞计数器Col—count—tag值确定预先分裂规则。
9、 如权利要求8所述的方法,其特征在于,所述步骤(e)中,如果 碰撞计数器Col—count—tag值为m的倍数,m为预先指定的值,m>l,计数 器值11=0的标签进行分裂,左分支标签计数器不变,右分支标签计数器加1; 计数器值n<2*Col_count_tag的标签,计数器值加1 ;计数器值n=2*Col—count—tag+i(i-0,…,m+l)的标签,进行分裂,左分支标签计数器值加 i+1,右分支标签计数器值加i+2;其他的标签,计数器值加m+3;如果碰撞 计数器不是m的倍数,计数器值11=0的标签,进行分裂,左分支标签计数 器不变,右分支标签计数器加l;其他的标签计数器加l。
10、 如权利要求7或9所述的方法,其特征在于,所述m取值为3。
全文摘要
一种射频识别系统中标签防碰撞方法,记录标签回复时的连续碰撞信息,确定预先分裂规则,包括a)阅读器发送指令开始清点标签;b)标签收到指令后,所有标签开始回复;c)若阅读器在规定的时隙内正确接收标签的回复,判断所有标签是否清点完毕,是则结束;否则,发送成功确认指令,转入(d);若阅读器在规定的时隙内错误接收标签的回复,发送失败确认指令,转入(e);d)标签收到成功确认指令后时,正确回复的标签清点完毕,转入(f);e)标签收到失败确认指令后,满足预先分裂规则的标签分裂为左分支标签和右分支标签,右分支标签必须等待左分支标签清点完毕才能回复,转入(f);f)标签按照回复顺序继续回复阅读器,返回(c)。
文档编号G06K7/00GK101436245SQ200710187149
公开日2009年5月20日 申请日期2007年11月16日 优先权日2007年11月16日
发明者欢 周, 建 张, 焦红爱 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1