一种基于自适应分组机制的RFID防碰撞方法转让专利

申请号 : CN201410329301.9

文献号 : CN104134052B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 凌捷沈金伟赵广强

申请人 : 广东工业大学

摘要 :

本发明公开了一种基于自适应分组机制的RFID防碰撞方法,在阅读器端增设了查询栈、分组标志位和分组码,进而减少了阅读器向标签查询的次数,同时在识别出标签后直接进入静默状态,也不需要返回到根节点查询,进一步减少了查询次数;在标签端设置了碰撞组来记录碰撞位,有效减少了通信过程中的传输量;在标签端设置了状态标志state,有效地减少了标签的筛选范围,进而减少了阅读器的查询次数;阅读器不需要发送完整的ID编码,有效地减少了RFID系统的数据传输量。本发明可广泛应用于射频识别领域。

权利要求 :

1.一种基于自适应分组机制的RFID防碰撞方法,其特征在于:包括:

A、阅读器初始化查询栈为空,并发送Req(ALL,ALL)指令激活感应场内的所有标签,然后接收标签返回的应答信号;

B、阅读器根据译码后的应答信号判断是否发生标签碰撞,若是,则根据碰撞位生成相应的碰撞码并进行记录,然后向标签发送碰撞指令Req(CID,null),反之,则转至步骤G;

C、标签将碰撞指令Req(CID,null)保存至碰撞组Col_bit中,并将碰撞位的消息返回给阅读器;

D、阅读器根据碰撞码和返回的消息设置分组标志位Div_bit和分组码Div_num,然后将元素(Div_bit,Div_num)和(Div_bit, )依次加入查询栈;

E、阅读器判断查询栈是否为空,若是,则释放碰撞码和Div_bit所占用的内存,并将Div_num的值置0,然后结束流程;反之,则将查询栈栈顶元素出栈,然后根据栈顶元素的内容发送Req(Div_bit,Div_num)指令,然后执行步骤F;

F、阅读器根据符合Req(Div_bit,Div_num)指令的标签返回的应答消息,判断是否发生了碰撞,若是,则返回步骤C,反之,则将该标签的状态标志state置0和碰撞组Col_bit清空,并将其他标签的状态标志state自动减1,然后执行步骤G;

G、阅读器发送指令对标签进行读写操作,然后在读写结束后发送静默命令使该标签进入静默状态,最后返回步骤E;

其中,Req(ALL,ALL)指令,要求阅读器感应场范围内的所有标签返回自己的完整序列号进行响应;碰撞指令Req(CID,null),表示标签将CID的值与自身的ID值进行比较,从而得到发生碰撞的位置并进行记录,此后每次响应阅读器指令的时候,标签只发送碰撞位上的二进制值;Req(Div_bit,Div_num)指令,是指满足状态标志State为0且第Div_bit位上的数值为Div_num的标签响应阅读器,发送碰撞位上的二进制值,而其他标签的状态标志State自动加1;分组标志位Div_bit,用于记录以碰撞标签的哪一个比特位作为分组标志;分组码Div_num,用于记录被选中分组标签中第Div_bit位上的二进制值; 为异或运算符。

2.根据权利要求1所述的一种基于自适应分组机制的RFID防碰撞方法,其特征在于:所述步骤A,其包括:A1、阅读器初始化查询堆栈为空,并发送Req(ALL,ALL)指令激活感应场内的所有标签;

A2、接收到Req(ALL,ALL)指令的标签将状态标志State设置为0,然后把标签的ID号发送给阅读器;

A3、阅读器检测是否接收到应答信号,若是,则执行步骤B,反之,则返回步骤A1。

3.根据权利要求1所述的一种基于自适应分组机制的RFID防碰撞方法,其特征在于:所述步骤B,其包括:B1、阅读器对所有接收到的应答信号进行译码;

