背景技术
射频识别(Radio Frequency Identification,缩写RFID)是一种非接触式的自动识别技术,它利用射频信号和空间耦合传输特性,自动识别目标对象并获取目标对象的相关信息,实现对目标对象的自动识别。RFID技术使用便利,应用广泛,越来越受到人们的普遍关注。
典型的RFID系统由两部分组成:电子标签(Tag)以及读写器(reader)。其中,所述电子标签是RFID系统的数据载体,每个电子标签具有唯一的标识信息即电子标签ID。电子标签附着在物体表面或嵌入于物体内部,用以标识目标对象。读写器的主要任务是向电子标签发送读取命令,接收由电子标签返回的回复,并对电子标签的标识信息进行解码,然后将标识信息传输到后台主机以供处理。
如图1所示,在一个读写器读取多个电子标签的模式下,RFID系统需要较快的识别出管辖范围内的所有电子标签。由于电子标签是在读写器控制下被动工作的,而且所有电子标签工作在同一频段,因此,当读写器向管辖范围内的电子标签发送读取命令的时候,往往会同时收到多个电子标签的回复消息。当至少有两个电子标签发送回复消息时,我们将这种情况称为“碰撞”。
随着RFID技术的逐渐普及,如何有效的避免在电子标签的识别过程中的数据碰撞,并尽可能快的识别完所有的电子标签,已成为RFID系统的关键技术。现有的防碰撞算法有Query tree防碰撞算法、ALOHA防碰撞算法、Binary tree防碰撞算法(二分支树防碰撞算法)以及基于这些算法的改进算法等。
以Binary tree防碰撞算法为例,在利用这种算法对电子标签进行识别的过程中,电子标签的状态可能有以下四种状态:Power-Off(掉电状态)、Ready(准备好状态)、ID(识别状态)以及DataExchange(数据交换状态)。其中,Power-Off是指,未被激活的电子标签处于的状态。Ready(准备好状态)是指,当读写器上电,电子标签获得波束转化来的电能供内部芯片工作时处于的状态。ID是指,当电子标签试图发送自己的标识信息给读写器时处于的状态;DataExchange是指,当该电子标签已经被读写器识别到,并被选择后所处于的状态。此外,对于防碰撞算法来说,电子标签在硬件上应该具有:一个8位计数器COUNT以及一个产生0或1的自然随机发生器。
下面结合图2,以Binary tree防碰撞算法为例描述一下,在该算法中电子标签的识别过程。
1)读写器向管辖范围内的电子标签发送初始化命令;
2)接收到此命令的电子标签将其内部的计数器COUNT的计数值置0;
3)计数器的计数值为0的电子标签向读写器发送回复消息;
4)读写器在一定时间内判断电子标签发送回复消息的情况,可能出现的情况有如下三种:
(A)如果读写器在规定时间范围内,检测到有超过一个的电子标签发送了回复消息,则说明发生了“碰撞”。此时读写器将发送Fail(失败)命令,所有计数器的计数值为0的电子标签接收到Fail命令后,随机产生0或1;产生0的电子标签将其计数器的计数值置0,产生1的电子标签将其计数器的计数值置1;所有接收到失败命令并且内部计数器的计数值不等于0的电子标签将自己的计数器的计数值加1;
(B)如果读写器在规定时间范围内只检测到一个电子标签发送了回复消息,则识别成功;该电子标签由ID状态进入Data Exchange状态,开始读取数据;读写器发送Success命令,所有接收到Success命令的电子标签,将其计数器的计数值减1;
(C)如果读写器在规定时间范围内没有收到电子标签的回复,此时读写器发送Success(成功)命令;接收到Success命令的所有电子标签将其计数器的计数值减1;其中计数器的计数值0的电子标签的计数器的计数值减1后,其计数器的计数值依然为0;
然后,不断的重复上述步骤3)、4),直到所有的电子标签被识别完毕。
但是,在实现本发明的过程中,发明人发现在利用上述防碰撞算法进行电子标签的识别的过程中,由于每次碰撞只增加一个分支,即只有计数器值为0的电子标签分支在进行分支处理,而计数器值为非0分支的电子标签的计数器值只是随着收到FAIL或SUCCESS命令而加1或减1,也就是一直保持1支,而没有同时进行分支的动作。也就是说,当发生碰撞时,利用现有技术接收到失败命令的电子标签只能增加一个分支。因而现有的防碰撞算法的识别效率仍然还有很大的提升空间。
发明内容
本发明的实施例提供了一种电子标签的识别及应答方法、装置、设备及系统,以提高电子标签的识别的效率。
本发明实施例电子标签的识别方法采用以下技术方案:
一种电子标签的识别方法,包括如下步骤:
当只接收到1个电子标签发送的回复消息或没有接收到电子标签发送的回复消息时,获取电子标签连续碰撞次数;
当所述连续碰撞次数超过预先设置的阈值时,发送分支随机数产生控制命令,使处于识别状态的电子标签产生至少三个分支随机数,其中所述分支随机数用于使所述电子标签产生相应的分支;
根据接收到的电子标签的回复消息情况进行判断识别。
本发明实施例电子标签的识别装置采用以下技术方案:
一种电子标签的识别装置,包括:
碰撞次数获取单元,用于只接收到1个电子标签发送的回复消息或没有接收到电子标签发送的回复消息时,获取电子标签连续碰撞次数;
发送单元,用于当所述连续碰撞次数超过阈值时,发送分支随机数产生控制命令,使处于识别状态的电子标签产生至少三个分支随机数,其中所述分支随机数用于使所述电子标签产生相应的分支;
接收单元,用于接收由电子标签发送的回复消息;
识别判断单元,用于根据接收到的电子标签的回复消息情况进行判断识别。
本发明实施例还提供了一种射频信号的应答方法。
本发明实施例射频信号的应答方法,采用以下技术方案:
一种射频信号的应答方法,包括:
接收到初始化命令的电子标签将其计数器的值置0;
计数器值为0的电子标签发送回复消息;
当接收到分支随机数产生控制命令时,根据所述分支随机数产生控制命令产生分支随机数,并将其计数器的值置为所述分支随机数。
本发明实施例还提供了一种射频信号的应答装置。
本发明实施例射频信号的应答装置,采用以下技术方案:
一种射频信号的应答装置,包括:
接收单元,用于接收读写器发送的控制命令;
发送单元,用于在计数器的计数值为零时发送回复消息;
第一处理单元,用于当所述控制命令为分支随机数产生控制命令时,根据所述分支随机数产生控制命令产生分支随机数,并将其计数器的值置为该分支随机数。
本发明实施例还提供了一种电子标签的识别系统,所述系统采用以下技术方案:
一种电子标签的识别系统,包括读写器和至少两个电子标签;
所述系统包括读写器和至少两个电子标签;其中,所述的读写器包括:
碰撞次数获取单元,用于只接收到1个电子标签发送的回复消息或没有接收到电子标签发送的回复消息时,获取电子标签连续碰撞次数;
发送单元,用于当所述连续碰撞次数超过阈值时,发送分支随机数产生控制命令,使处于识别状态的电子标签产生至少三个分支随机数,其中所述分支随机数用于使所述电子标签产生相应的分支;
接收单元,用于接收由电子标签发送的回复消息;
识别判断单元,用于根据接收到的电子标签的回复消息情况进行判断识别;
所述的电子标签,包括:
接收单元,用于接收读写器发送的控制命令;
发送单元,用于在计数器的计数值为零时发送回复消息;
第一处理单元,用于当所述控制命令为分支随机数产生控制命令时,根据所述分支随机数产生控制命令中的分支随机数参数产生分支随机数,并将其计数器的值置为该分支随机数。
利用本发明实施例,通过为识别状态的电子标签产生不同的分支随机数,增加了具有不同计数器的值的电子标签分支,减小了计数器的计数值不是零的电子标签的等待被识别的时间,提高了对电子标签的识别效率。
具体实施方式
为解决现有技术中电子标签的识别效率低下的问题,本发明的实施例提供了一种电子标签的识别的方法、装置和系统。
为使本发明实施例技术方案的优点更加清楚,下面结合附图对本发明实施例做进一步的详细说明。
如图3所示,本发明实施例电子标签的识别方法包括如下步骤:
步骤301、当只接收到1个电子标签发送的回复消息或没有接收到电子标签发送的回复消息时,获取电子标签连续碰撞次数;
步骤302、当所述连续碰撞次数超过阈值时,发送分支随机数产生控制命令,使处于识别状态的电子标签产生至少三个分支随机数,其中所述分支随机数用于使所述电子标签产生相应的分支;
步骤303、根据接收到的电子标签的回复消息情况进行判断识别,可能发生的情况有以下两种,分别为:
1)如果只接收到一个电子标签发送的回复消息,说明没有碰撞,则识别成功。
利用现有技术中的防碰撞算法,在有电子标签发生碰撞时,每次碰撞只增加一个分支,即只有计数器值为0的电子标签分支在进行分支处理,而计数器值为非0分支的电子标签的计数器值只是随着收到FAIL或SUCCESS命令而加1或减1,也就是一直保持1支,而没有同时进行分支的动作。
而由上述过程可以看出,当所述碰撞次数超过阈值时,利用本发明实施所述的方法能够使得处于识别状态的电子标签产生分支随机数,增加了具有不同计数器值的电子标签的分支数,从而降低了电子标签发生碰撞的概率,提高了电子标签的识别效率。
在本发明实施例的上述过程中,所述的分支随机数产生控制命令为扩展成功命令,当然也可采用其他命令。与现有技术中的成功命令相比,在所述扩展成功命令中携带了分支随机数参数2e-1,其中e为正整数,且为连续发生碰撞的次数。
为方便描述,在后文中用“Success命令”表示成功命令,用“扩展Success命令”表示扩展成功命令。
在上述步骤303中,可以通过以下方式控制处于ID状态的电子标签产生分支随机数:通过在扩展成功命令中携带分支随机数参数2e-1;接收到所述控制命令的电子标签将在[0,2e-1]的范围内,随机产生分支随机数。所述的分支随机数参数是按照下述方式产生的:首先通过所述连续碰撞次数,计算处于未识别状态的电子标签的数量;然后,根据所述处于识别状态的电子标签的数量,计算分支随机数参数。在电子标签收到携带由分支随机数参数,可根据此参数在[0,2e-1]内产生一个分支随机数,并将其计数器的值置为所述分支随机数。通过此分支随机数参数,可将识别状态的电子标签产生相应的分支。最后,计数器值为零的电子标签发送回复消息。
当然,还可用其他方式产生分支随机数,只要能够增加各个电子标签的计数器值不相同的概率即可。
2)如果接收到至少两个电子标签发送的回复消息时,则发送随机数产生控制命令,使计数器值为零的电子标签产生随机数。这里的随机数指的是0或1,所述的随机数产生控制命令为失败命令。
此外,如图4所示,为进一步提高电子标签的识别效率,所述方法还包括:
步骤300、为电子标签的连续碰撞次数设置阈值。
通过判断所述的阈值是否超过预设值,来确定是否需要发送扩展Success命令。
与上述实施例电子标签的识别方法相对应,本发明的实施例还提供了一种射频信号的应答方法。如图5所示,所述方法包括:
步骤501、接收到初始化命令的电子标签将其计数器的值置0;
步骤502、计数器值为0的电子标签发送回复消息;
步骤503、当接收到分支随机数产生控制命令时,根据所述分支随机数产生控制命令中的分支随机数参数产生分支随机数,并将其计数器的值置为该分支随机数。
由上可以看出,利用本发明实施例所述的方法,通过在所述分支随机数参数确定的范围内产生的分支随机数,增加了具有不同的计数器值的电子标签的分支,降低了非零分支电子标签的等待时间,提高了电子标签的识别效率。
在实施本发明实施例所述的电子标签的识别方法的时候,所述的射频识别系统包括读写器和至少两个电子标签。和现有技术中的射频识别系统不同的是,为了提高对电子标签的识别效率,所述的读写器在现有功能的基础上,增加了碰撞次数计数功能以及碰撞次数变化控制功能。
如图6所示,本发明实施例所述的电子标签的识别系统包括:读写器60和至少两个电子标签61(图中只示出一个)。
其中,所述的读写器60包括:碰撞次数获取单元601,用于只接收到1个电子标签发送的回复消息或没有接收到电子标签发送的回复消息时,获取电子标签连续碰撞次数;发送单元602,用于当所述连续碰撞次数超过阈值时,发送分支随机数产生控制命令,使处于识别状态的电子标签产生至少三个分支随机数;接收单元603,用于接收由电子标签发送的回复消息;识别判断单元604,用于根据接收到的电子标签的回复消息情况判断是否碰撞,如果只接收到一个电子标签发送的回复消息,则识别成功。所述读写器的发送单元,还可用于在接收到至少两个电子标签发送的回复消息时,发送随机数产生控制命令。
其中,所述的电子标签,包括:接收单元610,用于接收读写器发送的控制命令;发送单元611,用于在计数器的计数值为零时发送回复消息;第一处理单元612,用于当所述控制命令为分支随机数产生控制命令时,根据所述分支随机数产生控制命令中的分支随机数参数产生分支随机数,并将其计数器的值置为该分支随机数。
此外,为了进一步的提高电子标签的识别效率,所述的读写器还可包括阈值设置单元605,用于为电子标签的连续碰撞次数设置阈值。上述的碰撞次数获取单元包括:位控制模块6011,用于控制获取连续碰撞次数;碰撞次数计算模块6012,用于当接收到至少两个电子标签发送的回复消息时,若位控制模块处于有效状态,则将碰撞次数加1。
所述的电子标签还可包括:
第一判断单元613,用于判断接收到的控制命令是分支随机数产生控制命令还是成功命令;
第二判断单元614,用于判断接收到的控制命令是否为失败命令;
第二处理单元615,用于在接收到失败命令时,计数器值为零的电子标签将随机产生0或1,并将计数器值设置为0或1,计数器值不为零的电子标签将计数器值加1;
第三处理单元616,用于当接收到读写器发送的成功命令时,接收到所述成功命令的电子标签将其计数器值减1。
由上可以看出,在连续发生碰撞的次数超过阈值时,通过在所述分支随机数参数确定的范围内产生的分支随机数,增加了具有不同的计数器值的电子标签的分支,降低了非零分支电子标签的等待时间,提高了电子标签的识别效率。
下面结合图7,详细描述一下本发明实施例所述的电子标签的识别系统的实施过程。
如图7所示,本发明实施例电子标签的识别过程如下:
步骤701、读写器初始化碰撞计数器和位控制器,将所述位控制器置为有效状态,碰撞计数器的计数值置零。其中位控制器为1bit(比特),且为0时表示位控制器为有效状态,位控制器为1时表示位控制器为无效状态。
步骤702、读写器向管辖范围内的电子标签发送初始化命令。
以目前的射频识别技术来讲,读写器的作用范围可从几厘米到几十米不等。读写器通过发送此初始化命令,使得一组电子标签进入ID状态,并将其计数器的计数值置为0。读写器也可以通过向此组电子标签中的一些电子标签子集发送GROUP_UNSELECT命令,将这些电子标签置回到Ready状态。
步骤703、接收到此初始化命令的电子标签进入ID状态,将其内部计数器的计数值置为0。
步骤704、计数器的计数值为0且处于ID状态的电子标签向读写器发送回复消息。
步骤705、若有至少两个电子标签发送了回复消息,则说明电子标签之间发生了碰撞。此时,判断所述位控制器是否处于有效状态,若是,则将碰撞计数器的计数值加1,并发送Fail命令,要求处于ID状态且计数器值为零的电子标签随机产生0或1随机数;若不是,则将直接发送Fail命令,要求处于ID状态且计数器值为零的电子标签随机产生0或1随机数。
步骤706、收到所述Fail命令且计数器值为零的电子标签随机产生0或1随机数,并将其计数器的值置为0或1,所有接收到Fail命令并且内部计数器的计数值不等于0的电子标签将自己的计数器的计数值加1。执行步骤704,计数器值为零的电子标签发送回复消息。
步骤707、当没有电子标签发生碰撞,且只有一个电子标签发送回复消息时时,则说明该电子标签的识别成功。该电子标签由ID状态进入Data Exchange状态,读写器开始读取数据,同时执行步骤708。当没有电子标签发生碰撞,且没有电子标签回复时,直接执行步骤708。
步骤708、判断碰撞计数器的计数值是否超过阈值3。需要说明的是,在、所述阈值并不只限于3,可以由设计人员根据具体的实验条件确定。
步骤709、若没有超过3,则将碰撞计数器的计数值清零,并发送Success命令,要求收到所述Success命令且处于ID状态的电子标签将其计数器的计数值减1。执行步骤704,计数器值为零的电子标签发送回复消息。
步骤710、若在碰撞计数器的计数值第一次超过3时,则将碰撞计数器的计数值清零,并将位控制器置为无效,并发送扩展Success命令,在所述扩展Success命令中携带有分支随机数参数2e-1,要求收到扩展Success命令的电子标签在[0,2e-1]的范围内,产生分支随机数,并将其计数器的值置为该分支随机数,其中e为连续发生碰撞的次数。执行步骤704,计数器值为零的电子标签发送回复消息。
不断的重复上述过程,直到所有的电子标签识别完毕。
图8是利用本发明实施例所述的系统,进行电子标签识别时,电子标签计数器的计数值变化的状态图。由图8可以看出,在连续碰撞次数超过3时,通过扩展Success命令中携带的分支随机数参数7,使得收到此命令的电子标签在[0,7]内产生一个分支随机数,并将其计数器的值置为该随机数。
通过上述的过程可以看出,在连续多次发生电子标签碰撞的情况下,利用本发明实施例所述的方法,在通信开始阶段通过统计成功识别前的连续碰撞次数粗略估计出待识别的标签数量,通过估计的标签数量计算出所需要的最佳分支树数目,并通过扩展命令将该最佳分支树数目作为分支随机数参数发送给电子标签,电子标签通过随机的方式直接进行多分支,从而达到在短时间内分出多个分支树,降低碰撞概率,提高电子标签识别效率。
图9和图10为利用本发明实施例所述的方法,与利用二分支数防碰撞算法进行电子标签的识别的效果对比图。经仿真实验证明,利用本发明实施例所述的电子标签的识别方法进行电子识别,可以将电子标签的识别效率提高三个百分点。由上述两幅图也可以清晰的看出,与二分支树防碰撞算法相比,利用本发明实施例所述的算法进行电子标签的识别时的效率大大提高。
综上所述,利用本发明实施例所述的电子标签的识别及应答方法、装置及系统,在连续多次发生电子标签碰撞的情况下,利用本发明实施例所述的方法,在通信开始阶段通过统计成功识别前的连续碰撞次数粗略估计出待识别的标签数量,通过估计的标签数量计算出所需要的最佳分支树数目,并通过扩展命令将该最佳分支树数目作为分支随机数参数发送给电子标签,电子标签通过随机的方式直接进行多分支,从而达到在短时间内分出多个分支树,降低碰撞概率,提高电子标签识别效率。
需要注意的是,本领域普通技术人员可以理解实现上述实施例中的全部或部分步骤是可以通过程序来指令相关的硬件来完成的。所述的程序可以存储在计算机可读存储介质中。所述的存储介质,可以包括ROM/RAM,磁碟,光盘等。
当然,本发明的实施例还可有很多种,在不背离本发明的实施例精神及其实质的情况下,本领域技术人员当可根据本发明的实施例做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的实施例所附的权利要求的保护范围。