B2、阅读器根据译码的结果判断是否发生了标签碰撞,若是,则根据碰撞位生成相应的碰撞码并进行记录,然后向标签发送碰撞指令Req(CID,null),反之,则转至步骤G,其中,碰撞码的生成规则为:没有发生碰撞的比特位上的二进制值与标签的ID二进制值相同,而发生碰撞的比特位的值,则用预设的特殊符号代替。

4.根据权利要求1所述的一种基于自适应分组机制的RFID防碰撞方法,其特征在于:所述步骤D,其包括:D1、阅读器根据碰撞码、返回的消息和预设的分组取值原则设置分组标志位Div_bit和分组码Div_num;

D2、阅读器将元素(Div_bit,Div_num)和(Div_bit, )依次加入查询栈。

5.根据权利要求4所述的一种基于自适应分组机制的RFID防碰撞方法,其特征在于:所述预设的分组取值原则,包括分组标志位Div_bit的取值规则和分组码Div_num的取值规则,其中,分组标志位Div_bit的取值规则为:根据碰撞码和标签返回的消息选择标签发生碰撞的最高比特位,并将该最高比特位的数值赋值给分组标志位Div_bit;而分组码Div_num的取值规则为:比较标签第Div_bit位上的二进制值0与1的数目,然后将数目较多的二进制值赋给Div_num,若0与1的数目相同,则不采取任何操作。

6.根据权利要求1所述的一种基于自适应分组机制的RFID防碰撞方法,其特征在于:所述碰撞组Col_bit保存的碰撞位为标签的第6、5、3、2比特位。

7.根据权利要求1所述的一种基于自适应分组机制的RFID防碰撞方法,其特征在于:所述标签的状态标志State的值与标签的状态对应关系满足:若State的值为0,则表示此时标签处于激活状态,能响应阅读器的信号;若State的值大于0,则表示此时标签处于锁定状态,不能响应阅读器的信号;若State的值小于0,则表示此时标签处于静默状态中,不能接收阅读器的信号。

8.根据权利要求1所述的一种基于自适应分组机制的RFID防碰撞方法,其特征在于:所述查询栈保存的元素为待查询的分组标志(m,n),其中,m为标签ID号的第m位,n为标签ID号在第m位上的二进制值。

9.根据权利要求1所述的一种基于自适应分组机制的RFID防碰撞方法,其特征在于:所述碰撞指令中CID的取值规则为:将发生碰撞的比特位置1,没有发生碰撞的比特位置0,从而得到新的CID编码值。

说明书 :

一种基于自适应分组机制的RFID防碰撞方法

技术领域

[0001] 本发明涉及射频识别领域,尤其是一种基于自适应分组机制的RFID防碰撞方法。

背景技术

[0002] 无线射频识别(Radio Frequency Identification,RFID)是一种使无线射频技术实现对象识别和数据交换的技术。在RFID系统中,影响阅读器正确或完整接收数据的因素主要有以下三个:
[0003] 一、系统周边的信号干扰;大多数情况下,系统周边的信号干扰可以通过数据校验的方式来解决。
[0004] 二、多个阅读器之间的信号重叠,即阅读器碰撞问题;由于阅读器相对标签在硬件功能上更为强大,故阅读器碰撞的问题解决起来比标签问碰撞题容易得多,现有的阅读器防碰撞的算法包括自适应着色图算法、DSATUR算法和增强SEQ算法等。
[0005] 三、多个标签同时在同一阅读器的可读范围内而造成的数据碰撞,即标签碰撞问题。标签碰撞问题的解决方法一般包括以下四种方法:(1)空分多路法,其实现代价比较高;(2)码分多路法,其信道容量比较小,频带利用率不高,而且应用比较复杂;(3)频分多路法,其对阅读器和标签的要求都比较高;(4)时分多路法。时分多路法相对其他几种方法,实现起来较为简单,而且对系统的硬件要求不高,是目前应用最多的RFID标签防碰撞方法。
[0006] 基于二进制搜索的算法是目前时分多路法中的研究热点之一;该算法主要有两个改进的方向:一是减少阅读器的查询次数,二是减少传输的数据量。后退式二进制搜索算法和动态二进制搜索算法就是从这两个角度出发对二进制搜索算法进行了改进,但是后退式二进制搜索算法没有考虑减少通信的数据量,而动态二进制搜索算法则没有采取有效的措施来减少读写器向标签发送的请求次数。
[0007] 综上所述,目前业内还未有一种既能减少阅读器的查询次数,又能降低通信过程中的数据量的RFID标签防碰撞方法。

发明内容

[0008] 为了解决上述技术问题,本发明的目的是:提供一种既能减少阅读器的查询次数,又能降低通信过程中的数据量的,基于自适应分组机制的RFID防碰撞方法。
[0009] 本发明解决其技术问题所采用的技术方案是:
[0010] 一种基于自适应分组机制的RFID防碰撞方法,包括:
[0011] A、阅读器初始化查询栈为空,并发送Req(ALL,ALL)指令激活感应场内的所有标签,然后接收标签返回的应答信号;
[0012] B、阅读器根据译码后的应答信号判断是否发生标签碰撞,若是,则根据碰撞位生成相应的碰撞码并进行记录,然后向标签发送碰撞指令Req(CID,null),反之,则转至步骤G;
[0013] C、标签将碰撞指令Req(CID,null)保存至碰撞组Col_bit中,并将碰撞位的消息返回给阅读器;
[0014] D、阅读器根据碰撞码和返回的消息设置分组标志位Div_bit和分组码Div_num,然后将元素(Div_bit,Div_num)和(Div_bit,Div_num 1)依次加入查询栈;
[0015] E、阅读器判断查询栈是否为空,若是,则释放碰撞码和Div_bit所占用的内存,并将Div_num的值置0,然后结束流程;反之,则将查询栈栈顶元素出栈,然后根据栈顶元素的内容发送Req(Div_bit,Div_num)指令,然后执行步骤F;
[0016] F、阅读器根据符合Req(Div_bit,Div_num)指令的标签返回的应答消息,判断是否发生了碰撞,若是,则返回步骤C,反之,则将该标签的状态标志state置0和碰撞组Col_bit清空,并将其他标签的状态标志state自动减1,然后执行步骤G;
[0017] G、阅读器发送指令对标签进行读写操作,然后在读写结束后发送静默命令使该标签进入静默状态,最后返回步骤E;
[0018] 其中,Req(ALL,ALL)指令,要求阅读器感应场范围内的所有标签返回自己的完整序列号进行响应;碰撞指令Req(CID,null),表示标签将CID的值与自身的ID值进行比较,从而得到发生碰撞的位置并进行记录,此后每次响应阅读器指令的时候,标签只发送碰撞位上的二进制值;Req(Div_bit,Div_num)指令,是指满足状态标志State为0且第Div_bit位上的数值为Div_num的标签响应阅读器,发送碰撞位上的二进制值,而其他标签的状态标志State自动加1;分组标志位Div_bit,用于记录以碰撞标签的哪一个比特位作为分组标志;分组码Div_num,用于记录被选中分组标签中第Div_bit位上的二进制值; 为异或运算符。
[0019] 进一步,所述步骤A,其包括:
[0020] A1、阅读器初始化查询堆栈为空,并发送Req(ALL,ALL)指令激活感应场内的所有标签;
[0021] A2、接收到Req(ALL,ALL)指令的标签将状态标志State设置为0,然后把标签的ID号发送给阅读器;
[0022] A3、阅读器检测是否接收到应答信号,若是,则执行步骤B,反之,则返回步骤A1。
[0023] 进一步,所述步骤B,其包括:
[0024] B1、阅读器对所有接收到的应答信号进行译码;
[0025] B2、阅读器根据译码的结果判断是否发生了标签碰撞,若是,则根据碰撞位生成相应的碰撞码并进行记录,然后向标签发送碰撞指令Req(CID,null),反之,则转至步骤G,其中,碰撞码的生成规则为:没有发生碰撞的比特位上的二进制值与标签的二进制值相同,而发生碰撞的比特位的值,则用预设的特殊符号代替。
[0026] 进一步,所述步骤D,其包括:
[0027] D1、阅读器根据碰撞码、返回的消息和预设的分组取值原则设置分组标志位Div_bit和分组码Div_num;
[0028] D2、阅读器将元素(Div_bit,Div_num)和(Div_bit,Div_num 1)依次加入查询栈。
[0029] 进一步,所述预设的分组取值原则,包括分组标志位Div_bit的取值规则和分组码Div_num的取值规则,其中,分组标志位Div_bit的取值规则为:根据碰撞码和标签返回的消息选择标签发生碰撞的最高比特位,并将该最高比特位的数值赋值给分组标志位Div_bit;而分组码Div_num的取值规则为:比较标签第Div_bit位上的二进制值0与1的数目,然后将数目较多的二进制值赋给Div_num,若0与1的数目相同,则不采取任何操作。
[0030] 进一步,所述碰撞组Col_bit保存的碰撞位为标签的第6、5、3、2比特位。
[0031] 进一步,所述标签的状态标志State的值与标签的状态对应关系满足:若State的值为0,则表示此时标签处于激活状态,能响应阅读器的信号;若State的值大于0,则表示此时标签处于锁定状态,不能响应阅读器的信号;若State的值小于0,则表示此时标签处于静默状态中,不能接收阅读器的信号。
[0032] 进一步,所述查询栈保存的元素为待查询的分组标志(m,n),其中,m为标签ID号的第m位,n为标签ID号在第m位上的二进制值。
[0033] 进一步,所述碰撞指令中CID的取值规则为:将发生碰撞的比特位置1,没有发生碰撞的比特位置0,从而得到新的CID编码值。
[0034] 本发明的有益效果是:
[0035] (1)在阅读器端增设了查询栈、分组标志位和分组码,使阅读器端具有智能判断的功能,能根据不同的碰撞情况自适应进行分组,缩小了符合筛选条件的标签范围,减少了标签碰撞的可能性,进而减少了阅读器向标签查询的次数,同时在识别出标签后直接进入静默状态,也不需要返回到根节点查询,进一步减少了查询次数;
[0036] (2)在标签端设置了碰撞组来记录碰撞位,而在后续通信中,标签只需要返回碰撞位,有效减少了通信过程中的传输量;在标签端设置了状态标志state,根据状态标志state和阅读器的请求消息,将标签划入不同的分组中,有效地减少了标签的筛选范围,进而减少了阅读器的查询次数;
[0037] (3)阅读器只需要向标签发送Req(ALL,ALL)指令、Req(CID,null)指令和Req(Div_bit,Div_num)指令,而不需要发送完整的ID编码,有效地减少了RFID系统的数据传输量。

附图说明

[0038] 下面结合附图和实施例对本发明作进一步说明。
[0039] 图1为本发明一种基于自适应分组机制的RFID防碰撞方法的步骤流程图;
[0040] 图2为本发明步骤A的流程图;
[0041] 图3为本发明步骤B的流程图;
[0042] 图4为本发明步骤D的流程图;
[0043] 图5为本发明实施例一中阅读器的功能模块框图;
[0044] 图6为本发明实施例二的RFID防碰撞实现过程示意图。

具体实施方式

[0045] 参照图1,一种基于自适应分组机制的RFID防碰撞方法,包括:
[0046] A、阅读器初始化查询栈为空,并发送Req(ALL,ALL)指令激活感应场内的所有标签,然后接收标签返回的应答信号;
[0047] B、阅读器根据译码后的应答信号判断是否发生标签碰撞,若是,则根据碰撞位生成相应的碰撞码并进行记录,然后向标签发送碰撞指令Req(CID,null),反之,则转至步骤G;
[0048] C、标签将碰撞指令Req(CID,null)保存至碰撞组Col_bit中,并将碰撞位的消息返回给阅读器;
[0049] D、阅读器根据碰撞码和返回的消息设置分组标志位Div_bit和分组码Div_num,然后将元素(Div_bit,Div_num)和(Div_bit,Div_num 1)依次加入查询栈;
[0050] E、阅读器判断查询栈是否为空,若是,则释放碰撞码和Div_bit所占用的内存,并将Div_num的值置0,然后结束流程;反之,则将查询栈栈顶元素出栈,然后根据栈顶元素的内容发送Req(Div_bit,Div_num)指令,然后执行步骤F;
[0051] F、阅读器根据符合Req(Div_bit,Div_num)指令的标签返回的应答消息,判断是否发生了碰撞,若是,则返回步骤C,反之,则将该标签的状态标志state置0和碰撞组Col_bit清空,并将其他标签的状态标志state自动减1,然后执行步骤G;
[0052] G、阅读器发送指令对标签进行读写操作,然后在读写结束后发送静默命令使该标签进入静默状态,最后返回步骤E;
[0053] 其中,Req(ALL,ALL)指令,要求阅读器感应场范围内的所有标签返回自己的完整序列号进行响应;碰撞指令Req(CID,null),表示标签将CID的值与自身的ID值进行比较,从而得到发生碰撞的位置并进行记录,此后每次响应阅读器指令的时候,标签只发送碰撞位上的二进制值;Req(Div_bit,Div_num)指令,是指满足状态标志State为0且第Div_bit位上的数值为Div_num的标签响应阅读器,发送碰撞位上的二进制值,而其他标签的状态标志State自动加1;分组标志位Div_bit,用于记录以碰撞标签的哪一个比特位作为分组标志;分组码Div_num,用于记录被选中分组标签中第Div_bit位上的二进制值; 为异或运算符。
[0054] 参照图2,进一步作为优选的实施方式,所述步骤A,其包括:
[0055] A1、阅读器初始化查询堆栈为空,并发送Req(ALL,ALL)指令激活感应场内的所有标签;
[0056] A2、接收到Req(ALL,ALL)指令的标签将状态标志State设置为0,然后把标签的ID号发送给阅读器;
[0057] A3、阅读器检测是否接收到应答信号,若是,则执行步骤B,反之,则返回步骤A1。
[0058] 参照图3,进一步作为优选的实施方式,所述步骤B,其包括:
[0059] B1、阅读器对所有接收到的应答信号进行译码;
[0060] B2、阅读器根据译码的结果判断是否发生了标签碰撞,若是,则根据碰撞位生成相应的碰撞码并进行记录,然后向标签发送碰撞指令Req(CID,null),反之,则转至步骤G,其中,碰撞码的生成规则为:没有发生碰撞的比特位上的二进制值与标签的二进制值相同,而发生碰撞的比特位的值,则用预设的特殊符号代替。
[0061] 参照图4,进一步作为优选的实施方式,所述步骤D,其包括:
[0062] D1、阅读器根据碰撞码、返回的消息和预设的分组取值原则设置分组标志位Div_bit和分组码Div_num;
[0063] D2、阅读器将元素(Div_bit,Div_num)和(Div_bit,Div_num 1)依次加入查询栈。
[0064] 进一步作为优选的实施方式,所述预设的分组取值原则,包括分组标志位Div_bit的取值规则和分组码Div_num的取值规则,其中,分组标志位Div_bit的取值规则为:根据碰撞码和标签返回的消息选择标签发生碰撞的最高比特位,并将该最高比特位的数值赋值给分组标志位Div_bit;而分组码Div_num的取值规则为:比较标签第Div_bit位上的二进制值0与1的数目,然后将数目较多的二进制值赋给Div_num,若0与1的数目相同,则不采取任何操作。
[0065] 进一步作为优选的实施方式,所述碰撞组Col_bit保存的碰撞位为标签的第6、5、3、2比特位。
[0066] 进一步作为优选的实施方式,所述标签的状态标志State的值与标签的状态对应关系满足:若State的值为0,则表示此时标签处于激活状态,能响应阅读器的信号;若State的值大于0,则表示此时标签处于锁定状态,不能响应阅读器的信号;若State的值小于0,则表示此时标签处于静默状态中,不能接收阅读器的信号。
[0067] 进一步作为优选的实施方式,所述查询栈保存的元素为待查询的分组标志(m,n),其中,m为标签ID号的第m位,n为标签ID号在第m位上的二进制值。
[0068] 进一步作为优选的实施方式,所述碰撞指令中CID的取值规则为:将发生碰撞的比特位置1,没有发生碰撞的比特位置0,从而得到新的CID编码值。
[0069] 下面结合说明书附图和具体实施例对本发明作进一步详细说明。
[0070] 实施例一
[0071] 参照图5,本发明的第一实施例:
[0072] 本发明的阅读器在RFID系统中主要实现与标签的通信过程和实现防碰撞的功能,包括接口模块、预处理模块、防碰撞处理模块和识别后处理模块这四个模块。下面分别对这四个模块的功能进行说明:
[0073] 一、接口模块
[0074] 接口模块主要是指系统接口模块。系统接口模块,为阅读器与后台处理器或者其他硬件的接口,主要用于阅读器与其他硬件的通信协调处理。
[0075] 二、预处理模块
[0076] 预处理模块又进一步可细分为:
[0077] 1.同步模块:主要用于阅读器接收标签响应信息进行同步处理;
[0078] 2.解码模块:主要用于对从标签响应的消息进行解码处理;
[0079] 3.数据校验模块:主要用于对接收的数据进行循环冗余校验处理;
[0080] 4.解码判断模块:主要用于对解码后的信息进行判断处理,检查是否发生了碰撞、是否存在解码错误或数据传输错误等问题。
[0081] 三、防碰撞处理模块
[0082] 防碰撞处理模块,主要用于实现防碰撞算法,从而在发生标签碰撞的时候,筛选出可以识别的标签进行通信。
[0083] 四、识别后处理模块
[0084] 识别后处理模块又进一步可细分为:
[0085] 1.系统命令模块:主要用于对将要发送的消息进行添加系统命令等处理;
[0086] 2.消息编码模块:主要用于对信息进行曼彻斯特编码处理;
[0087] 3.网络处理模块:主要用于给将要发送的消息加上帧头和分隔符等处理。
[0088] 本发明阅读器进行单次通信的具体过程为:
[0089] S1、接收标签响应的消息,进入预处理模块中对消息进行如下处理:首先消息进入同步模块中,阅读器检查信息是否同步;接着,阅读器把数据送给解码模块进行解码;再接着,阅读器将解码后的数据送入数据校验模块进行循环冗余校验;最后,循环冗余校验后的数据进入解码判断模块,在该模块中判断循环冗余校验后的消息是否发生标签碰撞;
[0090] S2、把解码、校验和碰撞判断的结果都发送到防碰撞处理模块进行防碰撞操作;
[0091] S3、防碰撞操作结束后,根据通信的对象选择相应的操作:如果阅读器与其他硬件通信,则进入到接口模块,对消息进行处理,以便于阅读器与其他硬件设备通信;如果是与标签通信,则进入到识别后处理模块;
[0092] S4、在识别后处理模块中,消息依次进入到系统命令模块、消息编码模块、网络处理模块中。该后处理模块分别对消息进行添加系统命令处理、进行曼彻斯特编码处理和添加网络命令处理,然后将处理后的消息发送出去。
[0093] 实施例二
[0094] 本实施例以5个使用8位编码信息的标签为例,并结合附图6对本发明的实现过程予以说明。
[0095] 设这5个标签的ID分别为:A:00110101;B:00111101;C:01110101;D:01011001;E:00110001,则RFID防碰撞的具体实现过程为:
[0096] (1)阅读器(Reader)发出指令Req(ALL,ALL),激活感应场内所有的标签(Tag),并初始化查询栈(req_stack)为空;标签收到该指令后,发送标签ID给Reader,并设置标签的状态标志state的值为0。Reader解码得到的ID为0XX1XX01,碰撞位为6、5、3、2比特位(“X”代表发生碰撞,从右往左分别对应0-7比特位),设置碰撞码col_num的值为0XX1XX01,此时根据CID取值规则,阅读器会发送消息Req(001101100,null)给标签。标签收到消息后,会先保存碰撞位,并将碰撞位上的比特值发给阅读器,即将碰撞位上第6、5、3、2位的二进制值发送给阅读器。
[0097] (2)阅读器根据返回的消息及碰撞码判断出最高碰撞位是第6比特位,且该位上1的数目为2小于0的数目3,因此会设置分组标志位Div_bit的值为6,分组码Div_num的值为0,从而将元素(6,0)加入查询栈,接着计算Div_num 1=1,将元素(6,1)入栈;再接着阅读器检查查询栈非空,因此栈顶元素出栈,并发送Req(6,1)消息给标签。标签收到消息后,第6比特位上的二进制数字是1的标签C、D响应,其他标签的State自动加1。
[0098] (3)阅读器对标签返回的信息进行解码得到1XXX(第6、5、3、2比特位的二进制值),根据本发明Div_bit和Div_num的计算方法,同理将元素(5,0)和元素(5,1)依次入栈,栈顶元素出栈,发送消息Req(5,1)给标签。由于此时只有两个标签C、D的State为0,且根据Req的响应规则,只有标签C响应,即标签C被识别,进入到读写处理模块中,然后阅读器将标签C的State置-1,其他标签的State自动减1。
[0099] (4)阅读器处理完C标签后,检查查询栈非空,接着发送Req(5,0)消息,此时只有标签D响应,进入到读写处理模块中,然后同理将标签D的State置-1,其他标签的State自动减1。
[0100] (5)阅读器继续检查查询栈非空,接着发送消息(6,0),此时标签A、B、E响应;阅读器对标签返回的信息进行解码得到01XX,根据本发明Div_bit和Div_num的计算方法,同理将元素(3,0)和(3,1)依次入栈,栈顶元素出栈,发送消息Req(3,1)给标签,此时只有标签E响应,进入到读写处理模块中,然后阅读器将标签E的State置-1,其他标签的State自动减1。
[0101] (6)阅读器继续检查查询栈非空,发送消息Req(3,0)。此时,标签A、E响应;阅读器对标签返回的信息解码得到010X,根据本发明的Div_bit和Div_num的计算方法,同理将元素(2,0)和(2,1)依次入栈,发送消息Req(2,1),此时只有标签A响应,进入到读写处理模块中,然后阅读器将标签A的State置-1,其他标签的State自动减1。
[0102] (7)阅读器继续检查查询栈非空,发送消息Req(2,0)。此时标签E响应,进入到读写处理模块中,然后阅读器将标签E的State置-1,其他标签的State自动减1。
[0103] (8)阅读器继续检查查询栈为空,算法结束。
[0104] 通过上述步骤(1)-(8)的操作,射频识别阅读器依次识别了所有的碰撞标签,识别成功的标签即可进行后续通信。
[0105] 与现有技术相比,本发明具有以下优点:
[0106] (1)在阅读器端增设了查询栈、分组标志位和分组码,使阅读器端具有智能判断的功能,能根据不同的碰撞情况自适应进行分组,缩小了符合筛选条件的标签范围,减少了标签碰撞的可能性,进而减少了阅读器向标签查询的次数,同时在识别出标签后直接进入静默状态,也不需要返回到根节点查询,进一步减少了查询次数;
[0107] (2)在标签端设置了碰撞组来记录碰撞位,而在后续通信中,标签只需要返回碰撞位,有效减少了通信过程中的传输量;在标签端设置了状态标志state,根据状态标志state和阅读器的请求消息,将标签划入不同的分组中,有效地减少了标签的筛选范围,进而减少了阅读器的查询次数;
[0108] (3)阅读器只需要向标签发送Req(ALL,ALL)指令、Req(CID,null)指令和Req(Div_bit,Div_num)指令,而不需要发送完整的ID编码,有效地减少了RFID系统的数据传输量。
[0109] 以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。